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 objects
2 // 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> ("Cands")),
16  // 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 {
28  std::string inputCollectionLabel(mInputCollection.label());
29 
30  isCaloJet = (std::string("calo")==JetType);
31  isJPTJet = (std::string("jpt") ==JetType);
32  isPFJet = (std::string("pf") ==JetType);
33 
34  //consumes
35  pvToken_ = consumes<std::vector<reco::Vertex> >(edm::InputTag("offlinePrimaryVertices"));
36  caloTowersToken_ = consumes<CaloTowerCollection>(edm::InputTag("towerMaker"));
37  if (isCaloJet) caloJetsToken_ = consumes<reco::CaloJetCollection>(mInputCollection);
38  if (isJPTJet) jptJetsToken_ = consumes<reco::JPTJetCollection>(mInputCollection);
39  if (isPFJet) {
40  if(std::string("Pu")==UEAlgo) basicJetsToken_ = consumes<reco::BasicJetCollection>(mInputCollection);
41  }
42 
43  genJetsToken_ = consumes<reco::GenJetCollection>(edm::InputTag(mInputGenCollection));
44  evtToken_ = consumes<GenEventInfoProduct>(edm::InputTag("generator"));
45  pfCandToken_ = consumes<reco::PFCandidateCollection>(mInputPFCandCollection);
46  pfCandViewToken_ = consumes<reco::CandidateView>(mInputPFCandCollection);
47  caloCandViewToken_ = consumes<reco::CandidateView>(edm::InputTag("towerMaker"));
48  backgrounds_ = consumes<edm::ValueMap<reco::VoronoiBackground> >(Background);
49  backgrounds_value_ = consumes<std::vector<float> >(Background);
50  centralityTag_ = iConfig.getParameter<InputTag>("centralitycollection");
51  centralityToken = consumes<reco::Centrality>(centralityTag_);
52 
53  centralityBinTag_ = (iConfig.getParameter<edm::InputTag> ("centralitybincollection"));
54  centralityBinToken = consumes<int>(centralityBinTag_);
55  hiVertexToken_ = consumes<std::vector<reco::Vertex> >(edm::InputTag("hiSelectedVertex"));
56 
57  // need to initialize the PF cand histograms : which are also event variables
58  if(isPFJet){
59  mNPFpart = nullptr;
60  mPFPt = nullptr;
61  mPFEta = nullptr;
62  mPFPhi = nullptr;
63  mPFArea = nullptr;
64  mSumPFPt = nullptr;
65  mSumSquaredPFPt = nullptr;
66  mSumPFPt_HF = nullptr;
67 
68  mSumPFPt_n5p191_n2p650 = nullptr;
69  mSumPFPt_n2p650_n2p043 = nullptr;
70  mSumPFPt_n2p043_n1p740 = nullptr;
71  mSumPFPt_n1p740_n1p479 = nullptr;
72  mSumPFPt_n1p479_n1p131 = nullptr;
73  mSumPFPt_n1p131_n0p783 = nullptr;
74  mSumPFPt_n0p783_n0p522 = nullptr;
75  mSumPFPt_n0p522_0p522 = nullptr;
76  mSumPFPt_0p522_0p783 = nullptr;
77  mSumPFPt_0p783_1p131 = nullptr;
78  mSumPFPt_1p131_1p479 = nullptr;
79  mSumPFPt_1p479_1p740 = nullptr;
80  mSumPFPt_1p740_2p043 = nullptr;
81  mSumPFPt_2p043_2p650 = nullptr;
82  mSumPFPt_2p650_5p191 = nullptr;
83 
84  mPFCandpT_vs_eta_Unknown = nullptr; // pf id 0
85  mPFCandpT_vs_eta_ChargedHadron = nullptr; // pf id - 1
86  mPFCandpT_vs_eta_electron = nullptr; // pf id - 2
87  mPFCandpT_vs_eta_muon = nullptr; // pf id - 3
88  mPFCandpT_vs_eta_photon = nullptr; // pf id - 4
89  mPFCandpT_vs_eta_NeutralHadron = nullptr; // pf id - 5
90  mPFCandpT_vs_eta_HadE_inHF = nullptr; // pf id - 6
91  mPFCandpT_vs_eta_EME_inHF = nullptr; // pf id - 7
92 
93  mPFCandpT_Barrel_Unknown = nullptr; // pf id 0
94  mPFCandpT_Barrel_ChargedHadron = nullptr; // pf id - 1
95  mPFCandpT_Barrel_electron = nullptr; // pf id - 2
96  mPFCandpT_Barrel_muon = nullptr; // pf id - 3
97  mPFCandpT_Barrel_photon = nullptr; // pf id - 4
98  mPFCandpT_Barrel_NeutralHadron = nullptr; // pf id - 5
99  mPFCandpT_Barrel_HadE_inHF = nullptr; // pf id - 6
100  mPFCandpT_Barrel_EME_inHF = nullptr; // pf id - 7
101 
102  mPFCandpT_Endcap_Unknown = nullptr; // pf id 0
103  mPFCandpT_Endcap_ChargedHadron = nullptr; // pf id - 1
104  mPFCandpT_Endcap_electron = nullptr; // pf id - 2
105  mPFCandpT_Endcap_muon = nullptr; // pf id - 3
106  mPFCandpT_Endcap_photon = nullptr; // pf id - 4
107  mPFCandpT_Endcap_NeutralHadron = nullptr; // pf id - 5
108  mPFCandpT_Endcap_HadE_inHF = nullptr; // pf id - 6
109  mPFCandpT_Endcap_EME_inHF = nullptr; // pf id - 7
110 
111  mPFCandpT_Forward_Unknown = nullptr; // pf id 0
112  mPFCandpT_Forward_ChargedHadron = nullptr; // pf id - 1
113  mPFCandpT_Forward_electron = nullptr; // pf id - 2
114  mPFCandpT_Forward_muon = nullptr; // pf id - 3
115  mPFCandpT_Forward_photon = nullptr; // pf id - 4
116  mPFCandpT_Forward_NeutralHadron = nullptr; // pf id - 5
117  mPFCandpT_Forward_HadE_inHF = nullptr; // pf id - 6
118  mPFCandpT_Forward_EME_inHF = nullptr; // pf id - 7
119 
120  }
121  if(isCaloJet){
122  mNCalopart = nullptr;
123  mCaloPt = nullptr;
124  mCaloEta = nullptr;
125  mCaloPhi = nullptr;
126  mCaloArea = nullptr;
127 
128  mSumCaloPt = nullptr;
129  mSumSquaredCaloPt = nullptr;
130  mSumCaloPt_HF = nullptr;
131 
132  mSumCaloPt_n5p191_n2p650 = nullptr;
133  mSumCaloPt_n2p650_n2p043 = nullptr;
134  mSumCaloPt_n2p043_n1p740 = nullptr;
135  mSumCaloPt_n1p740_n1p479 = nullptr;
136  mSumCaloPt_n1p479_n1p131 = nullptr;
137  mSumCaloPt_n1p131_n0p783 = nullptr;
138  mSumCaloPt_n0p783_n0p522 = nullptr;
139  mSumCaloPt_n0p522_0p522 = nullptr;
140  mSumCaloPt_0p522_0p783 = nullptr;
141  mSumCaloPt_0p783_1p131 = nullptr;
142  mSumCaloPt_1p131_1p479 = nullptr;
143  mSumCaloPt_1p479_1p740 = nullptr;
144  mSumCaloPt_1p740_2p043 = nullptr;
145  mSumCaloPt_2p043_2p650 = nullptr;
146  mSumCaloPt_2p650_5p191 = nullptr;
147 
148  }
149  mSumpt = nullptr;
150 
151 
152 
153  // Events variables
154  mNvtx = nullptr;
155  mHF = nullptr;
156 
157 
158  // Jet parameters
159  mEta = nullptr;
160  mPhi = nullptr;
161  mEnergy = nullptr;
162  mP = nullptr;
163  mPt = nullptr;
164  mMass = nullptr;
165  mConstituents = nullptr;
166  mJetArea = nullptr;
167  mjetpileup = nullptr;
168  mNJets_40 = nullptr;
169  mNJets = nullptr;
170 
171  mGenEta = nullptr;
172  mGenPhi = nullptr;
173  mGenPt = nullptr;
174  mPtHat = nullptr;
175 
197 
219 
241 
263 
276 
284 
292 
300 
308 
309 
310 }
311 
313 {
314 
315  ibooker.setCurrentFolder("JetMET/JetValidation/"+mInputCollection.label());
316 
317  double log10PtMin = 0.50;
318  double log10PtMax = 3.75;
319  int log10PtBins = 26;
320 
321  static const size_t ncms_hcal_edge_pseudorapidity = 82 + 1;
322  static const double cms_hcal_edge_pseudorapidity[ncms_hcal_edge_pseudorapidity] = {
323  -5.191, -4.889, -4.716, -4.538, -4.363, -4.191, -4.013,
324  -3.839, -3.664, -3.489, -3.314, -3.139, -2.964, -2.853,
325  -2.650, -2.500, -2.322, -2.172, -2.043, -1.930, -1.830,
326  -1.740, -1.653, -1.566, -1.479, -1.392, -1.305, -1.218,
327  -1.131, -1.044, -0.957, -0.879, -0.783, -0.696, -0.609,
328  -0.522, -0.435, -0.348, -0.261, -0.174, -0.087,
329  0.000,
330  0.087, 0.174, 0.261, 0.348, 0.435, 0.522, 0.609,
331  0.696, 0.783, 0.879, 0.957, 1.044, 1.131, 1.218,
332  1.305, 1.392, 1.479, 1.566, 1.653, 1.740, 1.830,
333  1.930, 2.043, 2.172, 2.322, 2.500, 2.650, 2.853,
334  2.964, 3.139, 3.314, 3.489, 3.664, 3.839, 4.013,
335  4.191, 4.363, 4.538, 4.716, 4.889, 5.191
336  };
337 
338  double etaRange[91] = {-6.0, -5.8, -5.6, -5.4, -5.2, -5.0, -4.8, -4.6, -4.4, -4.2,
339  -4.0, -3.8, -3.6, -3.4, -3.2, -3.0, -2.9, -2.8, -2.7, -2.6,
340  -2.5, -2.4, -2.3, -2.2, -2.1, -2.0, -1.9, -1.8, -1.7, -1.6,
341  -1.5, -1.4, -1.3, -1.2, -1.1, -1.0, -0.9, -0.8, -0.7, -0.6,
342  -0.5, -0.4, -0.3, -0.2, -0.1,
343  0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
344  1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9,
345  2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9,
346  3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.4, 4.6, 4.8,
347  5.0, 5.2, 5.4, 5.6, 5.8, 6.0};
348 
349  double edge_pseudorapidity[etaBins_ +1] = {-5.191, -2.650, -2.043, -1.740, -1.479, -1.131, -0.783, -0.522, 0.522, 0.783, 1.131, 1.479, 1.740, 2.043, 2.650, 5.191 };
350 
351  TH2F *h2D_etabins_vs_pt2 = new TH2F("h2D_etabins_vs_pt2","etaBins (x axis), sum pt^{2} (y axis)",etaBins_,edge_pseudorapidity,10000,0,10000);
352  TH2F *h2D_etabins_vs_pt = new TH2F("h2D_etabins_vs_pt","etaBins (x axis), sum pt (y axis)",etaBins_,edge_pseudorapidity,10000,-1000,1000);
353  TH2F *h2D_etabins_vs_phi = new TH2F("h2D_etabins_vs_phi","candidate map, eta(x axis), phi (y axis), pt (z axis)",ncms_hcal_edge_pseudorapidity-1,cms_hcal_edge_pseudorapidity,36,-TMath::Pi(),TMath::Pi());
354  TH2F *h2D_pfcand_etabins_vs_pt = new TH2F("h2D_etabins_vs_pt",";#eta;sum p_{T}",etaBins_,edge_pseudorapidity,300, 0, 300);
355 
356  if(isPFJet){
357 
358  mNPFpart = ibooker.book1D("NPFpart","No of particle flow candidates",1000,0,10000);
359  mPFPt = ibooker.book1D("PFPt","PF candidate p_{T}",1000,-5000,5000);
360  mPFEta = ibooker.book1D("PFEta","PF candidate #eta",120,-6,6);
361  mPFPhi = ibooker.book1D("PFPhi","PF candidate #phi",70,-3.5,3.5);
362  mPFArea = ibooker.book1D("PFArea","VS PF candidate area",100,0,4);
363 
364  mSumPFPt = ibooker.book1D("SumPFPt","Sum of initial PF p_{T}",1000,-10000,10000);
365 
366  mSumSquaredPFPt = ibooker.book1D("SumSquaredPFPt","Sum of initial PF p_{T} squared",10000,0,10000);
367 
368  mSumPFPt_HF = ibooker.book2D("SumPFPt_HF","HF energy (y axis) vs Sum initial PF p_{T} (x axis)",1000,-1000,1000,1000,0,10000);
369 
370 
371  mSumPFPt_n5p191_n2p650 = ibooker.book1D("mSumPFPt_n5p191_n2p650","Sum PFPt in the eta range -5.191 to -2.650",1000,-5000,5000);
372  mSumPFPt_n2p650_n2p043 = ibooker.book1D("mSumPFPt_n2p650_n2p043","Sum PFPt in the eta range -2.650 to -2.043 ",1000,-5000,5000);
373  mSumPFPt_n2p043_n1p740 = ibooker.book1D("mSumPFPt_n2p043_n1p740","Sum PFPt in the eta range -2.043 to -1.740",1000,-1000,1000);
374  mSumPFPt_n1p740_n1p479 = ibooker.book1D("mSumPFPt_n1p740_n1p479","Sum PFPt in the eta range -1.740 to -1.479",1000,-1000,1000);
375  mSumPFPt_n1p479_n1p131 = ibooker.book1D("mSumPFPt_n1p479_n1p131","Sum PFPt in the eta range -1.479 to -1.131",1000,-1000,1000);
376  mSumPFPt_n1p131_n0p783 = ibooker.book1D("mSumPFPt_n1p131_n0p783","Sum PFPt in the eta range -1.131 to -0.783",1000,-1000,1000);
377  mSumPFPt_n0p783_n0p522 = ibooker.book1D("mSumPFPt_n0p783_n0p522","Sum PFPt in the eta range -0.783 to -0.522",1000,-1000,1000);
378  mSumPFPt_n0p522_0p522 = ibooker.book1D("mSumPFPt_n0p522_0p522","Sum PFPt in the eta range -0.522 to 0.522",1000,-1000,1000);
379  mSumPFPt_0p522_0p783 = ibooker.book1D("mSumPFPt_0p522_0p783","Sum PFPt in the eta range 0.522 to 0.783",1000,-1000,1000);
380  mSumPFPt_0p783_1p131 = ibooker.book1D("mSumPFPt_0p783_1p131","Sum PFPt in the eta range 0.783 to 1.131",1000,-1000,1000);
381  mSumPFPt_1p131_1p479 = ibooker.book1D("mSumPFPt_1p131_1p479","Sum PFPt in the eta range 1.131 to 1.479",1000,-1000,1000);
382  mSumPFPt_1p479_1p740 = ibooker.book1D("mSumPFPt_1p479_1p740","Sum PFPt in the eta range 1.479 to 1.740",1000,-1000,1000);
383  mSumPFPt_1p740_2p043 = ibooker.book1D("mSumPFPt_1p740_2p043","Sum PFPt in the eta range 1.740 to 2.043",1000,-1000,1000);
384  mSumPFPt_2p043_2p650 = ibooker.book1D("mSumPFPt_2p043_2p650","Sum PFPt in the eta range 2.043 to 2.650",1000,-5000,5000);
385  mSumPFPt_2p650_5p191 = ibooker.book1D("mSumPFPt_2p650_5p191","Sum PFPt in the eta range 2.650 to 5.191",1000,-5000,5000);
386 
387  mPFCandpT_vs_eta_Unknown = ibooker.book2D("PF_cand_X_unknown",h2D_pfcand_etabins_vs_pt); // pf id 0
388  mPFCandpT_vs_eta_ChargedHadron = ibooker.book2D("PF_cand_chargedHad",h2D_pfcand_etabins_vs_pt); // pf id - 1
389  mPFCandpT_vs_eta_electron = ibooker.book2D("PF_cand_electron",h2D_pfcand_etabins_vs_pt); // pf id - 2
390  mPFCandpT_vs_eta_muon = ibooker.book2D("PF_cand_muon",h2D_pfcand_etabins_vs_pt); // pf id - 3
391  mPFCandpT_vs_eta_photon = ibooker.book2D("PF_cand_photon",h2D_pfcand_etabins_vs_pt); // pf id - 4
392  mPFCandpT_vs_eta_NeutralHadron = ibooker.book2D("PF_cand_neutralHad",h2D_pfcand_etabins_vs_pt); // pf id - 5
393  mPFCandpT_vs_eta_HadE_inHF = ibooker.book2D("PF_cand_HadEner_inHF",h2D_pfcand_etabins_vs_pt); // pf id - 6
394  mPFCandpT_vs_eta_EME_inHF = ibooker.book2D("PF_cand_EMEner_inHF",h2D_pfcand_etabins_vs_pt); // pf id - 7
395 
396  mPFCandpT_Barrel_Unknown = ibooker.book1D("mPFCandpT_Barrel_Unknown",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 0
397  mPFCandpT_Barrel_ChargedHadron = ibooker.book1D("mPFCandpT_Barrel_ChargedHadron",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 1
398  mPFCandpT_Barrel_electron = ibooker.book1D("mPFCandpT_Barrel_electron",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 2
399  mPFCandpT_Barrel_muon = ibooker.book1D("mPFCandpT_Barrel_muon",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 3
400  mPFCandpT_Barrel_photon = ibooker.book1D("mPFCandpT_Barrel_photon",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 4
401  mPFCandpT_Barrel_NeutralHadron = ibooker.book1D("mPFCandpT_Barrel_NeutralHadron",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 5
402  mPFCandpT_Barrel_HadE_inHF = ibooker.book1D("mPFCandpT_Barrel_HadE_inHF",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 6
403  mPFCandpT_Barrel_EME_inHF = ibooker.book1D("mPFCandpT_Barrel_EME_inHF",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 7
404 
405  mPFCandpT_Endcap_Unknown = ibooker.book1D("mPFCandpT_Endcap_Unknown",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),300, 0, 300); // pf id - 0
406  mPFCandpT_Endcap_ChargedHadron = ibooker.book1D("mPFCandpT_Endcap_ChargedHadron",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),300, 0, 300); // pf id - 1
407  mPFCandpT_Endcap_electron = ibooker.book1D("mPFCandpT_Endcap_electron",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),300, 0, 300); // pf id - 2
408  mPFCandpT_Endcap_muon = ibooker.book1D("mPFCandpT_Endcap_muon",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),300, 0, 300); // pf id - 3
409  mPFCandpT_Endcap_photon = ibooker.book1D("mPFCandpT_Endcap_photon",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),300, 0, 300); // pf id - 4
410  mPFCandpT_Endcap_NeutralHadron = ibooker.book1D("mPFCandpT_Endcap_NeutralHadron",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),300, 0, 300); // pf id - 5
411  mPFCandpT_Endcap_HadE_inHF = ibooker.book1D("mPFCandpT_Endcap_HadE_inHF",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),300, 0, 300); // pf id - 6
412  mPFCandpT_Endcap_EME_inHF = ibooker.book1D("mPFCandpT_Endcap_EME_inHF",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", BarrelEta, EndcapEta),300, 0, 300); // pf id - 7
413 
414  mPFCandpT_Forward_Unknown = ibooker.book1D("mPFCandpT_Forward_Unknown",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),300, 0, 300); // pf id - 0
415  mPFCandpT_Forward_ChargedHadron = ibooker.book1D("mPFCandpT_Forward_ChargedHadron",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),300, 0, 300); // pf id - 1
416  mPFCandpT_Forward_electron = ibooker.book1D("mPFCandpT_Forward_electron",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),300, 0, 300); // pf id - 2
417  mPFCandpT_Forward_muon = ibooker.book1D("mPFCandpT_Forward_muon",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),300, 0, 300); // pf id - 3
418  mPFCandpT_Forward_photon = ibooker.book1D("mPFCandpT_Forward_photon",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),300, 0, 300); // pf id - 4
419  mPFCandpT_Forward_NeutralHadron = ibooker.book1D("mPFCandpT_Forward_NeutralHadron",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),300, 0, 300); // pf id - 5
420  mPFCandpT_Forward_HadE_inHF = ibooker.book1D("mPFCandpT_Forward_HadE_inHF",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),300, 0, 300); // pf id - 6
421  mPFCandpT_Forward_EME_inHF = ibooker.book1D("mPFCandpT_Forward_EME_inHF",Form(";PF candidate p_{T}, %2.2f<|#eta|<%2.2f; counts", EndcapEta, ForwardEta),300, 0, 300); // pf id - 7
422 
423 
424  }
425 
426  if(isCaloJet){
427 
428  mNCalopart = ibooker.book1D("NCalopart","No of particle flow candidates",1000,0,10000);
429  mCaloPt = ibooker.book1D("CaloPt","Calo candidate p_{T}",1000,-5000,5000);
430  mCaloEta = ibooker.book1D("CaloEta","Calo candidate #eta",120,-6,6);
431  mCaloPhi = ibooker.book1D("CaloPhi","Calo candidate #phi",70,-3.5,3.5);
432  mCaloArea = ibooker.book1D("CaloArea","VS Calo candidate area",100,0,4);
433 
434  mSumCaloPt = ibooker.book1D("SumCaloPt","Sum Calo p_{T}",1000,-10000,10000);
435 
436  mSumSquaredCaloPt = ibooker.book1D("SumSquaredCaloPt","Sum of initial Calo tower p_{T} squared",10000,0,10000);
437 
438  mSumCaloPt_HF = ibooker.book2D("SumCaloPt_HF","HF Energy (y axis) vs Sum Calo tower p_{T}",1000,-1000,1000,1000,0,10000);
439 
440 
441  mSumCaloPt_n5p191_n2p650 = ibooker.book1D("mSumCaloPt_n5p191_n2p650","Sum Calo tower pT variable in the eta range -5.191 to -2.650",1000,-5000,5000);
442  mSumCaloPt_n2p650_n2p043 = ibooker.book1D("mSumCaloPt_n2p650_n2p043","Sum Calo tower pT variable in the eta range -2.650 to -2.043",1000,-5000,5000);
443  mSumCaloPt_n2p043_n1p740 = ibooker.book1D("mSumCaloPt_n2p043_n1p740","Sum Calo tower pT variable in the eta range -2.043 to -1.740",1000,-1000,1000);
444  mSumCaloPt_n1p740_n1p479 = ibooker.book1D("mSumCaloPt_n1p740_n1p479","Sum Calo tower pT variable in the eta range -1.740 to -1.479",1000,-1000,1000);
445  mSumCaloPt_n1p479_n1p131 = ibooker.book1D("mSumCaloPt_n1p479_n1p131","Sum Calo tower pT variable in the eta range -1.479 to -1.131",1000,-1000,1000);
446  mSumCaloPt_n1p131_n0p783 = ibooker.book1D("mSumCaloPt_n1p131_n0p783","Sum Calo tower pT variable in the eta range -1.131 to -0.783",1000,-1000,1000);
447  mSumCaloPt_n0p783_n0p522 = ibooker.book1D("mSumCaloPt_n0p783_n0p522","Sum Calo tower pT variable in the eta range -0.783 to -0.522",1000,-1000,1000);
448  mSumCaloPt_n0p522_0p522 = ibooker.book1D("mSumCaloPt_n0p522_0p522","Sum Calo tower pT variable in the eta range -0.522 to 0.522",1000,-1000,1000);
449  mSumCaloPt_0p522_0p783 = ibooker.book1D("mSumCaloPt_0p522_0p783","Sum Calo tower pT variable in the eta range 0.522 to 0.783",1000,-1000,1000);
450  mSumCaloPt_0p783_1p131 = ibooker.book1D("mSumCaloPt_0p783_1p131","Sum Calo tower pT variable in the eta range 0.783 to 1.131",1000,-1000,1000);
451  mSumCaloPt_1p131_1p479 = ibooker.book1D("mSumCaloPt_1p131_1p479","Sum Calo tower pT variable in the eta range 1.131 to 1.479",1000,-1000,1000);
452  mSumCaloPt_1p479_1p740 = ibooker.book1D("mSumCaloPt_1p479_1p740","Sum Calo tower pT variable in the eta range 1.479 to 1.740",1000,-1000,1000);
453  mSumCaloPt_1p740_2p043 = ibooker.book1D("mSumCaloPt_1p740_2p043","Sum Calo tower pT variable in the eta range 1.740 to 2.043",1000,-1000,1000);
454  mSumCaloPt_2p043_2p650 = ibooker.book1D("mSumCaloPt_2p043_2p650","Sum Calo tower pT variable in the eta range 2.043 to 2.650",1000,-5000,5000);
455  mSumCaloPt_2p650_5p191 = ibooker.book1D("mSumCaloPt_2p650_5p191","Sum Calo tower pT variable in the eta range 2.650 to 5.191",1000,-5000,5000);
456 
457  }
458 
459  // particle flow variables histograms
460  mSumpt = ibooker.book1D("SumpT","Sum p_{T} of all the PF candidates per event",1000,0,10000);
461 
462  // Event variables
463  mNvtx = ibooker.book1D("Nvtx", "number of vertices", 60, 0, 60);
464  mHF = ibooker.book1D("HF", "HF energy distribution",1000,0,10000);
465 
466 
467  // Jet parameters
468  mEta = ibooker.book1D("Eta", "Eta", 120, -6, 6);
469  mPhi = ibooker.book1D("Phi", "Phi", 70, -3.5, 3.5);
470  mPt = ibooker.book1D("Pt", "Pt", 100, 0, 1000);
471  mP = ibooker.book1D("P", "P", 100, 0, 1000);
472  mEnergy = ibooker.book1D("Energy", "Energy", 100, 0, 1000);
473  mMass = ibooker.book1D("Mass", "Mass", 100, 0, 200);
474  mConstituents = ibooker.book1D("Constituents", "Constituents", 100, 0, 100);
475  mJetArea = ibooker.book1D("JetArea", "JetArea", 100, 0, 4);
476  mjetpileup = ibooker.book1D("jetPileUp","jetPileUp",100,0,150);
477  mNJets_40 = ibooker.book1D("NJets_pt_greater_40", "NJets pT > 40 GeV", 50, 0, 100);
478  mNJets = ibooker.book1D("NJets", "NJets", 50, 0, 100);
479 
480  mGenEta = ibooker.book1D("Gen Eta",";gen jet #eta;counts",120,-6,6);
481  mGenPhi = ibooker.book1D("Gen Phi",";gen jet #phi;counts",70,-3.5,3.5);
482  mGenPt = ibooker.book1D("Gen pT","gen jet p_{T}",250,0,1000);
483  mPtHat = ibooker.book1D("pThat","#hat{p_{T}}",250,0,1000);
484 
485  mPtRecoOverGen_B_20_30_Cent_0_10 = ibooker.book1D("PtRecoOverGen_B_20_30_Cent_0_10", "20<genpt<30; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
486  mPtRecoOverGen_E_20_30_Cent_0_10 = ibooker.book1D("PtRecoOverGen_E_20_30_Cent_0_10", "20<genpt<30; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
487  mPtRecoOverGen_F_20_30_Cent_0_10 = ibooker.book1D("PtRecoOverGen_F_20_30_Cent_0_10", "20<genpt<30; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
488  mPtRecoOverGen_B_30_50_Cent_0_10 = ibooker.book1D("PtRecoOverGen_B_30_50_Cent_0_10", "30<genpt<50; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
489  mPtRecoOverGen_E_30_50_Cent_0_10 = ibooker.book1D("PtRecoOverGen_E_30_50_Cent_0_10", "30<genpt<50; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
490  mPtRecoOverGen_F_30_50_Cent_0_10 = ibooker.book1D("PtRecoOverGen_F_30_50_Cent_0_10", "30<genpt<50; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
491  mPtRecoOverGen_B_50_80_Cent_0_10 = ibooker.book1D("PtRecoOverGen_B_50_80_Cent_0_10", "50<genpt<80; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
492  mPtRecoOverGen_E_50_80_Cent_0_10 = ibooker.book1D("PtRecoOverGen_E_50_80_Cent_0_10", "50<genpt<80; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
493  mPtRecoOverGen_F_50_80_Cent_0_10 = ibooker.book1D("PtRecoOverGen_F_50_80_Cent_0_10", "50<genpt<80; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
494  mPtRecoOverGen_B_80_120_Cent_0_10 = ibooker.book1D("PtRecoOverGen_B_80_120_Cent_0_10", "80<genpt<120; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
495  mPtRecoOverGen_E_80_120_Cent_0_10 = ibooker.book1D("PtRecoOverGen_E_80_120_Cent_0_10", "80<genpt<120; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
496  mPtRecoOverGen_F_80_120_Cent_0_10 = ibooker.book1D("PtRecoOverGen_F_80_120_Cent_0_10", "80<genpt<120; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
497  mPtRecoOverGen_B_120_180_Cent_0_10 = ibooker.book1D("PtRecoOverGen_B_120_180_Cent_0_10", "120<genpt<180; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
498  mPtRecoOverGen_E_120_180_Cent_0_10 = ibooker.book1D("PtRecoOverGen_E_120_180_Cent_0_10", "120<genpt<180; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
499  mPtRecoOverGen_F_120_180_Cent_0_10 = ibooker.book1D("PtRecoOverGen_F_120_180_Cent_0_10", "120<genpt<180; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
500  mPtRecoOverGen_B_180_300_Cent_0_10 = ibooker.book1D("PtRecoOverGen_B_180_300_Cent_0_10", "180<genpt<300; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
501  mPtRecoOverGen_E_180_300_Cent_0_10 = ibooker.book1D("PtRecoOverGen_E_180_300_Cent_0_10", "180<genpt<300; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
502  mPtRecoOverGen_F_180_300_Cent_0_10 = ibooker.book1D("PtRecoOverGen_F_180_300_Cent_0_10", "180<genpt<300; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
503  mPtRecoOverGen_B_300_Inf_Cent_0_10 = ibooker.book1D("PtRecoOverGen_B_300_Inf_Cent_0_10", "300<genpt<Inf; recopt/genpt (0-10%) (Barrel);counts", 90, 0, 2);
504  mPtRecoOverGen_E_300_Inf_Cent_0_10 = ibooker.book1D("PtRecoOverGen_E_300_Inf_Cent_0_10", "300<genpt<Inf; recopt/genpt (0-10%) (EndCap);counts", 90, 0, 2);
505  mPtRecoOverGen_F_300_Inf_Cent_0_10 = ibooker.book1D("PtRecoOverGen_F_300_Inf_Cent_0_10", "300<genpt<Inf; recopt/genpt (0-10%) (Forward);counts", 90, 0, 2);
506 
507 
508  mPtRecoOverGen_B_20_30_Cent_10_30 = ibooker.book1D("PtRecoOverGen_B_20_30_Cent_10_30", "20<genpt<30; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
509  mPtRecoOverGen_E_20_30_Cent_10_30 = ibooker.book1D("PtRecoOverGen_E_20_30_Cent_10_30", "20<genpt<30; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
510  mPtRecoOverGen_F_20_30_Cent_10_30 = ibooker.book1D("PtRecoOverGen_F_20_30_Cent_10_30", "20<genpt<30; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
511  mPtRecoOverGen_B_30_50_Cent_10_30 = ibooker.book1D("PtRecoOverGen_B_30_50_Cent_10_30", "30<genpt<50; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
512  mPtRecoOverGen_E_30_50_Cent_10_30 = ibooker.book1D("PtRecoOverGen_E_30_50_Cent_10_30", "30<genpt<50; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
513  mPtRecoOverGen_F_30_50_Cent_10_30 = ibooker.book1D("PtRecoOverGen_F_30_50_Cent_10_30", "30<genpt<50; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
514  mPtRecoOverGen_B_50_80_Cent_10_30 = ibooker.book1D("PtRecoOverGen_B_50_80_Cent_10_30", "50<genpt<80; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
515  mPtRecoOverGen_E_50_80_Cent_10_30 = ibooker.book1D("PtRecoOverGen_E_50_80_Cent_10_30", "50<genpt<80; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
516  mPtRecoOverGen_F_50_80_Cent_10_30 = ibooker.book1D("PtRecoOverGen_F_50_80_Cent_10_30", "50<genpt<80; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
517  mPtRecoOverGen_B_80_120_Cent_10_30 = ibooker.book1D("PtRecoOverGen_B_80_120_Cent_10_30", "80<genpt<120; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
518  mPtRecoOverGen_E_80_120_Cent_10_30 = ibooker.book1D("PtRecoOverGen_E_80_120_Cent_10_30", "80<genpt<120; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
519  mPtRecoOverGen_F_80_120_Cent_10_30 = ibooker.book1D("PtRecoOverGen_F_80_120_Cent_10_30", "80<genpt<120; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
520  mPtRecoOverGen_B_120_180_Cent_10_30 = ibooker.book1D("PtRecoOverGen_B_120_180_Cent_10_30", "120<genpt<180; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
521  mPtRecoOverGen_E_120_180_Cent_10_30 = ibooker.book1D("PtRecoOverGen_E_120_180_Cent_10_30", "120<genpt<180; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
522  mPtRecoOverGen_F_120_180_Cent_10_30 = ibooker.book1D("PtRecoOverGen_F_120_180_Cent_10_30", "120<genpt<180; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
523  mPtRecoOverGen_B_180_300_Cent_10_30 = ibooker.book1D("PtRecoOverGen_B_180_300_Cent_10_30", "180<genpt<300; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
524  mPtRecoOverGen_E_180_300_Cent_10_30 = ibooker.book1D("PtRecoOverGen_E_180_300_Cent_10_30", "180<genpt<300; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
525  mPtRecoOverGen_F_180_300_Cent_10_30 = ibooker.book1D("PtRecoOverGen_F_180_300_Cent_10_30", "180<genpt<300; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
526  mPtRecoOverGen_B_300_Inf_Cent_10_30 = ibooker.book1D("PtRecoOverGen_B_300_Inf_Cent_10_30", "300<genpt<Inf; recopt/genpt (10-30%) (Barrel);counts", 90, 0, 2);
527  mPtRecoOverGen_E_300_Inf_Cent_10_30 = ibooker.book1D("PtRecoOverGen_E_300_Inf_Cent_10_30", "300<genpt<Inf; recopt/genpt (10-30%) (EndCap);counts", 90, 0, 2);
528  mPtRecoOverGen_F_300_Inf_Cent_10_30 = ibooker.book1D("PtRecoOverGen_F_300_Inf_Cent_10_30", "300<genpt<Inf; recopt/genpt (10-30%) (Forward);counts", 90, 0, 2);
529 
530 
531  mPtRecoOverGen_B_20_30_Cent_30_50 = ibooker.book1D("PtRecoOverGen_B_20_30_Cent_30_50", "20<genpt<30; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
532  mPtRecoOverGen_E_20_30_Cent_30_50 = ibooker.book1D("PtRecoOverGen_E_20_30_Cent_30_50", "20<genpt<30; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
533  mPtRecoOverGen_F_20_30_Cent_30_50 = ibooker.book1D("PtRecoOverGen_F_20_30_Cent_30_50", "20<genpt<30; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
534  mPtRecoOverGen_B_30_50_Cent_30_50 = ibooker.book1D("PtRecoOverGen_B_30_50_Cent_30_50", "30<genpt<50; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
535  mPtRecoOverGen_E_30_50_Cent_30_50 = ibooker.book1D("PtRecoOverGen_E_30_50_Cent_30_50", "30<genpt<50; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
536  mPtRecoOverGen_F_30_50_Cent_30_50 = ibooker.book1D("PtRecoOverGen_F_30_50_Cent_30_50", "30<genpt<50; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
537  mPtRecoOverGen_B_50_80_Cent_30_50 = ibooker.book1D("PtRecoOverGen_B_50_80_Cent_30_50", "50<genpt<80; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
538  mPtRecoOverGen_E_50_80_Cent_30_50 = ibooker.book1D("PtRecoOverGen_E_50_80_Cent_30_50", "50<genpt<80; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
539  mPtRecoOverGen_F_50_80_Cent_30_50 = ibooker.book1D("PtRecoOverGen_F_50_80_Cent_30_50", "50<genpt<80; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
540  mPtRecoOverGen_B_80_120_Cent_30_50 = ibooker.book1D("PtRecoOverGen_B_80_120_Cent_30_50", "80<genpt<120; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
541  mPtRecoOverGen_E_80_120_Cent_30_50 = ibooker.book1D("PtRecoOverGen_E_80_120_Cent_30_50", "80<genpt<120; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
542  mPtRecoOverGen_F_80_120_Cent_30_50 = ibooker.book1D("PtRecoOverGen_F_80_120_Cent_30_50", "80<genpt<120; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
543  mPtRecoOverGen_B_120_180_Cent_30_50 = ibooker.book1D("PtRecoOverGen_B_120_180_Cent_30_50", "120<genpt<180; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
544  mPtRecoOverGen_E_120_180_Cent_30_50 = ibooker.book1D("PtRecoOverGen_E_120_180_Cent_30_50", "120<genpt<180; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
545  mPtRecoOverGen_F_120_180_Cent_30_50 = ibooker.book1D("PtRecoOverGen_F_120_180_Cent_30_50", "120<genpt<180; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
546  mPtRecoOverGen_B_180_300_Cent_30_50 = ibooker.book1D("PtRecoOverGen_B_180_300_Cent_30_50", "180<genpt<300; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
547  mPtRecoOverGen_E_180_300_Cent_30_50 = ibooker.book1D("PtRecoOverGen_E_180_300_Cent_30_50", "180<genpt<300; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
548  mPtRecoOverGen_F_180_300_Cent_30_50 = ibooker.book1D("PtRecoOverGen_F_180_300_Cent_30_50", "180<genpt<300; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
549  mPtRecoOverGen_B_300_Inf_Cent_30_50 = ibooker.book1D("PtRecoOverGen_B_300_Inf_Cent_30_50", "300<genpt<Inf; recopt/genpt (30-50%) (Barrel);counts", 90, 0, 2);
550  mPtRecoOverGen_E_300_Inf_Cent_30_50 = ibooker.book1D("PtRecoOverGen_E_300_Inf_Cent_30_50", "300<genpt<Inf; recopt/genpt (30-50%) (EndCap);counts", 90, 0, 2);
551  mPtRecoOverGen_F_300_Inf_Cent_30_50 = ibooker.book1D("PtRecoOverGen_F_300_Inf_Cent_30_50", "300<genpt<Inf; recopt/genpt (30-50%) (Forward);counts", 90, 0, 2);
552 
553  mPtRecoOverGen_B_20_30_Cent_50_80 = ibooker.book1D("PtRecoOverGen_B_20_30_Cent_50_80", "20<genpt<30; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
554  mPtRecoOverGen_E_20_30_Cent_50_80 = ibooker.book1D("PtRecoOverGen_E_20_30_Cent_50_80", "20<genpt<30; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
555  mPtRecoOverGen_F_20_30_Cent_50_80 = ibooker.book1D("PtRecoOverGen_F_20_30_Cent_50_80", "20<genpt<30; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
556  mPtRecoOverGen_B_30_50_Cent_50_80 = ibooker.book1D("PtRecoOverGen_B_30_50_Cent_50_80", "30<genpt<50; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
557  mPtRecoOverGen_E_30_50_Cent_50_80 = ibooker.book1D("PtRecoOverGen_E_30_50_Cent_50_80", "30<genpt<50; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
558  mPtRecoOverGen_F_30_50_Cent_50_80 = ibooker.book1D("PtRecoOverGen_F_30_50_Cent_50_80", "30<genpt<50; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
559  mPtRecoOverGen_B_50_80_Cent_50_80 = ibooker.book1D("PtRecoOverGen_B_50_80_Cent_50_80", "50<genpt<80; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
560  mPtRecoOverGen_E_50_80_Cent_50_80 = ibooker.book1D("PtRecoOverGen_E_50_80_Cent_50_80", "50<genpt<80; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
561  mPtRecoOverGen_F_50_80_Cent_50_80 = ibooker.book1D("PtRecoOverGen_F_50_80_Cent_50_80", "50<genpt<80; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
562  mPtRecoOverGen_B_80_120_Cent_50_80 = ibooker.book1D("PtRecoOverGen_B_80_120_Cent_50_80", "80<genpt<120; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
563  mPtRecoOverGen_E_80_120_Cent_50_80 = ibooker.book1D("PtRecoOverGen_E_80_120_Cent_50_80", "80<genpt<120; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
564  mPtRecoOverGen_F_80_120_Cent_50_80 = ibooker.book1D("PtRecoOverGen_F_80_120_Cent_50_80", "80<genpt<120; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
565  mPtRecoOverGen_B_120_180_Cent_50_80 = ibooker.book1D("PtRecoOverGen_B_120_180_Cent_50_80", "120<genpt<180; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
566  mPtRecoOverGen_E_120_180_Cent_50_80 = ibooker.book1D("PtRecoOverGen_E_120_180_Cent_50_80", "120<genpt<180; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
567  mPtRecoOverGen_F_120_180_Cent_50_80 = ibooker.book1D("PtRecoOverGen_F_120_180_Cent_50_80", "120<genpt<180; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
568  mPtRecoOverGen_B_180_300_Cent_50_80 = ibooker.book1D("PtRecoOverGen_B_180_300_Cent_50_80", "180<genpt<300; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
569  mPtRecoOverGen_E_180_300_Cent_50_80 = ibooker.book1D("PtRecoOverGen_E_180_300_Cent_50_80", "180<genpt<300; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
570  mPtRecoOverGen_F_180_300_Cent_50_80 = ibooker.book1D("PtRecoOverGen_F_180_300_Cent_50_80", "180<genpt<300; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
571  mPtRecoOverGen_B_300_Inf_Cent_50_80 = ibooker.book1D("PtRecoOverGen_B_300_Inf_Cent_50_80", "300<genpt<Inf; recopt/genpt (50-80%) (Barrel);counts", 90, 0, 2);
572  mPtRecoOverGen_E_300_Inf_Cent_50_80 = ibooker.book1D("PtRecoOverGen_E_300_Inf_Cent_50_80", "300<genpt<Inf; recopt/genpt (50-80%) (EndCap);counts", 90, 0, 2);
573  mPtRecoOverGen_F_300_Inf_Cent_50_80 = ibooker.book1D("PtRecoOverGen_F_300_Inf_Cent_50_80", "300<genpt<Inf; recopt/genpt (50-80%) (Forward);counts", 90, 0, 2);
574 
575 
576  mPtRecoOverGen_GenPt_B_Cent_0_10 = ibooker.bookProfile("PtRecoOverGen_GenPt_B_Cent_0_10", Form("|#eta|<%2.2f, (0-10cent);genpt;recopt/genpt", BarrelEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
577  mPtRecoOverGen_GenPt_E_Cent_0_10 = ibooker.bookProfile("PtRecoOverGen_GenPt_E_Cent_0_10", Form("%2.2f<|#eta|<%2.2f, (0-10cent);genpt;recopt/genpt", BarrelEta, EndcapEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
578  mPtRecoOverGen_GenPt_F_Cent_0_10 = ibooker.bookProfile("PtRecoOverGen_GenPt_F_Cent_0_10", Form("%2.2f<|#eta|<%2.2f, (0-10cent);genpt;recopt/genpt", EndcapEta, ForwardEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
579  mPtRecoOverGen_GenPt_B_Cent_10_30 = ibooker.bookProfile("PtRecoOverGen_GenPt_B_Cent_10_30", Form("|#eta|<%2.2f, (10-30cent);genpt;recopt/genpt", BarrelEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
580  mPtRecoOverGen_GenPt_E_Cent_10_30 = ibooker.bookProfile("PtRecoOverGen_GenPt_E_Cent_10_30", Form("%2.2f<|#eta|<%2.2f, (10-30cent);genpt;recopt/genpt", BarrelEta, EndcapEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
581  mPtRecoOverGen_GenPt_F_Cent_10_30 = ibooker.bookProfile("PtRecoOverGen_GenPt_F_Cent_10_30", Form("%2.2f<|#eta|<%2.2f, (10-30cent);genpt;recopt/genpt", EndcapEta, ForwardEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
582  mPtRecoOverGen_GenPt_B_Cent_30_50 = ibooker.bookProfile("PtRecoOverGen_GenPt_B_Cent_30_50", Form("|#eta|<%2.2f, (30-50cent);genpt;recopt/genpt", BarrelEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
583  mPtRecoOverGen_GenPt_E_Cent_30_50 = ibooker.bookProfile("PtRecoOverGen_GenPt_E_Cent_30_50", Form("%2.2f<|#eta|<%2.2f, (30-50cent);genpt;recopt/genpt", BarrelEta, EndcapEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
584  mPtRecoOverGen_GenPt_F_Cent_30_50 = ibooker.bookProfile("PtRecoOverGen_GenPt_F_Cent_30_50", Form("%2.2f<|#eta|<%2.2f, (30-50cent);genpt;recopt/genpt", EndcapEta, ForwardEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
585  mPtRecoOverGen_GenPt_B_Cent_50_80 = ibooker.bookProfile("PtRecoOverGen_GenPt_B_Cent_50_80", Form("|#eta|<%2.2f, (50-80cent);genpt;recopt/genpt", BarrelEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
586  mPtRecoOverGen_GenPt_E_Cent_50_80 = ibooker.bookProfile("PtRecoOverGen_GenPt_E_Cent_50_80", Form("%2.2f<|#eta|<%2.2f, (50-80cent);genpt;recopt/genpt", BarrelEta, EndcapEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
587  mPtRecoOverGen_GenPt_F_Cent_50_80 = ibooker.bookProfile("PtRecoOverGen_GenPt_F_Cent_50_80", Form("%2.2f<|#eta|<%2.2f, (50-80cent);genpt;recopt/genpt", EndcapEta, ForwardEta), log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
588 
589  mPtRecoOverGen_GenEta_20_30_Cent_0_10 = ibooker.bookProfile("PtRecoOverGen_GenEta_20_30_Cent_0_10","20<genpt<30 (0-10%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
590  mPtRecoOverGen_GenEta_30_50_Cent_0_10 = ibooker.bookProfile("PtRecoOverGen_GenEta_30_50_Cent_0_10","30<genpt<50 (0-10%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
591  mPtRecoOverGen_GenEta_50_80_Cent_0_10 = ibooker.bookProfile("PtRecoOverGen_GenEta_50_80_Cent_0_10","50<genpt<80 (0-10%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
592  mPtRecoOverGen_GenEta_80_120_Cent_0_10 = ibooker.bookProfile("PtRecoOverGen_GenEta_80_120_Cent_0_10","80<genpt<120 (0-10%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
593  mPtRecoOverGen_GenEta_120_180_Cent_0_10 = ibooker.bookProfile("PtRecoOverGen_GenEta_120_180_Cent_0_10","120<genpt<180 (0-10%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
594  mPtRecoOverGen_GenEta_180_300_Cent_0_10 = ibooker.bookProfile("PtRecoOverGen_GenEta_180_300_Cent_0_10","180<genpt<300 (0-10%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
595  mPtRecoOverGen_GenEta_300_Inf_Cent_0_10 = ibooker.bookProfile("PtRecoOverGen_GenEta_300_Inf_Cent_0_10","300<genpt<Inf (0-10%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
596 
597 
598  mPtRecoOverGen_GenEta_20_30_Cent_10_30 = ibooker.bookProfile("PtRecoOverGen_GenEta_20_30_Cent_10_30","20<genpt<30 (10-30%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
599  mPtRecoOverGen_GenEta_30_50_Cent_10_30 = ibooker.bookProfile("PtRecoOverGen_GenEta_30_50_Cent_10_30","30<genpt<50 (10-30%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
600  mPtRecoOverGen_GenEta_50_80_Cent_10_30 = ibooker.bookProfile("PtRecoOverGen_GenEta_50_80_Cent_10_30","50<genpt<80 (10-30%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
601  mPtRecoOverGen_GenEta_80_120_Cent_10_30 = ibooker.bookProfile("PtRecoOverGen_GenEta_80_120_Cent_10_30","80<genpt<120 (10-30%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
602  mPtRecoOverGen_GenEta_120_180_Cent_10_30 = ibooker.bookProfile("PtRecoOverGen_GenEta_120_180_Cent_10_30","120<genpt<180 (10-30%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
603  mPtRecoOverGen_GenEta_180_300_Cent_10_30 = ibooker.bookProfile("PtRecoOverGen_GenEta_180_300_Cent_10_30","180<genpt<300 (10-30%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
604  mPtRecoOverGen_GenEta_300_Inf_Cent_10_30 = ibooker.bookProfile("PtRecoOverGen_GenEta_300_Inf_Cent_10_30","300<genpt<Inf (10-30%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
605 
606  mPtRecoOverGen_GenEta_20_30_Cent_30_50 = ibooker.bookProfile("PtRecoOverGen_GenEta_20_30_Cent_30_50","20<genpt<30 (30-50%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
607  mPtRecoOverGen_GenEta_30_50_Cent_30_50 = ibooker.bookProfile("PtRecoOverGen_GenEta_30_50_Cent_30_50","30<genpt<50 (30-50%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
608  mPtRecoOverGen_GenEta_50_80_Cent_30_50 = ibooker.bookProfile("PtRecoOverGen_GenEta_50_80_Cent_30_50","50<genpt<80 (30-50%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
609  mPtRecoOverGen_GenEta_80_120_Cent_30_50 = ibooker.bookProfile("PtRecoOverGen_GenEta_80_120_Cent_30_50","80<genpt<120 (30-50%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
610  mPtRecoOverGen_GenEta_120_180_Cent_30_50 = ibooker.bookProfile("PtRecoOverGen_GenEta_120_180_Cent_30_50","120<genpt<180 (30-50%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
611  mPtRecoOverGen_GenEta_180_300_Cent_30_50 = ibooker.bookProfile("PtRecoOverGen_GenEta_180_300_Cent_30_50","180<genpt<300 (30-50%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
612  mPtRecoOverGen_GenEta_300_Inf_Cent_30_50 = ibooker.bookProfile("PtRecoOverGen_GenEta_300_Inf_Cent_30_50","300<genpt<Inf (30-50%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
613 
614  mPtRecoOverGen_GenEta_20_30_Cent_50_80 = ibooker.bookProfile("PtRecoOverGen_GenEta_20_30_Cent_50_80","20<genpt<30 (50-80%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
615  mPtRecoOverGen_GenEta_30_50_Cent_50_80 = ibooker.bookProfile("PtRecoOverGen_GenEta_30_50_Cent_50_80","30<genpt<50 (50-80%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
616  mPtRecoOverGen_GenEta_50_80_Cent_50_80 = ibooker.bookProfile("PtRecoOverGen_GenEta_50_80_Cent_50_80","50<genpt<80 (50-80%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
617  mPtRecoOverGen_GenEta_80_120_Cent_50_80 = ibooker.bookProfile("PtRecoOverGen_GenEta_80_120_Cent_50_80","80<genpt<120 (50-80%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
618  mPtRecoOverGen_GenEta_120_180_Cent_50_80 = ibooker.bookProfile("PtRecoOverGen_GenEta_120_180_Cent_50_80","120<genpt<180 (50-80%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
619  mPtRecoOverGen_GenEta_180_300_Cent_50_80 = ibooker.bookProfile("PtRecoOverGen_GenEta_180_300_Cent_50_80","180<genpt<300 (50-80%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
620  mPtRecoOverGen_GenEta_300_Inf_Cent_50_80 = ibooker.bookProfile("PtRecoOverGen_GenEta_300_Inf_Cent_50_80","300<genpt<Inf (50-80%);geneta;recopt/genpt",90, etaRange, 0, 2, " ");
621 
622 
623  if (mOutputFile.empty ())
624  LogInfo("OutputInfo") << " Histograms will NOT be saved";
625  else
626  LogInfo("OutputInfo") << " Histograms will be saved to file:" << mOutputFile;
627 
628  delete h2D_etabins_vs_pt2;
629  delete h2D_etabins_vs_pt;
630  delete h2D_etabins_vs_phi;
631  delete h2D_pfcand_etabins_vs_pt;
632 }
633 
634 
635 
636 //------------------------------------------------------------------------------
637 // ~JetTester_HeavyIons
638 //------------------------------------------------------------------------------
640 
641 
642 //------------------------------------------------------------------------------
643 // beginJob
644 //------------------------------------------------------------------------------
645 //void JetTester_HeavyIons::beginJob() {
646 // //std::cout<<"inside the begin job function"<<endl;
647 //}
648 
649 
650 //------------------------------------------------------------------------------
651 // endJob
652 //------------------------------------------------------------------------------
653 //void JetTester_HeavyIons::endJob()
654 //{
655 // if (!mOutputFile.empty() && &*edm::Service<DQMStore>())
656 // {
657 // edm::Service<DQMStore>()->save(mOutputFile);
658 // }
659 //}
660 
661 
662 //------------------------------------------------------------------------------
663 // analyze
664 //------------------------------------------------------------------------------
665 void JetTester_HeavyIons::analyze(const edm::Event& mEvent, const edm::EventSetup& mSetup)
666 {
667  // Get the primary vertices
668  //----------------------------------------------------------------------------
670  mEvent.getByToken(pvToken_, pvHandle);
671  reco::Vertex::Point vtx(0,0,0);
673  //vtx = getVtx(mEvent);
674 
675  mEvent.getByToken(hiVertexToken_, vtxs);
676  int greatestvtx = 0;
677  int nVertex = vtxs->size();
678 
679  for (unsigned int i = 0 ; i< vtxs->size(); ++i){
680  unsigned int daughter = (*vtxs)[i].tracksSize();
681  if( daughter > (*vtxs)[greatestvtx].tracksSize()) greatestvtx = i;
682  }
683 
684  if(nVertex<=0){
685  vtx = reco::Vertex::Point(0,0,0);
686  }
687  vtx = (*vtxs)[greatestvtx].position();
688 
689  int nGoodVertices = 0;
690 
691  if (pvHandle.isValid())
692  {
693  for (unsigned i=0; i<pvHandle->size(); i++)
694  {
695  if ((*pvHandle)[i].ndof() > 4 &&
696  (fabs((*pvHandle)[i].z()) <= 24) &&
697  (fabs((*pvHandle)[i].position().rho()) <= 2))
698  nGoodVertices++;
699  }
700  }
701 
702  mNvtx->Fill(nGoodVertices);
703 
704  // Get the Jet collection
705  //----------------------------------------------------------------------------
706  //math::XYZTLorentzVector p4tmp[2];
707 
708  std::vector<Jet> recoJets;
709  recoJets.clear();
710 
715 
716  // Get the Particle flow candidates and the Voronoi variables
718  edm::Handle<CaloTowerCollection> caloCandidates;
719  edm::Handle<reco::CandidateView> pfcandidates_;
720  edm::Handle<reco::CandidateView> calocandidates_;
721 
722 
723  // get the centrality
725  mEvent.getByToken(centralityToken, cent); //_centralitytag comes from the cfg
726 
727  mHF->Fill(cent->EtHFtowerSum());
728  Float_t HF_energy = cent->EtHFtowerSum();
729 
730  edm::Handle<int> cbin;
731  mEvent.getByToken(centralityBinToken, cbin);
732  if (!cent.isValid()) return;
733 
734  int hibin = -999;
735  if(cbin.isValid()){
736  hibin = *cbin;
737  }
738  //else edm::LogWarning("JetTester_HeavyIons") << "invalid collection: centralityBin " << std::endl;
739 
740  bool isCentral = false;
741  bool ismidCentral = false;
742  bool ismidPeripheral = false;
743  bool isPeripheral = false;
744 
745  if(hibin < 20) isCentral = true;
746  if(hibin >= 20 && hibin < 60) ismidCentral = true;
747  if(hibin >= 60 && hibin < 100) ismidPeripheral = true;
748  if(hibin >= 100 && hibin < 160) isPeripheral = true;
749 
750 
751  if (isCaloJet) mEvent.getByToken(caloJetsToken_, caloJets);
752  if (isJPTJet) mEvent.getByToken(jptJetsToken_, jptJets);
753  if (isPFJet) {
754  if(std::string("Pu")==UEAlgo) mEvent.getByToken(basicJetsToken_, basicJets);
755  }
756 
757  mEvent.getByToken(pfCandToken_, pfCandidates);
758  mEvent.getByToken(pfCandViewToken_, pfcandidates_);
759 
760  mEvent.getByToken(caloTowersToken_, caloCandidates);
761  mEvent.getByToken(caloCandViewToken_, calocandidates_);
762 
763 
764 
765  const reco::PFCandidateCollection *pfCandidateColl = pfCandidates.product();
766 
767  Int_t NPFpart = 0;
768  Int_t NCaloTower = 0;
769  Float_t pfPt = 0;
770  Float_t pfEta = 0;
771  Int_t pfID = 0;
772  Float_t pfPhi = 0;
773  Float_t caloPt = 0;
774  Float_t caloEta = 0;
775  Float_t caloPhi = 0;
776  Float_t SumPt_value = 0;
777 
778  double edge_pseudorapidity[etaBins_ +1] = {-5.191, -2.650, -2.043, -1.740, -1.479, -1.131, -0.783, -0.522, 0.522, 0.783, 1.131, 1.479, 1.740, 2.043, 2.650, 5.191 };
779 
780 
781  if(isCaloJet){
782 
783  Float_t SumCaloPt[etaBins_];
784  Float_t SumSquaredCaloPt[etaBins_];
785 
786  for(int i = 0;i<etaBins_;i++){
787 
788  SumCaloPt[i] = 0;
789  SumSquaredCaloPt[i] = 0;
790 
791  }
792 
793  for(unsigned icand = 0;icand<caloCandidates->size(); icand++){
794 
795  const CaloTower & tower = (*caloCandidates)[icand];
796  reco::CandidateViewRef ref(calocandidates_,icand);
797  if(tower.p4(vtx).Et() < 0.1) continue;
798 
799 
800  NCaloTower++;
801 
802  caloPt = tower.p4(vtx).Et();
803  caloEta = tower.p4(vtx).Eta();
804  caloPhi = tower.p4(vtx).Phi();
805 
806 
807 
808  for(size_t k = 0;k<nedge_pseudorapidity-1; k++){
809  if(caloEta >= edge_pseudorapidity[k] && caloEta < edge_pseudorapidity[k+1]){
810  SumCaloPt[k] = SumCaloPt[k] + caloPt;
811  SumSquaredCaloPt[k] = SumSquaredCaloPt[k] + caloPt*caloPt;
812  }// eta selection statement
813 
814  }// eta bin loop
815 
816  SumPt_value = SumPt_value + caloPt;
817 
818  mCaloPt->Fill(caloPt);
819  mCaloEta->Fill(caloEta);
820  mCaloPhi->Fill(caloPhi);
821 
822  }// calo tower candidate loop
823 
824  Float_t Evt_SumCaloPt = 0;
825 
826  Float_t Evt_SumSquaredCaloPt = 0;
827 
828 
829  mSumCaloPt_n5p191_n2p650->Fill(SumCaloPt[0]);
830  mSumCaloPt_n2p650_n2p043->Fill(SumCaloPt[1]);
831  mSumCaloPt_n2p043_n1p740->Fill(SumCaloPt[2]);
832  mSumCaloPt_n1p740_n1p479->Fill(SumCaloPt[3]);
833  mSumCaloPt_n1p479_n1p131->Fill(SumCaloPt[4]);
834  mSumCaloPt_n1p131_n0p783->Fill(SumCaloPt[5]);
835  mSumCaloPt_n0p783_n0p522->Fill(SumCaloPt[6]);
836  mSumCaloPt_n0p522_0p522->Fill(SumCaloPt[7]);
837  mSumCaloPt_0p522_0p783->Fill(SumCaloPt[8]);
838  mSumCaloPt_0p783_1p131->Fill(SumCaloPt[9]);
839  mSumCaloPt_1p131_1p479->Fill(SumCaloPt[10]);
840  mSumCaloPt_1p479_1p740->Fill(SumCaloPt[11]);
841  mSumCaloPt_1p740_2p043->Fill(SumCaloPt[12]);
842  mSumCaloPt_2p043_2p650->Fill(SumCaloPt[13]);
843  mSumCaloPt_2p650_5p191->Fill(SumCaloPt[14]);
844 
845  for(size_t k = 0;k<nedge_pseudorapidity-1;k++){
846 
847  Evt_SumCaloPt = Evt_SumCaloPt + SumCaloPt[k];
848 
849  Evt_SumSquaredCaloPt = Evt_SumSquaredCaloPt + SumSquaredCaloPt[k];
850 
851  }// eta bin loop
852 
853 
854  mSumCaloPt->Fill(Evt_SumCaloPt);
855 
856  mSumSquaredCaloPt->Fill(Evt_SumSquaredCaloPt);
857 
858  mSumCaloPt_HF->Fill(Evt_SumCaloPt,HF_energy);
859 
860  mNCalopart->Fill(NCaloTower);
861  mSumpt->Fill(SumPt_value);
862 
863  }// is calo jet
864 
865  if(isPFJet){
866 
867  Float_t SumPFPt[etaBins_];
868 
869  Float_t SumSquaredPFPt[etaBins_];
870 
871  for(int i = 0;i<etaBins_;i++){
872 
873  SumPFPt[i] = 0;
874  SumSquaredPFPt[i] = 0;
875 
876  }
877 
878  for(unsigned icand=0;icand<pfCandidateColl->size(); icand++){
879 
880  const reco::PFCandidate pfCandidate = pfCandidateColl->at(icand);
881  reco::CandidateViewRef ref(pfcandidates_,icand);
882 
883  if(pfCandidate.pt() < 0.5) continue;
884 
885 
886  NPFpart++;
887  pfPt = pfCandidate.pt();
888  pfEta = pfCandidate.eta();
889  pfPhi = pfCandidate.phi();
890  pfID = pfCandidate.particleId();
891 
892  bool inBarrel = false;
893  bool inEndcap = false;
894  bool inForward = false;
895 
896  if(fabs(pfEta)<BarrelEta) inBarrel = true;
897  if(fabs(pfEta)>=BarrelEta && fabs(pfEta)<EndcapEta) inEndcap = true;
898  if(fabs(pfEta)>=EndcapEta && fabs(pfEta)<ForwardEta) inForward = true;
899 
900  switch(pfID){
901  case 0 :
902  mPFCandpT_vs_eta_Unknown->Fill(pfPt, pfEta);
903  if(inBarrel) mPFCandpT_Barrel_Unknown->Fill(pfPt);
904  if(inEndcap) mPFCandpT_Endcap_Unknown->Fill(pfPt);
905  if(inForward) mPFCandpT_Forward_Unknown->Fill(pfPt);
906  case 1 :
907  mPFCandpT_vs_eta_ChargedHadron->Fill(pfPt, pfEta);
908  if(inBarrel) mPFCandpT_Barrel_ChargedHadron->Fill(pfPt);
909  if(inEndcap) mPFCandpT_Endcap_ChargedHadron->Fill(pfPt);
910  if(inForward) mPFCandpT_Forward_ChargedHadron->Fill(pfPt);
911  case 2 :
912  mPFCandpT_vs_eta_electron->Fill(pfPt, pfEta);
913  if(inBarrel) mPFCandpT_Barrel_electron->Fill(pfPt);
914  if(inEndcap) mPFCandpT_Endcap_electron->Fill(pfPt);
915  if(inForward) mPFCandpT_Forward_electron->Fill(pfPt);
916  case 3 :
917  mPFCandpT_vs_eta_muon->Fill(pfPt, pfEta);
918  if(inBarrel) mPFCandpT_Barrel_muon->Fill(pfPt);
919  if(inEndcap) mPFCandpT_Endcap_muon->Fill(pfPt);
920  if(inForward) mPFCandpT_Forward_muon->Fill(pfPt);
921  case 4 :
922  mPFCandpT_vs_eta_photon->Fill(pfPt, pfEta);
923  if(inBarrel) mPFCandpT_Barrel_photon->Fill(pfPt);
924  if(inEndcap) mPFCandpT_Endcap_photon->Fill(pfPt);
925  if(inForward) mPFCandpT_Forward_photon->Fill(pfPt);
926  case 5 :
927  mPFCandpT_vs_eta_NeutralHadron->Fill(pfPt, pfEta);
928  if(inBarrel) mPFCandpT_Barrel_NeutralHadron->Fill(pfPt);
929  if(inEndcap) mPFCandpT_Endcap_NeutralHadron->Fill(pfPt);
930  if(inForward) mPFCandpT_Forward_NeutralHadron->Fill(pfPt);
931  case 6 :
932  mPFCandpT_vs_eta_HadE_inHF->Fill(pfPt, pfEta);
933  if(inBarrel) mPFCandpT_Barrel_HadE_inHF->Fill(pfPt);
934  if(inEndcap) mPFCandpT_Endcap_HadE_inHF->Fill(pfPt);
935  if(inForward) mPFCandpT_Forward_HadE_inHF->Fill(pfPt);
936  case 7 :
937  mPFCandpT_vs_eta_EME_inHF->Fill(pfPt, pfEta);
938  if(inBarrel) mPFCandpT_Barrel_EME_inHF->Fill(pfPt);
939  if(inEndcap) mPFCandpT_Endcap_EME_inHF->Fill(pfPt);
940  if(inForward) mPFCandpT_Forward_EME_inHF->Fill(pfPt);
941  }
942 
943 
944 
945 
946  for(size_t k = 0;k<nedge_pseudorapidity-1; k++){
947  if(pfEta >= edge_pseudorapidity[k] && pfEta < edge_pseudorapidity[k+1]){
948  SumPFPt[k] = SumPFPt[k] + pfPt;
949 
950  SumSquaredPFPt[k] = SumSquaredPFPt[k] + pfPt*pfPt;
951 
952  }// eta selection statement
953 
954  }// eta bin loop
955 
956  SumPt_value = SumPt_value + pfPt;
957 
958  mPFPt->Fill(pfPt);
959  mPFEta->Fill(pfEta);
960  mPFPhi->Fill(pfPhi);
961 
962 
963  }// pf candidate loop
964 
965  Float_t Evt_SumPFPt = 0;
966 
967  Float_t Evt_SumSquaredPFPt = 0;
968 
969 
970  mSumPFPt_n5p191_n2p650->Fill(SumPFPt[0]);
971  mSumPFPt_n2p650_n2p043->Fill(SumPFPt[1]);
972  mSumPFPt_n2p043_n1p740->Fill(SumPFPt[2]);
973  mSumPFPt_n1p740_n1p479->Fill(SumPFPt[3]);
974  mSumPFPt_n1p479_n1p131->Fill(SumPFPt[4]);
975  mSumPFPt_n1p131_n0p783->Fill(SumPFPt[5]);
976  mSumPFPt_n0p783_n0p522->Fill(SumPFPt[6]);
977  mSumPFPt_n0p522_0p522->Fill(SumPFPt[7]);
978  mSumPFPt_0p522_0p783->Fill(SumPFPt[8]);
979  mSumPFPt_0p783_1p131->Fill(SumPFPt[9]);
980  mSumPFPt_1p131_1p479->Fill(SumPFPt[10]);
981  mSumPFPt_1p479_1p740->Fill(SumPFPt[11]);
982  mSumPFPt_1p740_2p043->Fill(SumPFPt[12]);
983  mSumPFPt_2p043_2p650->Fill(SumPFPt[13]);
984  mSumPFPt_2p650_5p191->Fill(SumPFPt[14]);
985 
986  for(size_t k = 0;k<nedge_pseudorapidity-1;k++){
987 
988  Evt_SumPFPt = Evt_SumPFPt + SumPFPt[k];
989 
990  Evt_SumSquaredPFPt = Evt_SumSquaredPFPt + SumSquaredPFPt[k];
991 
992  }// eta bin loop
993 
994  mSumPFPt->Fill(Evt_SumPFPt);
995 
996  mSumSquaredPFPt->Fill(Evt_SumSquaredPFPt);
997 
998  mSumPFPt_HF->Fill(Evt_SumPFPt,HF_energy);
999 
1000  mNPFpart->Fill(NPFpart);
1001  mSumpt->Fill(SumPt_value);
1002 
1003  }
1004 
1005  if (isCaloJet)
1006  {
1007  for (unsigned ijet=0; ijet<caloJets->size(); ijet++) recoJets.push_back((*caloJets)[ijet]);
1008  }
1009 
1010  if (isJPTJet)
1011  {
1012  for (unsigned ijet=0; ijet<jptJets->size(); ijet++) recoJets.push_back((*jptJets)[ijet]);
1013  }
1014 
1015  if (isPFJet) {
1016  if(std::string("Pu")==UEAlgo){
1017  for (unsigned ijet=0; ijet<basicJets->size();ijet++) recoJets.push_back((*basicJets)[ijet]);
1018  }
1019  }
1020 
1021  if (isCaloJet && !caloJets.isValid()) return;
1022  if (isJPTJet && !jptJets.isValid()) return;
1023  if (isPFJet){
1024  if(std::string("Pu")==UEAlgo){if(!basicJets.isValid()) return;}
1025  }
1026 
1027  int nJet_40 = 0;
1028 
1029  mNJets->Fill(recoJets.size());
1030 
1031  for (unsigned ijet=0; ijet<recoJets.size(); ijet++) {
1032 
1033  if (recoJets[ijet].pt() > mRecoJetPtThreshold) {
1034  //counting forward and barrel jets
1035  // get an idea of no of jets with pT>40 GeV
1036  if(recoJets[ijet].pt() > 40)
1037  nJet_40++;
1038 
1039  if (mEta) mEta->Fill(recoJets[ijet].eta());
1040  if (mjetpileup) mjetpileup->Fill(recoJets[ijet].pileup());
1041  if (mJetArea) mJetArea ->Fill(recoJets[ijet].jetArea());
1042  if (mPhi) mPhi ->Fill(recoJets[ijet].phi());
1043  if (mEnergy) mEnergy ->Fill(recoJets[ijet].energy());
1044  if (mP) mP ->Fill(recoJets[ijet].p());
1045  if (mPt) mPt ->Fill(recoJets[ijet].pt());
1046  if (mMass) mMass ->Fill(recoJets[ijet].mass());
1047  if (mConstituents) mConstituents->Fill(recoJets[ijet].nConstituents());
1048 
1049  }
1050  }
1051 
1052  if (mNJets_40) mNJets_40->Fill(nJet_40);
1053 
1054 
1055  // Gen level information:
1056  if (!mEvent.isRealData()){
1057 
1058  // Get ptHat
1059  //------------------------------------------------------------------------
1061  mEvent.getByToken(evtToken_, myGenEvt);
1062 
1063  if (myGenEvt.isValid()) {
1064  if(myGenEvt->hasBinningValues()){
1065  double ptHat = myGenEvt->binningValues()[0];
1066  if (mPtHat) mPtHat->Fill(ptHat);
1067  }
1068  }
1069  // Gen jets
1070  //------------------------------------------------------------------------
1072  mEvent.getByToken(genJetsToken_, genJets);
1073 
1074  if (!genJets.isValid()) return;
1075 
1076  for (GenJetCollection::const_iterator gjet=genJets->begin(); gjet!=genJets->end(); gjet++) {
1077  if(gjet->pt() > mMatchGenPtThreshold){
1078  if (mGenEta) mGenEta->Fill(gjet->eta());
1079  if (mGenPhi) mGenPhi->Fill(gjet->phi());
1080  if (mGenPt) mGenPt ->Fill(gjet->pt());
1081  }
1082  }
1083 
1084  if (!(mInputGenCollection.label().empty())) {
1085  for (GenJetCollection::const_iterator gjet=genJets->begin(); gjet!=genJets->end(); gjet++) {
1086  if (fabs(gjet->eta()) > 6.) continue; // Out of the detector
1087  if (gjet->pt() < mMatchGenPtThreshold) continue;
1088  if (recoJets.empty()) continue;
1089 
1090  bool inBarrel = false;
1091  bool inEndcap = false;
1092  bool inForward = false;
1093 
1094  if(fabs(gjet->eta())<BarrelEta) inBarrel = true;
1095  if(fabs(gjet->eta())>=BarrelEta && fabs(gjet->eta())<EndcapEta) inEndcap = true;
1096  if(fabs(gjet->eta())>=EndcapEta && fabs(gjet->eta())<ForwardEta) inForward = true;
1097 
1098  // pt response
1099  //------------------------------------------------------------
1100  int iMatch = -1;
1101  double deltaRBest = 999;
1102  double JetPtBest = 0;
1103  for (unsigned ijet=0; ijet<recoJets.size(); ++ijet) {
1104  double recoPt = recoJets[ijet].pt();
1105  if (recoPt > 10) {
1106  double delR = deltaR(gjet->eta(), gjet->phi(), recoJets[ijet].eta(), recoJets[ijet].phi());
1107  if (delR < deltaRBest) {
1108  deltaRBest = delR;
1109  JetPtBest = recoPt;
1110  iMatch = ijet;
1111  }
1112  }
1113  }
1114  if (iMatch<0) continue;
1115 
1116  //fillMatchHists(gjet->eta(), gjet->phi(), gjet->pt(), recoJets[iMatch].eta(), recoJets[iMatch].phi(), recoJets[iMatch].pt(), hibin);
1117  if(deltaRBest < mRThreshold){
1118  double genpt = gjet->pt();
1119  double geneta = gjet->eta();
1120  double response = JetPtBest / genpt;
1121  // Fill all the response histograms here: for each pT bin, eta region, centrality bin
1122 
1123  if(inBarrel) {
1124  if(isCentral)
1125  mPtRecoOverGen_GenPt_B_Cent_0_10->Fill(log10(genpt), response);
1126  if(ismidCentral)
1127  mPtRecoOverGen_GenPt_B_Cent_10_30->Fill(log10(genpt), response);
1128  if(ismidPeripheral)
1129  mPtRecoOverGen_GenPt_B_Cent_30_50->Fill(log10(genpt), response);
1130  if(isPeripheral)
1131  mPtRecoOverGen_GenPt_B_Cent_50_80->Fill(log10(genpt), response);
1132  }
1133  if(inEndcap) {
1134  if(isCentral)
1135  mPtRecoOverGen_GenPt_E_Cent_0_10->Fill(log10(genpt), response);
1136  if(ismidCentral)
1137  mPtRecoOverGen_GenPt_E_Cent_10_30->Fill(log10(genpt), response);
1138  if(ismidPeripheral)
1139  mPtRecoOverGen_GenPt_E_Cent_30_50->Fill(log10(genpt), response);
1140  if(isPeripheral)
1141  mPtRecoOverGen_GenPt_E_Cent_50_80->Fill(log10(genpt), response);
1142  }
1143  if(inForward) {
1144  if(isCentral)
1145  mPtRecoOverGen_GenPt_F_Cent_0_10->Fill(log10(genpt), response);
1146  if(ismidCentral)
1147  mPtRecoOverGen_GenPt_F_Cent_10_30->Fill(log10(genpt), response);
1148  if(ismidPeripheral)
1149  mPtRecoOverGen_GenPt_F_Cent_30_50->Fill(log10(genpt), response);
1150  if(isPeripheral)
1151  mPtRecoOverGen_GenPt_F_Cent_50_80->Fill(log10(genpt), response);
1152  }
1153 
1154  if( gjet->pt() >= 20 && gjet->pt() < 30 ){
1155  if(isCentral){
1156  mPtRecoOverGen_GenEta_20_30_Cent_0_10->Fill(geneta, response);
1157  if(inBarrel)
1159  if(inEndcap)
1161  if(inForward)
1163  }//
1164  if(ismidCentral){
1165  mPtRecoOverGen_GenEta_20_30_Cent_10_30->Fill(geneta, response);
1166  if(inBarrel)
1168  if(inEndcap)
1170  if(inForward)
1172  }//
1173  if(ismidPeripheral){
1174  mPtRecoOverGen_GenEta_20_30_Cent_30_50->Fill(geneta, response);
1175  if(inBarrel)
1177  if(inEndcap)
1179  if(inForward)
1181  }//
1182  if(isPeripheral){
1183  mPtRecoOverGen_GenEta_20_30_Cent_50_80->Fill(geneta, response);
1184  if(inBarrel)
1186  if(inEndcap)
1188  if(inForward)
1190  }//
1191  }// pt bin 20-30
1192 
1193  if( gjet->pt() >= 30 && gjet->pt() < 50 ){
1194  if(isCentral){
1195  mPtRecoOverGen_GenEta_30_50_Cent_0_10->Fill(geneta, response);
1196  if(inBarrel)
1198  if(inEndcap)
1200  if(inForward)
1202  }//
1203  if(ismidCentral){
1204  mPtRecoOverGen_GenEta_30_50_Cent_10_30->Fill(geneta, response);
1205  if(inBarrel)
1207  if(inEndcap)
1209  if(inForward)
1211  }//
1212  if(ismidPeripheral){
1213  mPtRecoOverGen_GenEta_30_50_Cent_30_50->Fill(geneta, response);
1214  if(inBarrel)
1216  if(inEndcap)
1218  if(inForward)
1220  }//
1221  if(isPeripheral){
1222  mPtRecoOverGen_GenEta_30_50_Cent_50_80->Fill(geneta, response);
1223  if(inBarrel)
1225  if(inEndcap)
1227  if(inForward)
1229  }//
1230  }// pt bin 30-50
1231 
1232  if( gjet->pt() >= 50 && gjet->pt() < 80 ){
1233  if(isCentral){
1234  mPtRecoOverGen_GenEta_50_80_Cent_0_10->Fill(geneta, response);
1235  if(inBarrel)
1237  if(inEndcap)
1239  if(inForward)
1241  }//
1242  if(ismidCentral){
1243  mPtRecoOverGen_GenEta_50_80_Cent_10_30->Fill(geneta, response);
1244  if(inBarrel)
1246  if(inEndcap)
1248  if(inForward)
1250  }//
1251  if(ismidPeripheral){
1252  mPtRecoOverGen_GenEta_50_80_Cent_30_50->Fill(geneta, response);
1253  if(inBarrel)
1255  if(inEndcap)
1257  if(inForward)
1259  }//
1260  if(isPeripheral){
1261  mPtRecoOverGen_GenEta_50_80_Cent_50_80->Fill(geneta, response);
1262  if(inBarrel)
1264  if(inEndcap)
1266  if(inForward)
1268  }//
1269  }// pt bin 50-80
1270 
1271  if( gjet->pt() >= 80 && gjet->pt() < 120 ){
1272  if(isCentral){
1273  mPtRecoOverGen_GenEta_80_120_Cent_0_10->Fill(geneta, response);
1274  if(inBarrel)
1276  if(inEndcap)
1278  if(inForward)
1280  }//
1281  if(ismidCentral){
1282  mPtRecoOverGen_GenEta_80_120_Cent_10_30->Fill(geneta, response);
1283  if(inBarrel)
1285  if(inEndcap)
1287  if(inForward)
1289  }//
1290  if(ismidPeripheral){
1291  mPtRecoOverGen_GenEta_80_120_Cent_30_50->Fill(geneta, response);
1292  if(inBarrel)
1294  if(inEndcap)
1296  if(inForward)
1298  }//
1299  if(isPeripheral){
1300  mPtRecoOverGen_GenEta_80_120_Cent_50_80->Fill(geneta, response);
1301  if(inBarrel)
1303  if(inEndcap)
1305  if(inForward)
1307  }//
1308  }// pt bin 80-120
1309 
1310  if( gjet->pt() >= 120 && gjet->pt() < 180 ){
1311  if(isCentral){
1312  mPtRecoOverGen_GenEta_120_180_Cent_0_10->Fill(geneta, response);
1313  if(inBarrel)
1315  if(inEndcap)
1317  if(inForward)
1319  }//
1320  if(ismidCentral){
1322  if(inBarrel)
1324  if(inEndcap)
1326  if(inForward)
1328  }//
1329  if(ismidPeripheral){
1331  if(inBarrel)
1333  if(inEndcap)
1335  if(inForward)
1337  }//
1338  if(isPeripheral){
1340  if(inBarrel)
1342  if(inEndcap)
1344  if(inForward)
1346  }//
1347  }// pt bin 120-180
1348 
1349  if( gjet->pt() >= 180 && gjet->pt() < 300 ){
1350  if(isCentral){
1351  mPtRecoOverGen_GenEta_180_300_Cent_0_10->Fill(geneta, response);
1352  if(inBarrel)
1354  if(inEndcap)
1356  if(inForward)
1358  }//
1359  if(ismidCentral){
1361  if(inBarrel)
1363  if(inEndcap)
1365  if(inForward)
1367  }//
1368  if(ismidPeripheral){
1370  if(inBarrel)
1372  if(inEndcap)
1374  if(inForward)
1376  }//
1377  if(isPeripheral){
1379  if(inBarrel)
1381  if(inEndcap)
1383  if(inForward)
1385  }//
1386  }// pt bin 180-300
1387 
1388  if(gjet->pt() >= 300){
1389  if(isCentral){
1390  mPtRecoOverGen_GenEta_300_Inf_Cent_0_10->Fill(geneta, response);
1391  if(inBarrel)
1393  if(inEndcap)
1395  if(inForward)
1397  }//
1398  if(ismidCentral){
1400  if(inBarrel)
1402  if(inEndcap)
1404  if(inForward)
1406  }//
1407  if(ismidPeripheral){
1409  if(inBarrel)
1411  if(inEndcap)
1413  if(inForward)
1415  }//
1416  if(isPeripheral){
1418  if(inBarrel)
1420  if(inEndcap)
1422  if(inForward)
1424  }//
1425  }// pt bin 300-Inf
1426 
1427  }// delta R < mRthreshold
1428 
1429  }// gen jet collection loop
1430 
1431 
1432  }// not empty gen collection
1433 
1434  }// is the event real
1435 
1436 }
1437 
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
edm::EDGetTokenT< CaloTowerCollection > caloTowersToken_
const Double_t EndcapEta
MonitorElement * mPtRecoOverGen_F_30_50_Cent_30_50
MonitorElement * mPtRecoOverGen_GenEta_50_80_Cent_30_50
MonitorElement * mNCalopart
MonitorElement * mCaloArea
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:160
MonitorElement * mSumCaloPt_n0p522_0p522
MonitorElement * mEnergy
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
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:64
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
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:118
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
nConstituents
Definition: jets_cff.py:165
MonitorElement * mPFCandpT_Endcap_HadE_inHF
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
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_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:279
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:81
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:136
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:43
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