diff --git a/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml b/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml index 3c262fa2cdbdc96a6def2633cbf0f8e2ffc2ecd1..586074a3d04ab48b3a70520b60f5d0f7854846d4 100644 --- a/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml +++ b/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml @@ -31,11 +31,11 @@ <constant name="Muon_barrel_superlayer_init" value="-21.5*cm"/> <constant name="Muon_barrel_superlayer_gap" value="12.5*cm"/> - <constant name="Muon_barrel_superlayer_air_gap" value="0.1*cm"/> + <constant name="Muon_barrel_superlayer_air_gap" value="0.5*cm"/> <constant name="Muon_barrel_superlayer_aluminum_gap" value="0.5*Muon_barrel_superlayer_air_gap"/> <constant name="Muon_barrel_superlayer_y" value="2*Muon_strip_y+2*Muon_barrel_superlayer_air_gap"/> - <constant name="Muon_barrel_superlayer_z" value="Muon_strip_z+2*Muon_strip_surf+2*Muon_barrel_superlayer_air_gap"/> + <constant name="Muon_barrel_superlayer_z" value="Muon_strip_z+2*Muon_strip_surf+2*Muon_barrel_superlayer_air_gap"/> <!--Checkout--> <constant name="Muon_barrel_inner_radius" value="483*cm"/> <constant name="Muon_barrel_barrel_num" value="2"/> @@ -62,21 +62,22 @@ <component id="0" type="Muon_strip_surface" name="Muon_strip_surface" vis="GreenVis" material="BC420"> <position x="0" y="0" z="0"/> <dimensions dx="0.5*Muon_strip_surface_x" dy="0.5*Muon_strip_surface_y" dz="0.5*Muon_strip_surface_z"/> - <cut name="Muon_strip_cut1" vis="GreenVis" material="Air"> + <!--cut name="Muon_strip_cut1" vis="GreenVis" material="Air"> <position x="Muon_strip_cut1_posx" y="Muon_strip_cut1_posy" z="Muon_strip_cut1_posz"/> <dimensions dx="0.5*Muon_strip_cut1_x" dy="0.5*Muon_strip_cut1_y" dz="0.5*Muon_strip_cut1_z"/> - </cut> + </cut--> </component> <component id="1" type="Muon_strip_scintillator" name="Muon_strip_scintillator" vis="GreenVis" material="BC420"> <position x="0" y="0" z="0"/> <dimensions dx="0.5*Muon_strip_scintillator_x" dy="0.5*Muon_strip_scintillator_y" dz="0.5*Muon_strip_scintillator_z"/> <cut name="Muon_strip_cut3" vis="GreenVis" material="Air"> - <position x="Muon_strip_cut3_posx" y="Muon_strip_cut3_posy" z="Muon_strip_cut3_posz"/> + <!--position x="Muon_strip_cut3_posx" y="Muon_strip_cut3_posy" z="Muon_strip_cut3_posz"/--> + <position x="0" y="0" z="0"/> <dimensions rmin="0" rmax="Muon_strip_cut3_rmax" dz="0.5*Muon_strip_cut3_z"/> - <comb name="Muon_strip_cut2" vis="GreenVis" material="Air"> + <!--comb name="Muon_strip_cut2" vis="GreenVis" material="Air"> <position x="Muon_strip_cut2_posx" y="Muon_strip_cut2_posy" z="Muon_strip_cut2_posz"/> <dimensions dx="0.5*Muon_strip_cut2_x" dy="0.5*Muon_strip_cut2_y" dz="0.5*Muon_strip_cut2_z"/> - </comb> + </comb--> </cut> </component> <fiber id="0" type="Muon_fiber_cladding" name="Muon_fiber_cladding" vis="GreenVis" material="Pethylene1"> diff --git a/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_01.xml b/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_01.xml index 2328674ad08f4bcb22847f1ca6a349e9de0cff7f..926795539a9ea72732b84186749a27ad90a27fc0 100644 --- a/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_01.xml +++ b/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_01.xml @@ -37,21 +37,22 @@ <component id="0" type="Muon_strip_surface" name="Muon_strip_surface" vis="GreenVis" material="BC420"> <position x="0" y="0" z="0"/> <dimensions dx="0.5*Muon_strip_surface_x" dy="0.5*Muon_strip_surface_y" dz="0.5*Muon_strip_surface_z"/> - <cut name="Muon_strip_cut1" vis="GreenVis" material="Air"> + <!--cut name="Muon_strip_cut1" vis="GreenVis" material="Air"> <position x="Muon_strip_cut1_posx" y="Muon_strip_cut1_posy" z="Muon_strip_cut1_posz"/> <dimensions dx="0.5*Muon_strip_cut1_x" dy="0.5*Muon_strip_cut1_y" dz="0.5*Muon_strip_cut1_z"/> - </cut> + </cut--> </component> <component id="1" type="Muon_strip_scintillator" name="Muon_strip_scintillator" vis="GreenVis" material="BC420"> <position x="0" y="0" z="0"/> <dimensions dx="0.5*Muon_strip_scintillator_x" dy="0.5*Muon_strip_scintillator_y" dz="0.5*Muon_strip_scintillator_z"/> <cut name="Muon_strip_cut3" vis="GreenVis" material="Air"> - <position x="Muon_strip_cut3_posx" y="Muon_strip_cut3_posy" z="Muon_strip_cut3_posz"/> + <!--position x="Muon_strip_cut3_posx" y="Muon_strip_cut3_posy" z="Muon_strip_cut3_posz"/--> + <position x="0" y="0" z="0"/> <dimensions rmin="0" rmax="Muon_strip_cut3_rmax" dz="0.5*Muon_strip_cut3_z"/> - <comb name="Muon_strip_cut2" vis="GreenVis" material="Air"> + <!--comb name="Muon_strip_cut2" vis="GreenVis" material="Air"> <position x="Muon_strip_cut2_posx" y="Muon_strip_cut2_posy" z="Muon_strip_cut2_posz"/> <dimensions dx="0.5*Muon_strip_cut2_x" dy="0.5*Muon_strip_cut2_y" dz="0.5*Muon_strip_cut2_z"/> - </comb> + </comb--> </cut> </component> <fiber id="0" type="Muon_fiber_cladding" name="Muon_fiber_cladding" vis="GreenVis" material="Pethylene1"> diff --git a/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml b/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml index a237e37cf7be977be1d4848fb9f6f19ebb06d007..9b7102d2f43346431aab627d731640fff7494fbc 100644 --- a/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml +++ b/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml @@ -243,7 +243,7 @@ <!--standard scale--> <constant name="Muon_standard_scale" value="105*cm"/> - <constant name="Muon_Iron_gap_z" value="50*cm"/> + <constant name="Muon_Iron_gap_z" value="100*cm"/> <!--Muon Barrel> <constant name="Muon_barrel_barrel_num" value="2"/> diff --git a/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp b/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp index 28b86daa4a9fb8a66ef3b7619f601bf3dcdc3be4..9e6abc73eb7242667b5481f0af2829370c7166e6 100644 --- a/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp +++ b/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp @@ -171,7 +171,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, xml_dim_t s_dim(x_module.child(_U(dimensions))); surface_pos = s_pos; surface_dim = s_dim; - +/* xml_coll_t dcCut1(x_module,Unicode("cut")); xml_comp_t x_cut1 = dcCut1; cut1_name = x_cut1.nameStr(); @@ -180,7 +180,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, xml_dim_t c1_pos(x_cut1.child(_U(position))); xml_dim_t c1_dim(x_cut1.child(_U(dimensions))); cut1_pos = c1_pos; - cut1_dim = c1_dim; + cut1_dim = c1_dim;*/ } if(x_module.id()==1) { @@ -201,7 +201,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, xml_dim_t c3_dim(x_cut3.child(_U(dimensions))); cut3_pos = c3_pos; cut3_dim = c3_dim; - +/* xml_coll_t dcCut2(x_cut3,Unicode("comb")); xml_comp_t x_cut2 = dcCut2; cut2_name = x_cut2.nameStr(); @@ -210,7 +210,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, xml_dim_t c2_pos(x_cut2.child(_U(position))); xml_dim_t c2_dim(x_cut2.child(_U(dimensions))); cut2_pos = c2_pos; - cut2_dim = c2_dim; + cut2_dim = c2_dim;*/ } if(x_module.id()==2) { @@ -224,16 +224,16 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, } } dd4hep::Box surface_solid(surface_dim.dx(),surface_dim.dy(),surface_halfZ); - dd4hep::Box cut1_solid(cut1_dim.dx(),cut1_dim.dy(),cut_halfZ); + //dd4hep::Box cut1_solid(cut1_dim.dx(),cut1_dim.dy(),cut_halfZ); dd4hep::Box BC420_solid(BC420_dim.dx(),BC420_dim.dy(),BC420_halfZ); dd4hep::Tube cut3_solid(cut3_dim.rmin(),cut3_dim.rmax(),cut_halfZ); - dd4hep::Box cut2_solid(cut2_dim.dx(),cut2_dim.dy(),cut_halfZ); + //dd4hep::Box cut2_solid(cut2_dim.dx(),cut2_dim.dy(),cut_halfZ); dd4hep::Box SiPM_solid(SiPM_dim.dx(),SiPM_dim.dy(),SiPM_dim.dz()); dd4hep::Transform3D surface_transform(dd4hep::Rotation3D(),dd4hep::Position(surface_pos.x(),surface_pos.y(),surface_pos.z())); - dd4hep::Transform3D cut1_transform(dd4hep::Rotation3D(),dd4hep::Position(cut1_pos.x(),cut1_pos.y(),cut1_pos.z())); + //dd4hep::Transform3D cut1_transform(dd4hep::Rotation3D(),dd4hep::Position(cut1_pos.x(),cut1_pos.y(),cut1_pos.z())); dd4hep::Transform3D BC420_transform(dd4hep::Rotation3D(),dd4hep::Position(BC420_pos.x(),BC420_pos.y(),BC420_pos.z())); - dd4hep::Transform3D cut2_transform(dd4hep::Rotation3D(),dd4hep::Position(cut2_pos.x(),cut2_pos.y(),cut2_pos.z())); + //dd4hep::Transform3D cut2_transform(dd4hep::Rotation3D(),dd4hep::Position(cut2_pos.x(),cut2_pos.y(),cut2_pos.z())); dd4hep::Transform3D cut3_transform(dd4hep::Rotation3D(),dd4hep::Position(cut3_pos.x(),cut3_pos.y(),cut3_pos.z())); dd4hep::Transform3D SiPM_transform0(dd4hep::Rotation3D(),dd4hep::Position(SiPM_pos.x(),SiPM_pos.y(),SiPM_posZ)); dd4hep::Transform3D SiPM_transform1(dd4hep::Rotation3D(),dd4hep::Position(SiPM_pos.x(),SiPM_pos.y(), -1 * SiPM_posZ)); @@ -241,13 +241,13 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::Volume surface_vol(surface_name, surface_solid, surface_mat); surface_vol.setVisAttributes(theDetector.visAttributes(surface_vis)); //surface_vol.setSensitiveDetector(sens); - +/* dd4hep::Volume cut1_vol(cut1_name, cut1_solid, cut1_mat); cut1_vol.setVisAttributes(theDetector.visAttributes(cut1_vis)); dd4hep::Volume cut2_vol(cut2_name, cut2_solid, cut2_mat); cut2_vol.setVisAttributes(theDetector.visAttributes(cut2_vis)); - +*/ dd4hep::Volume cut3_vol(cut3_name, cut3_solid, cut3_mat); cut3_vol.setVisAttributes(theDetector.visAttributes(cut3_vis)); @@ -258,7 +258,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, SiPM_vol.setVisAttributes(theDetector.visAttributes(SiPM_vis)); SiPM_vol.setSensitiveDetector(sens); - BC420_vol.placeVolume(cut2_vol,cut2_transform); + //BC420_vol.placeVolume(cut2_vol,cut2_transform); BC420_vol.placeVolume(cut3_vol,cut3_transform); dd4hep::PlacedVolume cladding_place, core_place; for(xml_coll_t dcSection(x_strip,Unicode("fiber")); dcSection; dcSection++) @@ -277,14 +277,16 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::Transform3D section_transform(dd4hep::Rotation3D(),dd4hep::Position(section_pos.x(),section_pos.y(),section_pos.z())); if (x_section.id() == 0) { - cladding_place = BC420_vol.placeVolume(section_vol,section_transform); + cladding_place = cut3_vol.placeVolume(section_vol,section_transform); + //cladding_place = BC420_vol.placeVolume(section_vol,section_transform); } if (x_section.id() == 1) { - core_place = BC420_vol.placeVolume(section_vol,section_transform); + core_place = cut3_vol.placeVolume(section_vol,section_transform); + //core_place = BC420_vol.placeVolume(section_vol,section_transform); } } - surface_vol.placeVolume(cut1_vol,cut1_transform); + //surface_vol.placeVolume(cut1_vol,cut1_transform); dd4hep::PlacedVolume BC420_place = surface_vol.placeVolume(BC420_vol,BC420_transform); //BC420_place.addPhysVolID("Stripe",i4+1); dd4hep::PlacedVolume surf_place = strip_vol.placeVolume(surface_vol,surface_transform); diff --git a/Detector/DetCRD/src/Muon/Muon_Endcap_v01_01.cpp b/Detector/DetCRD/src/Muon/Muon_Endcap_v01_01.cpp index 336222d04fc237419523b7b411fed8aab60f0eae..acb54e5b03a44ad347acd085f0e66338d0e9ecc0 100644 --- a/Detector/DetCRD/src/Muon/Muon_Endcap_v01_01.cpp +++ b/Detector/DetCRD/src/Muon/Muon_Endcap_v01_01.cpp @@ -39,7 +39,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::DetElement sdet("envelope", 1); - dd4hep::Volume envelope( "envelope", dd4hep::Tube( dim.rmin(), theDetector.constant<double>( "Muon_endcap_magnification" ) * env_rmax, dim.dz() ), det_mat); + dd4hep::Volume envelope( "Muon_endcap_envelope", dd4hep::Tube( dim.rmin(), theDetector.constant<double>( "Muon_endcap_magnification" ) * env_rmax, dim.dz() ), det_mat); envelope.setVisAttributes(theDetector.visAttributes(x_det.visStr())); sens.setType("muonendcap"); @@ -54,9 +54,10 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, for (int i0 = 0; i0 < theDetector.constant<int>("Muon_endcap_part_num"); i0++) { std::string env_name = "part" + dd4hep::_toString(i0,"_%d"); - dd4hep::Tube env_solid( dim.rmin(), theDetector.constant<double>( "Muon_endcap_magnification" ) * env_rmax, dim.dz(), 0, 90 * dd4hep::degree); - dd4hep::Volume env_vol( env_name, env_solid, det_mat); - env_vol.setVisAttributes(theDetector.visAttributes(x_det.visStr())); + //dd4hep::Tube env_solid( dim.rmin(), theDetector.constant<double>( "Muon_endcap_magnification" ) * env_rmax, dim.dz(), 0, 90 * dd4hep::degree); + //dd4hep::Volume env_vol( env_name, env_solid, det_mat); + //env_vol.setVisAttributes(theDetector.visAttributes(x_det.visStr())); + dd4hep::Assembly env_vol( env_name ); dd4hep::Transform3D env_transform(dd4hep::Rotation3D(dd4hep::RotationZ(i0 * 90 * dd4hep::degree)),dd4hep::Position()); for (int i1 = 0; i1 < theDetector.constant<int>("Muon_endcap_layer_num"); i1++ ) { @@ -133,7 +134,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, xml_dim_t s_dim(x_module.child(_U(dimensions))); surface_pos = s_pos; surface_dim = s_dim; - +/* xml_coll_t dcCut1(x_module,Unicode("cut")); xml_comp_t x_cut1 = dcCut1; cut1_name = x_cut1.nameStr(); @@ -142,7 +143,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, xml_dim_t c1_pos(x_cut1.child(_U(position))); xml_dim_t c1_dim(x_cut1.child(_U(dimensions))); cut1_pos = c1_pos; - cut1_dim = c1_dim; + cut1_dim = c1_dim;*/ } if(x_module.id()==1) { @@ -163,7 +164,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, xml_dim_t c3_dim(x_cut3.child(_U(dimensions))); cut3_pos = c3_pos; cut3_dim = c3_dim; - +/* xml_coll_t dcCut2(x_cut3,Unicode("comb")); xml_comp_t x_cut2 = dcCut2; cut2_name = x_cut2.nameStr(); @@ -172,7 +173,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, xml_dim_t c2_pos(x_cut2.child(_U(position))); xml_dim_t c2_dim(x_cut2.child(_U(dimensions))); cut2_pos = c2_pos; - cut2_dim = c2_dim; + cut2_dim = c2_dim;*/ } if(x_module.id()==2) { @@ -186,16 +187,16 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, } } dd4hep::Box surface_solid(surface_dim.dx(),surface_dim.dy(),surface_halfZ); - dd4hep::Box cut1_solid(cut1_dim.dx(),cut1_dim.dy(),cut_halfZ); + //dd4hep::Box cut1_solid(cut1_dim.dx(),cut1_dim.dy(),cut_halfZ); dd4hep::Box BC420_solid(BC420_dim.dx(),BC420_dim.dy(),BC420_halfZ); dd4hep::Tube cut3_solid(cut3_dim.rmin(),cut3_dim.rmax(),cut_halfZ); - dd4hep::Box cut2_solid(cut2_dim.dx(),cut2_dim.dy(),cut_halfZ); + //dd4hep::Box cut2_solid(cut2_dim.dx(),cut2_dim.dy(),cut_halfZ); dd4hep::Box SiPM_solid(SiPM_dim.dx(),SiPM_dim.dy(),SiPM_dim.dz()); dd4hep::Transform3D surface_transform(dd4hep::Rotation3D(),dd4hep::Position(surface_pos.x(),surface_pos.y(),surface_pos.z())); - dd4hep::Transform3D cut1_transform(dd4hep::Rotation3D(),dd4hep::Position(cut1_pos.x(),cut1_pos.y(),cut1_pos.z())); + //dd4hep::Transform3D cut1_transform(dd4hep::Rotation3D(),dd4hep::Position(cut1_pos.x(),cut1_pos.y(),cut1_pos.z())); dd4hep::Transform3D BC420_transform(dd4hep::Rotation3D(),dd4hep::Position(BC420_pos.x(),BC420_pos.y(),BC420_pos.z())); - dd4hep::Transform3D cut2_transform(dd4hep::Rotation3D(),dd4hep::Position(cut2_pos.x(),cut2_pos.y(),cut2_pos.z())); + //dd4hep::Transform3D cut2_transform(dd4hep::Rotation3D(),dd4hep::Position(cut2_pos.x(),cut2_pos.y(),cut2_pos.z())); dd4hep::Transform3D cut3_transform(dd4hep::Rotation3D(),dd4hep::Position(cut3_pos.x(),cut3_pos.y(),cut3_pos.z())); dd4hep::Transform3D SiPM_transform1(dd4hep::Rotation3D(),dd4hep::Position(SiPM_pos.x(),SiPM_pos.y(),SiPM_posZ)); dd4hep::Transform3D SiPM_transform2(dd4hep::Rotation3D(),dd4hep::Position(SiPM_pos.x(),SiPM_pos.y(), -1 * SiPM_posZ)); @@ -203,13 +204,13 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::Volume surface_vol(surface_name, surface_solid, surface_mat); surface_vol.setVisAttributes(theDetector.visAttributes(surface_vis)); //surface_vol.setSensitiveDetector(sens); - +/* dd4hep::Volume cut1_vol(cut1_name, cut1_solid, cut1_mat); cut1_vol.setVisAttributes(theDetector.visAttributes(cut1_vis)); dd4hep::Volume cut2_vol(cut2_name, cut2_solid, cut2_mat); cut2_vol.setVisAttributes(theDetector.visAttributes(cut2_vis)); - +*/ dd4hep::Volume cut3_vol(cut3_name, cut3_solid, cut3_mat); cut3_vol.setVisAttributes(theDetector.visAttributes(cut3_vis)); @@ -220,7 +221,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, SiPM_vol.setVisAttributes(theDetector.visAttributes(SiPM_vis)); SiPM_vol.setSensitiveDetector(sens); - BC420_vol.placeVolume(cut2_vol,cut2_transform); + //BC420_vol.placeVolume(cut2_vol,cut2_transform); BC420_vol.placeVolume(cut3_vol,cut3_transform); dd4hep::PlacedVolume cladding_place, core_place; for(xml_coll_t dcSection(x_strip,Unicode("fiber")); dcSection; dcSection++) @@ -239,14 +240,16 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::Transform3D section_transform(dd4hep::Rotation3D(),dd4hep::Position(section_pos.x(),section_pos.y(),section_pos.z())); if (x_section.id() == 0) { - cladding_place = BC420_vol.placeVolume(section_vol,section_transform); + cladding_place = cut3_vol.placeVolume(section_vol,section_transform); + //cladding_place = BC420_vol.placeVolume(section_vol,section_transform); } if (x_section.id() == 1) { - core_place = BC420_vol.placeVolume(section_vol,section_transform); + core_place = cut3_vol.placeVolume(section_vol,section_transform); + //core_place = BC420_vol.placeVolume(section_vol,section_transform); } } - surface_vol.placeVolume(cut1_vol,cut1_transform); + //surface_vol.placeVolume(cut1_vol,cut1_transform); dd4hep::PlacedVolume BC420_place = surface_vol.placeVolume(BC420_vol,BC420_transform); //BC420_place.addPhysVolID("Stripe",i2+1); dd4hep::PlacedVolume surf_place = strip_vol.placeVolume(surface_vol,surface_transform);