From 4c6c111881101b06a6ef0873eeeefa49ad1c72b5 Mon Sep 17 00:00:00 2001
From: myliu <201916234@mail.sdu.edu.cn>
Date: Tue, 15 Dec 2020 22:44:25 +0800
Subject: [PATCH] Revise

---
 .../src/driftchamber/DriftChamber.cpp         | 63 +++++++++++--------
 1 file changed, 37 insertions(+), 26 deletions(-)

diff --git a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
index 42bc0e91..2575d679 100644
--- a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
+++ b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
@@ -93,30 +93,39 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     dd4hep::Volume det_outer_chamber_vol(det_name+"_outer_chamber_vol", det_outer_chamber_solid, det_mat);
 
    // - wire
-   xml_coll_t c(x_det,_U(module));
-   xml_comp_t x_module = c;
-   double module_rmin,module_rmax;
-   std::string module_name;
-   if(x_module.id()==0) {
-      module_rmin = x_module.rmin();
-      module_rmax = x_module.rmax();
-      module_name = x_module.nameStr();
-   }
-   dd4hep::Tube module_solid(module_rmin,module_rmax,chamber_length*0.5);
-   dd4hep::Volume module_vol(module_name,module_solid,det_mat);
-
-   for(xml_coll_t l(x_module,_U(tubs)); l; ++l) {
-       xml_comp_t x_tube =l;
-       double tube_rmin = x_tube.rmin();
-       double tube_rmax = x_tube.rmax();
-       std::string tube_name = x_tube.nameStr();
-       std::string wire_name= module_name + tube_name;
-       dd4hep::Material tube_mat = theDetector.material(x_tube.materialStr());
-       dd4hep::Tube wire_solid(tube_rmin,tube_rmax,chamber_length*0.5);
-       dd4hep::Volume wire_vol(wire_name,wire_solid,tube_mat);
-       dd4hep::Transform3D transform_wire(dd4hep::Rotation3D(),dd4hep::Position(0.,0.,0.));
-       dd4hep::PlacedVolume wire_phy = module_vol.placeVolume(wire_vol,transform_wire);
-    }
+    dd4hep::Volume module_vol;
+//    dd4hep::Volume Module_vol;
+    for(xml_coll_t c(x_det,_U(module)); c; ++c) {
+      xml_comp_t x_module = c;
+      double  module_rmin = x_module.rmin();
+      double  module_rmax = x_module.rmax();
+      std::string module_name = x_module.nameStr();
+      dd4hep::Tube module_solid(module_rmin,module_rmax,chamber_length*0.5);
+      if(x_module.id()==0) {
+         module_vol = dd4hep::Volume(module_name,module_solid,det_mat);
+      }// else {
+//         Module_vol = dd4hep::Volume(module_name,module_solid,det_mat);
+//      }
+
+         for(xml_coll_t l(x_module,_U(tubs)); l; ++l) {
+            xml_comp_t x_tube =l;
+            double tube_rmin = x_tube.rmin();
+            double tube_rmax = x_tube.rmax();
+            std::string tube_name = x_tube.nameStr();
+            std::string wire_name= module_name + tube_name;
+            dd4hep::Material tube_mat = theDetector.material(x_tube.materialStr());
+            dd4hep::Tube wire_solid(tube_rmin,tube_rmax,chamber_length*0.5);
+            dd4hep::Volume wire_vol(wire_name,wire_solid,tube_mat);
+            dd4hep::Transform3D transform_wire(dd4hep::Rotation3D(),dd4hep::Position(0.,0.,0.));
+            dd4hep::PlacedVolume wire_phy;
+            if(x_module.id()==0) {
+               wire_phy = module_vol.placeVolume(wire_vol,transform_wire);
+            }// else {
+//               wire_phy = Module_vol.placeVolume(wire_vol,transform_wire);
+//            }
+         }
+  }
+
 
     //Initialize the segmentation
     dd4hep::Readout readout = sd.readout();
@@ -162,13 +171,15 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
         layer_vol.setAttributes(theDetector,x_det.regionStr(),x_det.limitsStr(),x_det.visStr());
 
         // - wire vol
-     if(layer_id == 1) {
+//     if(layer_id == 1) {
         for(int icell=0; icell< numWire; icell++) {
             double wire_phi = (icell+0.5)*layer_Phi + offset;
             dd4hep::Transform3D transform_module(dd4hep::Rotation3D(),dd4hep::Position(rmid*std::cos(wire_phi),rmid*std::sin(wire_phi),0.));
+//            dd4hep::Transform3D transform_Module(dd4hep::Rotation3D(),dd4hep::Position((rmid+chamber_layer_width*0.5)*std::cos(wire_phi),(rmid+chamber_layer_width*0.5)*std::sin(wire_phi),0.));
             dd4hep::PlacedVolume module_phy = layer_vol.placeVolume(module_vol,transform_module);
+//            dd4hep::PlacedVolume Module_phy = layer_vol.placeVolume(Module_vol,transform_Module);
         }
-  }
+//  }
 
         dd4hep::Transform3D transform_layer(dd4hep::Rotation3D(),dd4hep::Position(0.,0.,0.));
         dd4hep::PlacedVolume layer_phy = (*current_vol_ptr).placeVolume(layer_vol, transform_layer);
-- 
GitLab