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())