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   </regions>
0116 
0117   <display>
0118   </display>
0119 
0120   <detectors>
0121 
0122     <detector id="EcalSubAssembly_ID"
0123       name="EcalBarrelTrackerSubAssembly"
0124       type="DD4hep_SubdetectorAssembly"
0125       vis="TrackerSubAssemblyVis">
0126       <composite name="EcalBarrelImaging"/>
0127     </detector>
0128 
0129     <comment>
0130       ---------------------------------------
0131       Imaging Layers of Barrel EM Calorimeter
0132       ---------------------------------------
0133       Silicon (Astropix) readout layers for imaging 3d showers
0134     </comment>
0135     <detector
0136       id="EcalBarrel_ID"
0137       name="EcalBarrelImaging"
0138       type="epic_EcalBarrelImaging"
0139       readout="EcalBarrelImagingHits"
0140       calorimeterType="EM_BARREL"
0141       vis="EcalBarrelEnvelopeVis"
0142       offset="EcalBarrel_Calorimeter_offset">
0143       <type_flags type="DetType_TRACKER + DetType_CALORIMETER + DetType_BARREL + DetType_ELECTROMAGNETIC"/>
0144       <dimensions numsides="EcalBarrel_SectorRepeat"
0145         rmin="EcalBarrel_rmin"
0146         z="EcalBarrel_Calorimeter_length"/>
0147 
0148       <comment>
0149         The envelope for ACTS purposes needs to include only the first layer. The following
0150         definition includes the front support and is tangential to the outer edge of the
0151         first tray. This allows the envelope to avoid the first SFIL.
0152       </comment>
0153       <envelope vis="EcalBarrelImaging_envelope"
0154         rmin="EcalBarrel_rmin"
0155         rmax="EcalBarrel_rmin + EcalBarrel_FrontSupportThickness + EcalBarrel_ImagingLayerThickness"
0156         length="EcalBarrel_Calorimeter_length"
0157         zstart="EcalBarrel_Calorimeter_zmin"
0158       />
0159 
0160       <comment>
0161         The layer material for ACTS purposes is at the top level, since the entire BIC detector
0162         is treated as a single layer. The binning should likely be an integer multiple of the
0163         number of sectors, and of the numer of modules.
0164       </comment>
0165       <layer_material surface="inner"
0166                       binning="binPhi,binZ"
0167                       bins0="6 * EcalBarrel_SectorRepeat"
0168                       bins1="floor(2. * EcalBarrel_Stave_length / (EcalBarrel_AstroPix_length + EcalBarrel_AstroPix_margin))"/>
0169       <layer_material surface="outer"
0170                       binning="binPhi,binZ"
0171                       bins0="6 * EcalBarrel_SectorRepeat"
0172                       bins1="floor(2. * EcalBarrel_Stave_length / (EcalBarrel_AstroPix_length + EcalBarrel_AstroPix_margin))"/>
0173 
0174       <sectors vis="EcalBarrelSectorVis"/>
0175 
0176       <module name="AstroPix_Module"
0177               vis="EcalBarrelModuleVis">
0178         <module_component name="AstroPix_Chip"
0179                           material="Silicon"
0180                           width="EcalBarrel_AstroPix_width"
0181                           length="EcalBarrel_AstroPix_length"
0182                           thickness="EcalBarrel_AstroPix_thickness"
0183                           vis="EcalBarrelModuleVis">
0184           <slice material="Silicon" thickness="EcalBarrel_SiliconThickness"     vis="EcalBarrelSliceVis" sensitive="yes" limits="cal_limits"/>
0185           <slice material="Silicon" thickness="EcalBarrel_ElectronicsThickness" vis="EcalBarrelSliceVis"/>
0186           <slice material="Copper" thickness="EcalBarrel_CopperThickness"       vis="EcalBarrelSliceVis"/>
0187           <slice material="Kapton" thickness="EcalBarrel_KaptonThickness"       vis="EcalBarrelSliceVis"/>
0188           <slice material="Epoxy" thickness="EcalBarrel_EpoxyThickness"         vis="EcalBarrelSliceVis"/>
0189         </module_component>
0190       </module>
0191 
0192       <support thickness="EcalBarrel_FrontSupportThickness" material="Aluminum" vis="EcalBarrelSupportVis"/>
0193 
0194       <layer repeat="1" vis="EcalBarrelLayerVis"
0195              thickness="EcalBarrel_ImagingLayerThickness"
0196              space_before="EcalBarrel_FrontSupportThickness">
0197         <frame material="CarbonFiber" fill="Air" thickness="EcalBarrel_CarbonFrameThickness" height="EcalBarrel_ImagingLayerThickness" vis="EcalBarrelSliceVis"/>
0198         <stave repeat="6"
0199                width="EcalBarrel_Stave_width"
0200                length="EcalBarrel_Stave_length"
0201                thickness="EcalBarrel_Stave_thickness"
0202                angle="EcalBarrel_StaveTilt_angle"
0203                module="AstroPix_Module"
0204                vis="EcalBarrelStaveVis"
0205                enable="EcalBarrel_enable_staves_1">
0206           <xy_layout
0207             dx="EcalBarrel_AstroPix_width + EcalBarrel_AstroPix_margin"
0208             dy="EcalBarrel_AstroPix_length + EcalBarrel_AstroPix_margin"
0209           />
0210         </stave>
0211       </layer>
0212     </detector>
0213   </detectors>
0214 
0215   <readouts>
0216     <readout name="EcalBarrelImagingHits">
0217       <segmentation type="CartesianGridXY" grid_size_x="0.5 * mm" grid_size_y="0.5 * mm"/>
0218       <id>system:8,sector:6,layer:4,stave:4,module:8,slice:2,x:32:-16,y:-16</id>
0219     </readout>
0220     <readout name="EcalBarrelScFiHits">
0221       <segmentation type="CartesianStripZ" strip_size_x="1.0*cm" identifier_x="z"/>
0222       <id>system:8,sector:6,layer:6,slice:4,grid:10,fiber:16,z:-14</id>
0223     </readout>
0224   </readouts>
0225 
0226 </lccdd>