CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/DQMOffline/Trigger/interface/JetMETHLTOfflineSource.h

Go to the documentation of this file.
00001 /*
00002   JetMETHLTOffline DQM code
00003   Responsible: Sunil Bansal, Shabnam Jabeen, Michael Luk, Phat Srimanobhas
00004   Contact: Phat Srimanobhas (srimanob@mail.cern.ch)
00005   Last modified: 31 July 2012
00006 */
00007 
00008 #ifndef JetMETHLTOfflineSource_H
00009 #define JetMETHLTOfflineSource_H
00010 
00011 // system include files
00012 #include <memory>
00013 #include <unistd.h>
00014 
00015 // user include files
00016 #include "DQMServices/Core/interface/DQMStore.h"
00017 #include "DQMServices/Core/interface/MonitorElement.h"
00018 
00019 #include "FWCore/Common/interface/TriggerNames.h"
00020 #include "FWCore/Framework/interface/Frameworkfwd.h"
00021 #include "FWCore/Framework/interface/EDAnalyzer.h"
00022 #include "FWCore/Framework/interface/Event.h"
00023 #include "FWCore/Framework/interface/MakerMacros.h"
00024 #include "FWCore/ServiceRegistry/interface/Service.h"
00025 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00026 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00027 
00028 #include "DataFormats/Common/interface/TriggerResults.h"
00029 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
00030 #include "DataFormats/HLTReco/interface/TriggerObject.h"
00031 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
00032 
00033 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
00034 
00035 #include "RecoJets/JetProducers/interface/JetIDHelper.h"
00036 
00037 #include "DataFormats/JetReco/interface/Jet.h"
00038 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
00039 #include "DataFormats/JetReco/interface/CaloJet.h"
00040 #include "DataFormats/JetReco/interface/PFJetCollection.h"
00041 #include "DataFormats/JetReco/interface/PFJet.h"
00042 
00043 #include "DataFormats/METReco/interface/MET.h"
00044 #include "DataFormats/METReco/interface/CaloMETCollection.h"
00045 #include "DataFormats/METReco/interface/CaloMET.h"
00046 #include "DataFormats/METReco/interface/PFMETCollection.h"
00047 #include "DataFormats/METReco/interface/PFMET.h"
00048 
00049 #include "DataFormats/VertexReco/interface/Vertex.h"
00050 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00051 
00052 #include <iostream>
00053 #include <fstream>
00054 #include <vector>
00055 
00056 class PtSorter {
00057  public:
00058    template <class T> bool operator() ( const T& a, const T& b ) {
00059      return ( a.pt() > b.pt() );
00060    }
00061  };
00062 
00063 class JetMETHLTOfflineSource : public edm::EDAnalyzer {
00064  public:
00065   explicit JetMETHLTOfflineSource(const edm::ParameterSet&);
00066   ~JetMETHLTOfflineSource();
00067   
00068  private:
00069   virtual void beginJob() ;
00070   virtual void analyze(const edm::Event&, const edm::EventSetup&);
00071   virtual void endJob() ;
00072   void beginRun(const edm::Run& run, const edm::EventSetup& c);
00073   void histobooking( const edm::EventSetup& c);
00074   void endRun(const edm::Run& run, const edm::EventSetup& c);
00075   void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, 
00076                             const edm::EventSetup& c);
00078   void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, 
00079                           const edm::EventSetup& c);
00080   
00081   virtual bool   isBarrel(double eta);
00082   virtual bool   isEndCap(double eta); 
00083   virtual bool   isForward(double eta);
00084   virtual bool   validPathHLT(std::string path);
00085   virtual bool   isHLTPathAccepted(std::string pathName);
00086   virtual bool   isTriggerObjectFound(std::string objectName);
00087   virtual double TriggerPosition(std::string trigName);
00088   virtual void   fillMEforMonTriggerSummary(const edm::Event & iEvent, const edm::EventSetup&);
00089   virtual void   fillMEforMonAllTrigger(const edm::Event & iEvent, const edm::EventSetup&);
00090   virtual void   fillMEforMonAllTriggerwrtMuonTrigger(const edm::Event & iEvent, const edm::EventSetup&);
00091   virtual void   fillMEforEffAllTrigger(const edm::Event & iEvent, const edm::EventSetup&);
00092   virtual void   fillMEforEffWrtMuTrigger(const edm::Event & iEvent, const edm::EventSetup&);
00093   virtual void   fillMEforEffWrtMBTrigger(const edm::Event & iEvent, const edm::EventSetup&);
00094   virtual void   fillMEforTriggerNTfired();
00095   
00096   const std::string getL1ConditionModuleName(const std::string& pathname); //ml added
00097   
00098   // ----------member data --------------------------- 
00099   int nev_;
00100   DQMStore * dbe;
00101   
00102   MonitorElement* total_;
00103   
00104   std::vector<std::string>  MuonTrigPaths_;
00105   std::vector<std::string>  MBTrigPaths_;
00106   std::vector<int>  prescUsed_;
00107   
00108   std::string dirname_;
00109   std::string processname_;
00110   // JetID helper
00111   reco::helper::JetIDHelper *jetID;
00112   
00113   bool verbose_;
00114   bool runStandalone_;
00115   bool plotAll_;
00116   bool plotAllwrtMu_;
00117   bool plotEff_ ;
00118   bool plotEffwrtMu_;
00119   bool plotEffwrtMB_;
00120   
00121   bool isSetup_;
00122   bool nameForEff_;  
00123   
00124   double _fEMF;
00125   double _feta;
00126   double _fHPD;
00127   double _n90Hits; 
00128   double _pfMHT;
00129   double _min_NHEF;
00130   double _max_NHEF;
00131   double _min_CHEF;
00132   double _max_CHEF;
00133   double _min_NEMF;
00134   double _max_NEMF;
00135   double _min_CEMF;
00136   double _max_CEMF;
00137   
00138   edm::InputTag triggerSummaryLabel_;
00139   edm::InputTag triggerResultsLabel_;
00140   edm::InputTag caloJetsTag_;
00141   edm::InputTag caloMETTag_;
00142   edm::InputTag pfJetsTag_;
00143   edm::InputTag pfMETTag_;
00144   
00145   edm::Handle<reco::CaloJetCollection> calojetColl_;
00146   edm::Handle<reco::CaloMETCollection> calometColl_; 
00147   edm::Handle<reco::PFJetCollection>   pfjetColl_;
00148   edm::Handle<reco::PFMETCollection>   pfmetColl_;
00149   
00150   std::string CaloJetCorService_;
00151   std::string PFJetCorService_;
00152 
00153   std::vector<std::string> pathFilter_;
00154   std::vector<std::string> pathRejectKeyword_;
00155   std::vector<std::pair<std::string, std::string> > custompathnamepairs_;
00156   
00157   reco::CaloJetCollection calojet;
00158   reco::PFJetCollection pfjet;
00159   HLTConfigProvider hltConfig_;
00160   edm::Handle<edm::TriggerResults> triggerResults_;
00161   edm::TriggerNames triggerNames_; // TriggerNames class
00162   edm::Handle<trigger::TriggerEvent> triggerObj_;
00163 
00164   double CaloJetPx[2];
00165   double CaloJetPy[2];
00166   double CaloJetPt[2];
00167   double CaloJetEta[2];
00168   double CaloJetPhi[2]; 
00169   double CaloJetEMF[2];
00170   double CaloJetfHPD[2];
00171   double CaloJetn90[2];
00172 
00173   double PFJetPx[2];
00174   double PFJetPy[2];
00175   double PFJetPt[2];
00176   double PFJetEta[2];
00177   double PFJetPhi[2];
00178   double PFJetNHEF[2];
00179   double PFJetCHEF[2];
00180   double PFJetNEMF[2];
00181   double PFJetCEMF[2];
00182 
00183   double pfMHTx_All;
00184   double pfMHTy_All;
00185   
00186   
00187   // data across paths
00188   MonitorElement* scalersSelect;
00189   // helper class to store the data path
00190   
00191   class PathInfo {
00192     PathInfo():
00193       pathIndex_(-1), 
00194       prescaleUsed_(-1),
00195       denomPathName_("unset"), 
00196       pathName_("unset"), 
00197       l1pathName_("unset"), 
00198       filterName_("unset"), 
00199       DenomfilterName_("unset"), 
00200       processName_("unset"), 
00201       objectType_(-1), 
00202       triggerType_("unset")
00203         {};
00204   public:
00205     void setHistos(MonitorElement* const N, 
00206                    MonitorElement* const Pt, 
00207                    MonitorElement* const PtBarrel,
00208                    MonitorElement* const PtEndcap,
00209                    MonitorElement* const PtForward,
00210                    MonitorElement* const Eta,
00211                    MonitorElement* const Phi, 
00212                    MonitorElement* const EtaPhi,
00213                    //
00214                    MonitorElement* const N_L1,
00215                    MonitorElement* const Pt_L1,
00216                    MonitorElement* const PtBarrel_L1,
00217                    MonitorElement* const PtEndcap_L1,
00218                    MonitorElement* const PtForward_L1,
00219                    MonitorElement* const Eta_L1,
00220                    MonitorElement* const Phi_L1,
00221                    MonitorElement* const EtaPhi_L1,
00222                    MonitorElement* const N_HLT,
00223                    MonitorElement* const Pt_HLT,
00224                    MonitorElement* const PtBarrel_HLT,
00225                    MonitorElement* const PtEndcap_HLT,
00226                    MonitorElement* const PtForward_HLT,
00227                    MonitorElement* const Eta_HLT,
00228                    MonitorElement* const Phi_HLT,
00229                    MonitorElement* const EtaPhi_HLT, 
00230                    //
00231                    MonitorElement* const PtResolution_L1HLT,
00232                    MonitorElement* const EtaResolution_L1HLT,
00233                    MonitorElement* const PhiResolution_L1HLT, 
00234                    MonitorElement* const PtResolution_HLTRecObj,
00235                    MonitorElement* const EtaResolution_HLTRecObj,
00236                    MonitorElement* const PhiResolution_HLTRecObj,
00237                    //
00238                    MonitorElement* const PtCorrelation_L1HLT,
00239                    MonitorElement* const EtaCorrelation_L1HLT,
00240                    MonitorElement* const PhiCorrelation_L1HLT,
00241                    MonitorElement* const PtCorrelation_HLTRecObj,
00242                    MonitorElement* const EtaCorrelation_HLTRecObj,
00243                    MonitorElement* const PhiCorrelation_HLTRecObj,
00244                    //
00245                    MonitorElement* const JetAveragePt,
00246                    MonitorElement* const JetAverageEta,  
00247                    MonitorElement* const JetPhiDifference,
00248                    MonitorElement* const HLTAveragePt,
00249                    MonitorElement* const HLTAverageEta,
00250                    MonitorElement* const HLTPhiDifference,
00251                    MonitorElement* const L1AveragePt,
00252                    MonitorElement* const L1AverageEta,
00253                    MonitorElement* const L1PhiDifference
00254                    //
00255                    //MonitorElement* const PVZ,
00256                    //MonitorElement* const NVertices
00257                    )    
00258       
00259     {
00260       N_                        = N;
00261       Pt_                       = Pt;
00262       PtBarrel_                 = PtBarrel;
00263       PtEndcap_                 = PtEndcap;
00264       PtForward_                = PtForward;
00265       Eta_                      = Eta;
00266       Phi_                      = Phi;
00267       EtaPhi_                   = EtaPhi;
00268       N_L1_                     = N_L1;
00269       Pt_L1_                    = Pt_L1;
00270       PtBarrel_L1_              = PtBarrel_L1;
00271       PtEndcap_L1_              = PtEndcap_L1;
00272       PtForward_L1_             = PtForward_L1;
00273       Eta_L1_                   = Eta_L1;
00274       Phi_L1_                   = Phi_L1;
00275       EtaPhi_L1_                = EtaPhi_L1 ;
00276       N_HLT_                    = N_HLT;
00277       Pt_HLT_                   = Pt_HLT;
00278       PtBarrel_HLT_             = PtBarrel_HLT;
00279       PtEndcap_HLT_             = PtEndcap_HLT;
00280       PtForward_HLT_            = PtForward_HLT;
00281       Eta_HLT_                  = Eta_HLT;
00282       Phi_HLT_                  = Phi_HLT;
00283       EtaPhi_HLT_               = EtaPhi_HLT ;
00284       //
00285       PtResolution_L1HLT_       = PtResolution_L1HLT;
00286       EtaResolution_L1HLT_      = EtaResolution_L1HLT;
00287       PhiResolution_L1HLT_      = PhiResolution_L1HLT;
00288       PtResolution_HLTRecObj_   = PtResolution_HLTRecObj;
00289       EtaResolution_HLTRecObj_  = EtaResolution_HLTRecObj;
00290       PhiResolution_HLTRecObj_  = PhiResolution_HLTRecObj;
00291       //
00292       PtCorrelation_L1HLT_      = PtCorrelation_L1HLT;
00293       EtaCorrelation_L1HLT_     = EtaCorrelation_L1HLT;
00294       PhiCorrelation_L1HLT_     = PhiCorrelation_L1HLT;
00295       PtCorrelation_HLTRecObj_  = PtCorrelation_HLTRecObj;
00296       EtaCorrelation_HLTRecObj_ = EtaCorrelation_HLTRecObj;
00297       PhiCorrelation_HLTRecObj_ = PhiCorrelation_HLTRecObj;
00298       //
00299       JetAveragePt_             = JetAveragePt;
00300       JetAverageEta_            = JetAverageEta;
00301       JetPhiDifference_         = JetPhiDifference;
00302       HLTAveragePt_             = HLTAveragePt;
00303       HLTAverageEta_            = HLTAverageEta;
00304       HLTPhiDifference_         = HLTPhiDifference; 
00305       L1AveragePt_              = L1AveragePt;
00306       L1AverageEta_             = L1AverageEta;
00307       L1PhiDifference_          = L1PhiDifference;
00308     };
00309     
00310     void setDgnsHistos(MonitorElement* const TriggerSummary,
00311                        MonitorElement* const JetSize,
00312                        MonitorElement* const JetPt,  
00313                        MonitorElement* const EtavsPt,
00314                        MonitorElement* const PhivsPt,
00315                        MonitorElement* const Pt12,
00316                        MonitorElement* const Eta12,
00317                        MonitorElement* const Phi12,                      
00318                        MonitorElement* const Pt3,
00319                        MonitorElement* const Pt12Pt3,
00320                        MonitorElement* const Pt12Phi12
00321                        )
00322     {
00323       TriggerSummary_ = TriggerSummary; 
00324       JetSize_        = JetSize;
00325       JetPt_          = JetPt;
00326       EtavsPt_        = EtavsPt;
00327       PhivsPt_        = PhivsPt;
00328       Pt12_           = Pt12;
00329       Eta12_          = Eta12;
00330       Phi12_          = Phi12;
00331       Pt3_            = Pt3;
00332       Pt12Pt3_        = Pt12Pt3;
00333       Pt12Phi12_      = Pt12Phi12; 
00334     };
00335     
00336     void setEffHistos(MonitorElement* const NumeratorPt,
00337                       MonitorElement* const NumeratorPtBarrel,
00338                       MonitorElement* const NumeratorPtEndcap,
00339                       MonitorElement* const NumeratorPtForward,
00340                       MonitorElement* const NumeratorEta,
00341                       MonitorElement* const NumeratorPhi,
00342                       MonitorElement* const NumeratorEtaPhi,
00343                       //
00344                       MonitorElement* const NumeratorEtaBarrel,
00345                       MonitorElement* const NumeratorPhiBarrel,
00346                       MonitorElement* const NumeratorEtaEndcap,
00347                       MonitorElement* const NumeratorPhiEndcap,
00348                       MonitorElement* const NumeratorEtaForward,
00349                       MonitorElement* const NumeratorPhiForward,
00350                       MonitorElement* const NumeratorEta_LowpTcut,
00351                       MonitorElement* const NumeratorPhi_LowpTcut,
00352                       MonitorElement* const NumeratorEtaPhi_LowpTcut,
00353                       MonitorElement* const NumeratorEta_MedpTcut,
00354                       MonitorElement* const NumeratorPhi_MedpTcut,
00355                       MonitorElement* const NumeratorEtaPhi_MedpTcut,
00356                       MonitorElement* const NumeratorEta_HighpTcut,
00357                       MonitorElement* const NumeratorPhi_HighpTcut,
00358                       MonitorElement* const NumeratorEtaPhi_HighpTcut,      
00359                       //
00360                       MonitorElement* const DenominatorPt,
00361                       MonitorElement* const DenominatorPtBarrel,
00362                       MonitorElement* const DenominatorPtEndcap,
00363                       MonitorElement* const DenominatorPtForward,
00364                       MonitorElement* const DenominatorEta,
00365                       MonitorElement* const DenominatorPhi,
00366                       MonitorElement* const DenominatorEtaPhi,
00367                       //
00368                       MonitorElement* const DenominatorEtaBarrel,
00369                       MonitorElement* const DenominatorPhiBarrel,
00370                       MonitorElement* const DenominatorEtaEndcap,
00371                       MonitorElement* const DenominatorPhiEndcap,
00372                       MonitorElement* const DenominatorEtaForward,
00373                       MonitorElement* const DenominatorPhiForward,
00374                       MonitorElement* const DenominatorEta_LowpTcut,
00375                       MonitorElement* const DenominatorPhi_LowpTcut,
00376                       MonitorElement* const DenominatorEtaPhi_LowpTcut,
00377                       MonitorElement* const DenominatorEta_MedpTcut,
00378                       MonitorElement* const DenominatorPhi_MedpTcut,
00379                       MonitorElement* const DenominatorEtaPhi_MedpTcut,
00380                       MonitorElement* const DenominatorEta_HighpTcut,
00381                       MonitorElement* const DenominatorPhi_HighpTcut,
00382                       MonitorElement* const DenominatorEtaPhi_HighpTcut,
00383                       //
00384                       MonitorElement* const DeltaR,
00385                       MonitorElement* const DeltaPhi,
00386                       //
00387                       MonitorElement* const NumeratorPFPt,
00388                       MonitorElement* const NumeratorPFMHT,
00389                       MonitorElement* const NumeratorPFPtBarrel,
00390                       MonitorElement* const NumeratorPFPtEndcap,
00391                       MonitorElement* const NumeratorPFPtForward,
00392                       MonitorElement* const NumeratorPFEta,
00393                       MonitorElement* const NumeratorPFPhi,
00394                       MonitorElement* const NumeratorPFEtaPhi,
00395                       //
00396                       MonitorElement* const NumeratorPFEtaBarrel,
00397                       MonitorElement* const NumeratorPFPhiBarrel,
00398                       MonitorElement* const NumeratorPFEtaEndcap,
00399                       MonitorElement* const NumeratorPFPhiEndcap,
00400                       MonitorElement* const NumeratorPFEtaForward,
00401                       MonitorElement* const NumeratorPFPhiForward,
00402                       MonitorElement* const NumeratorPFEta_LowpTcut,
00403                       MonitorElement* const NumeratorPFPhi_LowpTcut,
00404                       MonitorElement* const NumeratorPFEtaPhi_LowpTcut,
00405                       MonitorElement* const NumeratorPFEta_MedpTcut,
00406                       MonitorElement* const NumeratorPFPhi_MedpTcut,
00407                       MonitorElement* const NumeratorPFEtaPhi_MedpTcut,
00408                       MonitorElement* const NumeratorPFEta_HighpTcut,
00409                       MonitorElement* const NumeratorPFPhi_HighpTcut,
00410                       MonitorElement* const NumeratorPFEtaPhi_HighpTcut,      
00411                       //
00412                       MonitorElement* const DenominatorPFPt,
00413                       MonitorElement* const DenominatorPFMHT,
00414                       MonitorElement* const DenominatorPFPtBarrel,
00415                       MonitorElement* const DenominatorPFPtEndcap,
00416                       MonitorElement* const DenominatorPFPtForward,
00417                       MonitorElement* const DenominatorPFEta,
00418                       MonitorElement* const DenominatorPFPhi,
00419                       MonitorElement* const DenominatorPFEtaPhi,
00420                       //
00421                       MonitorElement* const DenominatorPFEtaBarrel,
00422                       MonitorElement* const DenominatorPFPhiBarrel,
00423                       MonitorElement* const DenominatorPFEtaEndcap,
00424                       MonitorElement* const DenominatorPFPhiEndcap,
00425                       MonitorElement* const DenominatorPFEtaForward,
00426                       MonitorElement* const DenominatorPFPhiForward,
00427                       MonitorElement* const DenominatorPFEta_LowpTcut,
00428                       MonitorElement* const DenominatorPFPhi_LowpTcut,
00429                       MonitorElement* const DenominatorPFEtaPhi_LowpTcut,
00430                       MonitorElement* const DenominatorPFEta_MedpTcut,
00431                       MonitorElement* const DenominatorPFPhi_MedpTcut,
00432                       MonitorElement* const DenominatorPFEtaPhi_MedpTcut,
00433                       MonitorElement* const DenominatorPFEta_HighpTcut,
00434                       MonitorElement* const DenominatorPFPhi_HighpTcut,
00435                       MonitorElement* const DenominatorPFEtaPhi_HighpTcut,
00436                       //
00437                       MonitorElement* const PFDeltaR,
00438                       MonitorElement* const PFDeltaPhi        
00439                       )
00440     {
00441       NumeratorPt_                   = NumeratorPt;
00442       NumeratorPtBarrel_             = NumeratorPtBarrel;
00443       NumeratorPtEndcap_             = NumeratorPtEndcap;
00444       NumeratorPtForward_            = NumeratorPtForward;
00445       NumeratorEta_                  = NumeratorEta;
00446       NumeratorPhi_                  = NumeratorPhi;
00447       NumeratorEtaPhi_               = NumeratorEtaPhi; 
00448       //
00449       NumeratorEtaBarrel_            = NumeratorEtaBarrel;
00450       NumeratorPhiBarrel_            = NumeratorPhiBarrel;
00451       NumeratorEtaEndcap_            = NumeratorEtaEndcap;
00452       NumeratorPhiEndcap_            = NumeratorPhiEndcap;
00453       NumeratorEtaForward_           = NumeratorEtaForward;
00454       NumeratorPhiForward_           = NumeratorPhiForward;
00455       NumeratorEta_LowpTcut_         = NumeratorEta_LowpTcut;
00456       NumeratorPhi_LowpTcut_         = NumeratorPhi_LowpTcut;
00457       NumeratorEtaPhi_LowpTcut_      = NumeratorEtaPhi_LowpTcut;
00458       NumeratorEta_MedpTcut_         = NumeratorEta_MedpTcut;
00459       NumeratorPhi_MedpTcut_         = NumeratorPhi_MedpTcut;
00460       NumeratorEtaPhi_MedpTcut_      = NumeratorEtaPhi_MedpTcut;
00461       NumeratorEta_HighpTcut_        = NumeratorEta_HighpTcut;
00462       NumeratorPhi_HighpTcut_        = NumeratorPhi_HighpTcut;
00463       NumeratorEtaPhi_HighpTcut_     = NumeratorEtaPhi_HighpTcut;
00464       //
00465       DenominatorPt_                 = DenominatorPt;
00466       DenominatorPtBarrel_           = DenominatorPtBarrel;
00467       DenominatorPtEndcap_           = DenominatorPtEndcap;
00468       DenominatorPtForward_          = DenominatorPtForward;
00469       DenominatorEta_                = DenominatorEta;
00470       DenominatorPhi_                = DenominatorPhi;
00471       DenominatorEtaPhi_             = DenominatorEtaPhi;
00472       //
00473       DenominatorEtaBarrel_          = DenominatorEtaBarrel;
00474       DenominatorPhiBarrel_          = DenominatorPhiBarrel;
00475       DenominatorEtaEndcap_          = DenominatorEtaEndcap;
00476       DenominatorPhiEndcap_          = DenominatorPhiEndcap;
00477       DenominatorEtaForward_         = DenominatorEtaForward;
00478       DenominatorPhiForward_         = DenominatorPhiForward;
00479       DenominatorEta_LowpTcut_       = DenominatorEta_LowpTcut;
00480       DenominatorPhi_LowpTcut_       = DenominatorPhi_LowpTcut;
00481       DenominatorEtaPhi_LowpTcut_    = DenominatorEtaPhi_LowpTcut;
00482       DenominatorEta_MedpTcut_       = DenominatorEta_MedpTcut;
00483       DenominatorPhi_MedpTcut_       = DenominatorPhi_MedpTcut;
00484       DenominatorEtaPhi_MedpTcut_    = DenominatorEtaPhi_MedpTcut;
00485       DenominatorEta_HighpTcut_      = DenominatorEta_HighpTcut;
00486       DenominatorPhi_HighpTcut_      = DenominatorPhi_HighpTcut;
00487       DenominatorEtaPhi_HighpTcut_   = DenominatorEtaPhi_HighpTcut;
00488       //
00489       DeltaR_                        = DeltaR;  
00490       DeltaPhi_                      = DeltaPhi;
00491       //
00492       NumeratorPFPt_                 = NumeratorPFPt;
00493       NumeratorPFMHT_                = NumeratorPFMHT;
00494       NumeratorPFPtBarrel_           = NumeratorPFPtBarrel;
00495       NumeratorPFPtEndcap_           = NumeratorPFPtEndcap;
00496       NumeratorPFPtForward_          = NumeratorPFPtForward;
00497       NumeratorPFEta_                = NumeratorPFEta;
00498       NumeratorPFPhi_                = NumeratorPFPhi;
00499       NumeratorPFEtaPhi_             = NumeratorPFEtaPhi; 
00500       //
00501       NumeratorPFEtaBarrel_          = NumeratorPFEtaBarrel;
00502       NumeratorPFPhiBarrel_          = NumeratorPFPhiBarrel;
00503       NumeratorPFEtaEndcap_          = NumeratorPFEtaEndcap;
00504       NumeratorPFPhiEndcap_          = NumeratorPFPhiEndcap;
00505       NumeratorPFEtaForward_         = NumeratorPFEtaForward;
00506       NumeratorPFPhiForward_         = NumeratorPFPhiForward;
00507       NumeratorPFEta_LowpTcut_       = NumeratorPFEta_LowpTcut;
00508       NumeratorPFPhi_LowpTcut_       = NumeratorPFPhi_LowpTcut;
00509       NumeratorPFEtaPhi_LowpTcut_    = NumeratorPFEtaPhi_LowpTcut;
00510       NumeratorPFEta_MedpTcut_       = NumeratorPFEta_MedpTcut;
00511       NumeratorPFPhi_MedpTcut_       = NumeratorPFPhi_MedpTcut;
00512       NumeratorPFEtaPhi_MedpTcut_    = NumeratorPFEtaPhi_MedpTcut;
00513       NumeratorPFEta_HighpTcut_      = NumeratorPFEta_HighpTcut;
00514       NumeratorPFPhi_HighpTcut_      = NumeratorPFPhi_HighpTcut;
00515       NumeratorPFEtaPhi_HighpTcut_   = NumeratorPFEtaPhi_HighpTcut;
00516       //
00517       DenominatorPFPt_               = DenominatorPFPt;
00518       DenominatorPFMHT_              = DenominatorPFMHT;
00519       DenominatorPFPtBarrel_         = DenominatorPFPtBarrel;
00520       DenominatorPFPtEndcap_         = DenominatorPFPtEndcap;
00521       DenominatorPFPtForward_        = DenominatorPFPtForward;
00522       DenominatorPFEta_              = DenominatorPFEta;
00523       DenominatorPFPhi_              = DenominatorPFPhi;
00524       DenominatorPFEtaPhi_           = DenominatorPFEtaPhi;
00525       //
00526       DenominatorPFEtaBarrel_        = DenominatorPFEtaBarrel;
00527       DenominatorPFPhiBarrel_        = DenominatorPFPhiBarrel;
00528       DenominatorPFEtaEndcap_        = DenominatorPFEtaEndcap;
00529       DenominatorPFPhiEndcap_        = DenominatorPFPhiEndcap;
00530       DenominatorPFEtaForward_       = DenominatorPFEtaForward;
00531       DenominatorPFPhiForward_       = DenominatorPFPhiForward;
00532       DenominatorPFEta_LowpTcut_     = DenominatorPFEta_LowpTcut;
00533       DenominatorPFPhi_LowpTcut_     = DenominatorPFPhi_LowpTcut;
00534       DenominatorPFEtaPhi_LowpTcut_  = DenominatorPFEtaPhi_LowpTcut;
00535       DenominatorPFEta_MedpTcut_     = DenominatorPFEta_MedpTcut;
00536       DenominatorPFPhi_MedpTcut_     = DenominatorPFPhi_MedpTcut;
00537       DenominatorPFEtaPhi_MedpTcut_  =  DenominatorPFEtaPhi_MedpTcut;
00538       DenominatorPFEta_HighpTcut_    = DenominatorPFEta_HighpTcut;
00539       DenominatorPFPhi_HighpTcut_    = DenominatorPFPhi_HighpTcut;
00540       DenominatorPFEtaPhi_HighpTcut_ = DenominatorPFEtaPhi_HighpTcut;
00541       //
00542       PFDeltaR_                      = PFDeltaR;  
00543       PFDeltaPhi_                    = PFDeltaPhi;
00544       
00545       
00546     }; 
00547     ~PathInfo() {};
00548     PathInfo(int prescaleUsed, 
00549              std::string denomPathName, 
00550              std::string pathName, 
00551              std::string l1pathName, 
00552              std::string filterName, 
00553              std::string DenomfilterName, 
00554              std::string processName, 
00555              size_t type, 
00556              std::string triggerType):
00557       prescaleUsed_(prescaleUsed),
00558       denomPathName_(denomPathName), 
00559       pathName_(pathName), 
00560       l1pathName_(l1pathName), 
00561       filterName_(filterName), 
00562       DenomfilterName_(DenomfilterName), 
00563       processName_(processName), 
00564       objectType_(type), 
00565       triggerType_(triggerType){};
00566       
00567       MonitorElement * getMEhisto_N() { return N_;}
00568       MonitorElement * getMEhisto_Pt() { return Pt_;}
00569       MonitorElement * getMEhisto_PtBarrel() { return PtBarrel_;}
00570       MonitorElement * getMEhisto_PtEndcap() { return PtEndcap_;}
00571       MonitorElement * getMEhisto_PtForward() { return PtForward_;}
00572       MonitorElement * getMEhisto_Eta() { return Eta_; }
00573       MonitorElement * getMEhisto_Phi() { return Phi_; }
00574       MonitorElement * getMEhisto_EtaPhi() { return EtaPhi_; }
00575       
00576       MonitorElement * getMEhisto_N_L1() { return N_L1_;}
00577       MonitorElement * getMEhisto_Pt_L1() { return Pt_L1_;}
00578       MonitorElement * getMEhisto_PtBarrel_L1() { return PtBarrel_L1_;}
00579       MonitorElement * getMEhisto_PtEndcap_L1() { return PtEndcap_L1_;}
00580       MonitorElement * getMEhisto_PtForward_L1() { return PtForward_L1_;}
00581       MonitorElement * getMEhisto_Eta_L1() { return Eta_L1_; }
00582       MonitorElement * getMEhisto_Phi_L1() { return Phi_L1_; }
00583       MonitorElement * getMEhisto_EtaPhi_L1() { return EtaPhi_L1_; } 
00584       
00585       MonitorElement * getMEhisto_N_HLT() { return N_HLT_;}
00586       MonitorElement * getMEhisto_Pt_HLT() { return Pt_HLT_;}
00587       MonitorElement * getMEhisto_PtBarrel_HLT() { return PtBarrel_HLT_;}
00588       MonitorElement * getMEhisto_PtEndcap_HLT() { return PtEndcap_HLT_;}
00589       MonitorElement * getMEhisto_PtForward_HLT() { return PtForward_HLT_;}
00590       MonitorElement * getMEhisto_Eta_HLT() { return Eta_HLT_; }
00591       MonitorElement * getMEhisto_Phi_HLT() { return Phi_HLT_; }
00592       MonitorElement * getMEhisto_EtaPhi_HLT() { return EtaPhi_HLT_; }
00593       
00594       MonitorElement * getMEhisto_PtResolution_L1HLT() { return PtResolution_L1HLT_;}
00595       MonitorElement * getMEhisto_EtaResolution_L1HLT() { return EtaResolution_L1HLT_;}
00596       MonitorElement * getMEhisto_PhiResolution_L1HLT() { return PhiResolution_L1HLT_;}
00597       MonitorElement * getMEhisto_PtResolution_HLTRecObj() { return PtResolution_HLTRecObj_;}
00598       MonitorElement * getMEhisto_EtaResolution_HLTRecObj() { return EtaResolution_HLTRecObj_;}
00599       MonitorElement * getMEhisto_PhiResolution_HLTRecObj() { return PhiResolution_HLTRecObj_;}
00600       
00601       MonitorElement * getMEhisto_PtCorrelation_L1HLT() { return PtCorrelation_L1HLT_;}
00602       MonitorElement * getMEhisto_EtaCorrelation_L1HLT() { return EtaCorrelation_L1HLT_;}
00603       MonitorElement * getMEhisto_PhiCorrelation_L1HLT() { return PhiCorrelation_L1HLT_;}
00604       MonitorElement * getMEhisto_PtCorrelation_HLTRecObj() { return PtCorrelation_HLTRecObj_;}
00605       MonitorElement * getMEhisto_EtaCorrelation_HLTRecObj() { return EtaCorrelation_HLTRecObj_;}
00606       MonitorElement * getMEhisto_PhiCorrelation_HLTRecObj() { return PhiCorrelation_HLTRecObj_;}
00607       
00608       MonitorElement * getMEhisto_AveragePt_RecObj() {return JetAveragePt_;}
00609       MonitorElement * getMEhisto_AverageEta_RecObj() {return JetAverageEta_;}
00610       MonitorElement * getMEhisto_DeltaPhi_RecObj() {return JetPhiDifference_;}
00611       MonitorElement * getMEhisto_AveragePt_HLTObj() {return HLTAveragePt_;}
00612       MonitorElement * getMEhisto_AverageEta_HLTObj() {return HLTAverageEta_;}
00613       MonitorElement * getMEhisto_DeltaPhi_HLTObj() {return HLTPhiDifference_;}
00614       MonitorElement * getMEhisto_AveragePt_L1Obj() {return L1AveragePt_;}
00615       MonitorElement * getMEhisto_AverageEta_L1Obj() {return L1AverageEta_;}
00616       MonitorElement * getMEhisto_DeltaPhi_L1Obj() {return L1PhiDifference_;}
00617       
00618       MonitorElement * getMEhisto_NumeratorPt() { return NumeratorPt_;}
00619       MonitorElement * getMEhisto_NumeratorPtBarrel() { return NumeratorPtBarrel_;}
00620       MonitorElement * getMEhisto_NumeratorPtEndcap() { return NumeratorPtEndcap_;}
00621       MonitorElement * getMEhisto_NumeratorPtForward() { return NumeratorPtForward_;}
00622       MonitorElement * getMEhisto_NumeratorEta() { return NumeratorEta_; }
00623       MonitorElement * getMEhisto_NumeratorPhi() { return NumeratorPhi_; }
00624       MonitorElement * getMEhisto_NumeratorEtaPhi() { return NumeratorEtaPhi_; } 
00625       
00626       //ml
00627       MonitorElement * getMEhisto_NVertices() { return NVertices_; }
00628       MonitorElement * getMEhisto_PVZ() { return PVZ_; }
00629       
00630       MonitorElement * getMEhisto_NumeratorEtaBarrel() { return NumeratorEtaBarrel_; }
00631       MonitorElement * getMEhisto_NumeratorPhiBarrel() { return NumeratorPhiBarrel_; }
00632       MonitorElement * getMEhisto_NumeratorEtaEndcap() { return NumeratorEtaEndcap_; }
00633       MonitorElement * getMEhisto_NumeratorPhiEndcap() { return NumeratorPhiEndcap_; }
00634       MonitorElement * getMEhisto_NumeratorEtaForward() { return NumeratorEtaForward_; }
00635       MonitorElement * getMEhisto_NumeratorPhiForward() { return NumeratorPhiForward_; }
00636       MonitorElement * getMEhisto_NumeratorEta_LowpTcut() { return NumeratorEta_LowpTcut_; }
00637       MonitorElement * getMEhisto_NumeratorPhi_LowpTcut() { return NumeratorPhi_LowpTcut_; }
00638       MonitorElement * getMEhisto_NumeratorEtaPhi_LowpTcut() { return NumeratorEtaPhi_LowpTcut_; }
00639       MonitorElement * getMEhisto_NumeratorEta_MedpTcut() { return NumeratorEta_MedpTcut_; }
00640       MonitorElement * getMEhisto_NumeratorPhi_MedpTcut() { return NumeratorPhi_MedpTcut_; }
00641       MonitorElement * getMEhisto_NumeratorEtaPhi_MedpTcut() { return NumeratorEtaPhi_MedpTcut_; }
00642       MonitorElement * getMEhisto_NumeratorEta_HighpTcut() { return NumeratorEta_HighpTcut_; }
00643       MonitorElement * getMEhisto_NumeratorPhi_HighpTcut() { return NumeratorPhi_HighpTcut_; }
00644       MonitorElement * getMEhisto_NumeratorEtaPhi_HighpTcut() { return NumeratorEtaPhi_HighpTcut_; }
00645       //ml
00646       
00647       MonitorElement * getMEhisto_DenominatorPt() { return DenominatorPt_;}
00648       MonitorElement * getMEhisto_DenominatorPtBarrel() { return DenominatorPtBarrel_;}
00649       MonitorElement * getMEhisto_DenominatorPtEndcap() { return DenominatorPtEndcap_;}
00650       MonitorElement * getMEhisto_DenominatorPtForward() { return DenominatorPtForward_;}
00651       MonitorElement * getMEhisto_DenominatorEta() { return DenominatorEta_; }
00652       MonitorElement * getMEhisto_DenominatorPhi() { return DenominatorPhi_; }
00653       MonitorElement * getMEhisto_DenominatorEtaPhi() { return DenominatorEtaPhi_; }
00654       
00655       //ml
00656       MonitorElement * getMEhisto_DenominatorEtaBarrel() { return DenominatorEtaBarrel_; }
00657       MonitorElement * getMEhisto_DenominatorPhiBarrel() { return DenominatorPhiBarrel_; }
00658       MonitorElement * getMEhisto_DenominatorEtaEndcap() { return DenominatorEtaEndcap_; }
00659       MonitorElement * getMEhisto_DenominatorPhiEndcap() { return DenominatorPhiEndcap_; }
00660       MonitorElement * getMEhisto_DenominatorEtaForward() { return DenominatorEtaForward_; }
00661       MonitorElement * getMEhisto_DenominatorPhiForward() { return DenominatorPhiForward_; }
00662       
00663       MonitorElement * getMEhisto_DenominatorEta_LowpTcut() { return DenominatorEta_LowpTcut_; }
00664       MonitorElement * getMEhisto_DenominatorPhi_LowpTcut() { return DenominatorPhi_LowpTcut_; }
00665       MonitorElement * getMEhisto_DenominatorEtaPhi_LowpTcut() { return DenominatorEtaPhi_LowpTcut_; }
00666       MonitorElement * getMEhisto_DenominatorEta_MedpTcut() { return DenominatorEta_MedpTcut_; }
00667       MonitorElement * getMEhisto_DenominatorPhi_MedpTcut() { return DenominatorPhi_MedpTcut_; }
00668       MonitorElement * getMEhisto_DenominatorEtaPhi_MedpTcut() { return DenominatorEtaPhi_MedpTcut_; }
00669       MonitorElement * getMEhisto_DenominatorEta_HighpTcut() { return DenominatorEta_HighpTcut_; }
00670       MonitorElement * getMEhisto_DenominatorPhi_HighpTcut() { return DenominatorPhi_HighpTcut_; }
00671       MonitorElement * getMEhisto_DenominatorEtaPhi_HighpTcut() { return DenominatorEtaPhi_HighpTcut_; }
00672       //adding PF histos SJ     
00673       MonitorElement * getMEhisto_NumeratorPFPt() { return NumeratorPFPt_;}
00674       MonitorElement * getMEhisto_NumeratorPFMHT() { return NumeratorPFMHT_;}
00675       
00676       MonitorElement * getMEhisto_NumeratorPFPtBarrel() { return NumeratorPFPtBarrel_;}
00677       MonitorElement * getMEhisto_NumeratorPFPtEndcap() { return NumeratorPFPtEndcap_;}
00678       MonitorElement * getMEhisto_NumeratorPFPtForward() { return NumeratorPFPtForward_;}
00679       MonitorElement * getMEhisto_NumeratorPFEta() { return NumeratorPFEta_; }
00680       MonitorElement * getMEhisto_NumeratorPFPhi() { return NumeratorPFPhi_; }
00681       MonitorElement * getMEhisto_NumeratorPFEtaPhi() { return NumeratorPFEtaPhi_; } 
00682       
00683       MonitorElement * getMEhisto_NumeratorPFEtaBarrel() { return NumeratorPFEtaBarrel_; }
00684       MonitorElement * getMEhisto_NumeratorPFPhiBarrel() { return NumeratorPFPhiBarrel_; }
00685       MonitorElement * getMEhisto_NumeratorPFEtaEndcap() { return NumeratorPFEtaEndcap_; }
00686       MonitorElement * getMEhisto_NumeratorPFPhiEndcap() { return NumeratorPFPhiEndcap_; }
00687       MonitorElement * getMEhisto_NumeratorPFEtaForward() { return NumeratorPFEtaForward_; }
00688       MonitorElement * getMEhisto_NumeratorPFPhiForward() { return NumeratorPFPhiForward_; }
00689       MonitorElement * getMEhisto_NumeratorPFEta_LowpTcut() { return NumeratorPFEta_LowpTcut_; }
00690       MonitorElement * getMEhisto_NumeratorPFPhi_LowpTcut() { return NumeratorPFPhi_LowpTcut_; }
00691       MonitorElement * getMEhisto_NumeratorPFEtaPhi_LowpTcut() { return NumeratorPFEtaPhi_LowpTcut_; }
00692       MonitorElement * getMEhisto_NumeratorPFEta_MedpTcut() { return NumeratorPFEta_MedpTcut_; }
00693       MonitorElement * getMEhisto_NumeratorPFPhi_MedpTcut() { return NumeratorPFPhi_MedpTcut_; }
00694       MonitorElement * getMEhisto_NumeratorPFEtaPhi_MedpTcut() { return NumeratorPFEtaPhi_MedpTcut_; }
00695       MonitorElement * getMEhisto_NumeratorPFEta_HighpTcut() { return NumeratorPFEta_HighpTcut_; }
00696       MonitorElement * getMEhisto_NumeratorPFPhi_HighpTcut() { return NumeratorPFPhi_HighpTcut_; }
00697       MonitorElement * getMEhisto_NumeratorPFEtaPhi_HighpTcut() { return NumeratorPFEtaPhi_HighpTcut_; }
00698       MonitorElement * getMEhisto_DenominatorPFPt() { return DenominatorPFPt_;}
00699       MonitorElement * getMEhisto_DenominatorPFMHT() { return DenominatorPFMHT_;}
00700       MonitorElement * getMEhisto_DenominatorPFPtBarrel() { return DenominatorPFPtBarrel_;}
00701       MonitorElement * getMEhisto_DenominatorPFPtEndcap() { return DenominatorPFPtEndcap_;}
00702       MonitorElement * getMEhisto_DenominatorPFPtForward() { return DenominatorPFPtForward_;}
00703       MonitorElement * getMEhisto_DenominatorPFEta() { return DenominatorPFEta_; }
00704       MonitorElement * getMEhisto_DenominatorPFPhi() { return DenominatorPFPhi_; }
00705       MonitorElement * getMEhisto_DenominatorPFEtaPhi() { return DenominatorPFEtaPhi_; }
00706       
00707       MonitorElement * getMEhisto_DenominatorPFEtaBarrel() { return DenominatorPFEtaBarrel_; }
00708       MonitorElement * getMEhisto_DenominatorPFPhiBarrel() { return DenominatorPFPhiBarrel_; }
00709       MonitorElement * getMEhisto_DenominatorPFEtaEndcap() { return DenominatorPFEtaEndcap_; }
00710       MonitorElement * getMEhisto_DenominatorPFPhiEndcap() { return DenominatorPFPhiEndcap_; }
00711       MonitorElement * getMEhisto_DenominatorPFEtaForward() { return DenominatorPFEtaForward_; }
00712       MonitorElement * getMEhisto_DenominatorPFPhiForward() { return DenominatorPFPhiForward_; }
00713       
00714       MonitorElement * getMEhisto_DenominatorPFEta_LowpTcut() { return DenominatorPFEta_LowpTcut_; }
00715       MonitorElement * getMEhisto_DenominatorPFPhi_LowpTcut() { return DenominatorPFPhi_LowpTcut_; }
00716       MonitorElement * getMEhisto_DenominatorPFEtaPhi_LowpTcut() { return DenominatorPFEtaPhi_LowpTcut_; }
00717       MonitorElement * getMEhisto_DenominatorPFEta_MedpTcut() { return DenominatorPFEta_MedpTcut_; }
00718       MonitorElement * getMEhisto_DenominatorPFPhi_MedpTcut() { return DenominatorPFPhi_MedpTcut_; }
00719       MonitorElement * getMEhisto_DenominatorPFEtaPhi_MedpTcut() { return DenominatorPFEtaPhi_MedpTcut_; }
00720       MonitorElement * getMEhisto_DenominatorPFEta_HighpTcut() { return DenominatorPFEta_HighpTcut_; }
00721       MonitorElement * getMEhisto_DenominatorPFPhi_HighpTcut() { return DenominatorPFPhi_HighpTcut_; }
00722       MonitorElement * getMEhisto_DenominatorPFEtaPhi_HighpTcut() { return DenominatorPFEtaPhi_HighpTcut_; }
00723       
00724       MonitorElement * getMEhisto_DeltaR() { return DeltaR_; }
00725       MonitorElement * getMEhisto_DeltaPhi() { return DeltaPhi_; }
00726       MonitorElement * getMEhisto_PFDeltaR() { return PFDeltaR_; }
00727       MonitorElement * getMEhisto_PFDeltaPhi() { return PFDeltaPhi_; }
00728       
00729       MonitorElement * getMEhisto_TriggerSummary() {return TriggerSummary_;}
00730       MonitorElement * getMEhisto_JetSize() {return JetSize_;}
00731       MonitorElement * getMEhisto_JetPt() {return JetPt_;}
00732       MonitorElement * getMEhisto_EtavsPt(){return EtavsPt_;}
00733       MonitorElement * getMEhisto_PhivsPt(){return PhivsPt_;}
00734       MonitorElement * getMEhisto_Pt12() {return Pt12_;}
00735       MonitorElement * getMEhisto_Eta12() {return Eta12_;}
00736       MonitorElement * getMEhisto_Phi12() {return Phi12_;}   
00737       MonitorElement * getMEhisto_Pt3() {return Pt3_;}
00738       MonitorElement * getMEhisto_Pt12Pt3() {return Pt12Pt3_;}
00739       MonitorElement * getMEhisto_Pt12Phi12() {return Pt12Phi12_;}
00740       
00741       const std::string getLabel(void ) const {
00742         return filterName_;
00743       }
00744       const std::string getDenomLabel(void ) const {
00745         return DenomfilterName_;
00746       }
00747       
00748       void setLabel(std::string labelName){
00749         filterName_ = labelName;
00750         return;
00751       }
00752       void setDenomLabel(std::string labelName){
00753         DenomfilterName_ = labelName;
00754         return;
00755       }
00756       const std::string getPath(void ) const {
00757         return pathName_;
00758       }
00759       const std::string getl1Path(void ) const {
00760         return l1pathName_;
00761       }
00762       const std::string getDenomPath(void ) const {
00763         return denomPathName_;
00764       }
00765       const int getprescaleUsed(void) const {
00766         return prescaleUsed_;
00767       }
00768       const std::string getProcess(void ) const {
00769         return processName_;
00770       }
00771       const int getObjectType(void ) const {
00772         return objectType_;
00773       }
00774       const std::string getTriggerType(void ) const {
00775         return triggerType_;
00776       }
00777       const edm::InputTag getTag(void) const{
00778         edm::InputTag tagName(filterName_,"",processName_);
00779         return tagName;
00780       }
00781       const edm::InputTag getDenomTag(void) const{
00782         edm::InputTag tagName(DenomfilterName_,"",processName_);
00783         return tagName;
00784       }
00785       bool operator==(const std::string v)
00786       {
00787         return v==pathName_;
00788       }
00789       
00790   private:
00791       int pathIndex_;
00792       int prescaleUsed_;
00793       std::string denomPathName_;
00794       std::string pathName_;
00795       std::string l1pathName_;
00796       std::string filterName_;
00797       std::string DenomfilterName_;
00798       std::string processName_;
00799       int objectType_;
00800       std::string triggerType_;
00801       
00802       MonitorElement*  N_;
00803       MonitorElement*  Pt_;
00804       MonitorElement*  PtBarrel_;
00805       MonitorElement*  PtEndcap_;
00806       MonitorElement*  PtForward_;
00807       MonitorElement*  Eta_;
00808       MonitorElement*  Phi_;
00809       MonitorElement*  EtaPhi_;
00810       MonitorElement*  N_L1_;
00811       MonitorElement*  Pt_L1_;
00812       MonitorElement*  PtBarrel_L1_;
00813       MonitorElement*  PtEndcap_L1_;
00814       MonitorElement*  PtForward_L1_;
00815       MonitorElement*  Eta_L1_;
00816       MonitorElement*  Phi_L1_;
00817       MonitorElement*  EtaPhi_L1_;
00818       MonitorElement*  N_HLT_;
00819       MonitorElement*  Pt_HLT_;
00820       MonitorElement*  PtBarrel_HLT_;
00821       MonitorElement*  PtEndcap_HLT_;
00822       MonitorElement*  PtForward_HLT_;
00823       MonitorElement*  Eta_HLT_;
00824       MonitorElement*  Phi_HLT_;
00825       MonitorElement*  EtaPhi_HLT_;
00826       MonitorElement*  DeltaR_HLT_; 
00827       MonitorElement*  DeltaPhi_HLT_;
00828       
00829       MonitorElement*  PtResolution_L1HLT_;
00830       MonitorElement*  EtaResolution_L1HLT_;
00831       MonitorElement*  PhiResolution_L1HLT_;
00832       MonitorElement*  PtResolution_HLTRecObj_;
00833       MonitorElement*  EtaResolution_HLTRecObj_;
00834       MonitorElement*  PhiResolution_HLTRecObj_;
00835       MonitorElement*  PtCorrelation_L1HLT_;
00836       MonitorElement*  EtaCorrelation_L1HLT_;
00837       MonitorElement*  PhiCorrelation_L1HLT_;
00838       MonitorElement*  PtCorrelation_HLTRecObj_;
00839       MonitorElement*  EtaCorrelation_HLTRecObj_;
00840       MonitorElement*  PhiCorrelation_HLTRecObj_;
00841       
00842       MonitorElement*  JetAveragePt_;
00843       MonitorElement*  JetAverageEta_;
00844       MonitorElement*  JetPhiDifference_;
00845       MonitorElement*  HLTAveragePt_;
00846       MonitorElement*  HLTAverageEta_;
00847       MonitorElement*  HLTPhiDifference_;
00848       MonitorElement*  L1AveragePt_;
00849       MonitorElement*  L1AverageEta_;
00850       MonitorElement*  L1PhiDifference_;
00851       
00852       MonitorElement*  NumeratorPt_;
00853       MonitorElement*  NumeratorPtBarrel_;
00854       MonitorElement*  NumeratorPtEndcap_;
00855       MonitorElement*  NumeratorPtForward_;
00856       MonitorElement*  NumeratorEta_;
00857       MonitorElement*  NumeratorPhi_;
00858       MonitorElement*  NumeratorEtaPhi_;
00859       
00860       //ml
00861       MonitorElement*  PVZ_;
00862       MonitorElement*  NVertices_;
00863       
00864       MonitorElement*  NumeratorEtaBarrel_;
00865       MonitorElement*  NumeratorPhiBarrel_;
00866       MonitorElement*  NumeratorEtaEndcap_;
00867       MonitorElement*  NumeratorPhiEndcap_;
00868       MonitorElement*  NumeratorEtaForward_;
00869       MonitorElement*  NumeratorPhiForward_;
00870       
00871       MonitorElement*  NumeratorEta_LowpTcut_;
00872       MonitorElement*  NumeratorPhi_LowpTcut_;
00873       MonitorElement*  NumeratorEtaPhi_LowpTcut_;
00874       MonitorElement*  NumeratorEta_MedpTcut_;
00875       MonitorElement*  NumeratorPhi_MedpTcut_;
00876       MonitorElement*  NumeratorEtaPhi_MedpTcut_;
00877       MonitorElement*  NumeratorEta_HighpTcut_;
00878       MonitorElement*  NumeratorPhi_HighpTcut_;
00879       MonitorElement*  NumeratorEtaPhi_HighpTcut_;
00880       //ml
00881       
00882       MonitorElement*  DenominatorPt_;
00883       MonitorElement*  DenominatorPtBarrel_;
00884       MonitorElement*  DenominatorPtEndcap_;
00885       MonitorElement*  DenominatorPtForward_;
00886       MonitorElement*  DenominatorEta_;
00887       MonitorElement*  DenominatorPhi_;
00888       MonitorElement*  DenominatorEtaPhi_;
00889       //ml
00890       MonitorElement*  DenominatorEtaBarrel_;
00891       MonitorElement*  DenominatorPhiBarrel_;
00892       MonitorElement*  DenominatorEtaEndcap_;
00893       MonitorElement*  DenominatorPhiEndcap_;
00894       MonitorElement*  DenominatorEtaForward_;
00895       MonitorElement*  DenominatorPhiForward_;
00896       
00897       MonitorElement*  DenominatorEta_LowpTcut_;
00898       MonitorElement*  DenominatorPhi_LowpTcut_;
00899       MonitorElement*  DenominatorEtaPhi_LowpTcut_;
00900       MonitorElement*  DenominatorEta_MedpTcut_;
00901       MonitorElement*  DenominatorPhi_MedpTcut_;
00902       MonitorElement*  DenominatorEtaPhi_MedpTcut_;
00903       MonitorElement*  DenominatorEta_HighpTcut_;
00904       MonitorElement*  DenominatorPhi_HighpTcut_;
00905       MonitorElement*  DenominatorEtaPhi_HighpTcut_;
00906       
00907       MonitorElement*  DeltaR_; 
00908       MonitorElement*  DeltaPhi_; 
00909       
00910       //adding PF histos SJ:
00911       MonitorElement*  NumeratorPFPt_;
00912       MonitorElement*  NumeratorPFMHT_;
00913       MonitorElement*  NumeratorPFPtBarrel_;
00914       MonitorElement*  NumeratorPFPtEndcap_;
00915       MonitorElement*  NumeratorPFPtForward_;
00916       MonitorElement*  NumeratorPFEta_;
00917       MonitorElement*  NumeratorPFPhi_;
00918       MonitorElement*  NumeratorPFEtaPhi_;
00919       MonitorElement*  NumeratorPFEtaBarrel_;
00920       MonitorElement*  NumeratorPFPhiBarrel_;
00921       MonitorElement*  NumeratorPFEtaEndcap_;
00922       MonitorElement*  NumeratorPFPhiEndcap_;
00923       MonitorElement*  NumeratorPFEtaForward_;
00924       MonitorElement*  NumeratorPFPhiForward_;
00925       
00926       MonitorElement*  NumeratorPFEta_LowpTcut_;
00927       MonitorElement*  NumeratorPFPhi_LowpTcut_;
00928       MonitorElement*  NumeratorPFEtaPhi_LowpTcut_;
00929       MonitorElement*  NumeratorPFEta_MedpTcut_;
00930       MonitorElement*  NumeratorPFPhi_MedpTcut_;
00931       MonitorElement*  NumeratorPFEtaPhi_MedpTcut_;
00932       MonitorElement*  NumeratorPFEta_HighpTcut_;
00933       MonitorElement*  NumeratorPFPhi_HighpTcut_;
00934       MonitorElement*  NumeratorPFEtaPhi_HighpTcut_;
00935       
00936       MonitorElement*  DenominatorPFPt_;
00937       MonitorElement*  DenominatorPFMHT_;
00938       MonitorElement*  DenominatorPFPtBarrel_;
00939       MonitorElement*  DenominatorPFPtEndcap_;
00940       MonitorElement*  DenominatorPFPtForward_;
00941       MonitorElement*  DenominatorPFEta_;
00942       MonitorElement*  DenominatorPFPhi_;
00943       MonitorElement*  DenominatorPFEtaPhi_;
00944       
00945       MonitorElement*  DenominatorPFEtaBarrel_;
00946       MonitorElement*  DenominatorPFPhiBarrel_;
00947       MonitorElement*  DenominatorPFEtaEndcap_;
00948       MonitorElement*  DenominatorPFPhiEndcap_;
00949       MonitorElement*  DenominatorPFEtaForward_;
00950       MonitorElement*  DenominatorPFPhiForward_;
00951       
00952       MonitorElement*  DenominatorPFEta_LowpTcut_;
00953       MonitorElement*  DenominatorPFPhi_LowpTcut_;
00954       MonitorElement*  DenominatorPFEtaPhi_LowpTcut_;
00955       MonitorElement*  DenominatorPFEta_MedpTcut_;
00956       MonitorElement*  DenominatorPFPhi_MedpTcut_;
00957       MonitorElement*  DenominatorPFEtaPhi_MedpTcut_;
00958       MonitorElement*  DenominatorPFEta_HighpTcut_;
00959       MonitorElement*  DenominatorPFPhi_HighpTcut_;
00960       MonitorElement*  DenominatorPFEtaPhi_HighpTcut_;
00961       MonitorElement*  PFDeltaR_; 
00962       MonitorElement*  PFDeltaPhi_; 
00963       
00964       MonitorElement*  TriggerSummary_;
00965       MonitorElement*  JetSize_;
00966       MonitorElement*  JetPt_;
00967       MonitorElement*  EtavsPt_;
00968       MonitorElement*  PhivsPt_;
00969       MonitorElement*  Pt12_;
00970       MonitorElement*  Eta12_;
00971       MonitorElement*  Phi12_; 
00972       MonitorElement*  Pt3_;
00973       MonitorElement*  Pt12Pt3_;
00974       MonitorElement*  Pt12Phi12_;
00975   };
00976   
00977   // simple collection 
00978   class PathInfoCollection: public std::vector<PathInfo> {
00979   public:
00980     PathInfoCollection(): std::vector<PathInfo>()
00981       {};
00982       std::vector<PathInfo>::iterator find(std::string pathName) {
00983         return std::find(begin(), end(), pathName);
00984       }
00985   };
00986   PathInfoCollection hltPathsAllTriggerSummary_;
00987   PathInfoCollection hltPathsAll_;
00988   PathInfoCollection hltPathsAllWrtMu_;
00989   PathInfoCollection hltPathsEff_;
00990   PathInfoCollection hltPathsEffWrtMu_;
00991   PathInfoCollection hltPathsEffWrtMB_;
00992   
00993   MonitorElement* rate_All;
00994   MonitorElement* rate_AllWrtMu;
00995   MonitorElement* rate_AllWrtMB;
00996   
00997   MonitorElement* correlation_All;
00998   MonitorElement* correlation_AllWrtMu;
00999   MonitorElement* correlation_AllWrtMB;
01000   MonitorElement* PVZ;
01001   MonitorElement* NVertices;
01002 };
01003 #endif