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, TauJet): 10
40  // needs efficiency (by pt, eta), fake rate (by pt, eta), dR (by pt, (eta?))
46  /*DECLARE_HISTS(IsoEG)
47  DECLARE_HISTS(NonIsoEG)
48  DECLARE_HISTS(CenJet)
49  DECLARE_HISTS(ForJet)
50  DECLARE_HISTS(TauJet)
51  DECLARE_HISTS(Muon)*/
52 
53  MonitorElement *N[Type::Number];
54 
55  MonitorElement *Eff_Pt[Type::Number];
56  MonitorElement *Eff_Pt_Denom[Type::Number];
57  MonitorElement *Eff_Pt_Nomin[Type::Number];
58  MonitorElement *Eff_Eta[Type::Number];
59  MonitorElement *Eff_Eta_Denom[Type::Number];
60  MonitorElement *Eff_Eta_Nomin[Type::Number];
61  MonitorElement *TurnOn_15[Type::Number];
64  MonitorElement *TurnOn_30[Type::Number];
67  MonitorElement *dR[Type::Number];
68  MonitorElement *dPt[Type::Number];
69  MonitorElement *dR_vs_Pt[Type::Number];
70  MonitorElement *dPt_vs_Pt[Type::Number];
71 
72 
73  // add the rest...
74  //TH2F *ETM_Delta, *ETT_Delta, *HTM_Delta, *HTT_Delta;
75 
76  void Fill(int, const reco::LeafCandidate *, const reco::LeafCandidate *);
77  void FillNumber(int, int);
78 // private:
79 // void NormalizeSlices(TH2F *Hist);
80 };
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]