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.__getitem__(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 streamhitmap =
"mapsOfHitsOnTracks" + abbreviations[isub] +
"_" +
"trackhitsmap_" +
str(i//2) +
"_" +
str(i%2)
76 histotitle =
"SCT hits on tracks for " + names[isub] +
" " +
Title(i,isub)
77 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"eta_"+streamhitmap +
",phi_"+streamhitmap +
";"+streamhitmap,
79 title= histotitle +
";Index in the direction of #eta;Index in the direction of #phi",
80 path= path[isub] +
"/hits/mapsOfHitsOnTracks/",
81 xbins=sctMon.n_etabins[isub], xmin=sctMon.f_etabin[isub]-0.5, xmax=sctMon.l_etabin[isub]+0.5,
82 ybins=sctMon.n_phibins[isub], ymin=sctMon.f_phibin[isub]-0.5 , ymax=sctMon.l_phibin[isub]+0.5,
85 occMap =
"occupancymap" + abbreviations[isub] +
"_" +
str(i//2) +
"_" +
str(i%2)
86 hitoccupancy =
"hitoccupancymap" + abbreviations[isub] +
"_" +
str(i//2) +
"_" +
str(i%2)
87 histotitleR =
"SCT Hit Occupancy map for " + names[isub] +
": " +
Title(i,isub)
88 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"eta_"+occMap +
",phi_"+occMap +
",HO_"+occMap+
";" + hitoccupancy,
90 title= histotitleR +
";Index in the direction of #eta;Index in the direction of #phi",
91 path= path[isub] +
"/Noise",
92 xbins=sctMon.n_etabins[isub], xmin=sctMon.f_etabin[isub]-0.5, xmax=sctMon.l_etabin[isub]+0.5,
93 ybins=sctMon.n_phibins[isub], ymin=sctMon.f_phibin[isub]-0.5, ymax=sctMon.l_phibin[isub]+0.5,
96 noiseoccupancy =
"noiseoccupancymaptrigger" + abbreviations[isub] +
"_" +
str(i//2) +
"_" +
str(i%2)
97 m_NOTriggerItem =
"L1_RD0_EMPTY"
98 histotitletrigger =
"SCT Noise Occupancy map for " + m_NOTriggerItem +
" Trigger and " + names[isub] +
": " +
Title(i,isub)
99 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"eta_"+occMap +
",phi_"+occMap +
",NO_"+occMap+
";" + noiseoccupancy,
101 title= histotitletrigger +
";Index in the direction of #eta;Index in the direction of #phi",
102 cutmask=
"IsSelectedTrigger_"+occMap,
103 path= path[isub] +
"/Noise",
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)
107 if myMonAlg.doOnlineMon:
108 noiseoccupancyrecent =
"noiseoccupancymaprecent" + abbreviations[isub] +
"_" +
str(i//2) +
"_" +
str(i%2)
109 histotitlerecent =
"SCT Noise Occupancy map for " + m_NOTriggerItem +
" recent events and " + names[isub] +
": " +
Title(i,isub)
110 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"eta_"+occMap +
",phi_"+occMap +
",NO_"+occMap+
";" + noiseoccupancyrecent,
112 title= histotitlerecent +
";Index in the direction of #eta;Index in the direction of #phi",
113 cutmask=
"IsSelectedTriggerRecent_"+occMap,
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,
117 opt =
'kLBNHistoryDepth=30,kAlwaysCreate')
121 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"LB,HO;"+ noiseAbbreviations[isub] +
"HO_vsLB",
123 title=
"HO vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
124 path= path[isub] +
"/Noise",
125 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
128 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"LB,HO;"+ noiseAbbreviations[isub] +
"HOTrigger_vsLB",
130 title=
"HO with trigger vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
131 cutmask=
"IsSelectedTrigger",
132 path= path[isub] +
"/Noise",
133 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5)
135 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"LB,NO;"+ noiseAbbreviations[isub] +
"NO_vsLB",
137 title=
"NO vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
138 path= path[isub] +
"/Noise",
139 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
142 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"LB,NO;"+ noiseAbbreviations[isub] +
"NOTrigger_vsLB",
144 title=
"NO with Trigger vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
145 cutmask=
"IsSelectedTrigger",
146 path= path[isub] +
"/Noise",
147 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5)
149 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"LBHits,numberOfHitsFromSPs;" +
"h_HSPHitsTrigger"+titleAbbreviations[isub]+
"_vsLB",
151 title=
"Average num of SP Hits in " + titleAbbreviations[isub] +
" with trigger vs LB" +
";LumiBlock;Average number of SP Hits",
152 cutmask=
"isSelectedTriggerHits",
153 path= path[isub] +
"/Noise",
154 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5)
156 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"LBHits,numberOfHitsFromSPs;" +
"h_HSPHits"+titleAbbreviations[isub]+
"_vsLB",
158 title=
"Average num of SP Hits in " + titleAbbreviations[isub] +
" vs LB" +
";LumiBlock;Average number of SP Hits",
159 path= path[isub] +
"/Noise",
160 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
163 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"LBHits,numberOfHitsFromAllRDOs;" +
"h_HallHitsTrigger"+titleAbbreviations[isub]+
"_vsLB",
165 title=
"Average num of all Hits in " + titleAbbreviations[isub] +
" with trigger vs LB" +
";LumiBlock;Average number of SP Hits",
166 cutmask=
"isSelectedTriggerHits",
167 path= path[isub] +
"/Noise",
168 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5)
170 MonGroupArray.__getitem__(isub).
defineHistogram(varname=
"LBHits,numberOfHitsFromAllRDOs;" +
"h_HallHits"+titleAbbreviations[isub]+
"_vsLB",
172 title=
"Average num of all Hits in " + titleAbbreviations[isub] +
" vs LB" +
";LumiBlock;Average number of SP Hits",
173 path= path[isub] +
"/Noise",
174 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
178 myMonGroupGeneral.defineHistogram(varname=
"clu_size",
180 title=
"SCT Cluster Size" +
";Cluster Size;Num of Events",
182 xbins=200, xmin = 0, xmax = 200,
185 myMonGroupGeneral.defineHistogram(varname=
"LB,HO;"+
"HO_vsLB",
187 title=
"HO vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
189 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
192 myMonGroupGeneral.defineHistogram(varname=
"LB,HO;"+
"HOTrigger_vsLB",
194 title=
"HO with trigger vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
195 cutmask=
"IsSelectedTrigger",
197 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5)
199 myMonGroupGeneral.defineHistogram(varname=
"LB,NO;"+
"NO_vsLB",
201 title=
"NO vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
203 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5,
206 myMonGroupGeneral.defineHistogram(varname=
"LB,NO;"+
"NOTrigger_vsLB",
208 title=
"NO with Trigger vs LB for all region (SP noise)" +
";LumiBlock;Hit Occupancy [10^{-5}]",
209 cutmask=
"IsSelectedTrigger",
211 xbins=sctMon.NBINS_LBs, xmin = 0.5, xmax = sctMon.NBINS_LBs + 0.5)
213 myMonGroupGeneral.defineHistogram(varname=
"Bec_TBinFracAll,TBin_TBinFracAll;" +
"TBinFracAll",
215 title=
"fraction of 01X for each region" +
"; ;Fraction of 01X",
217 xbins= sctMon.N_REGIONS, xmin = 0., xmax = sctMon.N_REGIONS,
221 myMonGroupGeneral.defineHistogram(varname=
"sct_hits",
223 title=
"Total SCT Hits;Total SCT Hits;Entries",
224 path=
"/hits/summary",
225 xbins= sctMon.N_NOISE_HIT_BINS, xmin = sctMon.FIRST_NOISE_HIT_BIN, xmax = sctMon.LAST_NOISE_HIT_BIN,
228 result.merge(helper.result())