From 1158afc9be5ac0d7f64f533c9d00453aea104d45 Mon Sep 17 00:00:00 2001
From: myliu <201916234@mail.sdu.edu.cn>
Date: Thu, 28 Jan 2021 12:58:15 +0800
Subject: [PATCH] Modify the variable name that controls the switch of the
 drift chamber

---
 .../CRD_common_v01/DC_Simple_v01_01.xml       |  4 +++-
 Detector/DetDriftChamber/compact/det.xml      |  8 +++----
 .../src/driftchamber/DriftChamber.cpp         | 22 ++++++++++---------
 3 files changed, 18 insertions(+), 16 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 ff4a8745..2f29712a 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,7 +44,9 @@
     <constant name="DC_Endcap_rmax" value="SDT_radius_max"/>
     <constant name="DC_Endcap_dz" value="DC_Endcap_z"/>
 
-    <constant name="DC_num_chamber" value="0"/>
+    <constant name="DC_inner_chamber_enabled" value="0"/>
+    <constant name="DC_outer_chamber_enabled" value="0"/>
+    <constant name="DC_all_chamber_enabled" value="1"/>
 
   </define>
 
diff --git a/Detector/DetDriftChamber/compact/det.xml b/Detector/DetDriftChamber/compact/det.xml
index f8cffe5c..09dd9725 100644
--- a/Detector/DetDriftChamber/compact/det.xml
+++ b/Detector/DetDriftChamber/compact/det.xml
@@ -60,11 +60,9 @@
     <constant name="DC_Endcap_rmin" value="SDT_radius_min"/>
     <constant name="DC_Endcap_rmax" value="SDT_radius_max"/>
 
-    <!-- Control the number of drift chambers :
-         0:inner chamber + outer chamber;
-         1:only inner chamber;
-         2:only outer chamber; -->
-    <constant name="DC_num_chamber" value="0"/>
+    <constant name="DC_inner_chamber_enabled" value="0"/>
+    <constant name="DC_outer_chamber_enabled" value="0"/>
+    <constant name="DC_all_chamber_enabled" value="1"/>
 
   </define>
 
diff --git a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
index 9961aa08..70d6ce00 100644
--- a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
+++ b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
@@ -63,7 +63,9 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     double epsilon = theDetector.constant<double>("Epsilon");
 
     // - Control the number of drift chambersr
-    int num_chamber = theDetector.constant<int>("DC_num_chamber");
+    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");
 
     // =======================================================================
     // Detector Construction
@@ -159,9 +161,9 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
 
     // - layer
     double num_layer;
-    if(num_chamber == 0) num_layer = inner_chamber_layer_number+outer_chamber_layer_number;
-    else if(num_chamber == 1) num_layer = inner_chamber_layer_number;
-    else num_layer = outer_chamber_layer_number;
+    if(all_chamber_enabled) 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;
 
     for(int layer_id = 0; layer_id < num_layer; layer_id++) {
         double rmin,rmax,offset;
@@ -169,18 +171,18 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
         dd4hep::Volume* current_vol_ptr = nullptr;
         dd4hep::Material layer_mat(theDetector.material("GasHe_90Isob_10"));
 //        if( layer_id < inner_chamber_layer_number ) {
-        if((num_chamber == 0 && layer_id < inner_chamber_layer_number)|| num_chamber ==1 ) {
+        if((all_chamber_enabled == 1 && layer_id < inner_chamber_layer_number)|| inner_chamber_enabled ==1 ) {
            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((num_chamber == 0 && layer_id >=inner_chamber_layer_number)|| num_chamber == 2 ) {
+        if((all_chamber_enabled == 1 && layer_id >=inner_chamber_layer_number)|| outer_chamber_enabled ==1 ) {
            current_vol_ptr = &det_outer_chamber_vol;
-           if(num_chamber == 0 && layer_id >= inner_chamber_layer_number) {
+           if(all_chamber_enabled == 1 && layer_id >= inner_chamber_layer_number) {
                rmin = outer_chamber_radius_min+((layer_id-inner_chamber_layer_number)*chamber_layer_width);
            }
-           else if(num_chamber == 2) rmin = outer_chamber_radius_min+(layer_id*chamber_layer_width);
+           else if(outer_chamber_enabled == 1) 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");
         }
@@ -244,7 +246,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     // inner
      dd4hep::Transform3D transform_inner_chamber(dd4hep::Rotation3D(),
             dd4hep::Position(0,0,0));
-     if(num_chamber == 0 || num_chamber ==1) {
+     if(all_chamber_enabled == 1 || inner_chamber_enabled ==1) {
          dd4hep::PlacedVolume det_inner_chamber_phy = det_vol.placeVolume(det_inner_chamber_vol,
                  transform_inner_chamber);
 
@@ -253,7 +255,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     // outer
     dd4hep::Transform3D transform_outer_chamber(dd4hep::Rotation3D(),
             dd4hep::Position(0,0,0));
-   if(num_chamber == 0 || num_chamber == 2) {
+   if(all_chamber_enabled == 1 || outer_chamber_enabled == 1) {
        dd4hep::PlacedVolume det_outer_chamber_phy = det_vol.placeVolume(det_outer_chamber_vol,
                transform_inner_chamber);
 
-- 
GitLab