CMS 3D CMS Logo

EgHLTMonElemFuncs.cc
Go to the documentation of this file.
2 
8 
9 
10 using namespace egHLT;
11 
13 {
14  addStdHist<OffEle,float>(histVec,baseName+"_energy",baseName+" reco CaloEnergy;reco CaloEnergy (GeV)",bins.energy, &OffEle::energy);
15  addStdHist<OffEle,float>(histVec,baseName+"_et",baseName+" E_{T};E_{T} (GeV)",bins.et,&OffEle::et);
16  addStdHist<OffEle,float>(histVec,baseName+"_etHigh",baseName+" E_{T};E_{T} (GeV)",bins.etHigh,&OffEle::et);
17  addStdHist<OffEle,float>(histVec,baseName+"_etSC",baseName+" E^{SC}_{T};E^{SC}_{T} (GeV)",bins.et,&OffEle::etSC);
18  addStdHist<OffEle,float>(histVec,baseName+"_eta",baseName+" #eta;#eta",bins.eta,&OffEle::detEta);
19  addStdHist<OffEle,float>(histVec,baseName+"_phi",baseName+" #phi;#phi (rad)",bins.phi,&OffEle::phi);
20  // addStdHist<OffEle,int>(histVec,baseName+"_charge",baseName+" Charge; charge",bins.charge,&OffEle::charge);
21 
22  addStdHist<OffEle,float>(histVec,baseName+"_hOverE",baseName+" H/E; H/E",bins.hOverE,&OffEle::hOverE);
23  //----Morse
24  addStdHist<OffEle,float>(histVec,baseName+"_maxr9",baseName+" MAXR9 ; MAXR9",bins.maxr9,&OffEle::r9);
25  addStdHist<OffEle,float>(histVec,baseName+"_HLTenergy",baseName+" HLT Energy;HLT Energy (GeV)",bins.HLTenergy,&OffEle::hltEnergy);
26  addStdHist<OffEle,float>(histVec,baseName+"_HLTeta",baseName+" HLT #eta;HLT #eta",bins.HLTeta,&OffEle::hltEta);
27  addStdHist<OffEle,float>(histVec,baseName+"_HLTphi",baseName+" HLT #phi;HLT #phi (rad)",bins.HLTphi,&OffEle::hltPhi);
28  //-------
29  addStdHist<OffEle,float>(histVec,baseName+"_dPhiIn",baseName+" #Delta #phi_{in}; #Delta #phi_{in}",bins.dPhiIn,&OffEle::dPhiIn);
30  addStdHist<OffEle,float>(histVec,baseName+"_dEtaIn",baseName+" #Delta #eta_{in}; #Delta #eta_{in}",bins.dEtaIn,&OffEle::dEtaIn);
31  addStdHist<OffEle,float>(histVec,baseName+"_sigmaIEtaIEta",baseName+"#sigma_{i#etai#eta}; #sigma_{i#etai#eta}",bins.sigEtaEta,&OffEle::sigmaIEtaIEta);
32  addStdHist<OffEle,float>(histVec,baseName+"_epIn",baseName+"E/p_{in}; E/p_{in}",bins.eOverP,&OffEle::epIn);
33  addStdHist<OffEle,float>(histVec,baseName+"_epOut",baseName+"E/p_{out}; E/p_{out}",bins.eOverP,&OffEle::epOut);
34  addStdHist<OffEle,float>(histVec,baseName+"_invEInvP",baseName+"1/E -1/p; 1/E - 1/p",bins.invEInvP,&OffEle::invEInvP);
35 
36  addStdHist<OffEle,float>(histVec,baseName+"_e2x5Over5x5",baseName+"E^{2x5}/E^{5x5}; E^{2x5}/E^{5x5}",bins.e2x5,&OffEle::e2x5MaxOver5x5);
37  addStdHist<OffEle,float>(histVec,baseName+"_e1x5Over5x5",baseName+"E^{1x5}/E^{5x5}; E^{1x5}/E^{5x5}",bins.e1x5,&OffEle::e1x5Over5x5);
38  //addStdHist<OffEle,float>(histVec,baseName+"_isolEM",baseName+"Isol EM; Isol EM (GeV)",bins.isolEm,&OffEle::isolEm);
39  //addStdHist<OffEle,float>(histVec,baseName+"_isolHad",baseName+"Isol Had; Isol Had (GeV)",bins.isolHad,&OffEle::isolHad);
40  //addStdHist<OffEle,float>(histVec,baseName+"_isolPtTrks",baseName+"Isol Pt Trks; Isol Pt Tracks (GeV/c)",bins.isolPtTrks,&OffEle::isolPtTrks);
41  addStdHist<OffEle,float>(histVec,baseName+"_hltIsolTrksEle",baseName+"HLT Ele Isol Trks; HLT Ele Iso Tracks (GeV/c)",bins.isolPtTrks,&OffEle::hltIsolTrksEle);
42  //addStdHist<OffEle,float>(histVec,baseName+"_hltIsolTrksPho",baseName+"HLT Pho Isol Trks; HLT Pho Iso Tracks (GeV/c)",bins.isolPtTrks,&OffEle::hltIsolTrksPho);
43  addStdHist<OffEle,float>(histVec,baseName+"_hltIsolHad",baseName+"HLT Isol Had; HLT Isol Had (GeV)",bins.isolHad,&OffEle::hltIsolHad);
44  addStdHist<OffEle,float>(histVec,baseName+"_hltIsolEm",baseName+"HLT Isol Em; HLT Isol Em (GeV)",bins.isolEm,&OffEle::hltIsolEm);
45  addStdHist<OffEle,float>(histVec,baseName+"_DeltaE",baseName+"HLT Energy - reco SC Energy;HLT Energy - reco SC Energy (GeV)",bins.deltaE,&OffEle::DeltaE);
46 
47  histVec.push_back(new MonElemManager2D<OffEle,float,float>(iBooker, baseName+"_etaVsPhi",
48  baseName+" #eta vs #phi;#eta;#phi (rad)",
49  bins.etaVsPhi.nrX,bins.etaVsPhi.xMin,bins.etaVsPhi.xMax,
50  bins.etaVsPhi.nrY,bins.etaVsPhi.yMin,bins.etaVsPhi.yMax,
52  histVec.push_back(new MonElemManager2D<OffEle,float,float>(iBooker, baseName+"_HLTetaVsHLTphi",
53  baseName+" HLT #eta vs HLT #phi;HLT #eta;HLT #phi (rad)",
54  bins.etaVsPhi.nrX,bins.etaVsPhi.xMin,bins.etaVsPhi.xMax,
55  bins.etaVsPhi.nrY,bins.etaVsPhi.yMin,bins.etaVsPhi.yMax,
57 }
58 
60 {
61  addStdHist<OffPho,float>(histVec,baseName+"_energy",baseName+" reco Energy;reco Energy (GeV)",bins.energy, &OffPho::energy);
62  addStdHist<OffPho,float>(histVec,baseName+"_et",baseName+" E_{T};E_{T} (GeV)",bins.et,&OffPho::et);
63  addStdHist<OffPho,float>(histVec,baseName+"_etHigh",baseName+" E_{T};E_{T} (GeV)",bins.etHigh,&OffPho::et);
64  addStdHist<OffPho,float>(histVec,baseName+"_etSC",baseName+" E^{SC}_{T};E^{SC}_{T} (GeV)",bins.et,&OffPho::etSC);
65  addStdHist<OffPho,float>(histVec,baseName+"_eta",baseName+" #eta;#eta",bins.eta,&OffPho::detEta);
66  addStdHist<OffPho,float>(histVec,baseName+"_phi",baseName+" #phi;#phi (rad)",bins.phi,&OffPho::phi);
67 
68  addStdHist<OffPho,float>(histVec,baseName+"_hOverE",baseName+" H/E; H/E",bins.hOverE,&OffPho::hOverE);
69  //----Morse
70  //addStdHist<OffPho,float>(histVec,baseName+"_r9",baseName+" R9 ; R9",bins.r9,&OffPho::r9);
71  //addStdHist<OffPho,float>(histVec,baseName+"_minr9",baseName+" MINR9 ; MINR9",bins.minr9,&OffPho::r9);
72  addStdHist<OffPho,float>(histVec,baseName+"_maxr9",baseName+" MAXR9 ; MAXR9",bins.maxr9,&OffPho::r9);
73  addStdHist<OffPho,float>(histVec,baseName+"_HLTenergy",baseName+" HLT Energy;HLT Energy (GeV)",bins.HLTenergy,&OffPho::hltEnergy);
74  addStdHist<OffPho,float>(histVec,baseName+"_HLTeta",baseName+" HLT #eta;HLT #eta",bins.HLTeta,&OffPho::hltEta);
75  addStdHist<OffPho,float>(histVec,baseName+"_HLTphi",baseName+" HLT #phi;HLT #phi (rad)",bins.HLTphi,&OffPho::hltPhi);
76  //-------
77  addStdHist<OffPho,float>(histVec,baseName+"_sigmaIEtaIEta",baseName+"#sigma_{i#etai#eta}; #sigma_{i#etai#eta}",bins.sigEtaEta,&OffPho::sigmaIEtaIEta);
78  addStdHist<OffPho,float>(histVec,baseName+"_e2x5Over5x5",baseName+"E^{2x5}/E^{5x5}; E^{2x5}/E^{5x5}",bins.e2x5,&OffPho::e2x5MaxOver5x5);
79  addStdHist<OffPho,float>(histVec,baseName+"_e1x5Over5x5",baseName+"E^{1x5}/E^{5x5}; E^{1x5}/E^{5x5}",bins.e1x5,&OffPho::e1x5Over5x5);
80  addStdHist<OffPho,float>(histVec,baseName+"_isolEM",baseName+"Isol EM; Isol EM (GeV)",bins.isolEm,&OffPho::isolEm);
81  addStdHist<OffPho,float>(histVec,baseName+"_isolHad",baseName+"Isol Had; Isol Had (GeV)",bins.isolHad,&OffPho::isolHad);
82  addStdHist<OffPho,float>(histVec,baseName+"_isolPtTrks",baseName+"Isol Pt Trks; Isol Pt Tracks (GeV/c)",bins.isolPtTrks,&OffPho::isolPtTrks);
83  addStdHist<OffPho,int>(histVec,baseName+"_isolNrTrks",baseName+"Isol Nr Trks; Isol Nr Tracks",bins.isolNrTrks,&OffPho::isolNrTrks);
84  //addStdHist<OffPho,float>(histVec,baseName+"_hltIsolTrks",baseName+"HLT Isol Trks; HLT Iso Tracks (GeV/c)",bins.isolPtTrks,&OffPho::hltIsolTrks);
85  //addStdHist<OffPho,float>(histVec,baseName+"_hltIsolHad",baseName+"HLT Isol Had; HLT Isol Had (GeV)",bins.isolPtTrks,&OffPho::hltIsolHad);
86  addStdHist<OffPho,float>(histVec,baseName+"_DeltaE",baseName+"HLT Energy - reco SC Energy;HLT Energy - reco SC Energy (GeV)",bins.deltaE,&OffPho::DeltaE);
87 
88  histVec.push_back(new MonElemManager2D<OffPho,float,float>(iBooker, baseName+"_etaVsPhi",
89  baseName+" #eta vs #phi;#eta;#phi (rad)",
90  bins.etaVsPhi.nrX,bins.etaVsPhi.xMin,bins.etaVsPhi.xMax,
91  bins.etaVsPhi.nrY,bins.etaVsPhi.yMin,bins.etaVsPhi.yMax,
93  histVec.push_back(new MonElemManager2D<OffPho,float,float>(iBooker, baseName+"_HLTetaVsHLTphi",
94  baseName+" HLT #eta vs HLT #phi;HLT #eta;HLT #phi (rad)",
95  bins.etaVsPhi.nrX,bins.etaVsPhi.xMin,bins.etaVsPhi.xMax,
96  bins.etaVsPhi.nrY,bins.etaVsPhi.yMin,bins.etaVsPhi.yMax,
98 }
99 
100 
102 {
103  addStdHistHEP<OffEle,float>(histVec,baseName+"_energy",baseName+" reco CaloEnergy;reco CaloEnergy (GeV)",bins.energy, &OffEle::energy);
104  addStdHistHEP<OffEle,float>(histVec,baseName+"_et",baseName+" E_{T};E_{T} (GeV)",bins.et,&OffEle::et);
105  addStdHistHEP<OffEle,float>(histVec,baseName+"_etHigh",baseName+" E_{T};E_{T} (GeV)",bins.etHigh,&OffEle::et);
106  addStdHistHEP<OffEle,float>(histVec,baseName+"_etSC",baseName+" E^{SC}_{T};E^{SC}_{T} (GeV)",bins.et,&OffEle::etSC);
107  addStdHistHEP<OffEle,float>(histVec,baseName+"_eta",baseName+" #eta;#eta",bins.eta,&OffEle::detEta);
108  addStdHistHEP<OffEle,float>(histVec,baseName+"_phi",baseName+" #phi;#phi (rad)",bins.phi,&OffEle::phi);
109  // addStdHist<OffEle,int>(histVec,baseName+"_charge",baseName+" Charge; charge",bins.charge,&OffEle::charge);
110 
111  addStdHistHEP<OffEle,float>(histVec,baseName+"_hOverE",baseName+" H/E; H/E",bins.hOverE,&OffEle::hOverE);
112  //----Morse
113  addStdHistHEP<OffEle,float>(histVec,baseName+"_maxr9",baseName+" MAXR9 ; MAXR9",bins.maxr9,&OffEle::r9);
114  addStdHistHEP<OffEle,float>(histVec,baseName+"_HLTenergy",baseName+" HLT Energy;HLT Energy (GeV)",bins.HLTenergy,&OffEle::hltEnergy);
115  addStdHistHEP<OffEle,float>(histVec,baseName+"_HLTeta",baseName+" HLT #eta;HLT #eta",bins.HLTeta,&OffEle::hltEta);
116  addStdHistHEP<OffEle,float>(histVec,baseName+"_HLTphi",baseName+" HLT #phi;HLT #phi (rad)",bins.HLTphi,&OffEle::hltPhi);
117  //-------
118  addStdHistHEP<OffEle,float>(histVec,baseName+"_dPhiIn",baseName+" #Delta #phi_{in}; #Delta #phi_{in}",bins.dPhiIn,&OffEle::dPhiIn);
119  addStdHistHEP<OffEle,float>(histVec,baseName+"_dEtaIn",baseName+" #Delta #eta_{in}; #Delta #eta_{in}",bins.dEtaIn,&OffEle::dEtaIn);
120  addStdHistHEP<OffEle,float>(histVec,baseName+"_sigmaIEtaIEta",baseName+"#sigma_{i#etai#eta}; #sigma_{i#etai#eta}",bins.sigEtaEta,&OffEle::sigmaIEtaIEta);
121  addStdHistHEP<OffEle,float>(histVec,baseName+"_epIn",baseName+"E/p_{in}; E/p_{in}",bins.eOverP,&OffEle::epIn);
122  addStdHistHEP<OffEle,float>(histVec,baseName+"_epOut",baseName+"E/p_{out}; E/p_{out}",bins.eOverP,&OffEle::epOut);
123  addStdHistHEP<OffEle,float>(histVec,baseName+"_invEInvP",baseName+"1/E -1/p; 1/E - 1/p",bins.invEInvP,&OffEle::invEInvP);
124 
125  addStdHistHEP<OffEle,float>(histVec,baseName+"_e2x5Over5x5",baseName+"E^{2x5}/E^{5x5}; E^{2x5}/E^{5x5}",bins.e2x5,&OffEle::e2x5MaxOver5x5);
126  addStdHistHEP<OffEle,float>(histVec,baseName+"_e1x5Over5x5",baseName+"E^{1x5}/E^{5x5}; E^{1x5}/E^{5x5}",bins.e1x5,&OffEle::e1x5Over5x5);
127  //addStdHist<OffEle,float>(histVec,baseName+"_isolEM",baseName+"Isol EM; Isol EM (GeV)",bins.isolEm,&OffEle::isolEm);
128  //addStdHist<OffEle,float>(histVec,baseName+"_isolHad",baseName+"Isol Had; Isol Had (GeV)",bins.isolHad,&OffEle::isolHad);
129  //addStdHist<OffEle,float>(histVec,baseName+"_isolPtTrks",baseName+"Isol Pt Trks; Isol Pt Tracks (GeV/c)",bins.isolPtTrks,&OffEle::isolPtTrks);
130  addStdHistHEP<OffEle,float>(histVec,baseName+"_hltIsolTrksEle",baseName+"HLT Ele Isol Trks; HLT Ele Iso Tracks (GeV/c)",bins.isolPtTrks,&OffEle::hltIsolTrksEle);
131  //addStdHist<OffEle,float>(histVec,baseName+"_hltIsolTrksPho",baseName+"HLT Pho Isol Trks; HLT Pho Iso Tracks (GeV/c)",bins.isolPtTrks,&OffEle::hltIsolTrksPho);
132  addStdHistHEP<OffEle,float>(histVec,baseName+"_hltIsolHad",baseName+"HLT Isol Had; HLT Isol Had (GeV)",bins.isolHad,&OffEle::hltIsolHad);
133  addStdHistHEP<OffEle,float>(histVec,baseName+"_hltIsolEm",baseName+"HLT Isol Em; HLT Isol Em (GeV)",bins.isolEm,&OffEle::hltIsolEm);
134  addStdHistHEP<OffEle,float>(histVec,baseName+"_DeltaE",baseName+"HLT Energy - reco SC Energy;HLT Energy - reco SC Energy (GeV)",bins.deltaE,&OffEle::DeltaE);
135 /*
136  histVec.push_back(new MonElemManager2D<OffEle,float,float>(iBooker, baseName+"_etaVsPhi",
137  baseName+" #eta vs #phi;#eta;#phi (rad)",
138  bins.etaVsPhi.nrX,bins.etaVsPhi.xMin,bins.etaVsPhi.xMax,
139  bins.etaVsPhi.nrY,bins.etaVsPhi.yMin,bins.etaVsPhi.yMax,
140  &OffEle::detEta,&OffEle::phi));
141  histVec.push_back(new MonElemManager2D<OffEle,float,float>(iBooker, baseName+"_HLTetaVsHLTphi",
142  baseName+" HLT #eta vs HLT #phi;HLT #eta;HLT #phi (rad)",
143  bins.etaVsPhi.nrX,bins.etaVsPhi.xMin,bins.etaVsPhi.xMax,
144  bins.etaVsPhi.nrY,bins.etaVsPhi.yMin,bins.etaVsPhi.yMax,
145  &OffEle::hltEta,&OffEle::hltPhi));
146 */
147 }
148 
150 {
151 
152  addStdHistHEP<OffPho,float>(histVec,baseName+"_energy",baseName+" reco Energy;reco Energy (GeV)",bins.energy, &OffPho::energy);
153  addStdHistHEP<OffPho,float>(histVec,baseName+"_et",baseName+" E_{T};E_{T} (GeV)",bins.et,&OffPho::et);
154  addStdHistHEP<OffPho,float>(histVec,baseName+"_etHigh",baseName+" E_{T};E_{T} (GeV)",bins.etHigh,&OffPho::et);
155  addStdHistHEP<OffPho,float>(histVec,baseName+"_etSC",baseName+" E^{SC}_{T};E^{SC}_{T} (GeV)",bins.et,&OffPho::etSC);
156  addStdHistHEP<OffPho,float>(histVec,baseName+"_eta",baseName+" #eta;#eta",bins.eta,&OffPho::detEta);
157  addStdHistHEP<OffPho,float>(histVec,baseName+"_phi",baseName+" #phi;#phi (rad)",bins.phi,&OffPho::phi);
158 
159  addStdHistHEP<OffPho,float>(histVec,baseName+"_hOverE",baseName+" H/E; H/E",bins.hOverE,&OffPho::hOverE);
160  //----Morse
161  //addStdHist<OffPho,float>(histVec,baseName+"_r9",baseName+" R9 ; R9",bins.r9,&OffPho::r9);
162  //addStdHist<OffPho,float>(histVec,baseName+"_minr9",baseName+" MINR9 ; MINR9",bins.minr9,&OffPho::r9);
163  addStdHistHEP<OffPho,float>(histVec,baseName+"_maxr9",baseName+" MAXR9 ; MAXR9",bins.maxr9,&OffPho::r9);
164  addStdHistHEP<OffPho,float>(histVec,baseName+"_HLTenergy",baseName+" HLT Energy;HLT Energy (GeV)",bins.HLTenergy,&OffPho::hltEnergy);
165  addStdHistHEP<OffPho,float>(histVec,baseName+"_HLTeta",baseName+" HLT #eta;HLT #eta",bins.HLTeta,&OffPho::hltEta);
166  addStdHistHEP<OffPho,float>(histVec,baseName+"_HLTphi",baseName+" HLT #phi;HLT #phi (rad)",bins.HLTphi,&OffPho::hltPhi);
167  //-------
168  addStdHistHEP<OffPho,float>(histVec,baseName+"_sigmaIEtaIEta",baseName+"#sigma_{i#etai#eta}; #sigma_{i#etai#eta}",bins.sigEtaEta,&OffPho::sigmaIEtaIEta);
169  addStdHistHEP<OffPho,float>(histVec,baseName+"_e2x5Over5x5",baseName+"E^{2x5}/E^{5x5}; E^{2x5}/E^{5x5}",bins.e2x5,&OffPho::e2x5MaxOver5x5);
170  addStdHistHEP<OffPho,float>(histVec,baseName+"_e1x5Over5x5",baseName+"E^{1x5}/E^{5x5}; E^{1x5}/E^{5x5}",bins.e1x5,&OffPho::e1x5Over5x5);
171  addStdHistHEP<OffPho,float>(histVec,baseName+"_isolEM",baseName+"Isol EM; Isol EM (GeV)",bins.isolEm,&OffPho::isolEm);
172  addStdHistHEP<OffPho,float>(histVec,baseName+"_isolHad",baseName+"Isol Had; Isol Had (GeV)",bins.isolHad,&OffPho::isolHad);
173  addStdHistHEP<OffPho,float>(histVec,baseName+"_isolPtTrks",baseName+"Isol Pt Trks; Isol Pt Tracks (GeV/c)",bins.isolPtTrks,&OffPho::isolPtTrks);
174  addStdHistHEP<OffPho,int>(histVec,baseName+"_isolNrTrks",baseName+"Isol Nr Trks; Isol Nr Tracks",bins.isolNrTrks,&OffPho::isolNrTrks);
175  //addStdHist<OffPho,float>(histVec,baseName+"_hltIsolTrks",baseName+"HLT Isol Trks; HLT Iso Tracks (GeV/c)",bins.isolPtTrks,&OffPho::hltIsolTrks);
176  //addStdHist<OffPho,float>(histVec,baseName+"_hltIsolHad",baseName+"HLT Isol Had; HLT Isol Had (GeV)",bins.isolPtTrks,&OffPho::hltIsolHad);
177  addStdHistHEP<OffPho,float>(histVec,baseName+"_DeltaE",baseName+"HLT Energy - reco SC Energy;HLT Energy - reco SC Energy (GeV)",bins.deltaE,&OffPho::DeltaE);
178 /* histVec.push_back(new MonElemManager2D<OffPho,float,float>(iBooker, baseName+"_etaVsPhi",
179  baseName+" #eta vs #phi;#eta;#phi (rad)",
180  bins.etaVsPhi.nrX,bins.etaVsPhi.xMin,bins.etaVsPhi.xMax,
181  bins.etaVsPhi.nrY,bins.etaVsPhi.yMin,bins.etaVsPhi.yMax,
182  &OffPho::detEta,&OffPho::phi));
183  histVec.push_back(new MonElemManager2D<OffPho,float,float>(iBooker, baseName+"_HLTetaVsHLTphi",
184  baseName+" HLT #eta vs HLT #phi;HLT #eta;HLT #phi (rad)",
185  bins.etaVsPhi.nrX,bins.etaVsPhi.xMin,bins.etaVsPhi.xMax,
186  bins.etaVsPhi.nrY,bins.etaVsPhi.yMin,bins.etaVsPhi.yMax,
187  &OffPho::hltEta,&OffPho::hltPhi));
188 
189 */
190 }
191 
192 
193 void MonElemFuncs::initStdEffHists(std::vector<MonElemWithCutBase<OffEle>*>& histVec,const std::string& filterName,const std::string& baseName,const BinData::Data1D& bins,float (OffEle::*vsVarFunc)()const,const CutMasks& masks)
194 {
195  initStdEffHists(histVec,filterName,baseName,bins.nr,bins.min,bins.max,vsVarFunc,masks);
196 }
197 
198 void MonElemFuncs::initStdEffHists(std::vector<MonElemWithCutBase<OffPho>*>& histVec,const std::string& filterName,const std::string& baseName,const BinData::Data1D& bins,float (OffPho::*vsVarFunc)()const,const CutMasks& masks)
199 {
200  initStdEffHists(histVec,filterName,baseName,bins.nr,bins.min,bins.max,vsVarFunc,masks);
201 }
202 
203 void MonElemFuncs::initStdEffHists(std::vector<MonElemWithCutBase<OffEle>*>& histVec,const std::string& filterName,const std::string& baseName,int nrBins,double xMin,double xMax,float (OffEle::*vsVarFunc)()const,const CutMasks& masks)
204 {
205  //some convience typedefs, I hate typedefs but atleast here where they are defined is obvious
206  using VarCut = EgHLTDQMVarCut<egHLT::OffEle>;
207  typedef MonElemWithCutEBEE<OffEle,float> MonElemFloat;
208  int stdCutCode = masks.stdEle;
209 
210  //first do the zero and all cuts histograms
211  histVec.push_back(new MonElemFloat(iBooker, baseName+"_noCuts",baseName+" NoCuts",nrBins,xMin,xMax,vsVarFunc));
212  histVec.push_back(new MonElemFloat(iBooker, baseName+"_allCuts",baseName+" All Cuts",nrBins,xMin,xMax,vsVarFunc,
213  new VarCut(stdCutCode,&OffEle::cutCode)));
214 
215  //now for the n-1
216  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_dEtaIn",baseName+" N1 #Delta#eta_{in}",nrBins,xMin,xMax,vsVarFunc,
217  new VarCut(~EgCutCodes::DETAIN&stdCutCode,&OffEle::cutCode)));
218  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_dPhiIn",baseName+" N1 #Delta#phi_{in}",nrBins,xMin,xMax,vsVarFunc,
219  new VarCut(~EgCutCodes::DPHIIN&stdCutCode,&OffEle::cutCode)));
220  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_sigmaIEtaIEta",baseName+" N1 #sigma_{i#etai#eta}",nrBins,xMin,xMax,vsVarFunc,
221  new VarCut(~EgCutCodes::SIGMAIETAIETA&stdCutCode,&OffEle::cutCode)));
222  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_hOverE",baseName+" N1 H/E",nrBins,xMin,xMax,vsVarFunc,
223  new VarCut(~EgCutCodes::HADEM&stdCutCode,&OffEle::cutCode)));
224  /* histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_isolEm",baseName+" N1 Isol Em",nrBins,xMin,xMax,vsVarFunc,
225  new VarCut(~EgCutCodes::ISOLEM&stdCutCode,&OffEle::cutCode)));
226  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_isolHad",baseName+" N1 Isol Had",nrBins,xMin,xMax,vsVarFunc,
227  new VarCut(~EgCutCodes::ISOLHAD&stdCutCode,&OffEle::cutCode)));
228  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_isolPtTrks",baseName+" N1 Isol Tracks",nrBins,xMin,xMax,vsVarFunc,
229  new VarCut(~EgCutCodes::ISOLPTTRKS&stdCutCode,&OffEle::cutCode)));*/
230  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_hltIsolEm",baseName+" N1 HLT Isol Em",nrBins,xMin,xMax,vsVarFunc,
231  new VarCut(~EgCutCodes::HLTISOLEM&stdCutCode,&OffEle::cutCode)));
232  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_hltIsolHad",baseName+" N1 HLT Isol Had",nrBins,xMin,xMax,vsVarFunc,
233  new VarCut(~EgCutCodes::HLTISOLHAD&stdCutCode,&OffEle::cutCode)));
234  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_hltIsolTrksEle",baseName+" N1 HLT Isol Tracks Ele ",nrBins,xMin,xMax,vsVarFunc,
235  new VarCut(~EgCutCodes::HLTISOLTRKSELE&stdCutCode,&OffEle::cutCode)));
236  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_dEtaIn",baseName+" Single #Delta#eta_{in}",nrBins,xMin,xMax,vsVarFunc,
237  new VarCut(EgCutCodes::DETAIN,&OffEle::cutCode)));
238  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_dPhiIn",baseName+" Single #Delta#phi_{in}",nrBins,xMin,xMax,vsVarFunc,
239  new VarCut(EgCutCodes::DPHIIN,&OffEle::cutCode)));
240  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_sigmaIEtaIEta",baseName+" Single #sigma_{i#etai#eta}",nrBins,xMin,xMax,vsVarFunc,
242  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_hOverE",baseName+" Single H/E",nrBins,xMin,xMax,vsVarFunc,
243  new VarCut(EgCutCodes::HADEM,&OffEle::cutCode)));
244  /* histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_isolEm",baseName+" Single Isol Em",nrBins,xMin,xMax,vsVarFunc,
245  new VarCut(EgCutCodes::ISOLEM,&OffEle::cutCode)));
246  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_isolHad",baseName+" Single Isol Had",nrBins,xMin,xMax,vsVarFunc,
247  new VarCut(EgCutCodes::ISOLHAD,&OffEle::cutCode)));
248  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_isolPtTrks",baseName+" Single Isol Tracks",nrBins,xMin,xMax,vsVarFunc,
249  new VarCut(EgCutCodes::ISOLPTTRKS,&OffEle::cutCode)));*/
250  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_hltIsolEm",baseName+" Single HLT Isol Em",nrBins,xMin,xMax,vsVarFunc,
251  new VarCut(EgCutCodes::HLTISOLEM,&OffEle::cutCode)));
252  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_hltIsolHad",baseName+" Single HLT Isol Had",nrBins,xMin,xMax,vsVarFunc,
254  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_hltIsolTrksEle",baseName+" Single HLT Isol Tracks Ele ",nrBins,xMin,xMax,vsVarFunc,
256  /*histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_hltIsolTrksPho",baseName+" Single HLT Isol Tracks Pho ",nrBins,xMin,xMax,vsVarFunc,
257  new VarCut(EgCutCodes::HLTISOLTRKSPHO,&OffEle::cutCode)));*/
258 
259 }
260 
261 void MonElemFuncs::initStdEffHists(std::vector<MonElemWithCutBase<OffPho>*>& histVec,const std::string& filterName,const std::string& baseName,int nrBins,double xMin,double xMax,float (OffPho::*vsVarFunc)()const,const CutMasks& masks)
262 {
263  //some convenience typedefs, I hate typedefs but atleast here where they are defined is obvious
264  using VarCut = EgHLTDQMVarCut<egHLT::OffPho>;
265  typedef MonElemWithCutEBEE<OffPho,float> MonElemFloat;
266  int stdCutCode = masks.stdPho;
267 
268  histVec.push_back(new MonElemFloat(iBooker,baseName+"_noCuts",baseName+" NoCuts",nrBins,xMin,xMax,vsVarFunc));
269  histVec.push_back(new MonElemFloat(iBooker,baseName+"_allCuts",baseName+" All Cuts",nrBins,xMin,xMax,vsVarFunc,
270  new VarCut(stdCutCode,&OffPho::cutCode)));
271 
272 
273  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_sigmaIEtaIEta",baseName+" N1 #sigma_{i#etai#eta}",nrBins,xMin,xMax,vsVarFunc,
274  new VarCut(~EgCutCodes::SIGMAIETAIETA&stdCutCode,&OffPho::cutCode)));
275  //-----Morse------
276  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_hOverE",baseName+" N1 H/E",nrBins,xMin,xMax,vsVarFunc,
277  new VarCut(~EgCutCodes::HADEM&stdCutCode,&OffPho::cutCode)));//---BUG FIX!!--
278  /*histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_minr9",baseName+" N1 MINR9",nrBins,xMin,xMax,vsVarFunc,
279  new VarCut(~EgCutCodes::MINR9&stdCutCode,&OffPho::cutCode)));
280  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_maxr9",baseName+" N1 MAXR9",nrBins,xMin,xMax,vsVarFunc,
281  new VarCut(~EgCutCodes::MAXR9&stdCutCode,&OffPho::cutCode)));*/
282  //----------------
283  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_isolEm",baseName+" N1 Isol Em",nrBins,xMin,xMax,vsVarFunc,
284  new VarCut(~EgCutCodes::ISOLEM&stdCutCode,&OffPho::cutCode)));
285  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_isolHad",baseName+" N1 Isol Had",nrBins,xMin,xMax,vsVarFunc,
286  new VarCut(~EgCutCodes::ISOLHAD&stdCutCode,&OffPho::cutCode)));
287  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_isolPtTrks",baseName+" N1 Pt Isol Tracks",nrBins,xMin,xMax,vsVarFunc,
288  new VarCut(~EgCutCodes::ISOLPTTRKS&stdCutCode,&OffPho::cutCode)));
289  histVec.push_back(new MonElemFloat(iBooker,baseName+"_n1_isolNrTrks",baseName+" N1 Nr Isol Tracks",nrBins,xMin,xMax,vsVarFunc,
290  new VarCut(~EgCutCodes::ISOLNRTRKS&stdCutCode,&OffPho::cutCode)));
291 
292  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_hOverE",baseName+" Single H/E",nrBins,xMin,xMax,vsVarFunc,
293  new VarCut(EgCutCodes::HADEM,&OffPho::cutCode)));
294  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_sigmaIEtaIEta",baseName+" Single #sigma_{i#etai#eta}",nrBins,xMin,xMax,vsVarFunc,
296  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_isolEm",baseName+" Single Isol Em",nrBins,xMin,xMax,vsVarFunc,
297  new VarCut(~EgCutCodes::ISOLEM,&OffPho::cutCode)));
298  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_isolHad",baseName+" Single Isol Had",nrBins,xMin,xMax,vsVarFunc,
299  new VarCut(~EgCutCodes::ISOLHAD,&OffPho::cutCode)));
300  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_isolPtTrks",baseName+" Single Pt Isol Tracks",nrBins,xMin,xMax,vsVarFunc,
301  new VarCut(~EgCutCodes::ISOLPTTRKS,&OffPho::cutCode)));
302  /*histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_hltIsolHad",baseName+" Single HLT Isol Had",nrBins,xMin,xMax,vsVarFunc,
303  new VarCut(EgCutCodes::HLTISOLHAD,&OffPho::cutCode)));
304  histVec.push_back(new MonElemFloat(iBooker,baseName+"_single_hltIsolTrksPho",baseName+" Single HLT Isol Tracks Pho ",nrBins,xMin,xMax,vsVarFunc,
305  new VarCut(EgCutCodes::HLTISOLTRKSPHO,&OffPho::cutCode)));*/
306 
307 
308 }
309 
310 
311 //we own the passed in cut, so we give it to the first mon element and then clone it after that
312 //only currently used for trigger tag and probe
313 void MonElemFuncs::initStdEleCutHists(std::vector<MonElemWithCutBase<OffEle>*>& histVec,const std::string& filterName,const std::string& baseName,const BinData& bins,EgHLTDQMCut<OffEle>* cut)
314 {
315  histVec.push_back(new MonElemWithCutEBEE<OffEle,float>(iBooker,baseName+"_et",
316  baseName+" E_{T};E_{T} (GeV)",
317  bins.et.nr,bins.et.min,bins.et.max,&OffEle::et,cut));
318  histVec.push_back(new MonElemWithCutEBEE<OffEle,float>(iBooker,baseName+"_eta",
319  baseName+" #eta;#eta",
320  bins.eta.nr,bins.eta.min,bins.eta.max,
321  &OffEle::detEta,cut ? cut->clone(): nullptr));
322  histVec.push_back(new MonElemWithCutEBEE<OffEle,float>(iBooker,baseName+"_phi",
323  baseName+" #phi;#phi (rad)",
324  bins.phi.nr,bins.phi.min,bins.phi.max,
325  &OffEle::phi,cut ? cut->clone():nullptr));
326  histVec.push_back(new MonElemWithCutEBEE<OffEle,int>(iBooker,baseName+"_nVertex",
327  baseName+" nVertex;nVertex",
328  bins.nVertex.nr,bins.nVertex.min,bins.nVertex.max,
329  &OffEle::NVertex,cut ? cut->clone():nullptr));
330  /* histVec.push_back(new MonElemWithCutEBEE<OffEle,int>(iBooker,baseName+"_charge",
331  baseName+" Charge; charge",
332  bins.charge.nr,bins.charge.min,bins.charge.max,
333  &OffEle::charge,cut ? cut->clone():NULL)); */
334 }
335 
336 
337 void MonElemFuncs::initStdPhoCutHists(std::vector<MonElemWithCutBase<OffPho>*>& histVec,const std::string& filterName,const std::string& baseName,const BinData& bins,EgHLTDQMCut<OffPho>* cut)
338 {
339  histVec.push_back(new MonElemWithCutEBEE<OffPho,float>(iBooker,baseName+"_et",
340  baseName+" E_{T};E_{T} (GeV)",
341  bins.et.nr,bins.et.min,bins.et.max,&OffPho::et,cut));
342  histVec.push_back(new MonElemWithCutEBEE<OffPho,float>(iBooker,baseName+"_eta",
343  baseName+" #eta;#eta",
344  bins.eta.nr,bins.eta.min,bins.eta.max,
345  &OffPho::detEta,cut ? cut->clone(): nullptr));
346  histVec.push_back(new MonElemWithCutEBEE<OffPho,float>(iBooker,baseName+"_phi",
347  baseName+" #phi;#phi (rad)",
348  bins.phi.nr,bins.phi.min,bins.phi.max,
349  &OffPho::phi,cut ? cut->clone():nullptr));
350  /* histVec.push_back(new MonElemWithCutEBEE<OffPho,int>(iBooker,baseName+"_charge",
351  baseName+" Charge; charge",
352  bins.charge.nr,bins.charge.min,bins.charge.max,
353  &OffPho::charge,cut ? cut->clone():NULL)); */
354 }
355 
356 //we transfer ownership of eleCut to addTrigLooseTrigHist which transfers it to the eleMonElems
357 void MonElemFuncs::initTightLooseTrigHists(std::vector<MonElemContainer<OffEle>*>& eleMonElems,const std::vector<std::string>& tightLooseTrigs,const BinData& bins,EgHLTDQMCut<OffEle>* eleCut)
358 {
359  for(size_t trigNr=0;trigNr<tightLooseTrigs.size();trigNr++){
360  std::vector<std::string> splitString;
361  boost::split(splitString,tightLooseTrigs[trigNr],boost::is_any_of(std::string(":")));
362  if(splitString.size()!=2) continue; //format incorrect
363  const std::string& tightTrig = splitString[0];
364  const std::string& looseTrig = splitString[1];
365  //this step is necessary as we want to transfer ownership of eleCut to the addTrigLooseTrigHist func on the last iteration
366  //but clone it before that
367  //perhaps my object ownership rules need to be re-evalulated
368  if(trigNr!=tightLooseTrigs.size()-2) addTightLooseTrigHist(eleMonElems,tightTrig,looseTrig,eleCut->clone(),"gsfEle",bins);
369  else addTightLooseTrigHist(eleMonElems,tightTrig,looseTrig,eleCut,"gsfEle",bins);
370  }
371 }
372 
373 
374 void MonElemFuncs::initTightLooseTrigHists(std::vector<MonElemContainer<OffPho>*>& phoMonElems,const std::vector<std::string>& tightLooseTrigs,const BinData& bins,EgHLTDQMCut<OffPho>* phoCut)
375 {
376  for(size_t trigNr=0;trigNr<tightLooseTrigs.size();trigNr++){
377  std::vector<std::string> splitString;
378  boost::split(splitString,tightLooseTrigs[trigNr],boost::is_any_of(std::string(":")));
379  if(splitString.size()!=2) continue; //format incorrect
380  const std::string& tightTrig = splitString[0];
381  const std::string& looseTrig = splitString[1];
382 
383  //this step is necessary as we want to transfer ownership of phoCut to the addTrigLooseTrigHist func on the last iteration
384  //but clone it before that
385  //perhaps my object ownership rules need to be re-evalulated
386  if(trigNr!=tightLooseTrigs.size()-2) addTightLooseTrigHist(phoMonElems,tightTrig,looseTrig,phoCut->clone(),"pho",bins);
387  else addTightLooseTrigHist(phoMonElems,tightTrig,looseTrig,phoCut,"pho",bins);
388  }
389 }
390 
391 
392 
393 
394 //there is nothing electron specific here, will template at some point
396  const std::string& tightTrig,const std::string& looseTrig,
397  EgHLTDQMCut<OffEle>* eleCut,
398  const std::string& histId,const BinData& bins)
399 {
400  MonElemContainer<OffEle>* passMonElem = nullptr;
401  passMonElem = new MonElemContainer<OffEle>(tightTrig+"_"+looseTrig+"_"+histId+"_passTrig","",
402  &(*(new EgMultiCut<OffEle>) <<
403  new EgObjTrigCut<OffEle>(trigCodes.getCode(tightTrig+":"+looseTrig),EgObjTrigCut<OffEle>::AND) <<
404  eleCut->clone()));
405 
406 
407  MonElemContainer<OffEle>* failMonElem = nullptr;
408  failMonElem = new MonElemContainer<OffEle>(tightTrig+"_"+looseTrig+"_"+histId+"_failTrig","",
409  &(*(new EgMultiCut<OffEle>) <<
411  eleCut));
412 
413  MonElemFuncs::initStdEleHists(passMonElem->monElems(),tightTrig+"_"+looseTrig,passMonElem->name(),bins);
414  MonElemFuncs::initStdEleHists(failMonElem->monElems(),tightTrig+"_"+looseTrig,failMonElem->name(),bins);
415  eleMonElems.push_back(passMonElem);
416  eleMonElems.push_back(failMonElem);
417 }
418 
419 
420 //there is nothing photon specific here, will template at some point
422  const std::string& tightTrig,const std::string& looseTrig,
423  EgHLTDQMCut<OffPho>* phoCut,
424  const std::string& histId,const BinData& bins)
425 {
426  MonElemContainer<OffPho>* passMonElem = nullptr;
427  passMonElem = new MonElemContainer<OffPho>(tightTrig+"_"+looseTrig+"_"+histId+"_passTrig","",
428  &(*(new EgMultiCut<OffPho>) <<
429  new EgObjTrigCut<OffPho>(trigCodes.getCode(tightTrig+":"+looseTrig),EgObjTrigCut<OffPho>::AND) <<
430  phoCut->clone()));
431 
432 
433  MonElemContainer<OffPho>* failMonElem = nullptr;
434  failMonElem = new MonElemContainer<OffPho>(tightTrig+"_"+looseTrig+"_"+histId+"_failTrig","",
435  &(*(new EgMultiCut<OffPho>) <<
437  phoCut));
438 
439  MonElemFuncs::initStdPhoHists(passMonElem->monElems(),tightTrig+"_"+looseTrig,passMonElem->name(),bins);
440  MonElemFuncs::initStdPhoHists(failMonElem->monElems(),tightTrig+"_"+looseTrig,failMonElem->name(),bins);
441  phoMonElems.push_back(passMonElem);
442  phoMonElems.push_back(failMonElem);
443 }
444 
445 
446 
447 //we transfer ownership of eleCut to the monitor elements
448 void MonElemFuncs::initTightLooseTrigHistsTrigCuts(std::vector<MonElemContainer<OffEle>*>& eleMonElems,const std::vector<std::string>& tightLooseTrigs,const BinData& bins)
449 {
450  for(auto const & tightLooseTrig : tightLooseTrigs){
451  std::vector<std::string> splitString;
452  boost::split(splitString,tightLooseTrig,boost::is_any_of(std::string(":")));
453  if(splitString.size()!=2) continue; //format incorrect
454  const std::string& tightTrig = splitString[0];
455  const std::string& looseTrig = splitString[1];
457  addTightLooseTrigHist(eleMonElems,tightTrig,looseTrig,eleCut,"gsfEle_trigCuts",bins);
458  }
459 }
460 
461 //we transfer ownership of phoCut to the monitor elements
462 void MonElemFuncs::initTightLooseTrigHistsTrigCuts(std::vector<MonElemContainer<OffPho>*>& phoMonElems,const std::vector<std::string>& tightLooseTrigs,const BinData& bins)
463 {
464  for(auto const & tightLooseTrig : tightLooseTrigs){
465  std::vector<std::string> splitString;
466  boost::split(splitString,tightLooseTrig,boost::is_any_of(std::string(":")));
467  if(splitString.size()!=2) continue; //format incorrect
468  const std::string& tightTrig = splitString[0];
469  const std::string& looseTrig = splitString[1];
471  addTightLooseTrigHist(phoMonElems,tightTrig,looseTrig,phoCut,"pho_trigCuts",bins);
472  }
473 }
474 
475 
476 //we transfer ownership of eleCut to the monitor elements
477 void MonElemFuncs::initTightLooseDiObjTrigHistsTrigCuts(std::vector<MonElemContainer<OffEle>*>& eleMonElems,const std::vector<std::string>& tightLooseTrigs,const BinData& bins)
478 {
479  for(auto const & tightLooseTrig : tightLooseTrigs){
480  std::vector<std::string> splitString;
481  boost::split(splitString,tightLooseTrig,boost::is_any_of(std::string(":")));
482  if(splitString.size()!=2) continue; //format incorrect
483  const std::string& tightTrig = splitString[0];
484  const std::string& looseTrig = splitString[1];
486  addTightLooseTrigHist(eleMonElems,tightTrig,looseTrig,eleCut,"gsfEle_trigCuts",bins);
487  }
488 }
489 
490 
491 //we transfer ownership of phoCut to the monitor elements
492 void MonElemFuncs::initTightLooseDiObjTrigHistsTrigCuts(std::vector<MonElemContainer<OffPho>*>& phoMonElems,const std::vector<std::string>& tightLooseTrigs,const BinData& bins)
493 {
494  for(auto const & tightLooseTrig : tightLooseTrigs){
495  std::vector<std::string> splitString;
496  boost::split(splitString,tightLooseTrig,boost::is_any_of(std::string(":")));
497  if(splitString.size()!=2) continue; //format incorrect
498  const std::string& tightTrig = splitString[0];
499  const std::string& looseTrig = splitString[1];
501  addTightLooseTrigHist(phoMonElems,tightTrig,looseTrig,phoCut,"pho_trigCuts",bins);
502  }
503 }
504 
505 
506 
507 //tag and probe trigger efficiencies
508 //this is to measure the trigger efficiency with respect to a fully selected offline electron
509 //using a tag and probe technique (note: this will be different to the trigger efficiency normally calculated)
510 void MonElemFuncs::initTrigTagProbeHists(std::vector<MonElemContainer<OffEle>*>& eleMonElems,const std::vector<std::string>& filterNames,int cutMask,const BinData& bins)
511 {
512  for(auto trigName : filterNames){
513 
514  // float etCutValue = trigTools::getSecondEtThresFromName(trigName);
515  float etCutValue = 0.;
516  //std::cout<<"TrigName= "<<trigName<<" etCutValue= "<<etCutValue<<std::endl;
517  MonElemContainer<OffEle>* monElemCont = new MonElemContainer<OffEle>("trigTagProbe","Trigger Tag and Probe",new EgTrigTagProbeCut_New(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17HEDoubleFiltesr"),cutMask,&OffEle::cutCode));
518  //this is all that pass trigtagprobecut
519  MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_gsfEle_all",bins,new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC));
520  //this is all that pass trigtagprobecut and the probe passes the test trigger
521  MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_gsfEle_pass",bins,&(*(new EgMultiCut<OffEle>) << new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC) << new EgObjTrigCut<OffEle>(trigCodes.getCode(trigName),EgObjTrigCut<OffEle>::AND)));
522  //this is all that pass trigtagprobecut and the probe passes the test trigger and the probe is NOT a tag
523  MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_gsfEle_passNotTag",bins,&(*(new EgMultiCut<OffEle>) << new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC) << new EgObjTrigCut<OffEle>(trigCodes.getCode(trigName),EgObjTrigCut<OffEle>::AND,trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),EgObjTrigCut<OffEle>::AND)));
524  //this is all that pass trigtagprobecut and the probe passes the test trigger and the probe is also a tag
525  MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_gsfEle_passTagTag",bins,&(*(new EgMultiCut<OffEle>) << new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC) << new EgObjTrigCut<OffEle>(trigCodes.getCode(trigName),EgObjTrigCut<OffEle>::AND) << new EgObjTrigCut<OffEle>(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),EgObjTrigCut<OffEle>::AND) ));
526  //this is all that pass trigtagprobecut and the probe fails the test trigger
527  MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_gsfEle_fail",bins,&(*(new EgMultiCut<OffEle>) << new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC) << new EgObjTrigCut<OffEle>(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17HEDoubleFilter"),EgObjTrigCut<OffEle>::AND,trigCodes.getCode(trigName),EgObjTrigCut<OffEle>::AND)));
528  /*
529  monElemCont->monElems().push_back(new MonElemMgrEBEE<OffEle,float>(iBooker,trigName+"_"+monElemCont->name()+"_gsfEle_all_etUnCut",monElemCont->name()+"_gsfEle_all E_{T} (Uncut);E_{T} (GeV)",
530  bins.et.nr,bins.et.min,bins.et.max,&OffEle::et));
531  monElemCont->cutMonElems().push_back(new MonElemWithCutEBEE<OffEle,float>(iBooker,trigName+"_"+monElemCont->name()+"_gsfEle_pass_etUnCut",monElemCont->name()+"_gsfEle_pass E_{T} (Uncut);E_{T} (GeV)",
532  bins.et.nr,bins.et.min,bins.et.max,&OffEle::et,new EgObjTrigCut<OffEle>(trigCodes.getCode(trigName),EgObjTrigCut<OffEle>::AND)));*/
533  eleMonElems.push_back(monElemCont);
534  } //end filter names loop
535 
536 }
537 
538 //Only one at a time so I can set the folder
539 void MonElemFuncs::initTrigTagProbeHist(std::vector<MonElemContainer<OffEle>*>& eleMonElems,const std::string& filterName,int cutMask,const BinData& bins)
540 {
541  const std::string& trigName(filterName);
542  //float etCutValue = 1.1*trigTools::getSecondEtThresFromName(filterName);
543  float etCutValue = 0.;
544  //std::cout<<"TrigName= "<<trigName<<" etCutValue= "<<etCutValue<<std::endl;
545  MonElemContainer<OffEle>* monElemCont = new MonElemContainer<OffEle>("trigTagProbe","Trigger Tag and Probe",new EgTrigTagProbeCut_New(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17HEDoubleFilter"),cutMask,&OffEle::cutCode));
546  //this is all that pass trigtagprobecut
547  MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_gsfEle_all",bins,new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC));
548  //this is all that pass trigtagprobecut and the probe passes the test trigger
549  MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_gsfEle_pass",bins,&(*(new EgMultiCut<OffEle>) << new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC) << new EgObjTrigCut<OffEle>(trigCodes.getCode(trigName),EgObjTrigCut<OffEle>::AND)));
550  //this is all that pass trigtagprobecut and the probe passes the test trigger and the probe is NOT a tag
551  MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_gsfEle_passNotTag",bins,&(*(new EgMultiCut<OffEle>) << new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC) << new EgObjTrigCut<OffEle>(trigCodes.getCode(trigName),EgObjTrigCut<OffEle>::AND,trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),EgObjTrigCut<OffEle>::AND)));
552  //this is all that pass trigtagprobecut and the probe passes the test trigger and the probe is also a tag
553  MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_gsfEle_passTagTag",bins,&(*(new EgMultiCut<OffEle>) << new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC) << new EgObjTrigCut<OffEle>(trigCodes.getCode(trigName),EgObjTrigCut<OffEle>::AND) << new EgObjTrigCut<OffEle>(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),EgObjTrigCut<OffEle>::AND) ));
554  //this is all that pass trigtagprobecut and the probe fails the test trigger
555  MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_gsfEle_fail",bins,&(*(new EgMultiCut<OffEle>) << new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC) << new EgObjTrigCut<OffEle>(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17HEDoubleFilter"),EgObjTrigCut<OffEle>::AND,trigCodes.getCode(trigName),EgObjTrigCut<OffEle>::AND)));
556  /*
557  monElemCont->monElems().push_back(new MonElemMgrEBEE<OffEle,float>(iBooker,trigName+"_"+monElemCont->name()+"_gsfEle_all_etUnCut",monElemCont->name()+"_gsfEle_all E_{T} (Uncut);E_{T} (GeV)",
558  bins.et.nr,bins.et.min,bins.et.max,&OffEle::et));
559  monElemCont->cutMonElems().push_back(new MonElemWithCutEBEE<OffEle,float>(iBooker,trigName+"_"+monElemCont->name()+"_gsfEle_pass_etUnCut",monElemCont->name()+"_gsfEle_pass E_{T} (Uncut);E_{T} (GeV)",
560  bins.et.nr,bins.et.min,bins.et.max,&OffEle::et,new EgObjTrigCut<OffEle>(trigCodes.getCode(trigName),EgObjTrigCut<OffEle>::AND)));*/
561  eleMonElems.push_back(monElemCont);
562 }
563 
564 
565 void MonElemFuncs::initTrigTagProbeHist_2Leg(std::vector<MonElemContainer<OffEle>*>& eleMonElems,const std::string& filterName,int cutMask,const BinData& bins)
566 {
567 
568  std::string trigNameLeg1 = filterName.substr(0,filterName.find("::"));
569  std::string trigNameLeg2 = filterName.substr(filterName.find("::")+2);
570 
571  float etCutValue = 0.;
572  MonElemContainer<OffEle>* monElemCont = new MonElemContainer<OffEle>("trigTagProbe","Trigger Tag and Probe",new EgTrigTagProbeCut_New(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17HEDoubleFilter"),cutMask,&OffEle::cutCode));
573  //this is all that pass trigtagprobecut
574  //MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigNameLeg2,trigNameLeg2+"_"+monElemCont->name()+"_gsfEle_allEt20",bins,new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC));
575  //this is all that pass trigtagprobecut and the probe passes the first trigger
576  //MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigNameLeg2,trigNameLeg2+"_"+monElemCont->name()+"_gsfEle_passEt20",bins,&(*(new EgMultiCut<OffEle>) << new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC) << new EgObjTrigCut<OffEle>(trigCodes.getCode(trigNameLeg1),EgObjTrigCut<OffEle>::AND)));
577  //this is all that pass trigtagprobecut and the probe passes the second trigger and fails the first trigger
578  MonElemFuncs::initStdEleCutHists(monElemCont->cutMonElems(),trigNameLeg2,trigNameLeg2+"_"+monElemCont->name()+"_gsfEle_passLeg2failLeg1",bins,&(*(new EgMultiCut<OffEle>) << new EgGreaterCut<OffEle,float>(etCutValue,&OffEle::etSC) << new EgObjTrigCut<OffEle>(trigCodes.getCode(trigNameLeg2),EgObjTrigCut<OffEle>::AND,trigCodes.getCode(trigNameLeg1),EgObjTrigCut<OffEle>::AND)));
579 
580 }
581 
582 
583 //Now same for photons
584 void MonElemFuncs::initTrigTagProbeHists(std::vector<MonElemContainer<OffPho>*>& phoMonElems,const std::vector<std::string>& filterNames,int cutMask,const BinData& bins)
585 {
586  for(auto trigName : filterNames){
587 
588  //float etCutValue = trigTools::getSecondEtThresFromName(trigName);
589  float etCutValue = 0.;
590  //std::cout<<"TrigName= "<<trigName<<" etCutValue= "<<etCutValue<<std::endl;
591  MonElemContainer<OffPho>* monElemCont = new MonElemContainer<OffPho>("trigTagProbe","Trigger Tag and Probe",new EgTrigTagProbeCut_NewPho(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17HEDoubleFilter"),cutMask,&OffPho::cutCode));
592  //this is all that pass trigtagprobecut
593  MonElemFuncs::initStdPhoCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_pho_all",bins,new EgGreaterCut<OffPho,float>(etCutValue,&OffPho::etSC));
594  //this is all that pass trigtagprobecut and the probe passes the test trigger
595  MonElemFuncs::initStdPhoCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_pho_pass",bins,&(*(new EgMultiCut<OffPho>) << new EgGreaterCut<OffPho,float>(etCutValue,&OffPho::etSC) << new EgObjTrigCut<OffPho>(trigCodes.getCode(trigName),EgObjTrigCut<OffPho>::AND)));
596  //this is all that pass trigtagprobecut and the probe passes the test trigger and the probe is NOT a tag
597  MonElemFuncs::initStdPhoCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_pho_passNotTag",bins,&(*(new EgMultiCut<OffPho>) << new EgGreaterCut<OffPho,float>(etCutValue,&OffPho::etSC) << new EgObjTrigCut<OffPho>(trigCodes.getCode(trigName),EgObjTrigCut<OffPho>::AND,trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),EgObjTrigCut<OffPho>::AND)));
598  //this is all that pass trigtagprobecut and the probe passes the test trigger and the probe is also a tag
599  MonElemFuncs::initStdPhoCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_pho_passTagTag",bins,&(*(new EgMultiCut<OffPho>) << new EgGreaterCut<OffPho,float>(etCutValue,&OffPho::etSC) << new EgObjTrigCut<OffPho>(trigCodes.getCode(trigName),EgObjTrigCut<OffPho>::AND) << new EgObjTrigCut<OffPho>(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),EgObjTrigCut<OffPho>::AND) ));
600  //this is all that pass trigtagprobecut and the probe fails the test trigger
601  MonElemFuncs::initStdPhoCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_pho_fail",bins,&(*(new EgMultiCut<OffPho>) << new EgGreaterCut<OffPho,float>(etCutValue,&OffPho::etSC) << new EgObjTrigCut<OffPho>(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17HEDoubleFilter"),EgObjTrigCut<OffPho>::AND,trigCodes.getCode(trigName),EgObjTrigCut<OffPho>::AND)));
602  /*
603  monElemCont->monElems().push_back(new MonElemMgrEBEE<OffPho,float>(iBooker,trigName+"_"+monElemCont->name()+"_pho_all_etUnCut",monElemCont->name()+"_gsfEle_all E_{T} (Uncut);E_{T} (GeV)",
604  bins.et.nr,bins.et.min,bins.et.max,&OffPho::et));
605  monElemCont->cutMonElems().push_back(new MonElemWithCutEBEE<OffPho,float>(iBooker,trigName+"_"+monElemCont->name()+"_pho_pass_etUnCut",monElemCont->name()+"_gsfEle_pass E_{T} (Uncut);E_{T} (GeV)",
606  bins.et.nr,bins.et.min,bins.et.max,&OffPho::et,new EgObjTrigCut<OffPho>(trigCodes.getCode(trigName),EgObjTrigCut<OffPho>::AND)));*/
607  phoMonElems.push_back(monElemCont);
608  } //end filter names loop
609 
610 }
611 
612 void MonElemFuncs::initTrigTagProbeHist(std::vector<MonElemContainer<OffPho>*>& phoMonElems,const std::string& filterName,int cutMask,const BinData& bins)
613 {
614  const std::string& trigName(filterName);
615  //float etCutValue = 1.1*trigTools::getSecondEtThresFromName(trigName);
616  float etCutValue = 0.;
617  //std::cout<<"TrigName= "<<trigName<<" etCutValue= "<<etCutValue<<std::endl;
618  MonElemContainer<OffPho>* monElemCont = new MonElemContainer<OffPho>("trigTagProbe","Trigger Tag and Probe",new EgTrigTagProbeCut_NewPho(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17HEDoubleFilter"),cutMask,&OffPho::cutCode));
619  //this is all that pass trigtagprobecut
620  MonElemFuncs::initStdPhoCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_pho_all",bins,new EgGreaterCut<OffPho,float>(etCutValue,&OffPho::etSC));
621  //this is all that pass trigtagprobecut and the probe passes the test trigger
622  MonElemFuncs::initStdPhoCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_pho_pass",bins,&(*(new EgMultiCut<OffPho>) << new EgGreaterCut<OffPho,float>(etCutValue,&OffPho::etSC) << new EgObjTrigCut<OffPho>(trigCodes.getCode(trigName),EgObjTrigCut<OffPho>::AND)));
623  //this is all that pass trigtagprobecut and the probe passes the test trigger and the probe is NOT a tag
624  MonElemFuncs::initStdPhoCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_pho_passNotTag",bins,&(*(new EgMultiCut<OffPho>) << new EgGreaterCut<OffPho,float>(etCutValue,&OffPho::etSC) << new EgObjTrigCut<OffPho>(trigCodes.getCode(trigName),EgObjTrigCut<OffPho>::AND,trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),EgObjTrigCut<OffPho>::AND)));
625  //this is all that pass trigtagprobecut and the probe passes the test trigger and the probe is also a tag
626  MonElemFuncs::initStdPhoCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_pho_passTagTag",bins,&(*(new EgMultiCut<OffPho>) << new EgGreaterCut<OffPho,float>(etCutValue,&OffPho::etSC) << new EgObjTrigCut<OffPho>(trigCodes.getCode(trigName),EgObjTrigCut<OffPho>::AND) << new EgObjTrigCut<OffPho>(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17TrackIsolFilter"),EgObjTrigCut<OffPho>::AND) ));
627  //this is all that pass trigtagprobecut and the probe fails the test trigger
628  MonElemFuncs::initStdPhoCutHists(monElemCont->cutMonElems(),trigName,trigName+"_"+monElemCont->name()+"_pho_fail",bins,&(*(new EgMultiCut<OffPho>) << new EgGreaterCut<OffPho,float>(etCutValue,&OffPho::etSC) << new EgObjTrigCut<OffPho>(trigCodes.getCode("hltEle32CaloIdTCaloIsoTTrkIdTTrkIsoTSC17HEDoubleFilter"),EgObjTrigCut<OffPho>::AND,trigCodes.getCode(trigName),EgObjTrigCut<OffPho>::AND)));
629  /*
630  monElemCont->monElems().push_back(new MonElemMgrEBEE<OffPho,float>(iBooker,trigName+"_"+monElemCont->name()+"_pho_all_etUnCut",monElemCont->name()+"_gsfEle_all E_{T} (Uncut);E_{T} (GeV)",
631  bins.et.nr,bins.et.min,bins.et.max,&OffPho::et));
632  monElemCont->cutMonElems().push_back(new MonElemWithCutEBEE<OffPho,float>(iBooker,trigName+"_"+monElemCont->name()+"_pho_pass_etUnCut",monElemCont->name()+"_gsfEle_pass E_{T} (Uncut);E_{T} (GeV)",
633  bins.et.nr,bins.et.min,bins.et.max,&OffPho::et,new EgObjTrigCut<OffPho>(trigCodes.getCode(trigName),EgObjTrigCut<OffPho>::AND)));*/
634  phoMonElems.push_back(monElemCont);
635 }
636 
637 
638 
639 
float e1x5Over5x5() const
Definition: EgHLTOffPho.h:126
float e2x5MaxOver5x5() const
Definition: EgHLTOffEle.h:157
void initTightLooseTrigHistsTrigCuts(std::vector< MonElemContainer< OffEle > * > &eleMonElems, const std::vector< std::string > &tightLooseTrigs, const BinData &bins)
void initStdEleHists(std::vector< MonElemManagerBase< OffEle > * > &histVec, const std::string &filterName, const std::string &baseName, const BinData &bins)
const TrigCodes & trigCodes
void initStdPhoHists(std::vector< MonElemManagerBase< OffPho > * > &histVec, const std::string &filterName, const std::string &baseName, const BinData &bins)
TrigBitSet getCode(const char *descript) const
float detEta() const
Definition: EgHLTOffEle.h:125
virtual EgHLTDQMCut< T > * clone() const =0
Data1D isolNrTrks
Definition: EgHLTBinData.h:60
float epIn() const
Definition: EgHLTOffEle.h:148
float et() const
Definition: EgHLTOffPho.h:101
float isolHad() const
Definition: EgHLTOffPho.h:131
void initTrigTagProbeHist(std::vector< MonElemContainer< OffEle > * > &eleMonElems, const std::string &filterName, int cutMask, const BinData &bins)
const std::string & name() const
float r9() const
Definition: EgHLTOffEle.h:160
float isolPtTrks() const
Definition: EgHLTOffPho.h:133
float invEInvP() const
Definition: EgHLTOffEle.h:163
float DeltaE() const
Definition: EgHLTOffPho.h:144
float et() const
Definition: EgHLTOffEle.h:117
float hltEta() const
Definition: EgHLTOffPho.h:141
float dPhiIn() const
Definition: EgHLTOffEle.h:145
int trigCutsCutCode(const TrigCodes::TrigBitSet &trigger) const
Definition: EgHLTOffPho.cc:16
void initTightLooseDiObjTrigHistsTrigCuts(std::vector< MonElemContainer< OffEle > * > &eleMonElems, const std::vector< std::string > &tightLooseTrigs, const BinData &bins)
std::vector< std::string > splitString(const std::string &fLine)
float hltEnergy() const
Definition: EgHLTOffEle.h:186
float energy() const
Definition: EgHLTOffPho.h:103
Data1D isolPtTrks
Definition: EgHLTBinData.h:59
float detEta() const
Definition: EgHLTOffPho.h:108
void initTrigTagProbeHists(std::vector< MonElemContainer< OffEle > * > &eleMonElems, const std::vector< std::string > &filterNames, int cutMask, const BinData &bins)
float hOverE() const
Definition: EgHLTOffPho.h:116
float dEtaIn() const
Definition: EgHLTOffEle.h:144
float phi() const
Definition: EgHLTOffEle.h:121
float hltEta() const
Definition: EgHLTOffEle.h:185
float DeltaE() const
Definition: EgHLTOffEle.h:188
float r9() const
Definition: EgHLTOffPho.h:127
float sigmaIEtaIEta() const
Definition: EgHLTOffEle.h:154
void initTightLooseTrigHists(std::vector< MonElemContainer< OffEle > * > &eleMonElems, const std::vector< std::string > &tightLooseTrigs, const BinData &bins, EgHLTDQMCut< OffEle > *eleCut)
float e2x5MaxOver5x5() const
Definition: EgHLTOffPho.h:125
float hltPhi() const
Definition: EgHLTOffEle.h:184
float hltPhi() const
Definition: EgHLTOffPho.h:140
float hltIsolHad() const
Definition: EgHLTOffEle.h:175
void initTrigTagProbeHist_2Leg(std::vector< MonElemContainer< OffEle > * > &eleMonElems, const std::string &filterName, int cutMask, const BinData &bins)
int cutCode() const
Definition: EgHLTOffEle.h:211
void initStdPhoCutHists(std::vector< MonElemWithCutBase< OffPho > * > &histVec, const std::string &filterName, const std::string &baseName, const BinData &bins, EgHLTDQMCut< OffPho > *cut=0)
float epOut() const
Definition: EgHLTOffEle.h:149
float energy() const
Definition: EgHLTOffEle.h:119
float etSC() const
Definition: EgHLTOffPho.h:106
void initStdEleHistsHEP(std::vector< MonElemManagerBase< OffEle > * > &histVec, const std::string &filterName, const std::string &baseName, const BinData &bins)
Data1D HLTenergy
Definition: EgHLTBinData.h:52
float sigmaIEtaIEta() const
Definition: EgHLTOffPho.h:122
DQMStore::IBooker & iBooker
float etSC() const
Definition: EgHLTOffEle.h:122
Data1D sigEtaEta
Definition: EgHLTBinData.h:44
float hltIsolTrksEle() const
Definition: EgHLTOffEle.h:173
float phi() const
Definition: EgHLTOffPho.h:105
constexpr uint32_t masks[]
Definition: CaloRecHit.cc:12
void initStdPhoHistsHEP(std::vector< MonElemManagerBase< OffPho > * > &histVec, const std::string &filterName, const std::string &baseName, const BinData &bins)
void initStdEleCutHists(std::vector< MonElemWithCutBase< OffEle > * > &histVec, const std::string &filterName, const std::string &baseName, const BinData &bins, EgHLTDQMCut< OffEle > *cut=0)
int trigCutsCutCode(const TrigCodes::TrigBitSet &trigger) const
Definition: EgHLTOffEle.cc:20
std::vector< MonElemManagerBase< T > * > & monElems()
int isolNrTrks() const
Definition: EgHLTOffPho.h:132
int cutCode() const
Definition: EgHLTOffPho.h:147
void addTightLooseTrigHist(std::vector< MonElemContainer< OffEle > * > &eleMonElems, const std::string &tightTrig, const std::string &looseTrig, EgHLTDQMCut< OffEle > *eleCut, const std::string &histId, const BinData &bins)
float e1x5Over5x5() const
Definition: EgHLTOffEle.h:158
int NVertex() const
Definition: EgHLTOffEle.h:107
float hOverE() const
Definition: EgHLTOffEle.h:143
double split
Definition: MVATrainer.cc:139
float isolEm() const
Definition: EgHLTOffPho.h:130
std::vector< MonElemWithCutBase< T > * > & cutMonElems()
float hltEnergy() const
Definition: EgHLTOffPho.h:142
float hltIsolEm() const
Definition: EgHLTOffEle.h:176
void initStdEffHists(std::vector< MonElemWithCutBase< OffEle > * > &histVec, const std::string &filterName, const std::string &baseName, int nrBins, double xMin, double xMax, float(OffEle::*vsVarFunc)() const, const CutMasks &masks)