CMS 3D CMS Logo

JetTester_HeavyIons.cc
Go to the documentation of this file.
1 // Producer for validation histograms for Calo and PF background subtracted
2 // objects Modified by Raghav Kunnawalkam Elayavalli, Aug 18th 2014
3 // , Oct 22nd 2014 to run in 73X
4 
5 #include "JetTester_HeavyIons.h"
6 
7 using namespace edm;
8 using namespace reco;
9 using namespace std;
10 
12  : mInputCollection(iConfig.getParameter<edm::InputTag>("src")),
13  mInputGenCollection(iConfig.getParameter<edm::InputTag>("srcGen")),
14  mInputPFCandCollection(iConfig.getParameter<edm::InputTag>("PFcands")),
15  // mInputCandCollection (iConfig.getParameter<edm::InputTag>
16  // ("Cands")), rhoTag (iConfig.getParameter<edm::InputTag> ("srcRho")),
17  mOutputFile(iConfig.getUntrackedParameter<std::string>("OutputFile", "")),
18  JetType(iConfig.getUntrackedParameter<std::string>("JetType")),
19  UEAlgo(iConfig.getUntrackedParameter<std::string>("UEAlgo")),
20  Background(iConfig.getParameter<edm::InputTag>("Background")),
21  mRecoJetPtThreshold(iConfig.getParameter<double>("recoJetPtThreshold")),
22  mMatchGenPtThreshold(iConfig.getParameter<double>("matchGenPtThreshold")),
23  mGenEnergyFractionThreshold(iConfig.getParameter<double>("genEnergyFractionThreshold")),
24  mReverseEnergyFractionThreshold(iConfig.getParameter<double>("reverseEnergyFractionThreshold")),
25  mRThreshold(iConfig.getParameter<double>("RThreshold")),
26  JetCorrectionService(iConfig.getParameter<std::string>("JetCorrections")) {
27  std::string inputCollectionLabel(mInputCollection.label());
28 
29  isCaloJet = (std::string("calo") == JetType);
30  isJPTJet = (std::string("jpt") == JetType);
31  isPFJet = (std::string("pf") == JetType);
32 
33  // consumes
34  pvToken_ = consumes<std::vector<reco::Vertex>>(edm::InputTag("offlinePrimaryVertices"));
35  caloTowersToken_ = consumes<CaloTowerCollection>(edm::InputTag("towerMaker"));
36  if (isCaloJet)
37  caloJetsToken_ = consumes<reco::CaloJetCollection>(mInputCollection);
38  if (isJPTJet)
39  jptJetsToken_ = consumes<reco::JPTJetCollection>(mInputCollection);
40  if (isPFJet) {
41  if (std::string("Pu") == UEAlgo)
42  basicJetsToken_ = consumes<reco::BasicJetCollection>(mInputCollection);
43  }
44 
45  genJetsToken_ = consumes<reco::GenJetCollection>(edm::InputTag(mInputGenCollection));
46  evtToken_ = consumes<GenEventInfoProduct>(edm::InputTag("generator"));
47  pfCandToken_ = consumes<reco::PFCandidateCollection>(mInputPFCandCollection);
48  pfCandViewToken_ = consumes<reco::CandidateView>(mInputPFCandCollection);
49  caloCandViewToken_ = consumes<reco::CandidateView>(edm::InputTag("towerMaker"));
50  backgrounds_ = consumes<edm::ValueMap<reco::VoronoiBackground>>(Background);
51  backgrounds_value_ = consumes<std::vector<float>>(Background);
52  centralityTag_ = iConfig.getParameter<InputTag>("centralitycollection");
53  centralityToken = consumes<reco::Centrality>(centralityTag_);
54 
55  centralityBinTag_ = (iConfig.getParameter<edm::InputTag>("centralitybincollection"));
56  centralityBinToken = consumes<int>(centralityBinTag_);
57  hiVertexToken_ = consumes<std::vector<reco::Vertex>>(edm::InputTag("hiSelectedVertex"));
58 
59  // need to initialize the PF cand histograms : which are also event variables
60  if (isPFJet) {
61  mNPFpart = nullptr;
62  mPFPt = nullptr;
63  mPFEta = nullptr;
64  mPFPhi = nullptr;
65  mPFArea = nullptr;
66  mSumPFPt = nullptr;
67  mSumSquaredPFPt = nullptr;
68  mSumPFPt_HF = nullptr;
69 
70  mSumPFPt_n5p191_n2p650 = nullptr;
71  mSumPFPt_n2p650_n2p043 = nullptr;
72  mSumPFPt_n2p043_n1p740 = nullptr;
73  mSumPFPt_n1p740_n1p479 = nullptr;
74  mSumPFPt_n1p479_n1p131 = nullptr;
75  mSumPFPt_n1p131_n0p783 = nullptr;
76  mSumPFPt_n0p783_n0p522 = nullptr;
77  mSumPFPt_n0p522_0p522 = nullptr;
78  mSumPFPt_0p522_0p783 = nullptr;
79  mSumPFPt_0p783_1p131 = nullptr;
80  mSumPFPt_1p131_1p479 = nullptr;
81  mSumPFPt_1p479_1p740 = nullptr;
82  mSumPFPt_1p740_2p043 = nullptr;
83  mSumPFPt_2p043_2p650 = nullptr;
84  mSumPFPt_2p650_5p191 = nullptr;
85 
86  mPFCandpT_vs_eta_Unknown = nullptr; // pf id 0
87  mPFCandpT_vs_eta_ChargedHadron = nullptr; // pf id - 1
88  mPFCandpT_vs_eta_electron = nullptr; // pf id - 2
89  mPFCandpT_vs_eta_muon = nullptr; // pf id - 3
90  mPFCandpT_vs_eta_photon = nullptr; // pf id - 4
91  mPFCandpT_vs_eta_NeutralHadron = nullptr; // pf id - 5
92  mPFCandpT_vs_eta_HadE_inHF = nullptr; // pf id - 6
93  mPFCandpT_vs_eta_EME_inHF = nullptr; // pf id - 7
94 
95  mPFCandpT_Barrel_Unknown = nullptr; // pf id 0
96  mPFCandpT_Barrel_ChargedHadron = nullptr; // pf id - 1
97  mPFCandpT_Barrel_electron = nullptr; // pf id - 2
98  mPFCandpT_Barrel_muon = nullptr; // pf id - 3
99  mPFCandpT_Barrel_photon = nullptr; // pf id - 4
100  mPFCandpT_Barrel_NeutralHadron = nullptr; // pf id - 5
101  mPFCandpT_Barrel_HadE_inHF = nullptr; // pf id - 6
102  mPFCandpT_Barrel_EME_inHF = nullptr; // pf id - 7
103 
104  mPFCandpT_Endcap_Unknown = nullptr; // pf id 0
105  mPFCandpT_Endcap_ChargedHadron = nullptr; // pf id - 1
106  mPFCandpT_Endcap_electron = nullptr; // pf id - 2
107  mPFCandpT_Endcap_muon = nullptr; // pf id - 3
108  mPFCandpT_Endcap_photon = nullptr; // pf id - 4
109  mPFCandpT_Endcap_NeutralHadron = nullptr; // pf id - 5
110  mPFCandpT_Endcap_HadE_inHF = nullptr; // pf id - 6
111  mPFCandpT_Endcap_EME_inHF = nullptr; // pf id - 7
112 
113  mPFCandpT_Forward_Unknown = nullptr; // pf id 0
114  mPFCandpT_Forward_ChargedHadron = nullptr; // pf id - 1
115  mPFCandpT_Forward_electron = nullptr; // pf id - 2
116  mPFCandpT_Forward_muon = nullptr; // pf id - 3
117  mPFCandpT_Forward_photon = nullptr; // pf id - 4
118  mPFCandpT_Forward_NeutralHadron = nullptr; // pf id - 5
119  mPFCandpT_Forward_HadE_inHF = nullptr; // pf id - 6
120  mPFCandpT_Forward_EME_inHF = nullptr; // pf id - 7
121  }
122  if (isCaloJet) {
123  mNCalopart = nullptr;
124  mCaloPt = nullptr;
125  mCaloEta = nullptr;
126  mCaloPhi = nullptr;
127  mCaloArea = nullptr;
128 
129  mSumCaloPt = nullptr;
130  mSumSquaredCaloPt = nullptr;
131  mSumCaloPt_HF = nullptr;
132 
133  mSumCaloPt_n5p191_n2p650 = nullptr;
134  mSumCaloPt_n2p650_n2p043 = nullptr;
135  mSumCaloPt_n2p043_n1p740 = nullptr;
136  mSumCaloPt_n1p740_n1p479 = nullptr;
137  mSumCaloPt_n1p479_n1p131 = nullptr;
138  mSumCaloPt_n1p131_n0p783 = nullptr;
139  mSumCaloPt_n0p783_n0p522 = nullptr;
140  mSumCaloPt_n0p522_0p522 = nullptr;
141  mSumCaloPt_0p522_0p783 = nullptr;
142  mSumCaloPt_0p783_1p131 = nullptr;
143  mSumCaloPt_1p131_1p479 = nullptr;
144  mSumCaloPt_1p479_1p740 = nullptr;
145  mSumCaloPt_1p740_2p043 = nullptr;
146  mSumCaloPt_2p043_2p650 = nullptr;
147  mSumCaloPt_2p650_5p191 = nullptr;
148  }
149  mSumpt = nullptr;
150 
151  // Events variables
152  mNvtx = nullptr;
153  mHF = nullptr;
154 
155  // Jet parameters
156  mEta = nullptr;
157  mPhi = nullptr;
158  mEnergy = nullptr;
159  mP = nullptr;
160  mPt = nullptr;
161  mMass = nullptr;
162  mConstituents = nullptr;
163  mJetArea = nullptr;
164  mjetpileup = nullptr;
165  mNJets_40 = nullptr;
166  mNJets = nullptr;
167 
168  mGenEta = nullptr;
169  mGenPhi = nullptr;
170  mGenPt = nullptr;
171  mPtHat = nullptr;
172 
194 
216 
238 
260 
273 
281 
289 
297 
305 }
306 
308  ibooker.setCurrentFolder("JetMET/JetValidation/" + mInputCollection.label());
309 
310  double log10PtMin = 0.50;
311  double log10PtMax = 3.75;
312  int log10PtBins = 26;
313 
314  static const size_t ncms_hcal_edge_pseudorapidity = 82 + 1;
315  static const double cms_hcal_edge_pseudorapidity[ncms_hcal_edge_pseudorapidity] = {
316  -5.191, -4.889, -4.716, -4.538, -4.363, -4.191, -4.013, -3.839, -3.664, -3.489, -3.314, -3.139, -2.964, -2.853,
317  -2.650, -2.500, -2.322, -2.172, -2.043, -1.930, -1.830, -1.740, -1.653, -1.566, -1.479, -1.392, -1.305, -1.218,
318  -1.131, -1.044, -0.957, -0.879, -0.783, -0.696, -0.609, -0.522, -0.435, -0.348, -0.261, -0.174, -0.087, 0.000,
319  0.087, 0.174, 0.261, 0.348, 0.435, 0.522, 0.609, 0.696, 0.783, 0.879, 0.957, 1.044, 1.131, 1.218,
320  1.305, 1.392, 1.479, 1.566, 1.653, 1.740, 1.830, 1.930, 2.043, 2.172, 2.322, 2.500, 2.650, 2.853,
321  2.964, 3.139, 3.314, 3.489, 3.664, 3.839, 4.013, 4.191, 4.363, 4.538, 4.716, 4.889, 5.191};
322 
323  double etaRange[91] = {-6.0, -5.8, -5.6, -5.4, -5.2, -5.0, -4.8, -4.6, -4.4, -4.2, -4.0, -3.8, -3.6, -3.4, -3.2, -3.0,
324  -2.9, -2.8, -2.7, -2.6, -2.5, -2.4, -2.3, -2.2, -2.1, -2.0, -1.9, -1.8, -1.7, -1.6, -1.5, -1.4,
325  -1.3, -1.2, -1.1, -1.0, -0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2,
326  0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8,
327  1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.2, 3.4, 3.6, 3.8,
328  4.0, 4.2, 4.4, 4.6, 4.8, 5.0, 5.2, 5.4, 5.6, 5.8, 6.0};
329 
330  double edge_pseudorapidity[etaBins_ + 1] = {-5.191,
331  -2.650,
332  -2.043,
333  -1.740,
334  -1.479,
335  -1.131,
336  -0.783,
337  -0.522,
338  0.522,
339  0.783,
340  1.131,
341  1.479,
342  1.740,
343  2.043,
344  2.650,
345  5.191};
346 
347  TH2F *h2D_etabins_vs_pt2 = new TH2F(
348  "h2D_etabins_vs_pt2", "etaBins (x axis), sum pt^{2} (y axis)", etaBins_, edge_pseudorapidity, 10000, 0, 10000);
349  TH2F *h2D_etabins_vs_pt = new TH2F(
350  "h2D_etabins_vs_pt", "etaBins (x axis), sum pt (y axis)", etaBins_, edge_pseudorapidity, 10000, -1000, 1000);
351  TH2F *h2D_etabins_vs_phi = new TH2F("h2D_etabins_vs_phi",
352  "candidate map, eta(x axis), phi (y axis), pt (z axis)",
353  ncms_hcal_edge_pseudorapidity - 1,
354  cms_hcal_edge_pseudorapidity,
355  36,
356  -TMath::Pi(),
357  TMath::Pi());
358  TH2F *h2D_pfcand_etabins_vs_pt =
359  new TH2F("h2D_etabins_vs_pt", ";#eta;sum p_{T}", etaBins_, edge_pseudorapidity, 300, 0, 300);
360 
361  if (isPFJet) {
362  mNPFpart = ibooker.book1D("NPFpart", "No of particle flow candidates", 1000, 0, 10000);
363  mPFPt = ibooker.book1D("PFPt", "PF candidate p_{T}", 1000, -5000, 5000);
364  mPFEta = ibooker.book1D("PFEta", "PF candidate #eta", 120, -6, 6);
365  mPFPhi = ibooker.book1D("PFPhi", "PF candidate #phi", 70, -3.5, 3.5);
366  mPFArea = ibooker.book1D("PFArea", "VS PF candidate area", 100, 0, 4);
367 
368  mSumPFPt = ibooker.book1D("SumPFPt", "Sum of initial PF p_{T}", 1000, -10000, 10000);
369 
370  mSumSquaredPFPt = ibooker.book1D("SumSquaredPFPt", "Sum of initial PF p_{T} squared", 10000, 0, 10000);
371 
372  mSumPFPt_HF = ibooker.book2D(
373  "SumPFPt_HF", "HF energy (y axis) vs Sum initial PF p_{T} (x axis)", 1000, -1000, 1000, 1000, 0, 10000);
374 
376  ibooker.book1D("mSumPFPt_n5p191_n2p650", "Sum PFPt in the eta range -5.191 to -2.650", 1000, -5000, 5000);
378  ibooker.book1D("mSumPFPt_n2p650_n2p043", "Sum PFPt in the eta range -2.650 to -2.043 ", 1000, -5000, 5000);
380  ibooker.book1D("mSumPFPt_n2p043_n1p740", "Sum PFPt in the eta range -2.043 to -1.740", 1000, -1000, 1000);
382  ibooker.book1D("mSumPFPt_n1p740_n1p479", "Sum PFPt in the eta range -1.740 to -1.479", 1000, -1000, 1000);
384  ibooker.book1D("mSumPFPt_n1p479_n1p131", "Sum PFPt in the eta range -1.479 to -1.131", 1000, -1000, 1000);
386  ibooker.book1D("mSumPFPt_n1p131_n0p783", "Sum PFPt in the eta range -1.131 to -0.783", 1000, -1000, 1000);
388  ibooker.book1D("mSumPFPt_n0p783_n0p522", "Sum PFPt in the eta range -0.783 to -0.522", 1000, -1000, 1000);
390  ibooker.book1D("mSumPFPt_n0p522_0p522", "Sum PFPt in the eta range -0.522 to 0.522", 1000, -1000, 1000);
392  ibooker.book1D("mSumPFPt_0p522_0p783", "Sum PFPt in the eta range 0.522 to 0.783", 1000, -1000, 1000);
394  ibooker.book1D("mSumPFPt_0p783_1p131", "Sum PFPt in the eta range 0.783 to 1.131", 1000, -1000, 1000);
396  ibooker.book1D("mSumPFPt_1p131_1p479", "Sum PFPt in the eta range 1.131 to 1.479", 1000, -1000, 1000);
398  ibooker.book1D("mSumPFPt_1p479_1p740", "Sum PFPt in the eta range 1.479 to 1.740", 1000, -1000, 1000);
400  ibooker.book1D("mSumPFPt_1p740_2p043", "Sum PFPt in the eta range 1.740 to 2.043", 1000, -1000, 1000);
402  ibooker.book1D("mSumPFPt_2p043_2p650", "Sum PFPt in the eta range 2.043 to 2.650", 1000, -5000, 5000);
404  ibooker.book1D("mSumPFPt_2p650_5p191", "Sum PFPt in the eta range 2.650 to 5.191", 1000, -5000, 5000);
405 
406  mPFCandpT_vs_eta_Unknown = ibooker.book2D("PF_cand_X_unknown", h2D_pfcand_etabins_vs_pt); // pf id 0
407  mPFCandpT_vs_eta_ChargedHadron = ibooker.book2D("PF_cand_chargedHad", h2D_pfcand_etabins_vs_pt); // pf id - 1
408  mPFCandpT_vs_eta_electron = ibooker.book2D("PF_cand_electron", h2D_pfcand_etabins_vs_pt); // pf id - 2
409  mPFCandpT_vs_eta_muon = ibooker.book2D("PF_cand_muon", h2D_pfcand_etabins_vs_pt); // pf id - 3
410  mPFCandpT_vs_eta_photon = ibooker.book2D("PF_cand_photon", h2D_pfcand_etabins_vs_pt); // pf id - 4
411  mPFCandpT_vs_eta_NeutralHadron = ibooker.book2D("PF_cand_neutralHad", h2D_pfcand_etabins_vs_pt); // pf id - 5
412  mPFCandpT_vs_eta_HadE_inHF = ibooker.book2D("PF_cand_HadEner_inHF", h2D_pfcand_etabins_vs_pt); // pf id - 6
413  mPFCandpT_vs_eta_EME_inHF = ibooker.book2D("PF_cand_EMEner_inHF", h2D_pfcand_etabins_vs_pt); // pf id - 7
414 
415  mPFCandpT_Barrel_Unknown = ibooker.book1D("mPFCandpT_Barrel_Unknown",
416  Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),
417  300,
418  0,
419  300); // pf id - 0
420  mPFCandpT_Barrel_ChargedHadron = ibooker.book1D("mPFCandpT_Barrel_ChargedHadron",
421  Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),
422  300,
423  0,
424  300); // pf id - 1
425  mPFCandpT_Barrel_electron = ibooker.book1D("mPFCandpT_Barrel_electron",
426  Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),
427  300,
428  0,
429  300); // pf id - 2
430  mPFCandpT_Barrel_muon = ibooker.book1D("mPFCandpT_Barrel_muon",
431  Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),
432  300,
433  0,
434  300); // pf id - 3
435  mPFCandpT_Barrel_photon = ibooker.book1D("mPFCandpT_Barrel_photon",
436  Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),
437  300,
438  0,
439  300); // pf id - 4
440  mPFCandpT_Barrel_NeutralHadron = ibooker.book1D("mPFCandpT_Barrel_NeutralHadron",
441  Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),
442  300,
443  0,
444  300); // pf id - 5
445  mPFCandpT_Barrel_HadE_inHF = ibooker.book1D("mPFCandpT_Barrel_HadE_inHF",
446  Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),
447  300,
448  0,
449  300); // pf id - 6
450  mPFCandpT_Barrel_EME_inHF = ibooker.book1D("mPFCandpT_Barrel_EME_inHF",
451  Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),
452  300,
453  0,
454  300); // pf id - 7
455 
457  ibooker.book1D("mPFCandpT_Endcap_Unknown",
458  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),
459  300,
460  0,
461  300); // pf id - 0
463  ibooker.book1D("mPFCandpT_Endcap_ChargedHadron",
464  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),
465  300,
466  0,
467  300); // pf id - 1
469  ibooker.book1D("mPFCandpT_Endcap_electron",
470  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),
471  300,
472  0,
473  300); // pf id - 2
475  ibooker.book1D("mPFCandpT_Endcap_muon",
476  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),
477  300,
478  0,
479  300); // pf id - 3
481  ibooker.book1D("mPFCandpT_Endcap_photon",
482  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),
483  300,
484  0,
485  300); // pf id - 4
487  ibooker.book1D("mPFCandpT_Endcap_NeutralHadron",
488  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),
489  300,
490  0,
491  300); // pf id - 5
493  ibooker.book1D("mPFCandpT_Endcap_HadE_inHF",
494  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),
495  300,
496  0,
497  300); // pf id - 6
499  ibooker.book1D("mPFCandpT_Endcap_EME_inHF",
500  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),
501  300,
502  0,
503  300); // pf id - 7
504 
506  ibooker.book1D("mPFCandpT_Forward_Unknown",
507  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),
508  300,
509  0,
510  300); // pf id - 0
512  ibooker.book1D("mPFCandpT_Forward_ChargedHadron",
513  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),
514  300,
515  0,
516  300); // pf id - 1
518  ibooker.book1D("mPFCandpT_Forward_electron",
519  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),
520  300,
521  0,
522  300); // pf id - 2
524  ibooker.book1D("mPFCandpT_Forward_muon",
525  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),
526  300,
527  0,
528  300); // pf id - 3
530  ibooker.book1D("mPFCandpT_Forward_photon",
531  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),
532  300,
533  0,
534  300); // pf id - 4
536  ibooker.book1D("mPFCandpT_Forward_NeutralHadron",
537  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),
538  300,
539  0,
540  300); // pf id - 5
542  ibooker.book1D("mPFCandpT_Forward_HadE_inHF",
543  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),
544  300,
545  0,
546  300); // pf id - 6
548  ibooker.book1D("mPFCandpT_Forward_EME_inHF",
549  Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),
550  300,
551  0,
552  300); // pf id - 7
553  }
554 
555  if (isCaloJet) {
556  mNCalopart = ibooker.book1D("NCalopart", "No of particle flow candidates", 1000, 0, 10000);
557  mCaloPt = ibooker.book1D("CaloPt", "Calo candidate p_{T}", 1000, -5000, 5000);
558  mCaloEta = ibooker.book1D("CaloEta", "Calo candidate #eta", 120, -6, 6);
559  mCaloPhi = ibooker.book1D("CaloPhi", "Calo candidate #phi", 70, -3.5, 3.5);
560  mCaloArea = ibooker.book1D("CaloArea", "VS Calo candidate area", 100, 0, 4);
561 
562  mSumCaloPt = ibooker.book1D("SumCaloPt", "Sum Calo p_{T}", 1000, -10000, 10000);
563 
564  mSumSquaredCaloPt = ibooker.book1D("SumSquaredCaloPt", "Sum of initial Calo tower p_{T} squared", 10000, 0, 10000);
565 
566  mSumCaloPt_HF =
567  ibooker.book2D("SumCaloPt_HF", "HF Energy (y axis) vs Sum Calo tower p_{T}", 1000, -1000, 1000, 1000, 0, 10000);
568 
570  "mSumCaloPt_n5p191_n2p650", "Sum Calo tower pT variable in the eta range -5.191 to -2.650", 1000, -5000, 5000);
572  "mSumCaloPt_n2p650_n2p043", "Sum Calo tower pT variable in the eta range -2.650 to -2.043", 1000, -5000, 5000);
574  "mSumCaloPt_n2p043_n1p740", "Sum Calo tower pT variable in the eta range -2.043 to -1.740", 1000, -1000, 1000);
576  "mSumCaloPt_n1p740_n1p479", "Sum Calo tower pT variable in the eta range -1.740 to -1.479", 1000, -1000, 1000);
578  "mSumCaloPt_n1p479_n1p131", "Sum Calo tower pT variable in the eta range -1.479 to -1.131", 1000, -1000, 1000);
580  "mSumCaloPt_n1p131_n0p783", "Sum Calo tower pT variable in the eta range -1.131 to -0.783", 1000, -1000, 1000);
582  "mSumCaloPt_n0p783_n0p522", "Sum Calo tower pT variable in the eta range -0.783 to -0.522", 1000, -1000, 1000);
584  "mSumCaloPt_n0p522_0p522", "Sum Calo tower pT variable in the eta range -0.522 to 0.522", 1000, -1000, 1000);
585  mSumCaloPt_0p522_0p783 = ibooker.book1D(
586  "mSumCaloPt_0p522_0p783", "Sum Calo tower pT variable in the eta range 0.522 to 0.783", 1000, -1000, 1000);
587  mSumCaloPt_0p783_1p131 = ibooker.book1D(
588  "mSumCaloPt_0p783_1p131", "Sum Calo tower pT variable in the eta range 0.783 to 1.131", 1000, -1000, 1000);
589  mSumCaloPt_1p131_1p479 = ibooker.book1D(
590  "mSumCaloPt_1p131_1p479", "Sum Calo tower pT variable in the eta range 1.131 to 1.479", 1000, -1000, 1000);
591  mSumCaloPt_1p479_1p740 = ibooker.book1D(
592  "mSumCaloPt_1p479_1p740", "Sum Calo tower pT variable in the eta range 1.479 to 1.740", 1000, -1000, 1000);
593  mSumCaloPt_1p740_2p043 = ibooker.book1D(
594  "mSumCaloPt_1p740_2p043", "Sum Calo tower pT variable in the eta range 1.740 to 2.043", 1000, -1000, 1000);
595  mSumCaloPt_2p043_2p650 = ibooker.book1D(
596  "mSumCaloPt_2p043_2p650", "Sum Calo tower pT variable in the eta range 2.043 to 2.650", 1000, -5000, 5000);
597  mSumCaloPt_2p650_5p191 = ibooker.book1D(
598  "mSumCaloPt_2p650_5p191", "Sum Calo tower pT variable in the eta range 2.650 to 5.191", 1000, -5000, 5000);
599  }
600 
601  // particle flow variables histograms
602  mSumpt = ibooker.book1D("SumpT", "Sum p_{T} of all the PF candidates per event", 1000, 0, 10000);
603 
604  // Event variables
605  mNvtx = ibooker.book1D("Nvtx", "number of vertices", 60, 0, 60);
606  mHF = ibooker.book1D("HF", "HF energy distribution", 1000, 0, 10000);
607 
608  // Jet parameters
609  mEta = ibooker.book1D("Eta", "Eta", 120, -6, 6);
610  mPhi = ibooker.book1D("Phi", "Phi", 70, -3.5, 3.5);
611  mPt = ibooker.book1D("Pt", "Pt", 100, 0, 1000);
612  mP = ibooker.book1D("P", "P", 100, 0, 1000);
613  mEnergy = ibooker.book1D("Energy", "Energy", 100, 0, 1000);
614  mMass = ibooker.book1D("Mass", "Mass", 100, 0, 200);
615  mConstituents = ibooker.book1D("Constituents", "Constituents", 100, 0, 100);
616  mJetArea = ibooker.book1D("JetArea", "JetArea", 100, 0, 4);
617  mjetpileup = ibooker.book1D("jetPileUp", "jetPileUp", 100, 0, 150);
618  mNJets_40 = ibooker.book1D("NJets_pt_greater_40", "NJets pT > 40 GeV", 50, 0, 100);
619  mNJets = ibooker.book1D("NJets", "NJets", 50, 0, 100);
620 
621  mGenEta = ibooker.book1D("Gen Eta", ";gen jet #eta;counts", 120, -6, 6);
622  mGenPhi = ibooker.book1D("Gen Phi", ";gen jet #phi;counts", 70, -3.5, 3.5);
623  mGenPt = ibooker.book1D("Gen pT", "gen jet p_{T}", 250, 0, 1000);
624  mPtHat = ibooker.book1D("pThat", "#hat{p_{T}}", 250, 0, 1000);
625 
627  ibooker.book1D("PtRecoOverGen_B_20_30_Cent_0_10", "20<genpt<30; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
629  ibooker.book1D("PtRecoOverGen_E_20_30_Cent_0_10", "20<genpt<30; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
631  ibooker.book1D("PtRecoOverGen_F_20_30_Cent_0_10", "20<genpt<30; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
633  ibooker.book1D("PtRecoOverGen_B_30_50_Cent_0_10", "30<genpt<50; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
635  ibooker.book1D("PtRecoOverGen_E_30_50_Cent_0_10", "30<genpt<50; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
637  ibooker.book1D("PtRecoOverGen_F_30_50_Cent_0_10", "30<genpt<50; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
639  ibooker.book1D("PtRecoOverGen_B_50_80_Cent_0_10", "50<genpt<80; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
641  ibooker.book1D("PtRecoOverGen_E_50_80_Cent_0_10", "50<genpt<80; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
643  ibooker.book1D("PtRecoOverGen_F_50_80_Cent_0_10", "50<genpt<80; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
645  "PtRecoOverGen_B_80_120_Cent_0_10", "80<genpt<120; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
647  "PtRecoOverGen_E_80_120_Cent_0_10", "80<genpt<120; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
649  "PtRecoOverGen_F_80_120_Cent_0_10", "80<genpt<120; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
651  "PtRecoOverGen_B_120_180_Cent_0_10", "120<genpt<180; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
653  "PtRecoOverGen_E_120_180_Cent_0_10", "120<genpt<180; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
655  "PtRecoOverGen_F_120_180_Cent_0_10", "120<genpt<180; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
657  "PtRecoOverGen_B_180_300_Cent_0_10", "180<genpt<300; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
659  "PtRecoOverGen_E_180_300_Cent_0_10", "180<genpt<300; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
661  "PtRecoOverGen_F_180_300_Cent_0_10", "180<genpt<300; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
663  "PtRecoOverGen_B_300_Inf_Cent_0_10", "300<genpt<Inf; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
665  "PtRecoOverGen_E_300_Inf_Cent_0_10", "300<genpt<Inf; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
667  "PtRecoOverGen_F_300_Inf_Cent_0_10", "300<genpt<Inf; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
668 
670  "PtRecoOverGen_B_20_30_Cent_10_30", "20<genpt<30; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
672  "PtRecoOverGen_E_20_30_Cent_10_30", "20<genpt<30; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
674  "PtRecoOverGen_F_20_30_Cent_10_30", "20<genpt<30; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
676  "PtRecoOverGen_B_30_50_Cent_10_30", "30<genpt<50; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
678  "PtRecoOverGen_E_30_50_Cent_10_30", "30<genpt<50; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
680  "PtRecoOverGen_F_30_50_Cent_10_30", "30<genpt<50; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
682  "PtRecoOverGen_B_50_80_Cent_10_30", "50<genpt<80; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
684  "PtRecoOverGen_E_50_80_Cent_10_30", "50<genpt<80; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
686  "PtRecoOverGen_F_50_80_Cent_10_30", "50<genpt<80; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
688  "PtRecoOverGen_B_80_120_Cent_10_30", "80<genpt<120; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
690  "PtRecoOverGen_E_80_120_Cent_10_30", "80<genpt<120; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
692  "PtRecoOverGen_F_80_120_Cent_10_30", "80<genpt<120; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
694  "PtRecoOverGen_B_120_180_Cent_10_30", "120<genpt<180; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
696  "PtRecoOverGen_E_120_180_Cent_10_30", "120<genpt<180; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
698  "PtRecoOverGen_F_120_180_Cent_10_30", "120<genpt<180; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
700  "PtRecoOverGen_B_180_300_Cent_10_30", "180<genpt<300; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
702  "PtRecoOverGen_E_180_300_Cent_10_30", "180<genpt<300; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
704  "PtRecoOverGen_F_180_300_Cent_10_30", "180<genpt<300; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
706  "PtRecoOverGen_B_300_Inf_Cent_10_30", "300<genpt<Inf; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
708  "PtRecoOverGen_E_300_Inf_Cent_10_30", "300<genpt<Inf; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
710  "PtRecoOverGen_F_300_Inf_Cent_10_30", "300<genpt<Inf; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
711 
713  "PtRecoOverGen_B_20_30_Cent_30_50", "20<genpt<30; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
715  "PtRecoOverGen_E_20_30_Cent_30_50", "20<genpt<30; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
717  "PtRecoOverGen_F_20_30_Cent_30_50", "20<genpt<30; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
719  "PtRecoOverGen_B_30_50_Cent_30_50", "30<genpt<50; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
721  "PtRecoOverGen_E_30_50_Cent_30_50", "30<genpt<50; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
723  "PtRecoOverGen_F_30_50_Cent_30_50", "30<genpt<50; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
725  "PtRecoOverGen_B_50_80_Cent_30_50", "50<genpt<80; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
727  "PtRecoOverGen_E_50_80_Cent_30_50", "50<genpt<80; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
729  "PtRecoOverGen_F_50_80_Cent_30_50", "50<genpt<80; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
731  "PtRecoOverGen_B_80_120_Cent_30_50", "80<genpt<120; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
733  "PtRecoOverGen_E_80_120_Cent_30_50", "80<genpt<120; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
735  "PtRecoOverGen_F_80_120_Cent_30_50", "80<genpt<120; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
737  "PtRecoOverGen_B_120_180_Cent_30_50", "120<genpt<180; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
739  "PtRecoOverGen_E_120_180_Cent_30_50", "120<genpt<180; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
741  "PtRecoOverGen_F_120_180_Cent_30_50", "120<genpt<180; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
743  "PtRecoOverGen_B_180_300_Cent_30_50", "180<genpt<300; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
745  "PtRecoOverGen_E_180_300_Cent_30_50", "180<genpt<300; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
747  "PtRecoOverGen_F_180_300_Cent_30_50", "180<genpt<300; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
749  "PtRecoOverGen_B_300_Inf_Cent_30_50", "300<genpt<Inf; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
751  "PtRecoOverGen_E_300_Inf_Cent_30_50", "300<genpt<Inf; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
753  "PtRecoOverGen_F_300_Inf_Cent_30_50", "300<genpt<Inf; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
754 
756  "PtRecoOverGen_B_20_30_Cent_50_80", "20<genpt<30; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
758  "PtRecoOverGen_E_20_30_Cent_50_80", "20<genpt<30; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
760  "PtRecoOverGen_F_20_30_Cent_50_80", "20<genpt<30; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
762  "PtRecoOverGen_B_30_50_Cent_50_80", "30<genpt<50; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
764  "PtRecoOverGen_E_30_50_Cent_50_80", "30<genpt<50; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
766  "PtRecoOverGen_F_30_50_Cent_50_80", "30<genpt<50; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
768  "PtRecoOverGen_B_50_80_Cent_50_80", "50<genpt<80; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
770  "PtRecoOverGen_E_50_80_Cent_50_80", "50<genpt<80; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
772  "PtRecoOverGen_F_50_80_Cent_50_80", "50<genpt<80; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
774  "PtRecoOverGen_B_80_120_Cent_50_80", "80<genpt<120; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
776  "PtRecoOverGen_E_80_120_Cent_50_80", "80<genpt<120; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
778  "PtRecoOverGen_F_80_120_Cent_50_80", "80<genpt<120; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
780  "PtRecoOverGen_B_120_180_Cent_50_80", "120<genpt<180; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
782  "PtRecoOverGen_E_120_180_Cent_50_80", "120<genpt<180; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
784  "PtRecoOverGen_F_120_180_Cent_50_80", "120<genpt<180; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
786  "PtRecoOverGen_B_180_300_Cent_50_80", "180<genpt<300; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
788  "PtRecoOverGen_E_180_300_Cent_50_80", "180<genpt<300; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
790  "PtRecoOverGen_F_180_300_Cent_50_80", "180<genpt<300; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
792  "PtRecoOverGen_B_300_Inf_Cent_50_80", "300<genpt<Inf; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
794  "PtRecoOverGen_E_300_Inf_Cent_50_80", "300<genpt<Inf; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
796  "PtRecoOverGen_F_300_Inf_Cent_50_80", "300<genpt<Inf; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
797 
798  mPtRecoOverGen_GenPt_B_Cent_0_10 = ibooker.bookProfile("PtRecoOverGen_GenPt_B_Cent_0_10",
799  Form("|#eta|<%2.2f, (0-10cent);genpt;recopt/genpt", BarrelEta),
800  log10PtBins,
801  log10PtMin,
802  log10PtMax,
803  0,
804  2,
805  " ");
807  ibooker.bookProfile("PtRecoOverGen_GenPt_E_Cent_0_10",
808  Form("%2.2f<|#eta|<%2.2f, (0-10cent);genpt;recopt/genpt", BarrelEta, EndcapEta),
809  log10PtBins,
810  log10PtMin,
811  log10PtMax,
812  0,
813  2,
814  " ");
816  ibooker.bookProfile("PtRecoOverGen_GenPt_F_Cent_0_10",
817  Form("%2.2f<|#eta|<%2.2f, (0-10cent);genpt;recopt/genpt", EndcapEta, ForwardEta),
818  log10PtBins,
819  log10PtMin,
820  log10PtMax,
821  0,
822  2,
823  " ");
825  ibooker.bookProfile("PtRecoOverGen_GenPt_B_Cent_10_30",
826  Form("|#eta|<%2.2f, (10-30cent);genpt;recopt/genpt", BarrelEta),
827  log10PtBins,
828  log10PtMin,
829  log10PtMax,
830  0,
831  2,
832  " ");
834  ibooker.bookProfile("PtRecoOverGen_GenPt_E_Cent_10_30",
835  Form("%2.2f<|#eta|<%2.2f, (10-30cent);genpt;recopt/genpt", BarrelEta, EndcapEta),
836  log10PtBins,
837  log10PtMin,
838  log10PtMax,
839  0,
840  2,
841  " ");
843  ibooker.bookProfile("PtRecoOverGen_GenPt_F_Cent_10_30",
844  Form("%2.2f<|#eta|<%2.2f, (10-30cent);genpt;recopt/genpt", EndcapEta, ForwardEta),
845  log10PtBins,
846  log10PtMin,
847  log10PtMax,
848  0,
849  2,
850  " ");
852  ibooker.bookProfile("PtRecoOverGen_GenPt_B_Cent_30_50",
853  Form("|#eta|<%2.2f, (30-50cent);genpt;recopt/genpt", BarrelEta),
854  log10PtBins,
855  log10PtMin,
856  log10PtMax,
857  0,
858  2,
859  " ");
861  ibooker.bookProfile("PtRecoOverGen_GenPt_E_Cent_30_50",
862  Form("%2.2f<|#eta|<%2.2f, (30-50cent);genpt;recopt/genpt", BarrelEta, EndcapEta),
863  log10PtBins,
864  log10PtMin,
865  log10PtMax,
866  0,
867  2,
868  " ");
870  ibooker.bookProfile("PtRecoOverGen_GenPt_F_Cent_30_50",
871  Form("%2.2f<|#eta|<%2.2f, (30-50cent);genpt;recopt/genpt", EndcapEta, ForwardEta),
872  log10PtBins,
873  log10PtMin,
874  log10PtMax,
875  0,
876  2,
877  " ");
879  ibooker.bookProfile("PtRecoOverGen_GenPt_B_Cent_50_80",
880  Form("|#eta|<%2.2f, (50-80cent);genpt;recopt/genpt", BarrelEta),
881  log10PtBins,
882  log10PtMin,
883  log10PtMax,
884  0,
885  2,
886  " ");
888  ibooker.bookProfile("PtRecoOverGen_GenPt_E_Cent_50_80",
889  Form("%2.2f<|#eta|<%2.2f, (50-80cent);genpt;recopt/genpt", BarrelEta, EndcapEta),
890  log10PtBins,
891  log10PtMin,
892  log10PtMax,
893  0,
894  2,
895  " ");
897  ibooker.bookProfile("PtRecoOverGen_GenPt_F_Cent_50_80",
898  Form("%2.2f<|#eta|<%2.2f, (50-80cent);genpt;recopt/genpt", EndcapEta, ForwardEta),
899  log10PtBins,
900  log10PtMin,
901  log10PtMax,
902  0,
903  2,
904  " ");
905 
907  "PtRecoOverGen_GenEta_20_30_Cent_0_10", "20<genpt<30 (0-10%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
909  "PtRecoOverGen_GenEta_30_50_Cent_0_10", "30<genpt<50 (0-10%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
911  "PtRecoOverGen_GenEta_50_80_Cent_0_10", "50<genpt<80 (0-10%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
913  "PtRecoOverGen_GenEta_80_120_Cent_0_10", "80<genpt<120 (0-10%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
915  "PtRecoOverGen_GenEta_120_180_Cent_0_10", "120<genpt<180 (0-10%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
917  "PtRecoOverGen_GenEta_180_300_Cent_0_10", "180<genpt<300 (0-10%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
919  "PtRecoOverGen_GenEta_300_Inf_Cent_0_10", "300<genpt<Inf (0-10%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
920 
922  "PtRecoOverGen_GenEta_20_30_Cent_10_30", "20<genpt<30 (10-30%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
924  "PtRecoOverGen_GenEta_30_50_Cent_10_30", "30<genpt<50 (10-30%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
926  "PtRecoOverGen_GenEta_50_80_Cent_10_30", "50<genpt<80 (10-30%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
928  "PtRecoOverGen_GenEta_80_120_Cent_10_30", "80<genpt<120 (10-30%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
930  "PtRecoOverGen_GenEta_120_180_Cent_10_30", "120<genpt<180 (10-30%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
932  "PtRecoOverGen_GenEta_180_300_Cent_10_30", "180<genpt<300 (10-30%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
934  "PtRecoOverGen_GenEta_300_Inf_Cent_10_30", "300<genpt<Inf (10-30%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
935 
937  "PtRecoOverGen_GenEta_20_30_Cent_30_50", "20<genpt<30 (30-50%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
939  "PtRecoOverGen_GenEta_30_50_Cent_30_50", "30<genpt<50 (30-50%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
941  "PtRecoOverGen_GenEta_50_80_Cent_30_50", "50<genpt<80 (30-50%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
943  "PtRecoOverGen_GenEta_80_120_Cent_30_50", "80<genpt<120 (30-50%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
945  "PtRecoOverGen_GenEta_120_180_Cent_30_50", "120<genpt<180 (30-50%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
947  "PtRecoOverGen_GenEta_180_300_Cent_30_50", "180<genpt<300 (30-50%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
949  "PtRecoOverGen_GenEta_300_Inf_Cent_30_50", "300<genpt<Inf (30-50%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
950 
952  "PtRecoOverGen_GenEta_20_30_Cent_50_80", "20<genpt<30 (50-80%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
954  "PtRecoOverGen_GenEta_30_50_Cent_50_80", "30<genpt<50 (50-80%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
956  "PtRecoOverGen_GenEta_50_80_Cent_50_80", "50<genpt<80 (50-80%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
958  "PtRecoOverGen_GenEta_80_120_Cent_50_80", "80<genpt<120 (50-80%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
960  "PtRecoOverGen_GenEta_120_180_Cent_50_80", "120<genpt<180 (50-80%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
962  "PtRecoOverGen_GenEta_180_300_Cent_50_80", "180<genpt<300 (50-80%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
964  "PtRecoOverGen_GenEta_300_Inf_Cent_50_80", "300<genpt<Inf (50-80%);geneta;recopt/genpt", 90, etaRange, 0, 2, " ");
965 
966  if (mOutputFile.empty())
967  LogInfo("OutputInfo") << " Histograms will NOT be saved";
968  else
969  LogInfo("OutputInfo") << " Histograms will be saved to file:" << mOutputFile;
970 
971  delete h2D_etabins_vs_pt2;
972  delete h2D_etabins_vs_pt;
973  delete h2D_etabins_vs_phi;
974  delete h2D_pfcand_etabins_vs_pt;
975 }
976 
977 //------------------------------------------------------------------------------
978 // ~JetTester_HeavyIons
979 //------------------------------------------------------------------------------
981 
982 //------------------------------------------------------------------------------
983 // beginJob
984 //------------------------------------------------------------------------------
985 // void JetTester_HeavyIons::beginJob() {
986 // //std::cout<<"inside the begin job function"<<endl;
987 //}
988 
989 //------------------------------------------------------------------------------
990 // endJob
991 //------------------------------------------------------------------------------
992 // void JetTester_HeavyIons::endJob()
993 //{
994 // if (!mOutputFile.empty() && &*edm::Service<DQMStore>())
995 // {
996 // edm::Service<DQMStore>()->save(mOutputFile);
997 // }
998 //}
999 
1000 //------------------------------------------------------------------------------
1001 // analyze
1002 //------------------------------------------------------------------------------
1003 void JetTester_HeavyIons::analyze(const edm::Event &mEvent, const edm::EventSetup &mSetup) {
1004  // Get the primary vertices
1005  //----------------------------------------------------------------------------
1007  mEvent.getByToken(pvToken_, pvHandle);
1008  reco::Vertex::Point vtx(0, 0, 0);
1010  // vtx = getVtx(mEvent);
1011 
1012  mEvent.getByToken(hiVertexToken_, vtxs);
1013  int greatestvtx = 0;
1014  int nVertex = vtxs->size();
1015 
1016  for (unsigned int i = 0; i < vtxs->size(); ++i) {
1017  unsigned int daughter = (*vtxs)[i].tracksSize();
1018  if (daughter > (*vtxs)[greatestvtx].tracksSize())
1019  greatestvtx = i;
1020  }
1021 
1022  if (nVertex <= 0) {
1023  vtx = reco::Vertex::Point(0, 0, 0);
1024  }
1025  vtx = (*vtxs)[greatestvtx].position();
1026 
1027  int nGoodVertices = 0;
1028 
1029  if (pvHandle.isValid()) {
1030  for (unsigned i = 0; i < pvHandle->size(); i++) {
1031  if ((*pvHandle)[i].ndof() > 4 && (fabs((*pvHandle)[i].z()) <= 24) && (fabs((*pvHandle)[i].position().rho()) <= 2))
1032  nGoodVertices++;
1033  }
1034  }
1035 
1036  mNvtx->Fill(nGoodVertices);
1037 
1038  // Get the Jet collection
1039  //----------------------------------------------------------------------------
1040  // math::XYZTLorentzVector p4tmp[2];
1041 
1042  std::vector<Jet> recoJets;
1043  recoJets.clear();
1044 
1049 
1050  // Get the Particle flow candidates and the Voronoi variables
1052  edm::Handle<CaloTowerCollection> caloCandidates;
1053  edm::Handle<reco::CandidateView> pfcandidates_;
1054  edm::Handle<reco::CandidateView> calocandidates_;
1055 
1056  // get the centrality
1058  mEvent.getByToken(centralityToken, cent); //_centralitytag comes from the cfg
1059 
1060  mHF->Fill(cent->EtHFtowerSum());
1061  Float_t HF_energy = cent->EtHFtowerSum();
1062 
1063  edm::Handle<int> cbin;
1064  mEvent.getByToken(centralityBinToken, cbin);
1065  if (!cent.isValid())
1066  return;
1067 
1068  int hibin = -999;
1069  if (cbin.isValid()) {
1070  hibin = *cbin;
1071  }
1072  // else edm::LogWarning("JetTester_HeavyIons") << "invalid collection:
1073  // centralityBin " << std::endl;
1074 
1075  bool isCentral = false;
1076  bool ismidCentral = false;
1077  bool ismidPeripheral = false;
1078  bool isPeripheral = false;
1079 
1080  if (hibin < 20)
1081  isCentral = true;
1082  if (hibin >= 20 && hibin < 60)
1083  ismidCentral = true;
1084  if (hibin >= 60 && hibin < 100)
1085  ismidPeripheral = true;
1086  if (hibin >= 100 && hibin < 160)
1087  isPeripheral = true;
1088 
1089  if (isCaloJet)
1090  mEvent.getByToken(caloJetsToken_, caloJets);
1091  if (isJPTJet)
1092  mEvent.getByToken(jptJetsToken_, jptJets);
1093  if (isPFJet) {
1094  if (std::string("Pu") == UEAlgo)
1095  mEvent.getByToken(basicJetsToken_, basicJets);
1096  }
1097 
1098  mEvent.getByToken(pfCandToken_, pfCandidates);
1099  mEvent.getByToken(pfCandViewToken_, pfcandidates_);
1100 
1101  mEvent.getByToken(caloTowersToken_, caloCandidates);
1102  mEvent.getByToken(caloCandViewToken_, calocandidates_);
1103 
1104  const reco::PFCandidateCollection *pfCandidateColl = pfCandidates.product();
1105 
1106  Int_t NPFpart = 0;
1107  Int_t NCaloTower = 0;
1108  Float_t pfPt = 0;
1109  Float_t pfEta = 0;
1110  Int_t pfID = 0;
1111  Float_t pfPhi = 0;
1112  Float_t caloPt = 0;
1113  Float_t caloEta = 0;
1114  Float_t caloPhi = 0;
1115  Float_t SumPt_value = 0;
1116 
1117  double edge_pseudorapidity[etaBins_ + 1] = {-5.191,
1118  -2.650,
1119  -2.043,
1120  -1.740,
1121  -1.479,
1122  -1.131,
1123  -0.783,
1124  -0.522,
1125  0.522,
1126  0.783,
1127  1.131,
1128  1.479,
1129  1.740,
1130  2.043,
1131  2.650,
1132  5.191};
1133 
1134  if (isCaloJet) {
1135  Float_t SumCaloPt[etaBins_];
1136  Float_t SumSquaredCaloPt[etaBins_];
1137 
1138  for (int i = 0; i < etaBins_; i++) {
1139  SumCaloPt[i] = 0;
1140  SumSquaredCaloPt[i] = 0;
1141  }
1142 
1143  for (unsigned icand = 0; icand < caloCandidates->size(); icand++) {
1144  const CaloTower &tower = (*caloCandidates)[icand];
1145  reco::CandidateViewRef ref(calocandidates_, icand);
1146  if (tower.p4(vtx).Et() < 0.1)
1147  continue;
1148 
1149  NCaloTower++;
1150 
1151  caloPt = tower.p4(vtx).Et();
1152  caloEta = tower.p4(vtx).Eta();
1153  caloPhi = tower.p4(vtx).Phi();
1154 
1155  for (size_t k = 0; k < nedge_pseudorapidity - 1; k++) {
1156  if (caloEta >= edge_pseudorapidity[k] && caloEta < edge_pseudorapidity[k + 1]) {
1157  SumCaloPt[k] = SumCaloPt[k] + caloPt;
1158  SumSquaredCaloPt[k] = SumSquaredCaloPt[k] + caloPt * caloPt;
1159  } // eta selection statement
1160 
1161  } // eta bin loop
1162 
1163  SumPt_value = SumPt_value + caloPt;
1164 
1165  mCaloPt->Fill(caloPt);
1166  mCaloEta->Fill(caloEta);
1167  mCaloPhi->Fill(caloPhi);
1168 
1169  } // calo tower candidate loop
1170 
1171  Float_t Evt_SumCaloPt = 0;
1172 
1173  Float_t Evt_SumSquaredCaloPt = 0;
1174 
1175  mSumCaloPt_n5p191_n2p650->Fill(SumCaloPt[0]);
1176  mSumCaloPt_n2p650_n2p043->Fill(SumCaloPt[1]);
1177  mSumCaloPt_n2p043_n1p740->Fill(SumCaloPt[2]);
1178  mSumCaloPt_n1p740_n1p479->Fill(SumCaloPt[3]);
1179  mSumCaloPt_n1p479_n1p131->Fill(SumCaloPt[4]);
1180  mSumCaloPt_n1p131_n0p783->Fill(SumCaloPt[5]);
1181  mSumCaloPt_n0p783_n0p522->Fill(SumCaloPt[6]);
1182  mSumCaloPt_n0p522_0p522->Fill(SumCaloPt[7]);
1183  mSumCaloPt_0p522_0p783->Fill(SumCaloPt[8]);
1184  mSumCaloPt_0p783_1p131->Fill(SumCaloPt[9]);
1185  mSumCaloPt_1p131_1p479->Fill(SumCaloPt[10]);
1186  mSumCaloPt_1p479_1p740->Fill(SumCaloPt[11]);
1187  mSumCaloPt_1p740_2p043->Fill(SumCaloPt[12]);
1188  mSumCaloPt_2p043_2p650->Fill(SumCaloPt[13]);
1189  mSumCaloPt_2p650_5p191->Fill(SumCaloPt[14]);
1190 
1191  for (size_t k = 0; k < nedge_pseudorapidity - 1; k++) {
1192  Evt_SumCaloPt = Evt_SumCaloPt + SumCaloPt[k];
1193 
1194  Evt_SumSquaredCaloPt = Evt_SumSquaredCaloPt + SumSquaredCaloPt[k];
1195 
1196  } // eta bin loop
1197 
1198  mSumCaloPt->Fill(Evt_SumCaloPt);
1199 
1200  mSumSquaredCaloPt->Fill(Evt_SumSquaredCaloPt);
1201 
1202  mSumCaloPt_HF->Fill(Evt_SumCaloPt, HF_energy);
1203 
1204  mNCalopart->Fill(NCaloTower);
1205  mSumpt->Fill(SumPt_value);
1206 
1207  } // is calo jet
1208 
1209  if (isPFJet) {
1210  Float_t SumPFPt[etaBins_];
1211 
1212  Float_t SumSquaredPFPt[etaBins_];
1213 
1214  for (int i = 0; i < etaBins_; i++) {
1215  SumPFPt[i] = 0;
1216  SumSquaredPFPt[i] = 0;
1217  }
1218 
1219  for (unsigned icand = 0; icand < pfCandidateColl->size(); icand++) {
1220  const reco::PFCandidate pfCandidate = pfCandidateColl->at(icand);
1221  reco::CandidateViewRef ref(pfcandidates_, icand);
1222 
1223  if (pfCandidate.pt() < 0.5)
1224  continue;
1225 
1226  NPFpart++;
1227  pfPt = pfCandidate.pt();
1228  pfEta = pfCandidate.eta();
1229  pfPhi = pfCandidate.phi();
1230  pfID = pfCandidate.particleId();
1231 
1232  bool inBarrel = false;
1233  bool inEndcap = false;
1234  bool inForward = false;
1235 
1236  if (fabs(pfEta) < BarrelEta)
1237  inBarrel = true;
1238  if (fabs(pfEta) >= BarrelEta && fabs(pfEta) < EndcapEta)
1239  inEndcap = true;
1240  if (fabs(pfEta) >= EndcapEta && fabs(pfEta) < ForwardEta)
1241  inForward = true;
1242 
1243  switch (pfID) {
1244  case 0:
1245  mPFCandpT_vs_eta_Unknown->Fill(pfPt, pfEta);
1246  if (inBarrel)
1248  if (inEndcap)
1250  if (inForward)
1252  case 1:
1253  mPFCandpT_vs_eta_ChargedHadron->Fill(pfPt, pfEta);
1254  if (inBarrel)
1256  if (inEndcap)
1258  if (inForward)
1260  case 2:
1261  mPFCandpT_vs_eta_electron->Fill(pfPt, pfEta);
1262  if (inBarrel)
1264  if (inEndcap)
1266  if (inForward)
1268  case 3:
1269  mPFCandpT_vs_eta_muon->Fill(pfPt, pfEta);
1270  if (inBarrel)
1271  mPFCandpT_Barrel_muon->Fill(pfPt);
1272  if (inEndcap)
1273  mPFCandpT_Endcap_muon->Fill(pfPt);
1274  if (inForward)
1276  case 4:
1277  mPFCandpT_vs_eta_photon->Fill(pfPt, pfEta);
1278  if (inBarrel)
1280  if (inEndcap)
1282  if (inForward)
1284  case 5:
1285  mPFCandpT_vs_eta_NeutralHadron->Fill(pfPt, pfEta);
1286  if (inBarrel)
1288  if (inEndcap)
1290  if (inForward)
1292  case 6:
1293  mPFCandpT_vs_eta_HadE_inHF->Fill(pfPt, pfEta);
1294  if (inBarrel)
1296  if (inEndcap)
1298  if (inForward)
1300  case 7:
1301  mPFCandpT_vs_eta_EME_inHF->Fill(pfPt, pfEta);
1302  if (inBarrel)
1304  if (inEndcap)
1306  if (inForward)
1308  }
1309 
1310  for (size_t k = 0; k < nedge_pseudorapidity - 1; k++) {
1311  if (pfEta >= edge_pseudorapidity[k] && pfEta < edge_pseudorapidity[k + 1]) {
1312  SumPFPt[k] = SumPFPt[k] + pfPt;
1313 
1314  SumSquaredPFPt[k] = SumSquaredPFPt[k] + pfPt * pfPt;
1315 
1316  } // eta selection statement
1317 
1318  } // eta bin loop
1319 
1320  SumPt_value = SumPt_value + pfPt;
1321 
1322  mPFPt->Fill(pfPt);
1323  mPFEta->Fill(pfEta);
1324  mPFPhi->Fill(pfPhi);
1325 
1326  } // pf candidate loop
1327 
1328  Float_t Evt_SumPFPt = 0;
1329 
1330  Float_t Evt_SumSquaredPFPt = 0;
1331 
1332  mSumPFPt_n5p191_n2p650->Fill(SumPFPt[0]);
1333  mSumPFPt_n2p650_n2p043->Fill(SumPFPt[1]);
1334  mSumPFPt_n2p043_n1p740->Fill(SumPFPt[2]);
1335  mSumPFPt_n1p740_n1p479->Fill(SumPFPt[3]);
1336  mSumPFPt_n1p479_n1p131->Fill(SumPFPt[4]);
1337  mSumPFPt_n1p131_n0p783->Fill(SumPFPt[5]);
1338  mSumPFPt_n0p783_n0p522->Fill(SumPFPt[6]);
1339  mSumPFPt_n0p522_0p522->Fill(SumPFPt[7]);
1340  mSumPFPt_0p522_0p783->Fill(SumPFPt[8]);
1341  mSumPFPt_0p783_1p131->Fill(SumPFPt[9]);
1342  mSumPFPt_1p131_1p479->Fill(SumPFPt[10]);
1343  mSumPFPt_1p479_1p740->Fill(SumPFPt[11]);
1344  mSumPFPt_1p740_2p043->Fill(SumPFPt[12]);
1345  mSumPFPt_2p043_2p650->Fill(SumPFPt[13]);
1346  mSumPFPt_2p650_5p191->Fill(SumPFPt[14]);
1347 
1348  for (size_t k = 0; k < nedge_pseudorapidity - 1; k++) {
1349  Evt_SumPFPt = Evt_SumPFPt + SumPFPt[k];
1350 
1351  Evt_SumSquaredPFPt = Evt_SumSquaredPFPt + SumSquaredPFPt[k];
1352 
1353  } // eta bin loop
1354 
1355  mSumPFPt->Fill(Evt_SumPFPt);
1356 
1357  mSumSquaredPFPt->Fill(Evt_SumSquaredPFPt);
1358 
1359  mSumPFPt_HF->Fill(Evt_SumPFPt, HF_energy);
1360 
1361  mNPFpart->Fill(NPFpart);
1362  mSumpt->Fill(SumPt_value);
1363  }
1364 
1365  if (isCaloJet) {
1366  for (unsigned ijet = 0; ijet < caloJets->size(); ijet++)
1367  recoJets.push_back((*caloJets)[ijet]);
1368  }
1369 
1370  if (isJPTJet) {
1371  for (unsigned ijet = 0; ijet < jptJets->size(); ijet++)
1372  recoJets.push_back((*jptJets)[ijet]);
1373  }
1374 
1375  if (isPFJet) {
1376  if (std::string("Pu") == UEAlgo) {
1377  for (unsigned ijet = 0; ijet < basicJets->size(); ijet++)
1378  recoJets.push_back((*basicJets)[ijet]);
1379  }
1380  }
1381 
1382  if (isCaloJet && !caloJets.isValid())
1383  return;
1384  if (isJPTJet && !jptJets.isValid())
1385  return;
1386  if (isPFJet) {
1387  if (std::string("Pu") == UEAlgo) {
1388  if (!basicJets.isValid())
1389  return;
1390  }
1391  }
1392 
1393  int nJet_40 = 0;
1394 
1395  mNJets->Fill(recoJets.size());
1396 
1397  for (unsigned ijet = 0; ijet < recoJets.size(); ijet++) {
1398  if (recoJets[ijet].pt() > mRecoJetPtThreshold) {
1399  // counting forward and barrel jets
1400  // get an idea of no of jets with pT>40 GeV
1401  if (recoJets[ijet].pt() > 40)
1402  nJet_40++;
1403 
1404  if (mEta)
1405  mEta->Fill(recoJets[ijet].eta());
1406  if (mjetpileup)
1407  mjetpileup->Fill(recoJets[ijet].pileup());
1408  if (mJetArea)
1409  mJetArea->Fill(recoJets[ijet].jetArea());
1410  if (mPhi)
1411  mPhi->Fill(recoJets[ijet].phi());
1412  if (mEnergy)
1413  mEnergy->Fill(recoJets[ijet].energy());
1414  if (mP)
1415  mP->Fill(recoJets[ijet].p());
1416  if (mPt)
1417  mPt->Fill(recoJets[ijet].pt());
1418  if (mMass)
1419  mMass->Fill(recoJets[ijet].mass());
1420  if (mConstituents)
1421  mConstituents->Fill(recoJets[ijet].nConstituents());
1422  }
1423  }
1424 
1425  if (mNJets_40)
1426  mNJets_40->Fill(nJet_40);
1427 
1428  // Gen level information:
1429  if (!mEvent.isRealData()) {
1430  // Get ptHat
1431  //------------------------------------------------------------------------
1433  mEvent.getByToken(evtToken_, myGenEvt);
1434 
1435  if (myGenEvt.isValid()) {
1436  if (myGenEvt->hasBinningValues()) {
1437  double ptHat = myGenEvt->binningValues()[0];
1438  if (mPtHat)
1439  mPtHat->Fill(ptHat);
1440  }
1441  }
1442  // Gen jets
1443  //------------------------------------------------------------------------
1445  mEvent.getByToken(genJetsToken_, genJets);
1446 
1447  if (!genJets.isValid())
1448  return;
1449 
1450  for (GenJetCollection::const_iterator gjet = genJets->begin(); gjet != genJets->end(); gjet++) {
1451  if (gjet->pt() > mMatchGenPtThreshold) {
1452  if (mGenEta)
1453  mGenEta->Fill(gjet->eta());
1454  if (mGenPhi)
1455  mGenPhi->Fill(gjet->phi());
1456  if (mGenPt)
1457  mGenPt->Fill(gjet->pt());
1458  }
1459  }
1460 
1461  if (!(mInputGenCollection.label().empty())) {
1462  for (GenJetCollection::const_iterator gjet = genJets->begin(); gjet != genJets->end(); gjet++) {
1463  if (fabs(gjet->eta()) > 6.)
1464  continue; // Out of the detector
1465  if (gjet->pt() < mMatchGenPtThreshold)
1466  continue;
1467  if (recoJets.empty())
1468  continue;
1469 
1470  bool inBarrel = false;
1471  bool inEndcap = false;
1472  bool inForward = false;
1473 
1474  if (fabs(gjet->eta()) < BarrelEta)
1475  inBarrel = true;
1476  if (fabs(gjet->eta()) >= BarrelEta && fabs(gjet->eta()) < EndcapEta)
1477  inEndcap = true;
1478  if (fabs(gjet->eta()) >= EndcapEta && fabs(gjet->eta()) < ForwardEta)
1479  inForward = true;
1480 
1481  // pt response
1482  //------------------------------------------------------------
1483  int iMatch = -1;
1484  double deltaRBest = 999;
1485  double JetPtBest = 0;
1486  for (unsigned ijet = 0; ijet < recoJets.size(); ++ijet) {
1487  double recoPt = recoJets[ijet].pt();
1488  if (recoPt > 10) {
1489  double delR = deltaR(gjet->eta(), gjet->phi(), recoJets[ijet].eta(), recoJets[ijet].phi());
1490  if (delR < deltaRBest) {
1491  deltaRBest = delR;
1492  JetPtBest = recoPt;
1493  iMatch = ijet;
1494  }
1495  }
1496  }
1497  if (iMatch < 0)
1498  continue;
1499 
1500  // fillMatchHists(gjet->eta(), gjet->phi(), gjet->pt(),
1501  // recoJets[iMatch].eta(), recoJets[iMatch].phi(),
1502  // recoJets[iMatch].pt(), hibin);
1503  if (deltaRBest < mRThreshold) {
1504  double genpt = gjet->pt();
1505  double geneta = gjet->eta();
1506  double response = JetPtBest / genpt;
1507  // Fill all the response histograms here: for each pT bin, eta region,
1508  // centrality bin
1509 
1510  if (inBarrel) {
1511  if (isCentral)
1512  mPtRecoOverGen_GenPt_B_Cent_0_10->Fill(log10(genpt), response);
1513  if (ismidCentral)
1514  mPtRecoOverGen_GenPt_B_Cent_10_30->Fill(log10(genpt), response);
1515  if (ismidPeripheral)
1516  mPtRecoOverGen_GenPt_B_Cent_30_50->Fill(log10(genpt), response);
1517  if (isPeripheral)
1518  mPtRecoOverGen_GenPt_B_Cent_50_80->Fill(log10(genpt), response);
1519  }
1520  if (inEndcap) {
1521  if (isCentral)
1522  mPtRecoOverGen_GenPt_E_Cent_0_10->Fill(log10(genpt), response);
1523  if (ismidCentral)
1524  mPtRecoOverGen_GenPt_E_Cent_10_30->Fill(log10(genpt), response);
1525  if (ismidPeripheral)
1526  mPtRecoOverGen_GenPt_E_Cent_30_50->Fill(log10(genpt), response);
1527  if (isPeripheral)
1528  mPtRecoOverGen_GenPt_E_Cent_50_80->Fill(log10(genpt), response);
1529  }
1530  if (inForward) {
1531  if (isCentral)
1532  mPtRecoOverGen_GenPt_F_Cent_0_10->Fill(log10(genpt), response);
1533  if (ismidCentral)
1534  mPtRecoOverGen_GenPt_F_Cent_10_30->Fill(log10(genpt), response);
1535  if (ismidPeripheral)
1536  mPtRecoOverGen_GenPt_F_Cent_30_50->Fill(log10(genpt), response);
1537  if (isPeripheral)
1538  mPtRecoOverGen_GenPt_F_Cent_50_80->Fill(log10(genpt), response);
1539  }
1540 
1541  if (gjet->pt() >= 20 && gjet->pt() < 30) {
1542  if (isCentral) {
1543  mPtRecoOverGen_GenEta_20_30_Cent_0_10->Fill(geneta, response);
1544  if (inBarrel)
1546  if (inEndcap)
1548  if (inForward)
1550  } //
1551  if (ismidCentral) {
1552  mPtRecoOverGen_GenEta_20_30_Cent_10_30->Fill(geneta, response);
1553  if (inBarrel)
1555  if (inEndcap)
1557  if (inForward)
1559  } //
1560  if (ismidPeripheral) {
1561  mPtRecoOverGen_GenEta_20_30_Cent_30_50->Fill(geneta, response);
1562  if (inBarrel)
1564  if (inEndcap)
1566  if (inForward)
1568  } //
1569  if (isPeripheral) {
1570  mPtRecoOverGen_GenEta_20_30_Cent_50_80->Fill(geneta, response);
1571  if (inBarrel)
1573  if (inEndcap)
1575  if (inForward)
1577  } //
1578  } // pt bin 20-30
1579 
1580  if (gjet->pt() >= 30 && gjet->pt() < 50) {
1581  if (isCentral) {
1582  mPtRecoOverGen_GenEta_30_50_Cent_0_10->Fill(geneta, response);
1583  if (inBarrel)
1585  if (inEndcap)
1587  if (inForward)
1589  } //
1590  if (ismidCentral) {
1591  mPtRecoOverGen_GenEta_30_50_Cent_10_30->Fill(geneta, response);
1592  if (inBarrel)
1594  if (inEndcap)
1596  if (inForward)
1598  } //
1599  if (ismidPeripheral) {
1600  mPtRecoOverGen_GenEta_30_50_Cent_30_50->Fill(geneta, response);
1601  if (inBarrel)
1603  if (inEndcap)
1605  if (inForward)
1607  } //
1608  if (isPeripheral) {
1609  mPtRecoOverGen_GenEta_30_50_Cent_50_80->Fill(geneta, response);
1610  if (inBarrel)
1612  if (inEndcap)
1614  if (inForward)
1616  } //
1617  } // pt bin 30-50
1618 
1619  if (gjet->pt() >= 50 && gjet->pt() < 80) {
1620  if (isCentral) {
1621  mPtRecoOverGen_GenEta_50_80_Cent_0_10->Fill(geneta, response);
1622  if (inBarrel)
1624  if (inEndcap)
1626  if (inForward)
1628  } //
1629  if (ismidCentral) {
1630  mPtRecoOverGen_GenEta_50_80_Cent_10_30->Fill(geneta, response);
1631  if (inBarrel)
1633  if (inEndcap)
1635  if (inForward)
1637  } //
1638  if (ismidPeripheral) {
1639  mPtRecoOverGen_GenEta_50_80_Cent_30_50->Fill(geneta, response);
1640  if (inBarrel)
1642  if (inEndcap)
1644  if (inForward)
1646  } //
1647  if (isPeripheral) {
1648  mPtRecoOverGen_GenEta_50_80_Cent_50_80->Fill(geneta, response);
1649  if (inBarrel)
1651  if (inEndcap)
1653  if (inForward)
1655  } //
1656  } // pt bin 50-80
1657 
1658  if (gjet->pt() >= 80 && gjet->pt() < 120) {
1659  if (isCentral) {
1660  mPtRecoOverGen_GenEta_80_120_Cent_0_10->Fill(geneta, response);
1661  if (inBarrel)
1663  if (inEndcap)
1665  if (inForward)
1667  } //
1668  if (ismidCentral) {
1669  mPtRecoOverGen_GenEta_80_120_Cent_10_30->Fill(geneta, response);
1670  if (inBarrel)
1672  if (inEndcap)
1674  if (inForward)
1676  } //
1677  if (ismidPeripheral) {
1678  mPtRecoOverGen_GenEta_80_120_Cent_30_50->Fill(geneta, response);
1679  if (inBarrel)
1681  if (inEndcap)
1683  if (inForward)
1685  } //
1686  if (isPeripheral) {
1687  mPtRecoOverGen_GenEta_80_120_Cent_50_80->Fill(geneta, response);
1688  if (inBarrel)
1690  if (inEndcap)
1692  if (inForward)
1694  } //
1695  } // pt bin 80-120
1696 
1697  if (gjet->pt() >= 120 && gjet->pt() < 180) {
1698  if (isCentral) {
1699  mPtRecoOverGen_GenEta_120_180_Cent_0_10->Fill(geneta, response);
1700  if (inBarrel)
1702  if (inEndcap)
1704  if (inForward)
1706  } //
1707  if (ismidCentral) {
1709  if (inBarrel)
1711  if (inEndcap)
1713  if (inForward)
1715  } //
1716  if (ismidPeripheral) {
1718  if (inBarrel)
1720  if (inEndcap)
1722  if (inForward)
1724  } //
1725  if (isPeripheral) {
1727  if (inBarrel)
1729  if (inEndcap)
1731  if (inForward)
1733  } //
1734  } // pt bin 120-180
1735 
1736  if (gjet->pt() >= 180 && gjet->pt() < 300) {
1737  if (isCentral) {
1738  mPtRecoOverGen_GenEta_180_300_Cent_0_10->Fill(geneta, response);
1739  if (inBarrel)
1741  if (inEndcap)
1743  if (inForward)
1745  } //
1746  if (ismidCentral) {
1748  if (inBarrel)
1750  if (inEndcap)
1752  if (inForward)
1754  } //
1755  if (ismidPeripheral) {
1757  if (inBarrel)
1759  if (inEndcap)
1761  if (inForward)
1763  } //
1764  if (isPeripheral) {
1766  if (inBarrel)
1768  if (inEndcap)
1770  if (inForward)
1772  } //
1773  } // pt bin 180-300
1774 
1775  if (gjet->pt() >= 300) {
1776  if (isCentral) {
1777  mPtRecoOverGen_GenEta_300_Inf_Cent_0_10->Fill(geneta, response);
1778  if (inBarrel)
1780  if (inEndcap)
1782  if (inForward)
1784  } //
1785  if (ismidCentral) {
1787  if (inBarrel)
1789  if (inEndcap)
1791  if (inForward)
1793  } //
1794  if (ismidPeripheral) {
1796  if (inBarrel)
1798  if (inEndcap)
1800  if (inForward)
1802  } //
1803  if (isPeripheral) {
1805  if (inBarrel)
1807  if (inEndcap)
1809  if (inForward)
1811  } //
1812  } // pt bin 300-Inf
1813 
1814  } // delta R < mRthreshold
1815 
1816  } // gen jet collection loop
1817 
1818  } // not empty gen collection
1819 
1820  } // is the event real
1821 }
MonitorElement * mSumCaloPt_0p522_0p783
MonitorElement * mPtRecoOverGen_B_50_80_Cent_0_10
const double Pi
MonitorElement * mPtRecoOverGen_F_20_30_Cent_30_50
T getParameter(std::string const &) const
MonitorElement * mPtRecoOverGen_F_120_180_Cent_30_50
MonitorElement * mPtRecoOverGen_E_30_50_Cent_50_80
MonitorElement * mPtRecoOverGen_F_300_Inf_Cent_0_10
MonitorElement * mSumCaloPt_n5p191_n2p650
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * mPtRecoOverGen_F_30_50_Cent_0_10
MonitorElement * mSumCaloPt_2p043_2p650
MonitorElement * mSumPFPt_n0p783_n0p522
MonitorElement * mPFCandpT_Barrel_photon
MonitorElement * mPtRecoOverGen_GenEta_20_30_Cent_30_50
double eta() const final
momentum pseudorapidity
MonitorElement * mPtRecoOverGen_F_120_180_Cent_50_80
const std::vector< double > & binningValues() const
edm::InputTag mInputCollection
const Double_t EndcapEta
MonitorElement * mPtRecoOverGen_F_30_50_Cent_30_50
MonitorElement * mPtRecoOverGen_GenEta_50_80_Cent_30_50
MonitorElement * mNCalopart
MonitorElement * mCaloArea
edm::EDGetTokenT< CaloTowerCollection > caloTowersToken_
MonitorElement * mPtRecoOverGen_GenEta_300_Inf_Cent_50_80
math::PtEtaPhiMLorentzVector p4(double vtxZ) const
Definition: CaloTower.cc:129
JetTester_HeavyIons(const edm::ParameterSet &)
MonitorElement * mSumCaloPt_1p479_1p740
bool hasBinningValues() const
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:113
MonitorElement * mSumCaloPt_n0p522_0p522
MonitorElement * mEnergy
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
static const Int_t etaBins_
MonitorElement * mPtRecoOverGen_F_80_120_Cent_30_50
MonitorElement * mPFPhi
MonitorElement * mPtRecoOverGen_E_50_80_Cent_30_50
MonitorElement * mSumCaloPt
MonitorElement * mSumCaloPt_n1p131_n0p783
MonitorElement * mPtRecoOverGen_B_120_180_Cent_30_50
MonitorElement * mPtRecoOverGen_GenEta_180_300_Cent_30_50
edm::EDGetTokenT< reco::PFCandidateCollection > pfCandToken_
MonitorElement * mSumSquaredCaloPt
MonitorElement * mPtRecoOverGen_E_300_Inf_Cent_10_30
MonitorElement * mCaloPt
edm::InputTag centralityBinTag_
MonitorElement * mPtRecoOverGen_E_120_180_Cent_50_80
MonitorElement * mPFCandpT_vs_eta_EME_inHF
MonitorElement * mSumCaloPt_n2p043_n1p740
MonitorElement * mPtRecoOverGen_F_30_50_Cent_10_30
MonitorElement * mPtRecoOverGen_B_300_Inf_Cent_30_50
MonitorElement * mNJets
MonitorElement * mPtRecoOverGen_E_50_80_Cent_10_30
MonitorElement * mPtRecoOverGen_E_30_50_Cent_10_30
MonitorElement * mPtRecoOverGen_GenPt_E_Cent_0_10
MonitorElement * mPtRecoOverGen_E_20_30_Cent_50_80
MonitorElement * mPtRecoOverGen_GenEta_50_80_Cent_0_10
MonitorElement * mPtRecoOverGen_E_80_120_Cent_50_80
double pt() const final
transverse momentum
edm::EDGetTokenT< std::vector< float > > backgrounds_value_
MonitorElement * mPtRecoOverGen_B_300_Inf_Cent_0_10
edm::InputTag mInputPFCandCollection
MonitorElement * mSumSquaredPFPt
MonitorElement * mSumPFPt_n2p650_n2p043
MonitorElement * mSumCaloPt_n2p650_n2p043
MonitorElement * mPtRecoOverGen_GenEta_20_30_Cent_10_30
MonitorElement * mPtRecoOverGen_GenPt_B_Cent_10_30
MonitorElement * mPtRecoOverGen_E_20_30_Cent_0_10
MonitorElement * mGenPt
MonitorElement * mPtRecoOverGen_GenPt_F_Cent_50_80
MonitorElement * mPtRecoOverGen_B_20_30_Cent_0_10
MonitorElement * mSumCaloPt_n1p740_n1p479
MonitorElement * mPFCandpT_Barrel_ChargedHadron
bool isRealData() const
Definition: EventBase.h:62
MonitorElement * mPtRecoOverGen_B_50_80_Cent_30_50
MonitorElement * mPtRecoOverGen_GenEta_180_300_Cent_0_10
MonitorElement * mPtRecoOverGen_GenEta_30_50_Cent_0_10
MonitorElement * mPFCandpT_vs_eta_muon
MonitorElement * mPtRecoOverGen_B_180_300_Cent_10_30
edm::EDGetTokenT< reco::CandidateView > caloCandViewToken_
MonitorElement * mSumPFPt_0p783_1p131
MonitorElement * mSumPFPt_1p479_1p740
MonitorElement * mPtRecoOverGen_B_20_30_Cent_30_50
void Fill(long long x)
MonitorElement * mPtRecoOverGen_B_20_30_Cent_10_30
MonitorElement * mPtRecoOverGen_F_30_50_Cent_50_80
MonitorElement * mPFCandpT_Barrel_HadE_inHF
MonitorElement * mPtHat
MonitorElement * mPtRecoOverGen_GenPt_B_Cent_50_80
MonitorElement * mPFCandpT_vs_eta_NeutralHadron
MonitorElement * mSumPFPt_n1p131_n0p783
MonitorElement * mPtRecoOverGen_E_20_30_Cent_30_50
MonitorElement * mPFCandpT_Barrel_Unknown
MonitorElement * mPFCandpT_Barrel_EME_inHF
MonitorElement * mPFCandpT_Forward_Unknown
MonitorElement * mPtRecoOverGen_F_180_300_Cent_10_30
MonitorElement * mSumCaloPt_1p131_1p479
MonitorElement * mNJets_40
MonitorElement * mPtRecoOverGen_F_300_Inf_Cent_50_80
edm::EDGetTokenT< reco::Centrality > centralityToken
MonitorElement * mPtRecoOverGen_F_20_30_Cent_10_30
MonitorElement * mPtRecoOverGen_GenEta_120_180_Cent_30_50
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
edm::EDGetTokenT< reco::BasicJetCollection > basicJetsToken_
MonitorElement * mPtRecoOverGen_E_80_120_Cent_10_30
MonitorElement * mPtRecoOverGen_B_80_120_Cent_30_50
MonitorElement * mPtRecoOverGen_F_50_80_Cent_10_30
MonitorElement * mPFCandpT_Endcap_NeutralHadron
MonitorElement * mPtRecoOverGen_E_80_120_Cent_0_10
MonitorElement * mPtRecoOverGen_E_30_50_Cent_0_10
MonitorElement * mSumPFPt_n0p522_0p522
MonitorElement * mSumPFPt_n5p191_n2p650
MonitorElement * mPtRecoOverGen_GenPt_E_Cent_10_30
edm::EDGetTokenT< std::vector< reco::Vertex > > hiVertexToken_
MonitorElement * mPtRecoOverGen_E_30_50_Cent_30_50
MonitorElement * mJetArea
MonitorElement * mPFCandpT_Forward_NeutralHadron
MonitorElement * mPtRecoOverGen_GenEta_30_50_Cent_50_80
MonitorElement * mPFCandpT_vs_eta_photon
MonitorElement * mPFCandpT_Forward_photon
MonitorElement * mPFCandpT_Endcap_photon
MonitorElement * mPtRecoOverGen_B_80_120_Cent_10_30
MonitorElement * mSumPFPt_n2p043_n1p740
MonitorElement * mSumCaloPt_2p650_5p191
MonitorElement * mPtRecoOverGen_F_20_30_Cent_0_10
MonitorElement * mPtRecoOverGen_GenEta_20_30_Cent_0_10
MonitorElement * mSumPFPt
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
MonitorElement * mPtRecoOverGen_B_30_50_Cent_0_10
MonitorElement * mPtRecoOverGen_GenEta_50_80_Cent_10_30
MonitorElement * mPtRecoOverGen_E_180_300_Cent_10_30
MonitorElement * mPtRecoOverGen_F_50_80_Cent_50_80
MonitorElement * mPtRecoOverGen_F_180_300_Cent_30_50
MonitorElement * mPtRecoOverGen_F_300_Inf_Cent_30_50
MonitorElement * mPtRecoOverGen_GenPt_E_Cent_30_50
MonitorElement * mPtRecoOverGen_B_30_50_Cent_10_30
math::XYZPoint Point
point in the space
Definition: Vertex.h:39
MonitorElement * mNPFpart
MonitorElement * mPtRecoOverGen_GenPt_F_Cent_10_30
MonitorElement * mPFPt
MonitorElement * mPtRecoOverGen_F_80_120_Cent_50_80
edm::EDGetTokenT< GenEventInfoProduct > evtToken_
MonitorElement * mPtRecoOverGen_F_180_300_Cent_0_10
MonitorElement * mPtRecoOverGen_F_50_80_Cent_0_10
MonitorElement * mPtRecoOverGen_B_120_180_Cent_10_30
edm::EDGetTokenT< reco::JPTJetCollection > jptJetsToken_
MonitorElement * mPFCandpT_Endcap_EME_inHF
MonitorElement * mPFCandpT_Barrel_muon
MonitorElement * mPtRecoOverGen_GenEta_120_180_Cent_0_10
MonitorElement * mSumPFPt_0p522_0p783
bool isValid() const
Definition: HandleBase.h:74
MonitorElement * mPtRecoOverGen_GenEta_120_180_Cent_50_80
MonitorElement * mPtRecoOverGen_E_300_Inf_Cent_30_50
static const size_t nedge_pseudorapidity
MonitorElement * mPtRecoOverGen_B_300_Inf_Cent_10_30
MonitorElement * mPtRecoOverGen_F_120_180_Cent_10_30
MonitorElement * mPtRecoOverGen_B_50_80_Cent_50_80
MonitorElement * mPtRecoOverGen_E_20_30_Cent_10_30
MonitorElement * mSumPFPt_1p131_1p479
MonitorElement * mPtRecoOverGen_F_80_120_Cent_10_30
edm::InputTag centralityTag_
MonitorElement * mPFCandpT_Forward_ChargedHadron
int k[5][pyjets_maxn]
const Double_t ForwardEta
MonitorElement * mPFCandpT_Endcap_HadE_inHF
MonitorElement * mPFCandpT_Forward_electron
MonitorElement * mPtRecoOverGen_F_120_180_Cent_0_10
MonitorElement * mConstituents
MonitorElement * mPFCandpT_vs_eta_ChargedHadron
MonitorElement * mSumPFPt_1p740_2p043
edm::EDGetTokenT< reco::CandidateView > pfCandViewToken_
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
MonitorElement * mPtRecoOverGen_GenEta_80_120_Cent_50_80
MonitorElement * mPtRecoOverGen_B_30_50_Cent_30_50
MonitorElement * mPtRecoOverGen_B_80_120_Cent_50_80
edm::EDGetTokenT< reco::GenJetCollection > genJetsToken_
double EtHFtowerSum() const
Definition: Centrality.h:23
edm::EDGetTokenT< std::vector< reco::Vertex > > pvToken_
MonitorElement * mPFCandpT_Forward_muon
T const * product() const
Definition: Handle.h:74
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:109
MonitorElement * mPtRecoOverGen_B_80_120_Cent_0_10
MonitorElement * mPtRecoOverGen_GenEta_300_Inf_Cent_30_50
MonitorElement * mSumPFPt_n1p479_n1p131
MonitorElement * mPtRecoOverGen_B_120_180_Cent_0_10
MonitorElement * mSumPFPt_2p043_2p650
MonitorElement * mPtRecoOverGen_GenPt_F_Cent_30_50
MonitorElement * mPFCandpT_vs_eta_HadE_inHF
MonitorElement * mCaloEta
MonitorElement * mPtRecoOverGen_E_120_180_Cent_10_30
MonitorElement * mPtRecoOverGen_GenEta_30_50_Cent_30_50
MonitorElement * mPFCandpT_Endcap_Unknown
MonitorElement * mSumCaloPt_n0p783_n0p522
MonitorElement * mPFEta
MonitorElement * mGenPhi
MonitorElement * mPtRecoOverGen_B_120_180_Cent_50_80
MonitorElement * mPtRecoOverGen_F_80_120_Cent_0_10
MonitorElement * mPFCandpT_vs_eta_electron
MonitorElement * mPFCandpT_vs_eta_Unknown
MonitorElement * mCaloPhi
MonitorElement * mPFCandpT_Endcap_ChargedHadron
std::string const & label() const
Definition: InputTag.h:36
MonitorElement * mPtRecoOverGen_F_50_80_Cent_30_50
MonitorElement * mPFCandpT_Forward_EME_inHF
MonitorElement * mSumCaloPt_0p783_1p131
MonitorElement * mPtRecoOverGen_E_80_120_Cent_30_50
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:40
MonitorElement * mSumpt
fixed size matrix
MonitorElement * mPtRecoOverGen_GenEta_80_120_Cent_0_10
MonitorElement * mPtRecoOverGen_E_180_300_Cent_30_50
HLT enums.
MonitorElement * mPtRecoOverGen_E_50_80_Cent_50_80
edm::EDGetTokenT< int > centralityBinToken
MonitorElement * mSumPFPt_HF
MonitorElement * mPtRecoOverGen_GenPt_F_Cent_0_10
size_type size() const
MonitorElement * mPtRecoOverGen_GenPt_B_Cent_0_10
static int position[264][3]
Definition: ReadPGInfo.cc:509
MonitorElement * mPtRecoOverGen_B_180_300_Cent_30_50
MonitorElement * mPtRecoOverGen_F_180_300_Cent_50_80
MonitorElement * mPtRecoOverGen_GenEta_300_Inf_Cent_10_30
MonitorElement * mSumPFPt_2p650_5p191
MonitorElement * mGenEta
MonitorElement * mPtRecoOverGen_E_300_Inf_Cent_50_80
MonitorElement * mPtRecoOverGen_GenPt_B_Cent_30_50
MonitorElement * mPtRecoOverGen_GenEta_80_120_Cent_10_30
MonitorElement * mPtRecoOverGen_E_120_180_Cent_30_50
const Double_t BarrelEta
MonitorElement * mPtRecoOverGen_B_180_300_Cent_0_10
MonitorElement * mPtRecoOverGen_B_180_300_Cent_50_80
MonitorElement * mPFCandpT_Barrel_NeutralHadron
MonitorElement * mSumCaloPt_HF
MonitorElement * mPFCandpT_Forward_HadE_inHF
MonitorElement * mNvtx
MonitorElement * mPtRecoOverGen_GenEta_180_300_Cent_50_80
MonitorElement * mMass
MonitorElement * mPtRecoOverGen_GenEta_300_Inf_Cent_0_10
virtual ParticleType particleId() const
Definition: PFCandidate.h:374
edm::InputTag mInputGenCollection
MonitorElement * mPtRecoOverGen_GenEta_50_80_Cent_50_80
MonitorElement * mSumPFPt_n1p740_n1p479
MonitorElement * mPFArea
MonitorElement * mPtRecoOverGen_GenEta_120_180_Cent_10_30
MonitorElement * mPtRecoOverGen_GenEta_20_30_Cent_50_80
MonitorElement * mPFCandpT_Endcap_electron
double phi() const final
momentum azimuthal angle
MonitorElement * mPtRecoOverGen_B_20_30_Cent_50_80
MonitorElement * mPFCandpT_Barrel_electron
MonitorElement * mPtRecoOverGen_GenEta_180_300_Cent_10_30
edm::EDGetTokenT< edm::ValueMap< reco::VoronoiBackground > > backgrounds_
MonitorElement * mPtRecoOverGen_E_180_300_Cent_50_80
MonitorElement * mPtRecoOverGen_B_50_80_Cent_10_30
MonitorElement * mPtRecoOverGen_GenEta_30_50_Cent_10_30
edm::EDGetTokenT< reco::CaloJetCollection > caloJetsToken_
MonitorElement * mPFCandpT_Endcap_muon
MonitorElement * mPtRecoOverGen_F_300_Inf_Cent_10_30
MonitorElement * mPtRecoOverGen_E_180_300_Cent_0_10
MonitorElement * mSumCaloPt_1p740_2p043
MonitorElement * mPtRecoOverGen_GenEta_80_120_Cent_30_50
Definition: Run.h:45
MonitorElement * mPtRecoOverGen_E_50_80_Cent_0_10
MonitorElement * mPtRecoOverGen_GenPt_E_Cent_50_80
MonitorElement * mPtRecoOverGen_B_30_50_Cent_50_80
MonitorElement * mSumCaloPt_n1p479_n1p131
MonitorElement * mPtRecoOverGen_B_300_Inf_Cent_50_80
MonitorElement * mPtRecoOverGen_F_20_30_Cent_50_80
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * mPtRecoOverGen_E_300_Inf_Cent_0_10
MonitorElement * mPtRecoOverGen_E_120_180_Cent_0_10
MonitorElement * mjetpileup