Forked from
EIC / detectors / athena
42 commits behind the upstream repository.
-
Sylvester Joosten authoredSylvester Joosten authored
ecal_barrel_interlayers.xml 7.76 KiB
<lccdd>
<display>
</display>
<define>
<comment>
---------------------------------------
EM Calorimeter Parameters with AstroPix
---------------------------------------
</comment>
<comment>
To change the number of imaging layers from, e.g., 9 to 6,
change EcalBarrelImagingLayers_nMax variable
</comment>
<constant name="EcalBarrelImagingLayers_nMax" value="9"/>
<constant name="EcalBarrel_Support_thickness" value="5*cm"/>
<constant name="EcalBarrel_SiliconThickness" value="500*um"/>
<constant name="EcalBarrel_ElectronicsThickness" value="150*um"/>
<constant name="EcalBarrel_CopperThickness" value="100*um"/>
<constant name="EcalBarrel_KaptonThickness" value="200*um"/>
<constant name="EcalBarrel_EpoxyThickness" value="100*um"/>
<constant name="EcalBarrel_CarbonThickness" value="0.5*mm"/>
<constant name="EcalBarrel_CarbonSpacerWidth" value="4*mm"/>
<constant name="EcalBarrel_LayerSpacing" value="10.0*mm"/>
<constant name="EcalBarrel_FiberRadius" value="0.5*mm"/>
<constant name="EcalBarrel_FiberXSpacing" value="1.34*mm"/>
<constant name="EcalBarrel_FiberZSpacing" value="1.22*mm"/>
<constant name="EcalBarrel_SpaceBetween" value="0.1*mm"/>
<comment>
For Pb/SiFi (GlueX): X0 ~ 1.45 cm
For W/SiFi (sPHENIX): X0 ~ 0.7 cm (but different fiber orientation)
</comment>
<constant name="EcalBarrel_RadiatorThickness" value="EcalBarrel_FiberZSpacing*13"/>
<constant name="EcalBarrel_ModRepeat" value="CaloSides"/>
<constant name="EcalBarrel_ModLength" value="0.5*m"/>
<constant name="EcalBarrel_ModWidth" value="0.5*m"/>
<constant name="EcalBarrel_AvailThickness" value="EcalBarrelRegion_thickness-EcalBarrel_Support_thickness"/>
<constant name="EcalBarrel_ImagingLayerThickness"
value="EcalBarrel_SiliconThickness
+ EcalBarrel_ElectronicsThickness
+ EcalBarrel_CopperThickness
+ EcalBarrel_KaptonThickness
+ EcalBarrel_EpoxyThickness
+ EcalBarrel_CarbonThickness"/>
<constant name="EcalBarrel_ScFiLayerThickness"
value="EcalBarrel_RadiatorThickness
+ EcalBarrel_CarbonThickness
+ EcalBarrel_LayerSpacing"/>
<constant name="EcalBarrelImagingLayers_num"
value="min(EcalBarrelImagingLayers_nMax,
floor((EcalBarrel_AvailThickness-EcalBarrel_ImagingLayerThickness)/
(EcalBarrel_ImagingLayerThickness + EcalBarrel_ScFiLayerThickness +
EcalBarrel_SpaceBetween)))"/>
<comment>
Adjusting size of the ScFi back chunk to match number of imiaging layers
and 20 radiation lengths in total
</comment>
<constant name="EcalBarrel_FiberChunkLayers_num" value = "20-EcalBarrelImagingLayers_num+1"/>
<constant name="EcalBarrel_ImagingPartThickness"
value="(EcalBarrelImagingLayers_num-1)*(EcalBarrel_ImagingLayerThickness + EcalBarrel_ScFiLayerThickness + EcalBarrel_SpaceBetween)
+ EcalBarrel_ImagingLayerThickness + EcalBarrel_SpaceBetween"/>
<constant name="EcalBarrel_ScFiPartThickness_max"
value="max(0, EcalBarrel_AvailThickness-EcalBarrel_ImagingPartThickness)"/>
<constant name="EcalBarrel_ScFiPartThickness"
value="min(EcalBarrel_ScFiPartThickness_max,
EcalBarrel_FiberZSpacing*13*EcalBarrel_FiberChunkLayers_num)"/>
<constant name="EcalBarrel_SensitiveLayers_rmax"
value="EcalBarrel_rmin + EcalBarrel_ImagingPartThickness + EcalBarrel_ScFiPartThickness"/>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<detectors>
<comment>
---------------------------------------
Imaging Layers of Barrel EM Calorimeter
---------------------------------------
Silicon (Astropix) readout layers for imaging 3d showers
</comment>
<detector
id="ECalBarrel_ID"
name="EcalBarrelImaging"
type="athena_EcalBarrelInterlayers"
readout="EcalBarrelHits"
calorimeterType="EM_BARREL"
vis="EcalBarrelEnvelopeVis"
offset="EcalBarrel_offset">
<dimensions numsides="EcalBarrel_ModRepeat"
rmin="EcalBarrel_rmin"
z="EcalBarrel_length"/>
<layer repeat="EcalBarrelImagingLayers_num" vis="EcalBarrelLayerVis"
space_between="EcalBarrel_ScFiLayerThickness + EcalBarrel_SpaceBetween"
space_before="0.*cm">
<slice material="Silicon" thickness="EcalBarrel_SiliconThickness" sensitive="yes" limits="cal_limits" vis="EcalBarrelSliceVis"/>
<slice material="Silicon" thickness="EcalBarrel_ElectronicsThickness" vis="EcalBarrelSliceVis"/>
<slice material="Copper" thickness="EcalBarrel_CopperThickness" vis="EcalBarrelSliceVis"/>
<slice material="Kapton" thickness="EcalBarrel_KaptonThickness" vis="EcalBarrelSliceVis"/>
<slice material="Epoxy" thickness="EcalBarrel_EpoxyThickness" vis="EcalBarrelSliceVis"/>
<slice material="CarbonFiber" thickness="EcalBarrel_CarbonThickness" vis="EcalBarrelSliceVis"/>
</layer>
</detector>
<comment>
---------------------------------------
Pb/ScFi Layers of Barrel EM Calorimeter
---------------------------------------
</comment>
<detector
id="ECalBarrel2_ID"
name="EcalBarrelScFi"
type="athena_EcalBarrelInterlayers"
readout="EcalBarrelScFiHits"
calorimeterType="EM_BARREL"
vis="EcalBarrelEnvelopeVis"
offset="EcalBarrel_offset">
<dimensions numsides="EcalBarrel_ModRepeat"
rmin="EcalBarrel_rmin"
z="EcalBarrel_length"/>
<staves vis="EcalBarrelStaveVis">
<support material="Steel235" vis="EcalBarrelSupportVis" n_beams="3" grid_size="25.0*cm"
thickness="EcalBarrel_Support_thickness" beam_thickness="EcalBarrel_Support_thickness/4" >
</support>
</staves>
<layer repeat="EcalBarrelImagingLayers_num-1" vis="EcalBarrelLayerVis"
space_between="EcalBarrel_ImagingLayerThickness + EcalBarrel_SpaceBetween"
space_before="EcalBarrel_ImagingLayerThickness + EcalBarrel_SpaceBetween/2.">
<slice material="Lead" thickness="EcalBarrel_RadiatorThickness" vis="EcalBarrelFiberLayerVis">
<fiber material="PlasticScint"
sensitive="yes"
radius="EcalBarrel_FiberRadius"
spacing_x="EcalBarrel_FiberXSpacing"
spacing_z="EcalBarrel_FiberZSpacing"
vis="EcalBarrelFiberLayerVis">
</fiber>
</slice>
<slice material="CarbonFiber" thickness="EcalBarrel_CarbonThickness" vis="EcalBarrelSliceVis"/>
<slice material="Air" thickness="EcalBarrel_LayerSpacing " vis="EcalBarrelSliceVis"/>
</layer>
<layer repeat="EcalBarrel_FiberChunkLayers_num" vis="EcalBarrelLayerVis"
space_before="EcalBarrel_ImagingLayerThickness + EcalBarrel_SpaceBetween">
<slice material="Lead"
thickness="EcalBarrel_ScFiPartThickness/EcalBarrel_FiberChunkLayers_num"
vis="EcalBarrelFiberLayerVis">
<fiber material="PlasticScint"
sensitive="yes"
radius="EcalBarrel_FiberRadius"
spacing_x="EcalBarrel_FiberXSpacing"
spacing_z="EcalBarrel_FiberZSpacing"
vis="EcalBarrelFiberLayerVis">
</fiber>
</slice>
</layer>
</detector>
</detectors>
<readouts>
<readout name="EcalBarrelHits">
<segmentation type="CartesianGridXY" grid_size_x="0.5 * mm" grid_size_y="0.5 * mm"/>
<id>system:8,module:8,layer:8,slice:8,x:32:-16,y:-16</id>
</readout>
<readout name="EcalBarrelScFiHits">
<segmentation type="NoSegmentation"/>
<id>system:8,module:8,layer:8,slice:8,grid:16,fiber:16</id>
</readout>
</readouts>
</lccdd>