Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:09:52

0001 /*
0002   JetMETHLTOffline DQM code
0003   Migrated to use DQMEDAnalyzer by: Jyothsna Rani Komaragiri, Oct 2014
0004 */
0005 
0006 #ifndef JetMETHLTOfflineSource_H
0007 #define JetMETHLTOfflineSource_H
0008 
0009 // system include files
0010 #include <memory>
0011 #include <unistd.h>
0012 
0013 // user include files
0014 #include "DQMServices/Core/interface/DQMStore.h"
0015 
0016 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0017 
0018 #include "FWCore/Common/interface/TriggerNames.h"
0019 #include "FWCore/Framework/interface/Frameworkfwd.h"
0020 #include "FWCore/Framework/interface/Event.h"
0021 #include "FWCore/Framework/interface/MakerMacros.h"
0022 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0023 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0024 
0025 #include "DataFormats/Common/interface/TriggerResults.h"
0026 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
0027 #include "DataFormats/HLTReco/interface/TriggerObject.h"
0028 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
0029 
0030 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
0031 
0032 #include "RecoJets/JetProducers/interface/JetIDHelper.h"
0033 
0034 #include "DataFormats/JetReco/interface/Jet.h"
0035 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
0036 #include "DataFormats/JetReco/interface/CaloJet.h"
0037 #include "DataFormats/JetReco/interface/PFJetCollection.h"
0038 #include "DataFormats/JetReco/interface/PFJet.h"
0039 
0040 #include "DataFormats/METReco/interface/MET.h"
0041 #include "DataFormats/METReco/interface/CaloMETCollection.h"
0042 #include "DataFormats/METReco/interface/CaloMET.h"
0043 #include "DataFormats/METReco/interface/PFMETCollection.h"
0044 #include "DataFormats/METReco/interface/PFMET.h"
0045 
0046 #include "DataFormats/VertexReco/interface/Vertex.h"
0047 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0048 
0049 #include "JetMETCorrections/JetCorrector/interface/JetCorrector.h"
0050 
0051 #include <iostream>
0052 #include <fstream>
0053 #include <utility>
0054 #include <utility>
0055 #include <vector>
0056 #include <string>
0057 #include <sstream>
0058 
0059 class PtSorter {
0060 public:
0061   template <class T>
0062   bool operator()(const T& a, const T& b) {
0063     return (a.pt() > b.pt());
0064   }
0065 };
0066 
0067 class JetMETHLTOfflineSource : public DQMEDAnalyzer {
0068 public:
0069   explicit JetMETHLTOfflineSource(const edm::ParameterSet&);
0070   ~JetMETHLTOfflineSource() override;
0071 
0072 private:
0073   void analyze(const edm::Event&, const edm::EventSetup&) override;
0074   void bookHistograms(DQMStore::IBooker&, edm::Run const& run, edm::EventSetup const& c) override;
0075   void dqmBeginRun(edm::Run const& run, edm::EventSetup const& c) override;
0076 
0077   //helper functions
0078   virtual bool isBarrel(double eta);
0079   virtual bool isEndCap(double eta);
0080   virtual bool isForward(double eta);
0081   virtual bool validPathHLT(std::string path);
0082   virtual bool isHLTPathAccepted(std::string pathName);
0083   virtual bool isTriggerObjectFound(std::string objectName);
0084   virtual double TriggerPosition(std::string trigName);
0085 
0086   virtual void fillMEforMonTriggerSummary(const edm::Event& iEvent, const edm::EventSetup&);
0087   virtual void fillMEforMonAllTrigger(const edm::Event& iEvent, const edm::EventSetup&);
0088   virtual void fillMEforEffAllTrigger(const edm::Event& iEvent, const edm::EventSetup&);
0089   virtual void fillMEforTriggerNTfired();
0090 
0091   const std::string getL1ConditionModuleName(const std::string& pathname);  //ml added
0092 
0093   // ----------member data ---------------------------
0094   std::vector<std::string> MuonTrigPaths_;
0095   std::vector<std::string> MBTrigPaths_;
0096   std::vector<int> prescUsed_;
0097 
0098   std::string dirname_;
0099   std::string processname_;
0100 
0101   // JetID helper
0102   reco::helper::JetIDHelper* jetID;
0103 
0104   bool verbose_;
0105   bool runStandalone_;
0106   bool plotAll_;
0107   bool plotEff_;
0108 
0109   bool isSetup_;
0110   bool nameForEff_;
0111 
0112   double _fEMF;
0113   double _feta;
0114   double _fHPD;
0115   double _n90Hits;
0116   double _pfMHT;
0117   double _min_NHEF;
0118   double _max_NHEF;
0119   double _min_CHEF;
0120   double _max_CHEF;
0121   double _min_NEMF;
0122   double _max_NEMF;
0123   double _min_CEMF;
0124   double _max_CEMF;
0125 
0126   edm::InputTag triggerSummaryLabel_;
0127   edm::InputTag triggerResultsLabel_;
0128   edm::EDGetTokenT<edm::TriggerResults> triggerResultsToken;
0129   edm::EDGetTokenT<edm::TriggerResults> triggerResultsFUToken;
0130   edm::EDGetTokenT<trigger::TriggerEvent> triggerSummaryToken;
0131   edm::EDGetTokenT<trigger::TriggerEvent> triggerSummaryFUToken;
0132   edm::EDGetTokenT<reco::PFJetCollection> pfJetsToken;
0133   edm::EDGetTokenT<reco::PFMETCollection> pfMetToken;
0134   edm::EDGetTokenT<reco::CaloJetCollection> caloJetsToken;
0135   edm::EDGetTokenT<reco::CaloMETCollection> caloMetToken;
0136   edm::EDGetTokenT<reco::VertexCollection> vertexToken;
0137 
0138   edm::Handle<reco::CaloJetCollection> calojetColl_;
0139   edm::Handle<reco::CaloMETCollection> calometColl_;
0140   edm::Handle<reco::PFJetCollection> pfjetColl_;
0141   edm::Handle<reco::PFMETCollection> pfmetColl_;
0142 
0143   edm::EDGetTokenT<reco::JetCorrector> CaloJetCorToken_;
0144   edm::EDGetTokenT<reco::JetCorrector> PFJetCorToken_;
0145 
0146   std::vector<std::string> pathFilter_;
0147   std::vector<std::string> pathRejectKeyword_;
0148   std::vector<std::pair<std::string, std::string> > custompathnamepairs_;
0149 
0150   reco::CaloJetCollection calojet;
0151   reco::PFJetCollection pfjet;
0152   HLTConfigProvider hltConfig_;
0153   edm::Handle<edm::TriggerResults> triggerResults_;
0154   edm::TriggerNames triggerNames_;  // TriggerNames class
0155   edm::Handle<trigger::TriggerEvent> triggerObj_;
0156 
0157   double CaloJetPx[2];
0158   double CaloJetPy[2];
0159   double CaloJetPt[2];
0160   double CaloJetEta[2];
0161   double CaloJetPhi[2];
0162   double CaloJetEMF[2];
0163   double CaloJetfHPD[2];
0164   double CaloJetn90[2];
0165 
0166   double PFJetPx[2];
0167   double PFJetPy[2];
0168   double PFJetPt[2];
0169   double PFJetEta[2];
0170   double PFJetPhi[2];
0171   double PFJetNHEF[2];
0172   double PFJetCHEF[2];
0173   double PFJetNEMF[2];
0174   double PFJetCEMF[2];
0175 
0176   double pfMHTx_All;
0177   double pfMHTy_All;
0178 
0179   // ----------------- //
0180   // helper class to store the data path
0181 
0182   class PathInfo {
0183     PathInfo()
0184         : prescaleUsed_(-1),
0185           denomPathName_("unset"),
0186           pathName_("unset"),
0187           l1pathName_("unset"),
0188           filterName_("unset"),
0189           DenomfilterName_("unset"),
0190           processName_("unset"),
0191           objectType_(-1),
0192           triggerType_("unset"){};
0193 
0194   public:
0195     void setHistos(MonitorElement* const N,
0196                    MonitorElement* const Pt,
0197                    MonitorElement* const PtBarrel,
0198                    MonitorElement* const PtEndcap,
0199                    MonitorElement* const PtForward,
0200                    MonitorElement* const Eta,
0201                    MonitorElement* const Phi,
0202                    MonitorElement* const EtaPhi,
0203                    //
0204                    MonitorElement* const N_L1,
0205                    MonitorElement* const Pt_L1,
0206                    MonitorElement* const PtBarrel_L1,
0207                    MonitorElement* const PtEndcap_L1,
0208                    MonitorElement* const PtForward_L1,
0209                    MonitorElement* const Eta_L1,
0210                    MonitorElement* const Phi_L1,
0211                    MonitorElement* const EtaPhi_L1,
0212                    MonitorElement* const N_HLT,
0213                    MonitorElement* const Pt_HLT,
0214                    MonitorElement* const PtBarrel_HLT,
0215                    MonitorElement* const PtEndcap_HLT,
0216                    MonitorElement* const PtForward_HLT,
0217                    MonitorElement* const Eta_HLT,
0218                    MonitorElement* const Phi_HLT,
0219                    MonitorElement* const EtaPhi_HLT,
0220                    //
0221                    MonitorElement* const PtResolution_L1HLT,
0222                    MonitorElement* const EtaResolution_L1HLT,
0223                    MonitorElement* const PhiResolution_L1HLT,
0224                    MonitorElement* const PtResolution_HLTRecObj,
0225                    MonitorElement* const EtaResolution_HLTRecObj,
0226                    MonitorElement* const PhiResolution_HLTRecObj,
0227                    //
0228                    MonitorElement* const PtCorrelation_L1HLT,
0229                    MonitorElement* const EtaCorrelation_L1HLT,
0230                    MonitorElement* const PhiCorrelation_L1HLT,
0231                    MonitorElement* const PtCorrelation_HLTRecObj,
0232                    MonitorElement* const EtaCorrelation_HLTRecObj,
0233                    MonitorElement* const PhiCorrelation_HLTRecObj,
0234                    //
0235                    MonitorElement* const JetAveragePt,
0236                    MonitorElement* const JetAverageEta,
0237                    MonitorElement* const JetPhiDifference,
0238                    MonitorElement* const HLTAveragePt,
0239                    MonitorElement* const HLTAverageEta,
0240                    MonitorElement* const HLTPhiDifference,
0241                    MonitorElement* const L1AveragePt,
0242                    MonitorElement* const L1AverageEta,
0243                    MonitorElement* const L1PhiDifference)
0244 
0245     {
0246       N_ = N;
0247       Pt_ = Pt;
0248       PtBarrel_ = PtBarrel;
0249       PtEndcap_ = PtEndcap;
0250       PtForward_ = PtForward;
0251       Eta_ = Eta;
0252       Phi_ = Phi;
0253       EtaPhi_ = EtaPhi;
0254       N_L1_ = N_L1;
0255       Pt_L1_ = Pt_L1;
0256       PtBarrel_L1_ = PtBarrel_L1;
0257       PtEndcap_L1_ = PtEndcap_L1;
0258       PtForward_L1_ = PtForward_L1;
0259       Eta_L1_ = Eta_L1;
0260       Phi_L1_ = Phi_L1;
0261       EtaPhi_L1_ = EtaPhi_L1;
0262       N_HLT_ = N_HLT;
0263       Pt_HLT_ = Pt_HLT;
0264       PtBarrel_HLT_ = PtBarrel_HLT;
0265       PtEndcap_HLT_ = PtEndcap_HLT;
0266       PtForward_HLT_ = PtForward_HLT;
0267       Eta_HLT_ = Eta_HLT;
0268       Phi_HLT_ = Phi_HLT;
0269       EtaPhi_HLT_ = EtaPhi_HLT;
0270       //
0271       PtResolution_L1HLT_ = PtResolution_L1HLT;
0272       EtaResolution_L1HLT_ = EtaResolution_L1HLT;
0273       PhiResolution_L1HLT_ = PhiResolution_L1HLT;
0274       PtResolution_HLTRecObj_ = PtResolution_HLTRecObj;
0275       EtaResolution_HLTRecObj_ = EtaResolution_HLTRecObj;
0276       PhiResolution_HLTRecObj_ = PhiResolution_HLTRecObj;
0277       //
0278       PtCorrelation_L1HLT_ = PtCorrelation_L1HLT;
0279       EtaCorrelation_L1HLT_ = EtaCorrelation_L1HLT;
0280       PhiCorrelation_L1HLT_ = PhiCorrelation_L1HLT;
0281       PtCorrelation_HLTRecObj_ = PtCorrelation_HLTRecObj;
0282       EtaCorrelation_HLTRecObj_ = EtaCorrelation_HLTRecObj;
0283       PhiCorrelation_HLTRecObj_ = PhiCorrelation_HLTRecObj;
0284       //
0285       JetAveragePt_ = JetAveragePt;
0286       JetAverageEta_ = JetAverageEta;
0287       JetPhiDifference_ = JetPhiDifference;
0288       HLTAveragePt_ = HLTAveragePt;
0289       HLTAverageEta_ = HLTAverageEta;
0290       HLTPhiDifference_ = HLTPhiDifference;
0291       L1AveragePt_ = L1AveragePt;
0292       L1AverageEta_ = L1AverageEta;
0293       L1PhiDifference_ = L1PhiDifference;
0294     };
0295 
0296     void setDgnsHistos(MonitorElement* const TriggerSummary,
0297                        MonitorElement* const JetSize,
0298                        MonitorElement* const JetPt,
0299                        MonitorElement* const EtavsPt,
0300                        MonitorElement* const PhivsPt,
0301                        MonitorElement* const Pt12,
0302                        MonitorElement* const Eta12,
0303                        MonitorElement* const Phi12,
0304                        MonitorElement* const Pt3,
0305                        MonitorElement* const Pt12Pt3,
0306                        MonitorElement* const Pt12Phi12) {
0307       TriggerSummary_ = TriggerSummary;
0308       JetSize_ = JetSize;
0309       JetPt_ = JetPt;
0310       EtavsPt_ = EtavsPt;
0311       PhivsPt_ = PhivsPt;
0312       Pt12_ = Pt12;
0313       Eta12_ = Eta12;
0314       Phi12_ = Phi12;
0315       Pt3_ = Pt3;
0316       Pt12Pt3_ = Pt12Pt3;
0317       Pt12Phi12_ = Pt12Phi12;
0318     };
0319 
0320     void setEffHistos(MonitorElement* const NumeratorPt,
0321                       MonitorElement* const NumeratorPtBarrel,
0322                       MonitorElement* const NumeratorPtEndcap,
0323                       MonitorElement* const NumeratorPtForward,
0324                       MonitorElement* const NumeratorEta,
0325                       MonitorElement* const NumeratorPhi,
0326                       MonitorElement* const NumeratorEtaPhi,
0327                       //
0328                       MonitorElement* const NumeratorEtaBarrel,
0329                       MonitorElement* const NumeratorPhiBarrel,
0330                       MonitorElement* const NumeratorEtaEndcap,
0331                       MonitorElement* const NumeratorPhiEndcap,
0332                       MonitorElement* const NumeratorEtaForward,
0333                       MonitorElement* const NumeratorPhiForward,
0334                       MonitorElement* const NumeratorEta_LowpTcut,
0335                       MonitorElement* const NumeratorPhi_LowpTcut,
0336                       MonitorElement* const NumeratorEtaPhi_LowpTcut,
0337                       MonitorElement* const NumeratorEta_MedpTcut,
0338                       MonitorElement* const NumeratorPhi_MedpTcut,
0339                       MonitorElement* const NumeratorEtaPhi_MedpTcut,
0340                       MonitorElement* const NumeratorEta_HighpTcut,
0341                       MonitorElement* const NumeratorPhi_HighpTcut,
0342                       MonitorElement* const NumeratorEtaPhi_HighpTcut,
0343                       //
0344                       MonitorElement* const DenominatorPt,
0345                       MonitorElement* const DenominatorPtBarrel,
0346                       MonitorElement* const DenominatorPtEndcap,
0347                       MonitorElement* const DenominatorPtForward,
0348                       MonitorElement* const DenominatorEta,
0349                       MonitorElement* const DenominatorPhi,
0350                       MonitorElement* const DenominatorEtaPhi,
0351                       //
0352                       MonitorElement* const DenominatorEtaBarrel,
0353                       MonitorElement* const DenominatorPhiBarrel,
0354                       MonitorElement* const DenominatorEtaEndcap,
0355                       MonitorElement* const DenominatorPhiEndcap,
0356                       MonitorElement* const DenominatorEtaForward,
0357                       MonitorElement* const DenominatorPhiForward,
0358                       MonitorElement* const DenominatorEta_LowpTcut,
0359                       MonitorElement* const DenominatorPhi_LowpTcut,
0360                       MonitorElement* const DenominatorEtaPhi_LowpTcut,
0361                       MonitorElement* const DenominatorEta_MedpTcut,
0362                       MonitorElement* const DenominatorPhi_MedpTcut,
0363                       MonitorElement* const DenominatorEtaPhi_MedpTcut,
0364                       MonitorElement* const DenominatorEta_HighpTcut,
0365                       MonitorElement* const DenominatorPhi_HighpTcut,
0366                       MonitorElement* const DenominatorEtaPhi_HighpTcut,
0367                       //
0368                       MonitorElement* const DeltaR,
0369                       MonitorElement* const DeltaPhi,
0370                       //
0371                       MonitorElement* const NumeratorPFPt,
0372                       MonitorElement* const NumeratorPFMHT,
0373                       MonitorElement* const NumeratorPFPtBarrel,
0374                       MonitorElement* const NumeratorPFPtEndcap,
0375                       MonitorElement* const NumeratorPFPtForward,
0376                       MonitorElement* const NumeratorPFEta,
0377                       MonitorElement* const NumeratorPFPhi,
0378                       MonitorElement* const NumeratorPFEtaPhi,
0379                       //
0380                       MonitorElement* const NumeratorPFEtaBarrel,
0381                       MonitorElement* const NumeratorPFPhiBarrel,
0382                       MonitorElement* const NumeratorPFEtaEndcap,
0383                       MonitorElement* const NumeratorPFPhiEndcap,
0384                       MonitorElement* const NumeratorPFEtaForward,
0385                       MonitorElement* const NumeratorPFPhiForward,
0386                       MonitorElement* const NumeratorPFEta_LowpTcut,
0387                       MonitorElement* const NumeratorPFPhi_LowpTcut,
0388                       MonitorElement* const NumeratorPFEtaPhi_LowpTcut,
0389                       MonitorElement* const NumeratorPFEta_MedpTcut,
0390                       MonitorElement* const NumeratorPFPhi_MedpTcut,
0391                       MonitorElement* const NumeratorPFEtaPhi_MedpTcut,
0392                       MonitorElement* const NumeratorPFEta_HighpTcut,
0393                       MonitorElement* const NumeratorPFPhi_HighpTcut,
0394                       MonitorElement* const NumeratorPFEtaPhi_HighpTcut,
0395                       //
0396                       MonitorElement* const DenominatorPFPt,
0397                       MonitorElement* const DenominatorPFMHT,
0398                       MonitorElement* const DenominatorPFPtBarrel,
0399                       MonitorElement* const DenominatorPFPtEndcap,
0400                       MonitorElement* const DenominatorPFPtForward,
0401                       MonitorElement* const DenominatorPFEta,
0402                       MonitorElement* const DenominatorPFPhi,
0403                       MonitorElement* const DenominatorPFEtaPhi,
0404                       //
0405                       MonitorElement* const DenominatorPFEtaBarrel,
0406                       MonitorElement* const DenominatorPFPhiBarrel,
0407                       MonitorElement* const DenominatorPFEtaEndcap,
0408                       MonitorElement* const DenominatorPFPhiEndcap,
0409                       MonitorElement* const DenominatorPFEtaForward,
0410                       MonitorElement* const DenominatorPFPhiForward,
0411                       MonitorElement* const DenominatorPFEta_LowpTcut,
0412                       MonitorElement* const DenominatorPFPhi_LowpTcut,
0413                       MonitorElement* const DenominatorPFEtaPhi_LowpTcut,
0414                       MonitorElement* const DenominatorPFEta_MedpTcut,
0415                       MonitorElement* const DenominatorPFPhi_MedpTcut,
0416                       MonitorElement* const DenominatorPFEtaPhi_MedpTcut,
0417                       MonitorElement* const DenominatorPFEta_HighpTcut,
0418                       MonitorElement* const DenominatorPFPhi_HighpTcut,
0419                       MonitorElement* const DenominatorPFEtaPhi_HighpTcut,
0420                       //
0421                       MonitorElement* const PFDeltaR,
0422                       MonitorElement* const PFDeltaPhi) {
0423       NumeratorPt_ = NumeratorPt;
0424       NumeratorPtBarrel_ = NumeratorPtBarrel;
0425       NumeratorPtEndcap_ = NumeratorPtEndcap;
0426       NumeratorPtForward_ = NumeratorPtForward;
0427       NumeratorEta_ = NumeratorEta;
0428       NumeratorPhi_ = NumeratorPhi;
0429       NumeratorEtaPhi_ = NumeratorEtaPhi;
0430       //
0431       NumeratorEtaBarrel_ = NumeratorEtaBarrel;
0432       NumeratorPhiBarrel_ = NumeratorPhiBarrel;
0433       NumeratorEtaEndcap_ = NumeratorEtaEndcap;
0434       NumeratorPhiEndcap_ = NumeratorPhiEndcap;
0435       NumeratorEtaForward_ = NumeratorEtaForward;
0436       NumeratorPhiForward_ = NumeratorPhiForward;
0437       NumeratorEta_LowpTcut_ = NumeratorEta_LowpTcut;
0438       NumeratorPhi_LowpTcut_ = NumeratorPhi_LowpTcut;
0439       NumeratorEtaPhi_LowpTcut_ = NumeratorEtaPhi_LowpTcut;
0440       NumeratorEta_MedpTcut_ = NumeratorEta_MedpTcut;
0441       NumeratorPhi_MedpTcut_ = NumeratorPhi_MedpTcut;
0442       NumeratorEtaPhi_MedpTcut_ = NumeratorEtaPhi_MedpTcut;
0443       NumeratorEta_HighpTcut_ = NumeratorEta_HighpTcut;
0444       NumeratorPhi_HighpTcut_ = NumeratorPhi_HighpTcut;
0445       NumeratorEtaPhi_HighpTcut_ = NumeratorEtaPhi_HighpTcut;
0446       //
0447       DenominatorPt_ = DenominatorPt;
0448       DenominatorPtBarrel_ = DenominatorPtBarrel;
0449       DenominatorPtEndcap_ = DenominatorPtEndcap;
0450       DenominatorPtForward_ = DenominatorPtForward;
0451       DenominatorEta_ = DenominatorEta;
0452       DenominatorPhi_ = DenominatorPhi;
0453       DenominatorEtaPhi_ = DenominatorEtaPhi;
0454       //
0455       DenominatorEtaBarrel_ = DenominatorEtaBarrel;
0456       DenominatorPhiBarrel_ = DenominatorPhiBarrel;
0457       DenominatorEtaEndcap_ = DenominatorEtaEndcap;
0458       DenominatorPhiEndcap_ = DenominatorPhiEndcap;
0459       DenominatorEtaForward_ = DenominatorEtaForward;
0460       DenominatorPhiForward_ = DenominatorPhiForward;
0461       DenominatorEta_LowpTcut_ = DenominatorEta_LowpTcut;
0462       DenominatorPhi_LowpTcut_ = DenominatorPhi_LowpTcut;
0463       DenominatorEtaPhi_LowpTcut_ = DenominatorEtaPhi_LowpTcut;
0464       DenominatorEta_MedpTcut_ = DenominatorEta_MedpTcut;
0465       DenominatorPhi_MedpTcut_ = DenominatorPhi_MedpTcut;
0466       DenominatorEtaPhi_MedpTcut_ = DenominatorEtaPhi_MedpTcut;
0467       DenominatorEta_HighpTcut_ = DenominatorEta_HighpTcut;
0468       DenominatorPhi_HighpTcut_ = DenominatorPhi_HighpTcut;
0469       DenominatorEtaPhi_HighpTcut_ = DenominatorEtaPhi_HighpTcut;
0470       //
0471       DeltaR_ = DeltaR;
0472       DeltaPhi_ = DeltaPhi;
0473       //
0474       NumeratorPFPt_ = NumeratorPFPt;
0475       NumeratorPFMHT_ = NumeratorPFMHT;
0476       NumeratorPFPtBarrel_ = NumeratorPFPtBarrel;
0477       NumeratorPFPtEndcap_ = NumeratorPFPtEndcap;
0478       NumeratorPFPtForward_ = NumeratorPFPtForward;
0479       NumeratorPFEta_ = NumeratorPFEta;
0480       NumeratorPFPhi_ = NumeratorPFPhi;
0481       NumeratorPFEtaPhi_ = NumeratorPFEtaPhi;
0482       //
0483       NumeratorPFEtaBarrel_ = NumeratorPFEtaBarrel;
0484       NumeratorPFPhiBarrel_ = NumeratorPFPhiBarrel;
0485       NumeratorPFEtaEndcap_ = NumeratorPFEtaEndcap;
0486       NumeratorPFPhiEndcap_ = NumeratorPFPhiEndcap;
0487       NumeratorPFEtaForward_ = NumeratorPFEtaForward;
0488       NumeratorPFPhiForward_ = NumeratorPFPhiForward;
0489       NumeratorPFEta_LowpTcut_ = NumeratorPFEta_LowpTcut;
0490       NumeratorPFPhi_LowpTcut_ = NumeratorPFPhi_LowpTcut;
0491       NumeratorPFEtaPhi_LowpTcut_ = NumeratorPFEtaPhi_LowpTcut;
0492       NumeratorPFEta_MedpTcut_ = NumeratorPFEta_MedpTcut;
0493       NumeratorPFPhi_MedpTcut_ = NumeratorPFPhi_MedpTcut;
0494       NumeratorPFEtaPhi_MedpTcut_ = NumeratorPFEtaPhi_MedpTcut;
0495       NumeratorPFEta_HighpTcut_ = NumeratorPFEta_HighpTcut;
0496       NumeratorPFPhi_HighpTcut_ = NumeratorPFPhi_HighpTcut;
0497       NumeratorPFEtaPhi_HighpTcut_ = NumeratorPFEtaPhi_HighpTcut;
0498       //
0499       DenominatorPFPt_ = DenominatorPFPt;
0500       DenominatorPFMHT_ = DenominatorPFMHT;
0501       DenominatorPFPtBarrel_ = DenominatorPFPtBarrel;
0502       DenominatorPFPtEndcap_ = DenominatorPFPtEndcap;
0503       DenominatorPFPtForward_ = DenominatorPFPtForward;
0504       DenominatorPFEta_ = DenominatorPFEta;
0505       DenominatorPFPhi_ = DenominatorPFPhi;
0506       DenominatorPFEtaPhi_ = DenominatorPFEtaPhi;
0507       //
0508       DenominatorPFEtaBarrel_ = DenominatorPFEtaBarrel;
0509       DenominatorPFPhiBarrel_ = DenominatorPFPhiBarrel;
0510       DenominatorPFEtaEndcap_ = DenominatorPFEtaEndcap;
0511       DenominatorPFPhiEndcap_ = DenominatorPFPhiEndcap;
0512       DenominatorPFEtaForward_ = DenominatorPFEtaForward;
0513       DenominatorPFPhiForward_ = DenominatorPFPhiForward;
0514       DenominatorPFEta_LowpTcut_ = DenominatorPFEta_LowpTcut;
0515       DenominatorPFPhi_LowpTcut_ = DenominatorPFPhi_LowpTcut;
0516       DenominatorPFEtaPhi_LowpTcut_ = DenominatorPFEtaPhi_LowpTcut;
0517       DenominatorPFEta_MedpTcut_ = DenominatorPFEta_MedpTcut;
0518       DenominatorPFPhi_MedpTcut_ = DenominatorPFPhi_MedpTcut;
0519       DenominatorPFEtaPhi_MedpTcut_ = DenominatorPFEtaPhi_MedpTcut;
0520       DenominatorPFEta_HighpTcut_ = DenominatorPFEta_HighpTcut;
0521       DenominatorPFPhi_HighpTcut_ = DenominatorPFPhi_HighpTcut;
0522       DenominatorPFEtaPhi_HighpTcut_ = DenominatorPFEtaPhi_HighpTcut;
0523       //
0524       PFDeltaR_ = PFDeltaR;
0525       PFDeltaPhi_ = PFDeltaPhi;
0526     };
0527     ~PathInfo() = default;
0528     ;
0529     PathInfo(int prescaleUsed,
0530              std::string denomPathName,
0531              std::string pathName,
0532              std::string l1pathName,
0533              std::string filterName,
0534              std::string DenomfilterName,
0535              std::string processName,
0536              size_t type,
0537              std::string triggerType)
0538         : prescaleUsed_(prescaleUsed),
0539           denomPathName_(std::move(denomPathName)),
0540           pathName_(std::move(pathName)),
0541           l1pathName_(std::move(l1pathName)),
0542           filterName_(std::move(filterName)),
0543           DenomfilterName_(std::move(DenomfilterName)),
0544           processName_(std::move(processName)),
0545           objectType_(type),
0546           triggerType_(std::move(triggerType)) {}
0547 
0548     MonitorElement* getMEhisto_N() { return N_; }
0549     MonitorElement* getMEhisto_Pt() { return Pt_; }
0550     MonitorElement* getMEhisto_PtBarrel() { return PtBarrel_; }
0551     MonitorElement* getMEhisto_PtEndcap() { return PtEndcap_; }
0552     MonitorElement* getMEhisto_PtForward() { return PtForward_; }
0553     MonitorElement* getMEhisto_Eta() { return Eta_; }
0554     MonitorElement* getMEhisto_Phi() { return Phi_; }
0555     MonitorElement* getMEhisto_EtaPhi() { return EtaPhi_; }
0556 
0557     MonitorElement* getMEhisto_N_L1() { return N_L1_; }
0558     MonitorElement* getMEhisto_Pt_L1() { return Pt_L1_; }
0559     MonitorElement* getMEhisto_PtBarrel_L1() { return PtBarrel_L1_; }
0560     MonitorElement* getMEhisto_PtEndcap_L1() { return PtEndcap_L1_; }
0561     MonitorElement* getMEhisto_PtForward_L1() { return PtForward_L1_; }
0562     MonitorElement* getMEhisto_Eta_L1() { return Eta_L1_; }
0563     MonitorElement* getMEhisto_Phi_L1() { return Phi_L1_; }
0564     MonitorElement* getMEhisto_EtaPhi_L1() { return EtaPhi_L1_; }
0565 
0566     MonitorElement* getMEhisto_N_HLT() { return N_HLT_; }
0567     MonitorElement* getMEhisto_Pt_HLT() { return Pt_HLT_; }
0568     MonitorElement* getMEhisto_PtBarrel_HLT() { return PtBarrel_HLT_; }
0569     MonitorElement* getMEhisto_PtEndcap_HLT() { return PtEndcap_HLT_; }
0570     MonitorElement* getMEhisto_PtForward_HLT() { return PtForward_HLT_; }
0571     MonitorElement* getMEhisto_Eta_HLT() { return Eta_HLT_; }
0572     MonitorElement* getMEhisto_Phi_HLT() { return Phi_HLT_; }
0573     MonitorElement* getMEhisto_EtaPhi_HLT() { return EtaPhi_HLT_; }
0574 
0575     MonitorElement* getMEhisto_PtResolution_L1HLT() { return PtResolution_L1HLT_; }
0576     MonitorElement* getMEhisto_EtaResolution_L1HLT() { return EtaResolution_L1HLT_; }
0577     MonitorElement* getMEhisto_PhiResolution_L1HLT() { return PhiResolution_L1HLT_; }
0578     MonitorElement* getMEhisto_PtResolution_HLTRecObj() { return PtResolution_HLTRecObj_; }
0579     MonitorElement* getMEhisto_EtaResolution_HLTRecObj() { return EtaResolution_HLTRecObj_; }
0580     MonitorElement* getMEhisto_PhiResolution_HLTRecObj() { return PhiResolution_HLTRecObj_; }
0581 
0582     MonitorElement* getMEhisto_PtCorrelation_L1HLT() { return PtCorrelation_L1HLT_; }
0583     MonitorElement* getMEhisto_EtaCorrelation_L1HLT() { return EtaCorrelation_L1HLT_; }
0584     MonitorElement* getMEhisto_PhiCorrelation_L1HLT() { return PhiCorrelation_L1HLT_; }
0585     MonitorElement* getMEhisto_PtCorrelation_HLTRecObj() { return PtCorrelation_HLTRecObj_; }
0586     MonitorElement* getMEhisto_EtaCorrelation_HLTRecObj() { return EtaCorrelation_HLTRecObj_; }
0587     MonitorElement* getMEhisto_PhiCorrelation_HLTRecObj() { return PhiCorrelation_HLTRecObj_; }
0588 
0589     MonitorElement* getMEhisto_AveragePt_RecObj() { return JetAveragePt_; }
0590     MonitorElement* getMEhisto_AverageEta_RecObj() { return JetAverageEta_; }
0591     MonitorElement* getMEhisto_DeltaPhi_RecObj() { return JetPhiDifference_; }
0592     MonitorElement* getMEhisto_AveragePt_HLTObj() { return HLTAveragePt_; }
0593     MonitorElement* getMEhisto_AverageEta_HLTObj() { return HLTAverageEta_; }
0594     MonitorElement* getMEhisto_DeltaPhi_HLTObj() { return HLTPhiDifference_; }
0595     MonitorElement* getMEhisto_AveragePt_L1Obj() { return L1AveragePt_; }
0596     MonitorElement* getMEhisto_AverageEta_L1Obj() { return L1AverageEta_; }
0597     MonitorElement* getMEhisto_DeltaPhi_L1Obj() { return L1PhiDifference_; }
0598 
0599     MonitorElement* getMEhisto_NumeratorPt() { return NumeratorPt_; }
0600     MonitorElement* getMEhisto_NumeratorPtBarrel() { return NumeratorPtBarrel_; }
0601     MonitorElement* getMEhisto_NumeratorPtEndcap() { return NumeratorPtEndcap_; }
0602     MonitorElement* getMEhisto_NumeratorPtForward() { return NumeratorPtForward_; }
0603     MonitorElement* getMEhisto_NumeratorEta() { return NumeratorEta_; }
0604     MonitorElement* getMEhisto_NumeratorPhi() { return NumeratorPhi_; }
0605     MonitorElement* getMEhisto_NumeratorEtaPhi() { return NumeratorEtaPhi_; }
0606 
0607     //ml
0608     MonitorElement* getMEhisto_NVertices() { return NVertices_; }
0609     MonitorElement* getMEhisto_PVZ() { return PVZ_; }
0610 
0611     MonitorElement* getMEhisto_NumeratorEtaBarrel() { return NumeratorEtaBarrel_; }
0612     MonitorElement* getMEhisto_NumeratorPhiBarrel() { return NumeratorPhiBarrel_; }
0613     MonitorElement* getMEhisto_NumeratorEtaEndcap() { return NumeratorEtaEndcap_; }
0614     MonitorElement* getMEhisto_NumeratorPhiEndcap() { return NumeratorPhiEndcap_; }
0615     MonitorElement* getMEhisto_NumeratorEtaForward() { return NumeratorEtaForward_; }
0616     MonitorElement* getMEhisto_NumeratorPhiForward() { return NumeratorPhiForward_; }
0617     MonitorElement* getMEhisto_NumeratorEta_LowpTcut() { return NumeratorEta_LowpTcut_; }
0618     MonitorElement* getMEhisto_NumeratorPhi_LowpTcut() { return NumeratorPhi_LowpTcut_; }
0619     MonitorElement* getMEhisto_NumeratorEtaPhi_LowpTcut() { return NumeratorEtaPhi_LowpTcut_; }
0620     MonitorElement* getMEhisto_NumeratorEta_MedpTcut() { return NumeratorEta_MedpTcut_; }
0621     MonitorElement* getMEhisto_NumeratorPhi_MedpTcut() { return NumeratorPhi_MedpTcut_; }
0622     MonitorElement* getMEhisto_NumeratorEtaPhi_MedpTcut() { return NumeratorEtaPhi_MedpTcut_; }
0623     MonitorElement* getMEhisto_NumeratorEta_HighpTcut() { return NumeratorEta_HighpTcut_; }
0624     MonitorElement* getMEhisto_NumeratorPhi_HighpTcut() { return NumeratorPhi_HighpTcut_; }
0625     MonitorElement* getMEhisto_NumeratorEtaPhi_HighpTcut() { return NumeratorEtaPhi_HighpTcut_; }
0626     //ml
0627 
0628     MonitorElement* getMEhisto_DenominatorPt() { return DenominatorPt_; }
0629     MonitorElement* getMEhisto_DenominatorPtBarrel() { return DenominatorPtBarrel_; }
0630     MonitorElement* getMEhisto_DenominatorPtEndcap() { return DenominatorPtEndcap_; }
0631     MonitorElement* getMEhisto_DenominatorPtForward() { return DenominatorPtForward_; }
0632     MonitorElement* getMEhisto_DenominatorEta() { return DenominatorEta_; }
0633     MonitorElement* getMEhisto_DenominatorPhi() { return DenominatorPhi_; }
0634     MonitorElement* getMEhisto_DenominatorEtaPhi() { return DenominatorEtaPhi_; }
0635 
0636     //ml
0637     MonitorElement* getMEhisto_DenominatorEtaBarrel() { return DenominatorEtaBarrel_; }
0638     MonitorElement* getMEhisto_DenominatorPhiBarrel() { return DenominatorPhiBarrel_; }
0639     MonitorElement* getMEhisto_DenominatorEtaEndcap() { return DenominatorEtaEndcap_; }
0640     MonitorElement* getMEhisto_DenominatorPhiEndcap() { return DenominatorPhiEndcap_; }
0641     MonitorElement* getMEhisto_DenominatorEtaForward() { return DenominatorEtaForward_; }
0642     MonitorElement* getMEhisto_DenominatorPhiForward() { return DenominatorPhiForward_; }
0643 
0644     MonitorElement* getMEhisto_DenominatorEta_LowpTcut() { return DenominatorEta_LowpTcut_; }
0645     MonitorElement* getMEhisto_DenominatorPhi_LowpTcut() { return DenominatorPhi_LowpTcut_; }
0646     MonitorElement* getMEhisto_DenominatorEtaPhi_LowpTcut() { return DenominatorEtaPhi_LowpTcut_; }
0647     MonitorElement* getMEhisto_DenominatorEta_MedpTcut() { return DenominatorEta_MedpTcut_; }
0648     MonitorElement* getMEhisto_DenominatorPhi_MedpTcut() { return DenominatorPhi_MedpTcut_; }
0649     MonitorElement* getMEhisto_DenominatorEtaPhi_MedpTcut() { return DenominatorEtaPhi_MedpTcut_; }
0650     MonitorElement* getMEhisto_DenominatorEta_HighpTcut() { return DenominatorEta_HighpTcut_; }
0651     MonitorElement* getMEhisto_DenominatorPhi_HighpTcut() { return DenominatorPhi_HighpTcut_; }
0652     MonitorElement* getMEhisto_DenominatorEtaPhi_HighpTcut() { return DenominatorEtaPhi_HighpTcut_; }
0653     //adding PF histos SJ
0654     MonitorElement* getMEhisto_NumeratorPFPt() { return NumeratorPFPt_; }
0655     MonitorElement* getMEhisto_NumeratorPFMHT() { return NumeratorPFMHT_; }
0656 
0657     MonitorElement* getMEhisto_NumeratorPFPtBarrel() { return NumeratorPFPtBarrel_; }
0658     MonitorElement* getMEhisto_NumeratorPFPtEndcap() { return NumeratorPFPtEndcap_; }
0659     MonitorElement* getMEhisto_NumeratorPFPtForward() { return NumeratorPFPtForward_; }
0660     MonitorElement* getMEhisto_NumeratorPFEta() { return NumeratorPFEta_; }
0661     MonitorElement* getMEhisto_NumeratorPFPhi() { return NumeratorPFPhi_; }
0662     MonitorElement* getMEhisto_NumeratorPFEtaPhi() { return NumeratorPFEtaPhi_; }
0663 
0664     MonitorElement* getMEhisto_NumeratorPFEtaBarrel() { return NumeratorPFEtaBarrel_; }
0665     MonitorElement* getMEhisto_NumeratorPFPhiBarrel() { return NumeratorPFPhiBarrel_; }
0666     MonitorElement* getMEhisto_NumeratorPFEtaEndcap() { return NumeratorPFEtaEndcap_; }
0667     MonitorElement* getMEhisto_NumeratorPFPhiEndcap() { return NumeratorPFPhiEndcap_; }
0668     MonitorElement* getMEhisto_NumeratorPFEtaForward() { return NumeratorPFEtaForward_; }
0669     MonitorElement* getMEhisto_NumeratorPFPhiForward() { return NumeratorPFPhiForward_; }
0670     MonitorElement* getMEhisto_NumeratorPFEta_LowpTcut() { return NumeratorPFEta_LowpTcut_; }
0671     MonitorElement* getMEhisto_NumeratorPFPhi_LowpTcut() { return NumeratorPFPhi_LowpTcut_; }
0672     MonitorElement* getMEhisto_NumeratorPFEtaPhi_LowpTcut() { return NumeratorPFEtaPhi_LowpTcut_; }
0673     MonitorElement* getMEhisto_NumeratorPFEta_MedpTcut() { return NumeratorPFEta_MedpTcut_; }
0674     MonitorElement* getMEhisto_NumeratorPFPhi_MedpTcut() { return NumeratorPFPhi_MedpTcut_; }
0675     MonitorElement* getMEhisto_NumeratorPFEtaPhi_MedpTcut() { return NumeratorPFEtaPhi_MedpTcut_; }
0676     MonitorElement* getMEhisto_NumeratorPFEta_HighpTcut() { return NumeratorPFEta_HighpTcut_; }
0677     MonitorElement* getMEhisto_NumeratorPFPhi_HighpTcut() { return NumeratorPFPhi_HighpTcut_; }
0678     MonitorElement* getMEhisto_NumeratorPFEtaPhi_HighpTcut() { return NumeratorPFEtaPhi_HighpTcut_; }
0679     MonitorElement* getMEhisto_DenominatorPFPt() { return DenominatorPFPt_; }
0680     MonitorElement* getMEhisto_DenominatorPFMHT() { return DenominatorPFMHT_; }
0681     MonitorElement* getMEhisto_DenominatorPFPtBarrel() { return DenominatorPFPtBarrel_; }
0682     MonitorElement* getMEhisto_DenominatorPFPtEndcap() { return DenominatorPFPtEndcap_; }
0683     MonitorElement* getMEhisto_DenominatorPFPtForward() { return DenominatorPFPtForward_; }
0684     MonitorElement* getMEhisto_DenominatorPFEta() { return DenominatorPFEta_; }
0685     MonitorElement* getMEhisto_DenominatorPFPhi() { return DenominatorPFPhi_; }
0686     MonitorElement* getMEhisto_DenominatorPFEtaPhi() { return DenominatorPFEtaPhi_; }
0687 
0688     MonitorElement* getMEhisto_DenominatorPFEtaBarrel() { return DenominatorPFEtaBarrel_; }
0689     MonitorElement* getMEhisto_DenominatorPFPhiBarrel() { return DenominatorPFPhiBarrel_; }
0690     MonitorElement* getMEhisto_DenominatorPFEtaEndcap() { return DenominatorPFEtaEndcap_; }
0691     MonitorElement* getMEhisto_DenominatorPFPhiEndcap() { return DenominatorPFPhiEndcap_; }
0692     MonitorElement* getMEhisto_DenominatorPFEtaForward() { return DenominatorPFEtaForward_; }
0693     MonitorElement* getMEhisto_DenominatorPFPhiForward() { return DenominatorPFPhiForward_; }
0694 
0695     MonitorElement* getMEhisto_DenominatorPFEta_LowpTcut() { return DenominatorPFEta_LowpTcut_; }
0696     MonitorElement* getMEhisto_DenominatorPFPhi_LowpTcut() { return DenominatorPFPhi_LowpTcut_; }
0697     MonitorElement* getMEhisto_DenominatorPFEtaPhi_LowpTcut() { return DenominatorPFEtaPhi_LowpTcut_; }
0698     MonitorElement* getMEhisto_DenominatorPFEta_MedpTcut() { return DenominatorPFEta_MedpTcut_; }
0699     MonitorElement* getMEhisto_DenominatorPFPhi_MedpTcut() { return DenominatorPFPhi_MedpTcut_; }
0700     MonitorElement* getMEhisto_DenominatorPFEtaPhi_MedpTcut() { return DenominatorPFEtaPhi_MedpTcut_; }
0701     MonitorElement* getMEhisto_DenominatorPFEta_HighpTcut() { return DenominatorPFEta_HighpTcut_; }
0702     MonitorElement* getMEhisto_DenominatorPFPhi_HighpTcut() { return DenominatorPFPhi_HighpTcut_; }
0703     MonitorElement* getMEhisto_DenominatorPFEtaPhi_HighpTcut() { return DenominatorPFEtaPhi_HighpTcut_; }
0704 
0705     MonitorElement* getMEhisto_DeltaR() { return DeltaR_; }
0706     MonitorElement* getMEhisto_DeltaPhi() { return DeltaPhi_; }
0707     MonitorElement* getMEhisto_PFDeltaR() { return PFDeltaR_; }
0708     MonitorElement* getMEhisto_PFDeltaPhi() { return PFDeltaPhi_; }
0709 
0710     MonitorElement* getMEhisto_TriggerSummary() { return TriggerSummary_; }
0711     MonitorElement* getMEhisto_JetSize() { return JetSize_; }
0712     MonitorElement* getMEhisto_JetPt() { return JetPt_; }
0713     MonitorElement* getMEhisto_EtavsPt() { return EtavsPt_; }
0714     MonitorElement* getMEhisto_PhivsPt() { return PhivsPt_; }
0715     MonitorElement* getMEhisto_Pt12() { return Pt12_; }
0716     MonitorElement* getMEhisto_Eta12() { return Eta12_; }
0717     MonitorElement* getMEhisto_Phi12() { return Phi12_; }
0718     MonitorElement* getMEhisto_Pt3() { return Pt3_; }
0719     MonitorElement* getMEhisto_Pt12Pt3() { return Pt12Pt3_; }
0720     MonitorElement* getMEhisto_Pt12Phi12() { return Pt12Phi12_; }
0721 
0722     const std::string getLabel() const { return filterName_; }
0723     const std::string getDenomLabel() const { return DenomfilterName_; }
0724 
0725     void setLabel(std::string labelName) {
0726       filterName_ = std::move(labelName);
0727       return;
0728     }
0729     void setDenomLabel(std::string labelName) {
0730       DenomfilterName_ = std::move(labelName);
0731       return;
0732     }
0733     const std::string getPath() const { return pathName_; }
0734     const std::string getl1Path() const { return l1pathName_; }
0735     const std::string getDenomPath() const { return denomPathName_; }
0736     const int getprescaleUsed() const { return prescaleUsed_; }
0737     const std::string getProcess() const { return processName_; }
0738     const int getObjectType() const { return objectType_; }
0739     const std::string getTriggerType() const { return triggerType_; }
0740     const edm::InputTag getTag() const {
0741       edm::InputTag tagName(filterName_, "", processName_);
0742       return tagName;
0743     }
0744     const edm::InputTag getDenomTag() const {
0745       edm::InputTag tagName(DenomfilterName_, "", processName_);
0746       return tagName;
0747     }
0748     bool operator==(const std::string& v) { return v == pathName_; }
0749 
0750   private:
0751     int prescaleUsed_;
0752     std::string denomPathName_;
0753     std::string pathName_;
0754     std::string l1pathName_;
0755     std::string filterName_;
0756     std::string DenomfilterName_;
0757     std::string processName_;
0758     int objectType_;
0759     std::string triggerType_;
0760 
0761     MonitorElement* N_;
0762     MonitorElement* Pt_;
0763     MonitorElement* PtBarrel_;
0764     MonitorElement* PtEndcap_;
0765     MonitorElement* PtForward_;
0766     MonitorElement* Eta_;
0767     MonitorElement* Phi_;
0768     MonitorElement* EtaPhi_;
0769     MonitorElement* N_L1_;
0770     MonitorElement* Pt_L1_;
0771     MonitorElement* PtBarrel_L1_;
0772     MonitorElement* PtEndcap_L1_;
0773     MonitorElement* PtForward_L1_;
0774     MonitorElement* Eta_L1_;
0775     MonitorElement* Phi_L1_;
0776     MonitorElement* EtaPhi_L1_;
0777     MonitorElement* N_HLT_;
0778     MonitorElement* Pt_HLT_;
0779     MonitorElement* PtBarrel_HLT_;
0780     MonitorElement* PtEndcap_HLT_;
0781     MonitorElement* PtForward_HLT_;
0782     MonitorElement* Eta_HLT_;
0783     MonitorElement* Phi_HLT_;
0784     MonitorElement* EtaPhi_HLT_;
0785 
0786     MonitorElement* PtResolution_L1HLT_;
0787     MonitorElement* EtaResolution_L1HLT_;
0788     MonitorElement* PhiResolution_L1HLT_;
0789     MonitorElement* PtResolution_HLTRecObj_;
0790     MonitorElement* EtaResolution_HLTRecObj_;
0791     MonitorElement* PhiResolution_HLTRecObj_;
0792     MonitorElement* PtCorrelation_L1HLT_;
0793     MonitorElement* EtaCorrelation_L1HLT_;
0794     MonitorElement* PhiCorrelation_L1HLT_;
0795     MonitorElement* PtCorrelation_HLTRecObj_;
0796     MonitorElement* EtaCorrelation_HLTRecObj_;
0797     MonitorElement* PhiCorrelation_HLTRecObj_;
0798 
0799     MonitorElement* JetAveragePt_;
0800     MonitorElement* JetAverageEta_;
0801     MonitorElement* JetPhiDifference_;
0802     MonitorElement* HLTAveragePt_;
0803     MonitorElement* HLTAverageEta_;
0804     MonitorElement* HLTPhiDifference_;
0805     MonitorElement* L1AveragePt_;
0806     MonitorElement* L1AverageEta_;
0807     MonitorElement* L1PhiDifference_;
0808 
0809     MonitorElement* NumeratorPt_;
0810     MonitorElement* NumeratorPtBarrel_;
0811     MonitorElement* NumeratorPtEndcap_;
0812     MonitorElement* NumeratorPtForward_;
0813     MonitorElement* NumeratorEta_;
0814     MonitorElement* NumeratorPhi_;
0815     MonitorElement* NumeratorEtaPhi_;
0816 
0817     //ml
0818     MonitorElement* PVZ_;
0819     MonitorElement* NVertices_;
0820 
0821     MonitorElement* NumeratorEtaBarrel_;
0822     MonitorElement* NumeratorPhiBarrel_;
0823     MonitorElement* NumeratorEtaEndcap_;
0824     MonitorElement* NumeratorPhiEndcap_;
0825     MonitorElement* NumeratorEtaForward_;
0826     MonitorElement* NumeratorPhiForward_;
0827 
0828     MonitorElement* NumeratorEta_LowpTcut_;
0829     MonitorElement* NumeratorPhi_LowpTcut_;
0830     MonitorElement* NumeratorEtaPhi_LowpTcut_;
0831     MonitorElement* NumeratorEta_MedpTcut_;
0832     MonitorElement* NumeratorPhi_MedpTcut_;
0833     MonitorElement* NumeratorEtaPhi_MedpTcut_;
0834     MonitorElement* NumeratorEta_HighpTcut_;
0835     MonitorElement* NumeratorPhi_HighpTcut_;
0836     MonitorElement* NumeratorEtaPhi_HighpTcut_;
0837     //ml
0838 
0839     MonitorElement* DenominatorPt_;
0840     MonitorElement* DenominatorPtBarrel_;
0841     MonitorElement* DenominatorPtEndcap_;
0842     MonitorElement* DenominatorPtForward_;
0843     MonitorElement* DenominatorEta_;
0844     MonitorElement* DenominatorPhi_;
0845     MonitorElement* DenominatorEtaPhi_;
0846     //ml
0847     MonitorElement* DenominatorEtaBarrel_;
0848     MonitorElement* DenominatorPhiBarrel_;
0849     MonitorElement* DenominatorEtaEndcap_;
0850     MonitorElement* DenominatorPhiEndcap_;
0851     MonitorElement* DenominatorEtaForward_;
0852     MonitorElement* DenominatorPhiForward_;
0853 
0854     MonitorElement* DenominatorEta_LowpTcut_;
0855     MonitorElement* DenominatorPhi_LowpTcut_;
0856     MonitorElement* DenominatorEtaPhi_LowpTcut_;
0857     MonitorElement* DenominatorEta_MedpTcut_;
0858     MonitorElement* DenominatorPhi_MedpTcut_;
0859     MonitorElement* DenominatorEtaPhi_MedpTcut_;
0860     MonitorElement* DenominatorEta_HighpTcut_;
0861     MonitorElement* DenominatorPhi_HighpTcut_;
0862     MonitorElement* DenominatorEtaPhi_HighpTcut_;
0863 
0864     MonitorElement* DeltaR_;
0865     MonitorElement* DeltaPhi_;
0866 
0867     //adding PF histos SJ:
0868     MonitorElement* NumeratorPFPt_;
0869     MonitorElement* NumeratorPFMHT_;
0870     MonitorElement* NumeratorPFPtBarrel_;
0871     MonitorElement* NumeratorPFPtEndcap_;
0872     MonitorElement* NumeratorPFPtForward_;
0873     MonitorElement* NumeratorPFEta_;
0874     MonitorElement* NumeratorPFPhi_;
0875     MonitorElement* NumeratorPFEtaPhi_;
0876     MonitorElement* NumeratorPFEtaBarrel_;
0877     MonitorElement* NumeratorPFPhiBarrel_;
0878     MonitorElement* NumeratorPFEtaEndcap_;
0879     MonitorElement* NumeratorPFPhiEndcap_;
0880     MonitorElement* NumeratorPFEtaForward_;
0881     MonitorElement* NumeratorPFPhiForward_;
0882 
0883     MonitorElement* NumeratorPFEta_LowpTcut_;
0884     MonitorElement* NumeratorPFPhi_LowpTcut_;
0885     MonitorElement* NumeratorPFEtaPhi_LowpTcut_;
0886     MonitorElement* NumeratorPFEta_MedpTcut_;
0887     MonitorElement* NumeratorPFPhi_MedpTcut_;
0888     MonitorElement* NumeratorPFEtaPhi_MedpTcut_;
0889     MonitorElement* NumeratorPFEta_HighpTcut_;
0890     MonitorElement* NumeratorPFPhi_HighpTcut_;
0891     MonitorElement* NumeratorPFEtaPhi_HighpTcut_;
0892 
0893     MonitorElement* DenominatorPFPt_;
0894     MonitorElement* DenominatorPFMHT_;
0895     MonitorElement* DenominatorPFPtBarrel_;
0896     MonitorElement* DenominatorPFPtEndcap_;
0897     MonitorElement* DenominatorPFPtForward_;
0898     MonitorElement* DenominatorPFEta_;
0899     MonitorElement* DenominatorPFPhi_;
0900     MonitorElement* DenominatorPFEtaPhi_;
0901 
0902     MonitorElement* DenominatorPFEtaBarrel_;
0903     MonitorElement* DenominatorPFPhiBarrel_;
0904     MonitorElement* DenominatorPFEtaEndcap_;
0905     MonitorElement* DenominatorPFPhiEndcap_;
0906     MonitorElement* DenominatorPFEtaForward_;
0907     MonitorElement* DenominatorPFPhiForward_;
0908 
0909     MonitorElement* DenominatorPFEta_LowpTcut_;
0910     MonitorElement* DenominatorPFPhi_LowpTcut_;
0911     MonitorElement* DenominatorPFEtaPhi_LowpTcut_;
0912     MonitorElement* DenominatorPFEta_MedpTcut_;
0913     MonitorElement* DenominatorPFPhi_MedpTcut_;
0914     MonitorElement* DenominatorPFEtaPhi_MedpTcut_;
0915     MonitorElement* DenominatorPFEta_HighpTcut_;
0916     MonitorElement* DenominatorPFPhi_HighpTcut_;
0917     MonitorElement* DenominatorPFEtaPhi_HighpTcut_;
0918     MonitorElement* PFDeltaR_;
0919     MonitorElement* PFDeltaPhi_;
0920 
0921     MonitorElement* TriggerSummary_;
0922     MonitorElement* JetSize_;
0923     MonitorElement* JetPt_;
0924     MonitorElement* EtavsPt_;
0925     MonitorElement* PhivsPt_;
0926     MonitorElement* Pt12_;
0927     MonitorElement* Eta12_;
0928     MonitorElement* Phi12_;
0929     MonitorElement* Pt3_;
0930     MonitorElement* Pt12Pt3_;
0931     MonitorElement* Pt12Phi12_;
0932   };
0933 
0934   // simple collection
0935   class PathInfoCollection : public std::vector<PathInfo> {
0936   public:
0937     PathInfoCollection() : std::vector<PathInfo>(){};
0938     std::vector<PathInfo>::iterator find(const std::string& pathName) { return std::find(begin(), end(), pathName); }
0939   };
0940   PathInfoCollection hltPathsAllTriggerSummary_;
0941   PathInfoCollection hltPathsAll_;
0942   PathInfoCollection hltPathsEff_;
0943 
0944   MonitorElement* rate_All;
0945   MonitorElement* rate_AllWrtMu;
0946   MonitorElement* rate_AllWrtMB;
0947 
0948   MonitorElement* correlation_All;
0949   MonitorElement* correlation_AllWrtMu;
0950   MonitorElement* correlation_AllWrtMB;
0951   MonitorElement* PVZ;
0952   MonitorElement* NVertices;
0953 };
0954 #endif