Back to home page

EIC code displayed by LXR

 
 

    


Warning, /epic/compact/definitions.xml is written in an unsupported language. File is not indexed.

0001 <!-- SPDX-License-Identifier: LGPL-3.0-or-later -->
0002 <!-- Copyright (C) 2022 Whitney Armstrong, Sylvester Joosten, Wouter Deconinck, Zhenyu Ye -->
0003 
0004   <define>
0005     <constant name="Pi" value="3.14159265359"/>
0006     <constant name="mil" value="0.0254*mm"/>
0007     <constant name="inch" value="2.54*cm"/>
0008 
0009     <documentation>
0010       ## World volume
0011     </documentation>
0012     <constant name="world_side" value="30*m"/>
0013     <constant name="world_dx" value="world_side"/>
0014     <constant name="world_dy" value="world_side"/>
0015     <constant name="world_dz" value="100*m"/>
0016 
0017     <documentation>
0018       ## Detector IDs
0019 
0020       ### Note about ACTS tracking geometry construction
0021 
0022 The tracking surfaces need to be structured in a barrel + endcapP + endcapN where
0023 endcapP/endcapN are the endcaps at positive/negative z values.
0024 See https://acts.readthedocs.io/en/latest/plugins/dd4hep.html for more details.
0025 
0026 The tracking geometry needs to be constructed from cylinders from the inside out. For this reason
0027 each layer needs its own subsystem assembly. This increases the number of top level system IDs.
0028 For example the silicon tracker needs 3 IDs for each area (endcap+barrel+endcap) and a subassembly for each
0029 layer. Therefore it needs a minimum of 20 IDs. Therefore we will allocate blocks of ~25 for each major subsystem.
0030 Note, future improvements will likely include a more sophisticated ACTS-dd4hep plugin,
0031 eliminating the need for so many system IDs at construction time.
0032 
0033 This barrel/endcap structure needs IDs to be in increasing order going outward.
0034 The space of IDs for the subassemblies starts at (Subassembly_ID*10+101).
0035 
0036 The unused IDs below are saved for future use.
0037     </documentation>
0038 
0039     <documentation>
0040 
0041       ### Allocated IDs
0042 
0043       #### (1-9) Reserved IDs
0044 
0045       - Unused IDs: 1-9
0046 
0047       #### (10-24) Interaction region beamline
0048 
0049       - Beampipe ID : 10-11
0050       - Unused   IDs: 12-24
0051 
0052     </documentation>
0053     <constant name="BeamPipe_ID" value="10"/>
0054     <constant name="BeamPipeB0_ID" value="11"/>
0055 
0056 
0057     <documentation>
0058       #### (25-39) Silicon Vertex Tracker
0059 
0060        - Vertex subassemblies: 25-27
0061        - Vertex barrel and endcaps: 28-30
0062        - Unused: 28-30
0063     </documentation>
0064     <constant name="VertexSubAssembly_0_ID"   value="25"/>
0065     <constant name="VertexSubAssembly_1_ID"   value="26"/>
0066     <constant name="VertexSubAssembly_2_ID"   value="27"/>
0067 
0068     <constant name="VertexBarrel_0_ID"          value="31"/>
0069     <constant name="VertexBarrel_1_ID"          value="32"/>
0070     <constant name="VertexBarrel_2_ID"          value="33"/>
0071     <constant name="VertexEndcapN_0_ID"         value="34"/>
0072     <constant name="VertexEndcapN_1_ID"         value="35"/>
0073     <constant name="VertexEndcapN_2_ID"         value="36"/>
0074     <constant name="VertexEndcapP_0_ID"         value="37"/>
0075     <constant name="VertexEndcapP_1_ID"         value="38"/>
0076     <constant name="VertexEndcapP_2_ID"         value="39"/>
0077 
0078     <documentation>
0079        - Unused IDs: 31-39
0080     </documentation>
0081 
0082     <documentation>
0083       #### (40-84) Tracker System
0084 
0085       - Tracker subassemblies: 40-45
0086       - Composite tracker systems: 46-57
0087       - Tracker detectors: 56-84
0088       Unused IDs: (77-79)
0089 
0090     </documentation>
0091 
0092     <comment>
0093       SubAssembly IDs should increment from inner to outer
0094       (it's not the definition order but rather the ID order that's used
0095       for construction order in the ACTS geometry conversion)
0096     </comment>
0097     <constant name="TrackerSubAssembly_0_ID"      value="40"/>
0098     <constant name="TrackerSubAssembly_1_ID"      value="41"/>
0099     <constant name="TrackerSubAssembly_2_ID"      value="42"/>
0100     <constant name="TrackerSubAssembly_3_ID"      value="43"/>
0101     <constant name="TrackerSubAssembly_4_ID"      value="44"/>
0102     <constant name="TrackerSubAssembly_5_ID"      value="45"/>
0103     <constant name="TrackerSubAssembly_6_ID"      value="46"/>
0104     <constant name="TrackerSubAssembly_7_ID"      value="47"/>
0105     <constant name="TrackerSubAssembly_8_ID"      value="48"/>
0106     <constant name="TrackerSubAssembly_9_ID"      value="49"/>
0107 
0108     <constant name="SVT_IB_Support_0_ID"          value="50"/>
0109     <constant name="SVT_IB_Support_1_ID"          value="51"/>
0110     <constant name="SVT_IB_Support_2_ID"          value="52"/>
0111     <constant name="SVT_IB_Support_3_ID"          value="53"/>
0112 
0113     <constant name="TrackerBarrel_0_ID"           value="59"/>
0114     <constant name="TrackerBarrel_1_ID"           value="60"/>
0115     <constant name="TrackerBarrel_2_ID"           value="61"/>
0116     <constant name="TrackerBarrel_3_ID"           value="62"/>
0117     <constant name="TrackerBarrel_4_ID"           value="63"/>
0118     <constant name="TrackerBarrel_5_ID"           value="64"/>
0119     <constant name="TrackerBarrel_6_ID"           value="65"/>
0120     <constant name="TrackerBarrel_7_ID"           value="66"/>
0121     <constant name="TrackerBarrel_8_ID"           value="67"/>
0122     <constant name="TrackerEndcapN_0_ID"          value="68"/>
0123     <constant name="TrackerEndcapN_1_ID"          value="69"/>
0124     <constant name="TrackerEndcapN_2_ID"          value="70"/>
0125     <constant name="TrackerEndcapN_3_ID"          value="71"/>
0126     <constant name="TrackerEndcapN_4_ID"          value="72"/>
0127     <constant name="TrackerEndcapN_5_ID"          value="73"/>
0128     <constant name="TrackerEndcapN_6_ID"          value="74"/>
0129     <constant name="TrackerEndcapN_7_ID"          value="75"/>
0130     <constant name="TrackerEndcapN_8_ID"          value="76"/>
0131     <constant name="TrackerEndcapP_0_ID"          value="77"/>
0132     <constant name="TrackerEndcapP_1_ID"          value="78"/>
0133     <constant name="TrackerEndcapP_2_ID"          value="79"/>
0134     <constant name="TrackerEndcapP_3_ID"          value="80"/>
0135     <constant name="TrackerEndcapP_4_ID"          value="81"/>
0136     <constant name="TrackerEndcapP_5_ID"          value="82"/>
0137     <constant name="TrackerEndcapP_6_ID"          value="83"/>
0138     <constant name="TrackerSupport_0_ID"          value="84"/>
0139     <constant name="TrackerSupport_1_ID"          value="85"/>
0140 
0141     <documentation>
0142     #### (86-99) Reserved IDs
0143 
0144     - Unused IDs: 86-89
0145     TBD
0146     </documentation>
0147     <documentation>
0148     #### (90-99) Barrel PID IDs
0149 
0150     - DIRC subsystem       ID: 90
0151     - Barrel TRD subsystem ID: 91
0152     - Barrel TOF subsystem ID: 92
0153     - Unused IDs: 93-99
0154     </documentation>
0155     <constant name="BarrelDIRC_ID" value="90"/>
0156     <constant name="BarrelTRD_ID"  value="91"/>
0157     <constant name="BarrelTOF_ID"  value="92"/>
0158     <constant name="TOFSubAssembly_ID" value="93"/>
0159 
0160     <documentation>
0161       #### (100-109) Electromagnetic Calorimeter
0162 
0163       Ecal     subsystem  ID:  100
0164       Barrel   subassembly ID: 101
0165       EndcapP  subassembly ID: 102
0166       EndcapN  subassembly ID: 103
0167       Crystal  subassembly ID: 104
0168       Barrel2  subassembly ID: 105
0169 
0170       Unused IDs: 107-109
0171 
0172     </documentation>
0173     <constant name="ECalSubAssembly_ID"   value="100"/><!-- DEPRECATED -->
0174     <constant name="EcalSubAssembly_ID"   value="100"/>
0175     <constant name="ECalBarrel_ID"        value="101"/><!-- DEPRECATED -->
0176     <constant name="EcalBarrel_ID"        value="101"/>
0177     <constant name="ECalEndcapP_ID"       value="102"/><!-- DEPRECATED -->
0178     <constant name="EcalEndcapP_ID"       value="102"/>
0179     <constant name="ECalEndcapN_ID"       value="103"/><!-- DEPRECATED -->
0180     <constant name="EcalEndcapN_ID"       value="103"/>
0181     <constant name="CrystalEndcap_ID"     value="104"/><!-- UNUSED -->
0182     <constant name="ECalBarrel2_ID"       value="105"/><!-- DEPRECATED -->
0183     <constant name="EcalBarrel2_ID"       value="105"/>
0184     <constant name="ECalEndcapPInsert_ID" value="106"/><!-- DEPRECATED -->
0185     <constant name="EcalEndcapPInsert_ID" value="106"/>
0186 
0187     <documentation>
0188       #### (110-119) Hadronic Calorimeter
0189 
0190       - Hcal     subsystem  ID:  110
0191       - Barrel   subassembly ID: 111
0192       - EndcapP  subassembly ID: 112
0193       - EndcapN  subassembly ID: 113
0194 
0195       - Unused IDs: 117-119
0196     </documentation>
0197     <constant name="HCalSubAssembly_ID" value="110"/><!-- UNUSED -->
0198     <constant name="HCalBarrel_ID"      value="111"/><!-- DEPRECATED -->
0199     <constant name="HcalBarrel_ID"      value="111"/>
0200     <constant name="HCalEndcapN_ID"     value="113"/><!-- DEPRECATED -->
0201     <constant name="HcalEndcapN_ID"     value="113"/>
0202     <constant name="PassiveSteelRingEndcapP_ID" value="114"/>
0203     <constant name="HCalEndcapPInsert_ID" value="115"/><!-- DEPRECATED -->
0204     <constant name="HcalEndcapPInsert_ID" value="115"/>
0205     <constant name="LFHCAL_ID"     value="116"/>
0206     <documentation>
0207       #### (120-129) (near) Forward reserved
0208 
0209       - Forward RICH    ID: 120
0210       - Forward TRD     ID: 121
0211       - Forward TOF     ID: 122
0212       - Unused IDs: 124-129
0213     </documentation>
0214     <constant name="ForwardRICH_ID"     value="120"/>
0215     <constant name="ForwardTRD_ID"      value="121"/>
0216     <constant name="ForwardTOF_ID"      value="122"/>
0217 
0218     <documentation>
0219       #### (130-139) Backward reserved
0220 
0221       - Modular RICH ID: 130
0222       - Backward RICH ID: 131
0223       - Backward TOD ID: 132
0224       - Unused IDs: 133-139
0225 
0226     </documentation>
0227     <constant name="BackwardRICH_ID"    value="131"/>
0228     <constant name="BackwardTOF_ID"     value="132"/>
0229 
0230     <documentation>
0231       #### (140-149) Central Magnet
0232 
0233       - Solenoid         ID: 140
0234       - Solenoid support ID: 141
0235       - Solenoid Yoke    ID: 142
0236 
0237       - Unused IDs: 143-149
0238 
0239     </documentation>
0240     <constant name="Solenoid_ID"             value="140"/>
0241     <constant name="SolenoidSupport_ID"      value="141"/>
0242     <constant name="SolenoidYoke_ID"         value="142"/>
0243 
0244     <documentation>
0245       #### (150-169) Far Forward Detectors
0246 
0247       - Forward Roman Pot     ID: 150
0248       - Forward B0 Tracker    ID: 151
0249       - Zero Degree Cal. Ecal ID: 160
0250       - Zero Degree Cal. Hcal ID: 161
0251 
0252       TODO: A lot of the repeated ID's below should be pushed into a single detector
0253     </documentation>
0254     <constant name="B0Tracker_Station_1_ID"   value="150"/>
0255     <constant name="B0Tracker_Station_2_ID"   value="151"/>
0256     <constant name="B0Tracker_Station_3_ID"   value="152"/>
0257     <constant name="B0Tracker_Station_4_ID"   value="153"/>
0258     <constant name="B0Preshower_Station_1_ID" value="154"/>
0259     <constant name="ForwardRomanPot_Station_1_ID"    value="155"/>
0260     <constant name="ForwardRomanPot_Station_2_ID"    value="156"/>
0261     <constant name="B0TrackerCompanion_ID"           value="157"/>
0262     <constant name="B0TrackerSubAssembly_ID"         value="158"/>
0263     <constant name="ForwardOffMTracker_station_1_ID" value="159"/>
0264     <constant name="ForwardOffMTracker_station_2_ID" value="160"/>
0265     <constant name="ForwardOffMTracker_station_3_ID" value="161"/>
0266     <constant name="ForwardOffMTracker_station_4_ID" value="162"/>
0267 
0268     <constant name="ZDC_1stSilicon_ID"           value="163"/>
0269     <constant name="ZDC_Crystal_ID"              value="164"/>
0270     <constant name="ZDC_WSi_ID"                  value="165"/>
0271     <constant name="ZDC_PbSi_ID"                 value="166"/>
0272     <constant name="ZDC_PbSci_ID"                value="167"/>
0273     <!--
0274     <constant name="ZDCEcal_ID"              value="163"/>
0275     <constant name="ZDCHcal_ID"              value="164"/>
0276     -->
0277     <constant name="HcalFarForwardZDC_SiPMonTile_ID"                value="167"/>
0278 
0279     <constant name="VacuumMagnetElement_1_ID"        value="168"/>
0280     <constant name="B0ECal_ID" value="169"/>
0281 
0282     <documentation>
0283       #### (170-189) Far Forward Beamline Magnets
0284     </documentation>
0285     <constant name="B0PF_ID"  value="170"/>
0286     <constant name="B0APF_ID" value="171"/>
0287     <constant name="Q1APF_ID" value="172"/>
0288     <constant name="Q1BPF_ID" value="173"/>
0289     <constant name="Q2PF_ID"  value="174"/>
0290     <constant name="B1PF_ID"  value="175"/>
0291     <constant name="B1APF_ID" value="176"/>
0292     <constant name="B2PF_ID"  value="177"/>
0293     <constant name="Q0EF_ID"  value="180"/>
0294     <constant name="Q1EF_ID"  value="181"/>
0295     <constant name="B0Window_ID"  value="182"/>
0296 
0297     <documentation>
0298       #### (190-199) Far Backward Beamline Detectors
0299 
0300       - Low-Q2 Tagger 1       ID: 195
0301       - Low-Q2 Tagger 2       ID: 196
0302       - Low-Q2 Tagger Vacuum  ID: 199
0303 
0304       TODO: A lot of the repeated ID's below should be pushed into a single detector
0305     </documentation>
0306     <constant name="LumiCollimator_ID"       value="190"/>
0307     <constant name="LumiDipole_ID"           value="191"/>
0308     <constant name="LumiWindow_ID"           value="192"/>
0309     <constant name="LumiSpecTracker_ID"      value="193"/>
0310     <constant name="LumiSpecCAL_ID"          value="194"/>
0311     <constant name="LumiDirectPCAL_ID"       value="195"/>
0312 
0313     <constant name="BackwardsBeamline_ID"    value="197"/>
0314     <constant name="TaggerTracker_ID"        value="198"/>
0315     <constant name="TaggerCalorimeter_ID"    value="199"/>
0316 
0317     <documentation>
0318 ## Detector Definition Parameters
0319 
0320 ## Constant naming convention
0321 
0322 SubSystemNameFurtherDescriptor_quantity
0323 
0324 Examples:
0325  - TrackerBarrelInside_length
0326  - EcalEndcapP_rmin
0327  - TOFEndcapLayer_thickness
0328 
0329 ### Naming Barrel and Endcaps
0330 
0331  - **Barrel**
0332  - **EndcapP**
0333    - Postive Endcap (+z direction)
0334    - This is the ion beam side
0335  - **EndcapN**
0336    - Negative Endcap (-z direction)
0337    - This is the electron beam side
0338 
0339 ## Parameter nomenclature
0340 
0341  - "rmin", "rmax", "thickness" all refer to the radial direction.
0342  - "zmin", "zmax", "length", "offset" all refer to the z direction.
0343  - Positive and Negative are  "EndcapP" and "EndcapN", respectively.
0344  - All values are positive (except offsets, which are positive in the hadron direction, i.e. towards EndCapP).
0345      When refering to a negative endcap z position, the values are
0346      also positive then negated when required. (Many endcap constructions are mirrored,
0347      hence a postive value.)
0348  - We will try to keep the subsystem component name first and the parameter after an "_" (eg, EcalBarrel_length").
0349 
0350     </documentation>
0351 
0352     <documentation>
0353       ## Rapidity constants
0354     </documentation>
0355     <constant name="Eta1_1_tan"       value="tan(2*atan(exp(-1.1)))" />
0356     <constant name="Eta1_4_tan"       value="tan(2*atan(exp(-1.4)))" />
0357     <constant name="Eta3_5_tan"       value="tan(2*atan(exp(-3.5)))" />
0358     <constant name="Eta3_6_tan"       value="tan(2*atan(exp(-3.6)))" />
0359     <constant name="Eta3_7_tan"       value="tan(2*atan(exp(-3.7)))" />
0360     <constant name="Eta3_8_tan"       value="tan(2*atan(exp(-3.8)))" />
0361     <constant name="Eta3_9_tan"       value="tan(2*atan(exp(-3.9)))" />
0362     <constant name="Eta4_0_tan"       value="tan(2*atan(exp(-4.0)))" />
0363     <constant name="Eta4_1_tan"       value="tan(2*atan(exp(-4.1)))" />
0364     <constant name="Eta4_2_tan"       value="tan(2*atan(exp(-4.2)))" />
0365     <constant name="Eta4_3_tan"       value="tan(2*atan(exp(-4.3)))" />
0366     <constant name="Eta4_4_tan"       value="tan(2*atan(exp(-4.4)))" />
0367     <constant name="Eta4_5_tan"       value="tan(2*atan(exp(-4.5)))" />
0368     <constant name="Eta4_6_tan"       value="tan(2*atan(exp(-4.6)))" />
0369     <constant name="Eta4_7_tan"       value="tan(2*atan(exp(-4.7)))" />
0370     <constant name="Eta4_8_tan"       value="tan(2*atan(exp(-4.8)))" />
0371 
0372     <comment>Solenoid option</comment>
0373 
0374     <documentation>
0375       ## Solenoid Magnet Parameters
0376 
0377       When changing here, also change the include file in athena.xml.
0378     </documentation>
0379 
0380     <comment>Solenoid option (BaBar magnet)</comment>
0381     <constant name="Solenoid_length"           value="3840.0*mm"/>
0382     <constant name="Solenoid_rmin"             value="1420.0*mm"/>
0383     <constant name="Solenoid_thickness"        value="350*mm"/>
0384     <constant name="Solenoid_offset"           value="-100*mm"/>
0385 
0386     <comment>Solenoid option (ATHENA design)</comment>
0387     <comment>
0388     <constant name="Solenoid_length"           value="3840.0*mm"/>
0389     <constant name="Solenoid_rmin"             value="1600.0*mm"/>
0390     <constant name="Solenoid_thickness"        value="455*mm"/>
0391     <constant name="Solenoid_offset"           value="-240*mm"/>
0392     </comment>
0393 
0394     <comment>Helmholtz option</comment>
0395     <comment>
0396     <constant name="Solenoid_length"           value="3840.0*mm"/>
0397     <constant name="Solenoid_rmin"             value="1655.0*mm"/> <comment> Larger inner bore radius </comment>
0398     <constant name="Solenoid_thickness"        value="640*mm"/>
0399     <constant name="Solenoid_offset"           value="10*mm"/>
0400     </comment>
0401 
0402     <constant name="Solenoid_rmax"             value="Solenoid_rmin + Solenoid_thickness"/>
0403     <constant name="SolenoidForward_zmax"      value="Solenoid_length/2. + Solenoid_offset"/>
0404     <constant name="SolenoidBackward_zmax"     value="Solenoid_length/2. - Solenoid_offset"/>
0405     <constant name="SolenoidBarrel_rmin"       value="Solenoid_rmin"/>
0406     <constant name="SolenoidBarrel_length"     value="Solenoid_length"/>
0407 
0408     <documentation>
0409       ## IP6 Beam Pipe Parameters - Note might need cleaning
0410     </documentation>
0411     <constant name="CrossingAngle" value="-0.025*rad "/>
0412     <constant name="ionCrossingAngle" value="CrossingAngle"/>
0413     <constant name="electronCrossingAngle" value="0.0"/>
0414     <constant name="CrossingSlope" value="CrossingAngle"/>
0415 
0416     <constant name="IPBeampipe_rmax" value="2.501*25.4*mm/2.0"/>
0417     <constant name="Beampipe_rmax"   value="IPBeampipe_rmax"/>
0418     <constant name="IPBeampipeID" desc="IP6 beam pipe inner diam w/o coating" value="62*mm"/>
0419 
0420     <documentation>
0421       ## Central Beam Pipe Parameters
0422     </documentation>
0423     <constant name="IPBeampipeUpstreamStraightLength" value="74.8 * cm"/>
0424     <constant name="IPBeampipeDownstreamStraightLength" value="64.8 * cm"/>
0425     <constant name="BeampipeOD" value="62 * mm"/>
0426     <constant name="HadronConeOpenAngle" value="0.020 * rad + abs(CrossingAngle)"/>
0427 
0428     <documentation>
0429       ## Outgoing Lepton Beam Pipe Parameters
0430     </documentation>
0431     <constant name="OutgoingLeptonBeamPipe_z0" value="IPBeampipeUpstreamStraightLength"/>
0432     <constant name="OutgoingLeptonBeamPipe_z1" value="454.449 * cm"/>
0433     <constant name="OutgoingLeptonBeamPipe_d0" value="IPBeampipeID"/>
0434     <constant name="OutgoingLeptonBeamPipe_d1" value="IPBeampipeID"/>
0435 
0436     <documentation>
0437       ## Incoming Hadron Beam Pipe Parameters
0438     </documentation>
0439     <constant name="IncomingHadronBeamPipe_z0" value="75.6*cm"/>
0440     <constant name="IncomingHadronBeamPipe_z1" value="247.298*cm"/>
0441     <constant name="IncomingHadronBeamPipe_z2" value="IncomingHadronBeamPipe_z1 + 2.54*cm"/>
0442     <constant name="IncomingHadronBeamPipe_z3" value="IncomingHadronBeamPipe_z2 + 170.2*cm"/>
0443     <constant name="IncomingHadronBeamPipe_z4" value="IncomingHadronBeamPipe_z3 + 1.27*cm"/>
0444     <constant name="IncomingHadronBeamPipe_z5" value="IncomingHadronBeamPipe_z4 + 32.769*cm"/>
0445     <constant name="IncomingHadronBeamPipe_d0" value="2.527*cm"/>
0446     <constant name="IncomingHadronBeamPipe_d1" value="2.527*cm"/>
0447     <constant name="IncomingHadronBeamPipe_d2" value="3.48*cm"/>
0448     <constant name="IncomingHadronBeamPipe_d3" value="3.48*cm"/>
0449     <constant name="IncomingHadronBeamPipe_d4" value="4.115*cm"/>
0450     <constant name="IncomingHadronBeamPipe_d5" value="4.115*cm"/>
0451 
0452     <documentation>
0453       ## Tracking Detector Parameters
0454     </documentation>
0455 
0456     <documentation>
0457       ### Vertex Tracking Region
0458     </documentation>
0459     <constant name="VertexTrackingRegion_rmin"    value="Beampipe_rmax + 1.0*mm" />
0460     <constant name="VertexTrackingRegion_rmax"    value="100.0*mm" />
0461     <constant name="VertexTrackingRegionP_zmax"   value="240.0*mm" />
0462     <constant name="VertexTrackingRegionN_zmax"   value="240.0*mm" />
0463     <constant name="VertexTrackingRegion_length"  value="VertexTrackingRegionP_zmax + VertexTrackingRegionN_zmax" />
0464 
0465     <documentation>
0466       ### Central Tracking Region
0467       TrackerBarrel_rmax: also the rmin for the barrel PID system (DIRC)
0468       Note: The barrel rmax and endcap lengths are the maximum extent allowed for
0469       the barrel and endcap layers, not the position of the final layer.
0470 
0471 
0472     </documentation>
0473 
0474     <constant name="CentralTrackingRegion_rmax"   value="755.0*mm" />
0475     <constant name="CentralTrackingRegionP_zmax"  value="1800.0*mm" />
0476     <constant name="CentralTrackingRegionN_zmax"  value="1235.0*mm" />
0477     <constant name="CentralTrackingRegion_length" value="CentralTrackingRegionP_zmax + CentralTrackingRegionN_zmax" />
0478     <comment>
0479       tan(theta) to determine rmin in the outer tracking region (due to tapered beampipe)
0480     </comment>
0481     <constant name="CentralTrackingBarrel_tan"    value="Eta1_1_tan" />
0482     <constant name="CentralTrackingRegionP_tan"   value="Eta3_7_tan * 1.00" />
0483     <constant name="CentralTrackingRegionN_tan"   value="Eta4_0_tan * 0.99" />
0484 
0485     <constant name="InnerDetectorBarrelSupportCylinder_thickness" value="1*cm"/>
0486     <constant name="InnerDetectorBarrelSupportCylinder_rmin"      value="71.0*cm"/> <!-- EPIC Envelope - 03-12-2025.stp -->
0487     <constant name="InnerDetectorBarrelSupportCylinder_rmax"      value="InnerDetectorBarrelSupportCylinder_rmin + InnerDetectorBarrelSupportCylinder_thickness"/>
0488 
0489     <documentation level="0">
0490 ### PID Detector Region Parameters
0491     </documentation>
0492 
0493     <comment> Global PID regions with suballocations for TOF and RICH detectors </comment>
0494     <constant name="ForwardPIDRegion_zmin"        value="CentralTrackingRegionP_zmax" />
0495     <constant name="ForwardPIDRegion_length"      value="135.0*cm" />
0496     <constant name="ForwardPIDRegion_rmax"        value="180.0*cm" />
0497     <constant name="ForwardTOFRegion_length"      value="15.0*cm" />
0498 
0499     <comment> Forward RICH region </comment>
0500     <constant name="ForwardRICHRegion_zmin"       value="ForwardPIDRegion_zmin + ForwardTOFRegion_length" />
0501     <constant name="ForwardRICHRegion_length"     value="ForwardPIDRegion_length - ForwardTOFRegion_length" />
0502     <comment> Tangent of the opening angle at the front and back of the RICH </comment>
0503     <constant name="ForwardRICHRegion_tan1"        value="CentralTrackingRegionP_tan * 1.20" />
0504     <constant name="ForwardRICHRegion_tan2"        value="Eta3_6_tan * 1.20" />
0505 
0506     <comment> Backward PID region, TOF + pfRICH </comment>
0507     <comment> Important: CentralTrackingRegionN_zmax is positive, we treat it like that here as well. Inside pfrich.xml it gets correctly assigned  </comment>
0508     <constant name="BackwardPIDRegion_length"     value="45.0*cm" />
0509     <constant name="BackwardPIDRegion_zmin"       value="CentralTrackingRegionN_zmax" />
0510     <constant name="BackwardPIDRegion_zmax"       value="BackwardPIDRegion_zmin + BackwardPIDRegion_length" />
0511     <constant name="BackwardPIDRegion_rmax"       value="65.0*cm" /> <!-- FIXME hardcoded, was CentralTrackingRegion_rmax -->
0512     <constant name="BackwardPIDRegion_tan"        value="CentralTrackingRegionN_tan * 0.92" />
0513 
0514     <comment> Backward RICH region </comment>
0515     <constant name="BackwardRICHRegion_zmax"       value="BackwardPIDRegion_zmax" />
0516     <constant name="BackwardRICHRegion_length"     value="BackwardPIDRegion_length" />
0517 
0518     <comment> Backward TOF region, currently empty for upgrades </comment>
0519     <constant name="BackwardTOFRegion_zmin"        value="BackwardRICHRegion_zmax" />
0520     <constant name="BackwardTOFRegion_length"      value="BackwardPIDRegion_length - BackwardRICHRegion_length" />
0521 
0522     <comment> Note: PID has space for DIRC, ExtraSpace sits past the PID</comment>
0523     <constant name="BarrelPIDRegion_thickness"    value="7.0 * cm" />
0524     <constant name="BarrelExtraSpace_thickness"   value="0.0 * cm" />
0525 
0526     <documentation>
0527     ## Forward/backward tracking region behind the PID detectors
0528     </documentation>
0529 
0530     <constant name="BackwardTrackingRegion_tan"     value="CentralTrackingRegionN_tan" />
0531     <constant name="BackwardTrackingRegion_zmin"    value="BackwardPIDRegion_zmin + BackwardPIDRegion_length" />
0532     <constant name="ForwardTrackingRegion_tan"      value="ForwardRICHRegion_tan2" />
0533     <constant name="ForwardTrackingRegion_zmin"     value="ForwardPIDRegion_zmin + ForwardPIDRegion_length" />
0534     <constant name="ForwardTrackingRegion_length"   value="0.0*cm" />
0535     <constant name="BackwardTrackingRegion_length"  value="15.0*cm" />
0536 
0537     <comment> Total length of the endcap detectors in front of the calorimeter</comment>
0538     <constant name="BackwardInnerEndcapRegion_length"    value="BackwardPIDRegion_length + BackwardTrackingRegion_length"/>
0539     <constant name="ForwardInnerEndcapRegion_length"     value="ForwardPIDRegion_length + ForwardTrackingRegion_length"/>
0540 
0541     <documentation>
0542 ## Service gaps
0543 
0544 Service gaps in FW direction (before endcapP ECAL) and BW direction (before endcapN HCAL)
0545     </documentation>
0546     <constant name="ForwardInnerEndcapRegionExtraSpace_length" value="4.6*cm"/>
0547     <constant name="ForwardServiceGap_length"     value="15.4*cm"/>
0548     <constant name="ForwardServiceGap_zmin"       value="ForwardPIDRegion_zmin + ForwardInnerEndcapRegion_length + ForwardInnerEndcapRegionExtraSpace_length"/>
0549     <constant name="ForwardServiceGap_zmax"       value="ForwardServiceGap_zmin + ForwardServiceGap_length"/>
0550 
0551     <comment> Radial service gap between dRICH and HcalBarrel </comment>
0552     <constant name="ForwardServiceGap_thickness"  value="10.0*cm"/>
0553     <constant name="ForwardServiceGap_rmin"       value="ForwardPIDRegion_rmax"/>
0554     <constant name="ForwardServiceGap_rmax"       value="ForwardServiceGap_rmin + ForwardServiceGap_thickness"/>
0555 
0556     <constant name="BackwardServiceGap_length"    value="15.0 * cm"/>
0557     <constant name="BackwardServiceGap_zmin"      value="316.0 * cm"/> <!-- FIXME hardcoded -->
0558     <constant name="BackwardServiceGap_zmax"      value="BackwardServiceGap_zmin + BackwardServiceGap_length"/>
0559 
0560 
0561   <documentation level="3">
0562 ## Calorimeter Parameters
0563   </documentation>
0564     <constant name="EcalBarrelSectorsN"               value="48"/>
0565 
0566     <constant name="EcalEndcapP_numLayers"              value="1"/>
0567     <constant name="EcalEndcapP_zmin"                   value="ForwardServiceGap_zmax"/>
0568     <constant name="EcalEndcapP_CoverThickness"         value="0.343*mm"/>
0569     <constant name="EcalEndcapP_AirThickness"           value="61.457*mm"/>
0570     <constant name="EcalEndcapP_PCBThickness"           value="4.5*mm"/>
0571     <constant name="EcalEndcapP_LightGuideThickness"    value="21.0*mm"/>
0572     <constant name="EcalEndcapP_ScintillatorThickness"  value="170.0*mm"/>
0573     <constant name="EcalEndcapP_MountingPlateThickness" value="12.7*mm"/>
0574     <constant name="EcalEndcapP_length"                 value="EcalEndcapP_CoverThickness+EcalEndcapP_AirThickness+EcalEndcapP_PCBThickness+EcalEndcapP_LightGuideThickness+EcalEndcapP_ScintillatorThickness+EcalEndcapP_MountingPlateThickness"/>
0575     <constant name="EcalEndcapP_zmax"                   value="EcalEndcapP_zmin + EcalEndcapP_length"/>
0576     <constant name="EcalEndcapP_xOffsetNorth"           value="0.685/2.0*cm"/>
0577     <constant name="EcalEndcapP_xOffsetSouth"           value="0.685/2.0*cm"/>
0578     <constant name="EcalEndcapP_yOffsetNorth"           value="0.0*cm"/>
0579     <constant name="EcalEndcapP_yOffsetSouth"           value="0.0*cm"/>
0580     <constant name="EcalEndcapP_nsGap"                  value="EcalEndcapP_xOffsetNorth+EcalEndcapP_xOffsetSouth"/>
0581     <constant name="EcalEndcapP_rmin"                   value="0.0*inch"/>
0582     <constant name="EcalEndcapP_rmax"                   value="81.0*inch"/>
0583     <constant name="EcalEndcapP_rmaxWithGap"            value="EcalEndcapP_rmax + EcalEndcapP_nsGap/2.0"/>
0584     <constant name="EcalEndcapP_blockSize"              value="10.0*cm"/>
0585     <constant name="EcalEndcapP_blockLength"            value="17.0*cm"/>
0586     <constant name="EcalEndcapP_spaceBetweenBlock"      value="0.1*cm"/>
0587     <constant name="EcalEndcapP_xOffsetBeamPipeNorth"   value="3.0/4.0*EcalEndcapP_blockSize"/>
0588     <constant name="EcalEndcapP_xOffsetBeamPipeSouth"   value="2.0*EcalEndcapP_blockSize + 2.0*EcalEndcapP_spaceBetweenBlock"/>
0589     <constant name="EcalEndcapP_insert_dy"              value="3.0*EcalEndcapP_blockSize + 3.0*EcalEndcapP_spaceBetweenBlock"/>
0590     <constant name="EcalEndcapP_insert_dz"              value="EcalEndcapP_length"/>
0591     <constant name="EcalEndcapP_insert_thickness"       value="0.25*inch"/>
0592     <constant name="EcalEndcapP_insert_center_x"        value="(EcalEndcapP_xOffsetBeamPipeNorth-EcalEndcapP_xOffsetBeamPipeSouth)/2.0"/>
0593     <constant name="EcalEndcapP_nfiber_x"               value="26"/>
0594     <constant name="EcalEndcapP_nfiber_y"               value="30"/>
0595     <constant name="EcalEndcapP_rfiber"                 value="0.0235*cm"/>
0596     <constant name="EcalEndcapP_rscfi"                  value="0.02209*cm"/>
0597 
0598     <!-- <constant name="EcalEndcapN_zmin"               value="BackwardPIDRegion_zmin + BackwardInnerEndcapRegion_length"/> -->
0599     <constant name="EcalEndcapN_zmin"               value="175*cm"/>   <!-- Currently fix value hardcoded -->
0600     <constant name="EcalEndcapN_length"             value="60*cm" />   <!-- Currently fix value hardcoded -->
0601     <constant name="EcalEndcapN_zmax"               value="EcalEndcapN_zmin + EcalEndcapN_length"/>
0602 
0603     <comment>
0604       rmin1: rmin round electron pipe (ignoring the hadron pipe)
0605       rmin2: rmin around both beam pipes
0606     </comment>
0607     <constant name="EcalEndcapN_rmin1"              value="Eta4_6_tan * EcalEndcapN_zmin"/>
0608     <constant name="EcalEndcapN_rmin2"              value="Eta3_9_tan * EcalEndcapN_zmin"/>
0609     <constant name="EcalEndcapN_rmin"               value="9.*cm"/>    <!-- Currently fix value hardcoded -->
0610     <constant name="EcalEndcapN_rmax"               value="63.*cm"/>   <!-- Currently fix value hardcoded -->
0611 
0612     <constant name="EcalBarrel_rmin"                value="max(82.*cm, CentralTrackingRegion_rmax + BarrelPIDRegion_thickness + BarrelExtraSpace_thickness)"/>
0613     <constant name="EcalBarrelRegion_thickness"     value="Solenoid_rmin-EcalBarrel_rmin"/>
0614     <constant name="EcalBarrel_inner_margin"        value="2*cm"/>
0615     <constant name="EcalBarrel_rmax"                value="EcalBarrel_rmin + EcalBarrelRegion_thickness"/>
0616     <constant name="EcalBarrelForward_zmax"         value="ForwardRICHRegion_zmin"/> <!-- FIXME currently unable to accommodate actual position -->
0617     <constant name="EcalBarrelBackward_zmax"        value="BackwardServiceGap_zmax"/> <!-- FIXME should be -389 cm -->
0618     <constant name="EcalBarrel_length"              value="EcalBarrelForward_zmax + EcalBarrelBackward_zmax"/>
0619     <constant name="EcalBarrel_offset"              value="(EcalBarrelForward_zmax - EcalBarrelBackward_zmax)/2.0"/>
0620     <constant name="EcalBarrelReadout_length"       value="20*cm"/>
0621 
0622     <documentation level="3">
0623       ## Special DIRC parameters (depend on the ECAL setup)
0624     </documentation>
0625     <constant name="DIRCReadout_length"         value="30*cm"/>
0626     <comment> Leave 1.9 cm space from the end of mirror to the end of bar box in +z </comment>
0627     <constant name="DIRCMirror_thickness"       value="1 * mm"/>
0628     <constant name="DIRCBarbox_space_z"         value="1.9*cm"/>
0629     <constant name="DIRCLens_thickness"         value="12 * mm"/>
0630     <constant name="DIRCForward_length"         value="0*cm"/>
0631     <constant name="DIRCForward_zmax"           value="CentralTrackingRegionP_zmax + 5*cm"/>
0632     <constant name="DIRCBackward_zmax"          value="303*cm"/>
0633     <constant name="DIRC_thickness"             value="3.1*cm"/>
0634     <constant name="DIRC_length"                value="DIRCForward_zmax + DIRCBackward_zmax"/>
0635     <constant name="DIRC_offset"                value="(DIRCForward_zmax - DIRCBackward_zmax - DIRCMirror_thickness - DIRCBarbox_space_z + DIRCLens_thickness + DIRCReadout_length)/2"/>
0636     <comment>
0637       The DIRC_rmin/rmax values are defined at the center of each stave, such that
0638       the DIRC_rmax can also be used as the OuterBarrelMPGD_rmin value.
0639     </comment>
0640     <constant name="DIRC_rmin"                  value="CentralTrackingRegion_rmax"/>
0641     <constant name="DIRC_rmax"                  value="DIRC_rmin + DIRC_thickness"/>
0642 
0643     <documentation>
0644       ## Hadronic Calorimeter Parameters
0645     </documentation>
0646 
0647     <constant name="HcalBarrelStavesN"          value="12"/>
0648 
0649     <constant name="LFHCAL_zmin"          value="EcalEndcapP_zmin + EcalEndcapP_length"/>
0650     <comment> LFHCAL module is 132 cm total, attached to 1-inch mounting plate </comment>
0651     <constant name="LFHCAL_length"        value="134.54*cm"/>
0652     <constant name="LFHCAL_zmax"          value="LFHCAL_zmin + LFHCAL_length"/>
0653 
0654     <constant name="HcalEndcapPInsert_zmin"     value="EcalEndcapP_zmin + EcalEndcapP_length"/>
0655     <constant name="HcalEndcapPInsert_length"   value="134.75*cm"/>
0656     <constant name="HcalEndcapPInsert_zmax"     value="HcalEndcapPInsert_zmin + HcalEndcapPInsert_length"/>
0657     <constant name="HcalEndcapPInsert_width"    value="59.26*cm"/>
0658     <constant name="HcalEndcapPInsert_height"    value="59.29*cm"/>
0659     <constant name="HcalEndcapPInsert_xposition" value="-10.0*cm"/>
0660     <constant name="HcalEndcapPInsert_yposition" value="0.0*cm"/>
0661     <constant name="HcalEndcapPInsert_hole_radius"    value="14.61*cm"/>
0662     <constant name="HcalEndcapPInsert_hole_xposition" value="-7.20*cm"/>
0663     <constant name="HcalEndcapPInsert_hole_yposition" value="0.0*cm"/>
0664 
0665     <constant name="HcalEndcapN_CaloSides"      value="60"/>
0666     <constant name="HcalEndcapN_zmin"     value="BackwardServiceGap_zmax + 44.0 * cm"/> <!-- 44 cm gap between service gap, includes 28.5 cm oculus -->
0667     <constant name="HcalEndcapN_length"   value="65.0*cm"/>
0668     <constant name="HcalEndcapN_zmax"     value="HcalEndcapN_zmin + HcalEndcapN_length"/>
0669     <comment> HcalEndcapN needs to clear the straight beampipe with 1 * crossing angle + its radius of 22.25 mm </comment>
0670     <constant name="HcalEndcapN_rmin"     value="max((HcalEndcapN_zmin + HcalEndcapN_length) * tan(abs(CrossingAngle)) + 22.25 * mm, 14.0 * cm)"/>
0671 
0672     <documentation>
0673       ## Barrel HCAL Parameters
0674 
0675       Hard-coded numbers are taken from the 3D model for the sPHENIX HCAL, see:
0676 
0677       https://github.com/eic/epic-data/tree/main/barrel_HCAL_gdml
0678 
0679       for 3D model files and FreeCAD projects.
0680     </documentation>
0681 
0682     <constant name="HcalBarrel_thickness"     value="86.18*cm"/>
0683     <constant name="HcalBarrel_rmin1"         value="183.85*cm"/>
0684     <constant name="HcalBarrel_rmin"          value="HcalBarrel_rmin1"/><!--DEPRECATED-->
0685     <constant name="HcalBarrel_rmin2"         value="HcalBarrel_rmin1 + 10.4*cm"/>
0686     <constant name="HcalBarrel_rmax"          value="HcalBarrel_rmin1 + HcalBarrel_thickness"/>
0687     <constant name="HcalBarrelForward_zmax"   value="319.625*cm"/>
0688     <constant name="HcalBarrelBackward_zmax"  value="HcalBarrelForward_zmax"/>
0689     <constant name="HcalBarrel_length2"       value="HcalBarrelForward_zmax + HcalBarrelBackward_zmax"/>
0690     <constant name="HcalBarrel_length1"       value="319.0*cm"/>
0691     <constant name="HcalBarrel_offset"        value="(HcalBarrelForward_zmax - HcalBarrelBackward_zmax)/2"/>
0692 
0693     <constant name="HcalEndcapN_rmax"     value="min(HcalBarrel_rmax, 267.0 * cm)"/>
0694 
0695     <comment> Lepton_Assy_21.stp, rwimmer, 2024-04-03 </comment>
0696     <constant name="FluxEndcapN_collar_rmax" value="326.2*cm"/>
0697     <constant name="FluxEndcapN_collar_rmin" value="275.0*cm"/>
0698     <constant name="FluxEndcapN_collar_thickness" value="120.38*cm"/>
0699     <constant name="FluxEndcapN_oculus_rmax" value="FluxEndcapN_collar_rmin"/>
0700     <constant name="FluxEndcapN_oculus_rmin" value="221.6*cm"/>
0701     <constant name="FluxEndcapN_oculus_thickness" value="28.5*cm"/>
0702     <constant name="FluxEndcapN_exterior_rmax" value="FluxEndcapN_collar_rmin*cm"/>
0703     <constant name="FluxEndcapN_exterior_rmin" value="16*cm"/>
0704     <constant name="FluxEndcapN_exterior_thickness" value="10*cm"/>
0705 
0706     <comment> Hadron End Cap Assembly_North Half.stp, rwimmer, 2024-04-03 </comment>
0707     <constant name="FluxEndcapP_collar_rmax" value="326.2*cm"/>
0708     <constant name="FluxEndcapP_collar_rmin" value="289.56*cm"/>
0709     <constant name="FluxEndcapP_collar_thickness" value="167.14*cm"/>
0710     <constant name="FluxEndcapP_oculus_rmax" value="FluxEndcapP_collar_rmin"/>
0711     <constant name="FluxEndcapP_oculus_rmin" value="210.0*cm"/>
0712     <constant name="FluxEndcapP_oculus_thickness" value="22.2*cm"/>
0713 
0714     <comment> LFHCAL includes support, which is part of the flux return </comment>
0715     <constant name="LFHCAL_rmax" value="FluxEndcapP_collar_rmin"/>
0716 
0717     <comment> STAR Asm for EPIC w cradle.stp, rwimmer, 2024-04-03 </comment>
0718     <constant name="FluxBarrelForward_zmax"  value="320*cm"/>
0719     <constant name="FluxBarrelBackward_zmax" value="FluxBarrelForward_zmax"/>
0720     <constant name="FluxBarrel_thickness"    value="62.5*cm"/> <!-- for envelope only -->
0721     <constant name="FluxBarrel_rmin"         value="273.05*cm"/>
0722     <constant name="FluxBarrel_rmax"         value="FluxBarrel_rmin + FluxBarrel_thickness"/>
0723     <constant name="FluxBarrel_length"       value="FluxBarrelForward_zmax + FluxBarrelBackward_zmax"/>
0724     <constant name="FluxBarrel_offset"       value="(FluxBarrelForward_zmax - FluxBarrelBackward_zmax)/2.0"/>
0725 
0726     <comment>
0727       These are used by ddsim, the region where we store all secondaries
0728 
0729       For now they are forced to be symmetric, and we cover up to the start of the backward ECAL.
0730       (this means in the forward region we stop in the middle of the RICH).
0731     </comment>
0732 
0733     <constant name="tracker_region_rmax"   value="EcalBarrel_rmin"/>
0734     <constant name="tracker_region_zmax"   value="+EcalEndcapP_zmin"/>
0735     <constant name="tracker_region_zmin"   value="-EcalEndcapN_zmin"/>
0736 
0737   </define>