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) 2025 Sylvester Joosten, Whitney Armstrong, Shujie Li -->
0003
0004 <lccdd>
0005 <define>
0006 <constant name="SiVertexSensor_thickness" value="40*um" />
0007
0008 <comment>
0009 1 RSU = 2x6 tiles with inactive areas == 2x2 sections
0010 1 section (module) = 3-tiles along z
0011 1 "stave" = 1 row of 12 RSU
0012 </comment>
0013
0014 <constant name="RSU_width" value="19.564*mm" />
0015 <constant name="RSU_length" value="21.666*mm" />
0016 <constant name="Periphery_width" value="0.398*mm"/>
0017 <constant name="bias_width" value="0.06*mm"/>
0018 <constant name="backbone_width" value="0.09*mm"/>
0019 <constant name="Section_width" value="RSU_width/2-bias_width-Periphery_width"/>
0020 <constant name="Section_length" value="RSU_length/2-backbone_width"/>
0021
0022 <constant name="VertexBarrelMod_length" value="RSU_length/2" />
0023 <constant name="VertexBarrelLayer_nz" value="12*2" />
0024 <comment>
0025 # of RSU in phi: 12, 16, 40 RSUs = 24, 32, 80 sections
0026 </comment>
0027 <constant name="VertexBarrelL0_nphi" value="12*2" />
0028 <constant name="VertexBarrelL1_nphi" value="16*2" />
0029 <constant name="VertexBarrelL2_nphi" value="40*2" />
0030
0031 <constant name="VertexBarrelStaveL0_width" value="RSU_width/2" />
0032 <constant name="VertexBarrelStaveL1_width" value="RSU_width/2" />
0033 <constant name="VertexBarrelStaveL2_width" value="RSU_width/2" />
0034
0035 <comment>
0036 the radius here include a gap b/w upper and lower half.
0037 L0 and L1 values from drawing (see vertex_barrel_support.xml)
0038 </comment>
0039 <constant name="VertexBarrelMod_thickness" value="0.2*mm" />
0040 <constant name="VertexBarrelModL0_rmin" value="38*mm" />
0041 <constant name="VertexBarrelModL1_rmin" value="50.3*mm+1*um" />
0042 <constant name="VertexBarrelModL2_rmin" value="125.2*mm+1*um" />
0043
0044 <constant name="VertexBarrelMod_vert_off" value="1.0*mm" /> <comment>roughly (38.15*2pi-234.8)/4 </comment>
0045 <constant name="VertexBarrelModL0_dphi" value="VertexBarrelMod_vert_off/VertexBarrelModL0_rmin" />
0046 <constant name="VertexBarrelModL1_dphi" value="VertexBarrelMod_vert_off/VertexBarrelModL1_rmin" />
0047 <constant name="VertexBarrelModL2_dphi" value="VertexBarrelMod_vert_off/VertexBarrelModL2_rmin" />
0048
0049 <documentation>
0050 for the segmentation. Assume sensors are placed at the inner most surface for each layer
0051 </documentation>
0052 <constant name="VertexBarrelSegL0_r" value="VertexBarrelModL0_rmin+SiVertexSensor_thickness/2.0" />
0053 <constant name="VertexBarrelSegL1_r" value="VertexBarrelModL1_rmin+SiVertexSensor_thickness/2.0" />
0054 <constant name="VertexBarrelSegL2_r" value="VertexBarrelModL2_rmin+SiVertexSensor_thickness/2.0" />
0055
0056 <constant name="VertexBarrelEnvelope_length" value="VertexTrackingRegion_length"/> <comment>place holder, not used for now bur required for CI checks</comment>
0057 <documentation>
0058 - Currently there are 3 sensor layers: Layer 1,2,3 = L0, L1, L2.
0059 - assume they are of the same length and aligned.
0060 </documentation>
0061 <constant name="VertexBarrelLayer_length" value="VertexBarrelMod_length*VertexBarrelLayer_nz" />
0062 <constant name="VertexBarrelLayer_zoff" value="0" />
0063 <constant name="VertexBarrelLayer_zstart" value="-VertexBarrelLayer_length/2+VertexBarrelLayer_zoff" />
0064 <constant name="VertexBarrelLayer_z0" value=" VertexBarrelLayer_zstart + VertexBarrelMod_length/2 " />
0065
0066 <constant name="VertexBarrelLayer_thickness" value="VertexBarrelMod_thickness" />
0067 <constant name="VertexBarrelLayer0_rmin" value="VertexBarrelModL0_rmin" />
0068 <constant name="VertexBarrelLayer0_rmax" value="VertexBarrelLayer0_rmin + VertexBarrelLayer_thickness" />
0069 <constant name="VertexBarrelLayer1_rmin" value="VertexBarrelModL1_rmin" />
0070 <constant name="VertexBarrelLayer1_rmax" value="VertexBarrelLayer1_rmin + VertexBarrelLayer_thickness" />
0071 <constant name="VertexBarrelLayer2_rmin" value="VertexBarrelModL2_rmin" />
0072 <constant name="VertexBarrelLayer2_rmax" value="VertexBarrelLayer2_rmin + VertexBarrelLayer_thickness" />
0073
0074 </define>
0075
0076 <detectors>
0077 <documentation level="5">
0078 ### Actual detectors
0079 </documentation>
0080 <detector
0081 id="VertexBarrel_0_ID"
0082 name="VertexBarrel"
0083 type="epic_CylinderSVTBarrel"
0084 readout="VertexBarrelHits"
0085 insideTrackingVolume="true">
0086 <type_flags type="DetType_TRACKER + DetType_BARREL" />
0087 <comment>
0088 - Vertex Barrel Modules.
0089 - For RSU (1 module = 1 upper/lower section of three tiles):
0090 --Use [mod_name]_upper and [mod_name]_lower here, and [mod_name] in corresponding layer
0091 to allow the geo plugin find both modules.
0092 -- also need to specify type="upper" or "lower" in components.
0093 - for other modules and components:
0094 no need to specify upper and lower anywhere.
0095 - one RSU ("|" = backbone. Length alone z.):
0096 | ------readout-------- | -------readout--------
0097 | tile*3 | tile*3 upper module
0098 | ------biasing-------- | -------biasing--------
0099 | ------biasing-------- | -------biasing--------
0100 | tile*3 | tile*3 lower module
0101 | ------readout-------- | -------readout--------
0102
0103 </comment>
0104 <module name="Module0_upper" rmin="VertexBarrelModL0_rmin" width="VertexBarrelStaveL0_width"
0105 length="VertexBarrelMod_length">
0106 <module_component name="RSU" type="upper"
0107 material="Silicon"
0108 sensitive="true"
0109 thickness="SiVertexSensor_thickness"
0110 width="Section_width"
0111 length="Section_length"
0112 vis="VertexLayerVis" />
0113 </module>
0114 <module name="Module0_lower" rmin="VertexBarrelModL0_rmin" width="VertexBarrelStaveL0_width"
0115 length="VertexBarrelMod_length">
0116 <module_component name="RSU" type="lower"
0117 material="Silicon"
0118 sensitive="true"
0119 thickness="SiVertexSensor_thickness"
0120 width="Section_width"
0121 length="Section_length"
0122 vis="VertexLayerVis" />
0123 </module>
0124
0125 <module name="Module1_upper" rmin="VertexBarrelModL1_rmin" width="VertexBarrelStaveL1_width"
0126 length="VertexBarrelMod_length">
0127 <module_component name="RSU" type="upper"
0128 material="Silicon"
0129 sensitive="true"
0130 thickness="SiVertexSensor_thickness"
0131 width="Section_width"
0132 length="Section_length"
0133 vis="VertexLayerVis" />
0134 </module>
0135 <module name="Module1_lower" rmin="VertexBarrelModL1_rmin" width="VertexBarrelStaveL1_width"
0136 length="VertexBarrelMod_length">
0137 <module_component name="RSU" type="lower"
0138 material="Silicon"
0139 sensitive="true"
0140 thickness="SiVertexSensor_thickness"
0141 width="Section_width"
0142 length="Section_length"
0143 vis="VertexLayerVis" />
0144 </module>
0145
0146 <module name="Module2_upper" rmin="VertexBarrelModL2_rmin" width="VertexBarrelStaveL2_width"
0147 length="VertexBarrelMod_length">
0148 <module_component name="RSU" type="upper"
0149 material="Silicon"
0150 sensitive="true"
0151 thickness="SiVertexSensor_thickness"
0152 width="Section_width"
0153 length="Section_length"
0154 vis="VertexLayerVis" />
0155 </module>
0156 <module name="Module2_lower" rmin="VertexBarrelModL2_rmin" width="VertexBarrelStaveL2_width"
0157 length="VertexBarrelMod_length">
0158 <module_component name="RSU" type="lower"
0159 material="Silicon"
0160 sensitive="true"
0161 thickness="SiVertexSensor_thickness"
0162 width="Section_width"
0163 length="Section_length"
0164 vis="VertexLayerVis" />
0165 </module>
0166
0167 <comment> Layers composed of many arrayed modules </comment>
0168 <comment> L0 </comment>
0169 <layer module="Module0" id="0" vis="VertexLayerVis">
0170 <barrel_envelope
0171 inner_r="VertexBarrelLayer0_rmin"
0172 outer_r="VertexBarrelLayer0_rmax"
0173 z_length="VertexBarrelLayer_length" />
0174 <layer_material surface="inner" binning="binPhi,binZ" bins0="VertexBarrelL0_nphi"
0175 bins1="100" />
0176 <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelL0_nphi"
0177 bins1="100" />
0178 <comment>
0179 phi0 : Starting phi of first module at the first/second halve.
0180 nphi : Number of modules in phi.
0181 z0 : Z position of first module's center.
0182 nz : Number of modules to place in z.
0183 </comment>
0184 <rphi_layout nphi="VertexBarrelL0_nphi" phi0="VertexBarrelModL0_dphi" dr="0.0 * mm" />
0185 <z_layout z0="VertexBarrelLayer_z0" nz="VertexBarrelLayer_nz" />
0186 </layer>
0187 <comment> FPC cables for L0 </comment>
0188
0189 <comment> L1 </comment>
0190 <layer module="Module1" id="1" vis="VertexLayerVis">
0191 <barrel_envelope
0192 inner_r="VertexBarrelLayer1_rmin"
0193 outer_r="VertexBarrelLayer1_rmax"
0194 z_length="VertexBarrelLayer_length" />
0195 <layer_material surface="inner" binning="binPhi,binZ" bins0="VertexBarrelL1_nphi"
0196 bins1="100" />
0197 <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelL1_nphi"
0198 bins1="100" />
0199 <rphi_layout nphi="VertexBarrelL1_nphi" phi0="VertexBarrelModL1_dphi" dr="0.0 * mm" />
0200 <z_layout z0="VertexBarrelLayer_z0" nz="VertexBarrelLayer_nz" />
0201 </layer>
0202
0203 <comment> L2 </comment>
0204 <layer module="Module2" id="2" vis="VertexLayerVis">
0205 <barrel_envelope
0206 inner_r="VertexBarrelLayer2_rmin"
0207 outer_r="VertexBarrelLayer2_rmax"
0208 z_length="VertexBarrelLayer_length" />
0209 <layer_material surface="inner" binning="binPhi,binZ" bins0="VertexBarrelL2_nphi"
0210 bins1="100" />
0211 <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelL2_nphi"
0212 bins1="100" />
0213 <rphi_layout nphi="VertexBarrelL2_nphi" phi0="VertexBarrelModL2_dphi" dr="0.0 * mm" />
0214 <z_layout z0="VertexBarrelLayer_z0" nz="VertexBarrelLayer_nz" />
0215 </layer>
0216 </detector>
0217 </detectors>
0218
0219 <plugins>
0220 <plugin name="DD4hep_ParametersPlugin">
0221 <argument value="VertexBarrel" />
0222 <argument value="layer_pattern: str=VertexBarrel_layer\d" />
0223 </plugin>
0224 </plugins>
0225
0226 <readouts>
0227 <readout name="VertexBarrelHits">
0228 <segmentation type="MultiSegmentation" key="layer">
0229 <segmentation name="L0" type="CylindricalGridPhiZ" key_value="0"
0230 grid_size_phi="0.02*mm/VertexBarrelSegL0_r" grid_size_z="0.02*mm"
0231 radius="VertexBarrelSegL0_r" />
0232 <segmentation name="L1" type="CylindricalGridPhiZ" key_value="1"
0233 grid_size_phi="0.02*mm/VertexBarrelSegL1_r" grid_size_z="0.02*mm"
0234 radius="VertexBarrelSegL1_r" />
0235 <segmentation name="L2" type="CylindricalGridPhiZ" key_value="2"
0236 grid_size_phi="0.02*mm/VertexBarrelSegL2_r" grid_size_z="0.02*mm"
0237 radius="VertexBarrelSegL2_r" />
0238 </segmentation>
0239 <id>system:8,layer:4,module:12,sensor:2,phi:32:-16,z:-16</id>
0240 </readout>
0241 </readouts>
0242
0243 </lccdd>