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