ATLAS Offline Software
Loading...
Searching...
No Matches
AccumulateITkConfig.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
8
9def ITkConstrainedTrackProviderCfg(flags, name="ITkConstrainedTrackProvider", **kwargs):
10 cfg = ComponentAccumulator()
11
12 if "TrackFitter" not in kwargs:
13 from TrkConfig.CommonTrackFitterConfig import ITkStandaloneTrackFitterCfg
14 kwargs.setdefault("TrackFitter", cfg.popToolsAndMerge(
15 ITkStandaloneTrackFitterCfg(flags, FillDerivativeMatrix = True)))
16
17 kwargs.setdefault("MinPt", 0.)
18
19 from PathResolver import PathResolver
20
21 kwargs.setdefault("MomentumConstraintFileName", PathResolver.FindCalibFile("InDetAlign/nullmap.root"))
22 kwargs.setdefault("MomentumConstraintHistName", "LambdaCorrectionVsEtaPhi")
23 kwargs.setdefault("ScalePMapToGeV", True)
24 kwargs.setdefault("ReduceConstraintUncertainty", 100.)
25 kwargs.setdefault("z0ConstraintFileName", "")
26 kwargs.setdefault("z0ConstraintHistName", "z0CorrectionVsEtaPhi")
27 kwargs.setdefault("d0ConstraintFileName", "")
28 kwargs.setdefault("d0ConstraintHistName", "d0CorrectionVsEtaPhi")
29 kwargs.setdefault("UseConstraintError", False)
30 kwargs.setdefault("UseConstrainedTrkOnly", True)
31 kwargs.setdefault("InputTracksCollection", flags.ConstrainedTrackProvider.InputTracksCollection)
32 #kwargs.setdefault("OutputLevel", 1)
33
34
35 cfg.setPrivateTools(CompFactory.Trk.ConstrainedTrackProvider(name, **kwargs))
36 return cfg
37
38
39def ITkAnalyticalDerivCalcToolCfg(flags, name="ITkAnalyticalDerivCalcTool", **kwargs):
40 cfg = ComponentAccumulator()
41
42 if "AlignModuleTool" not in kwargs:
43 from InDetAlignConfig.ITkAlignToolsConfig import ITkAlignModuleToolCfg
44 kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(cfg.popToolsAndMerge(
45 ITkAlignModuleToolCfg(flags))))
46
47 kwargs.setdefault("UseIntrinsicPixelError", True)
48 kwargs.setdefault("UseIntrinsicSCTError", True)
49 kwargs.setdefault("UseIntrinsicTRTError", True)
50
51 cfg.setPrivateTools(CompFactory.Trk.AnalyticalDerivCalcTool(name, **kwargs))
52 return cfg
53
54
55def ITkAlignTrackDresserCfg(flags, name="ITkAlignTrackDresser", **kwargs):
56 cfg = ComponentAccumulator()
57
58 if "DerivCalcTool" not in kwargs:
59 kwargs.setdefault("DerivCalcTool", cfg.popToolsAndMerge(
61
62 cfg.setPrivateTools(CompFactory.Trk.AlignTrackDresser(name, **kwargs))
63 return cfg
64
65
66def SimpleITkNtupleToolCfg(flags, name="SimpleITkNtupleTool", **kwargs):
67 cfg = ComponentAccumulator()
68
69 if "AlignModuleTool" not in kwargs:
70 from InDetAlignConfig.ITkAlignToolsConfig import ITkAlignModuleToolCfg
71 kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(cfg.popToolsAndMerge(
72 ITkAlignModuleToolCfg(flags))))
73
74 if "TrackParticleCreatorTool" not in kwargs:
75 from TrkConfig.TrkParticleCreatorConfig import TrackParticleCreatorToolCfg
76 kwargs.setdefault("TrackParticleCreatorTool", cfg.popToolsAndMerge(
77 TrackParticleCreatorToolCfg(flags)))
78
79 cfg.setPrivateTools(CompFactory.InDet.SimpleIDNtupleTool(name, **kwargs))
80 return cfg
81
82
83def ITkAlignAlgCfg(flags, name="ITkAlignAlgAccumulate", **kwargs):
84 cfg = ComponentAccumulator()
85
86 if "GeometryManagerTool" not in kwargs:
87 from InDetAlignConfig.ITkAlignToolsConfig import ITkGeometryManagerToolCfg
88 kwargs.setdefault("GeometryManagerTool", cfg.addPublicTool(cfg.popToolsAndMerge(
89 ITkGeometryManagerToolCfg(flags))))
90
91 if "AlignTool" not in kwargs:
92 from InDetAlignConfig.ITkAlignToolsConfig import ITkGlobalChi2AlignToolCfg
93 kwargs.setdefault("AlignTool", cfg.popToolsAndMerge(ITkGlobalChi2AlignToolCfg(flags)))
94
95 if "AlignDBTool" not in kwargs:
96 from InDetAlignConfig.ITkAlignToolsConfig import ITkTrkAlignDBToolCfg
97 kwargs.setdefault("AlignDBTool", cfg.popToolsAndMerge(ITkTrkAlignDBToolCfg(flags)))
98
99 kwargs.setdefault("TrackCollectionProvider", cfg.popToolsAndMerge(
101
102 if "AlignTrackCreator" not in kwargs:
103 from InDetAlignConfig.ITkAlignToolsConfig import ITkAlignTrackCreatorCfg
104 kwargs.setdefault("AlignTrackCreator", cfg.popToolsAndMerge(
105 ITkAlignTrackCreatorCfg(flags)))
106
107 kwargs.setdefault("AlignTrackDresser", cfg.popToolsAndMerge(ITkAlignTrackDresserCfg(flags)))
108
109 if "AlignTrackPreProcessor" not in kwargs:
110 from InDetAlignConfig.ITkAlignToolsConfig import ITkBeamspotVertexPreProcessorCfg
111 kwargs.setdefault("AlignTrackPreProcessor", cfg.popToolsAndMerge(
112 ITkBeamspotVertexPreProcessorCfg(flags)))
113
114 kwargs.setdefault("WriteNtuple", flags.ITk.Align.writeAlignNtuple)
115 if kwargs["WriteNtuple"]:
116 kwargs.setdefault("FillNtupleTool", cfg.popToolsAndMerge(SimpleITkNtupleToolCfg(flags)))
117 kwargs.setdefault("FilePath", "{flags.ITk.Align.baseDir}/Accumulate")
118 kwargs.setdefault("FileName", "newIDalign.root")
119
120 cfg.addEventAlgo(CompFactory.Trk.AlignAlg(name, **kwargs))
121 return cfg
122
123
124def ITkAlignTrackCollSplitterCfg(flags, name="ITkAlignTrackCollSplitter", **kwargs):
125 cfg = ComponentAccumulator()
126 cfg.addEventAlgo(CompFactory.Trk.AlignTrackCollSplitter(name, **kwargs))
127 return cfg
128
129
130def ITkAccumulateCfg(flags, **kwargs):
131 cfg = ITkAlignAlgCfg(flags)
132 cfg.merge(ITkAlignTrackCollSplitterCfg(flags))
133
134 if flags.ITk.Align.doMonitoring:
135 from InDetAlignmentMonitoringRun3.InDetAlignmentMonitoringRun3Config import (
136 InDetAlignmentMonitoringRun3Config)
137 cfg.merge(InDetAlignmentMonitoringRun3Config(flags))
138
139 return cfg
static std::string FindCalibFile(const std::string &logical_file_name)
ITkAlignTrackDresserCfg(flags, name="ITkAlignTrackDresser", **kwargs)
ITkAnalyticalDerivCalcToolCfg(flags, name="ITkAnalyticalDerivCalcTool", **kwargs)
ITkConstrainedTrackProviderCfg(flags, name="ITkConstrainedTrackProvider", **kwargs)
--— Setup of Tools for Trk.AlignAlg --—##
ITkAccumulateCfg(flags, **kwargs)
ITkAlignTrackCollSplitterCfg(flags, name="ITkAlignTrackCollSplitter", **kwargs)
ITkAlignAlgCfg(flags, name="ITkAlignAlgAccumulate", **kwargs)
SimpleITkNtupleToolCfg(flags, name="SimpleITkNtupleTool", **kwargs)