11 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
12 acc = ComponentAccumulator()
13
14 from AthenaMonitoring import AthMonitorCfgHelper
15 helper = AthMonitorCfgHelper(flags, "InDetAlignmentMonitoringRun3")
16
17 from AthenaConfiguration.ComponentFactory import CompFactory
18 from InDetTrackSelectionTool.InDetTrackSelectionToolConfig import (Align_InDetTrackSelectionToolCfg)
19
20 from AthenaMonitoring.FilledBunchFilterToolConfig import FilledBunchFilterToolCfg
21 from AthenaConfiguration.Enums import BeamType
22
23 trackCollectionName = "ExtendedTracks"
24 trackCollectionName2 = "NONE"
25 if ("TrackName" in kwargs):
26 trackCollectionName = kwargs["TrackName"]
27 if ("TrackName2" in kwargs):
28 trackCollectionName2 = kwargs["TrackName2"]
29
30 if ( flags.DQ.Environment in ('online', 'tier0', 'tier0Raw', 'tier0ESD') ):
31
32
33 kwargsIDAlignMonGenericTracksAlg = {}
34 kwargsIDAlignMonGenericTracksAlg.update({'vxPrimContainerName' : 'PrimaryVertices'})
35 kwargsIDAlignMonGenericTracksAlg.update({'TrackName' : trackCollectionName} )
36 if ("NONE" not in trackCollectionName2): kwargsIDAlignMonGenericTracksAlg.update({'TrackName2' : trackCollectionName2})
37
38 from InDetAlignmentMonitoringRun3.IDAlignMonGenericTracksAlgCfg import IDAlignMonGenericTracksAlgCfg
39 inDetAlignMonGenericTracksAlg = helper.addAlgorithm(CompFactory.IDAlignMonGenericTracksAlg, 'IDAlignMonGenericTracksAlg'+'_'+kwargsIDAlignMonGenericTracksAlg["TrackName"],
40 useExtendedPlots = True,
41 ApplyTrackSelection = False)
42 for k, v in kwargsIDAlignMonGenericTracksAlg.items():
43 setattr(inDetAlignMonGenericTracksAlg, k, v)
44
45 inDetAlignMonGenericTracksAlg.TrackSelectionTool = acc.popToolsAndMerge(Align_InDetTrackSelectionToolCfg(flags))
46
48
49
50
51
52
53 kwargsIDAlignMonResidualsAlg = { 'TrackName' : kwargsIDAlignMonGenericTracksAlg["TrackName"]}
54 if ("NONE" not in trackCollectionName2): kwargsIDAlignMonResidualsAlg.update({'TrackName2' : trackCollectionName2})
55
56 from InDetAlignmentMonitoringRun3.IDAlignMonResidualsAlgCfg import IDAlignMonResidualsAlgCfg
57 inDetAlignMonResidualsAlg = helper.addAlgorithm(CompFactory.IDAlignMonResidualsAlg, 'IDAlignMonResidualsAlg'+'_'+kwargsIDAlignMonResidualsAlg["TrackName"],
58 ApplyTrackSelection = False)
59
60 for k, v in kwargsIDAlignMonResidualsAlg.items():
61 setattr(inDetAlignMonResidualsAlg, k, v)
62
63 inDetAlignMonResidualsAlg.TrackSelectionTool = acc.popToolsAndMerge(Align_InDetTrackSelectionToolCfg(flags))
64
66
67
68
69
70
71 if flags.Beam.Type is not BeamType.Cosmics:
72 kwargsIDAlignMonPVBiasesAlg = {
73 'vxContainerName' : 'PrimaryVertices',
74 }
75
76 from InDetAlignmentMonitoringRun3.IDAlignMonPVBiasesAlgCfg import IDAlignMonPVBiasesAlgCfg
77 inDetAlignMonPVBiasesAlg = helper.addAlgorithm(CompFactory.IDAlignMonPVBiasesAlg, 'IDAlignMonPVBiasesAlg',
78 addFilterTools = [FilledBunchFilterToolCfg(flags)])
79
80 for k, v in kwargsIDAlignMonPVBiasesAlg.items():
81 setattr(inDetAlignMonPVBiasesAlg, k, v)
82
83 from TrkConfig.TrkVertexFitterUtilsConfig import TrackToVertexIPEstimatorCfg
84 TrackToVertexIPEstimator = acc.popToolsAndMerge(
85 TrackToVertexIPEstimatorCfg(flags, name='TrackToVertexIPEstimator'))
86
87 inDetAlignMonPVBiasesAlg.TrackToVertexIPEstimator = TrackToVertexIPEstimator
88
89
91
92
93
94 acc.merge(helper.result())
95
96 return acc
97