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) 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>