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