ATLAS Offline Software
SolveConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 # File: InDetAlignConfig/python/SolveConfig.py
4 # Author: David Brunner (david.brunner@cern.ch), Thomas Strebler (thomas.strebler@cern.ch)
5 
6 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7 from AthenaConfiguration.ComponentFactory import CompFactory
8 
9 
10 def AlignAlgCfg(flags, name="AlignAlgSolve", **kwargs):
11  cfg = ComponentAccumulator()
12 
13  if "GeometryManagerTool" not in kwargs:
14  from InDetAlignConfig.IDAlignToolsConfig import GeometryManagerToolCfg
15  kwargs.setdefault("GeometryManagerTool", cfg.addPublicTool(cfg.popToolsAndMerge(
16  GeometryManagerToolCfg(flags))))
17 
18  if "AlignTool" not in kwargs:
19  from InDetAlignConfig.IDAlignToolsConfig import GlobalChi2AlignToolCfg
20  kwargs.setdefault("AlignTool", cfg.popToolsAndMerge(GlobalChi2AlignToolCfg(flags)))
21 
22  if "AlignDBTool" not in kwargs:
23  from InDetAlignConfig.IDAlignToolsConfig import AlignDBToolCfg
24  kwargs.setdefault("AlignDBTool", cfg.popToolsAndMerge(AlignDBToolCfg(flags)))
25 
26  if "AlignTrackCreator" not in kwargs:
27  from InDetAlignConfig.IDAlignToolsConfig import AlignTrackCreatorCfg
28  kwargs.setdefault("AlignTrackCreator", cfg.popToolsAndMerge(
29  AlignTrackCreatorCfg(flags)))
30 
31  kwargs.setdefault("AlignTrackPreProcessor", None)
32  kwargs.setdefault("WriteNtuple", False)
33  kwargs.setdefault("SolveOnly", True)
34 
35  cfg.addEventAlgo(CompFactory.Trk.AlignAlg(name, **kwargs))
36  return cfg
37 
38 
39 
40 def SolveCfg(flags, **kwargs):
41  cfg = AlignAlgCfg(flags)
42 
43 
44 
45  if flags.InDet.Align.writeConstantsToPool:
46  objectList = []
47  tagList = []
48 
49  if flags.InDet.Align.writeSilicon:
50  if flags.InDet.Align.writeDynamicDB:
51  objectList.extend(["CondAttrListCollection#/Indet/AlignL1/ID",
52  "CondAttrListCollection#/Indet/AlignL2/PIX",
53  "CondAttrListCollection#/Indet/AlignL2/SCT",
54  "AlignableTransformContainer#/Indet/AlignL3"])
55  tagList.extend(["IndetL1Test", "IndetL2PIXTest", "IndetL2SCTTest",
56  flags.InDetAlign.tagSi])
57  else:
58  objectList.extend(["AlignableTransformContainer#/Indet/Align"])
59  tagList.extend([flags.InDet.Align.tagSi])
60 
61  if flags.InDet.Align.writeTRT:
62  if flags.InDet.Align.writeDynamicDB:
63  objectList.extend(["CondAttrListCollection#/TRT/AlignL1/TRT",
64  "AlignableTransformContainer#/TRT/AlignL2"])
65  tagList.extend(["IndetL1TRTTest", flags.InDet.Align.tagTRT])
66  else:
67  objectList.extend(["AlignableTransformContainer#/TRT/Align"])
68  tagList.extend([flags.InDet.Align.tagTRT])
69 
70  if flags.InDet.Align.writeTRTL3:
71  objectList.extend(["TRTCond::StrawDxContainer#/TRT/Calib/DX"])
72 
73  if flags.InDet.Align.writeIBLDistDB:
74  objectList.extend(["CondAttrListCollection#/Indet/IBLDist"])
75  tagList.extend([flags.InDet.Align.tagBow])
76 
77  from RegistrationServices.OutputConditionsAlgConfig import OutputConditionsAlgCfg
78  cfg.merge(OutputConditionsAlgCfg(
79  flags,
80  outputFile = flags.InDet.Align.outputConditionFile,
81  ObjectList = objectList, IOVTagList = tagList))
82 
83  cfg.addEventAlgo(CompFactory.Trk.AlignTrackCollSplitter())
84  return cfg
IDAlignToolsConfig.AlignTrackCreatorCfg
def AlignTrackCreatorCfg(flags, name="AlignTrackCreator", **kwargs)
Definition: IDAlignToolsConfig.py:279
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
OutputConditionsAlgConfig.OutputConditionsAlgCfg
def OutputConditionsAlgCfg(flags, name="OutputConditionsAlg", outputFile='condobjs.root', **kwargs)
Definition: OutputConditionsAlgConfig.py:5
SolveConfig.AlignAlgCfg
def AlignAlgCfg(flags, name="AlignAlgSolve", **kwargs)
Definition: SolveConfig.py:10
IDAlignToolsConfig.GeometryManagerToolCfg
def GeometryManagerToolCfg(flags, **kwargs)
Definition: IDAlignToolsConfig.py:206
IDAlignToolsConfig.GlobalChi2AlignToolCfg
def GlobalChi2AlignToolCfg(flags, name="GlobalChi2AlignTool", **kwargs)
Definition: IDAlignToolsConfig.py:253
IDAlignToolsConfig.AlignDBToolCfg
def AlignDBToolCfg(flags, **kwargs)
Definition: IDAlignToolsConfig.py:220
SolveConfig.SolveCfg
def SolveCfg(flags, **kwargs)
Definition: SolveConfig.py:40