ATLAS Offline Software
AlignmentAlgsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3 from AthenaConfiguration.ComponentFactory import CompFactory
4 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
5 
6 
7 def ActsAlignStoreProviderAlgCfg(flags, name="AlignStoreProviderAlg", **kwargs):
8  result = ComponentAccumulator()
9  kwargs.setdefault("LoadDetectorVolumeSvc", False)
10 
11  from AthenaConfiguration.Enums import ProductionStep
12 
13  if flags.Common.ProductionStep == ProductionStep.Simulation:
14  kwargs.setdefault("LoadTrackingGeoSvc" , False)
15  kwargs.setdefault("LoadDetectorVolumeSvc" , False)
16  else:
17  kwargs.setdefault("LoadDetectorVolumeSvc", False)
18  kwargs.setdefault("LoadTrackingGeoSvc", True)
19 
20  from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
21  kwargs.setdefault("TrackingGeometrySvc", result.getPrimaryAndMerge(ActsTrackingGeometrySvcCfg(flags))
22  if kwargs["LoadTrackingGeoSvc"] else "")
23  from ActsGeometry.DetectorVolumeSvcCfg import DetectorVolumeSvcCfg
24  kwargs.setdefault("DetectorVolumeSvc", result.getPrimaryAndMerge(DetectorVolumeSvcCfg(flags))
25  if kwargs["LoadDetectorVolumeSvc"] else "")
26 
27  the_alg = CompFactory.ActsTrk.AlignStoreProviderAlg(name, **kwargs)
28  result.addCondAlgo(the_alg, primary = True)
29  return result
30 
31 def DetectorAlignCondAlgCfg(flags, name="DetectorAlignCondAlg", **kwargs):
32  result = ComponentAccumulator()
33 
34  from AthenaConfiguration.Enums import ProductionStep
35 
36  if flags.Common.ProductionStep == ProductionStep.Simulation:
37  kwargs.setdefault("LoadTrackingGeoSvc" , False)
38  kwargs.setdefault("LoadDetectorVolumeSvc" , False)
39  else:
40  kwargs.setdefault("LoadDetectorVolumeSvc", False)
41  kwargs.setdefault("LoadTrackingGeoSvc", True)
42 
43  from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
44  kwargs.setdefault("TrackingGeometrySvc", result.getPrimaryAndMerge(ActsTrackingGeometrySvcCfg(flags))
45  if kwargs["LoadTrackingGeoSvc"] else "")
46  from ActsGeometry.DetectorVolumeSvcCfg import DetectorVolumeSvcCfg
47  kwargs.setdefault("DetectorVolumeSvc", result.getPrimaryAndMerge(DetectorVolumeSvcCfg(flags))
48  if kwargs["LoadDetectorVolumeSvc"] else "")
49 
50  the_alg = CompFactory.ActsTrk.DetectorAlignCondAlg(name, **kwargs)
51  result.addCondAlgo(the_alg, primary = True)
52  return result
53 
54 
55 
57  result = ComponentAccumulator()
58  from ROOT.ActsTrk import DetectorType
59 
60  if flags.Detector.GeometryITkPixel:
61  from PixelConditionsAlgorithms.ITkPixelConditionsConfig import ITkPixelAlignCondAlgCfg
62  result.merge(ITkPixelAlignCondAlgCfg(flags))
63  result.merge(DetectorAlignCondAlgCfg(flags,
64  name="ActsDetAlignmentCondAlgITkPixel",
65  InputTransforms="ITkPixelAlignmentStore",
66  ActsTransforms="ActsITkPixelAlignmentStore",
67  DetectorType=DetectorType.Pixel))
68  result.merge(ActsAlignStoreProviderAlgCfg(flags,
69  name="ActsDetAlignmentAlgITkPixel",
70  CondAlignStore="ActsITkPixelAlignmentStore",
71  EventAlignStore="ActsITkPixelAlignmentStore",
72  DetectorType=DetectorType.Pixel))
73 
74  elif flags.Detector.GeometryPixel:
75  from PixelConditionsAlgorithms.PixelConditionsConfig import PixelAlignCondAlgCfg
76  result.merge(PixelAlignCondAlgCfg(flags))
77  result.merge(DetectorAlignCondAlgCfg(flags,
78  name="ActsDetAlignmentCondAlgPixel",
79  InputTransforms="PixelAlignmentStore",
80  ActsTransforms="ActsPixelAlignmentStore",
81  DetectorType=DetectorType.Pixel))
82  result.merge(ActsAlignStoreProviderAlgCfg(flags,
83  name="ActsDetAlignmentAlgPixel",
84  CondAlignStore="ActsPixelAlignmentStore",
85  EventAlignStore="ActsPixelAlignmentStore",
86  DetectorType=DetectorType.Pixel))
87  return result
88 
89 
90 def SctAlignCondAlgCfg(flags):
91  result = ComponentAccumulator()
92  from ROOT.ActsTrk import DetectorType
93 
94  if flags.Detector.GeometryITkStrip:
95  from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig import ITkStripAlignCondAlgCfg
96  result.merge(ITkStripAlignCondAlgCfg(flags))
97  result.merge(DetectorAlignCondAlgCfg(flags,
98  name="ActsDetAlignmentCondAlgITkSct",
99  InputTransforms="ITkStripAlignmentStore",
100  ActsTransforms="ActsITkStripAlignmentStore",
101  DetectorType=DetectorType.Sct))
102  result.merge(ActsAlignStoreProviderAlgCfg(flags,
103  name="ActsDetAlignmentAlgITkSct",
104  CondAlignStore="ActsITkStripAlignmentStore",
105  EventAlignStore="ActsITkStripAlignmentStore",
106  DetectorType=DetectorType.Sct))
107  elif flags.Detector.GeometrySCT:
108  from SCT_ConditionsAlgorithms.SCT_ConditionsAlgorithmsConfig import SCT_AlignCondAlgCfg
109  result.merge(SCT_AlignCondAlgCfg(flags))
110  result.merge(DetectorAlignCondAlgCfg(flags,
111  name="ActsDetAlignmentCondAlgSct",
112  InputTransforms="SCTAlignmentStore",
113  ActsTransforms="ActsSCTAlignmentStore",
114  DetectorType=DetectorType.Sct))
115 
116  result.merge(ActsAlignStoreProviderAlgCfg(flags,
117  name="ActsDetAlignmentAlgSct",
118  CondAlignStore="ActsSCTAlignmentStore",
119  EventAlignStore="ActsSCTAlignmentStore",
120  DetectorType=DetectorType.Sct))
121  return result
122 
123 
124 @AccumulatorCache
125 def ActsGeometryContextAlgCfg(flags, name="GeometryContextAlg", **kwargs):
126  result = ComponentAccumulator()
127  AlignmentStores = []
128 
129  from AthenaConfiguration.Enums import ProductionStep
130 
131  if flags.Common.ProductionStep != ProductionStep.Simulation:
132  result.merge(SctAlignCondAlgCfg(flags))
133  result.merge(PixelAlignCondAlgCfg(flags))
134  if flags.Detector.GeometryITkPixel: AlignmentStores += ["ActsITkPixelAlignmentStore"]
135  if flags.Detector.GeometryITkStrip: AlignmentStores += ["ActsITkStripAlignmentStore"]
136  if flags.Detector.GeometryPixel: AlignmentStores += ["ActsPixelAlignmentStore"]
137  if flags.Detector.GeometrySCT: AlignmentStores += ["ActsSCTAlignmentStore"]
138 
139 
140  if flags.Muon.usePhaseIIGeoSetup:
141  from MuonGeoModelR4.MuonGeoModelConfig import MuonAlignStoreCfg
142  result.merge(MuonAlignStoreCfg(flags))
143 
144  if flags.Detector.GeometryMDT: AlignmentStores += ["MdtActsAlignContainer"]
145  if flags.Detector.GeometryRPC: AlignmentStores += ["RpcActsAlignContainer"]
146  if flags.Detector.GeometryTGC: AlignmentStores += ["TgcActsAlignContainer"]
147  if flags.Detector.GeometrysTGC: AlignmentStores += ["sTgcActsAlignContainer"]
148  if flags.Detector.GeometryMM: AlignmentStores += ["MmActsAlignContainer"]
149 
150  kwargs.setdefault("AlignmentStores", AlignmentStores)
151 
152  the_alg = CompFactory.ActsTrk.GeometryContextAlg(name, **kwargs)
153  result.addCondAlgo(the_alg, primary = True)
154  return result
python.SCT_ConditionsAlgorithmsConfig.SCT_AlignCondAlgCfg
def SCT_AlignCondAlgCfg(flags, name="SCT_AlignCondAlg", **kwargs)
Definition: SCT_ConditionsAlgorithmsConfig.py:9
ActsGeometryConfig.ActsTrackingGeometrySvcCfg
ComponentAccumulator ActsTrackingGeometrySvcCfg(flags, str name="ActsTrackingGeometrySvc", **kwargs)
Definition: ActsGeometryConfig.py:6
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
AlignmentAlgsConfig.DetectorAlignCondAlgCfg
def DetectorAlignCondAlgCfg(flags, name="DetectorAlignCondAlg", **kwargs)
Definition: AlignmentAlgsConfig.py:31
AlignmentAlgsConfig.PixelAlignCondAlgCfg
def PixelAlignCondAlgCfg(flags)
Setups the Acts alignment for the Pixel detectors.
Definition: AlignmentAlgsConfig.py:56
MuonGeoModelConfig.MuonAlignStoreCfg
def MuonAlignStoreCfg(flags)
Definition: MuonGeoModelConfig.py:84
AlignmentAlgsConfig.SctAlignCondAlgCfg
def SctAlignCondAlgCfg(flags)
Setups the Acts alignment for the Sct detectors.
Definition: AlignmentAlgsConfig.py:90
ITkPixelConditionsConfig.ITkPixelAlignCondAlgCfg
def ITkPixelAlignCondAlgCfg(flags, name="ITkPixelAlignCondAlg", setAlignmentFolderName="/Indet/Align", **kwargs)
Definition: ITkPixelConditionsConfig.py:53
python.ITkStripConditionsAlgorithmsConfig.ITkStripAlignCondAlgCfg
def ITkStripAlignCondAlgCfg(flags, name="ITkStripAlignCondAlg", setGeometryAlignable=False, setAlignmentFolderName="/Indet/Align", **kwargs)
Definition: ITkStripConditionsAlgorithmsConfig.py:9
AlignmentAlgsConfig.ActsGeometryContextAlgCfg
def ActsGeometryContextAlgCfg(flags, name="GeometryContextAlg", **kwargs)
Setup the Geometry context algorithm.
Definition: AlignmentAlgsConfig.py:125
DetectorVolumeSvcCfg
Definition: DetectorVolumeSvcCfg.py:1
AlignmentAlgsConfig.ActsAlignStoreProviderAlgCfg
def ActsAlignStoreProviderAlgCfg(flags, name="AlignStoreProviderAlg", **kwargs)
Definition: AlignmentAlgsConfig.py:7