ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_GeoModelConfig.py
Go to the documentation of this file.
2# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3#
4from AthenaConfiguration.AccumulatorCache import AccumulatorCache
5
6def TRT_GeoModelCfg(flags):
7 from AtlasGeoModel.GeoModelConfig import GeoModelCfg
8 acc = GeoModelCfg(flags)
9 geoModelSvc = acc.getPrimary()
10
11 from AthenaConfiguration.ComponentFactory import CompFactory
12 trtDetectorTool = CompFactory.TRT_DetectorTool()
13 trtDetectorTool.useDynamicAlignFolders = flags.GeoModel.Align.Dynamic
14 # Use default TRT active gas in geo model unless in simulation.
15 from AthenaConfiguration.Enums import LHCPeriod
16 from AthenaConfiguration.Enums import Project, ProductionStep
17 if (flags.Common.Project is not Project.AthSimulation
18 and flags.Common.ProductionStep not in [ProductionStep.Simulation, ProductionStep.FastChain]) or flags.GeoModel.Run is LHCPeriod.Run1:
19 trtDetectorTool.DoXenonArgonMixture = False
20 trtDetectorTool.DoKryptonMixture = False
21 if flags.GeoModel.Run is LHCPeriod.Run3:
22 # TRT filled with Run 3 mixture of Xenon and Argon for pp runs [DB=791CE02A-56D5-5A4C-9150-CCADCB68B31F]
23 trtDetectorTool.StrawStatusFile = 'TRTGeometry/Run3MCStrawStatus.txt'
24 elif flags.GeoModel.Run is LHCPeriod.Run2:
25 # TRT filled with Run 2 mixture of Xenon and Argon for pp runs [DB=8D6AE810-BB00-B44C-A21E-15DE270363BE]
26 trtDetectorTool.StrawStatusFile = 'TRTGeometry/Run2MC_pp_StrawStatus.txt'
27 if flags.Input.ConditionsRunNumber in [222506, 222507, 313000] or (flags.Input.ConditionsRunNumber >= 226000 and flags.Input.ConditionsRunNumber < 228000):
28 # Full TRT filled with Argon for HI runs [DB=52200EDF-D5BF-E24A-AAD4-6BFFEA94BFEF]
29 trtDetectorTool.StrawStatusFile = 'TRTGeometry/Run2MC_HI_StrawStatus.txt'
30 elif flags.GeoModel.Run is not LHCPeriod.Run1:
31 # TRT filled with pure Xenon in Run 1.
32 raise ValueError(f'Cannot configure the TRT geometry for LHCPeriod {flags.GeoModel.Run.value}, please check the configuration of "flags.GeoModel.Run".')
33
34
38 geoModelSvc.DetectorTools += [ trtDetectorTool ]
39 return acc
40
41
43 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
44 acc = ComponentAccumulator()
45 if flags.GeoModel.Align.LegacyConditionsAccess: # revert to old style CondHandle in case of simulation
46 from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline
47 acc.merge(addFoldersSplitOnline(flags, "TRT", "/TRT/Onl/Calib/DX", "/TRT/Calib/DX"))
48 if flags.GeoModel.Align.Dynamic:
49 acc.merge(addFoldersSplitOnline(flags, "TRT", "/TRT/Onl/AlignL1/TRT", "/TRT/AlignL1/TRT"))
50 acc.merge(addFoldersSplitOnline(flags, "TRT", "/TRT/Onl/AlignL2", "/TRT/AlignL2"))
51 else:
52 acc.merge(addFoldersSplitOnline(flags, "TRT", "/TRT/Onl/Align", "/TRT/Align"))
53 else:
54 from TRT_ConditionsAlgs.TRT_ConditionsAlgsConfig import TRTAlignCondAlgCfg
55 acc.merge(TRTAlignCondAlgCfg(flags))
56 return acc
57
58
59@AccumulatorCache
61 # main GeoModel config
62 acc = TRT_GeoModelCfg(flags)
63 acc.merge(TRT_AlignmentCfg(flags))
64 return acc
65
66
67@AccumulatorCache
69 # main GeoModel config
70 acc = TRT_GeoModelCfg(flags)
71 acc.merge(TRT_AlignmentCfg(flags))
72 # Note: this has almost the same content but different name on purpose if
73 # we ever split readout geometry in a separate conditions algorithm
74 from TRT_ConditionsAlgs.TRT_ConditionsAlgsConfig import TRTAlignCondAlgCfg
75 acc.merge(TRTAlignCondAlgCfg(flags))
76 return acc