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