Back to home page

EIC code displayed by LXR

 
 

    


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>