CMS 3D CMS Logo

L1ValidatorHists.h
Go to the documentation of this file.
1 #ifndef L1ValidatorHists_h
2 #define L1ValidatorHists_h
3 
4 #include "TH1F.h"
5 //#include <TH2F.h>
6 
7 //#include <DataFormats/HepMCCandidate/interface/GenParticle.h>
9 
10 #include <string>
11 
14 
15 /*#define DECLARE_HISTS(TYPE) \
16 TH2F * ## TYPE ## _N_Pt; \
17 TH2F * ## TYPE ## _N_Eta; \
18 TH2F * ## TYPE ## _Eff_Pt; \
19 TH2F * ## TYPE ## _Eff_Eta; \
20 TH2F * ## TYPE ## _dR; \
21 TH2F * ## TYPE ## _dPt;
22 */
23 
25 public:
28 
30  void Write();
31 
32  int NEvents;
33 
34  // enum Type{ IsoEG, NonIsoEG, CenJet, ForJet, TauJet, Muon, Number };
35  enum Type { Egamma, Jet, Tau, Muon, Number };
37 
38  // Each object has gen (pt, eta, phi, pdg), reco (pt, eta, phi, pdg)
39  // split by pdg (CenJet, ETM, ETT, ForJet, HTM, HTT, IsoEG, Mu, NoIsoEG,
40  // TauJet): 10 needs efficiency (by pt, eta), fake rate (by pt, eta), dR (by
41  // pt, (eta?))
48  /*DECLARE_HISTS(IsoEG)
49  DECLARE_HISTS(NonIsoEG)
50  DECLARE_HISTS(CenJet)
51  DECLARE_HISTS(ForJet)
52  DECLARE_HISTS(TauJet)
53  DECLARE_HISTS(Muon)*/
54 
55  MonitorElement *N[Type::Number];
56 
57  MonitorElement *Eff_Pt[Type::Number];
58  MonitorElement *Eff_Pt_Denom[Type::Number];
59  MonitorElement *Eff_Pt_Nomin[Type::Number];
60  MonitorElement *Eff_Eta[Type::Number];
61  MonitorElement *Eff_Eta_Denom[Type::Number];
62  MonitorElement *Eff_Eta_Nomin[Type::Number];
63  MonitorElement *TurnOn_15[Type::Number];
66  MonitorElement *TurnOn_30[Type::Number];
69  MonitorElement *dR[Type::Number];
70  MonitorElement *dPt[Type::Number];
71  MonitorElement *dR_vs_Pt[Type::Number];
72  MonitorElement *dPt_vs_Pt[Type::Number];
73 
74  // add the rest...
75  // TH2F *ETM_Delta, *ETT_Delta, *HTM_Delta, *HTT_Delta;
76 
77  void Fill(int, const reco::LeafCandidate *, const reco::LeafCandidate *);
78  void FillNumber(int, int);
79  // private:
80  // void NormalizeSlices(TH2F *Hist);
81 };
82 
83 #endif
void Fill(int, const reco::LeafCandidate *, const reco::LeafCandidate *)
MonitorElement * dR_vs_Pt[Type::Number]
MonitorElement * Eff_Eta[Type::Number]
MonitorElement * N[Type::Number]
MonitorElement * TurnOn_15[Type::Number]
MonitorElement * Eff_Pt_Denom[Type::Number]
MonitorElement * TurnOn_15_Denom[Type::Number]
MonitorElement * Eff_Eta_Nomin[Type::Number]
void FillNumber(int, int)
MonitorElement * TurnOn_15_Nomin[Type::Number]
void Book(DQMStore::IBooker &, std::string dirname)
MonitorElement * TurnOn_30_Denom[Type::Number]
MonitorElement * dPt[Type::Number]
MonitorElement * TurnOn_30[Type::Number]
MonitorElement * dR[Type::Number]
MonitorElement * TurnOn_30_Nomin[Type::Number]
MonitorElement * dPt_vs_Pt[Type::Number]
MonitorElement * Eff_Pt_Nomin[Type::Number]
MonitorElement * Eff_Eta_Denom[Type::Number]
std::string Name[4]
MonitorElement * Eff_Pt[Type::Number]