10def SCTTracksMonAlgConfig(flags):
11 '''Function to configures some algorithms in the monitoring system.'''
12
15 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
16 result = ComponentAccumulator()
17
18
19
20 from AthenaMonitoring import AthMonitorCfgHelper
21 helper = AthMonitorCfgHelper(flags, 'SCTTracksMonCfg')
22
23
24
30 from AthenaConfiguration.ComponentFactory import CompFactory
31 from TrkConfig.TrkResidualPullCalculatorConfig import (
32 ResidualPullCalculatorCfg)
33 myMonAlg = helper.addAlgorithm(CompFactory.SCTTracksMonAlg, 'SCTTracksMonAlg',
34 ResPullCalc = result.popToolsAndMerge(
35 ResidualPullCalculatorCfg(flags)))
36
37 from AthenaConfiguration.Enums import BeamType
38 if flags.Beam.Type is BeamType.Collisions:
39 from AthenaMonitoring.FilledBunchFilterToolConfig import FilledBunchFilterToolCfg
40 myMonAlg.FilterTools += [result.popToolsAndMerge(FilledBunchFilterToolCfg(flags))]
41
42 doTrigger = False
43 if not flags.Input.isMC:
44 if flags.Trigger.doHLT:
45 doTrigger = True
46 myMonAlg.doTrigger = doTrigger
47
48
49
50
51
52
53
54
56 myMonAlg.TriggerChain = ''
57
58
59 from TrkConfig.TrkTrackSummaryToolConfig import InDetTrackSummaryToolCfg
60 myMonAlg.TrackSummaryTool = result.popToolsAndMerge(InDetTrackSummaryToolCfg(flags))
61
62
65
66
67
68
69
70
71
72
73 myMonGroup = helper.addGroup(
74 myMonAlg,
75 "SCTTracksMonitor",
76 "SCT/GENERAL/"
77 )
78
79
81 regionNames = ["EndCapC", "Barrel", "EndCapA"]
82 N_REGIONS = len(regionNames)
83 s_triggerNames = ["RNDM", "BPTX", "L1CAL", "TGC", "RPC", "MBTS", "COSM", "Calib"]
84 N_TRIGGER_TYPES = len(s_triggerNames)
85 N_HIT_BINS = 50
86 FIRST_HIT_BIN = 0
87 LAST_HIT_BIN = N_HIT_BINS-FIRST_HIT_BIN-1
88 myMonGroup.defineHistogram(varname="trk_N",
89 type="TH1F",
90 title="Number of tracks"+";Number of Tracks",
91 path="tracks",
92 xbins=400, xmin=0., xmax=4000.,
93 opt='kAlwaysCreate')
94 myMonGroup.defineHistogram(varname="trk_chi2",
95 type="TH1F",
96 title="Track #chi^{2} div ndf"+";Number of track #chi^{2}/NDF",
97 path="tracks",
98 xbins=150, xmin=0., xmax=150.,
99 opt='kAlwaysCreate')
100 myMonGroup.defineHistogram(varname="trk_d0",
101 type="TH1F",
102 title="Track d0"+";d0 [mm]",
103 path="tracks",
104 xbins=160, xmin=-40., xmax=40.,
105 opt='kAlwaysCreate')
106 myMonGroup.defineHistogram(varname="trk_z0",
107 type="TH1F",
108 title="Track z0"+";z0 [mm]",
109 path="tracks",
110 xbins=200, xmin=-200., xmax=200.,
111 opt='kAlwaysCreate')
112 myMonGroup.defineHistogram(varname="trk_phi",
113 type="TH1F",
114 title="Track Phi"+";#phi [rad]",
115 path="tracks",
116 xbins=160, xmin=-4., xmax=4.,
117 opt='kAlwaysCreate')
118 myMonGroup.defineHistogram(varname="trk_pt",
119 type="TH1F",
120 title="Track P_{T}"+";P_{T} [GeV]",
121 path="tracks",
122 xbins=150, xmin=0., xmax=150.,
123 opt='kAlwaysCreate')
124 myMonGroup.defineHistogram(varname="trk_sct_hits",
125 type="TH1F",
126 title="SCT HITS per single Track"+";Num of Hits",
127 path="tracks",
128 xbins=N_HIT_BINS, xmin=FIRST_HIT_BIN, xmax=LAST_HIT_BIN,
129 opt='kAlwaysCreate')
130 myMonGroup.defineHistogram(varname="trk_eta",
131 type="TH1F",
132 title="Track Eta"+";#eta",
133 path="tracks",
134 xbins=160, xmin=-4., xmax=4.,
135 opt='kAlwaysCreate')
136
137 myMonGroup.defineHistogram(varname="trackTriggers",
138 type="TH1I",
139 title="Tracks for different trigger types",
140 path="tracks",
141 xbins=N_TRIGGER_TYPES, xmin=-0.5, xmax=7.5, xlabels=s_triggerNames,
142 opt='kAlwaysCreate')
143 myMonGroup.defineHistogram(varname="region"+","+"hitsRegion"+";"+"SCTTrackRate",
144 type="TProfile",
145 title="Track per event for SCT regions",
146 path="tracks",
147 xbins=3, xmin=0.0, xmax=3.0, xlabels=regionNames,
148 opt='kAlwaysCreate')
149 myMonGroup.defineHistogram(varname="tracksPerRegion",
150 type="TH1F",
151 title="Number of tracks in eta regions",
152 path="tracks",
153 xbins=N_REGIONS, xmin=0, xmax=N_REGIONS, xlabels=regionNames,
154 opt='kAlwaysCreate')
155
156
157 for region in regionNames:
158 myMonGroup.defineHistogram(varname="total"+region+"Residual",
159 title="Overall Residual Distribution for the "+region+";Residual [mm]",
160 type="TH1F", path="tracks",
161 xbins=100, xmin=-0.5, xmax=0.5)
162 myMonGroup.defineHistogram(varname="total"+region+"Pull",
163 title="Overall Pull Distribution for the "+region+";Pull",
164 type="TH1F", path="tracks",
165 xbins=100, xmin=-5, xmax=5)
166
172
173
174 result.merge(helper.result())
175 return result
176