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  if(std::string("Vs")==UEAlgo) pfJetsToken_ = consumes<reco::PFJetCollection>(mInputCollection);
42  }
43 
44  genJetsToken_ = consumes<reco::GenJetCollection>(edm::InputTag(mInputGenCollection));
45  evtToken_ = consumes<GenEventInfoProduct>(edm::InputTag("generator"));
46  pfCandToken_ = consumes<reco::PFCandidateCollection>(mInputPFCandCollection);
47  pfCandViewToken_ = consumes<reco::CandidateView>(mInputPFCandCollection);
48  caloCandViewToken_ = consumes<reco::CandidateView>(edm::InputTag("towerMaker"));
49  backgrounds_ = consumes<edm::ValueMap<reco::VoronoiBackground> >(Background);
50  backgrounds_value_ = consumes<std::vector<float> >(Background);
51  centralityTag_ = iConfig.getParameter<InputTag>("centralitycollection");
52  centralityToken = consumes<reco::Centrality>(centralityTag_);
53 
54  centralityBinTag_ = (iConfig.getParameter<edm::InputTag> ("centralitybincollection"));
55  centralityBinToken = consumes<int>(centralityBinTag_);
56  hiVertexToken_ = consumes<std::vector<reco::Vertex> >(edm::InputTag("hiSelectedVertex"));
57 
58  // need to initialize the PF cand histograms : which are also event variables
59  if(isPFJet){
60  mNPFpart = 0;
61  mPFPt = 0;
62  mPFEta = 0;
63  mPFPhi = 0;
64  mPFVsPt = 0;
65  mPFVsPtInitial = 0;
66  mPFArea = 0;
67  mSumPFVsPt = 0;
69  mSumPFPt = 0;
72  mSumSquaredPFPt = 0;
74  mSumPFVsPt_HF = 0;
75  mSumPFPt_HF = 0;
76 
92 
108 
124 
125  mPFCandpT_vs_eta_Unknown = 0; // pf id 0
126  mPFCandpT_vs_eta_ChargedHadron = 0; // pf id - 1
127  mPFCandpT_vs_eta_electron = 0; // pf id - 2
128  mPFCandpT_vs_eta_muon = 0; // pf id - 3
129  mPFCandpT_vs_eta_photon = 0; // pf id - 4
130  mPFCandpT_vs_eta_NeutralHadron = 0; // pf id - 5
131  mPFCandpT_vs_eta_HadE_inHF = 0; // pf id - 6
132  mPFCandpT_vs_eta_EME_inHF = 0; // pf id - 7
133 
134  mPFCandpT_Barrel_Unknown = 0; // pf id 0
135  mPFCandpT_Barrel_ChargedHadron = 0; // pf id - 1
136  mPFCandpT_Barrel_electron = 0; // pf id - 2
137  mPFCandpT_Barrel_muon = 0; // pf id - 3
138  mPFCandpT_Barrel_photon = 0; // pf id - 4
139  mPFCandpT_Barrel_NeutralHadron = 0; // pf id - 5
140  mPFCandpT_Barrel_HadE_inHF = 0; // pf id - 6
141  mPFCandpT_Barrel_EME_inHF = 0; // pf id - 7
142 
143  mPFCandpT_Endcap_Unknown = 0; // pf id 0
144  mPFCandpT_Endcap_ChargedHadron = 0; // pf id - 1
145  mPFCandpT_Endcap_electron = 0; // pf id - 2
146  mPFCandpT_Endcap_muon = 0; // pf id - 3
147  mPFCandpT_Endcap_photon = 0; // pf id - 4
148  mPFCandpT_Endcap_NeutralHadron = 0; // pf id - 5
149  mPFCandpT_Endcap_HadE_inHF = 0; // pf id - 6
150  mPFCandpT_Endcap_EME_inHF = 0; // pf id - 7
151 
152  mPFCandpT_Forward_Unknown = 0; // pf id 0
153  mPFCandpT_Forward_ChargedHadron = 0; // pf id - 1
154  mPFCandpT_Forward_electron = 0; // pf id - 2
155  mPFCandpT_Forward_muon = 0; // pf id - 3
156  mPFCandpT_Forward_photon = 0; // pf id - 4
157  mPFCandpT_Forward_NeutralHadron = 0; // pf id - 5
158  mPFCandpT_Forward_HadE_inHF = 0; // pf id - 6
159  mPFCandpT_Forward_EME_inHF = 0; // pf id - 7
160 
161  }
162  if(isCaloJet){
163  mNCalopart = 0;
164  mCaloPt = 0;
165  mCaloEta = 0;
166  mCaloPhi = 0;
167  mCaloVsPt = 0;
168  mCaloVsPtInitial = 0;
169  mCaloArea = 0;
170 
171  mSumCaloVsPt = 0;
173  mSumCaloPt = 0;
176  mSumSquaredCaloPt = 0;
178  mSumCaloVsPt_HF = 0;
179  mSumCaloPt_HF = 0;
180 
196 
212 
228 
229  }
230  mSumpt = 0;
231 
232 
233 
234  // Events variables
235  mNvtx = 0;
236  mHF = 0;
237 
238  // added Jan 12th 2015
239 
240  mDeltapT = 0;
241  mDeltapT_eta = 0;
242 
243  // Jet parameters
244  mEta = 0;
245  mPhi = 0;
246  mEnergy = 0;
247  mP = 0;
248  mPt = 0;
249  mMass = 0;
250  mConstituents = 0;
251  mJetArea = 0;
252  mjetpileup = 0;
253  mNJets_40 = 0;
254  mNJets = 0;
255 
256  mGenEta = 0;
257  mGenPhi = 0;
258  mGenPt = 0;
259  mPtHat = 0;
260 
282 
304 
326 
348 
361 
369 
377 
385 
393 
394 
395 }
396 
398 {
399 
400  ibooker.setCurrentFolder("JetMET/JetValidation/"+mInputCollection.label());
401 
402  double log10PtMin = 0.50;
403  double log10PtMax = 3.75;
404  int log10PtBins = 26;
405 
406  static const size_t ncms_hcal_edge_pseudorapidity = 82 + 1;
407  static const double cms_hcal_edge_pseudorapidity[ncms_hcal_edge_pseudorapidity] = {
408  -5.191, -4.889, -4.716, -4.538, -4.363, -4.191, -4.013,
409  -3.839, -3.664, -3.489, -3.314, -3.139, -2.964, -2.853,
410  -2.650, -2.500, -2.322, -2.172, -2.043, -1.930, -1.830,
411  -1.740, -1.653, -1.566, -1.479, -1.392, -1.305, -1.218,
412  -1.131, -1.044, -0.957, -0.879, -0.783, -0.696, -0.609,
413  -0.522, -0.435, -0.348, -0.261, -0.174, -0.087,
414  0.000,
415  0.087, 0.174, 0.261, 0.348, 0.435, 0.522, 0.609,
416  0.696, 0.783, 0.879, 0.957, 1.044, 1.131, 1.218,
417  1.305, 1.392, 1.479, 1.566, 1.653, 1.740, 1.830,
418  1.930, 2.043, 2.172, 2.322, 2.500, 2.650, 2.853,
419  2.964, 3.139, 3.314, 3.489, 3.664, 3.839, 4.013,
420  4.191, 4.363, 4.538, 4.716, 4.889, 5.191
421  };
422 
423  double etaRange[91] = {-6.0, -5.8, -5.6, -5.4, -5.2, -5.0, -4.8, -4.6, -4.4, -4.2,
424  -4.0, -3.8, -3.6, -3.4, -3.2, -3.0, -2.9, -2.8, -2.7, -2.6,
425  -2.5, -2.4, -2.3, -2.2, -2.1, -2.0, -1.9, -1.8, -1.7, -1.6,
426  -1.5, -1.4, -1.3, -1.2, -1.1, -1.0, -0.9, -0.8, -0.7, -0.6,
427  -0.5, -0.4, -0.3, -0.2, -0.1,
428  0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
429  1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9,
430  2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9,
431  3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.4, 4.6, 4.8,
432  5.0, 5.2, 5.4, 5.6, 5.8, 6.0};
433 
434  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 };
435 
436  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);
437  TH2F *h2D_etabins_vs_pt = new TH2F("h2D_etabins_vs_pt","etaBins (x axis), sum pt (y axis)",etaBins_,edge_pseudorapidity,10000,-1000,1000);
438  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());
439  TH2F *h2D_pfcand_etabins_vs_pt = new TH2F("h2D_etabins_vs_pt",";#eta;sum p_{T}",etaBins_,edge_pseudorapidity,300, 0, 300);
440 
441  if(isPFJet){
442 
443  mNPFpart = ibooker.book1D("NPFpart","No of particle flow candidates",1000,0,10000);
444  mPFPt = ibooker.book1D("PFPt","PF candidate p_{T}",1000,-5000,5000);
445  mPFEta = ibooker.book1D("PFEta","PF candidate #eta",120,-6,6);
446  mPFPhi = ibooker.book1D("PFPhi","PF candidate #phi",70,-3.5,3.5);
447  mPFVsPt = ibooker.book1D("PFVsPt","Vs PF candidate p_{T}",1000,-5000,5000);
448  mPFVsPtInitial = ibooker.book1D("PFVsPtInitial","Vs background subtracted PF candidate p_{T}",1000,-5000,5000);
449  mPFArea = ibooker.book1D("PFArea","VS PF candidate area",100,0,4);
450 
451  mSumPFVsPt = ibooker.book1D("SumPFVsPt","Sum of final PF VS p_{T}",1000,-10000,10000);
452  mSumPFVsPtInitial= ibooker.book1D("SumPFVsPtInitial","Sum PF VS p_{T} after subtraction",1000,-10000,10000);
453  mSumPFPt = ibooker.book1D("SumPFPt","Sum of initial PF p_{T}",1000,-10000,10000);
454 
455  mSumSquaredPFVsPt = ibooker.book1D("SumSquaredPFVsPt","Sum PF Vs p_{T} square",10000,0,10000);
456  mSumSquaredPFVsPtInitial= ibooker.book1D("SumSquaredPFVsPtInitial","Sum PF Vs p_{T} square after subtraction ",10000,0,10000);
457  mSumSquaredPFPt = ibooker.book1D("SumSquaredPFPt","Sum of initial PF p_{T} squared",10000,0,10000);
458 
459  mSumPFVsPtInitial_HF = ibooker.book2D("SumPFVsPtInitial_HF","HF Energy (y axis) vs Sum PF Vs p_{T} before subtraction (x axis)",1000,-1000,1000,1000,0,10000);
460  mSumPFVsPt_HF = ibooker.book2D("SumPFVsPt_HF","HF energy (y axis) vs Sum PF Vs p_{T} final (x axis)",1000,-1000,1000,1000,0,10000);
461  mSumPFPt_HF = ibooker.book2D("SumPFPt_HF","HF energy (y axis) vs Sum initial PF p_{T} (x axis)",1000,-1000,1000,1000,0,10000);
462 
463  mSumPFVsPtInitial_n5p191_n2p650 = ibooker.book1D("mSumPFVsPtInitial_n5p191_n2p650","Sum PFVsPt Initial variable in the eta range -5.191 to -2.650",1000,-5000,5000);
464  mSumPFVsPtInitial_n2p650_n2p043 = ibooker.book1D("mSumPFVsPtInitial_n2p650_n2p043","Sum PFVsPt Initial variable in the eta range -2.650 to -2.043 ",1000,-5000,5000);
465  mSumPFVsPtInitial_n2p043_n1p740 = ibooker.book1D("mSumPFVsPtInitial_n2p043_n1p740","Sum PFVsPt Initial variable in the eta range -2.043 to -1.740",1000,-1000,1000);
466  mSumPFVsPtInitial_n1p740_n1p479 = ibooker.book1D("mSumPFVsPtInitial_n1p740_n1p479","Sum PFVsPt Initial variable in the eta range -1.740 to -1.479",1000,-1000,1000);
467  mSumPFVsPtInitial_n1p479_n1p131 = ibooker.book1D("mSumPFVsPtInitial_n1p479_n1p131","Sum PFVsPt Initial variable in the eta range -1.479 to -1.131",1000,-1000,1000);
468  mSumPFVsPtInitial_n1p131_n0p783 = ibooker.book1D("mSumPFVsPtInitial_n1p131_n0p783","Sum PFVsPt Initial variable in the eta range -1.131 to -0.783",1000,-1000,1000);
469  mSumPFVsPtInitial_n0p783_n0p522 = ibooker.book1D("mSumPFVsPtInitial_n0p783_n0p522","Sum PFVsPt Initial variable in the eta range -0.783 to -0.522",1000,-1000,1000);
470  mSumPFVsPtInitial_n0p522_0p522 = ibooker.book1D("mSumPFVsPtInitial_n0p522_0p522","Sum PFVsPt Initial variable in the eta range -0.522 to 0.522",1000,-1000,1000);
471  mSumPFVsPtInitial_0p522_0p783 = ibooker.book1D("mSumPFVsPtInitial_0p522_0p783","Sum PFVsPt Initial variable in the eta range 0.522 to 0.783",1000,-1000,1000);
472  mSumPFVsPtInitial_0p783_1p131 = ibooker.book1D("mSumPFVsPtInitial_0p783_1p131","Sum PFVsPt Initial variable in the eta range 0.783 to 1.131",1000,-1000,1000);
473  mSumPFVsPtInitial_1p131_1p479 = ibooker.book1D("mSumPFVsPtInitial_1p131_1p479","Sum PFVsPt Initial variable in the eta range 1.131 to 1.479",1000,-1000,1000);
474  mSumPFVsPtInitial_1p479_1p740 = ibooker.book1D("mSumPFVsPtInitial_1p479_1p740","Sum PFVsPt Initial variable in the eta range 1.479 to 1.740",1000,-1000,1000);
475  mSumPFVsPtInitial_1p740_2p043 = ibooker.book1D("mSumPFVsPtInitial_1p740_2p043","Sum PFVsPt Initial variable in the eta range 1.740 to 2.043",1000,-1000,1000);
476  mSumPFVsPtInitial_2p043_2p650 = ibooker.book1D("mSumPFVsPtInitial_2p043_2p650","Sum PFVsPt Initial variable in the eta range 2.043 to 2.650",1000,-5000,5000);
477  mSumPFVsPtInitial_2p650_5p191 = ibooker.book1D("mSumPFVsPtInitial_2p650_5p191","Sum PFVsPt Initial variable in the eta range 2.650 to 5.191",1000,-5000,5000);
478 
479  mSumPFVsPt_n5p191_n2p650 = ibooker.book1D("mSumPFVsPt_n5p191_n2p650","Sum PFVsPt variable in the eta range -5.191 to -2.650",1000,-5000,5000);
480  mSumPFVsPt_n2p650_n2p043 = ibooker.book1D("mSumPFVsPt_n2p650_n2p043","Sum PFVsPt variable in the eta range -2.650 to -2.043 ",1000,-5000,5000);
481  mSumPFVsPt_n2p043_n1p740 = ibooker.book1D("mSumPFVsPt_n2p043_n1p740","Sum PFVsPt variable in the eta range -2.043 to -1.740",1000,-1000,1000);
482  mSumPFVsPt_n1p740_n1p479 = ibooker.book1D("mSumPFVsPt_n1p740_n1p479","Sum PFVsPt variable in the eta range -1.740 to -1.479",1000,-1000,1000);
483  mSumPFVsPt_n1p479_n1p131 = ibooker.book1D("mSumPFVsPt_n1p479_n1p131","Sum PFVsPt variable in the eta range -1.479 to -1.131",1000,-1000,1000);
484  mSumPFVsPt_n1p131_n0p783 = ibooker.book1D("mSumPFVsPt_n1p131_n0p783","Sum PFVsPt variable in the eta range -1.131 to -0.783",1000,-1000,1000);
485  mSumPFVsPt_n0p783_n0p522 = ibooker.book1D("mSumPFVsPt_n0p783_n0p522","Sum PFVsPt variable in the eta range -0.783 to -0.522",1000,-1000,1000);
486  mSumPFVsPt_n0p522_0p522 = ibooker.book1D("mSumPFVsPt_n0p522_0p522","Sum PFVsPt variable in the eta range -0.522 to 0.522",1000,-1000,1000);
487  mSumPFVsPt_0p522_0p783 = ibooker.book1D("mSumPFVsPt_0p522_0p783","Sum PFVsPt variable in the eta range 0.522 to 0.783",1000,-1000,1000);
488  mSumPFVsPt_0p783_1p131 = ibooker.book1D("mSumPFVsPt_0p783_1p131","Sum PFVsPt variable in the eta range 0.783 to 1.131",1000,-1000,1000);
489  mSumPFVsPt_1p131_1p479 = ibooker.book1D("mSumPFVsPt_1p131_1p479","Sum PFVsPt variable in the eta range 1.131 to 1.479",1000,-1000,1000);
490  mSumPFVsPt_1p479_1p740 = ibooker.book1D("mSumPFVsPt_1p479_1p740","Sum PFVsPt variable in the eta range 1.479 to 1.740",1000,-1000,1000);
491  mSumPFVsPt_1p740_2p043 = ibooker.book1D("mSumPFVsPt_1p740_2p043","Sum PFVsPt variable in the eta range 1.740 to 2.043",1000,-1000,1000);
492  mSumPFVsPt_2p043_2p650 = ibooker.book1D("mSumPFVsPt_2p043_2p650","Sum PFVsPt variable in the eta range 2.043 to 2.650",1000,-5000,5000);
493  mSumPFVsPt_2p650_5p191 = ibooker.book1D("mSumPFVsPt_2p650_5p191","Sum PFVsPt variable in the eta range 2.650 to 5.191",1000,-5000,5000);
494 
495  mSumPFPt_n5p191_n2p650 = ibooker.book1D("mSumPFPt_n5p191_n2p650","Sum PFPt in the eta range -5.191 to -2.650",1000,-5000,5000);
496  mSumPFPt_n2p650_n2p043 = ibooker.book1D("mSumPFPt_n2p650_n2p043","Sum PFPt in the eta range -2.650 to -2.043 ",1000,-5000,5000);
497  mSumPFPt_n2p043_n1p740 = ibooker.book1D("mSumPFPt_n2p043_n1p740","Sum PFPt in the eta range -2.043 to -1.740",1000,-1000,1000);
498  mSumPFPt_n1p740_n1p479 = ibooker.book1D("mSumPFPt_n1p740_n1p479","Sum PFPt in the eta range -1.740 to -1.479",1000,-1000,1000);
499  mSumPFPt_n1p479_n1p131 = ibooker.book1D("mSumPFPt_n1p479_n1p131","Sum PFPt in the eta range -1.479 to -1.131",1000,-1000,1000);
500  mSumPFPt_n1p131_n0p783 = ibooker.book1D("mSumPFPt_n1p131_n0p783","Sum PFPt in the eta range -1.131 to -0.783",1000,-1000,1000);
501  mSumPFPt_n0p783_n0p522 = ibooker.book1D("mSumPFPt_n0p783_n0p522","Sum PFPt in the eta range -0.783 to -0.522",1000,-1000,1000);
502  mSumPFPt_n0p522_0p522 = ibooker.book1D("mSumPFPt_n0p522_0p522","Sum PFPt in the eta range -0.522 to 0.522",1000,-1000,1000);
503  mSumPFPt_0p522_0p783 = ibooker.book1D("mSumPFPt_0p522_0p783","Sum PFPt in the eta range 0.522 to 0.783",1000,-1000,1000);
504  mSumPFPt_0p783_1p131 = ibooker.book1D("mSumPFPt_0p783_1p131","Sum PFPt in the eta range 0.783 to 1.131",1000,-1000,1000);
505  mSumPFPt_1p131_1p479 = ibooker.book1D("mSumPFPt_1p131_1p479","Sum PFPt in the eta range 1.131 to 1.479",1000,-1000,1000);
506  mSumPFPt_1p479_1p740 = ibooker.book1D("mSumPFPt_1p479_1p740","Sum PFPt in the eta range 1.479 to 1.740",1000,-1000,1000);
507  mSumPFPt_1p740_2p043 = ibooker.book1D("mSumPFPt_1p740_2p043","Sum PFPt in the eta range 1.740 to 2.043",1000,-1000,1000);
508  mSumPFPt_2p043_2p650 = ibooker.book1D("mSumPFPt_2p043_2p650","Sum PFPt in the eta range 2.043 to 2.650",1000,-5000,5000);
509  mSumPFPt_2p650_5p191 = ibooker.book1D("mSumPFPt_2p650_5p191","Sum PFPt in the eta range 2.650 to 5.191",1000,-5000,5000);
510 
511  mPFCandpT_vs_eta_Unknown = ibooker.book2D("PF_cand_X_unknown",h2D_pfcand_etabins_vs_pt); // pf id 0
512  mPFCandpT_vs_eta_ChargedHadron = ibooker.book2D("PF_cand_chargedHad",h2D_pfcand_etabins_vs_pt); // pf id - 1
513  mPFCandpT_vs_eta_electron = ibooker.book2D("PF_cand_electron",h2D_pfcand_etabins_vs_pt); // pf id - 2
514  mPFCandpT_vs_eta_muon = ibooker.book2D("PF_cand_muon",h2D_pfcand_etabins_vs_pt); // pf id - 3
515  mPFCandpT_vs_eta_photon = ibooker.book2D("PF_cand_photon",h2D_pfcand_etabins_vs_pt); // pf id - 4
516  mPFCandpT_vs_eta_NeutralHadron = ibooker.book2D("PF_cand_neutralHad",h2D_pfcand_etabins_vs_pt); // pf id - 5
517  mPFCandpT_vs_eta_HadE_inHF = ibooker.book2D("PF_cand_HadEner_inHF",h2D_pfcand_etabins_vs_pt); // pf id - 6
518  mPFCandpT_vs_eta_EME_inHF = ibooker.book2D("PF_cand_EMEner_inHF",h2D_pfcand_etabins_vs_pt); // pf id - 7
519 
520  mPFCandpT_Barrel_Unknown = ibooker.book1D("mPFCandpT_Barrel_Unknown",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 0
521  mPFCandpT_Barrel_ChargedHadron = ibooker.book1D("mPFCandpT_Barrel_ChargedHadron",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 1
522  mPFCandpT_Barrel_electron = ibooker.book1D("mPFCandpT_Barrel_electron",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 2
523  mPFCandpT_Barrel_muon = ibooker.book1D("mPFCandpT_Barrel_muon",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 3
524  mPFCandpT_Barrel_photon = ibooker.book1D("mPFCandpT_Barrel_photon",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 4
525  mPFCandpT_Barrel_NeutralHadron = ibooker.book1D("mPFCandpT_Barrel_NeutralHadron",Form(";PF candidate p_{T}, |#eta|<%2.2f; counts", BarrelEta),300, 0, 300); // pf id - 5
526  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
527  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
528 
529  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
530  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
531  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
532  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
533  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
534  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
535  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
536  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
537 
538  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
539  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
540  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
541  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
542  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
543  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
544  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
545  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
546 
547 
548  }
549 
550  if(isCaloJet){
551 
552  mNCalopart = ibooker.book1D("NCalopart","No of particle flow candidates",1000,0,10000);
553  mCaloPt = ibooker.book1D("CaloPt","Calo candidate p_{T}",1000,-5000,5000);
554  mCaloEta = ibooker.book1D("CaloEta","Calo candidate #eta",120,-6,6);
555  mCaloPhi = ibooker.book1D("CaloPhi","Calo candidate #phi",70,-3.5,3.5);
556  mCaloVsPt = ibooker.book1D("CaloVsPt","Vs Calo candidate p_{T}",1000,-5000,5000);
557  mCaloVsPtInitial = ibooker.book1D("CaloVsPtInitial","Vs background subtracted Calo candidate p_{T}",1000,-5000,5000);
558  mCaloArea = ibooker.book1D("CaloArea","VS Calo candidate area",100,0,4);
559 
560  mSumCaloVsPt = ibooker.book1D("SumCaloVsPt","Sum of final Calo VS p_{T} ",1000,-10000,10000);
561  mSumCaloVsPtInitial= ibooker.book1D("SumCaloVsPtInitial","Sum Calo VS p_{T} after subtraction",1000,-10000,10000);
562  mSumCaloPt = ibooker.book1D("SumCaloPt","Sum Calo p_{T}",1000,-10000,10000);
563 
564  mSumSquaredCaloVsPt = ibooker.book1D("SumSquaredCaloVsPt","Sum of final Calo VS p_{T} squared",10000,0,10000);
565  mSumSquaredCaloVsPtInitial= ibooker.book1D("SumSquaredCaloVsPtInitial","Sum of subtracted Calo VS p_{T} squared",10000,0,10000);
566  mSumSquaredCaloPt = ibooker.book1D("SumSquaredCaloPt","Sum of initial Calo tower p_{T} squared",10000,0,10000);
567 
568  mSumCaloVsPtInitial_HF = ibooker.book2D("SumCaloVsPtInitial_HF","HF Energy (y axis) vs Sum Calo Vs p_{T} before subtraction (x axis)",1000,-1000,1000,1000,0,10000);
569  mSumCaloVsPt_HF = ibooker.book2D("SumCaloVsPt_HF","HF Energy (y axis) vs Sum Calo Vs p_{T} (x axis)",1000,-1000,1000,1000,0,10000);
570  mSumCaloPt_HF = ibooker.book2D("SumCaloPt_HF","HF Energy (y axis) vs Sum Calo tower p_{T}",1000,-1000,1000,1000,0,10000);
571 
572  mSumCaloVsPtInitial_n5p191_n2p650 = ibooker.book1D("mSumCaloVsPtInitial_n5p191_n2p650","Sum CaloVsPt Initial variable in the eta range -5.191 to -2.650",1000,-5000,5000);
573  mSumCaloVsPtInitial_n2p650_n2p043 = ibooker.book1D("mSumCaloVsPtInitial_n2p650_n2p043","Sum CaloVsPt Initial variable in the eta range -2.650 to -2.043 ",1000,-5000,5000);
574  mSumCaloVsPtInitial_n2p043_n1p740 = ibooker.book1D("mSumCaloVsPtInitial_n2p043_n1p740","Sum CaloVsPt Initial variable in the eta range -2.043 to -1.740",1000,-1000,1000);
575  mSumCaloVsPtInitial_n1p740_n1p479 = ibooker.book1D("mSumCaloVsPtInitial_n1p740_n1p479","Sum CaloVsPt Initial variable in the eta range -1.740 to -1.479",1000,-1000,1000);
576  mSumCaloVsPtInitial_n1p479_n1p131 = ibooker.book1D("mSumCaloVsPtInitial_n1p479_n1p131","Sum CaloVsPt Initial variable in the eta range -1.479 to -1.131",1000,-1000,1000);
577  mSumCaloVsPtInitial_n1p131_n0p783 = ibooker.book1D("mSumCaloVsPtInitial_n1p131_n0p783","Sum CaloVsPt Initial variable in the eta range -1.131 to -0.783",1000,-1000,1000);
578  mSumCaloVsPtInitial_n0p783_n0p522 = ibooker.book1D("mSumCaloVsPtInitial_n0p783_n0p522","Sum CaloVsPt Initial variable in the eta range -0.783 to -0.522",1000,-1000,1000);
579  mSumCaloVsPtInitial_n0p522_0p522 = ibooker.book1D("mSumCaloVsPtInitial_n0p522_0p522","Sum CaloVsPt Initial variable in the eta range -0.522 to 0.522",1000,-1000,1000);
580  mSumCaloVsPtInitial_0p522_0p783 = ibooker.book1D("mSumCaloVsPtInitial_0p522_0p783","Sum CaloVsPt Initial variable in the eta range 0.522 to 0.783",1000,-1000,1000);
581  mSumCaloVsPtInitial_0p783_1p131 = ibooker.book1D("mSumCaloVsPtInitial_0p783_1p131","Sum CaloVsPt Initial variable in the eta range 0.783 to 1.131",1000,-1000,1000);
582  mSumCaloVsPtInitial_1p131_1p479 = ibooker.book1D("mSumCaloVsPtInitial_1p131_1p479","Sum CaloVsPt Initial variable in the eta range 1.131 to 1.479",1000,-1000,1000);
583  mSumCaloVsPtInitial_1p479_1p740 = ibooker.book1D("mSumCaloVsPtInitial_1p479_1p740","Sum CaloVsPt Initial variable in the eta range 1.479 to 1.740",1000,-1000,1000);
584  mSumCaloVsPtInitial_1p740_2p043 = ibooker.book1D("mSumCaloVsPtInitial_1p740_2p043","Sum CaloVsPt Initial variable in the eta range 1.740 to 2.043",1000,-1000,1000);
585  mSumCaloVsPtInitial_2p043_2p650 = ibooker.book1D("mSumCaloVsPtInitial_2p043_2p650","Sum CaloVsPt Initial variable in the eta range 2.043 to 2.650",1000,-5000,5000);
586  mSumCaloVsPtInitial_2p650_5p191 = ibooker.book1D("mSumCaloVsPtInitial_2p650_5p191","Sum CaloVsPt Initial variable in the eta range 2.650 to 5.191",1000,-5000,5000);
587 
588  mSumCaloVsPt_n5p191_n2p650 = ibooker.book1D("mSumCaloVsPt_n5p191_n2p650","Sum CaloVsPt variable in the eta range -5.191 to -2.650",1000,-5000,5000);
589  mSumCaloVsPt_n2p650_n2p043 = ibooker.book1D("mSumCaloVsPt_n2p650_n2p043","Sum CaloVsPt variable in the eta range -2.650 to -2.043",1000,-5000,5000);
590  mSumCaloVsPt_n2p043_n1p740 = ibooker.book1D("mSumCaloVsPt_n2p043_n1p740","Sum CaloVsPt variable in the eta range -2.043 to -1.740",1000,-1000,1000);
591  mSumCaloVsPt_n1p740_n1p479 = ibooker.book1D("mSumCaloVsPt_n1p740_n1p479","Sum CaloVsPt variable in the eta range -1.740 to -1.479",1000,-1000,1000);
592  mSumCaloVsPt_n1p479_n1p131 = ibooker.book1D("mSumCaloVsPt_n1p479_n1p131","Sum CaloVsPt variable in the eta range -1.479 to -1.131",1000,-1000,1000);
593  mSumCaloVsPt_n1p131_n0p783 = ibooker.book1D("mSumCaloVsPt_n1p131_n0p783","Sum CaloVsPt variable in the eta range -1.131 to -0.783",1000,-1000,1000);
594  mSumCaloVsPt_n0p783_n0p522 = ibooker.book1D("mSumCaloVsPt_n0p783_n0p522","Sum CaloVsPt variable in the eta range -0.783 to -0.522",1000,-1000,1000);
595  mSumCaloVsPt_n0p522_0p522 = ibooker.book1D("mSumCaloVsPt_n0p522_0p522","Sum CaloVsPt variable in the eta range -0.522 to 0.522",1000,-1000,1000);
596  mSumCaloVsPt_0p522_0p783 = ibooker.book1D("mSumCaloVsPt_0p522_0p783","Sum CaloVsPt variable in the eta range 0.522 to 0.783",1000,-1000,1000);
597  mSumCaloVsPt_0p783_1p131 = ibooker.book1D("mSumCaloVsPt_0p783_1p131","Sum CaloVsPt variable in the eta range 0.783 to 1.131",1000,-1000,1000);
598  mSumCaloVsPt_1p131_1p479 = ibooker.book1D("mSumCaloVsPt_1p131_1p479","Sum CaloVsPt variable in the eta range 1.131 to 1.479",1000,-1000,1000);
599  mSumCaloVsPt_1p479_1p740 = ibooker.book1D("mSumCaloVsPt_1p479_1p740","Sum CaloVsPt variable in the eta range 1.479 to 1.740",1000,-1000,1000);
600  mSumCaloVsPt_1p740_2p043 = ibooker.book1D("mSumCaloVsPt_1p740_2p043","Sum CaloVsPt variable in the eta range 1.740 to 2.043",1000,-1000,1000);
601  mSumCaloVsPt_2p043_2p650 = ibooker.book1D("mSumCaloVsPt_2p043_2p650","Sum CaloVsPt variable in the eta range 2.043 to 2.650",1000,-5000,5000);
602  mSumCaloVsPt_2p650_5p191 = ibooker.book1D("mSumCaloVsPt_2p650_5p191","Sum CaloVsPt variable in the eta range 2.650 to 5.191",1000,-5000,5000);
603 
604  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);
605  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);
606  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);
607  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);
608  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);
609  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);
610  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);
611  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);
612  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);
613  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);
614  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);
615  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);
616  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);
617  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);
618  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);
619 
620  }
621 
622  // particle flow variables histograms
623  mSumpt = ibooker.book1D("SumpT","Sum p_{T} of all the PF candidates per event",1000,0,10000);
624 
625  // Event variables
626  mNvtx = ibooker.book1D("Nvtx", "number of vertices", 60, 0, 60);
627  mHF = ibooker.book1D("HF", "HF energy distribution",1000,0,10000);
628 
629  // added Jan 12th 2015
630  mDeltapT = ibooker.book1D("DeltapT","amount subtracted from candidate",400,-200,200);
631  mDeltapT_eta = ibooker.book2D("DeltapT_eta","",60,-6,+6,400,-200,200);
632 
633  // Jet parameters
634  mEta = ibooker.book1D("Eta", "Eta", 120, -6, 6);
635  mPhi = ibooker.book1D("Phi", "Phi", 70, -3.5, 3.5);
636  mPt = ibooker.book1D("Pt", "Pt", 100, 0, 1000);
637  mP = ibooker.book1D("P", "P", 100, 0, 1000);
638  mEnergy = ibooker.book1D("Energy", "Energy", 100, 0, 1000);
639  mMass = ibooker.book1D("Mass", "Mass", 100, 0, 200);
640  mConstituents = ibooker.book1D("Constituents", "Constituents", 100, 0, 100);
641  mJetArea = ibooker.book1D("JetArea", "JetArea", 100, 0, 4);
642  mjetpileup = ibooker.book1D("jetPileUp","jetPileUp",100,0,150);
643  mNJets_40 = ibooker.book1D("NJets_pt_greater_40", "NJets pT > 40 GeV", 50, 0, 100);
644  mNJets = ibooker.book1D("NJets", "NJets", 50, 0, 100);
645 
646  mGenEta = ibooker.book1D("Gen Eta",";gen jet #eta;counts",120,-6,6);
647  mGenPhi = ibooker.book1D("Gen Phi",";gen jet #phi;counts",70,-3.5,3.5);
648  mGenPt = ibooker.book1D("Gen pT","gen jet p_{T}",250,0,1000);
649  mPtHat = ibooker.book1D("pThat","#hat{p_{T}}",250,0,1000);
650 
651  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);
652  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);
653  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);
654  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);
655  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);
656  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);
657  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);
658  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);
659  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);
660  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);
661  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);
662  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);
663  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);
664  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);
665  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);
666  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);
667  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);
668  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);
669  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);
670  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);
671  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);
672 
673 
674  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);
675  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);
676  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);
677  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);
678  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);
679  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);
680  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);
681  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);
682  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);
683  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);
684  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);
685  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);
686  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);
687  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);
688  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);
689  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);
690  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);
691  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);
692  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);
693  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);
694  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);
695 
696 
697  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);
698  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);
699  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);
700  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);
701  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);
702  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);
703  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);
704  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);
705  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);
706  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);
707  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);
708  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);
709  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);
710  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);
711  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);
712  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);
713  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);
714  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);
715  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);
716  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);
717  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);
718 
719  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);
720  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);
721  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);
722  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);
723  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);
724  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);
725  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);
726  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);
727  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);
728  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);
729  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);
730  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);
731  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);
732  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);
733  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);
734  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);
735  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);
736  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);
737  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);
738  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);
739  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);
740 
741 
742  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, " ");
743  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, " ");
744  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, " ");
745  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, " ");
746  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, " ");
747  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, " ");
748  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, " ");
749  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, " ");
750  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, " ");
751  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, " ");
752  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, " ");
753  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, " ");
754 
755  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, " ");
756  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, " ");
757  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, " ");
758  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, " ");
759  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, " ");
760  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, " ");
761  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, " ");
762 
763 
764  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, " ");
765  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, " ");
766  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, " ");
767  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, " ");
768  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, " ");
769  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, " ");
770  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, " ");
771 
772  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, " ");
773  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, " ");
774  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, " ");
775  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, " ");
776  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, " ");
777  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, " ");
778  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, " ");
779 
780  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, " ");
781  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, " ");
782  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, " ");
783  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, " ");
784  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, " ");
785  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, " ");
786  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, " ");
787 
788 
789  if (mOutputFile.empty ())
790  LogInfo("OutputInfo") << " Histograms will NOT be saved";
791  else
792  LogInfo("OutputInfo") << " Histograms will be saved to file:" << mOutputFile;
793 
794  delete h2D_etabins_vs_pt2;
795  delete h2D_etabins_vs_pt;
796  delete h2D_etabins_vs_phi;
797  delete h2D_pfcand_etabins_vs_pt;
798 }
799 
800 
801 
802 //------------------------------------------------------------------------------
803 // ~JetTester_HeavyIons
804 //------------------------------------------------------------------------------
806 
807 
808 //------------------------------------------------------------------------------
809 // beginJob
810 //------------------------------------------------------------------------------
811 //void JetTester_HeavyIons::beginJob() {
812 // //std::cout<<"inside the begin job function"<<endl;
813 //}
814 
815 
816 //------------------------------------------------------------------------------
817 // endJob
818 //------------------------------------------------------------------------------
819 //void JetTester_HeavyIons::endJob()
820 //{
821 // if (!mOutputFile.empty() && &*edm::Service<DQMStore>())
822 // {
823 // edm::Service<DQMStore>()->save(mOutputFile);
824 // }
825 //}
826 
827 
828 //------------------------------------------------------------------------------
829 // analyze
830 //------------------------------------------------------------------------------
831 void JetTester_HeavyIons::analyze(const edm::Event& mEvent, const edm::EventSetup& mSetup)
832 {
833  // Get the primary vertices
834  //----------------------------------------------------------------------------
836  mEvent.getByToken(pvToken_, pvHandle);
837  reco::Vertex::Point vtx(0,0,0);
839  //vtx = getVtx(mEvent);
840 
841  mEvent.getByToken(hiVertexToken_, vtxs);
842  int greatestvtx = 0;
843  int nVertex = vtxs->size();
844 
845  for (unsigned int i = 0 ; i< vtxs->size(); ++i){
846  unsigned int daughter = (*vtxs)[i].tracksSize();
847  if( daughter > (*vtxs)[greatestvtx].tracksSize()) greatestvtx = i;
848  }
849 
850  if(nVertex<=0){
851  vtx = reco::Vertex::Point(0,0,0);
852  }
853  vtx = (*vtxs)[greatestvtx].position();
854 
855  int nGoodVertices = 0;
856 
857  if (pvHandle.isValid())
858  {
859  for (unsigned i=0; i<pvHandle->size(); i++)
860  {
861  if ((*pvHandle)[i].ndof() > 4 &&
862  (fabs((*pvHandle)[i].z()) <= 24) &&
863  (fabs((*pvHandle)[i].position().rho()) <= 2))
864  nGoodVertices++;
865  }
866  }
867 
868  mNvtx->Fill(nGoodVertices);
869 
870  // Get the Jet collection
871  //----------------------------------------------------------------------------
872  //math::XYZTLorentzVector p4tmp[2];
873 
874  std::vector<Jet> recoJets;
875  recoJets.clear();
876 
881 
882  // Get the Particle flow candidates and the Voronoi variables
884  edm::Handle<CaloTowerCollection> caloCandidates;
885  edm::Handle<reco::CandidateView> pfcandidates_;
886  edm::Handle<reco::CandidateView> calocandidates_;
887 
888  //const reco::PFCandidateCollection *pfCandidateColl = pfcandidates.product();
891 
892  // get the centrality
894  mEvent.getByToken(centralityToken, cent); //_centralitytag comes from the cfg
895 
896  mHF->Fill(cent->EtHFtowerSum());
897  Float_t HF_energy = cent->EtHFtowerSum();
898 
899  edm::Handle<int> cbin;
900  mEvent.getByToken(centralityBinToken, cbin);
901  if (!cent.isValid()) return;
902  int hibin = -999;
903  if(cent.isValid()){
904  hibin = *cbin;
905  }
906 
907  bool isCentral = false;
908  bool ismidCentral = false;
909  bool ismidPeripheral = false;
910  bool isPeripheral = false;
911 
912  if(hibin < 20) isCentral = true;
913  if(hibin >= 20 && hibin < 60) ismidCentral = true;
914  if(hibin >= 60 && hibin < 100) ismidPeripheral = true;
915  if(hibin >= 100 && hibin < 160) isPeripheral = true;
916 
917 
918  if (isCaloJet) mEvent.getByToken(caloJetsToken_, caloJets);
919  if (isJPTJet) mEvent.getByToken(jptJetsToken_, jptJets);
920  if (isPFJet) {
921  if(std::string("Pu")==UEAlgo) mEvent.getByToken(basicJetsToken_, basicJets);
922  if(std::string("Vs")==UEAlgo) mEvent.getByToken(pfJetsToken_, pfJets);
923  }
924 
925  mEvent.getByToken(pfCandToken_, pfCandidates);
926  mEvent.getByToken(pfCandViewToken_, pfcandidates_);
927 
928  mEvent.getByToken(caloTowersToken_, caloCandidates);
929  mEvent.getByToken(caloCandViewToken_, calocandidates_);
930 
931  mEvent.getByToken(backgrounds_, VsBackgrounds);
932  mEvent.getByToken(backgrounds_value_, vn_);
933 
934 
935  const reco::PFCandidateCollection *pfCandidateColl = pfCandidates.product();
936 
937  Float_t vsPt=0;
938  Float_t vsPtInitial = 0;
939  Float_t vsArea = 0;
940  Int_t NPFpart = 0;
941  Int_t NCaloTower = 0;
942  Float_t pfPt = 0;
943  Float_t pfEta = 0;
944  Int_t pfID = 0;
945  Float_t pfPhi = 0;
946  Float_t caloPt = 0;
947  Float_t caloEta = 0;
948  Float_t caloPhi = 0;
949  Float_t SumPt_value = 0;
950 
951  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 };
952 
954 
955  Float_t DeltapT = 0;
956 
957  if(isCaloJet){
958 
959  Float_t SumCaloVsPtInitial[etaBins_];
960  Float_t SumCaloVsPt[etaBins_];
961  Float_t SumCaloPt[etaBins_];
962  Float_t SumSquaredCaloVsPtInitial[etaBins_];
963  Float_t SumSquaredCaloVsPt[etaBins_];
964  Float_t SumSquaredCaloPt[etaBins_];
965 
966  for(int i = 0;i<etaBins_;i++){
967 
968  SumCaloVsPtInitial[i] = 0;
969  SumCaloVsPt[i] = 0;
970  SumCaloPt[i] = 0;
971  SumSquaredCaloVsPtInitial[i] = 0;
972  SumSquaredCaloVsPt[i] = 0;
973  SumSquaredCaloPt[i] = 0;
974 
975  }
976 
977  for(unsigned icand = 0;icand<caloCandidates->size(); icand++){
978 
979  const CaloTower & tower = (*caloCandidates)[icand];
980  reco::CandidateViewRef ref(calocandidates_,icand);
981  if(tower.p4(vtx).Et() < 0.1) continue;
982 
983 
984  DeltapT = 0;
985  vsPt = 0;
986  vsPtInitial = 0;
987  vsArea = 0;
988 
989  if(std::string("Vs")==UEAlgo) {
990  const reco::VoronoiBackground& voronoi = (*VsBackgrounds)[ref];
991  vsPt = voronoi.pt();
992  vsPtInitial = voronoi.pt_subtracted();
993  vsArea = voronoi.area();
994 
995  }
996 
997  NCaloTower++;
998 
999  caloPt = tower.p4(vtx).Et();
1000  caloEta = tower.p4(vtx).Eta();
1001  caloPhi = tower.p4(vtx).Phi();
1002 
1003 
1004  DeltapT = caloPt - vsPtInitial;
1005  mDeltapT->Fill(DeltapT);
1006  mDeltapT_eta->Fill(caloEta,DeltapT);
1007 
1008  for(size_t k = 0;k<nedge_pseudorapidity-1; k++){
1009  if(caloEta >= edge_pseudorapidity[k] && caloEta < edge_pseudorapidity[k+1]){
1010  SumCaloVsPtInitial[k] = SumCaloVsPtInitial[k] + vsPtInitial;
1011  SumCaloVsPt[k] = SumCaloVsPt[k] + vsPt;
1012  SumCaloPt[k] = SumCaloPt[k] + caloPt;
1013  SumSquaredCaloVsPtInitial[k] = SumSquaredCaloVsPtInitial[k] + vsPtInitial*vsPtInitial;
1014  SumSquaredCaloVsPt[k] = SumSquaredCaloVsPt[k] + vsPt*vsPt;
1015  SumSquaredCaloPt[k] = SumSquaredCaloPt[k] + caloPt*caloPt;
1016  }// eta selection statement
1017 
1018  }// eta bin loop
1019 
1020  SumPt_value = SumPt_value + caloPt;
1021 
1022  mCaloPt->Fill(caloPt);
1023  mCaloEta->Fill(caloEta);
1024  mCaloPhi->Fill(caloPhi);
1025  mCaloVsPt->Fill(vsPt);
1026  mCaloVsPtInitial->Fill(vsPtInitial);
1027  mCaloArea->Fill(vsArea);
1028 
1029  }// calo tower candidate loop
1030 
1031  Float_t Evt_SumCaloVsPt = 0;
1032  Float_t Evt_SumCaloVsPtInitial = 0;
1033  Float_t Evt_SumCaloPt = 0;
1034 
1035  Float_t Evt_SumSquaredCaloVsPt = 0;
1036  Float_t Evt_SumSquaredCaloVsPtInitial = 0;
1037  Float_t Evt_SumSquaredCaloPt = 0;
1038 
1039  mSumCaloVsPtInitial_n5p191_n2p650->Fill(SumCaloVsPtInitial[0]);
1040  mSumCaloVsPtInitial_n2p650_n2p043->Fill(SumCaloVsPtInitial[1]);
1041  mSumCaloVsPtInitial_n2p043_n1p740->Fill(SumCaloVsPtInitial[2]);
1042  mSumCaloVsPtInitial_n1p740_n1p479->Fill(SumCaloVsPtInitial[3]);
1043  mSumCaloVsPtInitial_n1p479_n1p131->Fill(SumCaloVsPtInitial[4]);
1044  mSumCaloVsPtInitial_n1p131_n0p783->Fill(SumCaloVsPtInitial[5]);
1045  mSumCaloVsPtInitial_n0p783_n0p522->Fill(SumCaloVsPtInitial[6]);
1046  mSumCaloVsPtInitial_n0p522_0p522->Fill(SumCaloVsPtInitial[7]);
1047  mSumCaloVsPtInitial_0p522_0p783->Fill(SumCaloVsPtInitial[8]);
1048  mSumCaloVsPtInitial_0p783_1p131->Fill(SumCaloVsPtInitial[9]);
1049  mSumCaloVsPtInitial_1p131_1p479->Fill(SumCaloVsPtInitial[10]);
1050  mSumCaloVsPtInitial_1p479_1p740->Fill(SumCaloVsPtInitial[11]);
1051  mSumCaloVsPtInitial_1p740_2p043->Fill(SumCaloVsPtInitial[12]);
1052  mSumCaloVsPtInitial_2p043_2p650->Fill(SumCaloVsPtInitial[13]);
1053  mSumCaloVsPtInitial_2p650_5p191->Fill(SumCaloVsPtInitial[14]);
1054 
1055  mSumCaloVsPt_n5p191_n2p650->Fill(SumCaloVsPt[0]);
1056  mSumCaloVsPt_n2p650_n2p043->Fill(SumCaloVsPt[1]);
1057  mSumCaloVsPt_n2p043_n1p740->Fill(SumCaloVsPt[2]);
1058  mSumCaloVsPt_n1p740_n1p479->Fill(SumCaloVsPt[3]);
1059  mSumCaloVsPt_n1p479_n1p131->Fill(SumCaloVsPt[4]);
1060  mSumCaloVsPt_n1p131_n0p783->Fill(SumCaloVsPt[5]);
1061  mSumCaloVsPt_n0p783_n0p522->Fill(SumCaloVsPt[6]);
1062  mSumCaloVsPt_n0p522_0p522->Fill(SumCaloVsPt[7]);
1063  mSumCaloVsPt_0p522_0p783->Fill(SumCaloVsPt[8]);
1064  mSumCaloVsPt_0p783_1p131->Fill(SumCaloVsPt[9]);
1065  mSumCaloVsPt_1p131_1p479->Fill(SumCaloVsPt[10]);
1066  mSumCaloVsPt_1p479_1p740->Fill(SumCaloVsPt[11]);
1067  mSumCaloVsPt_1p740_2p043->Fill(SumCaloVsPt[12]);
1068  mSumCaloVsPt_2p043_2p650->Fill(SumCaloVsPt[13]);
1069  mSumCaloVsPt_2p650_5p191->Fill(SumCaloVsPt[14]);
1070 
1071  mSumCaloPt_n5p191_n2p650->Fill(SumCaloPt[0]);
1072  mSumCaloPt_n2p650_n2p043->Fill(SumCaloPt[1]);
1073  mSumCaloPt_n2p043_n1p740->Fill(SumCaloPt[2]);
1074  mSumCaloPt_n1p740_n1p479->Fill(SumCaloPt[3]);
1075  mSumCaloPt_n1p479_n1p131->Fill(SumCaloPt[4]);
1076  mSumCaloPt_n1p131_n0p783->Fill(SumCaloPt[5]);
1077  mSumCaloPt_n0p783_n0p522->Fill(SumCaloPt[6]);
1078  mSumCaloPt_n0p522_0p522->Fill(SumCaloPt[7]);
1079  mSumCaloPt_0p522_0p783->Fill(SumCaloPt[8]);
1080  mSumCaloPt_0p783_1p131->Fill(SumCaloPt[9]);
1081  mSumCaloPt_1p131_1p479->Fill(SumCaloPt[10]);
1082  mSumCaloPt_1p479_1p740->Fill(SumCaloPt[11]);
1083  mSumCaloPt_1p740_2p043->Fill(SumCaloPt[12]);
1084  mSumCaloPt_2p043_2p650->Fill(SumCaloPt[13]);
1085  mSumCaloPt_2p650_5p191->Fill(SumCaloPt[14]);
1086 
1087  for(size_t k = 0;k<nedge_pseudorapidity-1;k++){
1088 
1089  Evt_SumCaloVsPtInitial = Evt_SumCaloVsPtInitial + SumCaloVsPtInitial[k];
1090  Evt_SumCaloVsPt = Evt_SumCaloVsPt + SumCaloVsPt[k];
1091  Evt_SumCaloPt = Evt_SumCaloPt + SumCaloPt[k];
1092 
1093  Evt_SumSquaredCaloVsPtInitial = Evt_SumSquaredCaloVsPtInitial + SumSquaredCaloVsPtInitial[k];
1094  Evt_SumSquaredCaloVsPt = Evt_SumSquaredCaloVsPt + SumSquaredCaloVsPt[k];
1095  Evt_SumSquaredCaloPt = Evt_SumSquaredCaloPt + SumSquaredCaloPt[k];
1096 
1097  }// eta bin loop
1098 
1099  mSumCaloVsPtInitial->Fill(Evt_SumCaloVsPtInitial);
1100  mSumCaloVsPt->Fill(Evt_SumCaloVsPt);
1101  mSumCaloPt->Fill(Evt_SumCaloPt);
1102 
1103  mSumSquaredCaloVsPtInitial->Fill(Evt_SumSquaredCaloVsPtInitial);
1104  mSumSquaredCaloVsPt->Fill(Evt_SumSquaredCaloVsPt);
1105  mSumSquaredCaloPt->Fill(Evt_SumSquaredCaloPt);
1106 
1107  mSumCaloVsPtInitial_HF->Fill(Evt_SumCaloVsPtInitial,HF_energy);
1108  mSumCaloVsPt_HF->Fill(Evt_SumCaloVsPt,HF_energy);
1109  mSumCaloPt_HF->Fill(Evt_SumCaloPt,HF_energy);
1110 
1111  mNCalopart->Fill(NCaloTower);
1112  mSumpt->Fill(SumPt_value);
1113 
1114  }// is calo jet
1115 
1116  if(isPFJet){
1117 
1118  Float_t SumPFVsPtInitial[etaBins_];
1119  Float_t SumPFVsPt[etaBins_];
1120  Float_t SumPFPt[etaBins_];
1121 
1122  Float_t SumSquaredPFVsPtInitial[etaBins_];
1123  Float_t SumSquaredPFVsPt[etaBins_];
1124  Float_t SumSquaredPFPt[etaBins_];
1125 
1126  for(int i = 0;i<etaBins_;i++){
1127 
1128  SumPFVsPtInitial[i] = 0;
1129  SumPFVsPt[i] = 0;
1130  SumPFPt[i] = 0;
1131  SumSquaredPFVsPtInitial[i] = 0;
1132  SumSquaredPFVsPt[i] = 0;
1133  SumSquaredPFPt[i] = 0;
1134 
1135  }
1136 
1137  for(unsigned icand=0;icand<pfCandidateColl->size(); icand++){
1138 
1139  const reco::PFCandidate pfCandidate = pfCandidateColl->at(icand);
1140  reco::CandidateViewRef ref(pfcandidates_,icand);
1141 
1142  if(pfCandidate.pt() < 0.5) continue;
1143 
1144  if(std::string("Vs")==UEAlgo) {
1145 
1146  const reco::VoronoiBackground& voronoi = (*VsBackgrounds)[ref];
1147  vsPt = voronoi.pt();
1148  vsPtInitial = voronoi.pt_subtracted();
1149  vsArea = voronoi.area();
1150 
1151  }
1152 
1153  NPFpart++;
1154  pfPt = pfCandidate.pt();
1155  pfEta = pfCandidate.eta();
1156  pfPhi = pfCandidate.phi();
1157  pfID = pfCandidate.particleId();
1158 
1159  bool inBarrel = false;
1160  bool inEndcap = false;
1161  bool inForward = false;
1162 
1163  if(fabs(pfEta)<BarrelEta) inBarrel = true;
1164  if(fabs(pfEta)>=BarrelEta && fabs(pfEta)<EndcapEta) inEndcap = true;
1165  if(fabs(pfEta)>=EndcapEta && fabs(pfEta)<ForwardEta) inForward = true;
1166 
1167  switch(pfID){
1168  case 0 :
1169  mPFCandpT_vs_eta_Unknown->Fill(pfPt, pfEta);
1170  if(inBarrel) mPFCandpT_Barrel_Unknown->Fill(pfPt);
1171  if(inEndcap) mPFCandpT_Endcap_Unknown->Fill(pfPt);
1172  if(inForward) mPFCandpT_Forward_Unknown->Fill(pfPt);
1173  case 1 :
1174  mPFCandpT_vs_eta_ChargedHadron->Fill(pfPt, pfEta);
1175  if(inBarrel) mPFCandpT_Barrel_ChargedHadron->Fill(pfPt);
1176  if(inEndcap) mPFCandpT_Endcap_ChargedHadron->Fill(pfPt);
1177  if(inForward) mPFCandpT_Forward_ChargedHadron->Fill(pfPt);
1178  case 2 :
1179  mPFCandpT_vs_eta_electron->Fill(pfPt, pfEta);
1180  if(inBarrel) mPFCandpT_Barrel_electron->Fill(pfPt);
1181  if(inEndcap) mPFCandpT_Endcap_electron->Fill(pfPt);
1182  if(inForward) mPFCandpT_Forward_electron->Fill(pfPt);
1183  case 3 :
1184  mPFCandpT_vs_eta_muon->Fill(pfPt, pfEta);
1185  if(inBarrel) mPFCandpT_Barrel_muon->Fill(pfPt);
1186  if(inEndcap) mPFCandpT_Endcap_muon->Fill(pfPt);
1187  if(inForward) mPFCandpT_Forward_muon->Fill(pfPt);
1188  case 4 :
1189  mPFCandpT_vs_eta_photon->Fill(pfPt, pfEta);
1190  if(inBarrel) mPFCandpT_Barrel_photon->Fill(pfPt);
1191  if(inEndcap) mPFCandpT_Endcap_photon->Fill(pfPt);
1192  if(inForward) mPFCandpT_Forward_photon->Fill(pfPt);
1193  case 5 :
1194  mPFCandpT_vs_eta_NeutralHadron->Fill(pfPt, pfEta);
1195  if(inBarrel) mPFCandpT_Barrel_NeutralHadron->Fill(pfPt);
1196  if(inEndcap) mPFCandpT_Endcap_NeutralHadron->Fill(pfPt);
1197  if(inForward) mPFCandpT_Forward_NeutralHadron->Fill(pfPt);
1198  case 6 :
1199  mPFCandpT_vs_eta_HadE_inHF->Fill(pfPt, pfEta);
1200  if(inBarrel) mPFCandpT_Barrel_HadE_inHF->Fill(pfPt);
1201  if(inEndcap) mPFCandpT_Endcap_HadE_inHF->Fill(pfPt);
1202  if(inForward) mPFCandpT_Forward_HadE_inHF->Fill(pfPt);
1203  case 7 :
1204  mPFCandpT_vs_eta_EME_inHF->Fill(pfPt, pfEta);
1205  if(inBarrel) mPFCandpT_Barrel_EME_inHF->Fill(pfPt);
1206  if(inEndcap) mPFCandpT_Endcap_EME_inHF->Fill(pfPt);
1207  if(inForward) mPFCandpT_Forward_EME_inHF->Fill(pfPt);
1208  }
1209 
1210 
1211 
1212  DeltapT = pfPt - vsPtInitial;
1213  mDeltapT->Fill(DeltapT);
1214  mDeltapT_eta->Fill(pfEta,DeltapT);
1215 
1216  for(size_t k = 0;k<nedge_pseudorapidity-1; k++){
1217  if(pfEta >= edge_pseudorapidity[k] && pfEta < edge_pseudorapidity[k+1]){
1218  SumPFVsPtInitial[k] = SumPFVsPtInitial[k] + vsPtInitial;
1219  SumPFVsPt[k] = SumPFVsPt[k] + vsPt;
1220  SumPFPt[k] = SumPFPt[k] + pfPt;
1221 
1222  SumSquaredPFVsPtInitial[k] = SumSquaredPFVsPtInitial[k] + vsPtInitial*vsPtInitial;
1223  SumSquaredPFVsPt[k] = SumSquaredPFVsPt[k] + vsPt*vsPt;
1224  SumSquaredPFPt[k] = SumSquaredPFPt[k] + pfPt*pfPt;
1225 
1226  }// eta selection statement
1227 
1228  }// eta bin loop
1229 
1230  SumPt_value = SumPt_value + pfPt;
1231 
1232  mPFPt->Fill(pfPt);
1233  mPFEta->Fill(pfEta);
1234  mPFPhi->Fill(pfPhi);
1235  mPFVsPt->Fill(vsPt);
1236  mPFVsPtInitial->Fill(vsPtInitial);
1237  mPFArea->Fill(vsArea);
1238 
1239  }// pf candidate loop
1240 
1241  Float_t Evt_SumPFVsPt = 0;
1242  Float_t Evt_SumPFVsPtInitial = 0;
1243  Float_t Evt_SumPFPt = 0;
1244 
1245  Float_t Evt_SumSquaredPFVsPt = 0;
1246  Float_t Evt_SumSquaredPFVsPtInitial = 0;
1247  Float_t Evt_SumSquaredPFPt = 0;
1248 
1249  mSumPFVsPtInitial_n5p191_n2p650->Fill(SumPFVsPtInitial[0]);
1250  mSumPFVsPtInitial_n2p650_n2p043->Fill(SumPFVsPtInitial[1]);
1251  mSumPFVsPtInitial_n2p043_n1p740->Fill(SumPFVsPtInitial[2]);
1252  mSumPFVsPtInitial_n1p740_n1p479->Fill(SumPFVsPtInitial[3]);
1253  mSumPFVsPtInitial_n1p479_n1p131->Fill(SumPFVsPtInitial[4]);
1254  mSumPFVsPtInitial_n1p131_n0p783->Fill(SumPFVsPtInitial[5]);
1255  mSumPFVsPtInitial_n0p783_n0p522->Fill(SumPFVsPtInitial[6]);
1256  mSumPFVsPtInitial_n0p522_0p522->Fill(SumPFVsPtInitial[7]);
1257  mSumPFVsPtInitial_0p522_0p783->Fill(SumPFVsPtInitial[8]);
1258  mSumPFVsPtInitial_0p783_1p131->Fill(SumPFVsPtInitial[9]);
1259  mSumPFVsPtInitial_1p131_1p479->Fill(SumPFVsPtInitial[10]);
1260  mSumPFVsPtInitial_1p479_1p740->Fill(SumPFVsPtInitial[11]);
1261  mSumPFVsPtInitial_1p740_2p043->Fill(SumPFVsPtInitial[12]);
1262  mSumPFVsPtInitial_2p043_2p650->Fill(SumPFVsPtInitial[13]);
1263  mSumPFVsPtInitial_2p650_5p191->Fill(SumPFVsPtInitial[14]);
1264 
1265  mSumPFVsPt_n5p191_n2p650->Fill(SumPFVsPt[0]);
1266  mSumPFVsPt_n2p650_n2p043->Fill(SumPFVsPt[1]);
1267  mSumPFVsPt_n2p043_n1p740->Fill(SumPFVsPt[2]);
1268  mSumPFVsPt_n1p740_n1p479->Fill(SumPFVsPt[3]);
1269  mSumPFVsPt_n1p479_n1p131->Fill(SumPFVsPt[4]);
1270  mSumPFVsPt_n1p131_n0p783->Fill(SumPFVsPt[5]);
1271  mSumPFVsPt_n0p783_n0p522->Fill(SumPFVsPt[6]);
1272  mSumPFVsPt_n0p522_0p522->Fill(SumPFVsPt[7]);
1273  mSumPFVsPt_0p522_0p783->Fill(SumPFVsPt[8]);
1274  mSumPFVsPt_0p783_1p131->Fill(SumPFVsPt[9]);
1275  mSumPFVsPt_1p131_1p479->Fill(SumPFVsPt[10]);
1276  mSumPFVsPt_1p479_1p740->Fill(SumPFVsPt[11]);
1277  mSumPFVsPt_1p740_2p043->Fill(SumPFVsPt[12]);
1278  mSumPFVsPt_2p043_2p650->Fill(SumPFVsPt[13]);
1279  mSumPFVsPt_2p650_5p191->Fill(SumPFVsPt[14]);
1280 
1281  mSumPFPt_n5p191_n2p650->Fill(SumPFPt[0]);
1282  mSumPFPt_n2p650_n2p043->Fill(SumPFPt[1]);
1283  mSumPFPt_n2p043_n1p740->Fill(SumPFPt[2]);
1284  mSumPFPt_n1p740_n1p479->Fill(SumPFPt[3]);
1285  mSumPFPt_n1p479_n1p131->Fill(SumPFPt[4]);
1286  mSumPFPt_n1p131_n0p783->Fill(SumPFPt[5]);
1287  mSumPFPt_n0p783_n0p522->Fill(SumPFPt[6]);
1288  mSumPFPt_n0p522_0p522->Fill(SumPFPt[7]);
1289  mSumPFPt_0p522_0p783->Fill(SumPFPt[8]);
1290  mSumPFPt_0p783_1p131->Fill(SumPFPt[9]);
1291  mSumPFPt_1p131_1p479->Fill(SumPFPt[10]);
1292  mSumPFPt_1p479_1p740->Fill(SumPFPt[11]);
1293  mSumPFPt_1p740_2p043->Fill(SumPFPt[12]);
1294  mSumPFPt_2p043_2p650->Fill(SumPFPt[13]);
1295  mSumPFPt_2p650_5p191->Fill(SumPFPt[14]);
1296 
1297  for(size_t k = 0;k<nedge_pseudorapidity-1;k++){
1298 
1299  Evt_SumPFVsPtInitial = Evt_SumPFVsPtInitial + SumPFVsPtInitial[k];
1300  Evt_SumPFVsPt = Evt_SumPFVsPt + SumPFVsPt[k];
1301  Evt_SumPFPt = Evt_SumPFPt + SumPFPt[k];
1302 
1303  Evt_SumSquaredPFVsPtInitial = Evt_SumSquaredPFVsPtInitial + SumSquaredPFVsPtInitial[k];
1304  Evt_SumSquaredPFVsPt = Evt_SumSquaredPFVsPt + SumSquaredPFVsPt[k];
1305  Evt_SumSquaredPFPt = Evt_SumSquaredPFPt + SumSquaredPFPt[k];
1306 
1307  }// eta bin loop
1308 
1309  mSumPFVsPtInitial->Fill(Evt_SumPFVsPtInitial);
1310  mSumPFVsPt->Fill(Evt_SumPFVsPt);
1311  mSumPFPt->Fill(Evt_SumPFPt);
1312 
1313  mSumSquaredPFVsPtInitial->Fill(Evt_SumSquaredPFVsPtInitial);
1314  mSumSquaredPFVsPt->Fill(Evt_SumSquaredPFVsPt);
1315  mSumSquaredPFPt->Fill(Evt_SumSquaredPFPt);
1316 
1317  mSumPFVsPtInitial_HF->Fill(Evt_SumPFVsPtInitial,HF_energy);
1318  mSumPFVsPt_HF->Fill(Evt_SumPFVsPt,HF_energy);
1319  mSumPFPt_HF->Fill(Evt_SumPFPt,HF_energy);
1320 
1321  mNPFpart->Fill(NPFpart);
1322  mSumpt->Fill(SumPt_value);
1323 
1324  }
1325 
1326  if (isCaloJet)
1327  {
1328  for (unsigned ijet=0; ijet<caloJets->size(); ijet++) recoJets.push_back((*caloJets)[ijet]);
1329  }
1330 
1331  if (isJPTJet)
1332  {
1333  for (unsigned ijet=0; ijet<jptJets->size(); ijet++) recoJets.push_back((*jptJets)[ijet]);
1334  }
1335 
1336  if (isPFJet) {
1337  if(std::string("Pu")==UEAlgo){
1338  for (unsigned ijet=0; ijet<basicJets->size();ijet++) recoJets.push_back((*basicJets)[ijet]);
1339  }
1340  if(std::string("Vs")==UEAlgo){
1341  for (unsigned ijet=0; ijet<pfJets->size(); ijet++) recoJets.push_back((*pfJets)[ijet]);
1342  }
1343  }
1344 
1345  if (isCaloJet && !caloJets.isValid()) return;
1346  if (isJPTJet && !jptJets.isValid()) return;
1347  if (isPFJet){
1348  if(std::string("Pu")==UEAlgo){if(!basicJets.isValid()) return;}
1349  if(std::string("Vs")==UEAlgo){if(!pfJets.isValid()) return;}
1350  }
1351 
1352  int nJet_40 = 0;
1353 
1354  mNJets->Fill(recoJets.size());
1355 
1356  for (unsigned ijet=0; ijet<recoJets.size(); ijet++) {
1357 
1358  if (recoJets[ijet].pt() > mRecoJetPtThreshold) {
1359  //counting forward and barrel jets
1360  // get an idea of no of jets with pT>40 GeV
1361  if(recoJets[ijet].pt() > 40)
1362  nJet_40++;
1363 
1364  if (mEta) mEta->Fill(recoJets[ijet].eta());
1365  if (mjetpileup) mjetpileup->Fill(recoJets[ijet].pileup());
1366  if (mJetArea) mJetArea ->Fill(recoJets[ijet].jetArea());
1367  if (mPhi) mPhi ->Fill(recoJets[ijet].phi());
1368  if (mEnergy) mEnergy ->Fill(recoJets[ijet].energy());
1369  if (mP) mP ->Fill(recoJets[ijet].p());
1370  if (mPt) mPt ->Fill(recoJets[ijet].pt());
1371  if (mMass) mMass ->Fill(recoJets[ijet].mass());
1372  if (mConstituents) mConstituents->Fill(recoJets[ijet].nConstituents());
1373 
1374  }
1375  }
1376 
1377  if (mNJets_40) mNJets_40->Fill(nJet_40);
1378 
1379 
1380  // Gen level information:
1381  if (!mEvent.isRealData()){
1382 
1383  // Get ptHat
1384  //------------------------------------------------------------------------
1386  mEvent.getByToken(evtToken_, myGenEvt);
1387 
1388  if (myGenEvt.isValid()) {
1389  if(myGenEvt->hasBinningValues()){
1390  double ptHat = myGenEvt->binningValues()[0];
1391  if (mPtHat) mPtHat->Fill(ptHat);
1392  }
1393  }
1394  // Gen jets
1395  //------------------------------------------------------------------------
1397  mEvent.getByToken(genJetsToken_, genJets);
1398 
1399  if (!genJets.isValid()) return;
1400 
1401  for (GenJetCollection::const_iterator gjet=genJets->begin(); gjet!=genJets->end(); gjet++) {
1402  if(gjet->pt() > mMatchGenPtThreshold){
1403  if (mGenEta) mGenEta->Fill(gjet->eta());
1404  if (mGenPhi) mGenPhi->Fill(gjet->phi());
1405  if (mGenPt) mGenPt ->Fill(gjet->pt());
1406  }
1407  }
1408 
1409  if (!(mInputGenCollection.label().empty())) {
1410  for (GenJetCollection::const_iterator gjet=genJets->begin(); gjet!=genJets->end(); gjet++) {
1411  if (fabs(gjet->eta()) > 6.) continue; // Out of the detector
1412  if (gjet->pt() < mMatchGenPtThreshold) continue;
1413  if (recoJets.size() <= 0) continue;
1414 
1415  bool inBarrel = false;
1416  bool inEndcap = false;
1417  bool inForward = false;
1418 
1419  if(fabs(gjet->eta())<BarrelEta) inBarrel = true;
1420  if(fabs(gjet->eta())>=BarrelEta && fabs(gjet->eta())<EndcapEta) inEndcap = true;
1421  if(fabs(gjet->eta())>=EndcapEta && fabs(gjet->eta())<ForwardEta) inForward = true;
1422 
1423  // pt response
1424  //------------------------------------------------------------
1425  int iMatch = -1;
1426  double deltaRBest = 999;
1427  double JetPtBest = 0;
1428  for (unsigned ijet=0; ijet<recoJets.size(); ++ijet) {
1429  double recoPt = recoJets[ijet].pt();
1430  if (recoPt > 10) {
1431  double delR = deltaR(gjet->eta(), gjet->phi(), recoJets[ijet].eta(), recoJets[ijet].phi());
1432  if (delR < deltaRBest) {
1433  deltaRBest = delR;
1434  JetPtBest = recoPt;
1435  iMatch = ijet;
1436  }
1437  }
1438  }
1439  if (iMatch<0) continue;
1440 
1441  //fillMatchHists(gjet->eta(), gjet->phi(), gjet->pt(), recoJets[iMatch].eta(), recoJets[iMatch].phi(), recoJets[iMatch].pt(), hibin);
1442  if(deltaRBest < mRThreshold){
1443  double genpt = gjet->pt();
1444  double geneta = gjet->eta();
1445  double response = JetPtBest / genpt;
1446  // Fill all the response histograms here: for each pT bin, eta region, centrality bin
1447 
1448  if(inBarrel) {
1449  if(isCentral)
1450  mPtRecoOverGen_GenPt_B_Cent_0_10->Fill(log10(genpt), response);
1451  if(ismidCentral)
1452  mPtRecoOverGen_GenPt_B_Cent_10_30->Fill(log10(genpt), response);
1453  if(ismidPeripheral)
1454  mPtRecoOverGen_GenPt_B_Cent_30_50->Fill(log10(genpt), response);
1455  if(isPeripheral)
1456  mPtRecoOverGen_GenPt_B_Cent_50_80->Fill(log10(genpt), response);
1457  }
1458  if(inEndcap) {
1459  if(isCentral)
1460  mPtRecoOverGen_GenPt_E_Cent_0_10->Fill(log10(genpt), response);
1461  if(ismidCentral)
1462  mPtRecoOverGen_GenPt_E_Cent_10_30->Fill(log10(genpt), response);
1463  if(ismidPeripheral)
1464  mPtRecoOverGen_GenPt_E_Cent_30_50->Fill(log10(genpt), response);
1465  if(isPeripheral)
1466  mPtRecoOverGen_GenPt_E_Cent_50_80->Fill(log10(genpt), response);
1467  }
1468  if(inForward) {
1469  if(isCentral)
1470  mPtRecoOverGen_GenPt_F_Cent_0_10->Fill(log10(genpt), response);
1471  if(ismidCentral)
1472  mPtRecoOverGen_GenPt_F_Cent_10_30->Fill(log10(genpt), response);
1473  if(ismidPeripheral)
1474  mPtRecoOverGen_GenPt_F_Cent_30_50->Fill(log10(genpt), response);
1475  if(isPeripheral)
1476  mPtRecoOverGen_GenPt_F_Cent_50_80->Fill(log10(genpt), response);
1477  }
1478 
1479  if( gjet->pt() >= 20 && gjet->pt() < 30 ){
1480  if(isCentral){
1481  mPtRecoOverGen_GenEta_20_30_Cent_0_10->Fill(geneta, response);
1482  if(inBarrel)
1484  if(inEndcap)
1486  if(inForward)
1488  }//
1489  if(ismidCentral){
1490  mPtRecoOverGen_GenEta_20_30_Cent_10_30->Fill(geneta, response);
1491  if(inBarrel)
1493  if(inEndcap)
1495  if(inForward)
1497  }//
1498  if(ismidPeripheral){
1499  mPtRecoOverGen_GenEta_20_30_Cent_30_50->Fill(geneta, response);
1500  if(inBarrel)
1502  if(inEndcap)
1504  if(inForward)
1506  }//
1507  if(isPeripheral){
1508  mPtRecoOverGen_GenEta_20_30_Cent_50_80->Fill(geneta, response);
1509  if(inBarrel)
1511  if(inEndcap)
1513  if(inForward)
1515  }//
1516  }// pt bin 20-30
1517 
1518  if( gjet->pt() >= 30 && gjet->pt() < 50 ){
1519  if(isCentral){
1520  mPtRecoOverGen_GenEta_30_50_Cent_0_10->Fill(geneta, response);
1521  if(inBarrel)
1523  if(inEndcap)
1525  if(inForward)
1527  }//
1528  if(ismidCentral){
1529  mPtRecoOverGen_GenEta_30_50_Cent_10_30->Fill(geneta, response);
1530  if(inBarrel)
1532  if(inEndcap)
1534  if(inForward)
1536  }//
1537  if(ismidPeripheral){
1538  mPtRecoOverGen_GenEta_30_50_Cent_30_50->Fill(geneta, response);
1539  if(inBarrel)
1541  if(inEndcap)
1543  if(inForward)
1545  }//
1546  if(isPeripheral){
1547  mPtRecoOverGen_GenEta_30_50_Cent_50_80->Fill(geneta, response);
1548  if(inBarrel)
1550  if(inEndcap)
1552  if(inForward)
1554  }//
1555  }// pt bin 30-50
1556 
1557  if( gjet->pt() >= 50 && gjet->pt() < 80 ){
1558  if(isCentral){
1559  mPtRecoOverGen_GenEta_50_80_Cent_0_10->Fill(geneta, response);
1560  if(inBarrel)
1562  if(inEndcap)
1564  if(inForward)
1566  }//
1567  if(ismidCentral){
1568  mPtRecoOverGen_GenEta_50_80_Cent_10_30->Fill(geneta, response);
1569  if(inBarrel)
1571  if(inEndcap)
1573  if(inForward)
1575  }//
1576  if(ismidPeripheral){
1577  mPtRecoOverGen_GenEta_50_80_Cent_30_50->Fill(geneta, response);
1578  if(inBarrel)
1580  if(inEndcap)
1582  if(inForward)
1584  }//
1585  if(isPeripheral){
1586  mPtRecoOverGen_GenEta_50_80_Cent_50_80->Fill(geneta, response);
1587  if(inBarrel)
1589  if(inEndcap)
1591  if(inForward)
1593  }//
1594  }// pt bin 50-80
1595 
1596  if( gjet->pt() >= 80 && gjet->pt() < 120 ){
1597  if(isCentral){
1598  mPtRecoOverGen_GenEta_80_120_Cent_0_10->Fill(geneta, response);
1599  if(inBarrel)
1601  if(inEndcap)
1603  if(inForward)
1605  }//
1606  if(ismidCentral){
1607  mPtRecoOverGen_GenEta_80_120_Cent_10_30->Fill(geneta, response);
1608  if(inBarrel)
1610  if(inEndcap)
1612  if(inForward)
1614  }//
1615  if(ismidPeripheral){
1616  mPtRecoOverGen_GenEta_80_120_Cent_30_50->Fill(geneta, response);
1617  if(inBarrel)
1619  if(inEndcap)
1621  if(inForward)
1623  }//
1624  if(isPeripheral){
1625  mPtRecoOverGen_GenEta_80_120_Cent_50_80->Fill(geneta, response);
1626  if(inBarrel)
1628  if(inEndcap)
1630  if(inForward)
1632  }//
1633  }// pt bin 80-120
1634 
1635  if( gjet->pt() >= 120 && gjet->pt() < 180 ){
1636  if(isCentral){
1637  mPtRecoOverGen_GenEta_120_180_Cent_0_10->Fill(geneta, response);
1638  if(inBarrel)
1640  if(inEndcap)
1642  if(inForward)
1644  }//
1645  if(ismidCentral){
1647  if(inBarrel)
1649  if(inEndcap)
1651  if(inForward)
1653  }//
1654  if(ismidPeripheral){
1656  if(inBarrel)
1658  if(inEndcap)
1660  if(inForward)
1662  }//
1663  if(isPeripheral){
1665  if(inBarrel)
1667  if(inEndcap)
1669  if(inForward)
1671  }//
1672  }// pt bin 120-180
1673 
1674  if( gjet->pt() >= 180 && gjet->pt() < 300 ){
1675  if(isCentral){
1676  mPtRecoOverGen_GenEta_180_300_Cent_0_10->Fill(geneta, response);
1677  if(inBarrel)
1679  if(inEndcap)
1681  if(inForward)
1683  }//
1684  if(ismidCentral){
1686  if(inBarrel)
1688  if(inEndcap)
1690  if(inForward)
1692  }//
1693  if(ismidPeripheral){
1695  if(inBarrel)
1697  if(inEndcap)
1699  if(inForward)
1701  }//
1702  if(isPeripheral){
1704  if(inBarrel)
1706  if(inEndcap)
1708  if(inForward)
1710  }//
1711  }// pt bin 180-300
1712 
1713  if(gjet->pt() >= 300){
1714  if(isCentral){
1715  mPtRecoOverGen_GenEta_300_Inf_Cent_0_10->Fill(geneta, response);
1716  if(inBarrel)
1718  if(inEndcap)
1720  if(inForward)
1722  }//
1723  if(ismidCentral){
1725  if(inBarrel)
1727  if(inEndcap)
1729  if(inForward)
1731  }//
1732  if(ismidPeripheral){
1734  if(inBarrel)
1736  if(inEndcap)
1738  if(inForward)
1740  }//
1741  if(isPeripheral){
1743  if(inBarrel)
1745  if(inEndcap)
1747  if(inForward)
1749  }//
1750  }// pt bin 300-Inf
1751 
1752  }// delta R < mRthreshold
1753 
1754  }// gen jet collection loop
1755 
1756 
1757  }// not empty gen collection
1758 
1759  }// is the event real
1760 
1761 }
1762 
MonitorElement * mSumPFVsPt_1p131_1p479
MonitorElement * mSumCaloPt_0p522_0p783
MonitorElement * mPtRecoOverGen_B_50_80_Cent_0_10
MonitorElement * mSumPFVsPt_n1p740_n1p479
MonitorElement * mSumSquaredPFVsPt
const double Pi
MonitorElement * mPtRecoOverGen_F_20_30_Cent_30_50
T getParameter(std::string const &) const
virtual double pt() const final
transverse momentum
MonitorElement * mSumPFVsPt_n0p522_0p522
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 * mSumCaloVsPt_n1p479_n1p131
MonitorElement * mSumPFVsPt_HF
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
MonitorElement * mPtRecoOverGen_F_120_180_Cent_50_80
const std::vector< double > & binningValues() const
MonitorElement * mSumPFVsPtInitial_HF
edm::InputTag mInputCollection
edm::EDGetTokenT< CaloTowerCollection > caloTowersToken_
edm::EDGetTokenT< reco::PFJetCollection > pfJetsToken_
const Double_t EndcapEta
MonitorElement * mSumCaloVsPt_n0p522_0p522
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
MonitorElement * mSumCaloVsPtInitial_0p522_0p783
math::PtEtaPhiMLorentzVector p4(double vtxZ) const
Definition: CaloTower.cc:129
JetTester_HeavyIons(const edm::ParameterSet &)
MonitorElement * mSumCaloPt_1p479_1p740
MonitorElement * mSumCaloVsPtInitial_n1p740_n1p479
bool hasBinningValues() const
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
MonitorElement * mSumCaloPt_n0p522_0p522
MonitorElement * mSumPFVsPtInitial_n1p131_n0p783
virtual double eta() const final
momentum pseudorapidity
MonitorElement * mEnergy
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
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 * mSumPFVsPt_2p650_5p191
MonitorElement * mPtRecoOverGen_B_300_Inf_Cent_30_50
MonitorElement * mNJets
MonitorElement * mSumCaloVsPtInitial_n1p479_n1p131
MonitorElement * mPtRecoOverGen_E_50_80_Cent_10_30
MonitorElement * mPtRecoOverGen_E_30_50_Cent_10_30
MonitorElement * mPtRecoOverGen_GenPt_E_Cent_0_10
MonitorElement * mSumCaloVsPt_1p740_2p043
MonitorElement * mSumCaloVsPtInitial_n1p131_n0p783
MonitorElement * mPtRecoOverGen_E_20_30_Cent_50_80
MonitorElement * mPtRecoOverGen_GenEta_50_80_Cent_0_10
MonitorElement * mPtRecoOverGen_E_80_120_Cent_50_80
MonitorElement * mDeltapT
edm::EDGetTokenT< std::vector< float > > backgrounds_value_
MonitorElement * mSumCaloVsPt_n0p783_n0p522
MonitorElement * mPtRecoOverGen_B_300_Inf_Cent_0_10
edm::InputTag mInputPFCandCollection
static const Int_t fourierOrder_
MonitorElement * mSumCaloVsPtInitial_n0p783_n0p522
MonitorElement * mSumSquaredPFPt
MonitorElement * mSumPFPt_n2p650_n2p043
MonitorElement * mSumCaloVsPt_1p479_1p740
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 * mSumCaloVsPtInitial
MonitorElement * mSumPFVsPtInitial
MonitorElement * mSumCaloVsPtInitial_n2p043_n1p740
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
MonitorElement * mSumCaloVsPt_n2p043_n1p740
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 * mSumSquaredCaloVsPt
virtual double phi() const final
momentum azimuthal angle
MonitorElement * mPtHat
MonitorElement * mPtRecoOverGen_GenPt_B_Cent_50_80
MonitorElement * mPFCandpT_vs_eta_NeutralHadron
MonitorElement * mSumPFPt_n1p131_n0p783
MonitorElement * mSumPFVsPtInitial_n2p650_n2p043
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 * mSumPFVsPt_n2p043_n1p740
MonitorElement * mSumCaloPt_1p131_1p479
MonitorElement * mNJets_40
MonitorElement * mSumCaloVsPtInitial_1p740_2p043
MonitorElement * mSumPFVsPt_2p043_2p650
MonitorElement * mSumCaloVsPt_n1p740_n1p479
MonitorElement * mSumPFVsPt
MonitorElement * mPtRecoOverGen_F_300_Inf_Cent_50_80
MonitorElement * mSumCaloVsPt_1p131_1p479
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 * mSumPFVsPtInitial_0p783_1p131
MonitorElement * mPtRecoOverGen_GenPt_E_Cent_10_30
MonitorElement * mSumCaloVsPtInitial_n5p191_n2p650
edm::EDGetTokenT< std::vector< reco::Vertex > > hiVertexToken_
MonitorElement * mSumCaloVsPtInitial_0p783_1p131
MonitorElement * mPtRecoOverGen_E_30_50_Cent_30_50
MonitorElement * mJetArea
MonitorElement * mPFCandpT_Forward_NeutralHadron
MonitorElement * mPtRecoOverGen_GenEta_30_50_Cent_50_80
MonitorElement * mSumPFVsPtInitial_n0p522_0p522
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 * mSumPFVsPt_1p740_2p043
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:115
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
MonitorElement * mSumPFVsPtInitial_1p740_2p043
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 * mSumPFVsPtInitial_2p650_5p191
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 * mSumPFVsPt_n2p650_n2p043
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 * mSumCaloVsPt_n2p650_n2p043
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
MonitorElement * mSumCaloVsPt_2p043_2p650
MonitorElement * mSumPFVsPtInitial_n1p740_n1p479
int k[5][pyjets_maxn]
const Double_t ForwardEta
MonitorElement * mPFCandpT_Endcap_HadE_inHF
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
MonitorElement * mSumPFVsPt_n5p191_n2p650
MonitorElement * mPFCandpT_Forward_electron
MonitorElement * mPtRecoOverGen_F_120_180_Cent_0_10
MonitorElement * mConstituents
MonitorElement * mPFCandpT_vs_eta_ChargedHadron
MonitorElement * mPFVsPtInitial
MonitorElement * mSumPFPt_1p740_2p043
edm::EDGetTokenT< reco::CandidateView > pfCandViewToken_
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
MonitorElement * mSumCaloVsPt_n5p191_n2p650
MonitorElement * mSumSquaredPFVsPtInitial
MonitorElement * mSumCaloVsPt_n1p131_n0p783
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:277
MonitorElement * mSumPFVsPt_n1p131_n0p783
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:133
MonitorElement * mPtRecoOverGen_B_80_120_Cent_0_10
MonitorElement * mPtRecoOverGen_GenEta_300_Inf_Cent_30_50
MonitorElement * mSumPFVsPtInitial_n5p191_n2p650
MonitorElement * mSumPFPt_n1p479_n1p131
MonitorElement * mCaloVsPt
MonitorElement * mPtRecoOverGen_B_120_180_Cent_0_10
MonitorElement * mSumPFPt_2p043_2p650
MonitorElement * mSumPFVsPtInitial_1p131_1p479
MonitorElement * mPtRecoOverGen_GenPt_F_Cent_30_50
MonitorElement * mPFCandpT_vs_eta_HadE_inHF
MonitorElement * mCaloVsPtInitial
MonitorElement * mCaloEta
MonitorElement * mPtRecoOverGen_E_120_180_Cent_10_30
MonitorElement * mPtRecoOverGen_GenEta_30_50_Cent_30_50
MonitorElement * mSumCaloVsPtInitial_n0p522_0p522
MonitorElement * mPFCandpT_Endcap_Unknown
MonitorElement * mSumCaloVsPt_HF
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 * mSumCaloVsPt_0p783_1p131
MonitorElement * mPFCandpT_vs_eta_electron
MonitorElement * mPFCandpT_vs_eta_Unknown
MonitorElement * mCaloPhi
MonitorElement * mPFCandpT_Endcap_ChargedHadron
MonitorElement * mSumPFVsPtInitial_n2p043_n1p740
std::string const & label() const
Definition: InputTag.h:36
MonitorElement * mSumCaloVsPtInitial_n2p650_n2p043
MonitorElement * mPtRecoOverGen_F_50_80_Cent_30_50
MonitorElement * mPFCandpT_Forward_EME_inHF
MonitorElement * mSumCaloPt_0p783_1p131
MonitorElement * mSumCaloVsPtInitial_2p043_2p650
double pt_subtracted() const
MonitorElement * mPtRecoOverGen_E_80_120_Cent_30_50
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:39
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 * mSumPFVsPtInitial_0p522_0p783
MonitorElement * mSumPFVsPtInitial_1p479_1p740
MonitorElement * mPtRecoOverGen_GenEta_300_Inf_Cent_10_30
MonitorElement * mSumPFPt_2p650_5p191
MonitorElement * mGenEta
MonitorElement * mPtRecoOverGen_E_300_Inf_Cent_50_80
MonitorElement * mSumPFVsPtInitial_2p043_2p650
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 * mSumPFVsPt_n0p783_n0p522
MonitorElement * mDeltapT_eta
MonitorElement * mPtRecoOverGen_GenEta_180_300_Cent_50_80
MonitorElement * mSumCaloVsPtInitial_HF
MonitorElement * mSumCaloVsPtInitial_1p479_1p740
MonitorElement * mMass
MonitorElement * mPtRecoOverGen_GenEta_300_Inf_Cent_0_10
MonitorElement * mSumPFVsPt_n1p479_n1p131
virtual ParticleType particleId() const
Definition: PFCandidate.h:373
edm::InputTag mInputGenCollection
MonitorElement * mPtRecoOverGen_GenEta_50_80_Cent_50_80
MonitorElement * mSumPFPt_n1p740_n1p479
MonitorElement * mPFArea
MonitorElement * mSumCaloVsPtInitial_1p131_1p479
MonitorElement * mPtRecoOverGen_GenEta_120_180_Cent_10_30
MonitorElement * mPtRecoOverGen_GenEta_20_30_Cent_50_80
MonitorElement * mSumCaloVsPt_2p650_5p191
MonitorElement * mPFCandpT_Endcap_electron
MonitorElement * mPtRecoOverGen_B_20_30_Cent_50_80
MonitorElement * mSumPFVsPt_1p479_1p740
MonitorElement * mPFCandpT_Barrel_electron
MonitorElement * mPtRecoOverGen_GenEta_180_300_Cent_10_30
MonitorElement * mSumCaloVsPtInitial_2p650_5p191
MonitorElement * mSumPFVsPt_0p783_1p131
edm::EDGetTokenT< edm::ValueMap< reco::VoronoiBackground > > backgrounds_
MonitorElement * mPtRecoOverGen_E_180_300_Cent_50_80
MonitorElement * mPtRecoOverGen_B_50_80_Cent_10_30
MonitorElement * mSumCaloVsPt_0p522_0p783
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 * mSumSquaredCaloVsPtInitial
MonitorElement * mSumPFVsPt_0p522_0p783
MonitorElement * mSumCaloPt_1p740_2p043
MonitorElement * mPtRecoOverGen_GenEta_80_120_Cent_30_50
MonitorElement * mSumPFVsPtInitial_n1p479_n1p131
Definition: Run.h:42
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 * mPFVsPt
MonitorElement * mPtRecoOverGen_B_300_Inf_Cent_50_80
MonitorElement * mPtRecoOverGen_F_20_30_Cent_50_80
MonitorElement * mSumPFVsPtInitial_n0p783_n0p522
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
MonitorElement * mSumCaloVsPt