-
Sylvester Joosten authoredSylvester Joosten authored
allsilicon_simplified.xml 13.65 KiB
<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>