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) 2022 Sylvester Joosten, Whitney Armstrong, Shujie Li -->
0003
0004 <lccdd>
0005 <define>
0006 <comment>
0007 Main parameters
0008 </comment>
0009
0010 <constant name="VertexBarrelMod_length" value="VertexBarrel_length"/>
0011 <constant name="VertexBarrelMod_rmin" value="VertexBarrel_rmin"/>
0012
0013 <constant name="SiVertexSensor_thickness" value="40*um"/>
0014
0015
0016 <constant name="VertexBarrelMod1_rmin" value="VertexBarrelMod_rmin"/>
0017 <constant name="VertexBarrelMod2_rmin" value="VertexBarrelMod_rmin + 1.2*cm"/>
0018 <constant name="VertexBarrelMod3_rmin" value="12.0*cm"/>
0019
0020 <comment> ensure we are within the vertex envelope with some margin. </comment>
0021 <constant name="VertexCheck" value="sqrt(VertexBarrel_rmax - VertexBarrelMod3_rmin - .1*cm)"/>
0022
0023 <documentation>
0024 - Currently there are 3 sensor layers. Each is composed of 2 half-cylinders modules with only 40um of silicon thickness.
0025 - Both support shells are 300um thick, implemented as the integrated tracker support/service setup
0026
0027 </documentation>
0028
0029 <constant name="VertexBarrelEnvelope_length" value="VertexTrackingRegion_length"/>
0030 <constant name="VertexBarrelLayer_length" value="VertexBarrelMod_length + 1*um"/>
0031
0032 <constant name="VertexBarrelLayer_thickness" value="0.2*cm"/>
0033 <constant name="VertexBarrelMod_thickness" value="0.1*cm"/>
0034
0035 <comment> Layer 3 already set as main parameter </comment>
0036
0037 <constant name="VertexBarrelLayer1_rmin" value="VertexBarrelMod1_rmin - VertexBarrelLayer_thickness/2.0"/>
0038 <constant name="VertexBarrelLayer1_rmax" value="VertexBarrelLayer1_rmin + VertexBarrelLayer_thickness"/>
0039 <constant name="VertexBarrelLayer2_rmin" value="VertexBarrelMod2_rmin - VertexBarrelLayer_thickness/2.0"/>
0040 <constant name="VertexBarrelLayer2_rmax" value="VertexBarrelLayer2_rmin + VertexBarrelLayer_thickness"/>
0041 <constant name="VertexBarrelLayer3_rmin" value="VertexBarrelMod3_rmin - VertexBarrelLayer_thickness/2.0"/>
0042 <constant name="VertexBarrelLayer3_rmax" value="VertexBarrelLayer3_rmin + VertexBarrelLayer_thickness"/>
0043
0044 <comment>
0045 Extra parameters to approximate a cylinder as a set of skinny staves
0046 due to ACTS limitations.
0047 FIXME: this shouldn't be needed anymore, need to update the cylindrical plugin.
0048 </comment>
0049 <constant name="VertexBarrelStave_count1" value="128"/>
0050 <constant name="VertexBarrelStave_count2" value="128"/>
0051 <constant name="VertexBarrelStave_count3" value="128"/>
0052 <constant name="VertexBarrelStave1_width" value="2*VertexBarrelMod1_rmin * tan(180*degree/VertexBarrelStave_count1)"/>
0053 <constant name="VertexBarrelStave2_width" value="2*VertexBarrelMod2_rmin * tan(180*degree/VertexBarrelStave_count2)"/>
0054 <constant name="VertexBarrelStave3_width" value="2*VertexBarrelMod3_rmin * tan(180*degree/VertexBarrelStave_count3)"/>
0055 </define>
0056
0057 <detectors>
0058 <documentation level="5">
0059 ### Actual detectors
0060 </documentation>
0061 <detector
0062 id="VertexBarrel_0_ID"
0063 name="VertexBarrel"
0064 type="epic_VertexBarrel"
0065 readout="VertexBarrelHits"
0066 insideTrackingVolume="true">
0067 <type_flags type="DetType_TRACKER + DetType_BARREL"/>
0068 <dimensions
0069 rmin="VertexBarrelLayer1_rmin"
0070 rmax="VertexBarrelLayer3_rmax"
0071 length="VertexBarrelEnvelope_length" />
0072 <comment>Vertex Barrel Modules</comment>
0073 <module name="Module1" vis="VertexLayerVis">
0074 <module_component name="ITS3"
0075 material="Silicon"
0076 sensitive="true"
0077 width="VertexBarrelStave1_width"
0078 length="VertexBarrelMod_length"
0079 thickness="SiVertexSensor_thickness"
0080 vis="VertexLayerVis" />
0081 </module>
0082 <module name="Module2" vis="VertexLayerVis">
0083 <module_component name="ITS3"
0084 material="Silicon"
0085 sensitive="true"
0086 width="VertexBarrelStave2_width"
0087 length="VertexBarrelMod_length"
0088 thickness="SiVertexSensor_thickness"
0089 vis="VertexLayerVis" />
0090 </module>
0091 <module name="Module3" vis="VertexLayerVis">
0092 <module_component name="ITS3"
0093 material="Silicon"
0094 sensitive="true"
0095 width="VertexBarrelStave3_width"
0096 length="VertexBarrelMod_length"
0097 thickness="SiVertexSensor_thickness"
0098 vis="VertexLayerVis" />
0099 </module>
0100 <comment> Layers composed of many arrayed modules </comment>
0101 <layer module="Module1" id="1" vis="VertexLayerVis">
0102 <barrel_envelope
0103 inner_r="VertexBarrelLayer1_rmin"
0104 outer_r="VertexBarrelLayer1_rmax"
0105 z_length="VertexBarrelLayer_length" />
0106 <layer_material surface="inner" binning="binPhi,binZ" bins0="VertexBarrelStave_count1" bins1="100" />
0107 <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count1" bins1="100" />
0108 <comment>
0109 phi0 : Starting phi of first module.
0110 phi_tilt : Phi tilt of a module.
0111 rc : Radius of the module center.
0112 nphi : Number of modules in phi.
0113 rphi_dr : The delta radius of every other module.
0114 z0 : Z position of first module in phi.
0115 nz : Number of modules to place in z.
0116 dr : Radial displacement parameter, of every other module.
0117 </comment>
0118 <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count1" phi0="0.0" rc="VertexBarrelMod1_rmin" dr="0.0 * mm"/>
0119 <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
0120 </layer>
0121 <layer module="Module2" id="2" vis="VertexLayerVis">
0122 <barrel_envelope
0123 inner_r="VertexBarrelLayer2_rmin"
0124 outer_r="VertexBarrelLayer2_rmax"
0125 z_length="VertexBarrelLayer_length" />
0126 <layer_material surface="inner" binning="binPhi,binZ" bins0="VertexBarrelStave_count2" bins1="100" />
0127 <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count2" bins1="100" />
0128 <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count2" phi0="0.0*degree" rc="VertexBarrelMod2_rmin" dr="0.0 * mm"/>
0129 <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
0130 </layer>
0131 <layer module="Module3" id="4" vis="VertexLayerVis">
0132 <barrel_envelope
0133 inner_r="VertexBarrelLayer3_rmin"
0134 outer_r="VertexBarrelLayer3_rmax"
0135 z_length="VertexBarrelLayer_length" />
0136 <layer_material surface="inner" binning="binPhi,binZ" bins0="VertexBarrelStave_count3" bins1="100" />
0137 <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count3" bins1="100" />
0138 <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count3" phi0="0.0" rc="VertexBarrelMod3_rmin" dr="0.0 * mm"/>
0139 <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
0140 </layer>
0141 </detector>
0142 </detectors>
0143
0144 <plugins>
0145 <plugin name="DD4hep_ParametersPlugin">
0146 <argument value="VertexBarrel"/>
0147 <argument value="layer_pattern: str=VertexBarrel_layer\d"/>
0148 </plugin>
0149 </plugins>
0150
0151 <readouts>
0152 <readout name="VertexBarrelHits">
0153 <segmentation type="CartesianGridXY" grid_size_x="0.020*mm" grid_size_y="0.020*mm" />
0154 <id>system:8,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
0155 </readout>
0156 </readouts>
0157
0158 </lccdd>