ATLAS Offline Software
Loading...
Searching...
No Matches
AccumulateConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3# File: InDetAlignConfig/python/AccumulateConfig.py
4# Author: David Brunner (david.brunner@cern.ch), Thomas Strebler (thomas.strebler@cern.ch)
5
6from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7from AthenaConfiguration.ComponentFactory import CompFactory
8
9
10
11def TrackCollectionProviderCfg(flags, name = "TrackCollectionProvider", **kwargs):
12 cfg = ComponentAccumulator()
13
14 kwargs.setdefault("InputTrkCol", flags.InDet.Align.inputTracksCollection)
15 kwargs.setdefault("MaxRetrievalErrors", 10)
16
17 cfg.setPrivateTools(CompFactory.Trk.TrackCollectionProvider(name, **kwargs))
18 return cfg
19
20def ConstrainedTrackProviderCfg(flags, name = "ConstrainedTrackProvider", **kwargs):
21 cfg = ComponentAccumulator()
22
23 if "TrackFitter" not in kwargs:
24 from TrkConfig.CommonTrackFitterConfig import InDetStandaloneTrackFitterCfg
25 kwargs.setdefault("TrackFitter", cfg.popToolsAndMerge(
26 InDetStandaloneTrackFitterCfg(flags, FillDerivativeMatrix = True)))
27
28 kwargs.setdefault("MinPt", 0.)
29
30 from PathResolver import PathResolver
31
32 kwargs.setdefault("MomentumConstraintFileName", PathResolver.FindCalibFile("InDetAlign/nullmap.root"))
33 kwargs.setdefault("MomentumConstraintHistName", "LambdaCorrectionVsEtaPhi")
34 kwargs.setdefault("ScalePMapToGeV", True)
35 kwargs.setdefault("ReduceConstraintUncertainty", 100.)
36 kwargs.setdefault("z0ConstraintFileName", "")
37 kwargs.setdefault("z0ConstraintHistName", "z0CorrectionVsEtaPhi")
38 kwargs.setdefault("d0ConstraintFileName", "")
39 kwargs.setdefault("d0ConstraintHistName", "d0CorrectionVsEtaPhi")
40 kwargs.setdefault("UseConstraintError", False)
41 kwargs.setdefault("UseConstrainedTrkOnly", True)
42 kwargs.setdefault("InputTracksCollection", flags.InDet.Align.inputTracksCollection)
43
44 cfg.setPrivateTools(CompFactory.Trk.ConstrainedTrackProvider(name, **kwargs))
45 return cfg
46
47
48def AnalyticalDerivCalcToolCfg(flags, name="AnalyticalDerivCalcTool", **kwargs):
49 cfg = ComponentAccumulator()
50
51 if "AlignModuleTool" not in kwargs:
52 from InDetAlignConfig.IDAlignToolsConfig import InDetAlignModuleToolCfg
53 kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(cfg.popToolsAndMerge(
54 InDetAlignModuleToolCfg(flags))))
55
56 kwargs.setdefault("UseIntrinsicPixelError", True)
57 kwargs.setdefault("UseIntrinsicSCTError", True)
58 kwargs.setdefault("UseIntrinsicTRTError", True)
59
60 cfg.setPrivateTools(CompFactory.Trk.AnalyticalDerivCalcTool(name, **kwargs))
61 return cfg
62
63
64def AlignTrackDresserCfg(flags, name="AlignTrackDresser", **kwargs):
65 cfg = ComponentAccumulator()
66
67 if "DerivCalcTool" not in kwargs:
68 kwargs.setdefault("DerivCalcTool", cfg.popToolsAndMerge(
70
71 cfg.setPrivateTools(CompFactory.Trk.AlignTrackDresser(name, **kwargs))
72 return cfg
73
74
75def SimpleIDNtupleToolCfg(flags, name="SimpleIDNtupleTool", **kwargs):
76 cfg = ComponentAccumulator()
77
78 if "AlignModuleTool" not in kwargs:
79 from InDetAlignConfig.IDAlignToolsConfig import InDetAlignModuleToolCfg
80 kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(cfg.popToolsAndMerge(
81 InDetAlignModuleToolCfg(flags))))
82
83 if "TrackParticleCreatorTool" not in kwargs:
84 from TrkConfig.TrkParticleCreatorConfig import TrackParticleCreatorToolCfg
85 kwargs.setdefault("TrackParticleCreatorTool", cfg.popToolsAndMerge(
86 TrackParticleCreatorToolCfg(flags)))
87
88 cfg.setPrivateTools(CompFactory.InDet.SimpleIDNtupleTool(name, **kwargs))
89 return cfg
90
91
92def AlignAlgCfg(flags, name="AlignAlgAccumulate", **kwargs):
93 cfg = ComponentAccumulator()
94
95 if "GeometryManagerTool" not in kwargs:
96 from InDetAlignConfig.IDAlignToolsConfig import InDetGeometryManagerToolCfg
97 kwargs.setdefault("GeometryManagerTool", cfg.addPublicTool(cfg.popToolsAndMerge(
98 InDetGeometryManagerToolCfg(flags))))
99
100 if "AlignTool" not in kwargs:
101 from InDetAlignConfig.IDAlignToolsConfig import GlobalChi2AlignToolCfg
102 kwargs.setdefault("AlignTool", cfg.popToolsAndMerge(GlobalChi2AlignToolCfg(flags)))
103
104 if "AlignDBTool" not in kwargs:
105 from InDetAlignConfig.IDAlignToolsConfig import InDetTrkAlignDBToolCfg
106 kwargs.setdefault("AlignDBTool", cfg.popToolsAndMerge(InDetTrkAlignDBToolCfg(flags)))
107
108 kwargs.setdefault("TrackCollectionProvider", cfg.popToolsAndMerge(
110
111 if "AlignTrackCreator" not in kwargs:
112 from InDetAlignConfig.IDAlignToolsConfig import AlignTrackCreatorCfg
113 kwargs.setdefault("AlignTrackCreator", cfg.popToolsAndMerge(
114 AlignTrackCreatorCfg(flags)))
115
116 kwargs.setdefault("AlignTrackDresser", cfg.popToolsAndMerge(AlignTrackDresserCfg(flags)))
117
118 if "AlignTrackPreProcessor" not in kwargs:
119 from InDetAlignConfig.IDAlignToolsConfig import BeamspotVertexPreProcessorCfg
120 kwargs.setdefault("AlignTrackPreProcessor", cfg.popToolsAndMerge(
121 BeamspotVertexPreProcessorCfg(flags)))
122
123 kwargs.setdefault("WriteNtuple", flags.InDet.Align.writeAlignNtuple)
124
125 if flags.InDet.Align.writeAlignNtuple:
126 kwargs.setdefault("FillNtupleTool", cfg.popToolsAndMerge(SimpleIDNtupleToolCfg(flags)))
127 kwargs.setdefault("FilePath", "{flags.InDet.Align.baseDir}/Accumulate")
128 kwargs.setdefault("FileName", "newIDalign.root")
129
130 cfg.addEventAlgo(CompFactory.Trk.AlignAlg(name, **kwargs))
131
132 return cfg
133
134def AccumulateCfg(flags):
135 cfg = AlignAlgCfg(flags)
136
137 if flags.InDet.Align.doMonitoring:
138 from InDetAlignmentMonitoringRun3.InDetAlignmentMonitoringRun3Config import (
139 InDetAlignmentMonitoringRun3Config)
140
141 cfg.merge(InDetAlignmentMonitoringRun3Config(flags, TrackCollectionName = flags.InDet.Align.inputTracksCollection))
142
143 return cfg
static std::string FindCalibFile(const std::string &logical_file_name)
TrackCollectionProviderCfg(flags, name="TrackCollectionProvider", **kwargs)
--— Setup of Tools for Trk.AlignAlg --—##
ConstrainedTrackProviderCfg(flags, name="ConstrainedTrackProvider", **kwargs)
SimpleIDNtupleToolCfg(flags, name="SimpleIDNtupleTool", **kwargs)
AlignAlgCfg(flags, name="AlignAlgAccumulate", **kwargs)
AnalyticalDerivCalcToolCfg(flags, name="AnalyticalDerivCalcTool", **kwargs)
AlignTrackDresserCfg(flags, name="AlignTrackDresser", **kwargs)