CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFJetBenchmark.h
Go to the documentation of this file.
1 #ifndef RecoParticleFlow_Benchmark_PFJetBenchmark_h
2 #define RecoParticleFlow_Benchmark_PFJetBenchmark_h
3 
5 
18 
21 
22 //#include "FWCore/ServiceRegistry/interface/Service.h"
24 #include "TH1F.h"
25 #include "TH2F.h"
26 #include <string>
27 #include <TFile.h>
28 #include <vector>
29 
30 
31 class PFJetBenchmark;
32 
33 class TH1F;
34 class TH2F;
35 
36 //class DQMStore; // CMSSW_2_X_X not needed here?
37 
39 
40  public:
41 
43  virtual ~PFJetBenchmark();
44 
45  void setup(
46  std::string Filename,
47  bool debug,
48  bool plotAgainstReco=0,
49  bool onlyTwoJets=1,
50  double deltaRMax=0.1,
51  std::string benchmarkLabel_ = "ParticleFlow",
52  double recPt = -1,
53  double maxEta = -1,
54  DQMStore * dbe_store = NULL
55  );
57  void gettrue (const reco::GenJet* truth, double& true_ChargedHadEnergy,
58  double& true_NeutralHadEnergy, double& true_NeutralEmEnergy);
59  void printPFJet (const reco::PFJet*);
60  void printGenJet (const reco::GenJet*);
61  double resPtMax() const {return resPtMax_;};
65 // void save();
66  void write();
67 
68  private:
69 
70  TFile *file_;
71 
72  // histograms
73  // Jets inclusive distributions (Pt > 20 GeV)
74  TH1F *hNjets;
75  TH1F *hjetsPt;
76  TH1F *hjetsEta;
77  TH2F *hRPtvsEta ;
78  TH2F *hDEtavsEta ;
79  TH2F *hDPhivsEta ;
80  TH2F *hRNeutvsEta ;
81  TH2F *hRNEUTvsEta ;
82  TH2F *hRNONLvsEta ;
83  TH2F *hRHCALvsEta ;
84  TH2F *hRHONLvsEta ;
85  TH2F *hRCHEvsEta ;
86  TH2F *hNCHvsEta;
87  TH2F* hNCH0vsEta;
88  TH2F* hNCH1vsEta;
89  TH2F* hNCH2vsEta;
90  TH2F* hNCH3vsEta;
91  TH2F* hNCH4vsEta;
92  TH2F* hNCH5vsEta;
93  TH2F* hNCH6vsEta;
94 
95  // delta Pt or E quantities for Barrel
96  TH1F *hBRPt;
97  TH1F *hBRPt20_40;
98  TH1F *hBRPt40_60;
99  TH1F *hBRPt60_80;
100  TH1F *hBRPt80_100;
111  TH1F *hBRCHE;
112  TH1F *hBRNHE;
113  TH1F *hBRNEE;
114  TH1F *hBRneut;
115  TH2F *hBRPtvsPt ;
116  TH2F *hBRCHEvsPt ;
117  TH2F *hBRNHEvsPt;
118  TH2F *hBRNEEvsPt;
119  TH2F *hBRneutvsPt;
120  TH2F *hBRNEUTvsP;
121  TH2F *hBRNONLvsP;
122  TH2F *hBRHCALvsP;
123  TH2F *hBRHONLvsP;
124  TH2F *hBDEtavsPt;
125  TH2F *hBDPhivsPt;
126  TH2F *hBNCHvsPt;
127  TH1F *hBNCH;
128  TH2F* hBNCH0vsPt;
129  TH2F* hBNCH1vsPt;
130  TH2F* hBNCH2vsPt;
131  TH2F* hBNCH3vsPt;
132  TH2F* hBNCH4vsPt;
133  TH2F* hBNCH5vsPt;
134  TH2F* hBNCH6vsPt;
135 
136  // delta Pt or E quantities for Endcap
137  TH1F *hERPt ;
138  TH1F *hERPt20_40;
139  TH1F *hERPt40_60;
140  TH1F *hERPt60_80;
141  TH1F *hERPt80_100;
152  TH1F *hERCHE;
153  TH1F *hERNHE;
154  TH1F *hERNEE;
155  TH1F *hERneut;
156  TH2F *hERPtvsPt ;
157  TH2F *hERCHEvsPt;
158  TH2F *hERNHEvsPt ;
159  TH2F *hERNEEvsPt;
160  TH2F *hERneutvsPt;
161  TH2F *hERNEUTvsP;
162  TH2F *hERNONLvsP;
163  TH2F *hERHCALvsP;
164  TH2F *hERHONLvsP;
165  TH2F *hEDEtavsPt;
166  TH2F *hEDPhivsPt;
167  TH2F *hENCHvsPt;
168  TH1F *hENCH;
169  TH2F* hENCH0vsPt;
170  TH2F* hENCH1vsPt;
171  TH2F* hENCH2vsPt;
172  TH2F* hENCH3vsPt;
173  TH2F* hENCH4vsPt;
174  TH2F* hENCH5vsPt;
175  TH2F* hENCH6vsPt;
176 
177  // delta Pt or E quantities for Forward
178  TH1F *hFRPt ;
179  TH1F *hFRPt20_40;
180  TH1F *hFRPt40_60;
181  TH1F *hFRPt60_80;
182  TH1F *hFRPt80_100;
193  TH1F *hFRCHE;
194  TH1F *hFRNHE;
195  TH1F *hFRNEE;
196  TH1F *hFRneut;
197  TH2F *hFRPtvsPt ;
198  TH2F *hFRCHEvsPt;
199  TH2F *hFRNHEvsPt ;
200  TH2F *hFRNEEvsPt;
201  TH2F *hFRneutvsPt;
202  TH2F *hFRNEUTvsP;
203  TH2F *hFRNONLvsP;
204  TH2F *hFRHCALvsP;
205  TH2F *hFRHONLvsP;
206  TH2F *hFDEtavsPt;
207  TH2F *hFDPhivsPt;
208  TH2F *hFNCHvsPt;
209  TH1F *hFNCH;
210  TH2F* hFNCH0vsPt;
211  TH2F* hFNCH1vsPt;
212  TH2F* hFNCH2vsPt;
213  TH2F* hFNCH3vsPt;
214  TH2F* hFNCH4vsPt;
215  TH2F* hFNCH5vsPt;
216  TH2F* hFNCH6vsPt;
217 
218  std::string outputFile_;
219  protected:
220 
222  bool debug_;
225  double deltaRMax_;
226  double resPtMax_;
230  double recPt_cut;
231  double maxEta_cut;
232  unsigned int entry_;
234 };
235 
236 #endif // RecoParticleFlow_Benchmark_PFJetBenchmark_h
bool onlyTwoJets
double deltaRMax
std::vector< GenJet > GenJetCollection
collection of GenJet objects
#define NULL
Definition: scimark2.h:8
double maxEta
Jets made from PFObjects.
Definition: PFJet.h:22
unsigned int entry_
DQMStore * dbe_
virtual ~PFJetBenchmark()
void gettrue(const reco::GenJet *truth, double &true_ChargedHadEnergy, double &true_NeutralHadEnergy, double &true_NeutralEmEnergy)
void setup(std::string Filename, bool debug, bool plotAgainstReco=0, bool onlyTwoJets=1, double deltaRMax=0.1, std::string benchmarkLabel_="ParticleFlow", double recPt=-1, double maxEta=-1, DQMStore *dbe_store=NULL)
Jets made from MC generator particles.
Definition: GenJet.h:25
std::string outputFile_
double resPtMax() const
string benchmarkLabel_
double resNeutralEmEnergyMax() const
double resNeutralHadEnergyMax() const
PFBenchmarkAlgo * algo_
void process(const reco::PFJetCollection &, const reco::GenJetCollection &)
bool plotAgainstReco
double resChargedHadEnergyMax_
double resChargedHadEnergyMax() const
std::vector< PFJet > PFJetCollection
collection of PFJet objects
double resNeutralHadEnergyMax_
void printPFJet(const reco::PFJet *)
double recPt
double resNeutralEmEnergyMax_
#define debug
Definition: MEtoEDMFormat.h:34
void printGenJet(const reco::GenJet *)