Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 10:07:09

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