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>