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