<lccdd> <comment> Simplified All Silicon Tracker based on: https://github.com/reynier0611/g4lblvtx/blob/master/macros/auxiliary_studies/simplified_geometry/Fun4All_G4_simplified_v2.C With some added info on ITS3 chip from https://indico.bnl.gov/event/10677/contributions/45591/attachments/33204/53254/20210318-IR2%40EIC-SVT.pdf To be used as standin until we get more detailed specs from the working group on the tracker. Note that most details are replaced with Note: initial implementation with hard-coded values, TODO: add parametrization </comment> <define> <constant name="VtxRadius1" value="3.3*cm"/> <constant name="VtxRadius2" value="5.7*cm"/> <constant name="VtxLength" value="30*cm"/> <constant name="VtxThickness" value="0.05/100*9.37*cm"/> <constant name="VtxServiceThickness" value="VtxThickness-ITS3Thickness"/> <constant name="TrkBarrelThickness" value="0.55/100*9.37*cm"/> <constant name="TrkBarrelServiceThickness" value="TrkBarrelThickness-ITS3Thickness"/> <constant name="TrkBarrel1Radius1" value="21.0*cm"/> <constant name="TrkBarrel1Radius2" value="22.68*cm"/> <constant name="TrkBarrel1Length1" value="54.0*cm"/> <constant name="TrkBarrel1Length2" value="60.0*cm"/> <constant name="TrkBarrel2Radius1" value="39.3*cm"/> <constant name="TrkBarrel2Radius2" value="43.23*cm"/> <constant name="TrkBarrel2Length1" value="105.0*cm"/> <constant name="TrkBarrel2Length2" value="114.0*cm"/> <constant name="TrkDiskThickness" value="0.25/100*9.37*cm"/> <constant name="TrkDiskServiceThickness" value="TrkDiskThickness-ITS3Thickness"/> <constant name="TrkNumOuterDisks" value="3"/> <constant name="TrkInnerDisk1_z" value="25.0*cm"/> <constant name="TrkInnerDisk2_z" value="49.0*cm"/> <constant name="TrkOuterDisk_zmin" value="73.0*cm"/> <constant name="TrkOuterDisk_zmax" value="121.0*cm"/> <constant name="TrkOuterDisk_deltaz" value="(TrkOuterDisk_zmax-TrkOuterDisk_zmin)/(TrkNumOuterDisks-1)" /> <constant name="TrkInnerDisk1_rmin" value="0.05025461*TrkInnerDisk1_z-0.180808*cm"/> <constant name="TrkInnerDisk2_rmin" value="0.05025461*TrkInnerDisk2_z-0.180808*cm"/> <constant name="TrkOuterDisk_rmin" value="3.18*cm"/> <constant name="TrkInnerDisk1_rmax" value="18.5*TrkInnerDisk1_z/TrkInnerDisk1_z*cm"/> <constant name="TrkInnerDisk2_rmax" value="18.5*TrkInnerDisk2_z/TrkInnerDisk1_z*cm"/> <constant name="TrkOuterDisk_rmax" value="43.23*cm"/> </define> <limits> </limits> <regions> </regions> <display> </display> <detectors> <detector id="AllSiliconVtx_ID" name="AllSiliconVtx" type="refdet_CylinderTrackerBarrel" readout="ITS3Hits"> <module name="Module1" vis="AnlGreen"> <module_envelope rmin="VtxRadius1" thickness="VtxThickness" length="VtxLength" phi="360*degree" /> <module_component rmin="VtxRadius1" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" /> <module_component rmin="VtxRadius1 + ITS3Thickness" thickness="VtxServiceThickness" material="Silicon" name="VtxServices" /> </module> <module name="Module2" vis="AnlGreen"> <module_envelope rmin="VtxRadius2" thickness="VtxThickness" length="VtxLength" phi="360*degree" /> <module_component rmin="VtxRadius2" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" /> <module_component rmin="VtxRadius2 + ITS3Thickness" thickness="VtxServiceThickness" material="Silicon" name="VtxServices" /> </module> <layer module="Module1" id="1" vis="AnlGreen"> <barrel_envelope inner_r="VtxRadius1" outer_r="VtxRadius1 + VtxThickness" z_length="VtxLength" /> <rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="VtxRadius1" dr="0.0*mm" /> <z_layout dr="0.0*mm" z0="0" nz="1" /> </layer> <layer module="Module2" id="2" vis="AnlGreen"> <barrel_envelope inner_r="VtxRadius2" outer_r="VtxRadius2 + VtxThickness" z_length="VtxLength" /> <rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="VtxRadius2" dr="0.0*mm" /> <z_layout dr="0.0*mm" z0="0" nz="1" /> </layer> </detector> <detector id="AllSiliconTrk1Assembly_ID" name="AllSiliconTrkAssembly1" type="DD4hep_SubdetectorAssembly" vis="AnlGreen"> <composite name="AllSiliconTrkDisk1N" /> <composite name="AllSiliconTrkDisk1P" /> <composite name="AllSiliconBarrel1" /> </detector> <detector id="AllSiliconTrkBarrel1_ID" name="AllSiliconTrkBarrel1" type="refdet_CylinderTrackerBarrel" readout="ITS3Hits"> <module name="Module1" id="1" vis="AnlGreen"> <module_envelope rmin="TrkBarrel1Radius1" thickness="TrkBarrelThickness" length="TrkBarrel1Length1" phi="360*degree" /> <module_component rmin="TrkBarrel1Radius1" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" /> <module_component rmin="TrkBarrel1Radius1 + ITS3Thickness" thickness="TrkBarrelServiceThickness" material="Silicon" name="TrkBarrel1Services" /> </module> <module name="Module2" id="2" vis="AnlGreen"> <module_envelope rmin="TrkBarrel1Radius2" thickness="TrkBarrelThickness" length="TrkBarrel1Length2" phi="360*degree" /> <module_component rmin="TrkBarrel1Radius2" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" /> <module_component rmin="TrkBarrel1Radius2 + ITS3Thickness" thickness="TrkBarrelServiceThickness" material="Silicon" name="TrkBarrel1Services" /> </module> <layer module="Module1" id="1" vis="AnlGreen"> <barrel_envelope inner_r="TrkBarrel1Radius1" outer_r="TrkBarrel1Radius1 + TrkBarrelThickness" z_length="TrkBarrel1Length1" /> <rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="TrkBarrel1Radius1" dr="0.0*mm" /> <z_layout dr="0.0*mm" z0="0" nz="1" /> </layer> <layer module="Module2" id="2" vis="AnlGreen"> <barrel_envelope inner_r="TrkBarrel1Radius2" outer_r="TrkBarrel1Radius2 + TrkBarrelThickness" z_length="TrkBarrel1Length2" /> <rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="TrkBarrel1Radius2" dr="0.0*mm" /> <z_layout dr="0.0*mm" z0="0" nz="1" /> </layer> </detector> <detector id="AllSiliconTrkDisk1N_ID" name="AllSiliconTrkDisk1N" type="ref_DiskTracker" insideTrackingVolume="true" reflect="true" vis="kAnlGreen"> <position x="0" y="0" z="0"/> <layer id="1" vis="AnlGreen" inner_z="TrkInnerDisk1_z" inner_r="TrkInnerDisk1_rmin" outer_r="TrkInnerDisk1_rmax"> <slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" /> </layer> </detector> <detector id="AllSiliconTrkDisk1P_ID" name="AllSiliconTrkDisk1P" type="ref_DiskTracker" insideTrackingVolume="true" reflect="false" vis="kAnlGreen"> <position x="0" y="0" z="0"/> <layer id="1" vis="AnlGreen" inner_z="TrkInnerDisk1_z" inner_r="TrkInnerDisk1_rmin" outer_r="TrkInnerDisk1_rmax"> <slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" /> </layer> </detector> <detector id="AllSiliconTrk2Assembly_ID" name="AllSiliconTrkAssembly2" type="DD4hep_SubdetectorAssembly" vis="AnlGreen"> <composite name="AllSiliconTrkDisk2N" /> <composite name="AllSiliconTrkDisk2P" /> <composite name="AllSiliconBarrel2" /> </detector> <detector id="AllSiliconTrkBarrel2_ID" name="AllSiliconTrkBarrel2" type="refdet_CylinderTrackerBarrel" readout="ITS3Hits"> <module name="Module1" id="1" vis="AnlGreen"> <module_envelope rmin="TrkBarrel2Radius1" thickness="TrkBarrelThickness" length="TrkBarrel2Length1" phi="360*degree" /> <module_component rmin="TrkBarrel2Radius1" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" /> <module_component rmin="TrkBarrel2Radius1 + ITS3Thickness" thickness="TrkBarrelServiceThickness" material="Silicon" name="TrkBarrel2Services" /> </module> <module name="Module2" id="2" vis="AnlGreen"> <module_envelope rmin="TrkBarrel2Radius2" thickness="TrkBarrelThickness" length="TrkBarrel2Length2" phi="360*degree" /> <module_component rmin="TrkBarrel2Radius2" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" /> <module_component rmin="TrkBarrel2Radius2 + ITS3Thickness" thickness="TrkBarrelServiceThickness" material="Silicon" name="TrkBarrel2Services" /> </module> <layer module="Module1" id="1" vis="AnlGreen"> <barrel_envelope inner_r="TrkBarrel2Radius1" outer_r="TrkBarrel2Radius1 + TrkBarrelThickness" z_length="TrkBarrel2Length1" /> <rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="TrkBarrel2Radius1" dr="0.0*mm" /> <z_layout dr="0.0*mm" z0="0" nz="1" /> </layer> <layer module="Module2" id="2" vis="AnlGreen"> <barrel_envelope inner_r="TrkBarrel2Radius2" outer_r="TrkBarrel2Radius2 + TrkBarrelThickness" z_length="TrkBarrel2Length2" /> <rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="TrkBarrel2Radius2" dr="0.0*mm" /> <z_layout dr="0.0*mm" z0="0" nz="1" /> </layer> </detector> <detector id="AllSiliconTrkDisk2N_ID" name="AllSiliconTrkDisk2N" type="ref_DiskTracker" insideTrackingVolume="true" reflect="true" vis="kAnlGreen"> <position x="0" y="0" z="0"/> <layer id="1" vis="AnlGreen" inner_z="TrkInnerDisk2_z" inner_r="TrkInnerDisk2_rmin" outer_r="TrkInnerDisk2_rmax"> <!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/--> <!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /--> <slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" /> </layer> </detector> <detector id="AllSiliconTrkDisk2P_ID" name="AllSiliconTrkDisk2P" type="ref_DiskTracker" insideTrackingVolume="true" reflect="false" vis="kAnlGreen"> <position x="0" y="0" z="0"/> <layer id="1" vis="AnlGreen" inner_z="TrkInnerDisk2_z" inner_r="TrkInnerDisk2_rmin" outer_r="TrkInnerDisk2_rmax"> <!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/--> <!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /--> <slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" /> </layer> </detector> <detector id="AllSiliconTrkOuterN_ID" name="AllSiliconTrkOuterN" type="ref_DiskTracker" insideTrackingVolume="true" reflect="true" vis="kAnlGreen"> <position x="0" y="0" z="0"/> <layer id="1" vis="AnlGreen" inner_z="TrkOuterDisk_zmin" inner_r="TrkOuterDisk_rmin" outer_r="TrkOuterDisk_rmax"> <slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" /> </layer> <layer id="2" vis="AnlGreen" inner_z="TrkOuterDisk_zmin + 1 * TrkOuterDisk_deltaz" inner_r="TrkOuterDisk_rmin" outer_r="TrkOuterDisk_rmax"> <!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/--> <!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /--> <slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" /> </layer> <layer id="3" vis="AnlGreen" inner_z="TrkOuterDisk_zmin + 2 * TrkOuterDisk_deltaz" inner_r="TrkOuterDisk_rmin" outer_r="TrkOuterDisk_rmax"> <!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/--> <!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /--> <slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" /> </layer> </detector> <detector id="AllSiliconTrkOuterP_ID" name="AllSiliconTrkOuterP" type="ref_DiskTracker" insideTrackingVolume="true" reflect="false" vis="kAnlGreen"> <position x="0" y="0" z="0"/> <layer id="1" vis="AnlGreen" inner_z="TrkOuterDisk_zmin" inner_r="TrkOuterDisk_rmin" outer_r="TrkOuterDisk_rmax"> <slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" /> </layer> <layer id="2" vis="AnlGreen" inner_z="TrkOuterDisk_zmin + 1 * TrkOuterDisk_deltaz" inner_r="TrkOuterDisk_rmin" outer_r="TrkOuterDisk_rmax"> <!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/--> <!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /--> <slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" /> </layer> <layer id="3" vis="AnlGreen" inner_z="TrkOuterDisk_zmin + 2 * TrkOuterDisk_deltaz" inner_r="TrkOuterDisk_rmin" outer_r="TrkOuterDisk_rmax"> <!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/--> <!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /--> <slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" /> </layer> </detector> </detectors> <readouts> <readout name="ITS3Hits"> <segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" /> <id>system:8,barrel:2,layer:4,module:7,sensor:2,x:30:-17,y:-17</id> </readout> </readouts> <plugins> </plugins> <fields> </fields> </lccdd>