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 83186f62672fd45d11ac4b271a9c5800e7f479d3..ead87a0e6d4ab5255e3f9baeb66a28ab7efbefa1 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 @@ -19,18 +19,15 @@ <constant name="world_z" value="world_size"/> <!-- SDT --> - <constant name="SDT_radius_min" value="799.78*mm"/> - <constant name="SDT_radius_max" value="1803*mm"/> + <constant name="SDT_radius_min" value="DC_inner_radius"/> + <constant name="SDT_radius_max" value="DC_outer_radius"/> <constant name="SDT_half_length" value="MainTracker_half_length"/> <constant name="DC_length" value="DC_half_length*2"/> <constant name="SDT_length" value="SDT_half_length*2"/> - <constant name="SDT_inner_wall_thickness" value="0.2*mm"/> - <constant name="SDT_outer_wall_thickness" value="2.8*mm"/> - - <constant name="SDT_chamber_radius_min" value="DC_chamber_radius_min"/> - <constant name="SDT_chamber_radius_max" value="DC_chamber_radius_max"/> + <constant name="SDT_chamber_radius_min" value="DC_chamber_layer_rbegin-DC_safe_distance"/> + <constant name="SDT_chamber_radius_max" value="DC_chamber_layer_rend+DC_safe_distance"/> <constant name="SDT_chamber_half_length" value="DC_half_length"/> <constant name="SDT_chamber_layer_width" value="10*mm"/> diff --git a/Detector/DetCRD/compact/CRD_o1_v01/CRD_Dimensions_v01_01.xml b/Detector/DetCRD/compact/CRD_o1_v01/CRD_Dimensions_v01_01.xml index 2be7bf353591b28e05c1f37c8dde0f8caae25475..9a368f4e34e8669298b25f90bb094515fcd0f8f8 100644 --- a/Detector/DetCRD/compact/CRD_o1_v01/CRD_Dimensions_v01_01.xml +++ b/Detector/DetCRD/compact/CRD_o1_v01/CRD_Dimensions_v01_01.xml @@ -87,6 +87,7 @@ <constant name="SDT_inner_wall_thickness" value="0.2*mm"/> <constant name="SDT_outer_wall_thickness" value="2.8*mm"/> <constant name="MainTracker_half_length" value="DC_half_length+DC_Endcap_dz" /> + <constant name="InnerTracker_half_length" value="DC_half_length" /> <constant name="InnerTracker_inner_radius" value="234*mm"/> <constant name="InnerTracker_outer_radius" value="909*mm"/> @@ -97,10 +98,9 @@ <!-- Parameters of single drift chamber --> <constant name="DC_chamber_layer_rbegin" value="800*mm"/> <constant name="DC_chamber_layer_rend" value="1800*mm"/> - <constant name="DC_chamber_radius_min" value="DC_chamber_layer_rbegin-DC_safe_distance"/> - <constant name="DC_chamber_radius_max" value="DC_chamber_layer_rend+DC_safe_distance"/> - <constant name="DC_inner_radius" value="799.78*mm"/> - <constant name="DC_outer_radius" value="1803*mm"/> + + <constant name="DC_inner_radius" value="DC_chamber_layer_rbegin-SDT_inner_wall_thickness-DC_safe_distance"/> + <constant name="DC_outer_radius" value="DC_chamber_layer_rend+SDT_outer_wall_thickness+DC_safe_distance"/> <constant name="SIT1_inner_radius" value="152.90*mm"/> <constant name="SIT1_half_length" value="368.00*mm"/> diff --git a/Detector/DetCRD/compact/CRD_o1_v02/CRD_Dimensions_v01_02.xml b/Detector/DetCRD/compact/CRD_o1_v02/CRD_Dimensions_v01_02.xml index ca49e6ca4666085ae35f13b2c2c3ea5b4166f812..3b8f76a135efcbe73e3491e3bd083d91d2d6f6d8 100644 --- a/Detector/DetCRD/compact/CRD_o1_v02/CRD_Dimensions_v01_02.xml +++ b/Detector/DetCRD/compact/CRD_o1_v02/CRD_Dimensions_v01_02.xml @@ -87,6 +87,7 @@ <constant name="SDT_inner_wall_thickness" value="0.2*mm"/> <constant name="SDT_outer_wall_thickness" value="2.8*mm"/> <constant name="MainTracker_half_length" value="DC_half_length+DC_Endcap_dz" /> + <constant name="InnerTracker_half_length" value="DC_half_length" /> <constant name="InnerTracker_inner_radius" value="234*mm"/> <constant name="InnerTracker_outer_radius" value="909*mm"/> @@ -97,10 +98,9 @@ <!-- Parameters of single drift chamber --> <constant name="DC_chamber_layer_rbegin" value="800*mm"/> <constant name="DC_chamber_layer_rend" value="1800*mm"/> - <constant name="DC_chamber_radius_min" value="DC_chamber_layer_rbegin-DC_safe_distance"/> - <constant name="DC_chamber_radius_max" value="DC_chamber_layer_rend+DC_safe_distance"/> - <constant name="Tracker_inner_radius" value="799.78*mm"/> - <constant name="Tracker_outer_radius" value="1803*mm"/> + + <constant name="DC_inner_radius" value="DC_chamber_layer_rbegin-SDT_inner_wall_thickness-DC_safe_distance"/> + <constant name="DC_outer_radius" value="DC_chamber_layer_rend+SDT_outer_wall_thickness+DC_safe_distance"/> <constant name="SIT1_inner_radius" value="140*mm"/> diff --git a/Detector/DetDriftChamber/compact/det.xml b/Detector/DetDriftChamber/compact/det.xml index 3ca47adbcb2cad765d8aff011e9ced7016a1b0fa..4e981b021e24069755937850709a346dbf703a29 100644 --- a/Detector/DetDriftChamber/compact/det.xml +++ b/Detector/DetDriftChamber/compact/det.xml @@ -26,15 +26,6 @@ <!-- SDT --> <constant name="DetID_DC" value="7"/> - <constant name="SDT_radius_min" value="799.78*mm"/> - <constant name="SDT_radius_max" value="1803*mm"/> - - <constant name="DC_Endcap_dz" value="0.1*mm"/> - - <constant name="SDT_half_length" value="2225*mm+DC_Endcap_dz"/> - <constant name="DC_half_length" value="2225*mm"/> - <constant name="SDT_length" value="SDT_half_length*2"/> - <constant name="DC_length" value="SDT_length-DC_Endcap_dz*2"/> <constant name="DC_safe_distance" value="0.02*mm"/> @@ -44,11 +35,18 @@ <constant name="DC_chamber_layer_rbegin" value="800*mm"/> <constant name="DC_chamber_layer_rend" value="1800*mm"/> - <constant name="DC_chamber_radius_min" value="DC_chamber_layer_rbegin-DC_safe_distance"/> - <constant name="DC_chamber_radius_max" value="DC_chamber_layer_rend+DC_safe_distance"/> + <constant name="SDT_radius_min" value="DC_chamber_layer_rbegin-SDT_inner_wall_thickness-DC_safe_distance"/> + <constant name="SDT_radius_max" value="DC_chamber_layer_rend+SDT_outer_wall_thickness+DC_safe_distance"/> + + <constant name="DC_Endcap_dz" value="0.1*mm"/> + + <constant name="SDT_half_length" value="2225*mm+DC_Endcap_dz"/> + <constant name="DC_half_length" value="2225*mm"/> + <constant name="SDT_length" value="SDT_half_length*2"/> + <constant name="DC_length" value="SDT_length-DC_Endcap_dz*2"/> - <constant name="SDT_chamber_radius_min" value="DC_chamber_radius_min"/> - <constant name="SDT_chamber_radius_max" value="DC_chamber_radius_max"/> + <constant name="SDT_chamber_radius_min" value="DC_chamber_layer_rbegin-DC_safe_distance"/> + <constant name="SDT_chamber_radius_max" value="DC_chamber_layer_rend+DC_safe_distance"/> <constant name="SDT_chamber_half_length" value="DC_half_length"/> <constant name="SDT_chamber_layer_width" value="10*mm"/> @@ -87,6 +85,7 @@ <detectors> <detector id="DetID_DC" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="VisibleBlue" sensitive="true" region="DriftChamberRegion" limits="DC_limits"> + <chamber id="0"/> <envelope vis="SeeThrough"> <shape type="BooleanShape" operation="Union" material="Air"> <shape type="Tube" rmin="SDT_radius_min" rmax="SDT_radius_max" dz="SDT_half_length" /> diff --git a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp index d62cced2786509b270a0355057dbc18858dcf828..bb02ad39e3d2347af6a5a9ee76ee51593227d3d7 100644 --- a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp +++ b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp @@ -35,6 +35,9 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, xml_det_t x_det = e; + xml_coll_t c(x_det,_U(chamber)); + xml_comp_t x_chamber = c; + std::string det_name = x_det.nameStr(); std::string det_type = x_det.typeStr(); @@ -47,6 +50,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, double chamber_radius_min = theDetector.constant<double>("SDT_chamber_radius_min"); double chamber_radius_max = theDetector.constant<double>("SDT_chamber_radius_max"); double SDT_half_length = theDetector.constant<double>("SDT_chamber_half_length"); + int chamberID = x_chamber.id(); // - layer double chamber_layer_width = theDetector.constant<double>("SDT_chamber_layer_width"); @@ -181,7 +185,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, // | | // | F0 F1 F2 F3| // ----------------------- -// if(layer_id == 0 || layer_id == 1 || layer_id == 2 || layer_id == 3) { +// if(layer_id == 0 || layer_id == 1 || layer_id == 2 || layer_id == 99) { for(int icell=0; icell< numWire; icell++) { double wire_phi = (icell+0.5)*layer_Phi + offset; // - signal wire @@ -213,7 +217,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::PlacedVolume det_chamber_phy = det_vol.placeVolume(det_chamber_vol, transform_chamber); - det_chamber_phy.addPhysVolID("chamber", 0); + det_chamber_phy.addPhysVolID("chamber", chamberID); // - place in world dd4hep::Transform3D transform(dd4hep::Rotation3D(),