5 '''Function to configure LVL1 Efex simulation comparison algorithm in the monitoring system.'''
8 from AthenaConfiguration.ComponentFactory
import CompFactory
9 from TrigT1CaloMonitoring.LVL1CaloMonitoringConfig
import L1CaloMonitorCfgHelper
10 helper = L1CaloMonitorCfgHelper(flags,CompFactory.JfexSimMonitorAlgorithm,
'JfexSimMonAlg')
11 JfexSimMonAlg = helper.alg
15 JfexSimMonAlg.jFexSRJetRoIContainer =
"L1_jFexSRJetxRoI"
16 JfexSimMonAlg.jFexLRJetRoIContainer =
"L1_jFexLRJetxRoI"
17 JfexSimMonAlg.jFexTauRoIContainer =
"L1_jFexTauxRoI"
18 JfexSimMonAlg.jFexFwdElRoIContainer =
"L1_jFexFwdElxRoI"
19 JfexSimMonAlg.jFexMETRoIContainer =
"L1_jFexMETxRoI"
20 JfexSimMonAlg.jFexSumETRoIContainer =
"L1_jFexSumETxRoI"
22 JfexSimMonAlg.jFexSRJetRoISimContainer =
"L1_jFexSRJetxRoISim"
23 JfexSimMonAlg.jFexLRJetRoISimContainer =
"L1_jFexLRJetxRoISim"
24 JfexSimMonAlg.jFexTauRoISimContainer =
"L1_jFexTauxRoISim"
25 JfexSimMonAlg.jFexFwdElRoISimContainer =
"L1_jFexFwdElxRoISim"
26 JfexSimMonAlg.jFexMETRoISimContainer =
"L1_jFexMETxRoISim"
27 JfexSimMonAlg.jFexSumETRoISimContainer =
"L1_jFexSumETxRoISim"
30 helper.defineHistogram(
'EventType,Signature,tobMismatched;h_simSummary',title=
'Sim-HW Mismatches (percentage);Event Type;Signature',
31 fillGroup=
"mismatches",
32 path=
'Expert/Sim/detail',
33 hanConfig={
"display":
"SetPalette(87),Draw=COLZTEXT"},
35 xlabels=[
"DataTowers",
"EmulatedTowers"],
36 ymin=0,ymax=len(L1CaloMonitorCfgHelper.SIGNATURES),ylabels=L1CaloMonitorCfgHelper.SIGNATURES,
37 opt=[
'kCanRebin',
'kAlwaysCreate'],merge=
"merge")
38 helper.defineHistogram(
'LBN,Signature;h_mismatched_SimReady',
39 fillGroup=
"mismatches",
40 paths=[
'Shifter/Sim',
'Expert/Sim'],
41 hanConfig={
"algorithm":
"Histogram_Empty",
"description":
"Number of events with a mismatch, per LB (x-axis), per signature (y-axis) for signatures that are deemed simulation-ready"},
42 type=
'TH2I', cutmask=
'SimulationReady',
43 title=
'Mismatched Simulation-Ready Events;LB;Signature;Events',
44 xbins=1,xmin=0,xmax=1,
45 ylabels=[
"gJ",
"gLJ",
"jJ",
"jTAU",
"jXE",
"jTE",
"eTAU",
"eEM"],
46 opt=[
'kAddBinsDynamically',
'kCanRebin',
'kAlwaysCreate'],merge=
'merge')
47 helper.defineHistogram(
'LBNString,Signature;h_mismatched_DataTowerEvts',
48 fillGroup=
"mismatches",
49 type=
'TH2I', cutmask=
'IsDataTowers',
50 title=
'Mismatched DataTower Events;LB:FirstEvtNum;Signature;Events',
51 xbins=1,xmin=0,xmax=1,
52 ybins=1,ymin=0,ymax=1,
53 opt=[
'kCanRebin',
'kAlwaysCreate'],merge=
'merge')
54 helper.defineHistogram(
'LBNString,Signature;h_mismatched_EmulatedTowerEvts',
55 fillGroup=
"mismatches",
56 type=
'TH2I', cutmask=
'IsEmulatedTowers',
57 title=
'Mismatched EmulatedTower Events;LB:FirstEvtNum;Signature;Events',
58 xbins=1,xmin=0,xmax=1,
59 ybins=1,ymin=0,ymax=1,
60 opt=[
'kCanRebin',
'kAlwaysCreate'],merge=
'merge')
61 helper.defineTree(
'LBNString,Signature,LBN,EventNumber,EventType,dataEtas,dataPhis,dataWord0s,simEtas,simPhis,simWord0s;mismatched',
62 "lbnString/string:Signature/string:lbn/l:eventNumber/l:EventType/string:dataEtas/vector<float>:dataPhis/vector<float>:dataWord0s/vector<unsigned int>:simEtas/vector<float>:simPhis/vector<float>:simWord0s/vector<unsigned int>",
63 title=
"mismatched;LBN;Signature",fillGroup=
"mismatches")
66 return helper.result()
69 if __name__==
'__main__':
71 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
75 parser = argparse.ArgumentParser(prog=
'python -m TrigT1CaloMonitoring.JfexSimMonitorAlgorithm',
76 description=
"""Used to run jFEX Monitoring\n\n
77 Example: python -m TrigT1CaloMonitoring.JfexSimMonitorAlgorithm --filesInput file.root.\n
78 Overwrite inputs using standard athena opts --filesInput, evtMax etc. see athena --help""")
79 parser.add_argument(
'--evtMax',type=int,default=-1,help=
"number of events")
80 parser.add_argument(
'--filesInput',nargs=
'+',help=
"input files",required=
True)
81 parser.add_argument(
'--skipEvents',type=int,default=0,help=
"number of events to skip")
82 args = parser.parse_args()
86 flags.Trigger.triggerConfig=
'DB'
87 flags.Input.Files = [file
for x
in args.filesInput
for file
in glob.glob(x)]
88 flags.Output.HISTFileName =
'jFexSimData_Monitoring.root'
90 flags.Exec.MaxEvents = args.evtMax
91 flags.Exec.SkipEvents = args.skipEvents
95 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
96 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
101 cfg.merge(JfexSimMonitorCfg)
103 from TrigT1CaloMonitoring.JfexInputMonitorAlgorithm
import JfexInputMonitoringConfig
105 cfg.merge(JfexInputMonitorCfg)