From 92032683cddfadae0271601ef385b55eda923a0d Mon Sep 17 00:00:00 2001
From: myliu <201916234@mail.sdu.edu.cn>
Date: Thu, 28 Jan 2021 17:01:38 +0800
Subject: [PATCH] Change the control parameter to one

---
 .../compact/CRD_common_v01/DC_Simple_v01_01.xml |  5 ++---
 Detector/DetDriftChamber/compact/det.xml        |  5 ++---
 .../src/driftchamber/DriftChamber.cpp           | 17 ++++++++---------
 3 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml b/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml
index 2f29712a..59898fe5 100644
--- a/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml
+++ b/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml
@@ -44,9 +44,8 @@
     <constant name="DC_Endcap_rmax" value="SDT_radius_max"/>
     <constant name="DC_Endcap_dz" value="DC_Endcap_z"/>
 
-    <constant name="DC_inner_chamber_enabled" value="0"/>
-    <constant name="DC_outer_chamber_enabled" value="0"/>
-    <constant name="DC_all_chamber_enabled" value="1"/>
+    <constant name="DC_inner_chamber_enabled" value="1"/>
+    <constant name="DC_outer_chamber_enabled" value="1"/>
 
   </define>
 
diff --git a/Detector/DetDriftChamber/compact/det.xml b/Detector/DetDriftChamber/compact/det.xml
index 09dd9725..3a332246 100644
--- a/Detector/DetDriftChamber/compact/det.xml
+++ b/Detector/DetDriftChamber/compact/det.xml
@@ -60,9 +60,8 @@
     <constant name="DC_Endcap_rmin" value="SDT_radius_min"/>
     <constant name="DC_Endcap_rmax" value="SDT_radius_max"/>
 
-    <constant name="DC_inner_chamber_enabled" value="0"/>
-    <constant name="DC_outer_chamber_enabled" value="0"/>
-    <constant name="DC_all_chamber_enabled" value="1"/>
+    <constant name="DC_inner_chamber_enabled" value="1"/>
+    <constant name="DC_outer_chamber_enabled" value="1"/>
 
   </define>
 
diff --git a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
index 70d6ce00..1f920502 100644
--- a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
+++ b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
@@ -65,7 +65,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     // - Control the number of drift chambersr
     int inner_chamber_enabled = theDetector.constant<int>("DC_inner_chamber_enabled");
     int outer_chamber_enabled = theDetector.constant<int>("DC_outer_chamber_enabled");
-    int all_chamber_enabled = theDetector.constant<int>("DC_all_chamber_enabled");
+    int all_chamber_enabled = inner_chamber_enabled + outer_chamber_enabled;
 
     // =======================================================================
     // Detector Construction
@@ -161,7 +161,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
 
     // - layer
     double num_layer;
-    if(all_chamber_enabled) num_layer = inner_chamber_layer_number+outer_chamber_layer_number;
+    if(all_chamber_enabled==2) num_layer = inner_chamber_layer_number+outer_chamber_layer_number;
     else if(inner_chamber_enabled) num_layer = inner_chamber_layer_number;
     else if(outer_chamber_enabled) num_layer = outer_chamber_layer_number;
 
@@ -170,19 +170,18 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
         std::string layer_name;
         dd4hep::Volume* current_vol_ptr = nullptr;
         dd4hep::Material layer_mat(theDetector.material("GasHe_90Isob_10"));
-//        if( layer_id < inner_chamber_layer_number ) {
-        if((all_chamber_enabled == 1 && layer_id < inner_chamber_layer_number)|| inner_chamber_enabled ==1 ) {
+        if((all_chamber_enabled == 2 && layer_id<inner_chamber_layer_number)|| num_layer== inner_chamber_layer_number) {
            current_vol_ptr = &det_inner_chamber_vol;
            rmin = inner_chamber_radius_min+(layer_id*chamber_layer_width);
            rmax = rmin+chamber_layer_width;
            layer_name = det_name+"_inner_chamber_vol"+_toString(layer_id,"_layer%d");
         }
-        if((all_chamber_enabled == 1 && layer_id >=inner_chamber_layer_number)|| outer_chamber_enabled ==1 ) {
+        if((all_chamber_enabled == 2 && layer_id >=inner_chamber_layer_number)|| num_layer == outer_chamber_layer_number) {
            current_vol_ptr = &det_outer_chamber_vol;
-           if(all_chamber_enabled == 1 && layer_id >= inner_chamber_layer_number) {
+           if(all_chamber_enabled == 2) {
                rmin = outer_chamber_radius_min+((layer_id-inner_chamber_layer_number)*chamber_layer_width);
            }
-           else if(outer_chamber_enabled == 1) rmin = outer_chamber_radius_min+(layer_id*chamber_layer_width);
+           else rmin = outer_chamber_radius_min+(layer_id*chamber_layer_width);
            rmax = rmin+chamber_layer_width;
            layer_name = det_name+"_outer_chamber_vol"+_toString(layer_id,"_layer%d");
         }
@@ -246,7 +245,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     // inner
      dd4hep::Transform3D transform_inner_chamber(dd4hep::Rotation3D(),
             dd4hep::Position(0,0,0));
-     if(all_chamber_enabled == 1 || inner_chamber_enabled ==1) {
+     if(inner_chamber_enabled ==1) {
          dd4hep::PlacedVolume det_inner_chamber_phy = det_vol.placeVolume(det_inner_chamber_vol,
                  transform_inner_chamber);
 
@@ -255,7 +254,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     // outer
     dd4hep::Transform3D transform_outer_chamber(dd4hep::Rotation3D(),
             dd4hep::Position(0,0,0));
-   if(all_chamber_enabled == 1 || outer_chamber_enabled == 1) {
+   if(outer_chamber_enabled == 1) {
        dd4hep::PlacedVolume det_outer_chamber_phy = det_vol.placeVolume(det_outer_chamber_vol,
                transform_inner_chamber);
 
-- 
GitLab