Skip to content
Snippets Groups Projects
ecal_barrel_hybrid.xml 6.97 KiB
Newer Older
<lccdd>

    <display>
      <vis name="EcalBarrelEnvelope_vis" alpha="0.9" r="0.99" g="0.5" b="0" showDaughters="true" visible="false" />
      <vis name="EcalBarrelStave_vis"    alpha="0.9" r="0.99" g="0.5" b="0" showDaughters="true" visible="false" />
      <vis name="EcalBarrelFiberLayerVis" alpha="1.0" r="102/256" g="102/256" b="102/256" showDaughters="false" visible="true" />
      <vis name="EcalBarrelFiberVis" alpha="1.0" r="0/256" g="130/256" b="202/256" showDaughters="false" visible="false" />
    </display>
  <define>
    <comment>
      ---------------------------------------
      EM Calorimeter Parameters with AstroPix
      ---------------------------------------
    </comment>
    <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="6.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"/>
    <comment> 
      For Pb/SiFi (GlueX):  X0 ~ 1.45 cm
      For W/SiFi (sPHENIX): X0 ~ 0.7 cm (but different fiber orientation)
    <constant name="EcalBarrel_RadiatorThickness"    value="EcalBarrel_FiberZSpacing*12"/>
    <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="EcalBarrel_TotalThickness-EcalBarrel_Support_thickness"/>
    <constant name="EcalBarrel_ImagingLayerThickness"
      value="EcalBarrel_SiliconThickness
      + EcalBarrel_ElectronicsThickness
      + EcalBarrel_CopperThickness
      + EcalBarrel_KaptonThickness
      + EcalBarrel_EpoxyThickness
      + EcalBarrel_CarbonThickness
      + EcalBarrel_LayerSpacing
      + EcalBarrel_RadiatorThickness"/>

    <constant name="EcalBarrelImagingLayers_max"  value="6"/>
    <constant name="EcalBarrelImagingLayers"  value="min(EcalBarrelImagingLayers_max, floor(EcalBarrel_AvailThickness/EcalBarrel_ImagingLayerThickness))"/>
    <constant name="EcalBarrel_FiberLayerThickness_max" value="max(0, EcalBarrel_AvailThickness-(EcalBarrelImagingLayers*EcalBarrel_ImagingLayerThickness-EcalBarrel_RadiatorThickness))"/>
    <constant name="EcalBarrel_FiberLayerThickness" value="EcalBarrel_FiberZSpacing*12*15"/>
  </define>

  <limits>
  </limits>

  <regions>
  </regions>

  <display>
  </display>

  <detectors>

    <comment>
      ---------------------
      Barrel EM Calorimeter
      ---------------------
      A layered EM calorimeter with tungsten and silicon (AstroPix)
    </comment>
    <detector
      id="ECalBarrel_ID"
      name="EcalBarrel"
      type="athena_EcalBarrelHybrid"
      readout="EcalBarrelHits"
      calorimeterType="EM_BARREL"
      vis="EcalBarrelEnvelope_vis"
      offset="EcalBarrel_offset">
      <dimensions numsides="EcalBarrel_ModRepeat" 
        rmin="EcalBarrel_rmin" 
        z="EcalBarrel_length"/>
      <staves vis="EcalBarrelStave_vis">
        <support inside="true"  material="Steel235" vis="AnlOrange"
          thickness="EcalBarrel_Support_thickness"
          n_beams="3" grid_size="25.0*cm" >
        </support>
      </staves>
      <comment>
        ---------------------------
        Imaging layers with silicon
        ---------------------------
      </comment>
      <layer repeat="EcalBarrelImagingLayers-1" vis="AnlBlue">  
        <slice material="Silicon" thickness="EcalBarrel_SiliconThickness" sensitive="yes" limits="cal_limits" vis="AnlGray"/>
        <slice material="Silicon" thickness="EcalBarrel_ElectronicsThickness" vis="AnlGold"/>
        <slice material="Copper" thickness="EcalBarrel_CopperThickness" vis="AnlGray"/>
        <slice material="Kapton" thickness="EcalBarrel_KaptonThickness" vis="AnlGold"/>
        <slice material="Epoxy" thickness="EcalBarrel_EpoxyThickness" vis="AnlGray"/>
        <slice material="CarbonFiber" thickness="EcalBarrel_CarbonThickness" vis="AnlGold"/>
        <slice material="Lead" thickness="EcalBarrel_RadiatorThickness" vis="EcalBarrelFibersVis">
          <fiber material="PlasticScint" 
            sensitive="yes"
            vis="EcalBarrelFiberVis"
            radius="EcalBarrel_FiberRadius" 
            spacing_x="EcalBarrel_FiberXSpacing" 
            spacing_z="EcalBarrel_FiberZSpacing"/>
        </slice>
        <slice material="CarbonFiber" thickness="EcalBarrel_CarbonThickness" vis="AnlGold"/> 
        <slice material="Air" thickness="EcalBarrel_LayerSpacing" vis="AnlGold"/>
      </layer>
      <comment>
        ---------------------------
        Last imiging layer with thick scint fiber layer
        ---------------------------
      </comment>
      <layer repeat="1" vis="AnlBlue">
        <slice material="Silicon" thickness="EcalBarrel_SiliconThickness" sensitive="yes" limits="cal_limits" vis="AnlGray"/>
        <slice material="Silicon" thickness="EcalBarrel_ElectronicsThickness" vis="AnlGold"/>
        <slice material="Copper" thickness="EcalBarrel_CopperThickness" vis="AnlGray"/>
        <slice material="Kapton" thickness="EcalBarrel_KaptonThickness" vis="AnlGold"/>
        <slice material="Epoxy" thickness="EcalBarrel_EpoxyThickness" vis="AnlGray"/>
        <slice material="CarbonFiber" thickness="EcalBarrel_CarbonThickness" vis="AnlGold"/>
        <slice material="Lead" thickness="min(EcalBarrel_FiberLayerThickness_max, EcalBarrel_FiberLayerThickness)" 
          vis="EcalBarrelFiberLayerVis">
          <fiber material="PlasticScint" 
            sensitive="yes"
            vis="EcalBarrelFiberVis"
            radius="EcalBarrel_FiberRadius" 
            spacing_x="EcalBarrel_FiberXSpacing" 
            spacing_z="EcalBarrel_FiberZSpacing">
          </fiber>
        </slice>
      </layer>
     
    </detector>
  </detectors>

  <readouts>
    <readout name="EcalBarrelHits">
      <segmentation type="MultiSegmentation" key="fiber">
        <segmentation name="LongiSeg" key_value="0x0" type="CartesianGridXY" grid_size_x="0.5*mm" grid_size_y="0.5*mm"/>
       -<segmentation name="RadialSeg" key_min="0x1" key_max="0xffffffff" type="NoSegmentation"/>
      </segmentation>
      <hits_collections>
          <hits_collection name="EcalBarrelHits" key="fiber" key_value="0x0"/>
          <hits_collection name="EcalBarrelScFiHits" key="fiber" key_min="0x1" key_max="0xffffffff"/>
      </hits_collections>
      <id>system:8,module:5,layer:4,slice:4,grid:9,fiber:9,x:39:-11,y:-14</id>