Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-03-12 05:47:40

0001 #ifndef ValidationRecoJetsJetTester_HeavyIons_h
0002 #define ValidationRecoJetsJetTester_HeavyIons_h
0003 
0004 // Producer for validation histograms for Calo, JPT and PF jet objects
0005 // F. Ratnikov, Sept. 7, 2006
0006 // Modified by Chiyoung Jeong, Feb. 2, 2010
0007 // Modified by J. Piedra, Sept. 11, 2013
0008 // Rewritten by Viola Sordini, Matthias Artur Weber, Robert Schoefbeck Nov./Dez.
0009 // 2013 Modified by Raghav Kunnawalkam Elayavalli, Aug 18th 2014 to run in 72X
0010 //                                          , Oct 22nd 2014 to run in 73X
0011 //                                          , Dec 10th 2014 74X and adding the
0012 //                                          PF candidates information to easily
0013 //                                          detect
0014 //                                                          the voronoi
0015 //                                                          subtraction
0016 //                                                          algorithm failure
0017 //                                                          modes.
0018 
0019 #include <cmath>
0020 #include <string>
0021 
0022 #include "DataFormats/CaloTowers/interface/CaloTower.h"
0023 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
0024 #include "DataFormats/Candidate/interface/Candidate.h"
0025 #include "DataFormats/Candidate/interface/CandidateFwd.h"
0026 #include "DataFormats/Candidate/interface/CandidateWithRef.h"
0027 #include "DataFormats/Common/interface/Handle.h"
0028 #include "DataFormats/JetReco/interface/BasicJet.h"
0029 #include "DataFormats/JetReco/interface/BasicJetCollection.h"
0030 #include "DataFormats/JetReco/interface/CaloJet.h"
0031 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
0032 #include "DataFormats/JetReco/interface/GenJet.h"
0033 #include "DataFormats/JetReco/interface/GenJetCollection.h"
0034 #include "DataFormats/JetReco/interface/JPTJet.h"
0035 #include "DataFormats/JetReco/interface/JPTJetCollection.h"
0036 #include "DataFormats/JetReco/interface/PFJet.h"
0037 
0038 // include the pf candidates
0039 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
0040 // include the voronoi subtraction
0041 #include "DataFormats/HeavyIonEvent/interface/VoronoiBackground.h"
0042 #include "RecoHI/HiJetAlgos/interface/UEParameters.h"
0043 // include the centrality variables
0044 #include "DataFormats/HeavyIonEvent/interface/Centrality.h"
0045 
0046 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0047 #include "DQMServices/Core/interface/DQMStore.h"
0048 #include "DataFormats/DetId/interface/DetId.h"
0049 #include "DataFormats/METReco/interface/CaloMET.h"
0050 #include "DataFormats/METReco/interface/CaloMETCollection.h"
0051 #include "DataFormats/METReco/interface/GenMET.h"
0052 #include "DataFormats/METReco/interface/GenMETCollection.h"
0053 #include "DataFormats/METReco/interface/MET.h"
0054 #include "DataFormats/METReco/interface/METCollection.h"
0055 #include "DataFormats/Math/interface/deltaR.h"
0056 #include "DataFormats/VertexReco/interface/Vertex.h"
0057 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0058 #include "FWCore/Framework/interface/Event.h"
0059 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0060 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0061 #include "FWCore/ServiceRegistry/interface/Service.h"
0062 #include "FWCore/Utilities/interface/EDGetToken.h"
0063 #include "JetMETCorrections/Objects/interface/JetCorrector.h"
0064 #include "RecoJets/JetProducers/interface/JetMatchingTools.h"
0065 #include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h"
0066 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
0067 
0068 const Int_t MAXPARTICLE = 10000;
0069 const Double_t BarrelEta = 2.0;
0070 const Double_t EndcapEta = 3.0;
0071 const Double_t ForwardEta = 5.0;
0072 
0073 class JetTester_HeavyIons : public DQMEDAnalyzer {
0074 public:
0075   explicit JetTester_HeavyIons(const edm::ParameterSet &);
0076   ~JetTester_HeavyIons() override;
0077 
0078   void analyze(const edm::Event &, const edm::EventSetup &) override;
0079   // virtual void beginJob();
0080   // virtual void endJob();
0081   void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0082   // reco::Vertex::Point getVtx(const edm::Event& ev);
0083 
0084   // double getEt(const DetID )
0085 
0086 private:
0087   void fillMatchHists(const double GenEta,
0088                       const double GenPhi,
0089                       const double GenPt,
0090                       const double RecoEta,
0091                       const double RecoPhi,
0092                       const double RecoPt);
0093 
0094   edm::InputTag mInputCollection;
0095   edm::InputTag mInputGenCollection;
0096   edm::InputTag mInputPFCandCollection;
0097   // edm::InputTag   mInputCandCollection;
0098   // edm::InputTag   rhoTag;
0099   edm::InputTag centralityTag_;
0100   edm::EDGetTokenT<reco::Centrality> centralityToken;
0101   edm::Handle<reco::Centrality> centrality_;
0102 
0103   edm::InputTag centralityBinTag_;
0104   edm::EDGetTokenT<int> centralityBinToken;
0105   edm::Handle<int> centralityBin_;
0106 
0107   std::string mOutputFile;
0108   std::string JetType;
0109   std::string UEAlgo;
0110   edm::InputTag Background;
0111   double mRecoJetPtThreshold;
0112   double mMatchGenPtThreshold;
0113   double mGenEnergyFractionThreshold;
0114   double mReverseEnergyFractionThreshold;
0115   double mRThreshold;
0116   std::string JetCorrectionService;
0117 
0118   // Tokens
0119   edm::EDGetTokenT<std::vector<reco::Vertex>> pvToken_;
0120   edm::EDGetTokenT<CaloTowerCollection> caloTowersToken_;
0121   edm::EDGetTokenT<reco::CaloJetCollection> caloJetsToken_;
0122   edm::EDGetTokenT<reco::PFJetCollection> pfJetsToken_;
0123   edm::EDGetTokenT<reco::BasicJetCollection> basicJetsToken_;
0124   edm::EDGetTokenT<reco::JPTJetCollection> jptJetsToken_;
0125   edm::EDGetTokenT<reco::GenJetCollection> genJetsToken_;
0126   edm::EDGetTokenT<GenEventInfoProduct> evtToken_;
0127   edm::EDGetTokenT<reco::PFCandidateCollection> pfCandToken_;
0128   edm::EDGetTokenT<reco::CandidateView> pfCandViewToken_;
0129   edm::EDGetTokenT<reco::CandidateView> caloCandViewToken_;
0130   // edm::EDGetTokenT<reco::VoronoiMap> backgrounds_;
0131   edm::EDGetTokenT<edm::ValueMap<reco::VoronoiBackground>> backgrounds_;
0132   edm::EDGetTokenT<std::vector<float>> backgrounds_value_;
0133   edm::EDGetTokenT<std::vector<reco::Vertex>> hiVertexToken_;
0134 
0135   // Include Particle flow variables
0136   MonitorElement *mNPFpart;
0137   MonitorElement *mPFPt;
0138   MonitorElement *mPFEta;
0139   MonitorElement *mPFPhi;
0140   MonitorElement *mPFVsPt;
0141   MonitorElement *mPFVsPtInitial;
0142   MonitorElement *mPFArea;
0143   MonitorElement *mNCalopart;
0144   MonitorElement *mCaloPt;
0145   MonitorElement *mCaloEta;
0146   MonitorElement *mCaloPhi;
0147   MonitorElement *mCaloVsPt;
0148   MonitorElement *mCaloVsPtInitial;
0149   MonitorElement *mCaloArea;
0150   MonitorElement *mSumpt;
0151 
0152   MonitorElement *mSumPFVsPt;
0153   MonitorElement *mSumPFVsPtInitial;
0154   MonitorElement *mSumPFPt;
0155 
0156   MonitorElement *mSumCaloVsPt;
0157   MonitorElement *mSumCaloVsPtInitial;
0158   MonitorElement *mSumCaloPt;
0159 
0160   MonitorElement *mSumSquaredPFVsPt;
0161   MonitorElement *mSumSquaredPFVsPtInitial;
0162   MonitorElement *mSumSquaredPFPt;
0163 
0164   MonitorElement *mSumSquaredCaloVsPt;
0165   MonitorElement *mSumSquaredCaloVsPtInitial;
0166   MonitorElement *mSumSquaredCaloPt;
0167 
0168   // Event variables (including centrality)
0169   MonitorElement *mNvtx;
0170   MonitorElement *mHF;
0171 
0172   // new additions Jan 12th 2015
0173   MonitorElement *mSumPFVsPt_HF;
0174   MonitorElement *mSumPFVsPtInitial_HF;
0175   MonitorElement *mSumPFPt_HF;
0176   MonitorElement *mDeltapT;
0177   MonitorElement *mDeltapT_eta;
0178 
0179   MonitorElement *mSumCaloVsPt_HF;
0180   MonitorElement *mSumCaloVsPtInitial_HF;
0181   MonitorElement *mSumCaloPt_HF;
0182 
0183   MonitorElement *mSumPFVsPtInitial_n5p191_n2p650;
0184   MonitorElement *mSumPFVsPtInitial_n2p650_n2p043;
0185   MonitorElement *mSumPFVsPtInitial_n2p043_n1p740;
0186   MonitorElement *mSumPFVsPtInitial_n1p740_n1p479;
0187   MonitorElement *mSumPFVsPtInitial_n1p479_n1p131;
0188   MonitorElement *mSumPFVsPtInitial_n1p131_n0p783;
0189   MonitorElement *mSumPFVsPtInitial_n0p783_n0p522;
0190   MonitorElement *mSumPFVsPtInitial_n0p522_0p522;
0191   MonitorElement *mSumPFVsPtInitial_0p522_0p783;
0192   MonitorElement *mSumPFVsPtInitial_0p783_1p131;
0193   MonitorElement *mSumPFVsPtInitial_1p131_1p479;
0194   MonitorElement *mSumPFVsPtInitial_1p479_1p740;
0195   MonitorElement *mSumPFVsPtInitial_1p740_2p043;
0196   MonitorElement *mSumPFVsPtInitial_2p043_2p650;
0197   MonitorElement *mSumPFVsPtInitial_2p650_5p191;
0198 
0199   MonitorElement *mSumPFVsPt_n5p191_n2p650;
0200   MonitorElement *mSumPFVsPt_n2p650_n2p043;
0201   MonitorElement *mSumPFVsPt_n2p043_n1p740;
0202   MonitorElement *mSumPFVsPt_n1p740_n1p479;
0203   MonitorElement *mSumPFVsPt_n1p479_n1p131;
0204   MonitorElement *mSumPFVsPt_n1p131_n0p783;
0205   MonitorElement *mSumPFVsPt_n0p783_n0p522;
0206   MonitorElement *mSumPFVsPt_n0p522_0p522;
0207   MonitorElement *mSumPFVsPt_0p522_0p783;
0208   MonitorElement *mSumPFVsPt_0p783_1p131;
0209   MonitorElement *mSumPFVsPt_1p131_1p479;
0210   MonitorElement *mSumPFVsPt_1p479_1p740;
0211   MonitorElement *mSumPFVsPt_1p740_2p043;
0212   MonitorElement *mSumPFVsPt_2p043_2p650;
0213   MonitorElement *mSumPFVsPt_2p650_5p191;
0214 
0215   MonitorElement *mSumPFPt_n5p191_n2p650;
0216   MonitorElement *mSumPFPt_n2p650_n2p043;
0217   MonitorElement *mSumPFPt_n2p043_n1p740;
0218   MonitorElement *mSumPFPt_n1p740_n1p479;
0219   MonitorElement *mSumPFPt_n1p479_n1p131;
0220   MonitorElement *mSumPFPt_n1p131_n0p783;
0221   MonitorElement *mSumPFPt_n0p783_n0p522;
0222   MonitorElement *mSumPFPt_n0p522_0p522;
0223   MonitorElement *mSumPFPt_0p522_0p783;
0224   MonitorElement *mSumPFPt_0p783_1p131;
0225   MonitorElement *mSumPFPt_1p131_1p479;
0226   MonitorElement *mSumPFPt_1p479_1p740;
0227   MonitorElement *mSumPFPt_1p740_2p043;
0228   MonitorElement *mSumPFPt_2p043_2p650;
0229   MonitorElement *mSumPFPt_2p650_5p191;
0230 
0231   MonitorElement *mSumCaloVsPtInitial_n5p191_n2p650;
0232   MonitorElement *mSumCaloVsPtInitial_n2p650_n2p043;
0233   MonitorElement *mSumCaloVsPtInitial_n2p043_n1p740;
0234   MonitorElement *mSumCaloVsPtInitial_n1p740_n1p479;
0235   MonitorElement *mSumCaloVsPtInitial_n1p479_n1p131;
0236   MonitorElement *mSumCaloVsPtInitial_n1p131_n0p783;
0237   MonitorElement *mSumCaloVsPtInitial_n0p783_n0p522;
0238   MonitorElement *mSumCaloVsPtInitial_n0p522_0p522;
0239   MonitorElement *mSumCaloVsPtInitial_0p522_0p783;
0240   MonitorElement *mSumCaloVsPtInitial_0p783_1p131;
0241   MonitorElement *mSumCaloVsPtInitial_1p131_1p479;
0242   MonitorElement *mSumCaloVsPtInitial_1p479_1p740;
0243   MonitorElement *mSumCaloVsPtInitial_1p740_2p043;
0244   MonitorElement *mSumCaloVsPtInitial_2p043_2p650;
0245   MonitorElement *mSumCaloVsPtInitial_2p650_5p191;
0246 
0247   MonitorElement *mSumCaloVsPt_n5p191_n2p650;
0248   MonitorElement *mSumCaloVsPt_n2p650_n2p043;
0249   MonitorElement *mSumCaloVsPt_n2p043_n1p740;
0250   MonitorElement *mSumCaloVsPt_n1p740_n1p479;
0251   MonitorElement *mSumCaloVsPt_n1p479_n1p131;
0252   MonitorElement *mSumCaloVsPt_n1p131_n0p783;
0253   MonitorElement *mSumCaloVsPt_n0p783_n0p522;
0254   MonitorElement *mSumCaloVsPt_n0p522_0p522;
0255   MonitorElement *mSumCaloVsPt_0p522_0p783;
0256   MonitorElement *mSumCaloVsPt_0p783_1p131;
0257   MonitorElement *mSumCaloVsPt_1p131_1p479;
0258   MonitorElement *mSumCaloVsPt_1p479_1p740;
0259   MonitorElement *mSumCaloVsPt_1p740_2p043;
0260   MonitorElement *mSumCaloVsPt_2p043_2p650;
0261   MonitorElement *mSumCaloVsPt_2p650_5p191;
0262 
0263   MonitorElement *mSumCaloPt_n5p191_n2p650;
0264   MonitorElement *mSumCaloPt_n2p650_n2p043;
0265   MonitorElement *mSumCaloPt_n2p043_n1p740;
0266   MonitorElement *mSumCaloPt_n1p740_n1p479;
0267   MonitorElement *mSumCaloPt_n1p479_n1p131;
0268   MonitorElement *mSumCaloPt_n1p131_n0p783;
0269   MonitorElement *mSumCaloPt_n0p783_n0p522;
0270   MonitorElement *mSumCaloPt_n0p522_0p522;
0271   MonitorElement *mSumCaloPt_0p522_0p783;
0272   MonitorElement *mSumCaloPt_0p783_1p131;
0273   MonitorElement *mSumCaloPt_1p131_1p479;
0274   MonitorElement *mSumCaloPt_1p479_1p740;
0275   MonitorElement *mSumCaloPt_1p740_2p043;
0276   MonitorElement *mSumCaloPt_2p043_2p650;
0277   MonitorElement *mSumCaloPt_2p650_5p191;
0278 
0279   // Jet parameters
0280   MonitorElement *mEta;
0281   MonitorElement *mPhi;
0282   MonitorElement *mPt;
0283   MonitorElement *mP;
0284   MonitorElement *mEnergy;
0285   MonitorElement *mMass;
0286   MonitorElement *mConstituents;
0287   MonitorElement *mJetArea;
0288   MonitorElement *mjetpileup;
0289   MonitorElement *mNJets;
0290   MonitorElement *mNJets_40;
0291 
0292   // histograms added on Oct 27th to study the gen-reco
0293   MonitorElement *mGenEta;
0294   MonitorElement *mGenPhi;
0295   MonitorElement *mGenPt;
0296   MonitorElement *mPtHat;
0297 
0298   MonitorElement *mPtRecoOverGen_B_20_30_Cent_0_10;
0299   MonitorElement *mPtRecoOverGen_E_20_30_Cent_0_10;
0300   MonitorElement *mPtRecoOverGen_F_20_30_Cent_0_10;
0301   MonitorElement *mPtRecoOverGen_B_30_50_Cent_0_10;
0302   MonitorElement *mPtRecoOverGen_E_30_50_Cent_0_10;
0303   MonitorElement *mPtRecoOverGen_F_30_50_Cent_0_10;
0304   MonitorElement *mPtRecoOverGen_B_50_80_Cent_0_10;
0305   MonitorElement *mPtRecoOverGen_E_50_80_Cent_0_10;
0306   MonitorElement *mPtRecoOverGen_F_50_80_Cent_0_10;
0307   MonitorElement *mPtRecoOverGen_B_80_120_Cent_0_10;
0308   MonitorElement *mPtRecoOverGen_E_80_120_Cent_0_10;
0309   MonitorElement *mPtRecoOverGen_F_80_120_Cent_0_10;
0310   MonitorElement *mPtRecoOverGen_B_120_180_Cent_0_10;
0311   MonitorElement *mPtRecoOverGen_E_120_180_Cent_0_10;
0312   MonitorElement *mPtRecoOverGen_F_120_180_Cent_0_10;
0313   MonitorElement *mPtRecoOverGen_B_180_300_Cent_0_10;
0314   MonitorElement *mPtRecoOverGen_E_180_300_Cent_0_10;
0315   MonitorElement *mPtRecoOverGen_F_180_300_Cent_0_10;
0316   MonitorElement *mPtRecoOverGen_B_300_Inf_Cent_0_10;
0317   MonitorElement *mPtRecoOverGen_E_300_Inf_Cent_0_10;
0318   MonitorElement *mPtRecoOverGen_F_300_Inf_Cent_0_10;
0319 
0320   MonitorElement *mPtRecoOverGen_B_20_30_Cent_10_30;
0321   MonitorElement *mPtRecoOverGen_E_20_30_Cent_10_30;
0322   MonitorElement *mPtRecoOverGen_F_20_30_Cent_10_30;
0323   MonitorElement *mPtRecoOverGen_B_30_50_Cent_10_30;
0324   MonitorElement *mPtRecoOverGen_E_30_50_Cent_10_30;
0325   MonitorElement *mPtRecoOverGen_F_30_50_Cent_10_30;
0326   MonitorElement *mPtRecoOverGen_B_50_80_Cent_10_30;
0327   MonitorElement *mPtRecoOverGen_E_50_80_Cent_10_30;
0328   MonitorElement *mPtRecoOverGen_F_50_80_Cent_10_30;
0329   MonitorElement *mPtRecoOverGen_B_80_120_Cent_10_30;
0330   MonitorElement *mPtRecoOverGen_E_80_120_Cent_10_30;
0331   MonitorElement *mPtRecoOverGen_F_80_120_Cent_10_30;
0332   MonitorElement *mPtRecoOverGen_B_120_180_Cent_10_30;
0333   MonitorElement *mPtRecoOverGen_E_120_180_Cent_10_30;
0334   MonitorElement *mPtRecoOverGen_F_120_180_Cent_10_30;
0335   MonitorElement *mPtRecoOverGen_B_180_300_Cent_10_30;
0336   MonitorElement *mPtRecoOverGen_E_180_300_Cent_10_30;
0337   MonitorElement *mPtRecoOverGen_F_180_300_Cent_10_30;
0338   MonitorElement *mPtRecoOverGen_B_300_Inf_Cent_10_30;
0339   MonitorElement *mPtRecoOverGen_E_300_Inf_Cent_10_30;
0340   MonitorElement *mPtRecoOverGen_F_300_Inf_Cent_10_30;
0341 
0342   MonitorElement *mPtRecoOverGen_B_20_30_Cent_30_50;
0343   MonitorElement *mPtRecoOverGen_E_20_30_Cent_30_50;
0344   MonitorElement *mPtRecoOverGen_F_20_30_Cent_30_50;
0345   MonitorElement *mPtRecoOverGen_B_30_50_Cent_30_50;
0346   MonitorElement *mPtRecoOverGen_E_30_50_Cent_30_50;
0347   MonitorElement *mPtRecoOverGen_F_30_50_Cent_30_50;
0348   MonitorElement *mPtRecoOverGen_B_50_80_Cent_30_50;
0349   MonitorElement *mPtRecoOverGen_E_50_80_Cent_30_50;
0350   MonitorElement *mPtRecoOverGen_F_50_80_Cent_30_50;
0351   MonitorElement *mPtRecoOverGen_B_80_120_Cent_30_50;
0352   MonitorElement *mPtRecoOverGen_E_80_120_Cent_30_50;
0353   MonitorElement *mPtRecoOverGen_F_80_120_Cent_30_50;
0354   MonitorElement *mPtRecoOverGen_B_120_180_Cent_30_50;
0355   MonitorElement *mPtRecoOverGen_E_120_180_Cent_30_50;
0356   MonitorElement *mPtRecoOverGen_F_120_180_Cent_30_50;
0357   MonitorElement *mPtRecoOverGen_B_180_300_Cent_30_50;
0358   MonitorElement *mPtRecoOverGen_E_180_300_Cent_30_50;
0359   MonitorElement *mPtRecoOverGen_F_180_300_Cent_30_50;
0360   MonitorElement *mPtRecoOverGen_B_300_Inf_Cent_30_50;
0361   MonitorElement *mPtRecoOverGen_E_300_Inf_Cent_30_50;
0362   MonitorElement *mPtRecoOverGen_F_300_Inf_Cent_30_50;
0363 
0364   MonitorElement *mPtRecoOverGen_B_20_30_Cent_50_80;
0365   MonitorElement *mPtRecoOverGen_E_20_30_Cent_50_80;
0366   MonitorElement *mPtRecoOverGen_F_20_30_Cent_50_80;
0367   MonitorElement *mPtRecoOverGen_B_30_50_Cent_50_80;
0368   MonitorElement *mPtRecoOverGen_E_30_50_Cent_50_80;
0369   MonitorElement *mPtRecoOverGen_F_30_50_Cent_50_80;
0370   MonitorElement *mPtRecoOverGen_B_50_80_Cent_50_80;
0371   MonitorElement *mPtRecoOverGen_E_50_80_Cent_50_80;
0372   MonitorElement *mPtRecoOverGen_F_50_80_Cent_50_80;
0373   MonitorElement *mPtRecoOverGen_B_80_120_Cent_50_80;
0374   MonitorElement *mPtRecoOverGen_E_80_120_Cent_50_80;
0375   MonitorElement *mPtRecoOverGen_F_80_120_Cent_50_80;
0376   MonitorElement *mPtRecoOverGen_B_120_180_Cent_50_80;
0377   MonitorElement *mPtRecoOverGen_E_120_180_Cent_50_80;
0378   MonitorElement *mPtRecoOverGen_F_120_180_Cent_50_80;
0379   MonitorElement *mPtRecoOverGen_B_180_300_Cent_50_80;
0380   MonitorElement *mPtRecoOverGen_E_180_300_Cent_50_80;
0381   MonitorElement *mPtRecoOverGen_F_180_300_Cent_50_80;
0382   MonitorElement *mPtRecoOverGen_B_300_Inf_Cent_50_80;
0383   MonitorElement *mPtRecoOverGen_E_300_Inf_Cent_50_80;
0384   MonitorElement *mPtRecoOverGen_F_300_Inf_Cent_50_80;
0385 
0386   // generation profiles
0387   MonitorElement *mPtRecoOverGen_GenPt_B_Cent_0_10;
0388   MonitorElement *mPtRecoOverGen_GenPt_E_Cent_0_10;
0389   MonitorElement *mPtRecoOverGen_GenPt_F_Cent_0_10;
0390   MonitorElement *mPtRecoOverGen_GenPt_B_Cent_10_30;
0391   MonitorElement *mPtRecoOverGen_GenPt_E_Cent_10_30;
0392   MonitorElement *mPtRecoOverGen_GenPt_F_Cent_10_30;
0393   MonitorElement *mPtRecoOverGen_GenPt_B_Cent_30_50;
0394   MonitorElement *mPtRecoOverGen_GenPt_E_Cent_30_50;
0395   MonitorElement *mPtRecoOverGen_GenPt_F_Cent_30_50;
0396   MonitorElement *mPtRecoOverGen_GenPt_B_Cent_50_80;
0397   MonitorElement *mPtRecoOverGen_GenPt_E_Cent_50_80;
0398   MonitorElement *mPtRecoOverGen_GenPt_F_Cent_50_80;
0399 
0400   MonitorElement *mPtRecoOverGen_GenEta_20_30_Cent_0_10;
0401   MonitorElement *mPtRecoOverGen_GenEta_30_50_Cent_0_10;
0402   MonitorElement *mPtRecoOverGen_GenEta_50_80_Cent_0_10;
0403   MonitorElement *mPtRecoOverGen_GenEta_80_120_Cent_0_10;
0404   MonitorElement *mPtRecoOverGen_GenEta_120_180_Cent_0_10;
0405   MonitorElement *mPtRecoOverGen_GenEta_180_300_Cent_0_10;
0406   MonitorElement *mPtRecoOverGen_GenEta_300_Inf_Cent_0_10;
0407 
0408   MonitorElement *mPtRecoOverGen_GenEta_20_30_Cent_10_30;
0409   MonitorElement *mPtRecoOverGen_GenEta_30_50_Cent_10_30;
0410   MonitorElement *mPtRecoOverGen_GenEta_50_80_Cent_10_30;
0411   MonitorElement *mPtRecoOverGen_GenEta_80_120_Cent_10_30;
0412   MonitorElement *mPtRecoOverGen_GenEta_120_180_Cent_10_30;
0413   MonitorElement *mPtRecoOverGen_GenEta_180_300_Cent_10_30;
0414   MonitorElement *mPtRecoOverGen_GenEta_300_Inf_Cent_10_30;
0415 
0416   MonitorElement *mPtRecoOverGen_GenEta_20_30_Cent_30_50;
0417   MonitorElement *mPtRecoOverGen_GenEta_30_50_Cent_30_50;
0418   MonitorElement *mPtRecoOverGen_GenEta_50_80_Cent_30_50;
0419   MonitorElement *mPtRecoOverGen_GenEta_80_120_Cent_30_50;
0420   MonitorElement *mPtRecoOverGen_GenEta_120_180_Cent_30_50;
0421   MonitorElement *mPtRecoOverGen_GenEta_180_300_Cent_30_50;
0422   MonitorElement *mPtRecoOverGen_GenEta_300_Inf_Cent_30_50;
0423 
0424   MonitorElement *mPtRecoOverGen_GenEta_20_30_Cent_50_80;
0425   MonitorElement *mPtRecoOverGen_GenEta_30_50_Cent_50_80;
0426   MonitorElement *mPtRecoOverGen_GenEta_50_80_Cent_50_80;
0427   MonitorElement *mPtRecoOverGen_GenEta_80_120_Cent_50_80;
0428   MonitorElement *mPtRecoOverGen_GenEta_120_180_Cent_50_80;
0429   MonitorElement *mPtRecoOverGen_GenEta_180_300_Cent_50_80;
0430   MonitorElement *mPtRecoOverGen_GenEta_300_Inf_Cent_50_80;
0431 
0432   MonitorElement *mPFCandpT_vs_eta_Unknown;        // pf id 0
0433   MonitorElement *mPFCandpT_vs_eta_ChargedHadron;  // pf id - 1
0434   MonitorElement *mPFCandpT_vs_eta_electron;       // pf id - 2
0435   MonitorElement *mPFCandpT_vs_eta_muon;           // pf id - 3
0436   MonitorElement *mPFCandpT_vs_eta_photon;         // pf id - 4
0437   MonitorElement *mPFCandpT_vs_eta_NeutralHadron;  // pf id - 5
0438   MonitorElement *mPFCandpT_vs_eta_HadE_inHF;      // pf id - 6
0439   MonitorElement *mPFCandpT_vs_eta_EME_inHF;       // pf id - 7
0440 
0441   MonitorElement *mPFCandpT_Barrel_Unknown;        // pf id 0
0442   MonitorElement *mPFCandpT_Barrel_ChargedHadron;  // pf id - 1
0443   MonitorElement *mPFCandpT_Barrel_electron;       // pf id - 2
0444   MonitorElement *mPFCandpT_Barrel_muon;           // pf id - 3
0445   MonitorElement *mPFCandpT_Barrel_photon;         // pf id - 4
0446   MonitorElement *mPFCandpT_Barrel_NeutralHadron;  // pf id - 5
0447   MonitorElement *mPFCandpT_Barrel_HadE_inHF;      // pf id - 6
0448   MonitorElement *mPFCandpT_Barrel_EME_inHF;       // pf id - 7
0449 
0450   MonitorElement *mPFCandpT_Endcap_Unknown;        // pf id 0
0451   MonitorElement *mPFCandpT_Endcap_ChargedHadron;  // pf id - 1
0452   MonitorElement *mPFCandpT_Endcap_electron;       // pf id - 2
0453   MonitorElement *mPFCandpT_Endcap_muon;           // pf id - 3
0454   MonitorElement *mPFCandpT_Endcap_photon;         // pf id - 4
0455   MonitorElement *mPFCandpT_Endcap_NeutralHadron;  // pf id - 5
0456   MonitorElement *mPFCandpT_Endcap_HadE_inHF;      // pf id - 6
0457   MonitorElement *mPFCandpT_Endcap_EME_inHF;       // pf id - 7
0458 
0459   MonitorElement *mPFCandpT_Forward_Unknown;        // pf id 0
0460   MonitorElement *mPFCandpT_Forward_ChargedHadron;  // pf id - 1
0461   MonitorElement *mPFCandpT_Forward_electron;       // pf id - 2
0462   MonitorElement *mPFCandpT_Forward_muon;           // pf id - 3
0463   MonitorElement *mPFCandpT_Forward_photon;         // pf id - 4
0464   MonitorElement *mPFCandpT_Forward_NeutralHadron;  // pf id - 5
0465   MonitorElement *mPFCandpT_Forward_HadE_inHF;      // pf id - 6
0466   MonitorElement *mPFCandpT_Forward_EME_inHF;       // pf id - 7
0467 
0468   // Parameters
0469 
0470   bool isCaloJet;
0471   bool isJPTJet;
0472   bool isPFJet;
0473 
0474   static const Int_t fourierOrder_ = 5;
0475   static const Int_t etaBins_ = 15;
0476 
0477   static const size_t nedge_pseudorapidity = etaBins_ + 1;
0478 };
0479 
0480 #endif