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>