5 '''Function to configure LVL1 GfexInput algorithm in the monitoring system.'''
8 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
9 result = ComponentAccumulator()
14 from AthenaConfiguration.ComponentFactory
import CompFactory
15 from TrigT1CaloMonitoring.LVL1CaloMonitoringConfig
import L1CaloMonitorCfgHelper
16 helper = L1CaloMonitorCfgHelper(flags,CompFactory.GfexInputMonitorAlgorithm,
'GfexInputMonAlg')
19 from L1CaloFEXAlgos.FexEmulatedTowersConfig
import gFexEmulatedTowersCfg
20 result.merge(gFexEmulatedTowersCfg(flags,name=
"L1_gFexEmulatedTowers"))
24 groupName =
'GfexInputMonitor'
25 helper.alg.PackageName = groupName
29 trigPath =
'Expert/Inputs/gFEX'
33 eta_bins= [-4.9, -4.1,-3.5,-3.25,-3.2,-3.1,-2.9,-2.7,-2.5]
34 for eta
in np.arange (-2.2,2.2,0.2):
36 eta_bins+= [2.2,2.5,2.7,2.9,3.1,3.25,3.3,3.5,4.1,4.9]
38 helper.defineDQAlgorithm(
"Gfex_Tower_etaPhiMapFilled",
39 hanConfig={
"libname":
"libdqm_summaries.so",
"name":
"Bins_Equal_Threshold",
"BinThreshold":
"0."},
40 thresholdConfig={
"NBins":[0,32*40]},
44 helper.defineTree(
'LBN,Error,EventNumber,TowerId,TowerEta,TowerPhi,TowerEt,RefTowerEt,TowerSaturationflag,RefTowerSat;errors',
45 "lbn/I:error/string:eventNumber/l:id/i:eta/F:phi/F:et/I:ref_et/I:sat/B:ref_sat/B",
46 title=
"errors tree;LBN;Error",fillGroup=
"errors",cutmask=
'FillTree')
49 helper.defineHistogram(
'LBN,NGfexTowers;h_LBN_vs_nGfexTowers', title=
'Number of gFex towers in each event with Et > 10 GeV (MLE > 1662);LBN; gTowers per event; Number of events',
50 fillGroup =
"highEtgTowers",
52 path=f
'{trigPath}/detail',
53 hanConfig={
"description":
"The y value gives the number of gTowers with Et > 10 GeV; the z value gives the number of events"},
54 xbins=1,xmin=0,xmax=1,
55 ybins=1,ymin=0,ymax=1,
56 opt=[
'kAddBinsDynamically']
59 helper.defineHistogram(
'TowerEta,TowerPhi;h_HotTower_EtaPhiMap', title=
'gFex Tower Eta vs Phi (gTowerEt > 2 GeV (MLE > 1342)) ;#eta;#phi; Number of gTowers',
60 fillGroup =
"highEtgTowers",
64 "algorithm":
"Gfex_Tower_etaPhiMapFilled",
65 "description":
"Look for hot spots with unusual high statistics; Check <a href='./detail/h_HotTowers_posVsLBN'>detail plot</a> to get timeseries for each location",
"display":
"SetPalette(55),Draw=COL1Z"},
66 xbins=eta_bins, ybins=32,ymin=-3.2,ymax=3.2)
70 helper.defineHistogram(
'LBN,binNumber;h_HotTowers_posVsLBN',title=
'gFex Towers with Et > 2GeV (MLE > 1342);LB;32(x-1)+y',
71 path=f
"{trigPath}/detail",
72 fillGroup =
"highEtgTowers",
73 hanConfig={
"description":
"x and y correspond to axis bin numbers on <a href='../h_HotTower_EtaPhiMap'/>eta-phi plot</a>. Use this plot to check if hotspot/coldspots affected whole or part of run: turn on Projection X1 to see 1D hist of individual locations"},
75 xbins=1,xmin=0,xmax=10,
76 ybins=40*32,ymin=0.5,ymax=40*32+0.5,
77 opt=[
'kAddBinsDynamically',
'kAlwaysCreate'],merge=
"merge")
79 helper.defineHistogram(
'TowerEta,TowerPhi,TowerEt;h_HotTower_HeatMap', title=
'gFex Tower Average Et Distribution (gTowerEt > 2 GeV (MLE > 1342)) ;#eta;#phi;averageEt(MLE)',
80 fillGroup =
"highEtgTowers",
82 xbins=eta_bins, ybins=32,ymin=-3.2,ymax=3.2)
87 helper.defineHistogram(
'TowerEta,TowerPhi;h_ColdTower_EtaPhiMap', title=
'gFex Tower Eta vs Phi (gTower Et < - 2 GeV (MLE < 1182) ;#eta;#phi;Number of gTowers',
88 fillGroup =
"lowEtgTowers",
92 "algorithm":
"Gfex_Tower_etaPhiMapFilled",
93 "description":
"Look for cold spots with unusual high statistics; Check <a href='./detail/h_ColdTowers_posVsLBN'>detail plot</a> to get timeseries for each location ",
"display":
"SetPalette(55),Draw=COL1Z"},
94 xbins=eta_bins, ybins=32,ymin=-3.2,ymax=3.2)
96 helper.defineHistogram(
'LBN,binNumber;h_ColdTowers_posVsLBN',title=
'gFex Towers with Et < -2GeV (MLE < 1182);LB;32(x-1)+y',
97 path=f
"{trigPath}/detail",
98 fillGroup =
"lowEtgTowers",
99 hanConfig={
"description":
"x and y correspond to axis bin numbers on <a href='../h_ColdTower_EtaPhiMap'/>eta-phi plot</a>. Use this plot to check if hotspot/coldspots affected whole or part of run: turn on Projection X1 to see 1D hist of individual locations"},
101 xbins=1,xmin=0,xmax=10,
102 ybins=40*32,ymin=0.5,ymax=40*32+0.5,
103 opt=[
'kAddBinsDynamically',
'kAlwaysCreate'],merge=
"merge")
105 helper.defineHistogram(
'TowerEta,TowerPhi,TowerEt;h_ColdTower_HeatMap', title=
'gFex Tower Average Et Distribution (gTower Et < - 2 GeV (MLE < 1182)) ;#eta;#phi;averageEt (MLE)',
106 fillGroup =
"lowEtgTowers",
108 xbins=eta_bins, ybins=32,ymin=-3.2,ymax=3.2)
111 helper.defineHistogram(
'TowerEt;h_TowerEt', title=
'gFex Tower Et ; Et (MLE)',
112 fillGroup =
"gTowers",
114 xbins= 2000 , xmin=500, xmax=2500.0)
116 helper.defineHistogram(
'TowerEt;h_TileTowerEt', title=
'gFex Tile Tower Et ; Et (GeV)',
117 fillGroup =
"gTileTowers",
119 xbins= 255 , xmin=0, xmax=255)
121 helper.defineHistogram(
'TowerEta,TowerPhi,TowerEt;h_SaturatedTower_HeatMap', title=
'gFex Tower Average Et Distribution for Saturated gTower ;#eta;#phi;averageEt (MLE)',
122 fillGroup =
"SatgTowers",
124 xbins=eta_bins, ybins=32,ymin=-3.2,ymax=3.2)
125 helper.defineHistogram(
'TowerEta,TowerPhi;h_EtMismatchSCell', title=
'gFEX tower Et mismatch - SCells;#eta;#phi',
126 fillGroup =
"errorsSCell",
128 xbins=eta_bins, ybins=32,ymin=-3.2,ymax=3.2)
129 helper.defineHistogram(
'TowerEta,TowerPhi;h_EtMismatchTile', title=
'gFEX tower Et mismatch - Tile;#eta;#phi',
130 fillGroup =
"errorsTile",
132 xbins=eta_bins, ybins=32,ymin=-3.2,ymax=3.2)
137 acc = helper.result()