Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • EIC/detectors/athena
  • zwzhao/athena
  • FernandoTA/athena
  • palspeic/athena
4 results
Show changes
Showing
with 59666 additions and 1160 deletions
Source diff could not be displayed: it is too large. Options to address this: view the blob.
<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
>
<!-- Some information about detector -->
<info name="Central Ion GEM" title="Central Ion GEM"
author="Marshall Scott"
url="https://eicweb.phy.anl.gov/EIC/detectors/reference_detector.git"
status="development"
version="v1 2021-03-23">
<comment>Central Ion GEM</comment>
</info>
<!-- Use DD4hep elements and materials definitions -->
<includes>
<gdmlFile ref="elements.xml"/>
<gdmlFile ref="materials.xml"/>
</includes>
<!-- Define the dimensions of the world volume -->
<define>
<constant name="ci_GEM_id" value="1">
<constant name="ci_GEM_rin" value="10 * cm">
<constant name="ci_GEM_rout" value="95 * cm">
<constant name="ci_GEM_sizez" value="30 * cm">
<constant name="ci_GEM_shiftz" value="0 * cm">
<constant name="ci_GEM_posz" value="0 * cm">
<constant name="ci_GEM_posx" value="0 * cm">
<constant name="ci_GEM_nlayers" value="8">
</define>
<limits>
</limits>
<regions>
</regions>
<!-- Common Generic visualization attributes -->
<!-- change this -->
<comment>Common Generic visualization attributes</comment>
<display>
<vis name="ci_GEMVis" r= "0.8" g="0.4" b="0.3" alpha="0.8" showDaughters="true" visible="true"/>
</display>
<!-- Define detector -->
<detectors>
<comment>
Central Ion GEM
</comment>
<detector id="ci_GEM_id" name="ci_GEM" type="ci_GEM" insideTrackingVolume="false" vis="ci_GEMVis">
<material name="Ar10CO2"/> <!-- G4_Galactic -->
<dimensions rmin="ci_GEM_rin" rmax="ci_GEM_rout" sizez="ci_GEM_sizez" delta="ci_GEM_shiftz" z="ci_GEM_posz" x="ci_GEM_posx" nlayers="ci_GEM_nlayers"/>
<layer id="0" z="-sizez * 0.5 + (5 + 3. * id) * cm" inner_r="rmin + (1. + 0.5 * id) * cm" outer_r="rmax + (-25. + 2. * id) * cm" dz="1 * cm" />
<layer id="1" z="-sizez * 0.5 + (5 + 3. * id) * cm" inner_r="rmin + (1. + 0.5 * id) * cm" outer_r="rmax + (-25. + 2. * id) * cm" dz="1 * cm" />
<layer id="2" z="-sizez * 0.5 + (5 + 3. * id) * cm" inner_r="rmin + (1. + 0.5 * id) * cm" outer_r="rmax + (-25. + 2. * id) * cm" dz="1 * cm" />
<layer id="3" z="-sizez * 0.5 + (5 + 3. * id) * cm" inner_r="rmin + (1. + 0.5 * id) * cm" outer_r="rmax + (-25. + 2. * id) * cm" dz="1 * cm" />
<layer id="4" z="-sizez * 0.5 + (5 + 3. * id) * cm" inner_r="rmin + (1. + 0.5 * id) * cm" outer_r="rmax + (-25. + 2. * id) * cm" dz="1 * cm" />
<layer id="5" z="-sizez * 0.5 + (5 + 3. * id) * cm" inner_r="rmin + (1. + 0.5 * id) * cm" outer_r="rmax + (-25. + 2. * id) * cm" dz="1 * cm" />
<layer id="6" z="-sizez * 0.5 + (5 + 3. * id) * cm" inner_r="rmin + (1. + 0.5 * id) * cm" outer_r="rmax + (-25. + 2. * id) * cm" dz="1 * cm" />
<layer id="7" z="-sizez * 0.5 + (5 + 3. * id) * cm" inner_r="rmin + (1. + 0.5 * id) * cm" outer_r="rmax + (-25. + 2. * id) * cm" dz="1 * cm" />
</detector>
</detectors>
<plugins>
</plugins>
<lccdd>
<comment> Central Barrel Tracker Silicon </comment>
<define>
<comment> Si layer opiton </comment>
<constant name="cb_CTD_Si_gap" value="5.0 * cm"/>
<constant name="cb_CTD_Si_layer" value="15"/>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<detectors>
<detector id="cb_CTD_Si_ID" name="cb_CTD_Si" type="cb_CTD_Si" readout="cb_CTD_Si_Hits" vis="cb_CTDVis" insideTrackingVloume="true">
<dimensions rmin="cb_CTD_rmin" rmax="cb_CTD_rmax" length="cb_CTD_length" zmax="cb_CTD_zmax" gap="cb_CTD_Si_gap"/>
<layer repeat="cb_CTD_Si_layer" vis="cb_CTD_Si_layerVis">
<slice name="Silicon_slice" material="Si" sensitive="true"/>
</layer>
</detector>
</detectors>
<readouts>
<readout name="cb_CTD_Si_Hits">
<segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
<id>system:8,barrel:3,layer:4,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
<fields>
</fields>
</lccdd>
<lccdd>
<comment>Central Barrel Solenoid</comment>
<define>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<!-- Define detector -->
<detectors>
<comment>
Central Barrel Solenoid Magnet
</comment>
<detector id="Solenoid_ID" name="cb_Solenoid" type="cb_Solenoid" insideTrackingVolume="false" vis="cb_SolenoidVis">
<material name="Vacuum"/> <!-- G4_Galactic -->
<dimensions rmin="Solenoid_rmin" rmax="Solenoid_rmax" z="b_Solenoid_z" delta="cb_Solenoid_shift"/>
</detector>
</detectors>
<plugins>
</plugins>
<!-- TODO: Define field using field map-->
<fields>
</fields>
</lccdd>
<lccdd>
<comment> Electron endcap GEM tracking </comment>
<define>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<detectors>
<detector id="ce_GEM_ID" name="ce_GEM" type="ce_GEM" readout="ce_GEM_Hits" vis="ce_GEMVis" insideTrackingVloume="true">
<dimensions rmin="ce_GEM_rmin" rmax="ce_GEM_rmax" length="ce_GEM_length"/>
<position x="ce_GEM_x_pos" y="ce_GEM_y_pos" z="ce_GEM_z_pos"/>
<layer repeat="ce_GEM_layer" vis="ce_GEM_layerVis">
<slice name="Ar10CO2_slice" material="Ar10CO2" thickness="ce_GEM_layer_thickness" sensitive="true"/>
</layer>
</detector>
</detectors>
<readouts>
<readout name="ce_GEM_Hits">
<segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
<id>system:8,layer:8,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
<fields>
</fields>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
</define>
<detectors>
<detector id="ce_MRICH_ID" name="ce_MRICH" type="refdet_ce_MRICH" readout="MRICHHits" vis="BlueVis" material="Air">
<dimensions rmin="ce_MRICHRMin" rmax="ce_MRICHRMax" length="ce_MRICHLength" z="ce_MRICHZMin"/>
<modules material="Quartz" thickness="10*cm" width="10*cm" gap="1*cm" />
</detector>
</detectors>
<readouts>
<readout name="MRICHHits">
<segmentation type="CartesianGridXY" grid_size_x="3*mm" grid_size_y="3*mm" />
<id>system:8,sector:8,module:14,x:32:-16,y:-16</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<documentation>
### Silicon Tracker
#### Some references:
- With some added info on ITS3 chip from https://indico.bnl.gov/event/10677/contributions/45591/attachments/33204/53254/20210318-IR2%40EIC-SVT.pdf
To be used as standin until we get more detailed specs from the working group on the tracker.
- https://wiki.bnl.gov/athena/index.php/Tracking
Note: initial implementation with hard-coded values,
TODO: add parametrization
#### ITS3 sensors
ITS3 sensor thickness:
- 40um, pixel size: 10um (segmentation)
- total X0 0.55% per barrel layer:
- 0.35 mm aluminum ~ 0.4% X0.
- 2 x carbonfiber (RL ~ 28) 0.12 mm (!!! material scan shows ~0.17mm, need to check later) to match Si (RL~9) of 0.04mm ~ 0.04%
total X0 0.24% per disk layer (4 sectors per disk):
- 0.15 mm aluminum ~ 0.16% X0.
- 1 x carbonfiber (RL ~ 28) 0.12 mm to match Si (RL~9) of 0.04mm ~ 0.04%
</documentation>
<define>
<constant name="CentralTrackerSensor_thickness" value="40*um"/>
<constant name="TrackerCarbon_thickness" value="0.12*mm"/>
<constant name="TrackerEndcapAluminum_thickness" value="0.15*mm"/>
<comment>
Layer_rOffset is used to add inside space so the _rmin value is the nominal sensor radius.
TrackerBarrelSpaceFrame_height must be smaller than {_rmin2 - _rmin1 - Layer_rOffset - 1mm - stave_thickness}
</comment>
<constant name="TrackerBarrelLayer_rOffset" value="0.5*cm"/>
<constant name="TrackerBarrelSpaceFrame_width" value="4.0*cm"/>
<constant name="TrackerBarrelSpaceFrame_height" value="1.0*cm"/>
<constant name="TrackerSensor_thickness" value="CentralTrackerSensor_thickness"/>
<constant name="TrackerBarrelInner_rmin1" value="21.0*cm"/>
<constant name="TrackerBarrelInner_rmin2" value="22.68*cm"/>
<constant name="TrackerBarrelInner_length1" value="54.0*cm"/>
<constant name="TrackerBarrelInner_length2" value="60.0*cm"/>
<constant name="TrackerBarrelOuter_rmin1" value="39.3*cm"/>
<constant name="TrackerBarrelOuter_rmin2" value="43.23*cm"/>
<constant name="TrackerBarrelOuter_length1" value="105.0*cm"/>
<constant name="TrackerBarrelOuter_length2" value="114.0*cm"/>
<constant name="TrackerBarrelInner_thickness" value="TrackerBarrelInner_rmin2 - TrackerBarrelInner_rmin1"/>
<constant name="TrackerBarrelOuter_thickness" value="TrackerBarrelOuter_rmin2 - TrackerBarrelOuter_rmin1"/>
<constant name="TrackerBarrelInner_length" value="TrackerBarrelInner_length2+0.5*cm"/>
<constant name="TrackerBarrelOuter_length" value="TrackerBarrelOuter_length2+0.5*cm"/>
<comment>
Here we are assuming the two endcaps (P and N) are symmetric.
</comment>
<constant name="TrackerEndcapInner_nLayers" value="1"/>
<constant name="TrackerEndcapOuter_nLayers" value="3"/>
<constant name="TrackerEndcapLayer_dz" value="2*cm"/>
<constant name="TrackerEndcapInner_zmin" value="49*cm"/>
<constant name="TrackerEndcapInner_zmax" value="TrackerEndcapInner_zmin+TrackerEndcapLayer_dz"/>
<constant name="TrackerEndcapInner_length" value="TrackerEndcapLayer_dz"/>
<constant name="TrackerEndcapInnerLayer_thickness" value="min(3.0*cm,TrackerEndcapLayer_dz - 0.5*cm)"/>
<constant name="TrackerEndcapOuter_zmin1" value="73*cm"/>
<constant name="TrackerEndcapOuter_zmin2" value="97*cm"/>
<constant name="TrackerEndcapOuter_zmin3" value="121*cm"/>
<constant name="TrackerEndcapOuter_zmin" value="TrackerEndcapOuter_zmin1"/>
<constant name="TrackerEndcapOuter_zmax" value="TrackerEndcapOuter_zmin3 + TrackerEndcapLayer_dz"/>
<constant name="TrackerEndcapOuterLayer_thickness" value="min(5.0*cm,TrackerEndcapLayer_dz - 1.0*cm)"/>
<comment> Note, the -1.0*cm is so the layers do not touch surfaces.
This is a limitation of ACTS geometry which will likely go away in the future.</comment>
<constant name="TrackerEndcapInner_rmin1" value="Beampipe_rmax+1.0*cm"/>
<!-- <constant name="TrackerEndcapInner_rmin2" value="Beampipe_rmax+1.0*cm"/> -->
<comment> this can be parametrized as a function of z. From acts check: rmin must > 3.57627cm which is beampipe_max+0.4cm</comment>
<constant name="TrackerEndcapOuter_rmin1" value="3.6*cm"/>
<constant name="TrackerEndcapOuter_rmin2" value="4.7*cm"/>
<constant name="TrackerEndcapOuter_rmin3" value="5.91*cm"/>
<constant name="TrackerEndcapInner_rmax1" value="36.26*cm-5.0*mm"/>
<constant name="TrackerEndcapOuter_rmax1" value="43.23*cm"/>
<constant name="TrackerEndcapOuter_rmax2" value="43.23*cm"/>
<constant name="TrackerEndcapOuter_rmax3" value="43.23*cm"/>
<comment> build the cone from vertex endcap to inner barrel endcap </comment>
<constant name="TrackerSupportCarbon_thickness" value="2*mm"/>
<constant name="TrackerEndcapInnerCone_zmax" value="TrackerEndcapInner_zmin-0.5*cm"/>
<constant name="TrackerEndcapInnerCone_zmin" value="TrackerBarrelInner_length2/2+0.5*cm"/>
<constant name="TrackerEndcapInnerCone_rmin1" value="TrackerBarrelInner_rmin1"/>
<constant name="TrackerEndcapInnerCone_rmin2" value="TrackerEndcapInner_rmax1"/>
<constant name="TrackerEndcapInnerCone_length" value="TrackerEndcapInnerCone_zmax - TrackerEndcapInnerCone_zmin"/>
<constant name="TrackerEndcapInnerConeService_rmin1" value="TrackerEndcapInnerCone_rmin1+TrackerSupportCarbon_thickness+0.1*mm"/>
<constant name="TrackerEndcapInnerConeService_rmin2" value="TrackerEndcapInnerCone_rmin2+TrackerSupportCarbon_thickness+0.1*mm"/>
<constant name="TrackerEndcapInnerConeService_thickness" value="2.5*mm"/>
<comment> The carbonfiber shell covers the outer 3 disks and intercepts with the diagonal cone at TrackerEndcapOuter_rmax1 * TrackerEndcapInner_zmin/TrackerEndcapInner_rmax1 ~ 60cm </comment>
<constant name="TrackerEndcapOuterShell_rmin" value="TrackerEndcapOuter_rmax3 + 0.5*cm"/>
<constant name="TrackerEndcapOuterShell_zmin" value="TrackerEndcapOuter_rmax1 * TrackerEndcapInner_zmin/TrackerEndcapInner_rmax1+1*cm"/>
<constant name="TrackerEndcapOuterShell_length" value="TrackerEndcapOuter_zmax - TrackerEndcapOuterShell_zmin"/>
<comment> build the cone from inner barrel endcap to outer barrel endcap1. For now can not make zmin start at the inner endcap location, will overlap with outer barrel volume </comment>
<!-- <constant name="TrackerEndcapOuterCone_zmax" value="TrackerEndcapOuterShell_zmin-0.2*cm"/> -->
<constant name="TrackerEndcapOuterCone_zmin" value="TrackerBarrelOuter_length/2.0+0.1*cm"/>
<constant name="TrackerEndcapOuterCone_zmax" value="TrackerEndcapOuterShell_zmin -0.1*cm"/>
<constant name="TrackerEndcapOuterCone_rmin1" value="TrackerEndcapOuterCone_zmin * TrackerEndcapInner_rmax1 / TrackerEndcapInner_zmin"/>
<!-- <constant name="TrackerEndcapOuterCone_rmin1" value="TrackerEndcapInner_rmax1"/> -->
<constant name="TrackerEndcapOuterCone_rmin2" value="TrackerEndcapOuterShell_rmin"/>
<constant name="TrackerEndcapOuterConeService_rmin1" value="TrackerEndcapOuterCone_rmin1+TrackerSupportCarbon_thickness+0.1*mm"/>
<constant name="TrackerEndcapOuterConeService_rmin2" value="TrackerEndcapOuterCone_rmin2+TrackerSupportCarbon_thickness+0.1*mm"/>
<constant name="TrackerEndcapOuterConeService_thickness" value="2*mm"/>
<constant name="TrackerEndcapOuterCone_length" value="TrackerEndcapOuterCone_zmax - TrackerEndcapOuterCone_zmin"/>
<comment> Barrel staves, nmodules = np.pi/np.arcsin(frame_width*np.cos(tilt_angle)/2.0/R) </comment>
<constant name="TrackerBarrel_StaveTiltAngle" value="5.0*degree"/>
<constant name="TrackerBarrelInner_NModules1" value="33"/>
<constant name="TrackerBarrelInner_NModules2" value="36"/>
<constant name="TrackerBarrelOuter_NModules1" value="62"/>
<constant name="TrackerBarrelOuter_NModules2" value="68"/>
<comment> endcap panels, with z offset of 2.5mm each panel, and 0.5 degree overlap </comment>
<constant name="TrackerEndcap_NModules" value="12"/>
<constant name="TrackerEndcapModule_dz" value="2.5*mm"/>
<constant name="TrackerEndcapInnerModOpeningAngle" value="360.0/TrackerEndcap_NModules*degree + 0.5*degree"/>
<constant name="TrackerEndcapInnerMod1_x1" value="2.0*TrackerEndcapInner_rmin1*sin(TrackerEndcapInnerModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapInnerMod1_x2" value="2.0*TrackerEndcapInner_rmax1*sin(TrackerEndcapInnerModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapInnerMod1_y" value="TrackerEndcapInner_rmax1*cos(TrackerEndcapInnerModOpeningAngle/2.0) - TrackerEndcapInner_rmin1"/>
<constant name="TrackerEndcapOuterModOpeningAngle" value="360.0/TrackerEndcap_NModules*degree + 0.5*degree"/>
<constant name="TrackerEndcapOuterMod1_x1" value="2.0*TrackerEndcapOuter_rmin1*sin(TrackerEndcapOuterModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapOuterMod1_x2" value="2.0*TrackerEndcapOuter_rmax1*sin(TrackerEndcapOuterModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapOuterMod1_y" value="TrackerEndcapOuter_rmax1*cos(TrackerEndcapOuterModOpeningAngle/2.0) - TrackerEndcapOuter_rmin1"/>
<constant name="TrackerEndcapOuterMod2_x1" value="2.0*TrackerEndcapOuter_rmin2*sin(TrackerEndcapOuterModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapOuterMod2_x2" value="2.0*TrackerEndcapOuter_rmax2*sin(TrackerEndcapOuterModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapOuterMod2_y" value="TrackerEndcapOuter_rmax2*cos(TrackerEndcapOuterModOpeningAngle/2.0) - TrackerEndcapOuter_rmin2"/>
<constant name="TrackerEndcapOuterMod3_x1" value="2.0*TrackerEndcapOuter_rmin3*sin(TrackerEndcapOuterModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapOuterMod3_x2" value="2.0*TrackerEndcapOuter_rmax3*sin(TrackerEndcapOuterModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapOuterMod3_y" value="TrackerEndcapOuter_rmax3*cos(TrackerEndcapOuterModOpeningAngle/2.0) - TrackerEndcapOuter_rmin3"/>
</define>
<display>
</display>
<detectors>
<comment>
#### Inner Tracker Subassembly
</comment>
<detector
id="TrackerBarrel_0_ID"
name="TrackerBarrel_Inner"
type="athena_TrackerBarrel"
readout="TrackerBarrelHits"
insideTrackingVolume="true">
<dimensions
rmin="TrackerBarrelInner_rmin1-TrackerBarrelLayer_rOffset"
rmax="TrackerBarrelInner_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelInner_thickness"
length="TrackerBarrelInner_length"/>
<comment>
Tracker Barrel Modules
</comment>
<module name="TrackerBarrelInner_Module1" vis="TrackerModuleVis">
<frame material="CarbonFiber" vis="TrackerSupportVis"
width="TrackerBarrelSpaceFrame_width"
height="TrackerBarrelSpaceFrame_height"
length="TrackerBarrelInner_length1"
thickness="TrackerCarbon_thickness" />
<module_component name="aluminum1" material="Aluminum" sensitive="false"
width="TrackerBarrelSpaceFrame_width" length="TrackerBarrelInner_length1-4*mm" thickness="0.4*mm" />
<module_component name="silicon"
width="TrackerBarrelSpaceFrame_width"
length="TrackerBarrelInner_length1-5*mm" thickness="TrackerSensor_thickness" material="Silicon" sensitive="true">
<!--position z="-0.025*mm" y="0*mm"/-->
</module_component>
</module>
<module name="TrackerBarrelInner_Module2" vis="TrackerModuleVis">
<frame material="CarbonFiber" vis="TrackerSupportVis"
width="TrackerBarrelSpaceFrame_width"
height="TrackerBarrelSpaceFrame_height"
length="TrackerBarrelInner_length2"
thickness="TrackerCarbon_thickness" />
<module_component name="aluminum1" material="Aluminum" sensitive="false"
width="TrackerBarrelSpaceFrame_width" length="TrackerBarrelInner_length2-4*mm" thickness="0.4*mm" />
<module_component name="silicon"
width="TrackerBarrelSpaceFrame_width"
length="TrackerBarrelInner_length2-5*mm" thickness="TrackerSensor_thickness" material="Silicon" sensitive="true">
<!--position z="-0.025*mm" y="0*mm"/-->
</module_component>
</module>
<comment>
Tracker Barrel Inner Layers
</comment>
<layer module="TrackerBarrelInner_Module1" id="1" vis="TrackerLayerVis">
<barrel_envelope
inner_r="TrackerBarrelInner_rmin1-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrelInner_rmin1-TrackerBarrelLayer_rOffset + TrackerBarrelInner_thickness-1.0*mm"
z_length="TrackerBarrelInner_length1"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*TrackerBarrelInner_NModules1" bins1="100" />
<rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelInner_NModules1" phi0="0.0" rc="TrackerBarrelInner_rmin1" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="TrackerBarrelInner_Module2" id="2" vis="TrackerLayerVis">
<barrel_envelope
inner_r="TrackerBarrelInner_rmin2-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrelInner_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelInner_thickness"
z_length="TrackerBarrelInner_length2"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*TrackerBarrelInner_NModules2" bins1="100" />
<rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelInner_NModules2" phi0="0.0" rc="TrackerBarrelInner_rmin2" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
<detector
id="TrackerEndcapP_0_ID"
name="TrackerEndcapP_Inner"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits"
vis="TrackerVis"
reflect="false">
<support material="CarbonFiber" name="sup_cone" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="TrackerEndcapInnerCone_rmin1" rmax1="TrackerEndcapInnerCone_rmin1 + TrackerSupportCarbon_thickness"
rmin2="TrackerEndcapInnerCone_rmin2" rmax2="TrackerEndcapInnerCone_rmin2 + TrackerSupportCarbon_thickness" z="TrackerEndcapInnerCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="(TrackerEndcapInnerCone_zmax+TrackerEndcapInnerCone_zmin)/2.0"/>
</support>
<support material="Aluminum" name="sup_cone_service" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="TrackerEndcapInnerConeService_rmin1" rmax1="TrackerEndcapInnerConeService_rmin1 + TrackerEndcapInnerConeService_thickness"
rmin2="TrackerEndcapInnerConeService_rmin2" rmax2="TrackerEndcapInnerConeService_rmin2 + TrackerEndcapInnerConeService_thickness" z="TrackerEndcapInnerCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="(TrackerEndcapInnerCone_zmax+TrackerEndcapInnerCone_zmin)/2.0"/>
</support>
<module name="Module1" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapInnerMod1_x1/2.0" x2="TrackerEndcapInnerMod1_x2/2.0" z="TrackerEndcapInnerMod1_y/2"/>
<module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module>
<layer id="1">
<envelope vis="TrackerVis"
rmin="TrackerEndcapInner_rmin1"
rmax="TrackerEndcapInner_rmax1"
length="TrackerEndcapInnerLayer_thickness"
zstart="TrackerEndcapInner_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis"
r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
zstart="0.0"
nmodules="TrackerEndcap_NModules" dz="TrackerEndcapModule_dz" module="Module1" />
</layer>
</detector>
<detector
id="TrackerEndcapN_0_ID"
name="TrackerEndcapN_Inner"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits"
vis="TrackerVis"
reflect="true">
<support material="CarbonFiber" name="sup_cone" vis="TrackerSupportVis">
<shape type="Cone"
rmin2="TrackerEndcapInnerCone_rmin1" rmax2="TrackerEndcapInnerCone_rmin1 + TrackerSupportCarbon_thickness"
rmin1="TrackerEndcapInnerCone_rmin2" rmax1="TrackerEndcapInnerCone_rmin2 + TrackerSupportCarbon_thickness" z="TrackerEndcapInnerCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="-1.0*(TrackerEndcapInnerCone_zmax+TrackerEndcapInnerCone_zmin)/2.0"/>
</support>
<support material="Aluminum" name="sup_cone_service" vis="TrackerSupportVis">
<shape type="Cone"
rmin2="TrackerEndcapInnerConeService_rmin1" rmax2="TrackerEndcapInnerConeService_rmin1 + TrackerEndcapInnerConeService_thickness"
rmin1="TrackerEndcapInnerConeService_rmin2" rmax1="TrackerEndcapInnerConeService_rmin2 + TrackerEndcapInnerConeService_thickness" z="TrackerEndcapInnerCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="-1.0*(TrackerEndcapInnerCone_zmax+TrackerEndcapInnerCone_zmin)/2.0"/>
</support>
<module name="Module1" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapInnerMod1_x1/2.0" x2="TrackerEndcapInnerMod1_x2/2.0" z="TrackerEndcapInnerMod1_y/2"/>
<module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module>
<layer id="1">
<envelope vis="TrackerVis"
rmin="TrackerEndcapInner_rmin1"
rmax="TrackerEndcapInner_rmax1"
length="TrackerEndcapInnerLayer_thickness"
zstart="TrackerEndcapInner_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis"
r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
zstart="0"
nmodules="TrackerEndcap_NModules" dz="TrackerEndcapModule_dz" module="Module1" />
</layer>
</detector>
<comment>
-----------------------------------
Outer Tracker Subassembly (group 2)
-----------------------------------
</comment>
<detector
id="TrackerBarrel_1_ID"
name="TrackerBarrel_Outer"
type="athena_TrackerBarrel"
readout="TrackerBarrelHits"
insideTrackingVolume="true">
<dimensions
rmin="TrackerBarrelOuter_rmin1-TrackerBarrelLayer_rOffset"
rmax="TrackerBarrelOuter_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelOuter_thickness"
length="TrackerBarrelOuter_length"/>
<comment>
Tracker Barrel Modules
</comment>
<module name="TrackerBarrelOuter_Module1" vis="TrackerModuleVis">
<frame material="CarbonFiber" vis="TrackerSupportVis"
width="TrackerBarrelSpaceFrame_width"
height="TrackerBarrelSpaceFrame_height"
length="TrackerBarrelOuter_length1"
thickness="TrackerCarbon_thickness" />
<module_component name="aluminum1" material="Aluminum" sensitive="false"
width="TrackerBarrelSpaceFrame_width" length="TrackerBarrelOuter_length1-0.1*mm" thickness="0.40*mm" />
<module_component name="silicon"
width="TrackerBarrelSpaceFrame_width"
length="TrackerBarrelOuter_length1-0.1*mm"
thickness="TrackerSensor_thickness" material="Silicon" sensitive="true">
</module_component>
</module>
<module name="TrackerBarrelOuter_Module2" vis="TrackerModuleVis">
<frame material="CarbonFiber" vis="TrackerSupportVis"
width="TrackerBarrelSpaceFrame_width"
height="TrackerBarrelSpaceFrame_height"
length="TrackerBarrelOuter_length2"
thickness="TrackerCarbon_thickness" />
<module_component name="aluminum1" material="Aluminum" sensitive="false"
width="TrackerBarrelSpaceFrame_width" length="TrackerBarrelOuter_length2-0.1*mm" thickness="0.40*mm" />
<module_component name="silicon"
width="TrackerBarrelSpaceFrame_width"
length="TrackerBarrelOuter_length1-0.1*mm"
thickness="TrackerSensor_thickness" material="Silicon" sensitive="true">
</module_component>
</module>
<comment>
Tracker Barrel Outer Layers
</comment>
<layer module="TrackerBarrelOuter_Module1" id="1" vis="TrackerLayerVis">
<barrel_envelope
inner_r="TrackerBarrelOuter_rmin1-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrelOuter_rmin1-TrackerBarrelLayer_rOffset + TrackerBarrelOuter_thickness-1.0*mm"
z_length="TrackerBarrelOuter_length1"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*TrackerBarrelOuter_NModules1" bins1="100" />
<rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelOuter_NModules1" phi0="0.0" rc="TrackerBarrelOuter_rmin1" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="TrackerBarrelOuter_Module2" id="2" vis="TrackerLayerVis">
<barrel_envelope
inner_r="TrackerBarrelOuter_rmin2-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrelOuter_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelOuter_thickness"
z_length="TrackerBarrelOuter_length2"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*TrackerBarrelOuter_NModules2" bins1="100" />
<rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelOuter_NModules2" phi0="0.0" rc="TrackerBarrelOuter_rmin2" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
<detector
id="TrackerEndcapP_1_ID"
name="TrackerEndcapP_Outer"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits"
vis="TrackerVis"
reflect="false">
<support vis="TrackerSupportVis" material="CarbonFiber" name="sup_cylinder"
rmin="TrackerEndcapOuterShell_rmin"
thickness="TrackerSupportCarbon_thickness" length="TrackerEndcapOuterShell_length" zstart="TrackerEndcapOuterShell_zmin" />
<support vis="TrackerSupportVis" material="Aluminum" name="sup_cylinder_service"
rmin="TrackerEndcapOuterShell_rmin+1.0*mm+TrackerSupportCarbon_thickness"
thickness="2.0*mm" length="TrackerEndcapOuterShell_length" zstart="TrackerEndcapOuterShell_zmin" />
<support material="CarbonFiber" name="sup_cone" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="TrackerEndcapOuterCone_rmin1" rmax1="TrackerEndcapOuterCone_rmin1+TrackerSupportCarbon_thickness"
rmin2="TrackerEndcapOuterCone_rmin2" rmax2="TrackerEndcapOuterCone_rmin2+TrackerSupportCarbon_thickness" z="TrackerEndcapOuterCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="(TrackerEndcapOuterCone_zmin+TrackerEndcapOuterCone_zmax)/2.0"/>
</support>
<support material="Aluminum" name="sup_cone_service" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="TrackerEndcapOuterConeService_rmin1" rmax1="TrackerEndcapOuterConeService_rmin1+TrackerEndcapOuterConeService_thickness"
rmin2="TrackerEndcapOuterConeService_rmin2" rmax2="TrackerEndcapOuterConeService_rmin2+TrackerEndcapOuterConeService_thickness" z="TrackerEndcapOuterCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="(TrackerEndcapOuterCone_zmin+TrackerEndcapOuterCone_zmax)/2.0"/>
</support>
<module name="Module1" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/>
<module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module>
<module name="Module2" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod2_x1/2.0" x2="TrackerEndcapOuterMod2_x2/2.0" z="TrackerEndcapOuterMod2_y/2"/>
<module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module>
<module name="Module3" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod3_x1/2.0" x2="TrackerEndcapOuterMod3_x2/2.0" z="TrackerEndcapOuterMod3_y/2"/>
<module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module>
<layer id="1">
<envelope vis="TrackerVis"
rmin="TrackerEndcapOuter_rmin1"
rmax="TrackerEndcapOuter_rmax1"
length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin1" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin1+TrackerEndcapOuterMod1_y/2.0"
zstart="0.0*mm"
nmodules="TrackerEndcap_NModules" dz="TrackerEndcapModule_dz" module="Module1" />
</layer>
<layer id="2">
<envelope vis="TrackerVis"
rmin="TrackerEndcapOuter_rmin2"
rmax="TrackerEndcapOuter_rmax2"
length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin2" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin2+TrackerEndcapOuterMod2_y/2.0"
zstart="0.0*mm"
nmodules="TrackerEndcap_NModules" dz="TrackerEndcapModule_dz" module="Module2" />
</layer>
<layer id="3">
<envelope vis="TrackerVis"
rmin="TrackerEndcapOuter_rmin3"
rmax="TrackerEndcapOuter_rmax3"
length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin3" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin3+TrackerEndcapOuterMod3_y/2.0"
zstart="0.0*mm"
nmodules="TrackerEndcap_NModules" dz="TrackerEndcapModule_dz" module="Module3" />
</layer>
</detector>
<detector
id="TrackerEndcapN_1_ID"
name="TrackerEndcapN_Outer"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits"
vis="TrackerVis"
reflect="true">
<support vis="TrackerSupportVis" material="CarbonFiber" name="sup_cylinder"
rmin="TrackerEndcapOuterShell_rmin"
thickness="TrackerSupportCarbon_thickness" length="TrackerEndcapOuterShell_length" zstart="TrackerEndcapOuterShell_zmin" />
<support vis="TrackerSupportVis" material="Aluminum" name="sup_cylinder_service"
rmin="TrackerEndcapOuterShell_rmin+1.0*mm+TrackerSupportCarbon_thickness"
thickness="2.0*mm" length="TrackerEndcapOuterShell_length" zstart="TrackerEndcapOuterShell_zmin" />
<comment>the cone can not be reflected. need to flip z explicitly</comment>
<support material="CarbonFiber" name="sup_cone" vis="TrackerSupportVis">
<shape type="Cone"
rmin2="TrackerEndcapOuterCone_rmin1" rmax2="TrackerEndcapOuterCone_rmin1+TrackerSupportCarbon_thickness"
rmin1="TrackerEndcapOuterCone_rmin2" rmax1="TrackerEndcapOuterCone_rmin2+TrackerSupportCarbon_thickness" z="TrackerEndcapOuterCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="-1.0*(TrackerEndcapOuterCone_zmin+TrackerEndcapOuterCone_zmax)/2.0"/>
</support>
<support material="Aluminum" name="sup_cone_service" vis="TrackerSupportVis">
<shape type="Cone"
rmin2="TrackerEndcapOuterConeService_rmin1" rmax2="TrackerEndcapOuterConeService_rmin1+TrackerEndcapOuterConeService_thickness"
rmin1="TrackerEndcapOuterConeService_rmin2" rmax1="TrackerEndcapOuterConeService_rmin2+TrackerEndcapOuterConeService_thickness" z="TrackerEndcapOuterCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="-1.0*(TrackerEndcapOuterCone_zmin+TrackerEndcapOuterCone_zmax)/2.0"/>
</support>
<module name="Module1" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/>
<module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module>
<module name="Module2" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod2_x1/2.0" x2="TrackerEndcapOuterMod2_x2/2.0" z="TrackerEndcapOuterMod2_y/2"/>
<module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module>
<module name="Module3" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod3_x1/2.0" x2="TrackerEndcapOuterMod3_x2/2.0" z="TrackerEndcapOuterMod3_y/2"/>
<module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module>
<layer id="1">
<envelope vis="TrackerVis"
rmin="TrackerEndcapOuter_rmin1"
rmax="TrackerEndcapOuter_rmax1"
length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin1" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin1+TrackerEndcapOuterMod1_y/2.0"
zstart="0.0*mm"
nmodules="TrackerEndcap_NModules" dz="TrackerEndcapModule_dz" module="Module1" />
</layer>
<layer id="2">
<envelope vis="TrackerVis"
rmin="TrackerEndcapOuter_rmin2"
rmax="TrackerEndcapOuter_rmax2"
length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin2" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin2+TrackerEndcapOuterMod2_y/2.0"
zstart="0.0*mm"
nmodules="TrackerEndcap_NModules" dz="TrackerEndcapModule_dz" module="Module2" />
</layer>
<layer id="3">
<envelope vis="TrackerVis"
rmin="TrackerEndcapOuter_rmin3"
rmax="TrackerEndcapOuter_rmax3"
length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin3" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin3+TrackerEndcapOuterMod3_y/2.0"
zstart="0.0*mm"
nmodules="TrackerEndcap_NModules" dz="TrackerEndcapModule_dz" module="Module3" />
</layer>
</detector>
</detectors>
<readouts>
<readout name="TrackerBarrelHits">
<segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-14,y:-18</id>
</readout>
<readout name="TrackerEndcapHits">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<comment>
Master tracker parameters
Central Tracking region consists of:
|----------------------------------------------------------------------------|
| | OuterBarrel | |
| |--------------------------------------------------------| |
| | | MedialBarrel | | |
| | |------------------------------------| | |
| | | | InnerBarrel | | | |
| | | |----------------| | | |
| Outer | Medial | Inner | Vertex Tracker | Inner | Medial | Outer |
| EndcapN | EndcapN | EndcapN | Vertex Tracker | EndcapP | EndcapP | EndcapP |
|----------------------------------------------------------------------------|
^ ^
CentralTrackingRegionN_zmax CentralTrackingRegionP_zmax
</comment>
<define>
<comment> Inner tracker setup </comment>
<constant name="InnerTrackerBarrel_rmin" value="13.38*cm"/>
<constant name="InnerTrackerBarrel_offset" value="4.62*cm"/>
<constant name="InnerTrackerBarrel_count" value="2"/>
<constant name="InnerTrackerBarrelMod_width" value="4.*cm"/>
<constant name="InnerTrackerBarrelCone_zmin" value="16.8*cm"/>
<constant name="InnerTrackerBarrelCone_zmax" value="24.54*cm"/>
<constant name="InnerTrackerEndcap_zmin" value="25*cm"/>
<constant name="InnerTrackerEndcap_rmin" value="Beampipe_rmax + 50*um"/>
<constant name="InnerTrackerEndcap_offset" value="24*cm"/>
<constant name="InnerTrackerEndcap_count" value="2"/>
<comment> Medial tracker setup </comment>
<constant name="MedialTrackerBarrel_rmin" value="47.72*cm"/>
<constant name="MedialTrackerBarrel_offset" value="1.85*cm"/>
<constant name="MedialTrackerBarrel_count" value="2"/>
<constant name="MedialTrackerEndcap_zmin" value="73*cm"/>
<constant name="MedialTrackerEndcap_offset" value="0*cm"/>
<constant name="MedialTrackerEndcap_count" value="1"/>
<constant name="MedialTrackerEndcapP_rmin" value="Beampipe_rmax + 3*mm"/>
<constant name="MedialTrackerEndcapN_rmin" value="InnerTrackerEndcap_rmin"/>
<comment> Outer tracker setup </comment>
<constant name="OuterTrackerBarrel_rmin" value="75.61*cm"/>
<constant name="OuterTrackerBarrel_offset" value="1.85*cm"/>
<constant name="OuterTrackerBarrel_count" value="2"/>
<constant name="OuterTrackerEndcapP_zmin" value="103.67*cm"/>
<constant name="OuterTrackerEndcapP_offset" value="30.66*cm"/>
<constant name="OuterTrackerEndcapP_count" value="3"/>
<constant name="OuterTrackerEndcapN_zmin" value="109*cm"/>
<constant name="OuterTrackerEndcapN_offset" value="36.00*cm"/>
<constant name="OuterTrackerEndcapN_count" value="2"/>
<comment> Gem disk setup.
Note: some GEM disk z-positions are moved slightly (below in the parametrization)
to avoid vertical overlaps with the silicon disks (which is not allowed by ACTS).
@FIXME
</comment>
<constant name="GEMEndcapPDisk1_zmin" value="103*cm"/>
<constant name="GEMEndcapPDisk2_zmin" value="164.5"/>
<constant name="GEMEndcapPDisk3_zmin" value="ForwardTrackingRegion_zmin + 2*cm"/>
<constant name="GEMEndcapP_count" value="3"/>
<constant name="GEMEndcapN_zmin" value="103*cm"/>
<constant name="GEMEndcapN_offset" value="41.5*cm"/>
<constant name="GEMEndcapN_count" value="2"/>
<comment> Silicon tracker parameters </comment>
<constant name="SiTrackerBarrelSpaceFrameCF_thickness" value="0.12*mm"/>
<constant name="SiTrackerBarrelSpaceFrame_height" value="1.0*cm"/>
<constant name="SiTrackerEndcapAl_thickness" value="0.15*mm"/>
<constant name="SiTrackerEndcapCF_thickness" value="0.12*mm"/>
<constant name="SiTrackerEndcapMod_count" value="36"/>
<constant name="SiTrackerEndcapMod_dz" value="0" />
<constant name="SiTrackerEndcapMod_overlap" value="0"/>
<constant name="SiTrackerSensor_thickness" value="40*um"/>
<constant name="SiTrackerCyl_rmin" value="43.23" />
<constant name="SiTrackerServiceConeAl_thickness" value="2.5*mm" />
<constant name="SiTrackerServiceCylAl_thickness" value="2.5*mm" />
<constant name="SiTrackerSupportConeCF_thickness" value="2*mm" />
<constant name="SiTrackerSupportCylCF_thickness" value="2*mm" />
<comment> MMGAS tracker parameters </comment>
<constant name="MMKaptonOverlay_thickness" value="50*um"/>
<constant name="MMCuGround_thickness" value="1.58*um"/>
<constant name="MMPCB_thickness" value="100*um"/>
<constant name="MMCuStrip_thickness" value="12*um"/>
<constant name="MMKaptonStrip_thickness" value="75*um"/>
<constant name="MMResistiveStrip_thickness" value="128*um"/>
<constant name="MMGas_thickness" value="20*um"/>
<constant name="MMMesh_thickness" value="18*um"/>
<constant name="MMGasGap_thickness" value="3000*um"/>
<constant name="MMDriftCuElectrode_thickness" value="5*um"/>
<constant name="MMDriftKapton_thickness" value="250*um"/>
<constant name="MMDriftCuGround_thickness" value="0.41*um"/>
<comment> GEM tracker parameters </comment>
<constant name="GEMEndcapMod_count" value="12"/>
<constant name="GEMFrame_thickness" value="13.0*mm"/>
<constant name="GEMFrameBotEdge_width" value="10.0*mm"/>
<constant name="GEMFrameTopEdge_width" value="50.0*mm"/>
<constant name="GEMFrameSideEdge_width" value="10.0*mm"/>
<constant name="GEMSpoke_thickness" value="1.0*mm"/>
<constant name="GEMSpoke_width" value="GEMFrameSideEdge_width"/>
<comment> Account for the fact that GEMs have holes, so they are not solid volumes </comment>
<constant name="GEMAreaFactor" value="0.80" />
<comment> GEM layers </comment>
<constant name="GEMMylar_thickness" value="25.0*um"/>
<constant name="GEMGas_thickness" value="2.0*mm"/>
<constant name="GEMDriftRegion_thickness" value="3.0*mm"/>
<constant name="GEMKapton_thickness" value="50*um"/>
<constant name="GEMCuFoil_thickness" value="10*um"/>
<constant name="GEMCuElectrode_thickness" value="5.0*um"/>
</define>
<documentation>
## Inner silicon tracker barrel
### Silicon Tracker
#### Some references:
- With some added info on ITS3 chip from https://indico.bnl.gov/event/10677/contributions/45591/attachments/33204/53254/20210318-IR2%40EIC-SVT.pdf
To be used as standin until we get more detailed specs from the working group on the tracker.
- https://wiki.bnl.gov/athena/index.php/Tracking
#### ITS3 sensors
ITS3 sensor thickness:
- 40um, pixel size: 10um (segmentation)
- total X0 0.55% per barrel layer:
- 0.35 mm aluminum ~ 0.4% X0.
- 2 x carbonfiber (RL ~ 28) 0.12 mm (!!! material scan shows ~0.17mm, need to check later) to match Si (RL~9) of 0.04mm ~ 0.04%
total X0 0.24% per disk layer (4 sectors per disk):
- 0.15 mm aluminum ~ 0.16% X0.
- 1 x carbonfiber (RL ~ 28) 0.12 mm to match Si (RL~9) of 0.04mm ~ 0.04%
</documentation>
<define>
<constant name="InnerTrackerBarrelMod1_rmin" value="InnerTrackerBarrel_rmin" />
<constant name="InnerTrackerBarrelMod2_rmin" value="InnerTrackerBarrelMod1_rmin + 1 * InnerTrackerBarrel_offset" />
<constant name="InnerTrackerBarrelCone_length" value="InnerTrackerBarrelCone_zmax - InnerTrackerBarrelCone_zmin" />
<constant name="InnerTrackerBarrelCone_z" value="(InnerTrackerBarrelCone_zmax + InnerTrackerBarrelCone_zmin)/2" />
<constant name="InnerTrackerBarrelCone_thickness" value="SiTrackerSupportConeCF_thickness + SiTrackerServiceConeAl_thickness" />
<comment> Shorten Module (with non-zero thickness!) to avoid overlaps with support cone</comment>
<constant name="InnerTrackerBarrelMod1_length" value="2 * InnerTrackerBarrelMod1_rmin / CentralTrackingBarrel_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" />
<constant name="InnerTrackerBarrelMod2_length" value="2 * InnerTrackerBarrelMod2_rmin / CentralTrackingBarrel_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" />
<constant name="InnerTrackerBarrelServiceCone_rmin1" value="InnerTrackerBarrelCone_zmin * CentralTrackingBarrel_tan" />
<constant name="InnerTrackerBarrelServiceCone_rmax1" value="InnerTrackerBarrelServiceCone_rmin1 + SiTrackerServiceConeAl_thickness" />
<constant name="InnerTrackerBarrelServiceCone_rmin2" value="InnerTrackerBarrelCone_zmax * CentralTrackingBarrel_tan" />
<constant name="InnerTrackerBarrelServiceCone_rmax2" value="InnerTrackerBarrelServiceCone_rmin2 + SiTrackerServiceConeAl_thickness" />
<constant name="InnerTrackerBarrelSupportCone_rmin1" value="InnerTrackerBarrelServiceCone_rmax1" />
<constant name="InnerTrackerBarrelSupportCone_rmax1" value="InnerTrackerBarrelSupportCone_rmin1 + SiTrackerSupportConeCF_thickness" />
<constant name="InnerTrackerBarrelSupportCone_rmin2" value="InnerTrackerBarrelServiceCone_rmax2" />
<constant name="InnerTrackerBarrelSupportCone_rmax2" value="InnerTrackerBarrelSupportCone_rmin2 + SiTrackerSupportConeCF_thickness" />
<constant name="InnerTrackerBarrelLayer1_length" value="InnerTrackerBarrelMod1_length + 1*um" />
<constant name="InnerTrackerBarrelLayer2_length" value="InnerTrackerBarrelMod2_length + 1*um" />
<constant name="InnerTrackerBarrelLayer_thickness" value="1.1*cm" />
<comment> Place asymmetrically in the layer (module sits near the bottom). </comment>
<constant name="InnerTrackerBarrelLayer1_rmin" value="InnerTrackerBarrelMod1_rmin - InnerTrackerBarrelLayer_thickness / 25" />
<constant name="InnerTrackerBarrelLayer2_rmin" value="InnerTrackerBarrelMod2_rmin - InnerTrackerBarrelLayer_thickness / 25" />
<constant name="InnerTrackerBarrelLayer1_rmax" value="InnerTrackerBarrelLayer1_rmin + InnerTrackerBarrelLayer_thickness" />
<constant name="InnerTrackerBarrelLayer2_rmax" value="InnerTrackerBarrelLayer2_rmin + InnerTrackerBarrelLayer_thickness" />
<constant name="InnerTrackerBarrelEnvelope_length" value="2 * InnerTrackerBarrelCone_zmax" />
<constant name="InnerTrackerBarrelEnvelope_rmin" value="VertexTrackingRegion_rmax" />
<constant name="InnerTrackerBarrelEnvelope_rmax" value="InnerTrackerBarrelLayer2_rmax" />
<comment> Barrel staves, nmodules = np.pi/np.arcsin(frame_width*np.cos(tilt_angle)/2.0/R) </comment>
<comment> (rounded up by 2 to avoid holes)</comment>
<constant name="InnerTrackerBarrelModTilt_angle" value="3.0*degree"/>
<constant name="InnerTrackerBarrelMod1_count" value="floor(180.*degree/asin(InnerTrackerBarrelMod_width*cos(InnerTrackerBarrelModTilt_angle)/2/InnerTrackerBarrelMod1_rmin))+2"/>
<constant name="InnerTrackerBarrelMod2_count" value="floor(180.*degree/asin(InnerTrackerBarrelMod_width*cos(InnerTrackerBarrelModTilt_angle)/2/InnerTrackerBarrelMod2_rmin))+2"/>
</define>
<detectors>
<detector
id="TrackerBarrel_0_ID"
name="InnerTrackerBarrel"
type="athena_TrackerBarrel"
readout="TrackerBarrelHits"
insideTrackingVolume="true">
<dimensions
rmin="InnerTrackerBarrelEnvelope_rmin"
rmax="InnerTrackerBarrelEnvelope_rmax"
length="InnerTrackerBarrelEnvelope_length"/>
<support material="Aluminum" name="serv_cone_pos" vis="TrackerServiceVis">
<shape type="Cone"
rmin1="InnerTrackerBarrelServiceCone_rmin1"
rmax1="InnerTrackerBarrelServiceCone_rmax1"
rmin2="InnerTrackerBarrelServiceCone_rmin2"
rmax2="InnerTrackerBarrelServiceCone_rmax2"
z="InnerTrackerBarrelCone_length/2"/>
<position x="0*cm" y="0*cm" z="InnerTrackerBarrelCone_z" />
</support>
<support material="CarbonFiber" name="sup_cone_pos" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="InnerTrackerBarrelSupportCone_rmin1"
rmax1="InnerTrackerBarrelSupportCone_rmax1"
rmin2="InnerTrackerBarrelSupportCone_rmin2"
rmax2="InnerTrackerBarrelSupportCone_rmax2"
z="InnerTrackerBarrelCone_length/2"/>
<position x="0*cm" y="0*cm" z="InnerTrackerBarrelCone_z" />
</support>
<support material="Aluminum" name="serv_cone_neg" vis="TrackerServiceVis">
<shape type="Cone"
rmin1="InnerTrackerBarrelServiceCone_rmin2"
rmax1="InnerTrackerBarrelServiceCone_rmax2"
rmin2="InnerTrackerBarrelServiceCone_rmin1"
rmax2="InnerTrackerBarrelServiceCone_rmax1"
z="InnerTrackerBarrelCone_length/2"/>
<position x="0*cm" y="0*cm" z="-InnerTrackerBarrelCone_z" />
</support>
<support material="CarbonFiber" name="sup_cone_neg" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="InnerTrackerBarrelSupportCone_rmin2"
rmax1="InnerTrackerBarrelSupportCone_rmax2"
rmin2="InnerTrackerBarrelSupportCone_rmin1"
rmax2="InnerTrackerBarrelSupportCone_rmax1"
z="InnerTrackerBarrelCone_length/2"/>
<position x="0*cm" y="0*cm" z="-InnerTrackerBarrelCone_z" />
</support>
<comment>
Tracker Barrel Modules
</comment>
<module name="InnerTrackerBarrel_Mod1" vis="TrackerModuleVis">
<frame material="CarbonFiber" vis="TrackerSupportVis"
width="InnerTrackerBarrelMod_width"
height="SiTrackerBarrelSpaceFrame_height"
length="InnerTrackerBarrelMod1_length"
thickness="SiTrackerBarrelSpaceFrameCF_thickness" />
<module_component name="silicon"
width="InnerTrackerBarrelMod_width"
length="InnerTrackerBarrelMod1_length" thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
<module_component name="aluminum1" material="Aluminum" sensitive="false"
width="InnerTrackerBarrelMod_width" length="InnerTrackerBarrelMod1_length" thickness="0.4*mm" vis="TrackerServiceVis"/>
</module>
<module name="InnerTrackerBarrel_Mod2" vis="TrackerModuleVis">
<frame material="CarbonFiber" vis="TrackerSupportVis"
width="InnerTrackerBarrelMod_width"
height="SiTrackerBarrelSpaceFrame_height"
length="InnerTrackerBarrelMod2_length"
thickness="SiTrackerBarrelSpaceFrameCF_thickness" />
<module_component name="silicon"
width="InnerTrackerBarrelMod_width"
length="InnerTrackerBarrelMod2_length" thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
<module_component name="aluminum1" material="Aluminum" sensitive="false"
width="InnerTrackerBarrelMod_width" length="InnerTrackerBarrelMod2_length" thickness="0.4*mm" vis="TrackerServiceVis" />
</module>
<layer module="InnerTrackerBarrel_Mod1" id="1" vis="TrackerLayerVis">
<barrel_envelope
inner_r="InnerTrackerBarrelLayer1_rmin"
outer_r="InnerTrackerBarrelLayer1_rmax"
z_length="InnerTrackerBarrelLayer1_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*InnerTrackerBarrelMod1_count" bins1="100" />
<rphi_layout phi_tilt="InnerTrackerBarrelModTilt_angle" nphi="InnerTrackerBarrelMod1_count" phi0="0.0" rc="InnerTrackerBarrelMod1_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="InnerTrackerBarrel_Mod2" id="2" vis="TrackerLayerVis">
<barrel_envelope
inner_r="InnerTrackerBarrelLayer2_rmin"
outer_r="InnerTrackerBarrelLayer2_rmax"
z_length="InnerTrackerBarrelLayer2_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*InnerTrackerBarrelMod2_count" bins1="100" />
<rphi_layout phi_tilt="InnerTrackerBarrelModTilt_angle" nphi="InnerTrackerBarrelMod2_count" phi0="0.0" rc="InnerTrackerBarrelMod2_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
</detectors>
<documentation>
## Inner silicon tracker disks, symmetric between N and P
</documentation>
<define>
<comment> Global Si endcap variables </comment>
<constant name="SiTrackerEndcapMod_thickness" value="SiTrackerEndcapCF_thickness + SiTrackerEndcapAl_thickness + SiTrackerSensor_thickness" />
<constant name="SiTrackerEndcapMod_angle" value="360.0*degree / SiTrackerEndcapMod_count * (1 + SiTrackerEndcapMod_overlap)" />
<constant name="SiTrackerEndcapLayer_thickness" value="SiTrackerEndcapMod_thickness + 2 * SiTrackerEndcapMod_dz + 1*um" />
<constant name="SiTrackerServiceCyl_rmin" value="SiTrackerCyl_rmin"/>
<constant name="SiTrackerServiceCyl_rmax" value="SiTrackerServiceCyl_rmin + SiTrackerServiceCylAl_thickness"/>
<constant name="SiTrackerSupportCyl_rmin" value="SiTrackerServiceCyl_rmax"/>
<constant name="SiTrackerSupportCyl_rmax" value="SiTrackerSupportCyl_rmin + SiTrackerSupportCylCF_thickness"/>
<comment> Inner Si endcap setup </comment>
<constant name="InnerTrackerEndcapMod1_zmin" value="InnerTrackerEndcap_zmin" />
<constant name="InnerTrackerEndcapMod1_rmin" value="InnerTrackerEndcap_rmin" />
<constant name="InnerTrackerEndcapMod1_rmax" value="min(InnerTrackerEndcapMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
<constant name="InnerTrackerEndcapMod1_x1" value="2 * InnerTrackerEndcapMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="InnerTrackerEndcapMod1_x2" value="2 * InnerTrackerEndcapMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="InnerTrackerEndcapMod1_y" value="InnerTrackerEndcapMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - InnerTrackerEndcapMod1_rmin" />
<constant name="InnerTrackerEndcapMod2_zmin" value="InnerTrackerEndcapMod1_zmin + 1 * InnerTrackerEndcap_offset" />
<constant name="InnerTrackerEndcapMod2_rmin" value="InnerTrackerEndcap_rmin" />
<constant name="InnerTrackerEndcapMod2_rmax" value="min(InnerTrackerEndcapMod2_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
<constant name="InnerTrackerEndcapMod2_x1" value="2 * InnerTrackerEndcapMod2_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="InnerTrackerEndcapMod2_x2" value="2 * InnerTrackerEndcapMod2_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="InnerTrackerEndcapMod2_y" value="InnerTrackerEndcapMod2_rmax * cos(SiTrackerEndcapMod_angle/2) - InnerTrackerEndcapMod2_rmin" />
<constant name="InnerTrackerEndcapLayer1_rmin" value="InnerTrackerEndcapMod1_rmin - 1*um" />
<constant name="InnerTrackerEndcapLayer1_rmax" value="InnerTrackerEndcapMod1_rmax + 1*um" />
<constant name="InnerTrackerEndcapLayer1_zmin" value="InnerTrackerEndcapMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="InnerTrackerEndcapLayer2_rmin" value="InnerTrackerEndcapMod2_rmin - 1*um" />
<constant name="InnerTrackerEndcapLayer2_rmax" value="InnerTrackerEndcapMod2_rmax + 1*um" />
<constant name="InnerTrackerEndcapLayer2_zmin" value="InnerTrackerEndcapMod2_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="InnerTrackerEndcapCone_zmin" value="InnerTrackerBarrelCone_zmax" />
<constant name="InnerTrackerEndcapServiceCone_rmin1" value="InnerTrackerEndcapCone_zmin * CentralTrackingBarrel_tan" />
<constant name="InnerTrackerEndcapServiceCone_rmax1" value="InnerTrackerEndcapServiceCone_rmin1 + SiTrackerServiceConeAl_thickness" />
<constant name="InnerTrackerEndcapServiceCone_rmin2" value="SiTrackerServiceCyl_rmin" />
<constant name="InnerTrackerEndcapServiceCone_rmax2" value="SiTrackerServiceCyl_rmax" />
<constant name="InnerTrackerEndcapCone_zmax" value="InnerTrackerEndcapServiceCone_rmin2 / CentralTrackingBarrel_tan" />
<constant name="InnerTrackerEndcapCone_z" value="(InnerTrackerEndcapCone_zmax + InnerTrackerEndcapCone_zmin)/2" />
<constant name="InnerTrackerEndcapCone_length" value="InnerTrackerEndcapCone_zmax - InnerTrackerEndcapCone_zmin" />
<constant name="InnerTrackerEndcapSupportCone_rmin1" value="InnerTrackerEndcapServiceCone_rmax1" />
<constant name="InnerTrackerEndcapSupportCone_rmax1" value="InnerTrackerEndcapSupportCone_rmin1 + SiTrackerSupportConeCF_thickness" />
<constant name="InnerTrackerEndcapSupportCone_rmin2" value="SiTrackerSupportCyl_rmin" />
<constant name="InnerTrackerEndcapSupportCone_rmax2" value="SiTrackerSupportCyl_rmax" />
<comment> The tracker endcap ends at the same place as the medial tracker barrel that sits around it </comment>
<constant name="InnerTrackerEndcap_zmax" value="MedialTrackerBarrel_rmin / CentralTrackingBarrel_tan" />
<constant name="InnerTrackerEndcapCyl_zmin" value="InnerTrackerEndcapCone_zmax" />
<constant name="InnerTrackerEndcapCyl_zmax" value="InnerTrackerEndcap_zmax" />
<constant name="InnerTrackerEndcapCyl_z" value="(InnerTrackerEndcapCyl_zmin + InnerTrackerEndcapCyl_zmax)/2" />
<constant name="InnerTrackerEndcapCyl_length" value="InnerTrackerEndcapCyl_zmax - InnerTrackerEndcapCyl_zmin" />
</define>
<detectors>
<detector
id="TrackerEndcapP_0_ID"
name="InnerTrackerEndcapP"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits1"
vis="TrackerVis"
reflect="false">
<support material="Aluminum" name="serv_cone_pos" vis="TrackerServiceVis">
<shape type="Cone"
rmin1="InnerTrackerEndcapServiceCone_rmin1"
rmax1="InnerTrackerEndcapServiceCone_rmax1"
rmin2="InnerTrackerEndcapServiceCone_rmin2"
rmax2="InnerTrackerEndcapServiceCone_rmax2"
z="InnerTrackerEndcapCone_length/2"/>
<position x="0*cm" y="0*cm" z="InnerTrackerEndcapCone_z" />
</support>
<support material="CarbonFiber" name="sup_cone_pos" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="InnerTrackerEndcapSupportCone_rmin1"
rmax1="InnerTrackerEndcapSupportCone_rmax1"
rmin2="InnerTrackerEndcapSupportCone_rmin2"
rmax2="InnerTrackerEndcapSupportCone_rmax2"
z="InnerTrackerEndcapCone_length/2"/>
<position x="0*cm" y="0*cm" z="InnerTrackerEndcapCone_z" />
</support>
<support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="InnerTrackerEndcapCyl_length"
zstart="InnerTrackerEndcapCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="InnerTrackerEndcapCyl_length"
zstart="InnerTrackerEndcapCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="InnerTrackerEndcapMod1_x1/2" x2="InnerTrackerEndcapMod1_x2/2" z="InnerTrackerEndcapMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<module name="Module2" vis="TrackerModuleVis">
<trd x1="InnerTrackerEndcapMod2_x1/2" x2="InnerTrackerEndcapMod2_x2/2" z="InnerTrackerEndcapMod2_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="InnerTrackerEndcapLayer1_rmin"
rmax="InnerTrackerEndcapLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="InnerTrackerEndcapLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="InnerTrackerEndcapMod1_rmin + InnerTrackerEndcapMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="InnerTrackerEndcapLayer2_rmin"
rmax="InnerTrackerEndcapLayer2_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="InnerTrackerEndcapLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="InnerTrackerEndcapMod2_rmin + InnerTrackerEndcapMod2_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module2" />
</layer>
</detector>
<detector
id="TrackerEndcapN_0_ID"
name="InnerTrackerEndcapN"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits2"
vis="TrackerVis"
reflect="true">
<support material="Aluminum" name="serv_cone_neg" vis="TrackerServiceVis">
<shape type="Cone"
rmin1="InnerTrackerEndcapServiceCone_rmin2"
rmax1="InnerTrackerEndcapServiceCone_rmax2"
rmin2="InnerTrackerEndcapServiceCone_rmin1"
rmax2="InnerTrackerEndcapServiceCone_rmax1"
z="InnerTrackerEndcapCone_length/2"/>
<position x="0*cm" y="0*cm" z="-1*InnerTrackerEndcapCone_z" />
</support>
<support material="CarbonFiber" name="sup_cone_neg" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="InnerTrackerEndcapSupportCone_rmin2"
rmax1="InnerTrackerEndcapSupportCone_rmax2"
rmin2="InnerTrackerEndcapSupportCone_rmin1"
rmax2="InnerTrackerEndcapSupportCone_rmax1"
z="InnerTrackerEndcapCone_length/2"/>
<position x="0*cm" y="0*cm" z="-1*InnerTrackerEndcapCone_z" />
</support>
<support material="Aluminum" name="serv_cyl_neg" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="InnerTrackerEndcapCyl_length"
zstart="InnerTrackerEndcapCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_neg" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="InnerTrackerEndcapCyl_length"
zstart="InnerTrackerEndcapCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="InnerTrackerEndcapMod1_x1/2" x2="InnerTrackerEndcapMod1_x2/2" z="InnerTrackerEndcapMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<module name="Module2" vis="TrackerModuleVis">
<trd x1="InnerTrackerEndcapMod2_x1/2" x2="InnerTrackerEndcapMod2_x2/2" z="InnerTrackerEndcapMod2_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="InnerTrackerEndcapLayer1_rmin"
rmax="InnerTrackerEndcapLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="InnerTrackerEndcapLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="InnerTrackerEndcapMod1_rmin + InnerTrackerEndcapMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="InnerTrackerEndcapLayer2_rmin"
rmax="InnerTrackerEndcapLayer2_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="InnerTrackerEndcapLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="InnerTrackerEndcapMod2_rmin + InnerTrackerEndcapMod2_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module2" />
</layer>
</detector>
</detectors>
<documentation>
## Medial barrel tracker (MMGAS)
</documentation>
<define>
<comment> Global MMGAS variables </comment>
<constant
name="MMTrackerBarrelMod_thickness"
value="MMKaptonOverlay_thickness + MMCuGround_thickness + MMPCB_thickness
+ MMCuStrip_thickness + MMKaptonStrip_thickness + MMResistiveStrip_thickness
+ MMGas_thickness + MMMesh_thickness + MMGasGap_thickness
+ MMDriftCuElectrode_thickness + MMDriftKapton_thickness
+ MMDriftCuGround_thickness" />
<comment> Medial barrel implementation </comment>
<comment> The value of InnerTrackerEndcap_zmax is calculated above based on the rmin of the MedialTrackerBarrel </comment>
<constant name="MedialTrackerBarrel_length" value="2 * InnerTrackerEndcap_zmax"/>
<constant name="MedialTrackerBarrelMod1_rmin" value="MedialTrackerBarrel_rmin"/>
<constant name="MedialTrackerBarrelMod_length" value="MedialTrackerBarrel_length - 2*um" />
<constant name="MedialTrackerBarrelMod2_rmin" value="MedialTrackerBarrel_rmin + 1 * MedialTrackerBarrel_offset"/>
<constant name="MedialTrackerBarrelMod_count" value="128" />
<constant name="MedialTrackerBarrelMod1_width" value="2*MedialTrackerBarrelMod1_rmin * tan(180*degree/MedialTrackerBarrelMod_count)" />
<constant name="MedialTrackerBarrelMod2_width" value="2*MedialTrackerBarrelMod2_rmin * tan(180*degree/MedialTrackerBarrelMod_count)" />
<constant name="MedialTrackerBarrelLayer_length" value="MedialTrackerBarrel_length"/>
<constant name="MedialTrackerBarrelLayer_thickness" value="MMTrackerBarrelMod_thickness + 1.0*cm"/>
<constant name="MedialTrackerBarrelLayer1_rmin" value="MedialTrackerBarrelMod1_rmin - MedialTrackerBarrelLayer_thickness / 5" />
<constant name="MedialTrackerBarrelLayer1_rmax" value="MedialTrackerBarrelLayer1_rmin + MedialTrackerBarrelLayer_thickness" />
<constant name="MedialTrackerBarrelLayer2_rmin" value="MedialTrackerBarrelMod2_rmin - MedialTrackerBarrelLayer_thickness / 5" />
<constant name="MedialTrackerBarrelLayer2_rmax" value="MedialTrackerBarrelLayer2_rmin + MedialTrackerBarrelLayer_thickness" />
<constant name="MedialTrackerBarrelEnvelope_rmin" value="MedialTrackerBarrelLayer1_rmin" />
<constant name="MedialTrackerBarrelEnvelope_rmax" value="MedialTrackerBarrelLayer2_rmax" />
<constant name="MedialTrackerBarrelEnvelope_length" value="MedialTrackerBarrelLayer_length" />
</define>
<detectors>
<detector
id="TrackerBarrel_1_ID"
name="MedialTrackerBarrel"
type="athena_TrackerBarrel"
readout="MPGDTrackerBarrelHits1"
insideTrackingVolume="true">
<dimensions
rmin="MedialTrackerBarrelEnvelope_rmin"
rmax="MedialTrackerBarrelEnvelope_rmax"
length="MedialTrackerBarrelEnvelope_length"/>
<module name="MedialTrackerBarrel_Mod1" vis="TrackerMPGDVis">
<comment> Going from the inside (sensitive) side to the readout side </comment>
<module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
</module>
<module name="MedialTrackerBarrel_Mod2" vis="TrackerMPGDVis">
<comment> Going from the inside (sensitive) side to the readout side </comment>
<module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
</module>
<layer module="MedialTrackerBarrel_Mod1" id="1" vis="TrackerMMGASLayerVis">
<barrel_envelope
inner_r="MedialTrackerBarrelLayer1_rmin"
outer_r="MedialTrackerBarrelLayer1_rmax"
z_length="MedialTrackerBarrelLayer_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="10*MedialTrackerBarrelMod_count" bins1="100" />
<rphi_layout phi_tilt="0" nphi="MedialTrackerBarrelMod_count" phi0="0.0" rc="MedialTrackerBarrelMod1_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="MedialTrackerBarrel_Mod2" id="2" vis="TrackerMMGASLayerVis">
<barrel_envelope
inner_r="MedialTrackerBarrelLayer2_rmin"
outer_r="MedialTrackerBarrelLayer2_rmax"
z_length="MedialTrackerBarrelLayer_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="10*MedialTrackerBarrelMod_count" bins1="100" />
<rphi_layout phi_tilt="0" nphi="MedialTrackerBarrelMod_count" phi0="0.0" rc="MedialTrackerBarrelMod2_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
</detectors>
<documentation>
## Medial silicon tracker disks (1 each), symmetric between N and P except for disk rmin
</documentation>
<define>
<comment> Medial Si endcap setup </comment>
<constant name="MedialTrackerEndcapPMod1_zmin" value="MedialTrackerEndcap_zmin" />
<constant name="MedialTrackerEndcapPMod1_rmin" value="MedialTrackerEndcapP_rmin" />
<constant name="MedialTrackerEndcapPMod1_rmax" value="min(MedialTrackerEndcapPMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
<constant name="MedialTrackerEndcapPMod1_x1" value="2 * MedialTrackerEndcapPMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="MedialTrackerEndcapPMod1_x2" value="2 * MedialTrackerEndcapPMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="MedialTrackerEndcapPMod1_y" value="MedialTrackerEndcapPMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - MedialTrackerEndcapPMod1_rmin" />
<constant name="MedialTrackerEndcapPLayer1_rmin" value="MedialTrackerEndcapPMod1_rmin - 1*um" />
<constant name="MedialTrackerEndcapPLayer1_rmax" value="MedialTrackerEndcapPMod1_rmax + 1*um" />
<constant name="MedialTrackerEndcapPLayer1_zmin" value="MedialTrackerEndcapPMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="MedialTrackerEndcapNMod1_zmin" value="MedialTrackerEndcap_zmin" />
<constant name="MedialTrackerEndcapNMod1_rmin" value="MedialTrackerEndcapN_rmin" />
<constant name="MedialTrackerEndcapNMod1_rmax" value="min(MedialTrackerEndcapNMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
<constant name="MedialTrackerEndcapNMod1_x1" value="2 * MedialTrackerEndcapNMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="MedialTrackerEndcapNMod1_x2" value="2 * MedialTrackerEndcapNMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="MedialTrackerEndcapNMod1_y" value="MedialTrackerEndcapNMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - MedialTrackerEndcapNMod1_rmin" />
<constant name="MedialTrackerEndcapNLayer1_rmin" value="MedialTrackerEndcapNMod1_rmin - 1*um" />
<constant name="MedialTrackerEndcapNLayer1_rmax" value="MedialTrackerEndcapNMod1_rmax + 1*um" />
<constant name="MedialTrackerEndcapNLayer1_zmin" value="MedialTrackerEndcapNMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
<comment> The tracker endcap ends at the same place as the outer tracker barrel that sits around it </comment>
<constant name="MedialTrackerEndcap_zmax" value="OuterTrackerBarrel_rmin / CentralTrackingBarrel_tan" />
<constant name="MedialTrackerEndcapCyl_zmin" value="InnerTrackerEndcap_zmax" />
<constant name="MedialTrackerEndcapCyl_zmax" value="MedialTrackerEndcap_zmax" />
<constant name="MedialTrackerEndcapCyl_z" value="(MedialTrackerEndcapCyl_zmin + MedialTrackerEndcapCyl_zmax)/2" />
<constant name="MedialTrackerEndcapCyl_length" value="MedialTrackerEndcapCyl_zmax - MedialTrackerEndcapCyl_zmin" />
</define>
<detectors>
<detector
id="TrackerEndcapP_1_ID"
name="MedialTrackerEndcapP"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits3"
vis="TrackerVis"
reflect="false">
<support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="MedialTrackerEndcapCyl_length"
zstart="MedialTrackerEndcapCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="MedialTrackerEndcapCyl_length"
zstart="MedialTrackerEndcapCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="MedialTrackerEndcapPMod1_x1/2" x2="MedialTrackerEndcapPMod1_x2/2" z="MedialTrackerEndcapPMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="MedialTrackerEndcapPLayer1_rmin"
rmax="MedialTrackerEndcapPLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="MedialTrackerEndcapPLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="MedialTrackerEndcapPMod1_rmin + MedialTrackerEndcapPMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
</detector>
<detector
id="TrackerEndcapN_1_ID"
name="MedialTrackerEndcapN"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits4"
vis="TrackerVis"
reflect="true">
<support material="Aluminum" name="serv_cyl_neg" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="MedialTrackerEndcapCyl_length"
zstart="MedialTrackerEndcapCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_neg" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="MedialTrackerEndcapCyl_length"
zstart="MedialTrackerEndcapCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="MedialTrackerEndcapNMod1_x1/2" x2="MedialTrackerEndcapNMod1_x2/2" z="MedialTrackerEndcapNMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="MedialTrackerEndcapNLayer1_rmin"
rmax="MedialTrackerEndcapNLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="MedialTrackerEndcapNLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="MedialTrackerEndcapNMod1_rmin + MedialTrackerEndcapNMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
</detector>
</detectors>
<documentation>
## Outer barrel tracker (MMGAS)
</documentation>
<define>
<comment> The value of MedialTrackerEndcap_zmax is calculated above based on the rmin of the OuterTrackerBarrel </comment>
<constant name="OuterTrackerBarrel_length" value="2 * MedialTrackerEndcap_zmax"/>
<constant name="OuterTrackerBarrelMod1_rmin" value="OuterTrackerBarrel_rmin"/>
<constant name="OuterTrackerBarrelMod_length" value="OuterTrackerBarrel_length - 2*um" />
<constant name="OuterTrackerBarrelMod2_rmin" value="OuterTrackerBarrel_rmin + 1 * OuterTrackerBarrel_offset"/>
<constant name="OuterTrackerBarrelMod_count" value="128" />
<constant name="OuterTrackerBarrelMod1_width" value="2*OuterTrackerBarrelMod1_rmin * tan(180*degree/OuterTrackerBarrelMod_count)" />
<constant name="OuterTrackerBarrelMod2_width" value="2*OuterTrackerBarrelMod2_rmin * tan(180*degree/OuterTrackerBarrelMod_count)" />
<constant name="OuterTrackerBarrelLayer_length" value="OuterTrackerBarrel_length"/>
<constant name="OuterTrackerBarrelLayer_thickness" value="MMTrackerBarrelMod_thickness + 1.0*cm"/>
<constant name="OuterTrackerBarrelLayer1_rmin" value="OuterTrackerBarrelMod1_rmin - OuterTrackerBarrelLayer_thickness / 5" />
<constant name="OuterTrackerBarrelLayer1_rmax" value="OuterTrackerBarrelLayer1_rmin + OuterTrackerBarrelLayer_thickness" />
<constant name="OuterTrackerBarrelLayer2_rmin" value="OuterTrackerBarrelMod2_rmin - OuterTrackerBarrelLayer_thickness / 5" />
<constant name="OuterTrackerBarrelLayer2_rmax" value="OuterTrackerBarrelLayer2_rmin + OuterTrackerBarrelLayer_thickness" />
<constant name="OuterTrackerBarrelEnvelope_rmin" value="OuterTrackerBarrelLayer1_rmin" />
<constant name="OuterTrackerBarrelEnvelope_rmax" value="OuterTrackerBarrelLayer2_rmax" />
<constant name="OuterTrackerBarrelEnvelope_length" value="OuterTrackerBarrelLayer_length" />
</define>
<detectors>
<detector
id="TrackerBarrel_2_ID"
name="OuterTrackerBarrel"
type="athena_TrackerBarrel"
readout="MPGDTrackerBarrelHits2"
insideTrackingVolume="true">
<dimensions
rmin="OuterTrackerBarrelEnvelope_rmin"
rmax="OuterTrackerBarrelEnvelope_rmax"
length="OuterTrackerBarrelEnvelope_length"/>
<module name="OuterTrackerBarrel_Mod1" vis="TrackerMPGDVis">
<comment> Going from the inside (sensitive) side to the readout side </comment>
<module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
</module>
<module name="OuterTrackerBarrel_Mod2" vis="TrackerMPGDVis">
<comment> Going from the inside (sensitive) side to the readout side </comment>
<module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
</module>
<layer module="OuterTrackerBarrel_Mod1" id="1" vis="TrackerMMGASLayerVis">
<barrel_envelope
inner_r="OuterTrackerBarrelLayer1_rmin"
outer_r="OuterTrackerBarrelLayer1_rmax"
z_length="OuterTrackerBarrelLayer_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="10*OuterTrackerBarrelMod_count" bins1="100" />
<rphi_layout phi_tilt="0" nphi="OuterTrackerBarrelMod_count" phi0="0.0" rc="OuterTrackerBarrelMod1_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="OuterTrackerBarrel_Mod2" id="2" vis="TrackerMMGASLayerVis">
<barrel_envelope
inner_r="OuterTrackerBarrelLayer2_rmin"
outer_r="OuterTrackerBarrelLayer2_rmax"
z_length="OuterTrackerBarrelLayer_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="10*OuterTrackerBarrelMod_count" bins1="100" />
<rphi_layout phi_tilt="0" nphi="OuterTrackerBarrelMod_count" phi0="0.0" rc="OuterTrackerBarrelMod2_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
</detectors>
<documentation>
## Outer silicon tracker disks (3P, 2N)
</documentation>
<define>
<comment> Positive disks </comment>
<constant name="OuterTrackerEndcapPMod1_zmin" value="OuterTrackerEndcapP_zmin" />
<constant name="OuterTrackerEndcapPMod1_rmin" value="OuterTrackerEndcapPMod1_zmin * CentralTrackingRegionP_tan * 0.99" />
<constant name="OuterTrackerEndcapPMod1_rmax" value="SiTrackerCyl_rmin" />
<constant name="OuterTrackerEndcapPMod1_x1" value="2 * OuterTrackerEndcapPMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod1_x2" value="2 * OuterTrackerEndcapPMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod1_y" value="OuterTrackerEndcapPMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapPMod1_rmin" />
<constant name="OuterTrackerEndcapPLayer1_rmin" value="OuterTrackerEndcapPMod1_rmin - 1*um" />
<constant name="OuterTrackerEndcapPLayer1_rmax" value="OuterTrackerEndcapPMod1_rmax + 1*um" />
<constant name="OuterTrackerEndcapPLayer1_zmin" value="OuterTrackerEndcapPMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="OuterTrackerEndcapPMod2_zmin" value="OuterTrackerEndcapP_zmin + 1 * OuterTrackerEndcapP_offset" />
<constant name="OuterTrackerEndcapPMod2_rmin" value="OuterTrackerEndcapPMod2_zmin * CentralTrackingRegionP_tan * 0.99" />
<constant name="OuterTrackerEndcapPMod2_rmax" value="SiTrackerCyl_rmin" />
<constant name="OuterTrackerEndcapPMod2_x1" value="2 * OuterTrackerEndcapPMod2_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod2_x2" value="2 * OuterTrackerEndcapPMod2_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod2_y" value="OuterTrackerEndcapPMod2_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapPMod2_rmin" />
<constant name="OuterTrackerEndcapPLayer2_rmin" value="OuterTrackerEndcapPMod2_rmin - 1*um" />
<constant name="OuterTrackerEndcapPLayer2_rmax" value="OuterTrackerEndcapPMod2_rmax + 1*um" />
<constant name="OuterTrackerEndcapPLayer2_zmin" value="OuterTrackerEndcapPMod2_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="OuterTrackerEndcapPMod3_zmin" value="OuterTrackerEndcapP_zmin + 2 * OuterTrackerEndcapP_offset" />
<constant name="OuterTrackerEndcapPMod3_rmin" value="OuterTrackerEndcapPMod3_zmin * CentralTrackingRegionP_tan * 1.00" />
<constant name="OuterTrackerEndcapPMod3_rmax" value="SiTrackerCyl_rmin" />
<constant name="OuterTrackerEndcapPMod3_x1" value="2 * OuterTrackerEndcapPMod3_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod3_x2" value="2 * OuterTrackerEndcapPMod3_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod3_y" value="OuterTrackerEndcapPMod3_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapPMod3_rmin" />
<constant name="OuterTrackerEndcapPLayer3_rmin" value="OuterTrackerEndcapPMod3_rmin - 1*um" />
<constant name="OuterTrackerEndcapPLayer3_rmax" value="OuterTrackerEndcapPMod3_rmax + 1*um" />
<constant name="OuterTrackerEndcapPLayer3_zmin" value="OuterTrackerEndcapPMod3_zmin - SiTrackerEndcapLayer_thickness/2" />
<comment> The Si tracker endcap ends at position of the last disk </comment>
<constant name="OuterTrackerEndcapP_zmax" value="OuterTrackerEndcapPLayer3_zmin + SiTrackerEndcapLayer_thickness" />
<constant name="OuterTrackerEndcapPCyl_zmin" value="MedialTrackerEndcap_zmax" />
<constant name="OuterTrackerEndcapPCyl_zmax" value="OuterTrackerEndcapP_zmax" />
<constant name="OuterTrackerEndcapPCyl_z" value="(OuterTrackerEndcapPCyl_zmin + OuterTrackerEndcapPCyl_zmax)/2" />
<constant name="OuterTrackerEndcapPCyl_length" value="OuterTrackerEndcapPCyl_zmax - OuterTrackerEndcapPCyl_zmin" />
<comment> Negative disks </comment>
<constant name="OuterTrackerEndcapNMod1_zmin" value="OuterTrackerEndcapN_zmin" />
<constant name="OuterTrackerEndcapNMod1_rmin" value="OuterTrackerEndcapNMod1_zmin * CentralTrackingRegionN_tan * 1.00" />
<constant name="OuterTrackerEndcapNMod1_rmax" value="SiTrackerCyl_rmin" />
<constant name="OuterTrackerEndcapNMod1_x1" value="2 * OuterTrackerEndcapNMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapNMod1_x2" value="2 * OuterTrackerEndcapNMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapNMod1_y" value="OuterTrackerEndcapNMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapNMod1_rmin" />
<constant name="OuterTrackerEndcapNLayer1_rmin" value="OuterTrackerEndcapNMod1_rmin - 1*um" />
<constant name="OuterTrackerEndcapNLayer1_rmax" value="OuterTrackerEndcapNMod1_rmax + 1*um" />
<constant name="OuterTrackerEndcapNLayer1_zmin" value="OuterTrackerEndcapNMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="OuterTrackerEndcapNMod2_zmin" value="OuterTrackerEndcapN_zmin + 1 * OuterTrackerEndcapN_offset" />
<constant name="OuterTrackerEndcapNMod2_rmin" value="OuterTrackerEndcapNMod2_zmin * CentralTrackingRegionN_tan * 1.00" />
<constant name="OuterTrackerEndcapNMod2_rmax" value="SiTrackerCyl_rmin" />
<constant name="OuterTrackerEndcapNMod2_x1" value="2 * OuterTrackerEndcapNMod2_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapNMod2_x2" value="2 * OuterTrackerEndcapNMod2_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapNMod2_y" value="OuterTrackerEndcapNMod2_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapNMod2_rmin" />
<constant name="OuterTrackerEndcapNLayer2_rmin" value="OuterTrackerEndcapNMod2_rmin - 1*um" />
<constant name="OuterTrackerEndcapNLayer2_rmax" value="OuterTrackerEndcapNMod2_rmax + 1*um" />
<constant name="OuterTrackerEndcapNLayer2_zmin" value="OuterTrackerEndcapNMod2_zmin - SiTrackerEndcapLayer_thickness/2" />
<comment> The Si tracker endcap ends at position of the last disk </comment>
<constant name="OuterTrackerEndcapN_zmax" value="OuterTrackerEndcapNLayer2_zmin + SiTrackerEndcapLayer_thickness" />
<constant name="OuterTrackerEndcapNCyl_zmin" value="MedialTrackerEndcap_zmax" />
<constant name="OuterTrackerEndcapNCyl_zmax" value="OuterTrackerEndcapN_zmax" />
<constant name="OuterTrackerEndcapNCyl_z" value="(OuterTrackerEndcapNCyl_zmin + OuterTrackerEndcapNCyl_zmax)/2" />
<constant name="OuterTrackerEndcapNCyl_length" value="OuterTrackerEndcapNCyl_zmax - OuterTrackerEndcapNCyl_zmin" />
</define>
<detectors>
<detector
id="TrackerEndcapP_2_ID"
name="OuterTrackerEndcapP"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits5"
vis="TrackerVis"
reflect="false">
<support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="OuterTrackerEndcapPCyl_length"
zstart="OuterTrackerEndcapPCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="OuterTrackerEndcapPCyl_length"
zstart="OuterTrackerEndcapPCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="OuterTrackerEndcapPMod1_x1/2" x2="OuterTrackerEndcapPMod1_x2/2" z="OuterTrackerEndcapPMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<module name="Module2" vis="TrackerModuleVis">
<trd x1="OuterTrackerEndcapPMod2_x1/2" x2="OuterTrackerEndcapPMod2_x2/2" z="OuterTrackerEndcapPMod2_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<module name="Module3" vis="TrackerModuleVis">
<trd x1="OuterTrackerEndcapPMod3_x1/2" x2="OuterTrackerEndcapPMod3_x2/2" z="OuterTrackerEndcapPMod3_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="OuterTrackerEndcapPLayer1_rmin"
rmax="OuterTrackerEndcapPLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="OuterTrackerEndcapPLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="OuterTrackerEndcapPMod1_rmin + OuterTrackerEndcapPMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="OuterTrackerEndcapPLayer2_rmin"
rmax="OuterTrackerEndcapPLayer2_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="OuterTrackerEndcapPLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="OuterTrackerEndcapPMod2_rmin + OuterTrackerEndcapPMod2_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module2" />
</layer>
<layer id="3">
<envelope vis="TrackerLayerVis"
rmin="OuterTrackerEndcapPLayer3_rmin"
rmax="OuterTrackerEndcapPLayer3_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="OuterTrackerEndcapPLayer3_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="OuterTrackerEndcapPMod3_rmin + OuterTrackerEndcapPMod3_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module3" />
</layer>
</detector>
<detector
id="TrackerEndcapN_2_ID"
name="OuterTrackerEndcapN"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits6"
vis="TrackerVis"
reflect="true">
<support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="OuterTrackerEndcapNCyl_length"
zstart="OuterTrackerEndcapNCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="OuterTrackerEndcapNCyl_length"
zstart="OuterTrackerEndcapNCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="OuterTrackerEndcapNMod1_x1/2" x2="OuterTrackerEndcapNMod1_x2/2" z="OuterTrackerEndcapNMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<module name="Module2" vis="TrackerModuleVis">
<trd x1="OuterTrackerEndcapNMod2_x1/2" x2="OuterTrackerEndcapNMod2_x2/2" z="OuterTrackerEndcapNMod2_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="OuterTrackerEndcapNLayer1_rmin"
rmax="OuterTrackerEndcapNLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="OuterTrackerEndcapNLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="OuterTrackerEndcapNMod1_rmin + OuterTrackerEndcapNMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="OuterTrackerEndcapNLayer2_rmin"
rmax="OuterTrackerEndcapNLayer2_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="OuterTrackerEndcapNLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="OuterTrackerEndcapNMod2_rmin + OuterTrackerEndcapNMod2_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module2" />
</layer>
</detector>
</detectors>
<documentation>
## GEM trackers (3P, 2N)
</documentation>
<define>
<constant
name="GEMEndcapMod_thickness"
value="GEMMylar_thickness * 2 + GEMGas_thickness * 5 + GEMDriftRegion_thickness * 1
+ GEMKapton_thickness * (2 + 3 * GEMAreaFactor)
+ GEMCuFoil_thickness * (3 * GEMAreaFactor)
+ GEMCuElectrode_thickness * 2" />
<constant name="GEMEndcapMod_dz" value="GEMEndcapMod_thickness/2 + GEMSpoke_thickness/2" />
<constant name="GEMEndcapMod_overlap" value="0" />
<constant name="GEMEndcapMod_angle" value="360.0*degree / GEMEndcapMod_count * (1 + GEMEndcapMod_overlap)" />
<constant name="GEMEndcapLayer_thickness" value="GEMEndcapMod_thickness + 2 * GEMEndcapMod_dz + 1*um" />
<comment> Parameters for the "ring" GEMS around the silicon tracker, which are all identical </comment>
<constant name="GEMEndcapRingMod_rmin" value="SiTrackerSupportCyl_rmax + GEMFrameBotEdge_width" />
<constant name="GEMEndcapRingMod_rmax" value="min(min(GEMEndcapPDisk1_zmin, GEMEndcapN_zmin) * CentralTrackingBarrel_tan * 0.995, CentralTrackingRegion_rmax) - GEMFrameTopEdge_width" />
<constant name="GEMEndcapRingMod_x1" value="2 * GEMEndcapRingMod_rmin * tan(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingMod_x2" value="2 * GEMEndcapRingMod_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingMod_y" value="GEMEndcapRingMod_rmax * cos(GEMEndcapMod_angle/2) - GEMEndcapRingMod_rmin" />
<constant name="GEMEndcapRingModBotFrame_rmin" value="SiTrackerSupportCyl_rmax" />
<constant name="GEMEndcapRingModBotFrame_y" value="GEMFrameBotEdge_width" />
<constant name="GEMEndcapRingModBotFrame_rmax" value="(GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y)/cos(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingModBotFrame_x1" value="2 * GEMEndcapRingModBotFrame_rmin * tan(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingModBotFrame_x2" value="2 * GEMEndcapRingModBotFrame_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingModTopFrame_rmin" value="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y" />
<constant name="GEMEndcapRingModTopFrame_y" value="GEMFrameTopEdge_width" />
<constant name="GEMEndcapRingModTopFrame_rmax" value="(GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y)/cos(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingModTopFrame_x1" value="GEMEndcapRingMod_x2" />
<constant name="GEMEndcapRingModTopFrame_x2" value="2 * GEMEndcapRingModTopFrame_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingModSpoke_length" value="GEMEndcapRingMod_rmax - GEMEndcapRingModBotFrame_rmax" />
<constant name="GEMEndcapRingModSpoke_r" value="(GEMEndcapRingMod_rmax + GEMEndcapRingModBotFrame_rmax)/2" />
<constant name="GEMEndcapRingLayer_rmin" value="GEMEndcapRingModBotFrame_rmin - 1*um" />
<constant name="GEMEndcapRingLayer_rmax" value="GEMEndcapRingModTopFrame_rmax + 1*um" />
<comment>
z position of the "ring" GEMS, note that some are offset slightly
to not overlap in z with the silicon disks (an ACTS limitation).
</comment>
<constant name="GEMEndcapPMod1_zmin" value="GEMEndcapPDisk1_zmin + GEMEndcapLayer_thickness" />
<constant name="GEMEndcapPMod2_zmin" value="GEMEndcapPDisk2_zmin - GEMEndcapLayer_thickness" />
<constant name="GEMEndcapNMod1_zmin" value="GEMEndcapN_zmin" />
<constant name="GEMEndcapNMod2_zmin" value="GEMEndcapN_zmin + 1 * GEMEndcapN_offset - GEMEndcapLayer_thickness" />
<constant name="GEMEndcapPLayer1_zmin" value="GEMEndcapPMod1_zmin - GEMEndcapLayer_thickness/2" />
<constant name="GEMEndcapPLayer2_zmin" value="GEMEndcapPMod2_zmin - GEMEndcapLayer_thickness/2" />
<constant name="GEMEndcapNLayer1_zmin" value="GEMEndcapNMod1_zmin - GEMEndcapLayer_thickness/2" />
<constant name="GEMEndcapNLayer2_zmin" value="GEMEndcapNMod2_zmin - GEMEndcapLayer_thickness/2" />
<comment> Large forward disk (behind the RICH) </comment>
<constant name="GEMEndcapPMod3_zmin" value="GEMEndcapPDisk3_zmin" />
<constant name="GEMEndcapPLayer3_zmin" value="GEMEndcapPMod3_zmin - GEMEndcapLayer_thickness/2" />
<constant name="GEMEndcapLargeModBotFrame_rmin" value="GEMEndcapPMod3_zmin * ForwardTrackingRegion_tan" />
<constant name="GEMEndcapLargeModBotFrame_y" value="GEMFrameBotEdge_width" />
<constant name="GEMEndcapLargeModBotFrame_rmax" value="(GEMEndcapLargeModBotFrame_rmin + GEMEndcapLargeModBotFrame_y)/cos(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeModBotFrame_x1" value="2 * GEMEndcapLargeModBotFrame_rmin * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeModBotFrame_x2" value="2 * GEMEndcapLargeModBotFrame_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeMod_rmin" value="GEMEndcapPMod3_zmin * ForwardTrackingRegion_tan + GEMFrameBotEdge_width" />
<comment> Ensure there's always the length of the service gap in space available above the large GEM (top frame can extend into this at the corners). </comment>
<constant name="GEMEndcapLargeMod_rmax" value="min(GEMEndcapPMod3_zmin * CentralTrackingBarrel_tan, Solenoid_rmax-ForwardServiceGap_length)" />
<constant name="GEMEndcapLargeMod_x1" value="2 * GEMEndcapLargeMod_rmin * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeMod_x2" value="2 * GEMEndcapLargeMod_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeMod_y" value="GEMEndcapLargeMod_rmax * cos(GEMEndcapMod_angle/2) - GEMEndcapLargeMod_rmin" />
<constant name="GEMEndcapLargeModTopFrame_rmin" value="GEMEndcapLargeMod_rmin + GEMEndcapLargeMod_y" />
<constant name="GEMEndcapLargeModTopFrame_y" value="GEMFrameTopEdge_width" />
<constant name="GEMEndcapLargeModTopFrame_rmax" value="(GEMEndcapLargeModTopFrame_rmin + GEMEndcapLargeModTopFrame_y)/cos(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeModTopFrame_x1" value="GEMEndcapLargeMod_x2" />
<constant name="GEMEndcapLargeModTopFrame_x2" value="2 * GEMEndcapLargeModTopFrame_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeModSpoke_length" value="GEMEndcapLargeMod_rmax - GEMEndcapLargeModBotFrame_rmax" />
<constant name="GEMEndcapLargeModSpoke_r" value="(GEMEndcapLargeMod_rmax + GEMEndcapLargeModBotFrame_rmax)/2" />
<constant name="GEMEndcapLargeLayer_rmin" value="GEMEndcapLargeModBotFrame_rmin - 1*um" />
<constant name="GEMEndcapLargeLayer_rmax" value="GEMEndcapLargeModTopFrame_rmax + 1*um" />
</define>
<detectors>
<detector
id="TrackerEndcapP_3_ID"
name="GEMEndcapP"
type="athena_TrapEndcapTracker"
readout="GEMTrackerEndcapHits1"
vis="TrackerVis"
reflect="false">
<module name="RingModule" vis="TrackerGEMModuleVis">
<trd x1="GEMEndcapRingMod_x1/2" x2="GEMEndcapRingMod_x2/2" z="GEMEndcapRingMod_y/2" />
<comment> going from back to front </comment>
<module_component name="exit_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerServiceVis" />
<module_component name="exit_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="readout_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="readout_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="induction_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_3_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_3" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region2" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_2_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_2" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region1" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_1_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_1" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="drift_region" thickness="GEMDriftRegion_thickness" material="Ar10CO2" sensitive="true"/>
<module_component name="cathode_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="cathode_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="entrance_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="entrance_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerMPGDVis" />
</module>
<module name="RingBotFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapRingModBotFrame_x1/2" x2="GEMEndcapRingModBotFrame_x2/2" z="GEMEndcapRingModBotFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="RingTopFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapRingModTopFrame_x1/2" x2="GEMEndcapRingModTopFrame_x2/2" z="GEMEndcapRingModTopFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="RingSpoke" vis="TrackerSupportVis">
<trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapRingModSpoke_length/2"/>
<module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="GEMEndcapRingLayer_rmin"
rmax="GEMEndcapRingLayer_rmax"
length="GEMEndcapLayer_thickness"
zstart="GEMEndcapPLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModSpoke_r" zstart="0" dz="0"
nmodules="GEMEndcapMod_count/2" phi0="3*GEMEndcapMod_angle/2"
module="RingSpoke" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="GEMEndcapRingLayer_rmin"
rmax="GEMEndcapRingLayer_rmax"
length="GEMEndcapLayer_thickness"
zstart="GEMEndcapPLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModSpoke_r" zstart="0" dz="0"
nmodules="GEMEndcapMod_count/2" phi0="3*GEMEndcapMod_angle/2"
module="RingSpoke" />
</layer>
</detector>
<detector
id="TrackerEndcapN_3_ID"
name="GEMEndcapN"
type="athena_TrapEndcapTracker"
readout="GEMTrackerEndcapHits2"
vis="TrackerVis"
reflect="true">
<module name="RingModule" vis="TrackerGEMModuleVis">
<trd x1="GEMEndcapRingMod_x1/2" x2="GEMEndcapRingMod_x2/2" z="GEMEndcapRingMod_y/2" />
<comment> going from back to front </comment>
<module_component name="exit_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerServiceVis" />
<module_component name="exit_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="readout_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="readout_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="induction_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_3_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_3" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region2" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_2_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_2" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region1" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_1_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_1" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="drift_region" thickness="GEMDriftRegion_thickness" material="Ar10CO2" sensitive="true"/>
<module_component name="cathode_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="cathode_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="entrance_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="entrance_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerMPGDVis" />
</module>
<module name="RingBotFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapRingModBotFrame_x1/2" x2="GEMEndcapRingModBotFrame_x2/2" z="GEMEndcapRingModBotFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="RingTopFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapRingModTopFrame_x1/2" x2="GEMEndcapRingModTopFrame_x2/2" z="GEMEndcapRingModTopFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="RingSpoke" vis="TrackerSupportVis">
<trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapRingModSpoke_length/2"/>
<module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
</module>
<module name="LargeModule" vis="TrackerGEMModuleVis">
<trd x1="GEMEndcapLargeMod_x1/2" x2="GEMEndcapLargeMod_x2/2" z="GEMEndcapLargeMod_y/2" />
<comment> going from back to front </comment>
<module_component name="exit_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerServiceVis" />
<module_component name="exit_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="readout_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="readout_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="induction_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_3_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_3" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region2" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_2_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_2" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region1" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_1_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_1" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="drift_region" thickness="GEMDriftRegion_thickness" material="Ar10CO2" sensitive="true"/>
<module_component name="cathode_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="cathode_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="entrance_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="entrance_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerMPGDVis" />
</module>
<module name="LargeBotFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapLargeModBotFrame_x1/2" x2="GEMEndcapLargeModBotFrame_x2/2" z="GEMEndcapLargeModBotFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="LargeTopFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapLargeModTopFrame_x1/2" x2="GEMEndcapLargeModTopFrame_x2/2" z="GEMEndcapLargeModTopFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="LargeSpoke" vis="TrackerSupportVis">
<trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapLargeModSpoke_length/2"/>
<module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="GEMEndcapRingLayer_rmin"
rmax="GEMEndcapRingLayer_rmax"
length="GEMEndcapLayer_thickness"
zstart="GEMEndcapNLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModSpoke_r" zstart="0" dz="0"
nmodules="GEMEndcapMod_count/2" phi0="3*GEMEndcapMod_angle/2"
module="RingSpoke" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="GEMEndcapRingLayer_rmin"
rmax="GEMEndcapRingLayer_rmax"
length="GEMEndcapLayer_thickness"
zstart="GEMEndcapNLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModSpoke_r" zstart="0" dz="0"
nmodules="GEMEndcapMod_count/2" phi0="3*GEMEndcapMod_angle/2"
module="RingSpoke" />
</layer>
</detector>
<detector
id="TrackerEndcapP_4_ID"
name="ForwardGEM"
type="athena_TrapEndcapTracker"
readout="GEMTrackerEndcapHits3"
vis="TrackerVis"
reflect="false">
<module name="LargeModule" vis="TrackerGEMModuleVis">
<trd x1="GEMEndcapLargeMod_x1/2" x2="GEMEndcapLargeMod_x2/2" z="GEMEndcapLargeMod_y/2" />
<comment> going from back to front </comment>
<module_component name="exit_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerServiceVis" />
<module_component name="exit_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="readout_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="readout_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="induction_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_3_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_3" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region2" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_2_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_2" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region1" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_1_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_1" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="drift_region" thickness="GEMDriftRegion_thickness" material="Ar10CO2" sensitive="true"/>
<module_component name="cathode_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="cathode_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="entrance_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="entrance_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerMPGDVis" />
</module>
<module name="LargeBotFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapLargeModBotFrame_x1/2" x2="GEMEndcapLargeModBotFrame_x2/2" z="GEMEndcapLargeModBotFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="LargeTopFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapLargeModTopFrame_x1/2" x2="GEMEndcapLargeModTopFrame_x2/2" z="GEMEndcapLargeModTopFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="LargeSpoke" vis="TrackerSupportVis">
<trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapLargeModSpoke_length/2"/>
<module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="GEMEndcapLargeLayer_rmin"
rmax="GEMEndcapLargeLayer_rmax"
length="GEMEndcapLayer_thickness"
zstart="GEMEndcapPLayer3_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
<ring
r="GEMEndcapLargeMod_rmin + GEMEndcapLargeMod_y/2"
zstart="0"
nmodules="GEMEndcapMod_count"
dz="GEMEndcapMod_dz"
module="LargeModule" />
<ring
r="GEMEndcapLargeModBotFrame_rmin + GEMEndcapLargeModBotFrame_y/2"
zstart="0"
nmodules="GEMEndcapMod_count"
dz="GEMEndcapMod_dz"
module="LargeBotFrame" />
<ring
r="GEMEndcapLargeModTopFrame_rmin + GEMEndcapLargeModTopFrame_y/2"
zstart="0"
nmodules="GEMEndcapMod_count"
dz="GEMEndcapMod_dz"
module="LargeTopFrame" />
<ring
r="GEMEndcapLargeModSpoke_r"
zstart="0"
nmodules="GEMEndcapMod_count"
dz="0"
phi0="GEMEndcapMod_angle/2"
module="LargeSpoke" />
</layer>
</detector>
</detectors>
<readouts>
<readout name="TrackerBarrelHits">
<segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-14,y:-18</id>
</readout>
<readout name="TrackerEndcapHits1">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="TrackerEndcapHits2">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="TrackerEndcapHits3">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="TrackerEndcapHits4">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="TrackerEndcapHits5">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="TrackerEndcapHits6">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="MPGDTrackerBarrelHits1">
<segmentation type="CartesianGridXY" grid_size_x="0.150*mm*sqrt(12)" grid_size_y="0.150*mm*sqrt(12)" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-14,y:-18</id>
</readout>
<readout name="MPGDTrackerBarrelHits2">
<segmentation type="CartesianGridXY" grid_size_x="0.150*mm*sqrt(12)" grid_size_y="0.150*mm*sqrt(12)" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-14,y:-18</id>
</readout>
<readout name="GEMTrackerEndcapHits1">
<segmentation type="CartesianGridXZ" grid_size_x="0.050*mm*sqrt(12)" grid_size_z="0.250*mm*sqrt(12)" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="GEMTrackerEndcapHits2">
<segmentation type="CartesianGridXZ" grid_size_x="0.050*mm*sqrt(12)" grid_size_z="0.250*mm*sqrt(12)" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="GEMTrackerEndcapHits3">
<segmentation type="CartesianGridXZ" grid_size_x="0.050*mm*sqrt(12)" grid_size_z="0.250*mm*sqrt(12)" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
</readouts>
</lccdd>
<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
<!-- Some information about detector -->
<info name="Central Ion GEM" title="Central Ion GEM"
author="Marshall Scott"
url="https://eicweb.phy.anl.gov/EIC/detectors/reference_detector.git"
status="development"
version="v1 2021-03-23">
<comment>Central Ion GEM</comment>
</info>
<!-- Use DD4hep elements and materials definitions -->
<includes>
</includes>
<define>
<!--
<constant name="ci_GEM_id" value="1">
<constant name="ci_GEM_rin" value="10 * cm">
<constant name="ci_GEM_rout" value="95 * cm">
<constant name="ci_GEM_sizez" value="30 * cm">
<constant name="ci_GEM_shiftz" value="0 * cm">
<constant name="ci_GEM_posz" value="0 * cm">
<constant name="ci_GEM_posx" value="0 * cm">
<constant name="ci_GEM_nlayers" value="8">
-->
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<!-- Define detector -->
<detectors>
<comment>
Central Ion GEM
</comment>
<detector id="ci_GEM_id" name="ci_GEM" type="ci_GEM" insideTrackingVolume="false" vis="ci_GEMVis" readout="ci_GEM_Hits">
<material name="Ar10CO2"/>
<comment> position of the front face of the detector </comment>
<position x="0" y="0" z="SiliconTrackerOuterBarrel_zmax"/>
<dimensions rmin="ci_GEM_rin" rmax="ci_GEM_rout" z_length="ci_GEM_sizez" z_offset="ci_GEM_shiftz" z="ci_GEM_posz" x="ci_GEM_posx" number="ci_GEM_nlayers" rmax1="ci_HCAL_lay_rin -1. * cm"/>
<layer id="0" z="-ci_GEM_sizez * 0.5 + (5 + 3. * 0) * cm" inner_r="ci_GEM_rin + (1. + 0.5 * 0) * cm" outer_r="ci_GEM_rout + (-25. + 2. * 0) * cm" dz="1 * cm" />
<layer id="1" z="-ci_GEM_sizez * 0.5 + (5 + 3. * 1) * cm" inner_r="ci_GEM_rin + (1. + 0.5 * 1) * cm" outer_r="ci_GEM_rout + (-25. + 2. * 1) * cm" dz="1 * cm" />
<layer id="2" z="-ci_GEM_sizez * 0.5 + (5 + 3. * 2) * cm" inner_r="ci_GEM_rin + (1. + 0.5 * 2) * cm" outer_r="ci_GEM_rout + (-25. + 2. * 2) * cm" dz="1 * cm" />
<layer id="3" z="-ci_GEM_sizez * 0.5 + (5 + 3. * 3) * cm" inner_r="ci_GEM_rin + (1. + 0.5 * 3) * cm" outer_r="ci_GEM_rout + (-25. + 2. * 3) * cm" dz="1 * cm" />
<layer id="4" z="-ci_GEM_sizez * 0.5 + (5 + 3. * 4) * cm" inner_r="ci_GEM_rin + (1. + 0.5 * 4) * cm" outer_r="ci_GEM_rout + (-25. + 2. * 4) * cm" dz="1 * cm" />
<layer id="5" z="-ci_GEM_sizez * 0.5 + (5 + 3. * 5) * cm" inner_r="ci_GEM_rin + (1. + 0.5 * 5) * cm" outer_r="ci_GEM_rout + (-25. + 2. * 5) * cm" dz="1 * cm" />
<layer id="6" z="-ci_GEM_sizez * 0.5 + (5 + 3. * 6) * cm" inner_r="ci_GEM_rin + (1. + 0.5 * 6) * cm" outer_r="ci_GEM_rout + (-25. + 2. * 6) * cm" dz="1 * cm" />
<layer id="7" z="-ci_GEM_sizez * 0.5 + (5 + 3. * 7) * cm" inner_r="ci_GEM_rin + (1. + 0.5 * 7) * cm" outer_r="ci_GEM_rout + (-25. + 2. * 7) * cm" dz="1 * cm" />
</detector>
</detectors>
<readouts>
<readout name="ci_GEM_Hits">
<segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
<id>system:8,layer:8,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
</lccdd>
<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
<!-- Some information about detector-->
<info name="Central Ion HCAL" title="Central Ion HCAL"
author="Marshall Scott"
url="https://eicweb.phy.anl.gov/EIC/detectors/reference_detector.git"
status="development"
version="v1 2021-03-31">
<comment>Central Ion HCAL</comment>
</info>
<includes>
</includes>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<!-- Define detector -->
<detectors>
<comment>
Central Ion HCAL
</comment>
<detector id="ci_HCAL_id" name="ci_HCAL" type="ci_HCAL" insideTrackingVolume="false" vis="ci_HCALVis" readout="ci_HCAL_Hits">
<material name="Iron"/>
<dimensions rmin="ci_HCAL_rin" rmax="ci_HCAL_rout" z_length="ci_HCAL_sizez" z_offset="ci_HCAL_shiftz" z="ci_HCAL_posz" x="ci_HCAL_posx" number="ci_HCAL_nlayers" rmin1="ci_HCAL_lay_rin" rmax1="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness"/>
<layer id="0" z="-ci_HCAL_sizez * 0.5 + (1 + 0) * ci_HCAL_lay_thickness + (1 + 0) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="1" z="-ci_HCAL_sizez * 0.5 + (1 + 1) * ci_HCAL_lay_thickness + (1 + 1) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="2" z="-ci_HCAL_sizez * 0.5 + (1 + 2) * ci_HCAL_lay_thickness + (1 + 2) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="3" z="-ci_HCAL_sizez * 0.5 + (1 + 3) * ci_HCAL_lay_thickness + (1 + 3) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="4" z="-ci_HCAL_sizez * 0.5 + (1 + 4) * ci_HCAL_lay_thickness + (1 + 4) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="5" z="-ci_HCAL_sizez * 0.5 + (1 + 5) * ci_HCAL_lay_thickness + (1 + 5) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="6" z="-ci_HCAL_sizez * 0.5 + (1 + 6) * ci_HCAL_lay_thickness + (1 + 6) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="7" z="-ci_HCAL_sizez * 0.5 + (1 + 7) * ci_HCAL_lay_thickness + (1 + 7) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="8" z="-ci_HCAL_sizez * 0.5 + (1 + 8) * ci_HCAL_lay_thickness + (1 + 8) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="9" z="-ci_HCAL_sizez * 0.5 + (1 + 9) * ci_HCAL_lay_thickness + (1 + 9) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="10" z="-ci_HCAL_sizez * 0.5 + (1 + 10) * ci_HCAL_lay_thickness + (1 + 10) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="11" z="-ci_HCAL_sizez * 0.5 + (1 + 11) * ci_HCAL_lay_thickness + (1 + 11) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="12" z="-ci_HCAL_sizez * 0.5 + (1 + 12) * ci_HCAL_lay_thickness + (1 + 12) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="13" z="-ci_HCAL_sizez * 0.5 + (1 + 13) * ci_HCAL_lay_thickness + (1 + 13) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="14" z="-ci_HCAL_sizez * 0.5 + (1 + 14) * ci_HCAL_lay_thickness + (1 + 14) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="15" z="-ci_HCAL_sizez * 0.5 + (1 + 15) * ci_HCAL_lay_thickness + (1 + 15) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="16" z="-ci_HCAL_sizez * 0.5 + (1 + 16) * ci_HCAL_lay_thickness + (1 + 16) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="17" z="-ci_HCAL_sizez * 0.5 + (1 + 17) * ci_HCAL_lay_thickness + (1 + 17) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="18" z="-ci_HCAL_sizez * 0.5 + (1 + 18) * ci_HCAL_lay_thickness + (1 + 18) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
<layer id="19" z="-ci_HCAL_sizez * 0.5 + (1 + 19) * ci_HCAL_lay_thickness + (1 + 19) * 5 * cm" inner_r="ci_HCAL_lay_rin" outer_r="ci_HCAL_lay_rout" dz="ci_HCAL_lay_thickness" />
</detector>
</detectors>
<readouts>
<readout name="ci_HCAL_Hits">
<segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
<id>system:8,layer:8,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
</lccdd>
<display>
<comment>
Colors tweaked to be displayable by geoViewer
</comment>
<vis name="AnlGreen" alpha="1" r="100/256" g="200/256" b="0/256"/>
<vis name="AnlViolet" alpha="1" r="100/256" g="0/256" b="150/256"/>
<vis name="AnlProcess_Blue" alpha="1" r="0/256" g="100/256" b="202/256"/>
<vis name="AnlOrange" alpha="1" r="255/256" g="121/256" b="0"/>
<vis name="AnlRed" alpha="1" r="205/256" g="45/256 " b="45/256"/>
<vis name="AnlGold" alpha="1" r="248/256" g="188/256" b="0/256"/>
<vis name="AnlBlue" alpha="1" r="0/256" g="96/256" b="156/256"/>
<vis name="AnlTeal" alpha="1" r="0/256" g="161/256" b="156/256"/>
<vis name="AnlGray" alpha="1" r="102/256" g="102/256" b="102/256"/>
<vis name="AnlLight_Gray" alpha="1" r="209/256" g="209/256" b="209/256"/>
<vis name="AnlLightGray" ref="AnlLight_Gray" />
<!-- off-white (or white) don't work! -->
<!--vis name="AnlOff_White" alpha="1" r="242/256" g="242/256" b="242/256"/-->
<vis name="AnlDarkRed" alpha="1" r="161/256" g="45/256" b="45/256"/>
<vis name="AnlDarkGreen" alpha="1" r="0" g="110/256" b="50/256"/>
<vis name="AnlDarkBlue" alpha="1" r="45/256" g="45/256" b="110/256"/>
<vis name="AnlDelta_Red" ref="AnlDarkRed"/>
<vis name="AnlDelta_Green" ref="AnlDarkGreen"/>
<vis name="AnlDelta_Blue" ref="AnlDarkBlue"/>
</display>
......@@ -4,654 +4,555 @@
<constant name="world_y" value="world_side"/>
<constant name="world_z" value="100*m"/>
<comment>Although not explicit in the EIC design study, the crossing angle is not symmetric.</comment>
<constant name="CrossingAngle" value="0.025"/>
<constant name="ionCrossingAngle" value="0.0166667"/>
<constant name="electronCrossingAngle" value="0.00833333"/>
<constant name="CrossingSlope" value="0.0166682"/>
<constant name="Pi" value="3.14159265359"/>
<constant name="mil" value="0.0254*mm"/>
<constant name="inch" value="2.54*cm"/>
<comment>
------------
Detector IDs
------------
Note about ACTS tracking geometry construction
----------------------------------------------
The tracking surfaces need to be structured in a barrel + endcapP + endcapN where
endcapP/endcapN are the endcaps at positive/negative z values.
See https://acts.readthedocs.io/en/latest/plugins/dd4hep.html for more details.
<documentation>
## Detector IDs
The tracking geometry needs to be constructed from cylinders from the inside out. For this reason
each layer needs its own subsystem assembly. This increases the number of top level system IDs.
For example the silicon tracker needs 3 IDs for each area (endcap+barrel+endcap) and a subassembly for each
layer. Therefore it needs a minimum of 20 IDs. Therefore we will allocate blocks of ~25 for each major subsystem.
Note, future improvements will likely include a more sophisticated ACTS-dd4hep plugin,
eliminating the need for so many system IDs at construction time.
### Note about ACTS tracking geometry construction
This barrel/endcap structure needs IDs to be in increasing order going outward.
The space of IDs for the subassemblies starts at (Subassembly_ID*10+101).
The unused IDs below are saved for future use.
</comment>
<comment>
===================
(1-9) Reserved IDs
===================
Unused IDs: 1-9
The tracking surfaces need to be structured in a barrel + endcapP + endcapN where
endcapP/endcapN are the endcaps at positive/negative z values.
See https://acts.readthedocs.io/en/latest/plugins/dd4hep.html for more details.
====================================
(10-24) Interaction region beamline
====================================
The tracking geometry needs to be constructed from cylinders from the inside out. For this reason
each layer needs its own subsystem assembly. This increases the number of top level system IDs.
For example the silicon tracker needs 3 IDs for each area (endcap+barrel+endcap) and a subassembly for each
layer. Therefore it needs a minimum of 20 IDs. Therefore we will allocate blocks of ~25 for each major subsystem.
Note, future improvements will likely include a more sophisticated ACTS-dd4hep plugin,
eliminating the need for so many system IDs at construction time.
Beampipe ID : 10
Unused IDs: 11-24
This barrel/endcap structure needs IDs to be in increasing order going outward.
The space of IDs for the subassemblies starts at (Subassembly_ID*10+101).
</comment>
<constant name="BeamPipe_ID" value="10"/>
<comment>
===============================
(25-49) Silicon Vertex Tracker
===============================
SiVertex subsystem ID: 25
Layer 1 subassembly ID: 26
Layer 2 subassembly ID: 27
Layer 3 subassembly ID: 28
Layer 4 subassembly ID: 29
Layer 5 subassembly ID: 30
</comment>
<constant name="SiVertexSubAssembly_ID" value="25"/>
<comment>
Unused values reserved for vertex:
constant name="SiVertexSubAssemblyLayer1_ID" value="121"
constant name="SiVertexSubAssemblyLayer2_ID" value="122"
constant name="SiVertexSubAssemblyLayer3_ID" value="123"
constant name="SiVertexSubAssemblyLayer4_ID" value="124"
constant name="SiVertexSubAssemblyLayer5_ID" value="125"
</comment>
<comment>
===============================
(50-74) Silicon Tracker System
===============================
The unused IDs below are saved for future use.
</documentation>
SiTracker subsystem ID: 50
Layer 1 subassembly ID: 51
Layer 2 subassembly ID: 52
Layer 3 subassembly ID: 53
Layer 4 subassembly ID: 54
Layer 5 subassembly ID: 55
(56-70) etc...
<documentation>
Unused IDs: 71-74
### Allocated IDs
</comment>
#### (1-9) Reserved IDs
<constant name="SiTrackerSubAssembly_ID" value="50"/>
<constant name="SiTrackerSubAssemblyLayer1_ID" value="51"/>
<constant name="SiTrackerSubAssemblyLayer2_ID" value="52"/>
<constant name="SiTrackerSubAssemblyLayer3_ID" value="53"/>
<constant name="SiTrackerSubAssemblyLayer4_ID" value="54"/>
<constant name="SiTrackerSubAssemblyLayer5_ID" value="55"/>
- Unused IDs: 1-9
<constant name="SiTrackerBarrel_Layer1_ID" value="56"/>
<constant name="SiTrackerEndcapP_Layer1_ID" value="57"/>
<constant name="SiTrackerEndcapN_Layer1_ID" value="58"/>
#### (10-24) Interaction region beamline
<constant name="SiTrackerBarrel_Layer2_ID" value="59"/>
<constant name="SiTrackerEndcapP_Layer2_ID" value="60"/>
<constant name="SiTrackerEndcapN_Layer2_ID" value="61"/>
- Beampipe ID : 10
- Unused IDs: 11-24
<constant name="SiTrackerBarrel_Layer3_ID" value="62"/>
<constant name="SiTrackerEndcapP_Layer3_ID" value="63"/>
<constant name="SiTrackerEndcapN_Layer3_ID" value="64"/>
</documentation>
<constant name="BeamPipe_ID" value="10"/>
<constant name="BeamPipeB0_ID" value="11"/>
<documentation>
#### (25-39) Silicon Vertex Tracker
- Vertex subassemblies: 25-27
- Vertex barrel and endcaps: 28-30
- Unused: 28-30
</documentation>
<constant name="VertexSubAssembly_0_ID" value="25"/>
<constant name="VertexSubAssembly_1_ID" value="26"/>
<constant name="VertexSubAssembly_2_ID" value="27"/>
<constant name="VertexBarrel_0_ID" value="31"/>
<constant name="VertexBarrel_1_ID" value="32"/>
<constant name="VertexBarrel_2_ID" value="33"/>
<constant name="VertexEndcapN_0_ID" value="34"/>
<constant name="VertexEndcapN_1_ID" value="35"/>
<constant name="VertexEndcapN_2_ID" value="36"/>
<constant name="VertexEndcapP_0_ID" value="37"/>
<constant name="VertexEndcapP_1_ID" value="38"/>
<constant name="VertexEndcapP_2_ID" value="39"/>
<documentation>
- Unused IDs: 31-39
</documentation>
<constant name="SiTrackerBarrel_Layer4_ID" value="65"/>
<constant name="SiTrackerEndcapP_Layer4_ID" value="66"/>
<constant name="SiTrackerEndcapN_Layer4_ID" value="67"/>
<documentation>
#### (40-84) Tracker System
<constant name="SiTrackerBarrel_Layer5_ID" value="68"/>
<constant name="SiTrackerEndcapP_Layer5_ID" value="69"/>
<constant name="SiTrackerEndcapN_Layer5_ID" value="70"/>
- Tracker subassemblies: 40-45
- Composite tracker systems: 46-57
- Tracker detectors: 56-84
Unused IDs: (77-79)
<constant name="cb_CTD_Si_ID" value="74"/>
</documentation>
<comment>
===================
(75-99) Reserved IDs
===================
Unused IDs: 75-89
SubAssembly IDs should increment from inner to outer
(it's not the definition order but rather the ID order that's used
for construction order in the ACTS geometry conversion)
</comment>
<constant name="TrackerSubAssembly_0_ID" value="40"/>
<constant name="TrackerSubAssembly_1_ID" value="41"/>
<constant name="TrackerSubAssembly_2_ID" value="42"/>
<constant name="TrackerSubAssembly_3_ID" value="43"/>
<constant name="TrackerSubAssembly_4_ID" value="44"/>
<constant name="TrackerSubAssembly_5_ID" value="45"/>
<constant name="TrackerCompositeBarrel_0_ID" value="46"/>
<constant name="TrackerCompositeBarrel_1_ID" value="47"/>
<constant name="TrackerCompositeBarrel_2_ID" value="48"/>
<constant name="TrackerCompositeBarrel_3_ID" value="49"/>
<constant name="TrackerCompositeEndcapN_0_ID" value="50"/>
<constant name="TrackerCompositeEndcapN_1_ID" value="51"/>
<constant name="TrackerCompositeEndcapN_2_ID" value="52"/>
<constant name="TrackerCompositeEndcapN_3_ID" value="53"/>
<constant name="TrackerCompositeEndcapP_0_ID" value="54"/>
<constant name="TrackerCompositeEndcapP_1_ID" value="55"/>
<constant name="TrackerCompositeEndcapP_2_ID" value="56"/>
<constant name="TrackerCompositeEndcapP_3_ID" value="57"/>
<constant name="TrackerBarrel_0_ID" value="58"/>
<constant name="TrackerBarrel_1_ID" value="59"/>
<constant name="TrackerBarrel_2_ID" value="60"/>
<constant name="TrackerBarrel_3_ID" value="61"/>
<constant name="TrackerBarrel_4_ID" value="62"/>
<constant name="TrackerBarrel_5_ID" value="63"/>
<constant name="TrackerBarrel_6_ID" value="64"/>
<constant name="TrackerBarrel_7_ID" value="65"/>
<constant name="TrackerBarrel_8_ID" value="66"/>
<constant name="TrackerEndcapN_0_ID" value="67"/>
<constant name="TrackerEndcapN_1_ID" value="68"/>
<constant name="TrackerEndcapN_2_ID" value="69"/>
<constant name="TrackerEndcapN_3_ID" value="70"/>
<constant name="TrackerEndcapN_4_ID" value="71"/>
<constant name="TrackerEndcapN_5_ID" value="72"/>
<constant name="TrackerEndcapN_6_ID" value="73"/>
<constant name="TrackerEndcapN_7_ID" value="74"/>
<constant name="TrackerEndcapN_8_ID" value="75"/>
<constant name="TrackerEndcapP_0_ID" value="76"/>
<constant name="TrackerEndcapP_1_ID" value="77"/>
<constant name="TrackerEndcapP_2_ID" value="78"/>
<constant name="TrackerEndcapP_3_ID" value="79"/>
<constant name="TrackerEndcapP_4_ID" value="80"/>
<constant name="TrackerEndcapP_5_ID" value="81"/>
<constant name="TrackerEndcapP_6_ID" value="82"/>
<constant name="TrackerEndcapP_7_ID" value="83"/>
<constant name="TrackerEndcapP_8_ID" value="84"/>
<documentation>
#### (85-99) Reserved IDs
- Unused IDs: 85-89
TBD
</comment>
<comment>
======================
(90-99) Barrel PID IDs
======================
DIRC subsystem ID: 90
Barrel TRD subsystem ID: 91
Barrel TOF subsystem ID: 92
Unused IDs: 93-99
</comment>
</documentation>
<documentation>
#### (90-99) Barrel PID IDs
- DIRC subsystem ID: 90
- Barrel TRD subsystem ID: 91
- Barrel TOF subsystem ID: 92
- Unused IDs: 93-99
</documentation>
<constant name="BarrelDIRC_ID" value="90"/>
<constant name="BarrelTRD_ID" value="91"/>
<constant name="BarrelTOF_ID" value="92"/>
<constant name="TOFSubAssembly_ID" value="93"/>
<comment>
=====================================
(100-109) Electromagnetic Calorimeter
=====================================
<documentation>
#### (100-109) Electromagnetic Calorimeter
ECal subsystem ID: 100
Barrel subassembly ID: 101
EndcapP subassembly ID: 102
EndcapN subassembly ID: 103
Crystal subassembly ID: 104
Barrel2 subassembly ID: 105
Unused IDs: 105-109
Unused IDs: 106-109
</comment>
</documentation>
<constant name="ECalSubAssembly_ID" value="100"/>
<constant name="ECalBarrel_ID" value="101"/>
<constant name="ECalEndcapP_ID" value="102"/>
<constant name="ECalEndcapN_ID" value="103"/>
<constant name="CrystalEndcap_ID" value="104"/>
<constant name="ECalBarrel2_ID" value="105"/>
<comment>
=====================================
(110-119) Hadronic Calorimeter
=====================================
<documentation>
#### (110-119) Hadronic Calorimeter
HCal subsystem ID: 110
Barrel subassembly ID: 111
EndcapP subassembly ID: 112
EndcapN subassembly ID: 113
- HCal subsystem ID: 110
- Barrel subassembly ID: 111
- EndcapP subassembly ID: 112
- EndcapN subassembly ID: 113
Unused IDs: 115-119
</comment>
- Unused IDs: 115-119
</documentation>
<constant name="HCalSubAssembly_ID" value="110"/>
<constant name="HCalBarrel_ID" value="111"/>
<constant name="HCalEndcapP_ID" value="112"/>
<constant name="HCalEndcapN_ID" value="113"/>
<constant name="ci_HCAL_id" value="200"/>
<comment>
=====================================
(120-129) (near) Forward reserved
=====================================
Forwardtracking ID: 120
Forward RICH ID: 121
Unused IDs: 124-129
</comment>
<constant name="ForwardTracking_ID" value="120"/>
<constant name="ForwardRICH_ID" value="121"/>
<constant name="ci_GEM_id" value="122"/>
<constant name="ForwardTRD_ID" value="123"/>
<comment>
=====================================
(130-139) Backward reserved
=====================================
Modular RICH ID: 130
Electron Endcap GEM tracking ID: 131
Unused IDs: 132-139
</comment>
<constant name="ce_MRICH_ID" value="130"/>
<constant name="ce_GEM_ID" value="131"/>
<comment>
=====================================
(140-149) Central Magnet
=====================================
Solenoid ID: 140
Solenoid support ID: 141
Solenoid Yoke ID: 142
Unused IDs: 143-149
</comment>
<constant name="PassiveSteelRingEndcapP_ID" value="114"/>
<documentation>
#### (120-129) (near) Forward reserved
- Forward RICH ID: 120
- Forward TRD ID: 121
- Forward TOF ID: 122
- Unused IDs: 124-129
</documentation>
<constant name="ForwardRICH_ID" value="120"/>
<constant name="ForwardTRD_ID" value="121"/>
<constant name="ForwardTOF_ID" value="122"/>
<documentation>
#### (130-139) Backward reserved
- Modular RICH ID: 130
- Backward RICH ID: 131
- Backward TOD ID: 132
- Unused IDs: 133-139
</documentation>
<constant name="MRICH_ID" value="130"/>
<constant name="BackwardRICH_ID" value="131"/>
<constant name="BackwardTOF_ID" value="132"/>
<documentation>
#### (140-149) Central Magnet
- Solenoid ID: 140
- Solenoid support ID: 141
- Solenoid Yoke ID: 142
- Unused IDs: 143-149
</documentation>
<constant name="Solenoid_ID" value="140"/>
<constant name="SolenoidSupport_ID" value="141"/>
<constant name="SolenoidYoke_ID" value="142"/>
<comment>
=====================================
(150-169) Far Forward Detectors
=====================================
Forward Roman Pot ID: 150
Zero Degree Cal. ID: 160
</comment>
<constant name="ForwardRomanPot_ID" value="150"/>
<constant name="ffi_ZDC_ID" value="160"/>
<comment>
=====================================
(170-189) Forward Beamline Magnets
=====================================
</comment>
<comment>
=====================================
(190-199) Backward Beamline Magnets
=====================================
</comment>
<comment>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Detector Definition Parameters
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Parameter nomenclature
- "rmin", "rmax", "thickness" all refer to the radial direction.
- "zmin", "zmax", "length", "offset" all refer to the z direction.
- Positive and Negative are "EndcapP" and "EndcapN", respectively.
- All values are positive. When refering to a negative endcap z position, the values are
also positive then negated when required. (Many endcap constructions are mirrored,
hence a postive value.
- We will try to keep the subsystem component name first and the parameter after an "_" (eg, EcalBarrel_length").
TODO: fix parameter naming to be uniform in the above convention.
<documentation>
#### (150-169) Far Forward Detectors
- Forward Roman Pot ID: 150
- Forward B0 Tracker ID: 151
- Zero Degree Cal. Ecal ID: 160
- Zero Degree Cal. Hcal ID: 161
TODO: A lot of the repeated ID's below should be pushed into a single detector
</documentation>
<constant name="B0Tracker_Station_1_ID" value="150"/>
<constant name="B0Tracker_Station_2_ID" value="151"/>
<constant name="B0Tracker_Station_3_ID" value="152"/>
<constant name="B0Tracker_Station_4_ID" value="153"/>
<constant name="B0Preshower_Station_1_ID" value="154"/>
<constant name="ForwardRomanPot_Station_1_ID" value="155"/>
<constant name="ForwardRomanPot_Station_2_ID" value="156"/>
<constant name="ForwardOffMTracker_station_1_ID" value="159"/>
<constant name="ForwardOffMTracker_station_2_ID" value="160"/>
<constant name="ForwardOffMTracker_station_3_ID" value="161"/>
<constant name="ForwardOffMTracker_station_4_ID" value="162"/>
<constant name="ZDCEcal_ID" value="163"/>
<constant name="ZDCHcal_ID" value="164"/>
<constant name="VacuumMagnetElement_1_ID" value="165"/>
<documentation>
#### (170-189) Far Forward Beamline Magnets
</documentation>
<constant name="B0PF_ID" value="170"/>
<constant name="B0APF_ID" value="171"/>
<constant name="Q1APF_ID" value="172"/>
<constant name="Q1BPF_ID" value="173"/>
<constant name="Q2PF_ID" value="174"/>
<constant name="B1PF_ID" value="175"/>
<constant name="B1APF_ID" value="176"/>
<constant name="B2PF_ID" value="177"/>
<constant name="Q0EF_ID" value="180"/>
<constant name="Q1EF_ID" value="181"/>
<documentation>
#### (190-199) Far Backward Beamline Magnets
- Low-Q2 Tagger 1 Tracker ID: 195
- Low-Q2 Tagger 1 Calorimeter ID: 196
- Low-Q2 Tagger 2 Tracker ID: 198
- Low-Q2 Tagger 2 Calorimeter ID: 199
TODO: A lot of the repeated ID's below should be pushed into a single detector
</documentation>
<constant name="LumiCollimator_ID" value="190"/>
<constant name="LumiDipole_ID" value="191"/>
<constant name="TaggerTracker_1_ID" value="195"/>
<constant name="TaggerCalorimeter_1_ID" value="196"/>
<constant name="TaggerTracker_2_ID" value="198"/>
<constant name="TaggerCalorimeter_2_ID" value="199"/>
<documentation>
#### (200-219) Far Backward Beamline Magnets
</documentation>
<constant name="Pipe_to_Q1eR_ID" value="200"/>
<constant name="Magnet_Q1eR_ID" value="201"/>
<constant name="Pipe_in_Q1eR_ID" value="202"/>
<constant name="Pipe_Q1eR_to_Q2eR_ID" value="203"/>
<constant name="Magnet_Q2eR_ID" value="204"/>
<constant name="Pipe_in_Q2eR_ID" value="205"/>
<constant name="Pipe_Q2eR_to_B2AeR_ID" value="206"/>
<constant name="Magnet_B2AeR_ID" value="207"/>
<constant name="Pipe_in_B2AeR_ID" value="208"/>
<constant name="Pipe_B2AeR_to_B2BeR_ID" value="209"/>
<constant name="Magnet_B2BeR_ID" value="210"/>
<constant name="Pipe_in_B2BeR_ID" value="211"/>
<constant name="Magnet_Q3eR_ID" value="212"/>
<constant name="Vacuum_in_Q3eR_ID" value="213"/>
<documentation>
## Detector Definition Parameters
## Constant naming convention
SubSystemNameFurtherDescriptor_quantity
Examples:
- TrackerBarrelInside_length
- EcalEndcapP_rmin
- MRichFresnelLens_thickness
### Naming Barrel and Endcaps
- **Barrel**
- **EndcapP**
- Postive Endcap (+z direction)
- This is the ion beam side
- **EndcapN**
- Negative Endcap (-z direction)
- This is the electron beam side
## Parameter nomenclature
- "rmin", "rmax", "thickness" all refer to the radial direction.
- "zmin", "zmax", "length", "offset" all refer to the z direction.
- Positive and Negative are "EndcapP" and "EndcapN", respectively.
- All values are positive (except offsets, which are positive in the hadron direction, i.e. towards EndCapP).
When refering to a negative endcap z position, the values are
also positive then negated when required. (Many endcap constructions are mirrored,
hence a postive value.)
- We will try to keep the subsystem component name first and the parameter after an "_" (eg, EcalBarrel_length").
</documentation>
<documentation>
## Rapidity constants
</documentation>
<constant name="Eta1_1_tan" value="tan(2*atan(exp(-1.1)))" />
<constant name="Eta1_4_tan" value="tan(2*atan(exp(-1.4)))" />
<constant name="Eta3_5_tan" value="tan(2*atan(exp(-3.5)))" />
<constant name="Eta3_6_tan" value="tan(2*atan(exp(-3.6)))" />
<constant name="Eta3_7_tan" value="tan(2*atan(exp(-3.7)))" />
<constant name="Eta3_8_tan" value="tan(2*atan(exp(-3.8)))" />
<constant name="Eta3_9_tan" value="tan(2*atan(exp(-3.9)))" />
<constant name="Eta4_0_tan" value="tan(2*atan(exp(-4.0)))" />
<constant name="Eta4_1_tan" value="tan(2*atan(exp(-4.1)))" />
<constant name="Eta4_2_tan" value="tan(2*atan(exp(-4.2)))" />
<constant name="Eta4_3_tan" value="tan(2*atan(exp(-4.3)))" />
<constant name="Eta4_4_tan" value="tan(2*atan(exp(-4.4)))" />
<constant name="Eta4_5_tan" value="tan(2*atan(exp(-4.5)))" />
<constant name="Eta4_6_tan" value="tan(2*atan(exp(-4.6)))" />
<constant name="Eta4_7_tan" value="tan(2*atan(exp(-4.7)))" />
<constant name="Eta4_8_tan" value="tan(2*atan(exp(-4.8)))" />
<comment>Solenoid option</comment>
<documentation>
## Solenoid Magnet Parameters
When changing here, also change the include file in athena.xml.
</documentation>
<comment>Solenoid option</comment>
<constant name="Solenoid_length" value="3840.0*mm"/>
<constant name="Solenoid_rmin" value="1600.0*mm"/>
<constant name="Solenoid_thickness" value="455*mm"/>
<constant name="Solenoid_offset" value="-240*mm"/>
<!--
<comment>Helmholtz option</comment>
<constant name="Solenoid_length" value="3840.0*mm"/>
<constant name="Solenoid_rmin" value="1655.0*mm"/> <comment> Larger inner bore radius </comment>
<constant name="Solenoid_thickness" value="640*mm"/>
<constant name="Solenoid_offset" value="10*mm"/>
</comment>
<comment>
==========================
Solenoid Magnet Parameters
==========================
</comment>
<constant name="Solenoid_length" value="7000.0*mm"/>
<constant name="Solenoid_rmin" value="3000.0*mm"/>
<constant name="Solenoid_thickness" value="400*mm"/>
<constant name="Solenoid_offset" value="600.0*mm"/>
-->
<constant name="Solenoid_rmax" value="Solenoid_rmin + Solenoid_thickness"/>
<constant name="SolenoidForward_zmax" value="Solenoid_length/2. + Solenoid_offset"/>
<constant name="SolenoidBackward_zmax" value="Solenoid_length/2. - Solenoid_offset"/>
<constant name="SolenoidBarrel_rmin" value="Solenoid_rmin"/>
<constant name="SolenoidBarrel_length" value="Solenoid_length"/>
<constant name="SolenoidBarrel_zmax" value="Solenoid_length/2.0"/>
<comment>
--------------------------------
Key Central Detector Parameters
--------------------------------
These are needed here to compute the dependent parameters.
</comment>
<constant name="ForwardRICH_length" value="1.1*m"/>
<constant name="ForwardTRD_length" value="20.0*cm"/>
<constant name="ForwardTOF_length" value="10.0*cm"/>
<constant name="BackwardCherenkovLength" value="15.0*cm"/>
<constant name="BackwardTOFLength" value="10.0*cm"/>
<comment> Total length of PID detectors above</comment>
<constant name="ForwardPIDLength" value="ForwardRICH_length + ForwardTRD_length + ForwardTOF_length"/>
<constant name="BackwardPIDLength" value="BackwardCherenkovLength + BackwardTOFLength"/>
<comment> Barrel PID thicknesses</comment>
<constant name="BarrelExtraPIDThickness" value="25.0 * cm"/>
<constant name="BarrelTRDThickness" value="25.0 * cm"/>
<constant name="BarrelTOFThickness" value="1.0 * cm"/>
<documentation>
## Tracking Detector Parameters
<comment>
============================
Tracking Detector Parameters
============================
</comment>
<comment>
-------------------------
GEM Tracker Parameters
-------------------------
</comment>
<constant name="ForwardTrackingGEMLength" value="30.0*cm"/>
<comment>
-------------------------
Vertex Tracker Parameters
-------------------------
</comment>
<constant name="VertexTrackerInnerRadius" value="30.0*mm"/>
<constant name="VertexTrackerOuterRadius" value="90.0*mm"/>
<constant name="VertexTrackerOuterBarrelLength" value="400.0*mm"/>
</documentation>
<documentation>
### Vertex Tracking Region
</documentation>
<constant name="VertexTrackingRegion_rmin" value="Beampipe_rmax + 1.0*mm" />
<constant name="VertexTrackingRegion_rmax" value="100.0*mm" />
<constant name="VertexTrackingRegionP_zmax" value="240.0*mm" />
<constant name="VertexTrackingRegionN_zmax" value="240.0*mm" />
<constant name="VertexTrackingRegion_length" value="VertexTrackingRegionP_zmax + VertexTrackingRegionN_zmax" />
<comment>
--------------------------
Silicon Tracker Parameters
--------------------------
</comment>
<constant name="SiliconTrackerInnerRadius" value="95.0*mm"/>
<constant name="SiliconTrackerInnerBarrelLength" value="300.0*mm"/>
<constant name="SiliconTrackerOuterRadius" value="Solenoid_rmax/3.0"/>
<constant name="SiliconTrackerOuterBarrelLength" value="Solenoid_length/2.5"/>
<constant name="SiliconTrackerOuterBarrel_zmax" value="SiliconTrackerOuterBarrelLength/2.0"/>
<comment>
Central tracking boundaries
The central tracking detectors are assumed to be symmtric about the origin.
</comment>
<constant name="CentralTracking_rmax" value="SiliconTrackerOuterRadius"/>
<constant name="CentralTracking_length" value="SiliconTrackerOuterBarrelLength + ForwardTrackingGEMLength"/>
<comment> These are used by ddsim </comment>
<constant name="tracker_region_rmax" value="Solenoid_rmax/2.0"/>
<constant name="tracker_region_zmax" value="Solenoid_length/2.0"/>
<comment>
-------------------------------
Central Barrel Tracker - Global
-------------------------------
<documentation>
### Central Tracking Region
TrackerBarrel_rmax: also the rmin for the barrel PID system (DIRC)
Note: The barrel rmax and endcap lengths are the maximum extent allowed for
the barrel and endcap layers, not the position of the final layer.
The cb_CTD_* parameters can probably be moved to the detector specific xml file.
</comment>
<constant name="cb_CTD_rmin" value="SiliconTrackerInnerRadius"/>
<constant name="cb_CTD_rmax" value="SiliconTrackerOuterRadius"/>
<constant name="cb_CTD_zmax" value="SiliconTrackerOuterBarrel_zmax"/>
<constant name="cb_CTD_length" value="SiliconTrackerOuterBarrelLength"/>
<comment>
------------
Calorimeters
------------
======================
Calorimeter Parameters
======================
</documentation>
</comment>
<constant name="CentralTrackingRegion_rmax" value="950.0*mm" />
<constant name="CentralTrackingRegionP_zmax" value="1700.0*mm" />
<constant name="CentralTrackingRegionN_zmax" value="1500.0*mm" />
<constant name="CentralTrackingRegion_length" value="CentralTrackingRegionP_zmax + CentralTrackingRegionN_zmax" />
<comment>
Ecal and Hcal Barrel/Endcap
tan(theta) to determine rmin in the outer tracking region (due to tapered beampipe)
</comment>
<constant name="CentralTrackingBarrel_tan" value="Eta1_1_tan" />
<constant name="CentralTrackingRegionP_tan" value="Eta3_7_tan * 1.00" />
<constant name="CentralTrackingRegionN_tan" value="Eta4_0_tan * 0.99" />
<constant name="ExtraHcalEndcapP_length" value="0.0*cm"/>
<constant name="ExtraHcalEndcapN_length" value="0.0*cm"/>
<constant name="SolenoidYokeEndcapP_zmin" value="Solenoid_length/2.0 + Solenoid_offset+ExtraHcalEndcapP_length"/>
<constant name="SolenoidYokeEndcapN_zmin" value="Solenoid_length/2.0 - Solenoid_offset+ExtraHcalEndcapN_length"/>
<constant name="EcalBarrel_rmin" value="SiliconTrackerOuterRadius + BarrelExtraPIDThickness + 5.0 * mm"/>
<constant name="HcalBarrel_rmax" value="Solenoid_rmin - 10.0 *cm "/>
<constant name="Barrel_TotalCalThickness" value="HcalBarrel_rmax - EcalBarrel_rmin"/>
<constant name="CalBarrelDivider" value="0.5"/> <comment> Ecal and Hcal have the same thickness </comment>
<constant name="EcalBarrel_TotalThickness" value="Barrel_TotalCalThickness * CalBarrelDivider"/>
<constant name="HcalBarrel_TotalThickness" value="Barrel_TotalCalThickness * (1.0 - CalBarrelDivider)"/>
<constant name="EcalBarrelLength" value="CentralTracking_length + BackwardPIDLength"/>
<constant name="EcalBarrel_offset" value="(CentralTracking_length -(CentralTracking_length+BackwardPIDLength))/2.0"/>
<constant name="EcalEndcapP_zmin" value="CentralTracking_length/2.0 + ForwardPIDLength"/>
<constant name="EcalEndcapN_zmin" value="CentralTracking_length/2.0 + BackwardPIDLength"/>
<constant name="BarrelLength" value="SiliconTrackerOuterBarrelLength + ForwardPIDLength + BackwardPIDLength"/>
<constant name="Barrel_offset" value="(EcalEndcapP_zmin-EcalEndcapN_zmin)/2.0"/>
<constant name="EndcapPTotalCal_length" value="(SolenoidYokeEndcapP_zmin - 0.0 * mm) - (EcalEndcapP_zmin + 20.0 * mm)"/>
<constant name="EndcapNTotalCal_length" value="(SolenoidYokeEndcapN_zmin - 0.0 * mm) - (EcalEndcapN_zmin + 20.0 * mm)"/>
<constant name="EndcapP_CalDivide" value="0.5"/> <comment> 0.5 means Ecal and Hcal have the same thickness </comment>
<constant name="EndcapN_CalDivide" value="0.5"/> <comment> 0.5 means Ecal and Hcal have the same thickness </comment>
<documentation level="0">
### PID Detector Region Parameters
</documentation>
<constant name="EcalEndcapP_length" value="EndcapPTotalCal_length * EndcapP_CalDivide"/>
<constant name="EcalEndcapN_length" value="EndcapNTotalCal_length * EndcapN_CalDivide"/>
<comment> Global PID regions with suballocations for TOF and RICH detectors </comment>
<constant name="ForwardPIDRegion_zmin" value="CentralTrackingRegionP_zmax" />
<constant name="ForwardPIDRegion_length" value="160.0*cm" />
<constant name="HcalEndcapP_length" value="EndcapPTotalCal_length * (1.0 - EndcapP_CalDivide)"/>
<constant name="HcalEndcapN_length" value="EndcapNTotalCal_length * (1.0 - EndcapN_CalDivide)"/>
<comment> These need to be set in sync with the forward and backward detectors </comment>
<constant name="EcalEndcapP_rmin" value="200.0*mm"/>
<constant name="EcalEndcapN_rmin" value="300.0*mm"/>
<constant name="HcalEndcapP_rmin" value="EcalEndcapP_rmin"/>
<constant name="HcalEndcapN_rmin" value="EcalEndcapN_rmin"/>
<comment>
-------------------------
EM Calorimeter Parameters
-------------------------
## Note about Calormieter parameterization.
The logic goes like this:
1. The space for the calorimeter is fixed via parameterization above.
2. The layer thicknesses are fixed (first parameters below)
3. From the space/thickness the number of layers is computed.
</comment>
<constant name="CaloSides" value="12"/>
<comment>Material Thickness</comment>
<constant name="EcalSiliconThickness" value="9.00 * mm" />
<constant name="EcalCopperThickness" value="0.05 * mm" />
<constant name="EcalKaptonThickness" value="0.30 * mm" />
<constant name="EcalAir1Thickness" value="0.33 * mm" />
<constant name="EcalAir2Thickness" value="0.25 * mm" />
<constant name="EcalThinTungstenThickness" value="2.50 * mm" />
<constant name="EcalThickTungstenThickness" value="5.00 * mm" />
<comment> Forward TOF region currenlty empty for future upgrades </comment>
<constant name="ForwardTOFRegion_zmin" value="ForwardPIDRegion_zmin" />
<constant name="ForwardTOFRegion_length" value="20.0*cm" />
<constant name="ForwardTOFRegion_rmax" value="CentralTrackingRegion_rmax" />
<constant name="ForwardTOFRegion_tan" value="CentralTrackingRegionP_tan" />
<comment> Layer Thickness </comment>
<constant name="EcalLayer1_thickness"
value="EcalSiliconThickness + EcalCopperThickness + EcalKaptonThickness + EcalAir1Thickness"/>
<constant name="EcalLayer2_thickness"
value="EcalThinTungstenThickness + EcalAir2Thickness + EcalSiliconThickness + EcalCopperThickness + EcalKaptonThickness + EcalAir1Thickness"/>
<constant name="EcalLayer3_thickness"
value="EcalThickTungstenThickness + EcalAir2Thickness + EcalSiliconThickness + EcalCopperThickness + EcalKaptonThickness + EcalAir1Thickness"/>
<comment> EM Barrel N Layer; same number of layers for EcalThin and EcalThick</comment>
<constant name="EcalBarrelLayers"
value="floor((EcalBarrel_TotalThickness - EcalLayer1_thickness) / (EcalLayer2_thickness + EcalLayer3_thickness))"/>
<constant name="EcalBarrelLayer1_NRepeat" value="1"/>
<constant name="EcalBarrelLayer2_NRepeat" value="EcalBarrelLayers"/>
<constant name="EcalBarrelLayer3_NRepeat" value="EcalBarrelLayers"/>
<comment> EM Barrel Thickness </comment>
<constant name="EcalBarrelThickness"
value="EcalBarrelLayer1_NRepeat*EcalLayer1_thickness + EcalBarrelLayer2_NRepeat * EcalLayer2_thickness + EcalBarrelLayer3_NRepeat * EcalLayer3_thickness"/>
<constant name="EcalBarrel_rmax" value="EcalBarrel_rmin + EcalBarrelThickness"/>
<comment> EM Endcap N Layer; same number of layers for EcalThin and EcalThick </comment>
<constant name="EcalEndcapPLayers"
value="floor((EcalEndcapP_length - EcalLayer1_thickness) / (EcalLayer2_thickness + EcalLayer3_thickness))"/>
<constant name="EcalEndcapNLayers"
value="floor((EcalEndcapN_length - EcalLayer1_thickness) / (EcalLayer2_thickness + EcalLayer3_thickness))"/>
<constant name="EcalEndcapPLayer1_NRepeat" value="1"/>
<constant name="EcalEndcapNLayer1_NRepeat" value="1"/>
<constant name="EcalEndcapPLayer2_NRepeat" value="EcalEndcapPLayers"/>
<constant name="EcalEndcapPLayer3_NRepeat" value="EcalEndcapPLayers"/>
<constant name="EcalEndcapNLayer2_NRepeat" value="EcalEndcapNLayers"/>
<constant name="EcalEndcapNLayer3_NRepeat" value="EcalEndcapNLayers"/>
<comment> EM Endcap Thickness </comment>
<constant name="EcalEndcapPThickness"
value="EcalEndcapPLayer1_NRepeat*EcalLayer1_thickness + EcalEndcapPLayer2_NRepeat*EcalLayer2_thickness + EcalEndcapPLayer3_NRepeat*EcalLayer3_thickness "/>
<constant name="EcalEndcapNThickness"
value="EcalEndcapNLayer1_NRepeat*EcalLayer1_thickness + EcalEndcapNLayer2_NRepeat*EcalLayer2_thickness + EcalEndcapNLayer3_NRepeat*EcalLayer3_thickness"/>
<comment>
-------------------------------
Hadronic Calorimeter Parameters
-------------------------------
</comment>
<constant name="HcalBarrel_rmin" value="EcalBarrel_rmax"/>
<constant name="HcalBarrelAvailThickness" value="HcalBarrel_rmax - HcalBarrel_rmin"/>
<constant name="HcalBarrelLength" value="Solenoid_length + ExtraHcalEndcapP_length + ExtraHcalEndcapN_length- HcalEndcapP_length- HcalEndcapN_length - 10*cm"/>
<constant name="HcalEndcapP_zmin" value="SolenoidYokeEndcapP_zmin - HcalEndcapP_length "/>
<constant name="HcalEndcapN_zmin" value="SolenoidYokeEndcapN_zmin - HcalEndcapN_length "/>
<comment> Material Thickness </comment>
<constant name="HcalSteelThickness" value="1.89 * cm"/>
<constant name="HcalPyrexThickness" value="1.10 * mm"/>
<constant name="HcalRPCGasThickness" value="1.20 * mm"/>
<constant name="HcalG10Thickness" value="3.00 * mm"/>
<constant name="HcalAirThickness" value="1.60 * mm"/>
<comment> Single Layer Thickness (for both barrel and endcap)</comment>
<constant name="HcalSingleLayerThickness"
value="HcalSteelThickness + (2 * HcalPyrexThickness) + HcalRPCGasThickness + HcalG10Thickness + HcalAirThickness"/>
<comment> Hcal Barrel Layers and computed Thickness </comment>
<constant name="HcalBarrelLayer_NRepeat" value="floor(HcalBarrelAvailThickness / HcalSingleLayerThickness)"/>
<constant name="HcalBarrelThickness" value="HcalBarrelLayer_NRepeat * HcalSingleLayerThickness"/>
<comment> Hcal Endcap Layers and computed Thickness </comment>
<constant name="HcalEndcapPLayer_NRepeat" value="floor(HcalEndcapP_length / HcalSingleLayerThickness)"/>
<constant name="HcalEndcapNLayer_NRepeat" value="floor(HcalEndcapN_length / HcalSingleLayerThickness)"/>
<constant name="HcalEndcapP_thickness" value="HcalEndcapPLayer_NRepeat * HcalSingleLayerThickness"/>
<constant name="HcalEndcapN_thickness" value="HcalEndcapNLayer_NRepeat * HcalSingleLayerThickness"/>
<comment>
----------------------
Zero Degree Parameters
----------------------
</comment>
<comment> BeamLines: IP6 </comment>
<constant name="ffi_ZDC_x_pos" value="90.0 * cm"/>
<constant name="ffi_ZDC_y_pos" value="0.0 * cm"/>
<constant name="ffi_ZDC_z_pos" value="3800.0 * cm"/>
<constant name="ffi_ZDC_rotateX_angle" value="0.0 * rad"/>
<constant name="ffi_ZDC_rotateY_angle" value="-0.0125 * rad"/>
<constant name="ffi_ZDC_rotateZ_angle" value="0.0 * rad"/>
<comment> BeamLines: IP8 </comment>
<!--
<constant name="ffi_ZDC_x_pos" value="127.0 * cm"/>
<constant name="ffi_ZDC_y_pos" value="0.0 * cm"/>
<constant name="ffi_ZDC_z_pos" value="3600.0 * cm"/>
<constant name="ffi_ZDC_rotateX_angle" value="0.0 * rad"/>
<constant name="ffi_ZDC_rotateY_angle" value="-0.025 * rad"/>
<constant name="ffi_ZDC_rotateZ_angle" value="0.0 * rad"/>
-->
<comment> Global parameters </comment>
<constant name="ffi_ZDC_width" value="60.0 * cm"/>
<constant name="ffi_ZDC_thickness" value="200.0 * cm"/>
<comment> Original Global parameters </comment>
<!--
<constant name="ffi_ZDC_thickness" value="250.0 * cm"/>
-->
<constant name="ffi_ZDC_ECAL_thickness" value="30.0 * cm"/>
<constant name="ffi_ZDC_ECAL_inner_radius" value="0.0 * cm"/>
<constant name="ffi_ZDC_ECAL_outer_radius" value="60.0 * cm"/>
<constant name="ffi_ZDC_ECAL_width" value="5.0 * cm"/>
<constant name="ffi_ZDC_ECAL_gap" value="5.0 * mm"/>
<constant name="ffi_ZDC_ECAL_ntower" value="10"/>
<comment> Original number of towers parameter </comment>
<!--
<constant name="ffi_ZDC_ECAL_ntower" value="20"/>
-->
<comment>
-----------------------
Gaseous RICH Parameters
-----------------------
</comment>
<constant name="ForwardRICH_zmin" value="SiliconTrackerOuterBarrel_zmax + 1 * cm"/>
<constant name="ForwardRICH_rmin" value="15 * cm"/>
<constant name="ForwardRICH_rmax0" value="SiliconTrackerOuterRadius"/>
<constant name="ForwardRICH_rmax1" value="EcalBarrel_rmin"/>
<constant name="ForwardRICH_rmax2" value="SolenoidBarrel_rmin-2*cm"/>
<constant name="ForwardRICHDepth" value="0.9*m"/>
<comment> Forward RICH region </comment>
<constant name="ForwardRICHRegion_zmin" value="ForwardTOFRegion_zmin + ForwardTOFRegion_length" />
<constant name="ForwardRICHRegion_length" value="ForwardPIDRegion_length - ForwardTOFRegion_length" />
<comment> tangent of the opening angle at the front and back of the RICH </comment>
<constant name="ForwardRICHRegion_tan1" value="CentralTrackingRegionP_tan * 0.88" />
<constant name="ForwardRICHRegion_tan2" value="Eta3_6_tan * 0.89" />
<constant name="BackwardPIDRegion_zmin" value="CentralTrackingRegionN_zmax" />
<constant name="BackwardPIDRegion_length" value="60.0*cm" />
<constant name="BackwardPIDRegion_rmax" value="CentralTrackingRegion_rmax" />
<constant name="BackwardPIDRegion_tan" value="CentralTrackingRegionN_tan * 0.92" />
<comment> Backward RICH region </comment>
<constant name="BackwardRICHRegion_zmin" value="BackwardPIDRegion_zmin" />
<constant name="BackwardRICHRegion_length" value="58.0*cm" />
<comment> Backward TOF region, currently empty for upgrades </comment>
<constant name="BackwardTOFRegion_zmin" value="BackwardRICHRegion_zmin + BackwardRICHRegion_length" />
<constant name="BackwardTOFRegion_length" value="BackwardPIDRegion_length - BackwardRICHRegion_length" />
<comment> Note: PID has space for DIRC, ExtraSpace sits past the PID</comment>
<constant name="BarrelPIDRegion_thickness" value="8.0 * cm" />
<constant name="BarrelExtraSpace_thickness" value="0.0 * cm" />
<documentation>
## Forward/backward tracking region behind the PID detectors
</documentation>
<constant name="BackwardTrackingRegion_tan" value="CentralTrackingRegionN_tan" />
<constant name="BackwardTrackingRegion_zmin" value="BackwardPIDRegion_zmin + BackwardPIDRegion_length" />
<constant name="ForwardTrackingRegion_tan" value="ForwardRICHRegion_tan2" />
<constant name="ForwardTrackingRegion_zmin" value="ForwardPIDRegion_zmin + ForwardPIDRegion_length" />
<constant name="ForwardTrackingRegion_length" value="10.0*cm" />
<constant name="BackwardTrackingRegion_length" value="0.0*cm" />
<comment> Total length of the endcap detectors in front of the calorimeter</comment>
<constant name="BackwardInnerEndcapRegion_length" value="BackwardPIDRegion_length + BackwardTrackingRegion_length"/>
<constant name="ForwardInnerEndcapRegion_length" value="ForwardPIDRegion_length + ForwardTrackingRegion_length"/>
<documentation>
## Service gaps
Service gaps in FW direction (before endcapP ECAL) and BW direction (before endcapN HCAL)
</documentation>
<constant name="ForwardServiceGap_length" value="10.0*cm"/>
<constant name="BackwardServiceGap_length" value="10.0*cm"/>
<documentation level="3">
## Calorimeter Parameters
</documentation>
<constant name="CaloSides" value="12"/>
<constant name="EcalEndcapP_zmin" value="ForwardPIDRegion_zmin + ForwardInnerEndcapRegion_length + ForwardServiceGap_length" />
<constant name="EcalEndcapP_length" value="30*cm" />
<constant name="EcalEndcapP_rmin" value="200.0*mm" />
<comment> extra 50cm rmax that "protrudes" into the HCAL</comment>
<constant name="EcalEndcapP_rmax" value="floor(Eta1_1_tan * EcalEndcapP_zmin)"/>
<constant name="EcalEndcapN_zmin" value="BackwardPIDRegion_zmin + BackwardInnerEndcapRegion_length"/>
<constant name="EcalEndcapN_length" value="60*cm" />
<comment>
--------------------------
Forward Tracker Parameters
--------------------------
</comment>
<comment>
--------------------------
Forward ECal Parameters
--------------------------
</comment>
<comment>
--------------------------
Forward HCal Parameters
--------------------------
</comment>
<comment>
--------------------------
ce_MRICH Parameters
--------------------------
</comment>
<constant name="ce_MRICHRMin" value="15*cm"/>
<constant name="ce_MRICHRMax" value="100*cm"/>
<constant name="ce_MRICHLength" value="BackwardCherenkovLength"/>
<constant name="ce_MRICHZMin" value="-EcalEndcapN_zmin+ce_MRICHLength"/>
rmin1: rmin round electron pipe (ignoring the hadron pipe)
rmin2: rmin around both beam pipes
</comment>
<constant name="EcalEndcapN_rmin1" value="Eta4_6_tan * EcalEndcapN_zmin" />
<constant name="EcalEndcapN_rmin2" value="Eta4_1_tan * EcalEndcapN_zmin" />
<constant name="EcalEndcapN_rmax" value="CentralTrackingRegion_rmax" />
<constant name="EcalBarrelRegion_thickness" value="45.0*cm"/>
<constant name="EcalBarrel_rmin" value="CentralTrackingRegion_rmax + BarrelPIDRegion_thickness + BarrelExtraSpace_thickness"/>
<constant name="EcalBarrelForward_zmax" value="SolenoidForward_zmax"/>
<constant name="EcalBarrelBackward_zmax" value="EcalEndcapN_zmin + 30*cm"/>
<constant name="EcalBarrel_length" value="EcalBarrelForward_zmax + EcalBarrelBackward_zmax"/>
<constant name="EcalBarrel_offset" value="(EcalBarrelForward_zmax - EcalBarrelBackward_zmax)/2.0"/>
<constant name="EcalBarrelReadout_length" value="20*cm"/>
<documentation level="3">
## Special DIRC parameters (depend on the ECAL setup)
</documentation>
<constant name="DIRCReadout_length" value="30*cm"/>
<constant name="DIRCForward_length" value="0*cm"/>
<constant name="DIRCForward_zmax" value="EcalBarrelForward_zmax "/>
<constant name="DIRCBackward_zmax" value="EcalBarrelBackward_zmax + EcalBarrelReadout_length +DIRCReadout_length "/>
<constant name="DIRC_length" value="DIRCForward_zmax + DIRCBackward_zmax"/>
<constant name="DIRC_offset" value="(DIRCForward_zmax - DIRCBackward_zmax)/2"/>
<constant name="DIRC_rmin" value="CentralTrackingRegion_rmax"/>
<constant name="DIRC_rmax" value="DIRC_rmin + BarrelPIDRegion_thickness"/>
<documentation>
## Hadronic Calorimeter Parameters
</documentation>
<constant name="HcalEndcapP_zmin" value="EcalEndcapP_zmin + EcalEndcapP_length"/>
<constant name="HcalEndcapP_length" value="120.0*cm"/>
<comment> HcalEndcapP needs to clear the expanding beampipe with 2 * crossing angle + its radius of BeampipeOD / 2</comment>
<constant name="HcalEndcapP_rmin" value="max((HcalEndcapP_zmin + HcalEndcapP_length) * tan(2.0 * abs(CrossingAngle)) + BeampipeOD / 2.0, 15 * cm)"/>
<constant name="HcalEndcapN_zmin" value="max(DIRCBackward_zmax + BackwardServiceGap_length, 355*cm)"/>
<constant name="HcalEndcapN_length" value="105.0*cm"/>
<comment> HcalEndcapN needs to clear the straight beampipe with 1 * crossing angle + its radius of 22.25 mm </comment>
<constant name="HcalEndcapN_rmin" value="max((HcalEndcapN_zmin + HcalEndcapN_length) * tan(abs(CrossingAngle)) + 22.25 * mm, 11 * cm)"/>
<constant name="HcalBarrel_thickness" value="100.0*cm "/>
<constant name="HcalBarrel_rmin" value="max(Solenoid_rmax, 230*cm)"/>
<constant name="HcalBarrel_rmax" value="HcalBarrel_rmin + HcalBarrel_thickness"/>
<constant name="HcalBarrelForward_zmax" value="HcalEndcapP_zmin - ForwardServiceGap_length - EcalEndcapP_length"/>
<constant name="HcalBarrelBackward_zmax" value="HcalEndcapN_zmin - BackwardServiceGap_length"/>
<comment>
These are used by ddsim, the region where we store all secondaries
<comment>
------------------
ce_GEM Parameters
------------------
For now they are forced to be symmetric, and we cover up to the start of the backward ECAL.
(this means in the forward region we stop in the middle of the RICH).
</comment>
<constant name="ce_GEM_rmin" value="10.0 * cm"/> <comment> temporary number. Need beampipe radius </comment>
<!--<constant name="ce_GEM_rmin" value="0.0 * cm"/>-->
<constant name="ce_GEM_rmax" value="HcalEndcapN_rmin + 8.0 * cm"/> <comment> temporary number to avoid overlaps </comment>
<!--<constant name="ce_GEM_rmax" value="45.0 * cm + 50.0 * cm"/>-->
<constant name="ce_GEM_length" value="30.0 * cm"/>
<constant name="ce_GEM_x_pos" value="0.0 * cm"/>
<constant name="ce_GEM_y_pos" value="0.0 * cm"/>
<constant name="ce_GEM_z_pos" value="-Solenoid_length/2.0 + ce_GEM_length/2.0"/>
<constant name="ce_GEM_layer" value="8"/>
<constant name="ce_GEM_layer_thickness" value="1.0 * cm"/>
<comment>
--------------------------
Central Ion HCal Parameters
--------------------------
</comment>
<constant name="ci_HCAL_rin" value="90 * cm"/><comment> Orginally 0, changed to not overlap solenoid </comment>
<constant name="ci_HCAL_rout" value="300 * cm"/>
<constant name="ci_HCAL_sizez" value="160 * cm"/>
<constant name="ci_HCAL_shiftz" value="5 * cm"/>
<constant name="ci_HCAL_posz" value="0 * cm"/>
<constant name="ci_HCAL_nlayers" value="20"/>
<constant name="ci_HCAL_lay_rin" value="ci_HCAL_rin"/> <comment> Orginally 80cm, changed to not overlap solenoid </comment>
<constant name="ci_HCAL_lay_rout" value="ci_HCAL_rout - 1 * cm"/>
<constant name="ci_HCAL_lay_thickness" value="2* cm"/>
<constant name="ci_HCAL_lay_gapz" value="2* cm"/>
<comment>
--------------------------
Central Ion GEM Parameters
--------------------------
</comment>
<constant name="ci_GEM_rin" value="10 * cm"/>
<constant name="ci_GEM_rout" value="95 * cm"/>
<constant name="ci_GEM_sizez" value="30 * cm"/>
<constant name="ci_GEM_shiftz" value="0 * cm"/>
<constant name="ci_GEM_posz" value="0 * cm"/>
<constant name="ci_GEM_posx" value="0 * cm"/>
<constant name="ci_GEM_nlayers" value="8"/>
<constant name="tracker_region_rmax" value="EcalBarrel_rmin"/>
<constant name="tracker_region_zmax" value="EcalEndcapN_zmin"/>
</define>
<lccdd>
<comment>
DIRC consists of 16 (default) identical modules making a barrel.
Each DIRC module consists of:
_______
[ | \
[ | \
[FD|Prizm|Lens|--------bars+glue-----|mirror]
Main constants to control DIRC global geometry:
- DIRC_length
- DIRC_offset
- DIRC_rmin
- DIRCBox_count (16 full dirc, 1 - a single module)
- DIRC_rotation (allows to flip the DIRC)
When DIRC_length is set, it affects bars length (all other lengths are fixed)
The width of each DIRC module is derived from DIRCPrism_width
</comment>
<define>
<constant name="DIRCFake_rmin" value="BarrelTracking_rmax-11*cm"/>
<constant name="DIRC_rotation" value="pi" comment="Allows DIRC flip"/>
<!-- <constant name="cb_DIRC_length" value="DIRCLength"/> -->
<!-- CLEANUP THIS if not sure. This is from the initial implementation
<constant name="DIRC_length" value="285.500*cm"/>
<constant name="DIRCFake_rmin" value="82.00*cm"/>-->
<!-- Prism -->
<constant name="DIRCPrism_width" value="360*mm"/>
<constant name="DIRCPrism_length" value="300*mm"/>
<constant name="DIRCPrism_short_edge" value="50*mm"/>
<constant name="DIRCPrism_angle" value="32*deg"/>
<constant name="DIRCPrism_long_edge" value="DIRCPrism_short_edge + DIRCPrism_length * tan(DIRCPrism_angle)"/>
<constant name="DIRCPrism_height" value="DIRCPrism_long_edge"/>
<!-- DIRC length -->
<constant name="DIRCMain_length" value="DIRC_length"/>
<constant name="DIRCFake_offset" value="DIRC_offset+15*cm"/>
<!-- Box - main DIRC modules -->
<constant name="DIRCBox_count" value="16" comment="Number of DIRC boxes per... DIRC. 16 - default"/>
<constant name="DIRCBox_width" value="DIRCPrism_width"/>
<!-- Mirror -->
<constant name="DIRCMirror_height" value="20 * mm"/>
<constant name="DIRCMirror_width" value="DIRCPrism_width"/>
<constant name="DIRCMirror_thickness" value="1 * mm"/>
<!-- Lens -->
<constant name="DIRCLens_height" value="DIRCPrism_long_edge"/>
<constant name="DIRCLens_width" value="DIRCPrism_width"/>
<constant name="DIRCLens_thickness" value="12 * mm"/>
<constant name="DIRCLens_r1" value="33 * mm"/>
<constant name="DIRCLens_r2" value="24 * mm"/>
<constant name="DIRCLens_shight" value="25 * mm" comment="Is 'shight' from UK urban dictionary???"/>
<!-- FD (Foto detectors?) -->
<constant name="DIRCFd_height" value="DIRCPrism_height"/>
<constant name="DIRCFd_width" value="DIRCPrism_width"/>
<constant name="DIRCFd_thickness" value="1*mm"/>
<!-- Bar - Each DIRC box consists of N "bars" -->
<!-- BarAssembly - Bars + Glue -->
<constant name="DIRCBarAssm_length" value="DIRCMain_length - DIRCPrism_length - DIRCMirror_thickness - DIRCLens_thickness - DIRCFd_thickness" comment="Length of bars+glue assembly"/>
<constant name="DIRCBar_count" value="11" comment="Number of bars per box"/>
<constant name="DIRCBar_gap" value="0.15 * mm"/>
<constant name="DIRCBar_height" value="17 * mm"/>
<constant name="DIRCBar_width" value="(DIRCPrism_width - (DIRCBar_count - 1) * DIRCBar_gap) / DIRCBar_count"/>
<constant name="DIRCGlue_thickness" value="0.05 * mm"/>
<constant name="DIRCBar_length" value="(DIRCBarAssm_length-4*DIRCGlue_thickness)/4"/>
<!-- dirc outer volume -->
<comment>
RMax is calculated according to "rectangle inside ring" problem solution
https://math.stackexchange.com/questions/4222684/calculate-rectangle-inside-ring-parameters/4222691#4222691
</comment>
<constant name="DIRCFake_rmax" value="sqrt( (DIRCFake_rmin+DIRCPrism_height)^2 + 0.25*(DIRCPrism_height)^2 )"/>
</define>
<materials>
<comment>
Only non optical material variants are here.
See optical_materials.xml for optical ones
-
</comment>
<material name="Epotek">
<D type="density" value="1.2" unit="g/cm3"/>
<composite n="5" ref="H"/>
<composite n="3" ref="C"/>
<composite n="2" ref="O"/>
</material>
<material name="Nlak33a">
<D type="density" value="4.220" unit="g/cm3"/>
<composite n="1" ref="Si"/>
<composite n="2" ref="O"/>
</material>
</materials>
<limits>
</limits>
<regions>
</regions>
<display>
<vis name="DIRCTube" ref="AnlTeal" alpha="0.1" visible="true" showDaughters="true" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCBox" ref="AnlLight_Gray" alpha="0.1" visible="true" showDaughters="true" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCLens1" ref="AnlProcess_Blue" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCLens2" ref="AnlProcess_Blue" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCLens3" ref="AnlTeal" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCBar" ref="AnlTeal" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCGlue" ref="AnlViolet" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCMirror" ref="AnlGray" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCPrism" ref="AnlTeal" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCFd" ref="AnlRed" visible="true" showDaughters="false" />
</display>
<detectors>
<detector id="BarrelDIRC_ID" name="cb_DIRC" type="cb_DIRC" readout="DIRCBarHits" vis="DIRCTube">
<dimensions rmin="DIRCFake_rmin" rmax="DIRCFake_rmax" length="DIRCMain_length" radius="DIRCRadius" dx="DIRCBars_DX" dy="DIRCBars_DY" number="DIRCNum" deltaphi="DIRCDPhi"/>
<position x="0" y="0" z="DIRCFake_offset"/>
<rotation theta="DIRC_rotation"/>
<module name="DircBox" R="DIRCRadius" repeat="DIRCBox_count" width="DIRCPrism_width + 1*mm" height="DIRCPrism_height*2" length="DIRCBarAssm_length + 550*mm" vis="DIRCBox">
<!-- Mirror (at the end of the module) -->
<mirror
height="DIRCMirror_height"
width="DIRCMirror_width"
thickness="DIRCMirror_thickness"
material="Aluminum"
vis="DIRCMirror"
/>
<!-- DIRC Bar -->
<!-- TODO parametrize as bar+glue assembly with layers -->
<bar
height="DIRCBar_height"
width="DIRCBar_width"
length="DIRCBar_length"
repeat="DIRCBar_count"
gap="DIRCBar_gap"
material="Quartz"
vis="DIRCBar"
/>
<glue thickness="DIRCGlue_thickness" material="Epotek" vis="DIRCGlue"/>
<!-- lens -->
<lens
height="DIRCLens_height"
width="DIRCLens_width"
thickness="DIRCLens_thickness"
r1="DIRCLens_r1"
r2="DIRCLens_r2"
/>
<prism/> <!-- TODO parametrize here -->
<fd
height="DIRCFd_height"
width="DIRCFd_width"
thickness="DIRCFd_thickness"
vis="DIRCFd"
material="Quartz"
/>
</module>
</detector>
</detectors>
<readouts>
<readout name="DIRCBarHits">
<segmentation type="CartesianGridXY" grid_size_x="3.0*mm" grid_size_y="3.0*mm" />
<id>system:8,module:8,section:8,bar:8,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
<fields>
</fields>
</lccdd>
<display>
<vis name="Argonne_Green" alpha="1" r="119/255" g="179/255" b="0"/>
<vis name="Argonne_Violet" alpha="1" r="91/256" g="0" b="145/256"/>
<vis name="Argonne_Process_Blue" alpha="1" r="0/256" g="130/256" b="202/256"/>
<vis name="Argonne_Orange" alpha="1" r="255/256" g="121/256" b="0"/>
<vis name="Argonne_Red" alpha="1" r="205/256" g="32/256" b="44/256"/>
<vis name="Argonne_Gold" alpha="1" r="248/256" g="178/256" b="0/256"/>
<vis name="Argonne_Blue" alpha="1" r="0/256" g="96/256" b="156/256"/>
<vis name="Argonne_Teal" alpha="1" r="0/256" g="161/256" b="156/256"/>
<vis name="Argonne_Gray" alpha="1" r="102/256" g="102/256" b="102/256"/>
<vis name="Argonne_Light_Gray" alpha="1" r="209/256" g="209/256" b="209/256"/>
<vis name="Argonne_Off_White" alpha="1" r="242/256" g="242/256" b="242/256"/>
<vis name="Argonne_Delta_Red" alpha="1" r="161/256" g="43/256" b="47/256"/>
<vis name="Argonne_Delta_Green" alpha="1" r="0" g="120/256" b="54/256"/>
<vis name="Argonne_Delta_Blue" alpha="1" r="11/256" g="31/256" b="143/256"/>
<vis name="Argonne_Red_1" alpha="0.5" r="205/256" g="32/256" b="44/256"/>
<comment>Tracker_Layer_Vis is Argonne_Gold</comment>
<vis name="Tracker_Layer_Vis" alpha="0.5" r="248/256" g="178/256" b="0/256" showDaughters="true" />
<comment>
See compact/colors.xml for list of colors.
</comment>
<vis name="InvisibleNoDaughters" showDaughters="false" visible="false"/>
<vis name="InvisibleWithDaughters" showDaughters="true" visible="false"/>
<vis name="SiVertexVis" alpha="0.9" r="1" g="0" b="1" showDaughters="true" />
<vis name="SiTrackerBarrelVis" alpha="0.5" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="SiTrackerVis" alpha="0.9" r="1.0" g="0.0" b="0.0" showDaughters="true" lineStyle="solid" drawingStyle="solid" />
<vis name="TrackerLayerVis" alpha="0.9" r="0.0" g="1.0" b="0.0" visible="true" showDaughters="true" />
<vis name="SiTrackerBarrelVis1" alpha="0.8" r="0.0" g="0.9" b="0.9" showDaughters="true" />
<vis name="SiTrackerBarrelVis2" alpha="0.8" r="0.1" g="0.9" b="0.0" showDaughters="true" visible="true"/>
<vis name="SiTrackerEndcapVis1" alpha="0.8" r="1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="SiTrackerEndcapVis2" alpha="0.8" r="1.0" g="0.45" b="0.0" showDaughters="false" visible="true"/>
<vis name="SiTrackerSubAssemblyVis" alpha="1" r="0.0" g="0.99" b="0.0" showDaughters="true" visible="true"/>
<vis name="SiTrackerLayerVis" alpha="1" r="0.0" g="1" b="0.0" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="EcalVis" alpha="0.1" r="0.0" g="0.75" b="0.1" showDaughters="false"/>
<vis name="EcalEndcapVis" alpha="1.0" r="0.0" g="0.99" b="0.0" showDaughters="false" visible="true" />
<vis name="EcalBarrelVis" alpha="1.0" r="0.0" g="0.99" b="0.0" showDaughters="false" visible="true" />
<vis name="HcalVis" alpha="0.9" r="0.75" g="0.0" b="0.0" showDaughters="false"/>
<vis name="HcalBarrelVis" alpha="1.0" r="0.0" g="0.0" b="0.99" showDaughters="false" visible="true" />
<vis name="HcalEndcapVis" alpha="1.0" r="0.0" g="0.0" b="0.99" showDaughters="false" visible="true" />
<vis name="SolenoidCoilVis" alpha="1.0" r="0.55" g="0.55" b="0.7" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="SolenoidCryostatVis" alpha="0.4" r="0.55" g="0.55" b="0.7" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="SolenoidYokeVis" alpha="0.2" r="0.8" g="0.1" b="0.1" showDaughters="false" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="RICHVis" alpha="0.5" r="1" g="0" b="1" showDaughters="false"/>
<vis name="BeamPipeVis" alpha="1" r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/>
<vis name="cb_SolenoidVis" alpha="0.4" r= "0.1" g="0.0" b="0.1" showDaughters="true" visible="true"/>
<vis name="ffi_ZDCVis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="ffi_ZDCmoduleVis" alpha="1.0" r= "0.1" g="1.0" b="0.9" showDaughters="true" visible="true"/>
<vis name="cb_CTDVis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="cb_CTD_Si_layerVis" alpha="1.0" r= "0.9" g="1.0" b="0.1" showDaughters="true" visible="true"/>
<vis name="ce_GEMVis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="cb_GEM_layerVis" alpha="0.8" r= "0.8" g="0.4" b="0.3" showDaughters="true" visible="true"/>
<vis name="ci_GEMVis" r= "0.8" g="0.4" b="0.3" alpha="0.8" showDaughters="true" visible="true"/>
<vis name="ci_HCALVis" r= "0.6" g="0" b="0.6" alpha="1.0" showDaughters="true" visible="true"/>
<comment>
Tracking Visualizations
</comment>
<vis name="TrackerVis" ref="AnlRed" />
<vis name="TrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="true" />
<vis name="TrackerServiceVis" ref="AnlGold" showDaughters="false" />
<vis name="TrackerLayerVis" ref="AnlGray" visible="true" showDaughters="true" />
<vis name="TrackerModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="false" />
<vis name="TrackerMPGDVis" ref="AnlRed" visible="true" showDaughters="false" />
<comment> Visualization for Barrel MMGAS (apply to layers) and GEM endcap (apply to modules) </comment>
<vis name="TrackerGEMModuleVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" />
<vis name="TrackerMMGASLayerVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" />
<vis name="VertexSupportLayerVis" ref="AnlBlue" visible="true" showDaughters="false" />
<vis name="VertexSupportVis" ref="VertexSupportLayerVis" visible="true" showDaughters="true" />
<vis name="VertexLayerVis" ref="AnlGray" visible="true" showDaughters="true" />
<vis name="VertexModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="false" />
<vis name="TOFVis" ref="AnlTeal" visible="true" showDaughters="true"/>
<vis name="TOFLayerVis" ref="TOFVis" visible="true" showdaughters="true"/>
<vis name="TOFModuleVis" ref="TOFVis" visible="true" showdaughters="true"/>
<vis name="TOFSupportVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/>
<vis name="TOFSensorVis" ref="TOFVis" visible="true" showDaughters="true"/>
<comment> By default don't display the barrel module details </comment>
<vis name="TOFBarrelModuleVis" ref="TOFVis" visible="true" showdaughters="true"/>
<comment> extra detailed vizualizations for the barrel </comment>
<vis name="TOFHybridVis" ref="AnlGold" visible="true" showDaughters="true"/>
<vis name="TOFCoolingTube" ref="AnlRed" visible="true" showDaughters="true"/>
<vis name="TOFCoolant" ref="TrackerServiceVis" visible="true" showDaughters="true"/>
<vis name="TOFCSkinVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/>
<vis name="TOFCFoamVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/>
<vis name="TOFCHoneycombVis" ref="TrackerServiceVis" visible="true" showDaughters="true"/>
<vis name="FFTrackerVis" ref="AnlRed" />
<vis name="FFTrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="false" />
<vis name="FFTrackerShieldingVis" ref="AnlGray" visible="true" showDaughters="false" />
<vis name="FFTrackerServiceVis" ref="AnlGold" visible="true" showDaughters="false" />
<vis name="FFTrackerLayerVis" ref="TrackerVis" visible="true" showDaughters="true" />
<vis name="FFTrackerModuleVis" ref="FFTrackerLayerVis" visible="true" showDaughters="true" />
<vis name="FFTrackerSurfaceVis" ref="FFTrackerLayerVis" visible="true" showDaughters="true" />
<comment> For shielded modules by default just display to module instead of 6 layers </comment>
<vis name="FFTrackerShieldedModuleVis" ref="FFTrackerModuleVis" visible="true" showDaughters="false" />
<comment>
ECal Vis
</comment>
<vis name="EcalVis" ref="AnlGold" showDaughters="true" visible="true"/>
<vis name="EcalBarrelVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="EcalBarrelStaveVis" ref="AnlOrange" showDaughters="false" visible="true" />
<vis name="EcalBarrelEnvelopeVis" ref="AnlGold" showDaughters="false" visible="true" />
<vis name="EcalBarrelSupportVis" ref="AnlOrange" showDaughters="false" visible="true"/>
<vis name="EcalBarrelLayerVis" ref="AnlGold" showDaughters="true" visible="true"/>
<vis name="EcalBarrelSliceVis" ref="AnlGray" showDaughters="false" visible="true"/>
<vis name="EcalBarrelFiberLayerVis" ref="AnlGold" showDaughters="false" visible="true" />
<vis name="EcalEndcapVis" ref="AnlGold" showDaughters="true" visible="false"/>
<vis name="EcalEndcapLayerVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="EcalEndcapBlockVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="EcalEndcapNModuleVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="FFPreVis" ref="AnlGold" showDaughters="true" visible="true"/>
<vis name="FFPreLayerVis" ref="FFPreVis" showDaughters="true" visible="true"/>
<vis name="FFPreModuleVis" ref="FFPreLayerVis" showDaughters="true" visible="true"/>
<vis name="FFPreRadiatorVis" ref="FFPreModuleVis" showDaughters="true" visible="true"/>
<vis name="FFPreReadoutVis" ref="FFTrackerSurfaceVis" showDaughters="true" visible="true"/>
<comment>
HCal Vis
</comment>
<vis name="HcalVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalBarrelVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalBarrelStaveVis" ref="AnlBlue" showDaughters="false" visible="true"/>
<vis name="HcalBarrelLayerVis" ref="AnlBlue" showDaughters="false" visible="true"/>
<vis name="HcalEndcapVis" ref="AnlBlue" showDaughters="false" visible="true"/>
<vis name="HcalEndcapLayerVis" ref="AnlBlue" showDaughters="false" visible="true"/>
<vis name="HcalSensorVis" ref="AnlBlue" showDaughters="false" visible="false"/>
<vis name="HcalAbsorberVis" ref="AnlGray" showDaughters="false" visible="false"/>
<comment>
Passive steel for flux return
</comment>
<vis name="PassiveSteelVis" ref="AnlViolet" showDaughters="false" visible="true"/>
<comment>
Solenoid
</comment>
<vis name="SolenoidCoilVis" ref="AnlLightGray" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="SolenoidCryostatVis" ref="AnlGray" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="SolenoidYokeVis" ref="AnlLight_Gray" showDaughters="false" visible="true" lineStyle="solid" drawingStyle="solid" />
<comment>
PID Detectors
</comment>
<vis name="RICHVis" ref="AnlTeal" showDaughters="true"/>
<vis name="DIRCVis" ref="AnlTeal" showDaughters="true" visible="false"/>
<vis name="DIRCLayerVis" ref="AnlTeal" showDaughters="true" visible="false"/>
<vis name="DIRCModuleVis" ref="AnlTeal" showDaughters="true" visible="false"/>
<vis name="DIRCSupportVis" ref="AnlTeal" showDaughters="true" visible="true"/>
<vis name="DIRCFrameVis" ref="AnlOrange" showDaughters="true" visible="true"/>
<vis name="DIRCBarVis" ref="AnlTeal" showDaughters="true" visible="true"/>
<comment>
Beam line with magnets
</comment>
<vis name="BeamPipeVis" ref="AnlLightGray" showDaughters="true" visible="true"/>
<vis name="FFMagnetVis" ref="AnlGreen" showDaughters="true" visible="true"/>
<vis name="FFMagnetCoilVis" ref="AnlRed" showDaughters="true" visible="true"/>
<comment>
ZDC visualization
</comment>
<vis name="ffi_ZDC_ECAL_Vis" ref="AnlGreen" showDaughters="true" visible="true"/>
<vis name="ffi_ZDC_ECAL_module_Vis" ref="AnlRed" showDaughters="false" visible="true"/>
<vis name="ffi_ZDC_HCAL_Vis" ref="AnlBlue" showDaughters="true" visible="true"/>
<comment>
PID visualization
</comment>
<vis name="DRICH_vessel_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="DRICH_gas_vis" ref="AnlGreen" alpha="0.5" showDaughters="true" visible="true" />
<vis name="DRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
<vis name="DRICH_filter_vis" alpha="1.0" r="1.0" g="1.0" b="0.0" showDaughters="true" visible="true" />
<vis name="DRICH_mirror_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="DRICH_sensor_vis" ref="AnlBlue" showDaughters="true" visible="true" />
<vis name="PFRICH_sensor_vis" ref="AnlBlue" showDaughters="true" visible="true" />
<vis name="MRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
<vis name="MRICH_frame_vis" ref="AnlGold" showDaughters="true" visible="true" />
<vis name="MRICH_lens_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="MRICH_mirror_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="RICHServiceVis" ref="AnlGray" showDaughters="true" visible="true" />
</display>
<comment>
Deprecated colors.
vis name="GreenVis" alpha="1.0" r= "0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/
vis name="RedVis" alpha="0.2" r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/
vis name="RPVis" alpha="0.99" r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/
vis name="RPLayerVis" alpha="0.99" r= "0.0" g="0.7" b="0.3" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" /
vis name="BlueVis" alpha="1.0" r= "0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/
vis name="OrangeVis" alpha="1.0" r= "1.0" g="0.45" b="0.0" showDaughters="true" visible="true"/
vis name="RedGreenVis" alpha="0.5" r= "1.0" g="1.0" b="0.0" showDaughters="true" visible="true"/
vis name="BlueGreenVis" alpha="0.5" r= "0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/
vis name="PurpleVis" alpha="1.0" r= "1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/
vis name="DoubleRedG" alpha="0.5" r= "2.0" g=".10" b="0.0" showDaughters="true" visible="true"/
vis name="RBG015" alpha="0.5" r= "0.0" g=".2" b="1.0" showDaughters="true" visible="true"/
vis name="RBG510" alpha="0.5" r= "1.0" g=".2" b="0.0" showDaughters="true" visible="true"/
vis name="RBG" alpha="0.5" r= "1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/
vis name="GrayVis" alpha="1.0" r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/
</comment>
<vis name="GreenVis" alpha="1.0" r= "0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/>
<vis name="RedVis" alpha="0.2" r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/>
<vis name="RPVis" alpha="0.99" r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/>
<vis name="RPLayerVis" alpha="0.99" r= "0.0" g="0.7" b="0.3" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="BlueVis" alpha="1.0" r= "0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="OrangeVis" alpha="1.0" r= "1.0" g="0.45" b="0.0" showDaughters="true" visible="true"/>
<vis name="RedGreenVis" alpha="0.5" r= "1.0" g="1.0" b="0.0" showDaughters="true" visible="true"/>
<vis name="BlueGreenVis" alpha="0.5" r= "0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="PurpleVis" alpha="1.0" r= "1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="DoubleRedG" alpha="0.5" r= "2.0" g=".10" b="0.0" showDaughters="true" visible="true"/>
<vis name="RBG015" alpha="0.5" r= "0.0" g=".2" b="1.0" showDaughters="true" visible="true"/>
<vis name="RBG510" alpha="0.5" r= "1.0" g=".2" b="0.0" showDaughters="true" visible="true"/>
<vis name="RBG" alpha="0.5" r= "1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="GrayVis" alpha="1.0" r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/>
</display>
<display>
<comment>
This is where a detailed display can be created.
Note this is currently just a copy of display.xml
</comment>
<vis name="InvisibleNoDaughters" showDaughters="false" visible="false"/>
<vis name="InvisibleWithDaughters" showDaughters="true" visible="false"/>
<comment>
Tracking Visualizations
</comment>
<vis name="TrackerVis" ref="AnlRed" />
<vis name="TrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="false" />
<vis name="TrackerServiceVis" ref="AnlGold" showDaughters="false" />
<vis name="TrackerLayerVis" ref="AnlGray" visible="true" showDaughters="true" />
<vis name="TrackerModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="true" />
<vis name="TrackerMPGDVis" ref="AnlRed" visible="true" showDaughters="true" />
<comment> Layer-based visualization for MPGD detectors as it looks better </comment>
<vis name="TrackerGEMModuleVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" />
<vis name="TrackerMMGASLayerVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" />
<vis name="VertexLayerVis" ref="AnlGray" visible="true" showDaughters="false" />
<vis name="VertexSupportLayerVis" ref="AnlBlue" visible="true" showDaughters="false" />
<vis name="VertexSupportVis" ref="VertexSupportLayerVis" visible="true" showDaughters="true" />
<vis name="VertexModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="true" />
<vis name="TOFVis" ref="AnlTeal" visible="true" showDaughters="true"/>
<vis name="TOFLayerVis" ref="TOFVis" visible="true" showdaughters="true"/>
<vis name="TOFModuleVis" ref="TOFVis" visible="true" showdaughters="true"/>
<vis name="TOFSupportVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/>
<vis name="TOFSensorVis" ref="TOFVis" visible="true" showDaughters="true"/>
<vis name="TOFBarrelModuleVis" ref="TOFVis" visible="true" showdaughters="true"/>
<vis name="TOFHybridVis" ref="AnlGold" visible="true" showDaughters="true"/>
<vis name="TOFCoolingTube" ref="AnlRed" visible="true" showDaughters="true"/>
<vis name="TOFCoolant" ref="TrackerServiceVis" visible="true" showDaughters="true"/>
<vis name="TOFCSkinVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/>
<vis name="TOFCFoamVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/>
<vis name="TOFCHoneycombVis" ref="TrackerServiceVis" visible="true" showDaughters="true"/>
<vis name="FFTrackerVis" ref="AnlRed" />
<vis name="FFTrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="false" />
<vis name="FFTrackerShieldingVis" ref="AnlGray" visible="true" showDaughters="false" />
<vis name="FFTrackerServiceVis" ref="AnlGold" visible="true" showDaughters="false" />
<vis name="FFTrackerLayerVis" ref="TrackerVis" visible="true" showDaughters="true" />
<vis name="FFTrackerModuleVis" ref="FFTrackerLayerVis" visible="true" showDaughters="true" />
<vis name="FFTrackerSurfaceVis" ref="FFTrackerLayerVis" visible="true" showDaughters="true" />
<comment> Display shielded modules in all their glory </comment>
<vis name="FFTrackerShieldedModuleVis" ref="FFTrackerModuleVis" visible="true" showDaughters="true" />
<comment>
ECal Vis
</comment>
<vis name="EcalBarrelLayerVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="EcalBarrelEnvelopeVis" ref="AnlGold" showDaughters="true" visible="false" />
<vis name="EcalBarrelStaveVis" ref="AnlGold" showDaughters="true" visible="true" />
<vis name="EcalBarrelFiberLayerVis" ref="AnlGold" showDaughters="false" visible="true" />
<vis name="EcalBarrelSliceVis" ref="AnlGray"/>
<vis name="EcalBarrelSupportVis" ref="AnlOrange"/>
<vis name="EcalVis" ref="AnlGold" showDaughters="true" visible="false"/>
<vis name="EcalEndcapVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="EcalEndcapLayerVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="EcalEndcapBlockVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="EcalEndcapNModuleVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="FFPreVis" ref="AnlGold" showDaughters="true" visible="true"/>
<vis name="FFPreLayerVis" ref="FFPreVis" showDaughters="true" visible="true"/>
<vis name="FFPreModuleVis" ref="FFPreLayerVis" showDaughters="true" visible="true"/>
<vis name="FFPreRadiatorVis" ref="FFPreModuleVis" showDaughters="true" visible="true"/>
<vis name="FFPreReadoutVis" ref="FFTrackerSurfaceVis" showDaughters="true" visible="true"/>
<comment>
HCal Vis
</comment>
<vis name="HcalVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalBarrelVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalBarrelStaveVis" ref="AnlBlue" showDaughters="false" visible="true"/>
<vis name="HcalBarrelLayerVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalEndcapVis" ref="AnlBlue" showDaughters="false" visible="true"/>
<vis name="HcalEndcapLayerVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalSensorVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalAbsorberVis" ref="AnlGray" showDaughters="true" visible="true"/>
<comment>
Passive steel for flux return
</comment>
<vis name="PassiveSteelVis" ref="AnlViolet" showDaughters="false" visible="true"/>
<comment>
Solenoid
</comment>
<vis name="SolenoidCoilVis" ref="AnlLight_Gray" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="SolenoidCryostatVis" ref="AnlGray" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="SolenoidYokeVis" ref="AnlLight_Gray" showDaughters="false" visible="true" lineStyle="solid" drawingStyle="solid" />
<comment>
PID Detectors
</comment>
<vis name="RICHVis" ref="AnlTeal" showDaughters="true"/>
<vis name="DIRCVis" ref="AnlTeal" showDaughters="true" visible="true"/>
<vis name="DIRCLayerVis" ref="AnlTeal" showDaughters="false" visible="true"/>
<vis name="DIRCModuleVis" ref="AnlTeal" showDaughters="true" visible="true"/>
<vis name="DIRCSupportVis" ref="AnlTeal" showDaughters="true" visible="true"/>
<vis name="DIRCFrameVis" ref="AnlOrange" showDaughters="true" visible="true"/>
<vis name="DIRCBarVis" ref="AnlTeal" showDaughters="true" visible="true"/>
<comment>
Beam line with magnets
</comment>
<vis name="BeamPipeVis" ref="AnlLightGray" showDaughters="true" visible="true"/>
<vis name="FFMagnetVis" ref="AnlGreen" showDaughters="true" visible="true"/>
<vis name="FFMagnetCoilVis" ref="AnlRed" showDaughters="true" visible="true"/>
<comment>
ZDC visualization
</comment>
<vis name="ffi_ZDC_ECAL_Vis" ref="AnlGreen" showDaughters="true" visible="true"/>
<vis name="ffi_ZDC_ECAL_module_Vis" ref="AnlRed" showDaughters="false" visible="true"/>
<vis name="ffi_ZDC_HCAL_Vis" ref="AnlBlue" showDaughters="true" visible="true"/>
<comment>
PID visualization
</comment>
<vis name="DRICH_vessel_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="DRICH_gas_vis" ref="AnlLightGray" alpha="0.2" showDaughters="true" visible="true" />
<vis name="DRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
<vis name="DRICH_filter_vis" alpha="1.0" r="1.0" g="1.0" b="0.0" showDaughters="true" visible="true" />
<vis name="DRICH_mirror_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="DRICH_sensor_vis" ref="AnlGreen" showDaughters="true" visible="true" />
<vis name="PFRICH_sensor_vis" ref="AnlGreen" showDaughters="true" visible="true" />
<vis name="MRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
<vis name="MRICH_frame_vis" ref="AnlGold" showDaughters="true" visible="true" />
<vis name="MRICH_lens_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="MRICH_mirror_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="RICHServiceVis" ref="AnlGray" showDaughters="true" visible="true" />
<comment>
Deprecated values used for IP6 vis
</comment>
<vis name="GreenVis" ref="AnlGreen" showDaughters="true" visible="true"/>
<vis name="RedVis" ref="AnlRed" showDaughters="true" visible="true"/>
<vis name="RPVis" ref="AnlDelta_Red" showDaughters="true" visible="true"/>
<vis name="RPLayerVis" ref="AnlTeal" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="BlueVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="OrangeVis" ref="AnlOrange" showDaughters="true" visible="true"/>
<vis name="BlueGreenVis" alpha="0.5" r= "0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="PurpleVis" alpha="1.0" r= "1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="DoubleRedG" alpha="0.5" r= "2.0" g=".10" b="0.0" showDaughters="true" visible="true"/>
<vis name="RBG015" alpha="0.5" r= "0.0" g=".2" b="1.0" showDaughters="true" visible="true"/>
<vis name="RBG510" alpha="0.5" r= "1.0" g=".2" b="0.0" showDaughters="true" visible="true"/>
<vis name="RBG" alpha="0.5" r= "1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="GrayVis" alpha="1.0" r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/>
<vis name="AnlRed_1" alpha="0.5" r="205/256" g="32/256" b="44/256"/>
</display>
<display>
<comment>
See compact/colors.xml for list of colors.
</comment>
<vis name="InvisibleNoDaughters" showDaughters="false" visible="false"/>
<vis name="InvisibleWithDaughters" showDaughters="true" visible="false"/>
<comment>
Tracking Visualizations
</comment>
<vis name="TrackerVis" ref="AnlRed" />
<vis name="TrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="false" />
<vis name="TrackerServiceVis" ref="AnlGold" showDaughters="false" />
<vis name="TrackerLayerVis" ref="AnlGray" visible="true" showDaughters="true" />
<vis name="TrackerModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="true" />
<vis name="TrackerMPGDVis" ref="AnlRed" visible="true" showDaughters="true" />
<comment> Simple visualization for Barrel MMGAS (apply to layers) and GEM endcap (apply to modules) for better performance </comment>
<vis name="TrackerGEMModuleVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" />
<vis name="TrackerMMGASLayerVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" />
<vis name="VertexLayerVis" ref="AnlGray" visible="true" showDaughters="false" />
<vis name="VertexSupportLayerVis" ref="AnlBlue" visible="true" showDaughters="false" />
<vis name="VertexSupportVis" ref="VertexSupportLayerVis" visible="true" showDaughters="true" />
<vis name="VertexModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="true" />
<vis name="TOFVis" ref="AnlTeal" visible="true" showDaughters="true"/>
<vis name="TOFLayerVis" ref="TOFVis" visible="true" showdaughters="true"/>
<vis name="TOFModuleVis" ref="TOFVis" visible="true" showdaughters="true"/>
<vis name="TOFSupportVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/>
<vis name="TOFSensorVis" ref="TOFVis" visible="true" showDaughters="true"/>
<vis name="TOFBarrelModuleVis" ref="TOFVis" visible="true" showdaughters="true"/>
<vis name="TOFHybridVis" ref="AnlGold" visible="true" showDaughters="true"/>
<vis name="TOFCoolingTube" ref="AnlRed" visible="true" showDaughters="true"/>
<vis name="TOFCoolant" ref="TrackerServiceVis" visible="true" showDaughters="true"/>
<vis name="TOFCSkinVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/>
<vis name="TOFCFoamVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/>
<vis name="TOFCHoneycombVis" ref="TrackerServiceVis" visible="true" showDaughters="true"/>
<vis name="FFTrackerVis" ref="AnlRed" />
<vis name="FFTrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="false" />
<vis name="FFTrackerShieldingVis" ref="AnlGray" visible="true" showDaughters="false" />
<vis name="FFTrackerServiceVis" ref="AnlGold" visible="true" showDaughters="false" />
<vis name="FFTrackerLayerVis" ref="TrackerVis" visible="true" showDaughters="true" />
<vis name="FFTrackerModuleVis" ref="FFTrackerLayerVis" visible="true" showDaughters="true" />
<vis name="FFTrackerSurfaceVis" ref="FFTrackerLayerVis" visible="true" showDaughters="true" />
<comment> For shielded modules by default just display to module instead of 6 layers </comment>
<vis name="FFTrackerShieldedModuleVis" ref="FFTrackerModuleVis" visible="true" showDaughters="false" />
<comment>
ECal Vis
</comment>
<vis name="EcalBarrelLayerVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="EcalBarrelEnvelopeVis" ref="AnlGold" showDaughters="true" visible="false" />
<vis name="EcalBarrelStaveVis" ref="AnlGold" showDaughters="true" visible="true" />
<vis name="EcalBarrelFiberLayerVis" ref="AnlGold" showDaughters="false" visible="true" />
<vis name="EcalBarrelSliceVis" ref="AnlGray"/>
<vis name="EcalBarrelSupportVis" ref="AnlOrange"/>
<vis name="EcalVis" ref="AnlGold" showDaughters="true" visible="false"/>
<vis name="EcalEndcapVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="EcalEndcapLayerVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="EcalEndcapBlockVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="EcalEndcapNModuleVis" ref="AnlGold" showDaughters="false" visible="true"/>
<vis name="FFPreVis" ref="AnlGold" showDaughters="true" visible="true"/>
<vis name="FFPreLayerVis" ref="FFPreVis" showDaughters="true" visible="true"/>
<vis name="FFPreModuleVis" ref="FFPreLayerVis" showDaughters="true" visible="true"/>
<vis name="FFPreRadiatorVis" ref="FFPreModuleVis" showDaughters="true" visible="true"/>
<vis name="FFPreReadoutVis" ref="FFTrackerSurfaceVis" showDaughters="true" visible="true"/>
<comment>
HCal Vis
</comment>
<vis name="HcalVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalBarrelVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalBarrelStaveVis" ref="AnlBlue" showDaughters="false" visible="true"/>
<vis name="HcalBarrelLayerVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalEndcapVis" ref="AnlBlue" showDaughters="false" visible="true"/>
<vis name="HcalEndcapLayerVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalSensorVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="HcalAbsorberVis" ref="AnlGray" showDaughters="true" visible="true"/>
<comment>
Passive steel for flux return
</comment>
<vis name="PassiveSteelVis" ref="AnlViolet" showDaughters="false" visible="true"/>
<comment>
Solenoid
</comment>
<vis name="SolenoidCoilVis" ref="AnlLight_Gray" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="SolenoidCryostatVis" ref="AnlGray" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="SolenoidYokeVis" ref="AnlLight_Gray" showDaughters="false" visible="true" lineStyle="solid" drawingStyle="solid" />
<comment>
PID Detectors
</comment>
<vis name="RICHVis" ref="AnlTeal" showDaughters="true"/>
<vis name="DIRCVis" ref="AnlTeal" showDaughters="true" visible="true"/>
<vis name="DIRCLayerVis" ref="AnlTeal" showDaughters="false" visible="true"/>
<vis name="DIRCModuleVis" ref="AnlTeal" showDaughters="true" visible="true"/>
<vis name="DIRCSupportVis" ref="AnlTeal" showDaughters="true" visible="true"/>
<vis name="DIRCFrameVis" ref="AnlOrange" showDaughters="true" visible="true"/>
<vis name="DIRCBarVis" ref="AnlTeal" showDaughters="true" visible="true"/>
<comment>
Beam line with magnets
</comment>
<vis name="BeamPipeVis" ref="AnlLightGray" showDaughters="true" visible="true"/>
<vis name="FFMagnetVis" ref="AnlGreen" showDaughters="true" visible="true"/>
<vis name="FFMagnetCoilVis" ref="AnlRed" showDaughters="true" visible="true"/>
<comment>
ZDC visualization
</comment>
<vis name="ffi_ZDC_ECAL_Vis" ref="AnlGreen" showDaughters="true" visible="true"/>
<vis name="ffi_ZDC_ECAL_module_Vis" ref="AnlRed" showDaughters="false" visible="true"/>
<vis name="ffi_ZDC_HCAL_Vis" ref="AnlBlue" showDaughters="true" visible="true"/>
<comment>
PID visualization
</comment>
<vis name="DRICH_vessel_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="DRICH_gas_vis" ref="AnlLightGray" alpha="0.2" showDaughters="true" visible="true" />
<vis name="DRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
<vis name="DRICH_filter_vis" alpha="1.0" r="1.0" g="1.0" b="0.0" showDaughters="true" visible="true" />
<vis name="DRICH_mirror_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="DRICH_sensor_vis" ref="AnlGreen" showDaughters="true" visible="true" />
<vis name="PFRICH_sensor_vis" ref="AnlGreen" showDaughters="true" visible="true" /> <!-- invisible, to speedup graphics -->
<vis name="MRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
<vis name="MRICH_frame_vis" ref="AnlGold" showDaughters="true" visible="true" />
<vis name="MRICH_lens_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="MRICH_mirror_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="RICHServiceVis" ref="AnlGray" showDaughters="true" visible="true" />
<comment>
Deprecated values used for IP6 vis
</comment>
<vis name="GreenVis" ref="AnlGreen" showDaughters="true" visible="true"/>
<vis name="RedVis" ref="AnlRed" showDaughters="true" visible="true"/>
<vis name="RPVis" ref="AnlDelta_Red" showDaughters="true" visible="true"/>
<vis name="RPLayerVis" ref="AnlTeal" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
<vis name="BlueVis" ref="AnlBlue" showDaughters="true" visible="true"/>
<vis name="OrangeVis" ref="AnlOrange" showDaughters="true" visible="true"/>
<vis name="BlueGreenVis" alpha="0.5" r= "0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="PurpleVis" alpha="1.0" r= "1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="DoubleRedG" alpha="0.5" r= "2.0" g=".10" b="0.0" showDaughters="true" visible="true"/>
<vis name="RBG015" alpha="0.5" r= "0.0" g=".2" b="1.0" showDaughters="true" visible="true"/>
<vis name="RBG510" alpha="0.5" r= "1.0" g=".2" b="0.0" showDaughters="true" visible="true"/>
<vis name="RBG" alpha="0.5" r= "1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="GrayVis" alpha="1.0" r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/>
<vis name="AnlRed_1" alpha="0.5" r="205/256" g="32/256" b="44/256"/>
</display>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
<!-- vessel (=snout+tank) geometry -->
<constant name="DRICH_zmin" value="ForwardRICHRegion_zmin"/> <!-- vessel front -->
<constant name="DRICH_Length" value="ForwardRICHRegion_length"/> <!-- overall vessel length (including snout) -->
<constant name="DRICH_rmin0" value="ForwardRICHRegion_zmin * ForwardRICHRegion_tan1"/> <!-- bore radius at dRICh vessel frontplane -->
<constant name="DRICH_rmin1" value="(ForwardRICHRegion_zmin + ForwardRICHRegion_length) * ForwardRICHRegion_tan2"/> <!-- bore radius at dRICh vessel backplane -->
<constant name="DRICH_wall_thickness" value="0.5*cm"/> <!-- thickness of radial walls -->
<constant name="DRICH_window_thickness" value="0.1*cm"/> <!-- thickness of entrance and exit walls -->
<!-- tank geometry: cylinder, holding the majority of detector components -->
<constant name="DRICH_rmax2" value="HcalBarrel_rmin-10*cm"/> <!-- cylinder radius, near maximal to fit HCal barrel inner polygon -->
<!-- snout geometry: cone with front radius rmax0 and back radius of rmax1 -->
<constant name="DRICH_SnoutLength" value="4.0*cm"/>
<constant name="DRICH_SnoutSlope" value="DRICH_rmax2 / (DRICH_zmin + DRICH_Length)"/>
<constant name="DRICH_rmax0" value="DRICH_SnoutSlope * DRICH_zmin"/>
<constant name="DRICH_rmax1" value="DRICH_SnoutSlope * ( DRICH_zmin + DRICH_SnoutLength)"/>
<!-- additional parameters -->
<constant name="DRICH_aerogel_thickness" value="4.0*cm"/> <!-- aerogel thickness -->
<constant name="DRICH_sensor_size" value="48.0*mm"/> <!-- sensor side length -->
<constant name="DRICH_sensor_thickness" value="35.0*mm"/> <!-- sensor thickness -->
<constant name="DRICH_num_px" value="16"/> <!-- number of pixels along one side of the sensor -->
<!-- debugging switches -->
<comment>
- `DRICH_debug_optics`: 1 = all components become vacuum, except for mirrors; test opticalphotons from IP
2 = all components become vacuum, except for mirrors and `gasvol`, test charged particles from IP
0 = off
- `DRICH_debug_mirror`: 1 = draw full mirror shape for single sector; 0 = off
- `DRICH_debug_sensors`: 1 = draw full sensor sphere for a single sector; 0 = off
</comment>
<constant name="DRICH_debug_optics" value="0"/>
<constant name="DRICH_debug_mirror" value="0"/>
<constant name="DRICH_debug_sensors" value="0"/>
</define>
<detectors>
<!-- /detectors/detector -->
<documentation level="10">
### dRICh: ***d***ual ***R***ing ***I***maging ***Ch***erenkov detector
</documentation>
<detector
id="ForwardRICH_ID"
name="DRICH"
type="athena_DRICH"
readout="DRICHHits"
gas="C2F6_DRICH"
material="Aluminum"
vis_vessel="DRICH_vessel_vis"
vis_gas="DRICH_gas_vis"
debug_optics="DRICH_debug_optics"
>
<!-- /detectors/detector/dimensions -->
<documentation level="10">
#### Vessel
- the dRICh vessel is composed of two parts:
- tank: cylindrical region containing most of the detector components
- snout: conical region at the front of the vessel, containing the aerogel
- dimensions:
- `zmin`: z-position of vessel front plane
- `length`: overall z-length of the full vessel
- `snout_length`: length of cone-shaped snout region, housing aerogel
- `rmin0` and `rmin1`: bore radius at front plane and back plane, respectively
- `rmax0` and `rmax1`: outer radius of snout at front plane and snout-back (tank-front) plane, respectively
- `rmax2`: outer radius of tank, the main cylindrical vessel volume
- `nsectors`: number of azimuthal sectors
- `wall_thickness`: thickness of radial walls
- `window_thickness`: thickness of entrance and exit disks
</documentation>
<dimensions
zmin="DRICH_zmin"
length="DRICH_Length"
snout_length="DRICH_SnoutLength"
rmin0="DRICH_rmin0"
rmin1="DRICH_rmin1"
rmax0="DRICH_rmax0"
rmax1="DRICH_rmax1"
rmax2="DRICH_rmax2"
nsectors="6"
wall_thickness="DRICH_wall_thickness"
window_thickness="DRICH_window_thickness"
/>
<!-- /detectors/detector/radiator -->
<documentation level="10">
#### Radiator
- radiator is defined in a wedge of azimuthal space, composed of aerogel and a
filter; the filter is applied to the back of the aerogel, so that it separates
the aerogel and gas radiators
- dimensions:
- `frontplane`: front of the aerogel, w.r.t. front plane of the vessel envelope
- `rmin` and `rmax`: inner and outer radius (at the front plane; radial bounds are conical)
- `phiw`: azimuthal width of wedge
- `thickness`: radiator thickness, defined separately for aerogel and filter
- `pitch`: controls the angle of the radiator (0=vertical)
</documentation>
<radiator
rmin="DRICH_rmin0 + DRICH_wall_thickness + 0.2*cm"
rmax="DRICH_rmax0 - DRICH_wall_thickness - 0.2*cm"
phiw="60*degree"
frontplane="DRICH_window_thickness + 0.5*DRICH_aerogel_thickness"
pitch="0*degree"
>
<aerogel
material="Aerogel_DRICH"
vis="DRICH_aerogel_vis"
thickness="DRICH_aerogel_thickness"
/>
<filter
material="Acrylic_DRICH"
vis="DRICH_filter_vis"
thickness="0.3*mm"
/>
</radiator>
<!-- /detectors/detector/mirror -->
<documentation level="10">
#### Spherical mirror
- spherical mirrors are built from spherical patches, and positioned near the
vessel back plane, separately for each sector
- dimensions:
- `backplane`: the position of the maximum z-plane intersected by the sphere,
w.r.t. the back plane of vessel envelope
- `rmin` and `rmax`: polar angle boundaries
- `phiw`: azimuthal width of one sector
- `thickness` is the radial thickness of the mirror; note that `backplane` is given for the
reflective mirror surface, the inner radius of the sphere
- `focus_tune*` are tuning parameters for the focal region:
- `focus_tune_z` and `focus_tune_x` will move the focal region, with respect
to the sensor sphere center (i.e., set both to zero for focus at the sensor sphere center
(ignoring spherical aberrations effects))
- other settings:
- `debug`: set to 1 so draw reference sphere instead, view with y-clipping
</documentation>
<mirror
material="Acrylic_DRICH"
surface="MirrorSurface_DRICH"
vis="DRICH_mirror_vis"
backplane="DRICH_window_thickness + 1.0*cm"
rmin="DRICH_rmin1 + DRICH_wall_thickness - 1.0*cm"
rmax="DRICH_rmax2 - DRICH_wall_thickness - 1.0*cm"
phiw="59.5*degree"
thickness="0.2*cm"
focus_tune_x="30.0*cm"
focus_tune_z="-40.0*cm"
debug="DRICH_debug_mirror"
/>
<!-- /detectors/detector/sensors -->
<documentation level="10">
#### Sensors
</documentation>
<sensors>
<!-- /detectors/detector/sensors/module -->
<documentation level="10">
##### Sensor module
- based on [Hamamatsu H13700 MAPMT](https://www.hamamatsu.com/us/en/product/type/H13700/index.html):
- not ideal for a magnetic field, SiPM matrix would be better
- effective area: 48.5x48.5 mm
- enclosure size: 52x52 mm
- 16x16 channel matrix (cf. readout segmentation below)
- pixel size: 3x3 mm
- dimensions:
- `side`: side length of the square module
- `thickness`: thickness of the sensor module
- `gap`: provides room between the squares, to help prevent them from overlapping
- note: the value of `side` will determine how many sensors there are, since the
sensor placement algorithm will try to place as many as it can in the specified
spherical patch below
</documentation>
<module
material="Silicon"
surface="SensorSurface_DRICH"
vis="DRICH_sensor_vis"
side="DRICH_sensor_size"
thickness="DRICH_sensor_thickness"
gap="0.5*(52-48)*mm + 2*mm"
/>
<!-- /detectors/detector/sensors/{sphere,sphericalpatch} -->
<documentation level="10">
##### Sensor sphere
- sensors will be placed on a sphere, using a "disco ball" tiling algorithm; each
sector has its own sensor sphere
- sphere dimensions:
- `centerx` and `centerz`: sphere center, defined w.r.t. vessel front plane,
for the sector on +x axis
- `radius`: radius of the sensor sphere
- other settings:
- `debug`: set to 1 so draw reference sphere instead, view with y-clipping
- sensors will be limited to a patch of the sphere
- patch dimensions:
- `phiw`: defines half the angle between the azimuthal boundaries
- `rmin` and `rmax`: radial cut boundaries
- `zmin`: z-plane cut
</documentation>
<sphere
centerz="-55.0 * cm"
centerx="DRICH_rmax2 - 35.0*cm"
radius="85.0 * cm"
debug="DRICH_debug_sensors"
/>
<sphericalpatch
phiw="18*degree"
rmin="DRICH_rmax1 + 5.0*cm"
rmax="DRICH_rmax2 - 5.0*cm"
zmin="DRICH_SnoutLength + 5.0*cm"
/>
</sensors>
</detector>
</detectors>
<documentation level="10">
#### Readout
- segmentation: square matrix of pixels
- `grid_size_x,y`: size of each sensor, but note we must divide sensor size
by 1 less than the number of pixels, to account for fenceposting
- `offset_x,y`: specified such that the `x` and `y` indicators are unsigned
- indicators and `cellID` bits:
| indicator | offset | length |
|-----------|--------|--------|
| dRICh ID | 0 | 8 |
| sector | 8 | 3 |
| sensor | 11 | 12 |
| x pixel | 23 | 16 |
| y pixel | 39 | 16 |
</documentation>
<readouts>
<readout name="DRICHHits">
<segmentation
type="CartesianGridXY"
grid_size_x="DRICH_sensor_size/(DRICH_num_px-1)"
grid_size_y="DRICH_sensor_size/(DRICH_num_px-1)"
offset_x="-DRICH_sensor_size/2.0"
offset_y="-DRICH_sensor_size/2.0"
/>
<id>system:8,sector:3,module:12,x:23:16,y:16</id>
</readout>
</readouts>
</lccdd>
<lccdd>
<define>
<constant name="CrystalEndcap_rmin" value="VertexTrackerInnerRadius"/>
<constant name="CrystalEndcap_rmax" value="EcalEndcapN_rmin"/>
<constant name="CrystalBox_x_length" value="20.0*mm"/>
<constant name="CrystalBox_y_length" value="20.0*mm"/>
<constant name="CrystalBox_z_length" value="200.0*mm"/>
<constant name="CrystalBox_offset" value="0.000001*mm"/>
<constant name="CrystalEndcap_x_pos" value="0.0*m"/>
<constant name="CrystalEndcap_y_pos" value="0.0*m"/>
<constant name="CrystalEndcap_z_pos" value="-EcalEndcapN_zmin"/>
</define>
<limits>
</limits>
<regions>
</regions>
<!-- Common Generic visualization attributes -->
<comment>Common Generic visualization attributes</comment>
<display>
</display>
<define>
</define>
<documentation level="10">
### Ecal configuration
</documentation>
<!--include ref="ecal_forward_scfi.xml"/-->
<include ref="ecal_forward_homogenous.xml"/>
<detectors>
<comment>
---------------------
Barrel EM Calorimeter
---------------------
A layered EM calorimeter with tungsten and silicon (or scintillator) strips
</comment>
<detector
id="ECalBarrel_ID"
name="EcalBarrel"
type="refdet_EcalBarrel"
readout="EcalBarrelHits"
calorimeterType="EM_BARREL"
offset="EcalBarrel_offset"
>
<dimensions
numsides="CaloSides"
rmin="EcalBarrel_rmin"
z="EcalBarrelLength"/>
<staves vis="EcalBarrelVis"/>
<layer repeat="EcalBarrelLayer1_NRepeat">
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalBarrelLayer2_NRepeat">
<slice material="TungstenDens24" thickness="EcalThinTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalBarrelLayer3_NRepeat">
<slice material="TungstenDens24" thickness="EcalThickTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
</detector>
<comment>
------------------------------------------
Forward (Positive Z) Endcap EM Calorimeter
------------------------------------------
A layered EM calorimeter with tungsten and silicon (or scintillator) strips
</comment>
<detector id="ECalEndcapP_ID"
name="EcalEndcapP"
reflect="false"
type="refdet_PolyhedraEndcapCalorimeter2"
readout="EcalEndcapHits"
vis="EcalEndcapVis"
calorimeterType="EM_ENDCAP" >
<position x="0" y="0" z="0"/>
<dimensions
numsides="CaloSides"
zmin="EcalEndcapP_zmin"
rmin="EcalEndcapP_rmin"
rmax="EcalBarrel_rmax " />
<layer repeat="EcalEndcapPLayer1_NRepeat">
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapPLayer2_NRepeat">
<slice material="TungstenDens24" thickness="EcalThinTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapPLayer3_NRepeat">
<slice material="TungstenDens24" thickness="EcalThickTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
</detector>
<comment>
-------------------------------
Backwards Endcap EM Calorimeter
-------------------------------
A layered EM calorimeter with tungsten and silicon (or scintillator) strips
</comment>
<detector id="ECalEndcapN_ID"
name="EcalEndcapN"
type="refdet_PolyhedraEndcapCalorimeter2"
reflect="true"
readout="EcalEndcapHits"
vis="EcalEndcapVis"
calorimeterType="EM_ENDCAP">
<position x="0" y="0" z="0"/>
<dimensions
numsides="CaloSides"
zmin="EcalEndcapN_zmin"
rmin="EcalEndcapN_rmin"
rmax="EcalBarrel_rmax " />
<layer repeat="EcalEndcapPLayer1_NRepeat">
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapPLayer2_NRepeat">
<slice material="TungstenDens24" thickness="EcalThinTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapPLayer3_NRepeat">
<slice material="TungstenDens24" thickness="EcalThickTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
</detector>
</detectors>
<!-- Definition of the readout segmentation/definition -->
<readouts>
<!--
<readout name="PlaneTrackerHits">
<segmentation type="CartesianGridXY" grid_size_x="20.0*mm" grid_size_y="20.0*mm" />
<id>system:5,module:4,x:32:-16,y:-16</id>
</readout>
<readout name="CrystalEcalHits">
<segmentation type="CartesianGridXY" grid_size_x="CrystalBox_x_length" grid_size_y="CrystalBox_y_length" />
<id>system:8,sector:4,module:20,x:48:-8,y:-8</id>
</readout>
-->
<readout name="EcalBarrelHits">
<segmentation type="CartesianGridXY" grid_size_x="3.5 * mm" grid_size_y="3.5 * mm"/>
<id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
</readout>
<readout name="EcalEndcapHits">
<segmentation type="CartesianGridXY" grid_size_x="3.5 * mm" grid_size_y="3.5 * mm"/>
<id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
</readout>
</readouts>
<include ref="ecal_backward_hybrid.xml"/>
<plugins>
</plugins>
<include ref="ecal_barrel_interlayers.xml"/>
</lccdd>
<lccdd>
<define>
<comment>
Transition area.
The idea behind this parametrization is that:
one glass module with its wrap is always
a size of 4 crystal modules with its wraps.
Then the transition area (where glass meets crystals) has no gaps
+----------------+----------------+
| +----+ +----+ | +----------+ |
| | | | | | | | |
| +----+ +----+ | | | |
| +----+ +----+ | | | |
| | | | | | | | |
| +----+ +----+ | +----------+ |
+----------------+----------------+
crystal glass
This implies that:
GlassModule_wrap = 2*CrystalModule_wrap
GlassModule_sx = 2*CrystalModule_sx
GlassModule_sy = 2*CrystalModule_sy
</comment>
<constant name="CrystalModule_width" value="20.00*mm"/>
<constant name="CrystalModule_length" value="200.00*mm"/>
<constant name="CrystalModule_wrap" value="0.50*mm"/>
<constant name="CrystalModule_z0" value="0.0*cm"/>
<constant name="GlassModule_width" value="2*CrystalModule_width"/>
<constant name="GlassModule_length" value="55.00*cm"/>
<constant name="GlassModule_wrap" value="2*CrystalModule_wrap"/>
<constant name="GlassModule_z0" value="0.0*cm"/>
<constant name="EcalEndcapNIonCutout_dphi" value="30*degree"/>
<constant name="EcalEndcapN_thickness" value="GlassModule_length"/>
<constant name="EcalEndcapN_z0" value="-EcalEndcapN_zmin - EcalEndcapN_thickness/2"/>
<constant name="EcalEndcapNCrystal_rmax" value="40*cm"/>
<constant name="CrystalModule_distance" value="CrystalModule_width + CrystalModule_wrap"/>
<constant name="GlassModule_distance" value="GlassModule_width + GlassModule_wrap"/>
</define>
<display>
<vis name="HybridEcalOuterVis" alpha="0.5" r= "0.3" g="0.3" b="0.3" showDaughters="true" visible="true"/>
</display>
<detectors>
<documentation level="10">
#### Backwards Endcap EM Calorimeter
Backwards Endcap EM Calorimeter, placements generated by script
</documentation>
<detector id="ECalEndcapN_ID" name="EcalEndcapN" type="HybridCalorimeter" readout="EcalEndcapNHits">
<position x="0" y="0" z="EcalEndcapN_z0"/>
<rotation x="0" y="0" z="0"/>
</detector>
</detectors>
<readouts>
<comment>Effectively no segmentation, the segmentation is used to provide cell dimension info</comment>
<readout name="EcalEndcapNHits">
<segmentation type="MultiSegmentation" key="sector">
<segmentation name="CrystalSeg" key_value="1" type="CartesianGridXY" grid_size_x="CrystalModule_distance" grid_size_y="CrystalModule_distance"/>
<segmentation name="GlassSeg" key_value="2" type="CartesianGridXY" grid_size_x="GlassModule_distance" grid_size_y="GlassModule_distance"/>
</segmentation>
<id>system:8,sector:4,module:20,x:32:-16,y:-16</id>
</readout>
</readouts>
</lccdd>
<lccdd>
<display>
</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="10.0*mm"/>
<constant name="EcalBarrel_TungstenThickness" value="4.0*mm"/>
<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_ReadoutLayerThickness"
value="EcalBarrel_SiliconThickness
+ EcalBarrel_ElectronicsThickness
+ EcalBarrel_CopperThickness
+ EcalBarrel_KaptonThickness
+ EcalBarrel_EpoxyThickness
+ EcalBarrel_CarbonThickness
+ EcalBarrel_LayerSpacing"/>
<constant name="EcalBarrel_ReadoutLayerNumber" value="floor(EcalBarrel_AvailThickness/EcalBarrel_ReadoutLayerThickness)"/>
<constant name="EcalBarrelLayers_nMax" value="20"/>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<detectors>
<documentation>
### Barrel EM Calorimeter
A layered EM calorimeter with tungsten and silicon (AstroPix)
</documentation>
<detector
id="ECalBarrel_ID"
name="EcalBarrel"
type="athena_EcalBarrel"
readout="EcalBarrelHits"
calorimeterType="EM_BARREL"
vis="EcalBarrelEnvelopeVis"
offset="EcalBarrel_offset">
<dimensions numsides="EcalBarrel_ModRepeat"
rmin="EcalBarrel_rmin"
z="EcalBarrel_length"/>
<staves vis="EcalBarrelStaveVis">
<support inside="true" material="Steel235" vis="EcalBarrelSupportVis"
thickness="EcalBarrel_Support_thickness"
n_beams="3" grid_size="25.0*cm" >
</support>
</staves>
<layer repeat="min(EcalBarrel_ReadoutLayerNumber, EcalBarrelLayers_nMax)" vis="EcalBarrelLayerVis">
<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"/>
<slice material="TungstenDens24" thickness="EcalBarrel_TungstenThickness" vis="EcalBarrelSliceVis"/>
<slice material="Air" thickness="EcalBarrel_LayerSpacing - EcalBarrel_TungstenThickness" vis="EcalBarrelSliceVis"/>
</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,barrel:3,module:4,layer:10,slice:5,x:32:-16,y:-16</id>
</readout>
</readouts>
</lccdd>