Warning, /epic/compact/tracking/tof_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 Zhenyu Ye -->
0003
0004 <lccdd>
0005 <documentation>
0006 Title: AC-LGAD Detectors
0007 Author: @yezhenyu2003
0008 Status: development
0009 Version: 1.0
0010 </documentation>
0011
0012 <define>
0013 <comment>
0014 --------------------------
0015 Barrel TOF Parameters
0016 --------------------------
0017 </comment>
0018 <constant name="BarrelTOF_Sensor_thickness" value="0.35*mm"/>
0019 <constant name="BarrelTOF_Hybrid_thickness" value="2*0.008125*cm"/>
0020 <constant name="BarrelTOF_CFSkin_thickness" value="2*0.0075*cm"/>
0021 <constant name="BarrelTOF_CFoam_thickness" value="2*0.29*cm"/>
0022 <constant name="BarrelTOF_CHoneycomb_thickness" value="2*0.29*cm"/>
0023
0024 <constant name="BarrelTOF_zOffset" value="0*cm"/>
0025 <constant name="BarrelTOF_Module_width_design" value="60.0*mm"/>
0026 <constant name="BarrelTOF_Sensor_width_design" value="30.0*mm"/>
0027 <constant name="BarrelTOF_CFoam_width_design" value="32.0*mm"/>
0028 <constant name="BarrelTOF_CHoneycomb_width_design" value="BarrelTOF_Module_width_design-BarrelTOF_CFoam_width_design"/>
0029
0030 <constant name="BarrelTOF_Sensor_position_design" value="0.5*(BarrelTOF_CFoam_width_design-BarrelTOF_Module_width_design)"/>
0031 <constant name="BarrelTOF_CFoam_position_design" value="0.5*(BarrelTOF_CFoam_width_design-BarrelTOF_Module_width_design)"/>
0032 <constant name="BarrelTOF_CHoneycomb_position_design" value="0.5*(BarrelTOF_Module_width_design-BarrelTOF_CHoneycomb_width_design)"/>
0033 <constant name="BarrelTOF_Service_position_design" value="0.0*mm"/>
0034
0035 <constant name="BarrelTOF_scale" value="1.0"/>
0036 <constant name="BarrelTOF_radius" value="BarrelTOF_scale * BarrelTOF_radius_design"/>
0037 <constant name="BarrelTOF_Sensor_width" value="BarrelTOF_scale * BarrelTOF_Sensor_width_design"/>
0038 <constant name="BarrelTOF_CFoam_width" value="BarrelTOF_scale * BarrelTOF_CFoam_width_design"/>
0039 <constant name="BarrelTOF_CHoneycomb_width" value="BarrelTOF_scale * BarrelTOF_CHoneycomb_width_design"/>
0040 <constant name="BarrelTOF_Sensor_position" value="BarrelTOF_scale * BarrelTOF_Sensor_position_design"/>
0041 <constant name="BarrelTOF_CFoam_position" value="BarrelTOF_scale * BarrelTOF_CFoam_position_design"/>
0042 <constant name="BarrelTOF_CHoneycomb_position" value="BarrelTOF_scale * BarrelTOF_CHoneycomb_position_design"/>
0043 <constant name="BarrelTOF_Service_position" value="BarrelTOF_scale * BarrelTOF_Service_position_design"/>
0044 <constant name="BarrelTOF_Module_width" value="BarrelTOF_scale*BarrelTOF_Module_width_design"/>
0045 <constant name="BarrelTOF_Module_tiltangle" value="18*degree"/>
0046 <constant name="BarrelTOF_Module_nphi" value="144"/>
0047 <constant name="BarrelTOF_Module_nz" value="1"/>
0048
0049 <constant name="BarrelTOF_rOffset1" value="1.6*cm"/>
0050 <constant name="BarrelTOF_rOffset2" value="1.4*cm"/>
0051 <constant name="BarrelTOF_rmin" value="BarrelTOF_radius-BarrelTOF_rOffset1"/>
0052 <constant name="BarrelTOF_rmax" value="BarrelTOF_radius+BarrelTOF_rOffset2"/>
0053 <constant name="BarrelTOF_zoffset" value="0.5*(BarrelTOF2_zmax - BarrelTOF1_zmin)"/>
0054 <constant name="BarrelTOF1_zoffset" value="BarrelTOF_zoffset - 0.5*(BarrelTOF1_zmax - BarrelTOF1_zmin)"/>
0055 <constant name="BarrelTOF2_zoffset" value="BarrelTOF_zoffset - 0.5*(BarrelTOF2_zmax - BarrelTOF2_zmin)"/>
0056 <constant name="BarrelTOF1_length" value="BarrelTOF1_zmin + BarrelTOF1_zmax"/>
0057 <constant name="BarrelTOF2_length" value="BarrelTOF2_zmin + BarrelTOF2_zmax"/>
0058 <constant name="BarrelTOF_length" value="BarrelTOF1_zmin + BarrelTOF2_zmax"/>
0059
0060 <constant name="BarrelTOF_Sensor_length" value="2*cm"/>
0061 <constant name="BarrelTOF_Sensor_overlap" value="1*mm"/>
0062 <constant name="BarrelTOF_Sensor_deadspaceY" value="2*cm - BarrelTOF_Sensor_overlap"/>
0063 <constant name="BarrelTOF1_Sensor_amount" value="33"/>
0064 <constant name="BarrelTOF1_Sensor_amount_back" value="33"/>
0065 <constant name="BarrelTOF2_Sensor_amount" value="33"/>
0066 <constant name="BarrelTOF2_Sensor_amount_back" value="33"/>
0067
0068 <constant name="BarrelTOF_ASIC_length" value="1.5*cm"/>
0069 <constant name="BarrelTOF_ASIC_thickness" value="0.55*mm"/>
0070 <constant name="BarrelTOF_ASICChip_length" value="1*cm"/>
0071 <constant name="BarrelTOF_ASICChip_width" value="1*cm"/>
0072 <constant name="BarrelTOF_ASICChip_thickness" value="0.45*mm"/>
0073 <constant name="BarrelTOF_Cooling_pipe_rmin" value="1.335*mm"/>
0074 <constant name="BarrelTOF_Cooling_pipe_rmax" value="(1.335 + 0.25)*mm"/>
0075 <constant name="BarrelTOF_Cooling_pipe_bend_center" value="20*mm"/>
0076 <constant name="BarrelTOF_Cooling_pipe_r" value="8.41*mm + BarrelTOF_Cooling_pipe_rmax"/>
0077 <constant name="BarrelTOF_Cooling_pipe_x_center" value="0*mm"/>
0078
0079
0080 </define>
0081
0082 <display>
0083 </display>
0084
0085 <detectors>
0086 <detector
0087 id="BarrelTOF_ID"
0088 name="BarrelTOF"
0089 type="epic_TOFBarrel"
0090 readout="TOFBarrelHits"
0091 insideTrackingVolume="true">
0092 <type_flags type="DetType_TRACKER + DetType_BARREL"/>
0093 <dimensions
0094 rmin="BarrelTOF_rmin - 1*mm"
0095 rmax="BarrelTOF_rmax + 1*mm"
0096 length="BarrelTOF_length"
0097 />
0098 <comment>
0099 Tracker Barrel Modules
0100 </comment>
0101 <module name="BarrelTOF_Module1" vis="TOFBarrelModuleVis">
0102 <module_component
0103 name="ASICChipFrontLeft"
0104 material="Silicon"
0105 sensitive="false"
0106 width="BarrelTOF_ASICChip_width"
0107 length="BarrelTOF_ASICChip_length"
0108 thickness="BarrelTOF_ASICChip_thickness"
0109 vis="TOFASICChipVis"
0110 keep_layer="true">
0111 <GridSensors
0112 start_x="BarrelTOF_Sensor_position"
0113 start_y="-0.5*BarrelTOF1_length + BarrelTOF1_zoffset + BarrelTOF_Sensor_length - 0.5*BarrelTOF_Sensor_overlap"
0114 start_z="0"
0115 xdist="0"
0116 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0117 nx="1"
0118 ny="BarrelTOF1_Sensor_amount-1"/>
0119 </module_component>
0120 <module_component
0121 name="ASICChipFrontRight"
0122 material="Silicon"
0123 sensitive="false"
0124 width="BarrelTOF_ASICChip_width"
0125 length="BarrelTOF_ASICChip_length"
0126 thickness="BarrelTOF_ASICChip_thickness"
0127 vis="TOFASICChipVis"
0128 keep_layer="false">
0129 <GridSensors
0130 start_x="BarrelTOF_Sensor_position"
0131 start_y="0.5*BarrelTOF2_length-(BarrelTOF2_Sensor_amount-1)*(BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY)+BarrelTOF2_zoffset + BarrelTOF_Sensor_length - 0.5*BarrelTOF_Sensor_overlap"
0132 start_z="0"
0133 xdist="0"
0134 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0135 nx="1"
0136 ny="BarrelTOF2_Sensor_amount-1"/>
0137 </module_component>
0138
0139 <comment>
0140 keep_layer means the next module is located at the same thickness level
0141 so you can place component side by side
0142 Just make sure all components you placed side by side share the same thickness
0143 </comment>
0144 <module_component
0145 name="ASICFrontLeft"
0146 material="Kapton"
0147 sensitive="false"
0148 width="BarrelTOF_Sensor_width"
0149 length="BarrelTOF_ASIC_length"
0150 thickness="BarrelTOF_ASIC_thickness"
0151 vis="TOFHybridVis"
0152 keep_layer="true">
0153 <GridSensors
0154 start_x="BarrelTOF_Sensor_position"
0155 start_y="-0.5*BarrelTOF1_length + BarrelTOF1_zoffset + BarrelTOF_Sensor_length - 0.5*BarrelTOF_Sensor_overlap"
0156 start_z="0"
0157 xdist="0"
0158 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0159 nx="1"
0160 ny="BarrelTOF1_Sensor_amount-1"/>
0161 </module_component>
0162 <module_component
0163 name="ASICFrontRight"
0164 material="Kapton"
0165 sensitive="false"
0166 width="BarrelTOF_Sensor_width"
0167 length="BarrelTOF_ASIC_length"
0168 thickness="BarrelTOF_ASIC_thickness"
0169 vis="TOFHybridVis"
0170 keep_layer="false">
0171 <GridSensors
0172 start_x="BarrelTOF_Sensor_position"
0173 start_y="0.5*BarrelTOF2_length-(BarrelTOF2_Sensor_amount-1)*(BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY)+BarrelTOF2_zoffset + BarrelTOF_Sensor_length - 0.5*BarrelTOF_Sensor_overlap"
0174 start_z="0"
0175 xdist="0"
0176 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0177 nx="1"
0178 ny="BarrelTOF2_Sensor_amount-1"/>
0179 </module_component>
0180
0181 <module_component
0182 name="sensorFrontLeft"
0183 material="Silicon"
0184 sensitive="true"
0185 width="BarrelTOF_Sensor_width"
0186 length="BarrelTOF_Sensor_length"
0187 thickness="BarrelTOF_Sensor_thickness"
0188 vis="TOFSensorVis"
0189 keep_layer="true">
0190 <GridSensors
0191 start_x="BarrelTOF_Sensor_position"
0192 start_y="-0.5*BarrelTOF1_length + BarrelTOF1_zoffset"
0193 start_z="-BarrelTOF_Sensor_thickness"
0194 xdist="0"
0195 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0196 nx="1"
0197 ny="BarrelTOF1_Sensor_amount"
0198 half_length="left"
0199 />
0200 </module_component>
0201
0202 <module_component
0203 name="sensorFrontRight"
0204 material="Silicon"
0205 sensitive="true"
0206 width="BarrelTOF_Sensor_width"
0207 length="BarrelTOF_Sensor_length"
0208 thickness="BarrelTOF_Sensor_thickness"
0209 vis="TOFSensorVis"
0210 keep_layer="true">
0211 <GridSensors
0212 start_x="BarrelTOF_Sensor_position"
0213 start_y="0.5*BarrelTOF2_length-(BarrelTOF2_Sensor_amount-1)*(BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY)+BarrelTOF2_zoffset"
0214 start_z="-BarrelTOF_Sensor_thickness"
0215 xdist="0"
0216 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0217 nx="1"
0218 ny="BarrelTOF2_Sensor_amount"
0219 half_length="right"
0220 />
0221 </module_component>
0222
0223 <comment>
0224 Two sections for the two cooling tubes, one for Water in, the other for Water out
0225 </comment>
0226 <module_component name="cfoam1Left" material="CarbonFoam" sensitive="false" width="BarrelTOF_CFoam_width" length="BarrelTOF1_length" thickness="BarrelTOF_CFoam_thickness" vis="TOFCFoamVis" keep_layer="true">
0227 <position x="BarrelTOF_CFoam_position" y="BarrelTOF1_zoffset" z="0" />
0228 <cooling_pipe name="cooling_pipe_left"
0229 pipe_material="Aluminum"
0230 coolant_material="Water"
0231 rmin="BarrelTOF_Cooling_pipe_rmin"
0232 rmax="BarrelTOF_Cooling_pipe_rmax"
0233 offset_x="BarrelTOF_Cooling_pipe_x_center"
0234 bend_y="0.5*BarrelTOF1_length-BarrelTOF_Cooling_pipe_bend_center-BarrelTOF_Cooling_pipe_rmax"
0235 bend_r="BarrelTOF_Cooling_pipe_r"/>
0236 </module_component>
0237
0238 <module_component name="cfoam1Right" material="CarbonFoam" sensitive="false" width="BarrelTOF_CFoam_width" length="BarrelTOF2_length" thickness="BarrelTOF_CFoam_thickness" vis="TOFCFoamVis" keep_layer="true">
0239 <position x="BarrelTOF_CFoam_position" y="BarrelTOF2_zoffset" z="0" />
0240 <cooling_pipe name="cooling_pipe_right"
0241 pipe_material="Aluminum"
0242 coolant_material="Water"
0243 rmin="BarrelTOF_Cooling_pipe_rmin"
0244 rmax="BarrelTOF_Cooling_pipe_rmax"
0245 offset_x="BarrelTOF_Cooling_pipe_x_center"
0246 bend_y="0.5*BarrelTOF2_length-BarrelTOF_Cooling_pipe_bend_center-BarrelTOF_Cooling_pipe_rmax"
0247 bend_r="BarrelTOF_Cooling_pipe_r"
0248 direction="right"/>
0249 </module_component>
0250
0251 <module_component name="cfoam2Left" material="CarbonFoam" sensitive="false" width="BarrelTOF_CHoneycomb_width" length="BarrelTOF1_length" thickness="BarrelTOF_CHoneycomb_thickness" vis="TOFCFoamVis" keep_layer="true">
0252 <position x="BarrelTOF_CHoneycomb_position" y="BarrelTOF1_zoffset" z="0" />
0253 </module_component>
0254 <module_component name="cfoam2Right" material="CarbonFoam" sensitive="false" width="BarrelTOF_CHoneycomb_width" length="BarrelTOF2_length" thickness="BarrelTOF_CHoneycomb_thickness" vis="TOFCFoamVis">
0255 <position x="BarrelTOF_CHoneycomb_position" y="BarrelTOF2_zoffset" z="0" />
0256 </module_component>
0257
0258 <module_component
0259 name="sensorBackLeft"
0260 material="Silicon"
0261 sensitive="true"
0262 width="BarrelTOF_Sensor_width"
0263 length="BarrelTOF_Sensor_length"
0264 thickness="BarrelTOF_Sensor_thickness"
0265 vis="TOFSensorVis"
0266 keep_layer="true">
0267 <GridSensors
0268 start_x="BarrelTOF_Sensor_position"
0269 start_y="-0.5*BarrelTOF1_length+BarrelTOF_Sensor_length + BarrelTOF1_zoffset-0.5*BarrelTOF_Sensor_overlap"
0270 start_z="0"
0271 xdist="0"
0272 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0273 nx="1"
0274 ny="BarrelTOF1_Sensor_amount_back"
0275 />
0276 </module_component>
0277 <module_component
0278 name="sensorBackRight"
0279 material="Silicon"
0280 sensitive="true"
0281 width="BarrelTOF_Sensor_width"
0282 length="BarrelTOF_Sensor_length"
0283 thickness="BarrelTOF_Sensor_thickness"
0284 vis="TOFSensorVis"
0285 keep_layer="false">
0286 <GridSensors
0287 start_x="BarrelTOF_Sensor_position"
0288 start_y="0.5*BarrelTOF2_length-(BarrelTOF2_Sensor_amount_back-1)*(BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY)-BarrelTOF_Sensor_length+BarrelTOF2_zoffset+0.5*BarrelTOF_Sensor_overlap"
0289 start_z="0"
0290 xdist="0"
0291 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0292 nx="1"
0293 ny="BarrelTOF2_Sensor_amount_back"
0294 />
0295 </module_component>
0296 <module_component
0297 name="ASICBackLeft"
0298 material="Kapton"
0299 sensitive="true"
0300 width="BarrelTOF_Sensor_width"
0301 length="BarrelTOF_ASIC_length"
0302 thickness="BarrelTOF_ASIC_thickness"
0303 vis="TOFHybridVis"
0304 keep_layer="true">
0305 <GridSensors
0306 start_x="BarrelTOF_Sensor_position"
0307 start_y="-0.5*BarrelTOF1_length + BarrelTOF_Sensor_length + BarrelTOF1_zoffset-0.5*BarrelTOF_Sensor_overlap + BarrelTOF_Sensor_length - 0.5*BarrelTOF_Sensor_overlap"
0308 start_z="-BarrelTOF_Sensor_thickness"
0309 xdist="0"
0310 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0311 nx="1"
0312 ny="BarrelTOF1_Sensor_amount-1"/>
0313 </module_component>
0314 <module_component
0315 name="ASICBackRight"
0316 material="Kapton"
0317 sensitive="true"
0318 width="BarrelTOF_Sensor_width"
0319 length="BarrelTOF_ASIC_length"
0320 thickness="BarrelTOF_ASIC_thickness"
0321 vis="TOFHybridVis"
0322 keep_layer="false">
0323 <GridSensors
0324 start_x="BarrelTOF_Sensor_position"
0325 start_y="0.5*BarrelTOF2_length-(BarrelTOF2_Sensor_amount_back-1)*(BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY)-BarrelTOF_Sensor_length+BarrelTOF2_zoffset+0.5*BarrelTOF_Sensor_overlap + BarrelTOF_Sensor_length - 0.5*BarrelTOF_Sensor_overlap"
0326 start_z="-BarrelTOF_Sensor_thickness"
0327 xdist="0"
0328 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0329 nx="1"
0330 ny="BarrelTOF2_Sensor_amount-1"/>
0331 </module_component>
0332 <module_component
0333 name="ASICChipBackLeft"
0334 material="Silicon"
0335 sensitive="false"
0336 width="BarrelTOF_ASICChip_width"
0337 length="BarrelTOF_ASICChip_length"
0338 thickness="BarrelTOF_ASICChip_thickness"
0339 vis="TOFASICChipVis"
0340 keep_layer="true">
0341 <GridSensors
0342 start_x="BarrelTOF_Sensor_position"
0343 start_y="-0.5*BarrelTOF1_length + BarrelTOF_Sensor_length + BarrelTOF1_zoffset-0.5*BarrelTOF_Sensor_overlap + BarrelTOF_Sensor_length - 0.5*BarrelTOF_Sensor_overlap"
0344 start_z="0"
0345 xdist="0"
0346 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0347 nx="1"
0348 ny="BarrelTOF1_Sensor_amount-1"/>
0349 </module_component>
0350 <module_component
0351 name="ASICChipBackRight"
0352 material="Silicon"
0353 sensitive="false"
0354 width="BarrelTOF_ASICChip_width"
0355 length="BarrelTOF_ASICChip_length"
0356 thickness="BarrelTOF_ASICChip_thickness"
0357 vis="TOFASICChipVis"
0358 keep_layer="false">
0359 <GridSensors
0360 start_x="BarrelTOF_Sensor_position"
0361 start_y="0.5*BarrelTOF2_length-(BarrelTOF2_Sensor_amount_back-1)*(BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY)-BarrelTOF_Sensor_length+BarrelTOF2_zoffset+0.5*BarrelTOF_Sensor_overlap + BarrelTOF_Sensor_length - 0.5*BarrelTOF_Sensor_overlap"
0362 start_z="0"
0363 xdist="0"
0364 ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY"
0365 nx="1"
0366 ny="BarrelTOF2_Sensor_amount-1"/>
0367 </module_component>
0368
0369
0370
0371 </module>
0372 <layer module="BarrelTOF_Module1" id="1" vis="TOFLayerVis">
0373 <barrel_envelope
0374 inner_r="BarrelTOF_rmin"
0375 outer_r="BarrelTOF_rmax"
0376 z_length="BarrelTOF_length"
0377 z0="BarrelTOF_zoffset"/>
0378 <layer_material surface="inner" binning="binPhi,binZ" bins0="BarrelTOF_Module_nphi" bins1="100" />
0379 <layer_material surface="outer" binning="binPhi,binZ" bins0="BarrelTOF_Module_nphi" bins1="100" />
0380 <rphi_layout phi_tilt="BarrelTOF_Module_tiltangle" nphi="BarrelTOF_Module_nphi" phi0="0.0" rc="BarrelTOF_radius" dr="0.0*mm"/>
0381 <z_layout dr="0.0*mm" z0="0" nz="BarrelTOF_Module_nz"/>
0382 </layer>
0383
0384 </detector>
0385 </detectors>
0386
0387 <plugins>
0388 <plugin name="DD4hep_ParametersPlugin">
0389 <argument value="BarrelTOF"/>
0390 <argument value="layer_pattern: str=BarrelTOF_layer\d"/>
0391 </plugin>
0392 </plugins>
0393
0394 <readouts>
0395 <readout name="TOFBarrelHits">
0396 <segmentation type="MultiSegmentation" key="segmentation_id">
0397 <comment> Half sensor has to use a varied segmentation </comment>
0398 <segmentation type="CartesianGridXY" key_value="0" grid_size_x="0.1*mm" grid_size_y="1*cm" offset_x="0.05*mm" offset_y="0.5*cm"/>
0399 <segmentation type="CartesianGridXY" key_value="1" grid_size_x="0.1*mm" grid_size_y="1*cm" offset_x="0.05*mm" offset_y="0"/>
0400 </segmentation>
0401 <id>system:8,layer:4,module:12,sensor:10,segmentation_id:2,x:40:-16,y:-8</id>
0402 </readout>
0403 </readouts>
0404
0405 </lccdd>