Back to home page

EIC code displayed by LXR

 
 

    


Warning, /epic/compact/tracking/vertex_barrel.xml is written in an unsupported language. File is not indexed.

0001 <!-- SPDX-License-Identifier: LGPL-3.0-or-later -->
0002 <!-- Copyright (C) 2026 Sylvester Joosten, Whitney Armstrong, Shujie Li -->
0003 
0004 <lccdd>
0005   <define>
0006     <constant name="SiVertexSensorCu_thickness"         value="2.5*um" />
0007     <constant name="SiVertexSensorActiveSi_thickness"   value="14*um" />
0008     <constant name="SiVertexSensorInactiveSi_thickness" value="36*um" />
0009     <constant name="SiVertexSensor_thickness"
0010       value="SiVertexSensorCu_thickness + SiVertexSensorActiveSi_thickness + SiVertexSensorInactiveSi_thickness" />
0011     <comment>Radial order: inactive Si (substrate), active Si (epitaxial), then Cu (metal layer) at larger R.</comment>
0012 
0013     <comment>
0014       One physical RSU is one module. Its 14 um silicon layer contains two rows
0015       of six sensitive tiles; the silicon between tiles remains inactive.
0016     </comment>
0017 
0018     <constant name="RSU_width"   value="19.564*mm" />
0019     <constant name="RSU_length"  value="21.666*mm" />
0020     <constant name="RSUHalf_rphi" value="RSU_width/2" />
0021     <constant name="RSUHalf_z" value="RSU_length/2" />
0022     <constant name="RSUBackbone_z" value="0.060*mm" />
0023     <constant name="RSUBiasing_rphi" value="0.060*mm" />
0024     <constant name="RSUReadout_rphi" value="0.525*mm" />
0025     <constant name="RSUPower_z" value="0.020*mm" />
0026     <constant name="RSURows_rphi" value="2" />
0027     <constant name="RSUHalves_z" value="2" />
0028     <constant name="RSUTiles_per_z_half" value="3" />
0029     <constant name="RSUTile_rphi"
0030       value="RSUHalf_rphi - RSUBiasing_rphi - RSUReadout_rphi" />
0031     <constant name="RSUTilePitch_z"
0032       value="(RSUHalf_z - RSUBackbone_z)/RSUTiles_per_z_half" />
0033     <constant name="RSUTile_z" value="RSUTilePitch_z - RSUPower_z" />
0034 
0035     <constant name="VertexBarrelMod_length" value="RSU_length" />
0036     <constant name="VertexBarrelLayer_nz" value="12" />
0037     <comment>Number of physical RSUs around each barrel layer.</comment>
0038     <constant name="VertexBarrelL0_nphi" value="12" />
0039     <constant name="VertexBarrelL1_nphi" value="16" />
0040     <constant name="VertexBarrelL2_nphi" value="40" />
0041 
0042     <constant name="VertexBarrelStaveL0_width" value="RSU_width" />
0043     <constant name="VertexBarrelStaveL1_width" value="RSU_width" />
0044     <constant name="VertexBarrelStaveL2_width" value="RSU_width" />
0045 
0046     <comment>
0047       The layer radii follow the support drawing in vertex_barrel_support.xml.
0048       L1 and L2 include a 1 um clearance from the support.
0049     </comment>
0050     <constant name="VertexBarrelMod_thickness" value="0.2*mm" />
0051     <constant name="VertexBarrelModL0_rmin" value="38*mm" />
0052     <constant name="VertexBarrelModL1_rmin" value="50.3*mm+1*um" />
0053     <constant name="VertexBarrelModL2_rmin" value="125.2*mm+1*um" />
0054 
0055     <comment>The segmentation radius is the center of the 14 um active-silicon layer.</comment>
0056     <constant name="VertexBarrelSegL0_r" value="VertexBarrelModL0_rmin+SiVertexSensorInactiveSi_thickness+SiVertexSensorActiveSi_thickness/2.0" />
0057     <constant name="VertexBarrelSegL1_r" value="VertexBarrelModL1_rmin+SiVertexSensorInactiveSi_thickness+SiVertexSensorActiveSi_thickness/2.0" />
0058     <constant name="VertexBarrelSegL2_r" value="VertexBarrelModL2_rmin+SiVertexSensorInactiveSi_thickness+SiVertexSensorActiveSi_thickness/2.0" />
0059 
0060     <comment>
0061       The two barrel half-shell seams need extra azimuthal clearance. Convert
0062       the 1 mm clearance to an angle at the active-silicon radius.
0063     </comment>
0064     <constant name="VertexBarrelMod_vert_off" value="1.0*mm" />
0065     <constant name="VertexBarrelModL0_dphi" value="VertexBarrelMod_vert_off/VertexBarrelSegL0_r" />
0066     <constant name="VertexBarrelModL1_dphi" value="VertexBarrelMod_vert_off/VertexBarrelSegL1_r" />
0067     <constant name="VertexBarrelModL2_dphi" value="VertexBarrelMod_vert_off/VertexBarrelSegL2_r" />
0068 
0069     <constant name="VertexBarrelEnvelope_length" value="VertexTrackingRegion_length"/>
0070     <comment>All three sensor layers have the same length and z alignment.</comment>
0071     <constant name="VertexBarrelLayer_length" value="VertexBarrelMod_length*VertexBarrelLayer_nz" />
0072     <constant name="VertexBarrelLayer_zoff"   value="0"  />
0073     <constant name="VertexBarrelLayer_zstart" value="-VertexBarrelLayer_length/2+VertexBarrelLayer_zoff" />
0074     <constant name="VertexBarrelLayer_z0"     value=" VertexBarrelLayer_zstart + VertexBarrelMod_length/2 " />
0075 
0076     <constant name="VertexBarrelLayer_thickness" value="VertexBarrelMod_thickness" />
0077     <constant name="VertexBarrelLayer0_rmin"  value="VertexBarrelModL0_rmin" />
0078     <constant name="VertexBarrelLayer0_rmax"  value="VertexBarrelLayer0_rmin + VertexBarrelLayer_thickness" />
0079     <constant name="VertexBarrelLayer1_rmin"  value="VertexBarrelModL1_rmin" />
0080     <constant name="VertexBarrelLayer1_rmax"  value="VertexBarrelLayer1_rmin + VertexBarrelLayer_thickness" />
0081     <constant name="VertexBarrelLayer2_rmin"  value="VertexBarrelModL2_rmin" />
0082     <constant name="VertexBarrelLayer2_rmax"  value="VertexBarrelLayer2_rmin + VertexBarrelLayer_thickness" />
0083 
0084   </define>
0085 
0086   <detectors>
0087     <documentation level="5">
0088       ### Actual detectors
0089     </documentation>
0090     <detector
0091       id="VertexBarrel_0_ID"
0092       name="VertexBarrel"
0093       type="epic_CylinderSVTBarrel"
0094       readout="VertexBarrelHits"
0095       insideTrackingVolume="true">
0096       <type_flags type="DetType_TRACKER + DetType_BARREL" />
0097       <comment>
0098         Each module is one complete RSU. The 36 um inactive Si and 2.5 um Cu
0099         cover the full RSU. The 14 um Si also covers the full RSU, but only its
0100         twelve 2x6 tile regions are sensitive. Cu is always at larger radius.
0101       </comment>
0102       <rsu_layout
0103         passive_vis="SVTReadoutVis"
0104         rows_rphi="RSURows_rphi"
0105         halves_z="RSUHalves_z"
0106         tiles_per_z_half="RSUTiles_per_z_half"
0107         backbone_z="RSUBackbone_z"
0108         biasing_rphi="RSUBiasing_rphi"
0109         readout_rphi="RSUReadout_rphi"
0110         power_z="RSUPower_z"
0111         tile_rphi="RSUTile_rphi"
0112         tile_pitch_z="RSUTilePitch_z"
0113         tile_z="RSUTile_z" />
0114       <module name="Module0" rmin="VertexBarrelModL0_rmin" width="VertexBarrelStaveL0_width"
0115         length="VertexBarrelMod_length">
0116         <module_component name="InactiveSi"
0117           material="Silicon"
0118           sensitive="false"
0119           thickness="SiVertexSensorInactiveSi_thickness"
0120           vis="VertexLayerVis" />
0121         <module_component name="ActiveSi"
0122           material="Silicon"
0123           sensitive="true"
0124           thickness="SiVertexSensorActiveSi_thickness"
0125           vis="VertexLayerVis" />
0126         <module_component name="Cu"
0127           material="Copper"
0128           sensitive="false"
0129           thickness="SiVertexSensorCu_thickness"
0130           vis="SVTReadoutVis" />
0131       </module>
0132 
0133       <module name="Module1" rmin="VertexBarrelModL1_rmin" width="VertexBarrelStaveL1_width"
0134         length="VertexBarrelMod_length">
0135         <module_component name="InactiveSi"
0136           material="Silicon"
0137           sensitive="false"
0138           thickness="SiVertexSensorInactiveSi_thickness"
0139           vis="VertexLayerVis" />
0140         <module_component name="ActiveSi"
0141           material="Silicon"
0142           sensitive="true"
0143           thickness="SiVertexSensorActiveSi_thickness"
0144           vis="VertexLayerVis" />
0145         <module_component name="Cu"
0146           material="Copper"
0147           sensitive="false"
0148           thickness="SiVertexSensorCu_thickness"
0149           vis="SVTReadoutVis" />
0150       </module>
0151 
0152       <module name="Module2" rmin="VertexBarrelModL2_rmin" width="VertexBarrelStaveL2_width"
0153         length="VertexBarrelMod_length">
0154         <module_component name="InactiveSi"
0155           material="Silicon"
0156           sensitive="false"
0157           thickness="SiVertexSensorInactiveSi_thickness"
0158           vis="VertexLayerVis" />
0159         <module_component name="ActiveSi"
0160           material="Silicon"
0161           sensitive="true"
0162           thickness="SiVertexSensorActiveSi_thickness"
0163           vis="VertexLayerVis" />
0164         <module_component name="Cu"
0165           material="Copper"
0166           sensitive="false"
0167           thickness="SiVertexSensorCu_thickness"
0168           vis="SVTReadoutVis" />
0169       </module>
0170 
0171       <comment>Each layer places complete RSUs around phi and along z.</comment>
0172       <comment> L0 </comment>
0173       <layer module="Module0" id="0" vis="VertexLayerVis">
0174         <barrel_envelope
0175           inner_r="VertexBarrelLayer0_rmin"
0176           outer_r="VertexBarrelLayer0_rmax"
0177           z_length="VertexBarrelLayer_length" />
0178         <layer_material surface="inner" binning="binPhi,binZ" bins0="VertexBarrelL0_nphi"
0179           bins1="100" />
0180         <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelL0_nphi"
0181           bins1="100" />
0182         <comment>`phi0` leaves clearance at the half-shell seams; `z0` is the first RSU center.</comment>
0183         <rphi_layout nphi="VertexBarrelL0_nphi" phi0="VertexBarrelModL0_dphi" dr="0.0 * mm" />
0184         <z_layout z0="VertexBarrelLayer_z0" nz="VertexBarrelLayer_nz" />
0185       </layer>
0186       <comment> FPC cables for L0 </comment>
0187 
0188       <comment> L1 </comment>
0189       <layer module="Module1" id="1" vis="VertexLayerVis">
0190         <barrel_envelope
0191           inner_r="VertexBarrelLayer1_rmin"
0192           outer_r="VertexBarrelLayer1_rmax"
0193           z_length="VertexBarrelLayer_length" />
0194         <layer_material surface="inner" binning="binPhi,binZ" bins0="VertexBarrelL1_nphi"
0195           bins1="100" />
0196         <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelL1_nphi"
0197           bins1="100" />
0198         <rphi_layout nphi="VertexBarrelL1_nphi" phi0="VertexBarrelModL1_dphi"  dr="0.0 * mm" />
0199         <z_layout z0="VertexBarrelLayer_z0" nz="VertexBarrelLayer_nz" />
0200       </layer>
0201 
0202       <comment> L2 </comment>
0203       <layer module="Module2" id="2" vis="VertexLayerVis">
0204         <barrel_envelope
0205           inner_r="VertexBarrelLayer2_rmin"
0206           outer_r="VertexBarrelLayer2_rmax"
0207           z_length="VertexBarrelLayer_length" />
0208         <layer_material surface="inner" binning="binPhi,binZ" bins0="VertexBarrelL2_nphi"
0209           bins1="100" />
0210         <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelL2_nphi"
0211           bins1="100" />
0212         <rphi_layout nphi="VertexBarrelL2_nphi" phi0="VertexBarrelModL2_dphi" dr="0.0 * mm" />
0213         <z_layout z0="VertexBarrelLayer_z0" nz="VertexBarrelLayer_nz" />
0214       </layer>
0215     </detector>
0216   </detectors>
0217 
0218   <plugins>
0219     <plugin name="DD4hep_ParametersPlugin">
0220       <argument value="VertexBarrel" />
0221       <argument value="layer_pattern: str=VertexBarrel_layer\d" />
0222     </plugin>
0223   </plugins>
0224 
0225   <readouts>
0226     <readout name="VertexBarrelHits">
0227       <segmentation type="MultiSegmentation" key="layer">
0228         <segmentation name="L0" type="CylindricalGridPhiZ" key_value="0"
0229           grid_size_phi="0.02*mm/VertexBarrelSegL0_r" grid_size_z="0.02*mm"
0230           radius="VertexBarrelSegL0_r" />
0231         <segmentation name="L1" type="CylindricalGridPhiZ" key_value="1"
0232           grid_size_phi="0.02*mm/VertexBarrelSegL1_r" grid_size_z="0.02*mm"
0233           radius="VertexBarrelSegL1_r" />
0234         <segmentation name="L2" type="CylindricalGridPhiZ" key_value="2"
0235           grid_size_phi="0.02*mm/VertexBarrelSegL2_r" grid_size_z="0.02*mm"
0236           radius="VertexBarrelSegL2_r" />
0237       </segmentation>
0238       <id>system:8,layer:4,module:12,sensor:4,phi:32:-16,z:-16</id>
0239     </readout>
0240   </readouts>
0241 
0242 </lccdd>