diff --git a/compact/definitions.xml b/compact/definitions.xml index befa08c5c67655906dcc337da10fd745183d81de..1a8f2eaec6ecd946ebd13780c4a22c02849d95a5 100644 --- a/compact/definitions.xml +++ b/compact/definitions.xml @@ -135,11 +135,13 @@ (75-84) Barrel Tracker IDs =================== MMTrackerBarrel ID: 75 + RWellTrackerBarrel ID: 76 - Unused IDs: 76-89 + Unused IDs: 77-89 </comment> <constant name="MMTrackerBarrel_ID" value="75"/> + <constant name="RWellTrackerBarrel_ID" value="76"/> <comment> =================== diff --git a/compact/materials.xml b/compact/materials.xml index 26ee6989605c1de6cc831d77186db58486cb01cb..fb0f49a65634a011cef179420687f8d268a96fa5 100644 --- a/compact/materials.xml +++ b/compact/materials.xml @@ -198,5 +198,28 @@ <fraction n="0.041960452" ref="H"/> <fraction n="0.33301847" ref="O"/> </material> + <material name="Nomex"> + <D type="density" value="0.029" unit="g/cm3" /> + <composite n="14" ref="C"/> + <composite n="10" ref="H"/> + <composite n="2" ref="N"/> + <composite n="2" ref="O"/> + </material> + <material name="Fr4_Epoxy"> + <D type="density" value="1.2" unit="g/cm3"/> + <composite n="2" ref="H"/> + <composite n="2" ref="C"/> + </material> + <material name="Fr4"> + <D type="density" value="1.86" unit="g/cm3"/> + <fraction n="0.528" ref="Quartz"/> + <fraction n="0.472" ref="Fr4_Epoxy"/> + </material> + <material name="Cfrp_intt"> + <D type="density" value="1.69" unit="g/cm3"/> + <composite n="10" ref="C"/> + <composite n="6" ref="H"/> + <composite n="1" ref="O"/> + </material> </materials> diff --git a/compact/rwell_tracker_barrel.xml b/compact/rwell_tracker_barrel.xml new file mode 100644 index 0000000000000000000000000000000000000000..f03dd28e2fba60c06414e0226e1565dd59b7ff82 --- /dev/null +++ b/compact/rwell_tracker_barrel.xml @@ -0,0 +1,210 @@ +<lccdd> + + <comment>RWell tracker barrel based on Fun4All implementation https://www.dropbox.com/sh/j4n4g5h80g9tai6/AAAzmXSHRGQCShoSiewe6HCDa?dl=0 Where the detector is constructed in the G4_RWell.C and Build_G4_RWell_Sup01.C files + original R=(78.67, 90.0)cm, + DirftGap=(0.4, 0.4)cm, + Length=(200, 200)cm + kapton_thickness = 0.0175; //cm + cu_thickness = 0.002; //cm + prepreg_thickness = 0.005; //cm + pcb_thickness = 0.010; //cm + //inner tube + support_01_thickness = 0.50; + support_01_length = 7.2; + //inner ring + support_02_thickness = 1.6; + support_02_length = 1.2; + //outer ring + support_03_thickness = 0.50; + support_03_length = 1.2; + + modified R=(73.67, 85.0) cm // to avoid conflict with EM Cal + Length=TrackerBarrelOuter_length=(160, 160) cm // to avoid conflict with GEM tracker + </comment> + + <define> + <constant name="RWellTrackerBarrel_length" value="TrackerBarrelOuter_length"/> + <constant name="RWellTrackerBarrel_NZModules" value="1"/> + <constant name="RWellTrackerBarrel_NZSupport" value="2"/> + + <constant name="RWellTrackerBarrel_Kapton_thickness" value="175.0*um"/> + <constant name="RWellTrackerBarrel_Gas_thickness" value="4.0*mm"/> + <constant name="RWellTrackerBarrel_Cu_thickness" value="20.0*um"/> + <constant name="RWellTrackerBarrel_Prepreg_thickness" value="50.0*um"/> + <constant name="RWellTrackerBarrel_Pcb_thickness" value="0.1*mm"/> + + <constant name="RWellTrackerBarrelLayer1_length" value="RWellTrackerBarrel_length"/> + <constant name="RWellTrackerBarrelLayer1_gas_rmin" value="736.7 * mm"/> + <constant name="RWellTrackerBarrelLayer1_rmin" value="RWellTrackerBarrelLayer1_gas_rmin - RWellTrackerBarrel_Kapton_thickness"/> + <constant name="RWellTrackerBarrelLayer1_thickness" value="RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness + RWellTrackerBarrel_Prepreg_thickness + RWellTrackerBarrel_Pcb_thickness"/> + + <constant name="RWellTrackerBarrelLayer2_length" value="RWellTrackerBarrel_length"/> + <constant name="RWellTrackerBarrelLayer2_gas_rmin" value="850.0 * mm"/> + <constant name="RWellTrackerBarrelLayer2_rmin" value="RWellTrackerBarrelLayer2_gas_rmin - RWellTrackerBarrel_Kapton_thickness"/> + <constant name="RWellTrackerBarrelLayer2_thickness" value="RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness + RWellTrackerBarrel_Prepreg_thickness + RWellTrackerBarrel_Pcb_thickness"/> + + <constant name="RWellTrackerBarrel_STube_thickness" value="0.5*cm"/> + <constant name="RWellTrackerBarrel_STube_length" value="7.2*cm"/> + <constant name="RWellTrackerBarrel_IRing_thickness" value="1.6*cm"/> + <constant name="RWellTrackerBarrel_IRing_length" value="1.2*cm"/> + <constant name="RWellTrackerBarrel_ORing_thickness" value="0.5*cm"/> + <constant name="RWellTrackerBarrel_ORing_length" value="1.2*cm"/> + <constant name="RWellTrackerBarrelLayer1_support_rmin" value="RWellTrackerBarrelLayer1_rmin + RWellTrackerBarrelLayer1_thickness"/> + <constant name="RWellTrackerBarrelLayer2_support_rmin" value="RWellTrackerBarrelLayer2_rmin + RWellTrackerBarrelLayer2_thickness"/> + </define> + + <limits> + </limits> + + <regions> + </regions> + + <display> + </display> + + <detectors> + <detector id="RWellTrackerBarrel_ID" name="RWellTrackerBarrel" type="refdet_RWellTrackerBarrel" readout="RWellTrackerBarrelHits"> + + <module name="Module1" vis="GreenVis"> + <module_envelope + rmin="RWellTrackerBarrelLayer1_rmin" thickness="RWellTrackerBarrelLayer1_thickness" length="RWellTrackerBarrelLayer1_length" phi="360*degree" /> + <module_component rmin="RWellTrackerBarrelLayer1_rmin" thickness="RWellTrackerBarrel_Kapton_thickness" material="Kapton" name="entrance_window" sensitive="false"/> + <module_component rmin="RWellTrackerBarrelLayer1_rmin + RWellTrackerBarrel_Kapton_thickness" thickness="RWellTrackerBarrel_Gas_thickness" material="Ar10CO2" name="drift region" sensitive="true"/> + <module_component rmin="RWellTrackerBarrelLayer1_rmin + RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness" thickness="RWellTrackerBarrel_Cu_thickness" material="Copper" name="Cu" sensitive="false"/> + <module_component rmin="RWellTrackerBarrelLayer1_rmin + RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness" thickness="RWellTrackerBarrel_Prepreg_thickness" material="Nomex" name="Prepreg" sensitive="false"/> + <module_component rmin="RWellTrackerBarrelLayer1_rmin + RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness + RWellTrackerBarrel_Prepreg_thickness" thickness="RWellTrackerBarrel_Pcb_thickness" material="Fr4" name="Pcb" sensitive="false"/> + </module> + + <module name="Module1_STube" vis="GreenVis"> + <module_envelope + rmin="RWellTrackerBarrelLayer1_support_rmin" thickness="RWellTrackerBarrel_STube_thickness" length="RWellTrackerBarrel_STube_length" phi="360*degree" /> + <module_component rmin="RWellTrackerBarrelLayer1_support_rmin" thickness="RWellTrackerBarrel_STube_thickness" material="Cfrp_intt" name="support_tube" sensitive="false"/> + </module> + <module name="Module1_IRing" vis="GreenVis"> + <module_envelope + rmin="RWellTrackerBarrelLayer1_support_rmin + RWellTrackerBarrel_STube_thickness" thickness="RWellTrackerBarrel_IRing_thickness" length="RWellTrackerBarrel_IRing_length" phi="360*degree" /> + <module_component rmin="RWellTrackerBarrelLayer1_support_rmin + RWellTrackerBarrel_STube_thickness" thickness="RWellTrackerBarrel_IRing_thickness" material="Cfrp_intt" name="support_inner_ring" sensitive="false"/> + </module> + <module name="Module1_ORing" vis="GreenVis"> + <module_envelope + rmin="RWellTrackerBarrelLayer1_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness" thickness="RWellTrackerBarrel_ORing_thickness" length="RWellTrackerBarrel_ORing_length" phi="360*degree" /> + <module_component rmin="RWellTrackerBarrelLayer1_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness" thickness="RWellTrackerBarrel_ORing_thickness" material="Cfrp_intt" name="support_outer_ring" sensitive="false"/> + </module> + + <module name="Module2" vis="GreenVis"> + <module_envelope + rmin="RWellTrackerBarrelLayer2_rmin" thickness="RWellTrackerBarrelLayer2_thickness" length="RWellTrackerBarrelLayer2_length" phi="360*degree" /> + <module_component rmin="RWellTrackerBarrelLayer2_rmin" thickness="RWellTrackerBarrel_Kapton_thickness" material="Kapton" name="entrance_window" sensitive="false"/> + <module_component rmin="RWellTrackerBarrelLayer2_rmin + RWellTrackerBarrel_Kapton_thickness" thickness="RWellTrackerBarrel_Gas_thickness" material="Ar10CO2" name="drift region" sensitive="true"/> + <module_component rmin="RWellTrackerBarrelLayer2_rmin + RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness" thickness="RWellTrackerBarrel_Cu_thickness" material="Copper" name="Cu" sensitive="false"/> + <module_component rmin="RWellTrackerBarrelLayer2_rmin + RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness" thickness="RWellTrackerBarrel_Prepreg_thickness" material="Nomex" name="Prepreg" sensitive="false"/> + <module_component rmin="RWellTrackerBarrelLayer2_rmin + RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness + RWellTrackerBarrel_Pcb_thickness" thickness="RWellTrackerBarrel_Pcb_thickness" material="Fr4" name="Pcb" sensitive="false"/> + </module> + + <module name="Module2_STube" vis="GreenVis"> + <module_envelope + rmin="RWellTrackerBarrelLayer2_support_rmin" thickness="RWellTrackerBarrel_STube_thickness" length="RWellTrackerBarrel_STube_length" phi="360*degree" /> + <module_component rmin="RWellTrackerBarrelLayer2_support_rmin" thickness="RWellTrackerBarrel_STube_thickness" material="Cfrp_intt" name="support_tube" sensitive="false"/> + </module> + <module name="Module2_IRing" vis="GreenVis"> + <module_envelope + rmin="RWellTrackerBarrelLayer2_support_rmin + RWellTrackerBarrel_STube_thickness" thickness="RWellTrackerBarrel_IRing_thickness" length="RWellTrackerBarrel_IRing_length" phi="360*degree" /> + <module_component rmin="RWellTrackerBarrelLayer2_support_rmin + RWellTrackerBarrel_STube_thickness" thickness="RWellTrackerBarrel_IRing_thickness" material="Cfrp_intt" name="support_inner_ring" sensitive="false"/> + </module> + <module name="Module2_ORing" vis="GreenVis"> + <module_envelope + rmin="RWellTrackerBarrelLayer2_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness" thickness="RWellTrackerBarrel_ORing_thickness" length="RWellTrackerBarrel_ORing_length" phi="360*degree" /> + <module_component rmin="RWellTrackerBarrelLayer2_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness" thickness="RWellTrackerBarrel_ORing_thickness" material="Cfrp_intt" name="support_outer_ring" sensitive="false"/> + </module> + + <layer module="Module1" id="1" vis="GreenVis"> + <barrel_envelope + inner_r="RWellTrackerBarrelLayer1_rmin" + outer_r="RWellTrackerBarrelLayer1_rmin + RWellTrackerBarrelLayer1_thickness" + z_length="RWellTrackerBarrel_length" /> + <rphi_layout phi_tilt="0.0" nphi="1" phi0="0." rc="RWellTrackerBarrelLayer1_rmin" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="-RWellTrackerBarrel_length/2.0 + RWellTrackerBarrelLayer1_length/2.0" + nz="RWellTrackerBarrel_NZModules"/> + </layer> + <layer module="Module1_STube" id="2" vis="InvisibleWithDaughters"> + <barrel_envelope + inner_r="RWellTrackerBarrelLayer1_support_rmin" + outer_r="RWellTrackerBarrelLayer1_support_rmin + RWellTrackerBarrel_STube_thickness" + z_length="RWellTrackerBarrel_length" /> + <rphi_layout phi_tilt="0.0" nphi="1" phi0="0." rc="RWellTrackerBarrelLayer1_support_rmin" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="-RWellTrackerBarrel_length/2.0 + RWellTrackerBarrel_STube_length/2.0" + nz="RWellTrackerBarrel_NZSupport"/> + </layer> + <layer module="Module1_IRing" id="3" vis="InvisibleWithDaughters"> + <barrel_envelope + inner_r="RWellTrackerBarrelLayer1_support_rmin + RWellTrackerBarrel_STube_thickness" + outer_r="RWellTrackerBarrelLayer1_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness" + z_length="RWellTrackerBarrel_length" /> + <rphi_layout phi_tilt="0.0" nphi="1" phi0="0." rc="RWellTrackerBarrelLayer1_support_rmin + RWellTrackerBarrel_STube_thickness" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="-RWellTrackerBarrel_length/2.0 + RWellTrackerBarrel_IRing_length/2.0" + nz="RWellTrackerBarrel_NZSupport"/> + </layer> + <layer module="Module1_ORing" id="4" vis="InvisibleWithDaughters"> + <barrel_envelope + inner_r="RWellTrackerBarrelLayer1_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness" + outer_r="RWellTrackerBarrelLayer1_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness + RWellTrackerBarrel_ORing_thickness" + z_length="RWellTrackerBarrel_length" /> + <rphi_layout phi_tilt="0.0" nphi="1" phi0="0." rc="RWellTrackerBarrelLayer1_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="-RWellTrackerBarrel_length/2.0 + RWellTrackerBarrel_ORing_length/2.0" + nz="RWellTrackerBarrel_NZSupport"/> + </layer> + + <layer module="Module2" id="5" vis="GreenVis"> + <barrel_envelope + inner_r="RWellTrackerBarrelLayer2_rmin" + outer_r="RWellTrackerBarrelLayer2_rmin + RWellTrackerBarrelLayer2_thickness" + z_length="RWellTrackerBarrel_length" /> + <rphi_layout phi_tilt="0.0" nphi="1" phi0="0." rc="RWellTrackerBarrelLayer2_rmin" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="-RWellTrackerBarrel_length/2.0 + RWellTrackerBarrelLayer2_length/2.0" + nz="RWellTrackerBarrel_NZModules"/> + </layer> + <layer module="Module2_STube" id="6" vis="InvisibleWithDaughters"> + <barrel_envelope + inner_r="RWellTrackerBarrelLayer2_support_rmin" + outer_r="RWellTrackerBarrelLayer2_support_rmin + RWellTrackerBarrel_STube_thickness" + z_length="RWellTrackerBarrel_length" /> + <rphi_layout phi_tilt="0.0" nphi="1" phi0="0." rc="RWellTrackerBarrelLayer2_support_rmin" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="-RWellTrackerBarrel_length/2.0 + RWellTrackerBarrel_STube_length/2.0" + nz="RWellTrackerBarrel_NZSupport"/> + </layer> + <layer module="Module2_IRing" id="7" vis="InvisibleWithDaughters"> + <barrel_envelope + inner_r="RWellTrackerBarrelLayer2_support_rmin + RWellTrackerBarrel_STube_thickness" + outer_r="RWellTrackerBarrelLayer2_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness" + z_length="RWellTrackerBarrel_length" /> + <rphi_layout phi_tilt="0.0" nphi="1" phi0="0." rc="RWellTrackerBarrelLayer2_support_rmin + RWellTrackerBarrel_STube_thickness" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="-RWellTrackerBarrel_length/2.0 + RWellTrackerBarrel_IRing_length/2.0" + nz="RWellTrackerBarrel_NZSupport"/> + </layer> + <layer module="Module2_ORing" id="8" vis="InvisibleWithDaughters"> + <barrel_envelope + inner_r="RWellTrackerBarrelLayer2_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness" + outer_r="RWellTrackerBarrelLayer2_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness + RWellTrackerBarrel_ORing_thickness" + z_length="RWellTrackerBarrel_length" /> + <rphi_layout phi_tilt="0.0" nphi="1" phi0="0." rc="RWellTrackerBarrelLayer2_support_rmin + RWellTrackerBarrel_STube_thickness + RWellTrackerBarrel_IRing_thickness" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="-RWellTrackerBarrel_length/2.0 + RWellTrackerBarrel_ORing_length/2.0" + nz="RWellTrackerBarrel_NZSupport"/> + </layer> + + </detector> + + </detectors> + + <readouts> + <readout name="RWellTrackerBarrelHits"> + <segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" /> + <id>system:8,barrel:3,layer:4,module:7,sensor:2,x:32:-16,y:-16</id> + </readout> + </readouts> + + <plugins> + </plugins> + + <fields> + </fields> +</lccdd> diff --git a/reference_detector.xml b/reference_detector.xml index 5537e71eba0e1dd87bb5c70519b8c28226d3d92d..07eaa5085b1311b3271825f4d94872d937c47541 100644 --- a/reference_detector.xml +++ b/reference_detector.xml @@ -135,7 +135,8 @@ <include ref="compact/mm_tracker_barrel.xml"/> <include ref="compact/cb_VTX_Barrel.xml"/> --> - + + <include ref="compact/rwell_tracker_barrel.xml"/> <detectors> </detectors> diff --git a/src/CylinderTrackerBarrel_geo.cpp b/src/CylinderTrackerBarrel_geo.cpp index 6ad205f6567753f86ca813785ef179b86fcd5d31..0a4d3265fe3231a7c2916135d424eb61879920a4 100644 --- a/src/CylinderTrackerBarrel_geo.cpp +++ b/src/CylinderTrackerBarrel_geo.cpp @@ -191,3 +191,4 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s // clang-format off DECLARE_DETELEMENT(refdet_CylinderTrackerBarrel, create_detector) DECLARE_DETELEMENT(refdet_MMTrackerBarrel, create_detector) +DECLARE_DETELEMENT(refdet_RWellTrackerBarrel, create_detector)