ATLAS Offline Software
SolveITkConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 
4 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory import CompFactory
6 
7 
8 def ITkAlignAlgCfg(flags, name="ITkAlignAlgSolve", **kwargs):
10 
11  if "GeometryManagerTool" not in kwargs:
12  from InDetAlignConfig.ITkAlignToolsConfig import ITkGeometryManagerToolCfg
13  kwargs.setdefault("GeometryManagerTool", cfg.addPublicTool(cfg.popToolsAndMerge(
15 
16  if "AlignTool" not in kwargs:
17  from InDetAlignConfig.ITkAlignToolsConfig import ITkGlobalChi2AlignToolCfg
18  kwargs.setdefault("AlignTool", cfg.popToolsAndMerge(ITkGlobalChi2AlignToolCfg(flags)))
19 
20  if "AlignDBTool" not in kwargs:
21  from InDetAlignConfig.ITkAlignToolsConfig import ITkTrkAlignDBToolCfg
22  kwargs.setdefault("AlignDBTool", cfg.popToolsAndMerge(ITkTrkAlignDBToolCfg(flags)))
23 
24  if "AlignTrackCreator" not in kwargs:
25  from InDetAlignConfig.ITkAlignToolsConfig import ITkAlignTrackCreatorCfg
26  kwargs.setdefault("AlignTrackCreator", cfg.popToolsAndMerge(
28 
29  kwargs.setdefault("AlignTrackPreProcessor", None)
30  kwargs.setdefault("WriteNtuple", False)
31  kwargs.setdefault("SolveOnly", True)
32 
33  cfg.addEventAlgo(CompFactory.Trk.AlignAlg(name, **kwargs))
34  return cfg
35 
36 
37 
38 def ITkSolveCfg(flags, **kwargs):
39  cfg = ITkAlignAlgCfg(flags)
40 
41 
42 
43  if flags.ITk.Align.writeConstantsToPool:
44  objectList = []
45  tagList = []
46 
47  if flags.ITk.Align.writeSilicon:
48  if flags.ITk.Align.writeDynamicDB:
49  objectList.extend(["CondAttrListCollection#/Indet/AlignL1/ID",
50  "CondAttrListCollection#/Indet/AlignL2/PIX",
51  "CondAttrListCollection#/Indet/AlignL2/SCT",
52  "AlignableTransformContainer#/Indet/AlignL3"])
53  tagList.extend(["IndetL1Test", "IndetL2PIXTest", "IndetL2SCTTest",
54  flags.ITk.Align.tagSi])
55  else:
56  objectList.extend(["AlignableTransformContainer#/Indet/Align"])
57  tagList.extend([flags.ITk.Align.tagSi])
58 
59 
60  from RegistrationServices.OutputConditionsAlgConfig import OutputConditionsAlgCfg
61  cfg.merge(OutputConditionsAlgCfg(
62  flags,
63  outputFile = f"{flags.ITk.Align.baseDir}/Solve/{flags.ITk.Align.outputConditionFile}",
64  ObjectList = objectList, IOVTagList = tagList, WriteIOV = False))
65 
66  cfg.addEventAlgo(CompFactory.Trk.AlignTrackCollSplitter())
67  return cfg
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
OutputConditionsAlgConfig.OutputConditionsAlgCfg
def OutputConditionsAlgCfg(flags, name="OutputConditionsAlg", outputFile='condobjs.root', **kwargs)
Definition: OutputConditionsAlgConfig.py:5
ITkAlignToolsConfig.ITkGeometryManagerToolCfg
def ITkGeometryManagerToolCfg(flags, name="ITkGeometryManagerTool", **kwargs)
Definition: ITkAlignToolsConfig.py:11
SolveITkConfig.ITkAlignAlgCfg
def ITkAlignAlgCfg(flags, name="ITkAlignAlgSolve", **kwargs)
Definition: SolveITkConfig.py:8
ITkAlignToolsConfig.ITkTrkAlignDBToolCfg
def ITkTrkAlignDBToolCfg(flags, name="ITkTrkAlignDBTool", **kwargs)
Definition: ITkAlignToolsConfig.py:99
SolveITkConfig.ITkSolveCfg
def ITkSolveCfg(flags, **kwargs)
Definition: SolveITkConfig.py:38
ITkAlignToolsConfig.ITkAlignTrackCreatorCfg
def ITkAlignTrackCreatorCfg(flags, name="ITkAlignTrackCreator", **kwargs)
Definition: ITkAlignToolsConfig.py:183
ITkAlignToolsConfig.ITkGlobalChi2AlignToolCfg
def ITkGlobalChi2AlignToolCfg(flags, name="ITkGlobalChi2AlignTool", **kwargs)
Definition: ITkAlignToolsConfig.py:148