Back to home page

EIC code displayed by LXR

 
 

    


Warning, /epic/compact/ecal/bic/bic_layer1_only.xml is written in an unsupported language. File is not indexed.

0001 <!-- SPDX-License-Identifier: LGPL-3.0-or-later -->
0002 <!-- Copyright (C) 2022 Whitney Armstrong, Chao Peng, Maria Zurek, Jihee Kim -->
0003 <!-- Active AstroPix layers: 1 -->
0004 
0005 
0006 <lccdd>
0007 
0008     <display>
0009     </display>
0010   <define>
0011     <comment>
0012       ---------------------------------------
0013       EM Calorimeter Parameters with AstroPix
0014       THIS IS A SPECIAL VERSION WITH ONLY THE FIRST IMAGING LAYER ENABLED
0015       FOR TRACKING DEBUG PURPOSES ONLY
0016       ---------------------------------------
0017     </comment>
0018     <comment>
0019       To change the number of imaging layer slots from, e.g., 9 to 6,
0020       change EcalBarrelImagingLayers_nMax variable. Note that this does NOT change the
0021       number of silicon frames, as each silicon frame and layer is placed manually.
0022 
0023       This file assumes the EcalBarrel_enable_staves_N variables have been defined to allow
0024       changing the configuration by enabling/disabling staves
0025     </comment>
0026     <!-- Number of imaging layer slots -->
0027     <constant name="EcalBarrelImagingLayers_num"     value="1"/>
0028     <comment>
0029       Active part of the calorimeter is
0030       435 cm long
0031       -41.25 cm offset
0032     </comment>
0033     <constant name="EcalBarrel_Calorimeter_zmin"
0034       value="min(258.75*cm, EcalBarrelBackward_zmax)"/>
0035     <constant name="EcalBarrel_Calorimeter_zmax"
0036       value="min(176.25*cm, EcalBarrelForward_zmax)"/>
0037     <constant name="EcalBarrel_Readout_zmin"          value="273.75*cm"/>
0038     <constant name="EcalBarrel_Readout_zmax"          value="191.25*cm"/>
0039     <constant name="EcalBarrel_Calorimeter_length"
0040       value="EcalBarrel_Calorimeter_zmax + EcalBarrel_Calorimeter_zmin"/>
0041     <constant name="EcalBarrel_Calorimeter_offset"
0042       value="(EcalBarrel_Calorimeter_zmax - EcalBarrel_Calorimeter_zmin)/2.0"/>
0043 
0044     <constant name="EcalBarrel_FrontSupportThickness" value="0.5*cm"/>
0045     <constant name="EcalBarrel_BackSupportThickness"  value="3*cm"/>
0046     <constant name="EcalBarrel_SiliconThickness"      value="500*um"/>
0047     <constant name="EcalBarrel_ElectronicsThickness"  value="150*um"/>
0048     <constant name="EcalBarrel_CopperThickness"       value="100*um"/>
0049     <constant name="EcalBarrel_KaptonThickness"       value="200*um"/>
0050     <constant name="EcalBarrel_EpoxyThickness"        value="100*um"/>
0051     <constant name="EcalBarrel_CarbonFrameThickness"  value="2*mm"/>
0052     <constant name="EcalBarrel_CarbonStaveThickness"  value="0.5*mm"/>
0053 
0054     <constant name="EcalBarrel_AstroPix_width"        value="2*cm"/>
0055     <constant name="EcalBarrel_AstroPix_length"       value="2*cm"/>
0056     <constant name="EcalBarrel_AstroPix_margin"       value="200*um"/>
0057     <constant name="EcalBarrel_AstroPix_thickness"
0058       value="EcalBarrel_SiliconThickness
0059       + EcalBarrel_ElectronicsThickness
0060       + EcalBarrel_CopperThickness
0061       + EcalBarrel_KaptonThickness
0062       + EcalBarrel_EpoxyThickness"/>
0063 
0064     <constant name="EcalBarrel_Stave_width"           value="EcalBarrel_AstroPix_width + 2. * EcalBarrel_AstroPix_margin"/>
0065     <constant name="EcalBarrel_Stave_length"          value="EcalBarrel_Calorimeter_length"/>
0066     <constant name="EcalBarrel_Stave_thickness"       value="EcalBarrel_AstroPix_thickness + EcalBarrel_CarbonStaveThickness"/>
0067     <constant name="EcalBarrel_StaveTilt_angle"       value="10*degree"/>
0068     <constant name="EcalBarrel_Stave_ModuleRepeat"    value="floor(EcalBarrel_Calorimeter_length / (EcalBarrel_AstroPix_length + EcalBarrel_AstroPix_margin))"/>
0069 
0070     <constant name="EcalBarrel_FiberRadius"           value="0.5*mm"/>
0071     <constant name="EcalBarrel_FiberXSpacing"         value="1.34*mm"/>
0072     <constant name="EcalBarrel_FiberZSpacing"         value="1.22*mm"/>
0073     <constant name="EcalBarrel_CladdingThickness"     value="0.04*mm"/>
0074     <constant name="EcalBarrel_SpaceBetween"          value="0.01*mm"/>
0075     <comment>
0076       For Pb/SiFi (GlueX):  X0 ~ 1.45 cm
0077       For W/SiFi (sPHENIX): X0 ~ 0.7 cm (but different fiber orientation)
0078     </comment>
0079     <constant name="EcalBarrel_RadiatorThickness"      value="EcalBarrel_FiberZSpacing * 17"/>
0080     <constant name="EcalBarrel_TotalFiberLayers_num"   value="12"/>
0081     <constant name="EcalBarrel_RadiatorEdgeThickness"  value="0.61*mm"/>
0082     <constant name="EcalBarrel_SectorRepeat"           value="EcalBarrelSectorsN"/>
0083     <constant name="EcalBarrel_AvailThickness"         value="EcalBarrelRegion_thickness - EcalBarrel_BackSupportThickness - EcalBarrel_FrontSupportThickness"/>
0084 
0085     <constant name="EcalBarrel_ImagingLayerThickness"  value="1.7*cm"/>
0086 
0087     <constant name="EcalBarrel_ImagingLayerThickness_WithoutFrame"
0088       value="EcalBarrel_ImagingLayerThickness
0089       - 2*EcalBarrel_CarbonFrameThickness"/>
0090 
0091     <constant name="EcalBarrel_ScFiLayerThickness_Imaging"
0092       value="EcalBarrel_RadiatorThickness + 2*EcalBarrel_RadiatorEdgeThickness"/>
0093 
0094     <comment>
0095       Adjusting size of the ScFi back chunk to match number of imaging layers
0096       and ~17.1 radiation lengths in total
0097     </comment>
0098     <constant name="EcalBarrel_FiberBulkLayers_num" value = "EcalBarrel_TotalFiberLayers_num-EcalBarrelImagingLayers_num+1"/>
0099 
0100     <constant name="EcalBarrel_ImagingPartThickness"
0101         value="EcalBarrelImagingLayers_num * (EcalBarrel_ImagingLayerThickness + EcalBarrel_ScFiLayerThickness_Imaging + EcalBarrel_SpaceBetween)
0102          - EcalBarrel_ScFiLayerThickness_Imaging"/>
0103     <constant name="EcalBarrel_ScFiPartThickness"
0104         value="EcalBarrel_RadiatorThickness*EcalBarrel_FiberBulkLayers_num"/>
0105     <constant name="EcalBarrelDetector_rmax"
0106         value="EcalBarrel_rmin + EcalBarrel_FrontSupportThickness
0107          + EcalBarrel_ImagingPartThickness + EcalBarrel_ScFiPartThickness + EcalBarrel_BackSupportThickness"/>
0108 
0109   </define>
0110 
0111   <limits>
0112   </limits>
0113 
0114   <regions>
0115     <region name="EcalBarrelRegion"/>
0116   </regions>
0117 
0118   <display>
0119   </display>
0120 
0121   <detectors>
0122 
0123     <detector id="EcalSubAssembly_ID"
0124       name="EcalBarrelTrackerSubAssembly"
0125       type="DD4hep_SubdetectorAssembly"
0126       vis="TrackerSubAssemblyVis">
0127       <composite name="EcalBarrelImaging"/>
0128     </detector>
0129 
0130     <comment>
0131       ---------------------------------------
0132       Imaging Layers of Barrel EM Calorimeter
0133       ---------------------------------------
0134       Silicon (Astropix) readout layers for imaging 3d showers
0135     </comment>
0136     <detector
0137       id="EcalBarrel_ID"
0138       name="EcalBarrelImaging"
0139       type="epic_EcalBarrelImaging"
0140       readout="EcalBarrelImagingHits"
0141       calorimeterType="EM_BARREL"
0142       region="EcalBarrelRegion"
0143       vis="EcalBarrelEnvelopeVis"
0144       offset="EcalBarrel_Calorimeter_offset">
0145       <type_flags type="DetType_TRACKER + DetType_CALORIMETER + DetType_BARREL + DetType_ELECTROMAGNETIC"/>
0146       <dimensions numsides="EcalBarrel_SectorRepeat"
0147         rmin="EcalBarrel_rmin"
0148         z="EcalBarrel_Calorimeter_length"/>
0149 
0150       <comment>
0151         The envelope for ACTS purposes needs to include only the first layer. The following
0152         definition includes the front support and is tangential to the outer edge of the
0153         first tray. This allows the envelope to avoid the first SFIL.
0154       </comment>
0155       <envelope vis="EcalBarrelImaging_envelope"
0156         rmin="EcalBarrel_rmin"
0157         rmax="EcalBarrel_rmin + EcalBarrel_FrontSupportThickness + EcalBarrel_ImagingLayerThickness"
0158         length="EcalBarrel_Calorimeter_length"
0159         zstart="EcalBarrel_Calorimeter_zmin"
0160       />
0161 
0162       <comment>
0163         The layer material for ACTS purposes is at the top level, since the entire BIC detector
0164         is treated as a single layer. The binning should likely be an integer multiple of the
0165         number of sectors, and of the numer of modules.
0166       </comment>
0167       <layer_material surface="inner"
0168                       binning="binPhi,binZ"
0169                       bins0="6 * EcalBarrel_SectorRepeat"
0170                       bins1="floor(2. * EcalBarrel_Stave_length / (EcalBarrel_AstroPix_length + EcalBarrel_AstroPix_margin))"/>
0171       <layer_material surface="outer"
0172                       binning="binPhi,binZ"
0173                       bins0="6 * EcalBarrel_SectorRepeat"
0174                       bins1="floor(2. * EcalBarrel_Stave_length / (EcalBarrel_AstroPix_length + EcalBarrel_AstroPix_margin))"/>
0175 
0176       <sectors vis="EcalBarrelSectorVis"/>
0177 
0178       <module name="AstroPix_Module"
0179               vis="EcalBarrelModuleVis">
0180         <module_component name="AstroPix_Chip"
0181                           material="Silicon"
0182                           width="EcalBarrel_AstroPix_width"
0183                           length="EcalBarrel_AstroPix_length"
0184                           thickness="EcalBarrel_AstroPix_thickness"
0185                           vis="EcalBarrelModuleVis">
0186           <slice material="Silicon" thickness="EcalBarrel_SiliconThickness"     vis="EcalBarrelSliceVis" sensitive="yes" limits="cal_limits"/>
0187           <slice material="Silicon" thickness="EcalBarrel_ElectronicsThickness" vis="EcalBarrelSliceVis"/>
0188           <slice material="Copper" thickness="EcalBarrel_CopperThickness"       vis="EcalBarrelSliceVis"/>
0189           <slice material="Kapton" thickness="EcalBarrel_KaptonThickness"       vis="EcalBarrelSliceVis"/>
0190           <slice material="Epoxy" thickness="EcalBarrel_EpoxyThickness"         vis="EcalBarrelSliceVis"/>
0191         </module_component>
0192       </module>
0193 
0194       <support thickness="EcalBarrel_FrontSupportThickness" material="Aluminum" vis="EcalBarrelSupportVis"/>
0195 
0196       <layer repeat="1" vis="EcalBarrelLayerVis"
0197              thickness="EcalBarrel_ImagingLayerThickness"
0198              space_before="EcalBarrel_FrontSupportThickness">
0199         <frame material="CarbonFiber" fill="Air" thickness="EcalBarrel_CarbonFrameThickness" height="EcalBarrel_ImagingLayerThickness" vis="EcalBarrelSliceVis"/>
0200         <stave repeat="6"
0201                width="EcalBarrel_Stave_width"
0202                length="EcalBarrel_Stave_length"
0203                thickness="EcalBarrel_Stave_thickness"
0204                angle="EcalBarrel_StaveTilt_angle"
0205                module="AstroPix_Module"
0206                vis="EcalBarrelStaveVis"
0207                enable="EcalBarrel_enable_staves_1">
0208           <xy_layout
0209             dx="EcalBarrel_AstroPix_width + EcalBarrel_AstroPix_margin"
0210             dy="EcalBarrel_AstroPix_length + EcalBarrel_AstroPix_margin"
0211           />
0212         </stave>
0213       </layer>
0214     </detector>
0215   </detectors>
0216 
0217   <readouts>
0218     <readout name="EcalBarrelImagingHits">
0219       <segmentation type="CartesianGridXY" grid_size_x="0.5 * mm" grid_size_y="0.5 * mm"/>
0220       <id>system:8,sector:6,layer:4,stave:4,module:8,slice:2,x:32:-16,y:-16</id>
0221     </readout>
0222     <readout name="EcalBarrelScFiHits">
0223       <segmentation type="CartesianStripZ" strip_size_x="1.0*cm" identifier_x="z"/>
0224       <id>system:8,sector:6,layer:6,slice:4,grid:10,fiber:16,z:-14</id>
0225     </readout>
0226   </readouts>
0227 
0228   <plugins>
0229     <plugin name="DD4hep_ParametersPlugin">
0230       <argument value="EcalBarrelImaging"/>
0231       <argument value="layer_pattern: str=envelope1"/>
0232     </plugin>
0233   </plugins>
0234 
0235 </lccdd>