5 '''@file SCTHitNoiseMonAlg.py
8 @brief New style configuration of SCTHitNoiseMonAlg
16 return "Layer " +
str(m_layerStr) +
" Side " +
str(m_sideStr)
18 return "Disk " +
str(m_layerStr) +
" Side " +
str(m_sideStr)
23 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
26 from AthenaMonitoring
import AthMonitorCfgHelper
27 helper = AthMonitorCfgHelper(inputFlags,
'SCTHitsNoiseMonCfg')
29 from AthenaConfiguration.ComponentFactory
import CompFactory
30 myMonAlg = helper.addAlgorithm(CompFactory.SCTHitsNoiseMonAlg,
'SCTHitsNoiseMonAlg')
31 myMonAlg.TriggerChain =
""
34 myMonAlg.doTrigger = (
not inputFlags.Input.isMC
and inputFlags.DQ.useTrigger)
36 myMonAlg.doOnlineMon = inputFlags.Common.isOnline
38 from ROOT
import SCT_Monitoring
as sctMon
42 dimension = [sctMon.N_REGIONS]
44 MonGroupArray = helper.addArray(dimension,myMonAlg,
"SCTHitsNoiseMonitor",
"SCT")
46 myMonGroupGeneral = helper.addGroup(
48 "SCTHitsNoiseMonitorGeneral",
54 abbreviations = [
"ECm",
"",
"ECp"]
55 names = [
"Endcap C",
"Barrel",
"Endcap A"]
56 path = [
"SCTEC",
"SCTB",
"SCTEA"]
57 noiseAbbreviations = [
"ECC",
"BAR",
"ECA"]
58 titleAbbreviations = [
"ECm",
"BAR",
"ECp"]
59 limits = [ sctMon.N_DISKS*2, sctMon.N_BARRELS*2, sctMon.N_DISKS*2 ]
61 for isub
in range(sctMon.N_REGIONS):
62 for i
in range(limits[isub]):
64 HitsMapName =
"hitsmap" + abbreviations[isub] +
"_" +
str(i//2) +
"_" +
str(i%2)
65 HitsMapTitle =
"SCT Hitmap for " + names[isub] +
": " +
Title(i,isub)
66 MonGroupArray[isub].
defineHistogram(varname=
"eta_"+HitsMapName+
",phi_"+HitsMapName+
";"+HitsMapName,
68 title= HitsMapTitle +
";Index in the direction of #eta;Index in the direction of #phi",
69 path= path[isub] +
"/hits",
70 xbins=sctMon.n_etabins[isub], xmin=sctMon.f_etabin[isub]-0.5, xmax=sctMon.l_etabin[isub]+0.5,
71 ybins=sctMon.n_phibins[isub], ymin=sctMon.f_phibin[isub]-0.5 , ymax=sctMon.l_phibin[isub]+0.5,
72 weight=
"numberOfStrips_"+HitsMapName,
75 if myMonAlg.doOnlineMon:
76 HitsMapRecentName =
"hitsmaprecent" + abbreviations[isub] +
"_" +
str(i//2) +
"_" +
str(i%2)
77 HitsMapRecentTitle =
"SCT Hitmap for recent event for " + names[isub] +
": " +
Title(i,isub)
78 MonGroupArray[isub].
defineHistogram(varname=
"eta_"+HitsMapName+
",phi_"+HitsMapName+
";"+HitsMapRecentName,
80 title= HitsMapRecentTitle +
";Index in the direction of #eta;Index in the direction of #phi",
81 path= path[isub] +
"/hits",
82 xbins=sctMon.n_etabins[isub], xmin=sctMon.f_etabin[isub]-0.5, xmax=sctMon.l_etabin[isub]+0.5,
83 ybins=sctMon.n_phibins[isub], ymin=sctMon.f_phibin[isub]-0.5 , ymax=sctMon.l_phibin[isub]+0.5,
84 weight=
"numberOfStrips_"+HitsMapName,
85 opt=
'kLBNHistoryDepth=30,kAlwaysCreate')
87 streamhitmap =
"mapsOfHitsOnTracks" + abbreviations[isub] +
"_" +
"trackhitsmap_" +
str(i//2) +
"_" +
str(i%2)
88 histotitle =
"SCT hits on tracks for " + names[isub] +
" " +
Title(i,isub)
89 MonGroupArray[isub].
defineHistogram(varname=
"eta_"+streamhitmap +
",phi_"+streamhitmap +
";"+streamhitmap,
91 title= histotitle +
";Index in the direction of #eta;Index in the direction of #phi",
92 path= path[isub] +
"/hits/mapsOfHitsOnTracks/",
93 xbins=sctMon.n_etabins[isub], xmin=sctMon.f_etabin[isub]-0.5, xmax=sctMon.l_etabin[isub]+0.5,
94 ybins=sctMon.n_phibins[isub], ymin=sctMon.f_phibin[isub]-0.5 , ymax=sctMon.l_phibin[isub]+0.5,
97 if myMonAlg.doOnlineMon:
98 streamhitmaprecent =
"mapsOfHitsOnTracksrecent" + abbreviations[isub] +
"_" +
"trackhitsmap_" +
str(i//2) +
"_" +
str(i%2)
99 histotitlerecent =
"SCT hits on tracks for recent event for " + names[isub] +
" " +
Title(i,isub)
100 MonGroupArray[isub].
defineHistogram(varname=
"eta_"+streamhitmap +
",phi_"+streamhitmap +
";"+streamhitmaprecent,
102 title= histotitlerecent +
";Index in the direction of #eta;Index in the direction of #phi",
103 path= path[isub] +
"/hits/mapsOfHitsOnTracks/",
104 xbins=sctMon.n_etabins[isub], xmin=sctMon.f_etabin[isub]-0.5, xmax=sctMon.l_etabin[isub]+0.5,
105 ybins=sctMon.n_phibins[isub], ymin=sctMon.f_phibin[isub]-0.5 , ymax=sctMon.l_phibin[isub]+0.5,
108 occMap =
"occupancymap" + abbreviations[isub] +
"_" +
str(i//2) +
"_" +
str(i%2)
109 hitoccupancy =
"hitoccupancymap" + abbreviations[isub] +
"_" +
str(i//2) +
"_" +
str(i%2)
110 histotitleR =
"SCT Hit Occupancy map for " + names[isub] +
": " +
Title(i,isub)
111 MonGroupArray[isub].
defineHistogram(varname=
"eta_"+occMap +
",phi_"+occMap +
",HO_"+occMap+
";" + hitoccupancy,
113 title= histotitleR +
";Index in the direction of #eta;Index in the direction of #phi",
114 path= path[isub] +
"/Noise",
115 xbins=sctMon.n_etabins[isub], xmin=sctMon.f_etabin[isub]-0.5, xmax=sctMon.l_etabin[isub]+0.5,
116 ybins=sctMon.n_phibins[isub], ymin=sctMon.f_phibin[isub]-0.5, ymax=sctMon.l_phibin[isub]+0.5,
119 noiseoccupancy =
"noiseoccupancymaptrigger" + abbreviations[isub] +
"_" +
str(i//2) +
"_" +
str(i%2)
120 m_NOTriggerItem =
"L1_RD0_EMPTY"
121 histotitletrigger =
"SCT Noise Occupancy map for " + m_NOTriggerItem +
" Trigger and " + names[isub] +
": " +
Title(i,isub)
122 MonGroupArray[isub].
defineHistogram(varname=
"eta_"+occMap +
",phi_"+occMap +
",NO_"+occMap+
";" + noiseoccupancy,
124 title= histotitletrigger +
";Index in the direction of #eta;Index in the direction of #phi",
125 cutmask=
"IsSelectedTrigger_"+occMap,
126 path= path[isub] +
"/Noise",
127 xbins=sctMon.n_etabins[isub], xmin=sctMon.f_etabin[isub]-0.5, xmax=sctMon.l_etabin[isub]+0.5,
128 ybins=sctMon.n_phibins[isub], ymin=sctMon.f_phibin[isub]-0.5, ymax=sctMon.l_phibin[isub]+0.5,
131 if myMonAlg.doOnlineMon:
132 noiseoccupancyrecent =
"noiseoccupancymaprecent" + abbreviations[isub] +
"_" +
str(i//2) +
"_" +
str(i%2)
133 histotitlerecent =
"SCT Noise Occupancy map for " + m_NOTriggerItem +
" recent events and " + names[isub] +
": " +
Title(i,isub)
134 MonGroupArray[isub].
defineHistogram(varname=
"eta_"+occMap +
",phi_"+occMap +
",NO_"+occMap+
";" + noiseoccupancyrecent,
136 title= histotitlerecent +
";Index in the direction of #eta;Index in the direction of #phi",
137 cutmask=
"IsSelectedTriggerRecent_"+occMap,
138 path= path[isub] +
"/Noise",
139 xbins=sctMon.n_etabins[isub], xmin=sctMon.f_etabin[isub]-0.5, xmax=sctMon.l_etabin[isub]+0.5,
140 ybins=sctMon.n_phibins[isub], ymin=sctMon.f_phibin[isub]-0.5, ymax=sctMon.l_phibin[isub]+0.5,
141 opt =
'kLBNHistoryDepth=30,kAlwaysCreate')
147 MonGroupArray[isub].
defineHistogram(varname=
"LB,HO;"+ noiseAbbreviations[isub] +
"HO_vsLB",
149 title=
"HO vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
150 path= path[isub] +
"/Noise",
151 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
154 MonGroupArray[isub].
defineHistogram(varname=
"LB,HO;"+ noiseAbbreviations[isub] +
"HOTrigger_vsLB",
156 title=
"HO with trigger vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
157 cutmask=
"IsSelectedTrigger",
158 path= path[isub] +
"/Noise",
159 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
162 MonGroupArray[isub].
defineHistogram(varname=
"LB,NO;"+ noiseAbbreviations[isub] +
"NO_vsLB",
164 title=
"NO vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
165 path= path[isub] +
"/Noise",
166 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
169 MonGroupArray[isub].
defineHistogram(varname=
"LB,NO;"+ noiseAbbreviations[isub] +
"NOTrigger_vsLB",
171 title=
"NO with Trigger vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
172 cutmask=
"IsSelectedTrigger",
173 path= path[isub] +
"/Noise",
174 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
177 MonGroupArray[isub].
defineHistogram(varname=
"LBHits,numberOfHitsFromSPs;" +
"h_HSPHitsTrigger"+titleAbbreviations[isub]+
"_vsLB",
179 title=
"Average num of SP Hits in " + titleAbbreviations[isub] +
" with trigger vs LB" +
";LumiBlock;Average number of SP Hits",
180 cutmask=
"isSelectedTriggerHits",
181 path= path[isub] +
"/Noise",
182 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5)
184 MonGroupArray[isub].
defineHistogram(varname=
"LBHits,numberOfHitsFromSPs;" +
"h_HSPHits"+titleAbbreviations[isub]+
"_vsLB",
186 title=
"Average num of SP Hits in " + titleAbbreviations[isub] +
" vs LB" +
";LumiBlock;Average number of SP Hits",
187 path= path[isub] +
"/Noise",
188 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
191 MonGroupArray[isub].
defineHistogram(varname=
"LBHits,numberOfHitsFromAllRDOs;" +
"h_HallHitsTrigger"+titleAbbreviations[isub]+
"_vsLB",
193 title=
"Average num of all Hits in " + titleAbbreviations[isub] +
" with trigger vs LB" +
";LumiBlock;Average number of SP Hits",
194 cutmask=
"isSelectedTriggerHits",
195 path= path[isub] +
"/Noise",
196 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
199 MonGroupArray[isub].
defineHistogram(varname=
"LBHits,numberOfHitsFromAllRDOs;" +
"h_HallHits"+titleAbbreviations[isub]+
"_vsLB",
201 title=
"Average num of all Hits in " + titleAbbreviations[isub] +
" vs LB" +
";LumiBlock;Average number of SP Hits",
202 path= path[isub] +
"/Noise",
203 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
207 myMonGroupGeneral.defineHistogram(varname=
"clu_size",
209 title=
"SCT Cluster Size" +
";Cluster Size;Num of Events",
211 xbins=200, xmin = 0, xmax = 200,
214 myMonGroupGeneral.defineHistogram(varname=
"LB,HO;"+
"HO_vsLB",
216 title=
"HO vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
218 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
221 myMonGroupGeneral.defineHistogram(varname=
"LB,HO;"+
"HOTrigger_vsLB",
223 title=
"HO with trigger vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
224 cutmask=
"IsSelectedTrigger",
226 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
229 myMonGroupGeneral.defineHistogram(varname=
"LB,NO;"+
"NO_vsLB",
231 title=
"NO vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
233 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
236 myMonGroupGeneral.defineHistogram(varname=
"LB,NO;"+
"NOTrigger_vsLB",
238 title=
"NO with Trigger vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
239 cutmask=
"IsSelectedTrigger",
241 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
244 myMonGroupGeneral.defineHistogram(varname=
"Bec_TBinFracAll,TBin_TBinFracAll;" +
"TBinFracAll",
246 title=
"fraction of 01X for each region" +
"; ;Fraction of 01X",
248 xbins= sctMon.N_REGIONS, xmin = 0., xmax = sctMon.N_REGIONS,
252 myMonGroupGeneral.defineHistogram(varname=
"sct_hits",
254 title=
"Total SCT Hits;Total SCT Hits;Entries",
255 path=
"/hits/summary",
256 xbins= sctMon.N_NOISE_HIT_BINS, xmin = sctMon.FIRST_NOISE_HIT_BIN, xmax = sctMon.LAST_NOISE_HIT_BIN,
259 result.merge(helper.result())