ATLAS Offline Software
Loading...
Searching...
No Matches
SolveITkConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory import CompFactory
6
7
8def ITkAlignAlgCfg(flags, name="ITkAlignAlgSolve", **kwargs):
9 cfg = ComponentAccumulator()
10
11 if "GeometryManagerTool" not in kwargs:
12 from InDetAlignConfig.ITkAlignToolsConfig import ITkGeometryManagerToolCfg
13 kwargs.setdefault("GeometryManagerTool", cfg.addPublicTool(cfg.popToolsAndMerge(
14 ITkGeometryManagerToolCfg(flags))))
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(
27 ITkAlignTrackCreatorCfg(flags)))
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
38def 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
ITkAlignAlgCfg(flags, name="ITkAlignAlgSolve", **kwargs)
ITkSolveCfg(flags, **kwargs)