7 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8 acc = ComponentAccumulator()
9 forceOnline = False
10 doHitMonAlg = True
11 doClusterMonAlg = True
12 doErrorMonAlg = True
13 doMVAMonAlg = True
14
15
16 if flags.DQ.Environment in ('online', 'tier0', 'tier0Raw'):
17 if forceOnline:
18 isOnline = True
19 else:
20 isOnline = flags.Common.isOnline
21 if not isOnline: doMVAMonAlg=False
22 kwargsHitMonAlg = { 'doOnline' : isOnline,
23 'doLumiBlock' : not isOnline,
24 'doFEPlots' : True,
25 'RDOName' : 'PixelRDOs',
26 }
27
28 kwargsClusMonAlg = { 'doOnline' : isOnline,
29 'doLumiBlock' : not isOnline,
30 'doLowOccupancy' : flags.Beam.Type is BeamType.Cosmics,
31 'doHeavyIonMon' : flags.Reco.EnableHI,
32 'doFEPlots' : True,
33 'ClusterName' : 'PixelClusters',
34 'TrackName' : 'CombinedInDetTracks',
35 }
36
37 kwargsErrMonAlg = { 'doOnline' : isOnline,
38 'doLumiBlock' : not isOnline
39 }
40
41 kwargsMVAMonAlg = { 'calibFolder' : '20220503',
42 'RDOName' : 'PixelRDOs',
43 'ClusterName' : 'PixelClusters',
44 'TrackParticleContainerName' : 'InDetTrackParticles',
45 }
46
47 if doHitMonAlg or doClusterMonAlg or doErrorMonAlg or doMVAMonAlg:
48 from PixelConditionsAlgorithms.PixelConditionsConfig import PixelDetectorElementStatusAlgActiveOnlyCfg
49 acc.merge(PixelDetectorElementStatusAlgActiveOnlyCfg(flags))
50
51 from AthenaMonitoring import AthMonitorCfgHelper
52 helper = AthMonitorCfgHelper(flags, "NewPixelMonitoring")
53
54 from AthenaConfiguration.ComponentFactory import CompFactory
55 from AthenaMonitoring.FilledBunchFilterToolConfig import FilledBunchFilterToolCfg
56
57 if doHitMonAlg:
58 from PixelMonitoring.PixelAthHitMonAlgCfg import PixelAthHitMonAlgCfg
59 pixelAthHitMonAlg = helper.addAlgorithm(CompFactory.PixelAthHitMonAlg, 'PixelAthHitMonAlg', addFilterTools = [FilledBunchFilterToolCfg(flags)])
60 kwargsHitMonAlg.setdefault( 'PixelDetElStatus', 'PixelDetectorElementStatus' )
61 kwargsHitMonAlg.setdefault( 'PixelDetElStatusActiveOnly', 'PixelDetectorElementStatusActiveOnly')
62 for k, v in kwargsHitMonAlg.items():
63 setattr(pixelAthHitMonAlg, k, v)
65
66 if doClusterMonAlg:
67 from PixelMonitoring.PixelAthClusterMonAlgCfg import PixelAthClusterMonAlgCfg
68 pixelAthClusterMonAlg = helper.addAlgorithm(CompFactory.PixelAthClusterMonAlg, 'PixelAthClusterMonAlg', addFilterTools = [FilledBunchFilterToolCfg(flags)])
69 kwargsClusMonAlg.setdefault( 'PixelDetElStatus', 'PixelDetectorElementStatus' )
70 kwargsClusMonAlg.setdefault( 'PixelDetElStatusActiveOnly', 'PixelDetectorElementStatusActiveOnly')
71 for k, v in kwargsClusMonAlg.items():
72 setattr(pixelAthClusterMonAlg, k, v)
73
74 from InDetConfig.InDetTrackSelectionToolConfig import InDetTrackSelectionTool_TightPrimary_TrackTools_Cfg
75 TrackSelectionTool = acc.popToolsAndMerge(
76 InDetTrackSelectionTool_TightPrimary_TrackTools_Cfg(
77 flags, maxNPixelHoles = 2))
78 if flags.Beam.Type is not BeamType.Cosmics:
79 TrackSelectionTool.maxD0 = 2
80 TrackSelectionTool.maxZ0 = 150
81
82 pixelAthClusterMonAlg.TrackSelectionTool = TrackSelectionTool
83
84 from InDetConfig.InDetTrackHoleSearchConfig import (
85 InDetTrackHoleSearchToolCfg)
86 pixelAthClusterMonAlg.HoleSearchTool = acc.popToolsAndMerge(
87 InDetTrackHoleSearchToolCfg(flags))
88
89 from InDetConfig.InDetTestPixelLayerConfig import InDetTestPixelLayerToolInnerCfg
90 pixelAthClusterMonAlg.TestPixelLayerTool = acc.popToolsAndMerge (InDetTestPixelLayerToolInnerCfg (flags,'TestPixelLayerTool'))
91
93
94 if doErrorMonAlg:
95 from PixelMonitoring.PixelAthErrorMonAlgCfg import PixelAthErrorMonAlgCfg
96 pixelAthMonAlgErrorMonAlg = helper.addAlgorithm(CompFactory.PixelAthErrorMonAlg, 'PixelAthErrorMonAlg', addFilterTools = [FilledBunchFilterToolCfg(flags)])
97 kwargsErrMonAlg.setdefault( 'PixelDetElStatusActiveOnly', 'PixelDetectorElementStatusActiveOnly')
98 kwargsErrMonAlg.setdefault( 'PixelByteStreamErrs', 'PixelByteStreamErrs')
99 kwargsErrMonAlg.setdefault( 'UseByteStreamFEI4', not flags.Input.isMC)
100 kwargsErrMonAlg.setdefault( 'UseByteStreamFEI3', not flags.Input.isMC)
101 kwargsErrMonAlg.setdefault( 'UseByteStreamRD53', False)
102 for k, v in kwargsErrMonAlg.items():
103 setattr(pixelAthMonAlgErrorMonAlg, k, v)
105
106 if doMVAMonAlg:
107 from PixelMonitoring.PixelAthMVAMonAlgCfg import PixelAthMVAMonAlgCfg
108 pixelAthMVAMonAlg = helper.addAlgorithm(CompFactory.PixelAthMVAMonAlg, 'PixelAthMVAMonAlg', addFilterTools = [FilledBunchFilterToolCfg(flags)])
109 kwargsMVAMonAlg.setdefault( 'PixelDetElStatus', 'PixelDetectorElementStatus' )
110 kwargsMVAMonAlg.setdefault( 'PixelDetElStatusActiveOnly', 'PixelDetectorElementStatusActiveOnly')
111 for k, v in kwargsMVAMonAlg.items():
112 setattr(pixelAthMVAMonAlg, k, v)
113
114 from InDetConfig.InDetTrackSelectionToolConfig import InDetTrackSelectionTool_TightPrimary_TrackTools_Cfg
115 TrackSelectionTool = acc.popToolsAndMerge(
116 InDetTrackSelectionTool_TightPrimary_TrackTools_Cfg(flags,
117 maxNPixelHoles
118= 1))
119 if flags.Beam.Type is not BeamType.Cosmics:
120 TrackSelectionTool.maxD0 = 2
121 TrackSelectionTool.maxZ0 = 150
122
123 from InDetConfig.InDetTrackHoleSearchConfig import InDetTrackHoleSearchToolCfg
124 pixelAthMVAMonAlg.TrackSelectionTool = TrackSelectionTool
125 pixelAthMVAMonAlg.HoleSearchTool = acc.popToolsAndMerge(InDetTrackHoleSearchToolCfg(flags))
126 from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg
127 pixelAthMVAMonAlg.Extrapolator = acc.popToolsAndMerge(InDetExtrapolatorCfg(flags))
129
130 acc.merge(helper.result())
131
132 return acc
133