CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 /*
00002   New version of HLT Offline DQM code for JetMET
00003   responsible: Sunil Bansal, Shabnam jabeen 
00004 
00005 */
00006 
00007 
00008 #ifndef JetMETHLTOfflineSource_H
00009 #define JetMETHLTOfflineSource_H
00010 
00011 // system include files
00012 #include <memory>
00013 #include <unistd.h>
00014 
00015 
00016 // user include files
00017 #include "FWCore/Framework/interface/Frameworkfwd.h"
00018 #include "FWCore/Framework/interface/EDAnalyzer.h"
00019 
00020 #include "FWCore/Framework/interface/Event.h"
00021 #include "FWCore/Framework/interface/MakerMacros.h"
00022 
00023 #include "DataFormats/Common/interface/TriggerResults.h"
00024 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
00025 #include "DataFormats/HLTReco/interface/TriggerObject.h"
00026 #include "FWCore/Common/interface/TriggerNames.h"
00027 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
00028 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
00029 #include "RecoJets/JetProducers/interface/JetIDHelper.h"
00030 
00031 #include "DQMServices/Core/interface/DQMStore.h"
00032 #include "DQMServices/Core/interface/MonitorElement.h"
00033 #include "FWCore/ServiceRegistry/interface/Service.h"
00034 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00035 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00036 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
00037 #include "DataFormats/METReco/interface/CaloMETCollection.h"
00038 #include "DataFormats/METReco/interface/CaloMET.h"
00039 
00040 #include <iostream>
00041 #include <fstream>
00042 #include <vector>
00043 
00044 class PtSorter {
00045  public:
00046    template <class T> bool operator() ( const T& a, const T& b ) {
00047      return ( a.pt() > b.pt() );
00048    }
00049  };
00050 
00051 class JetMETHLTOfflineSource : public edm::EDAnalyzer {
00052    public:
00053       explicit JetMETHLTOfflineSource(const edm::ParameterSet&);
00054       ~JetMETHLTOfflineSource();
00055 
00056 
00057    private:
00058       virtual void beginJob() ;
00059       virtual void analyze(const edm::Event&, const edm::EventSetup&);
00060       virtual void endJob() ;
00061 
00062       // BeginRun
00063       void beginRun(const edm::Run& run, const edm::EventSetup& c);
00064      
00065       void histobooking( const edm::EventSetup& c);
00066 
00067       // EndRun
00068       void endRun(const edm::Run& run, const edm::EventSetup& c);
00069       
00070 
00071       void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, 
00072                                 const edm::EventSetup& c) ;
00073 
00075         void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, 
00076                                 const edm::EventSetup& c);
00077 
00078         virtual bool isBarrel(double eta);
00079         virtual bool isEndCap(double eta); 
00080         virtual bool isForward(double eta);
00081         virtual bool validPathHLT(std::string path);
00082         virtual bool isHLTPathAccepted(std::string pathName);
00083         virtual bool isTriggerObjectFound(std::string objectName);
00084         virtual double TriggerPosition(std::string trigName);
00085         virtual void fillMEforMonTriggerSummary();
00086         virtual void fillMEforMonAllTrigger(const edm::Event & iEvent);
00087         virtual void fillMEforMonAllTriggerwrtMuonTrigger(const edm::Event & iEvent);
00088    
00089         virtual void fillMEforEffAllTrigger(const edm::Event & iEvent);
00090         virtual void fillMEforEffWrtMuTrigger(const edm::Event & iEvent);
00091         virtual void fillMEforEffWrtMBTrigger(const edm::Event & iEvent);
00092         virtual void fillMEforTriggerNTfired();
00093       // ----------member data --------------------------- 
00094       int nev_;
00095       DQMStore * dbe;
00096 
00097       MonitorElement* total_;
00098 
00099 
00100       std::vector<std::string>  MuonTrigPaths_;
00101       std::vector<std::string>  MBTrigPaths_;
00102       std::vector<int>  prescUsed_;
00103 
00104 
00105       std::string dirname_;
00106       std::string processname_;
00107       // JetID helper
00108       reco::helper::JetIDHelper *jetID;
00109 
00110       bool verbose_;
00111       bool plotAll_;
00112       bool plotAllwrtMu_;
00113       bool plotEff_ ; 
00114       bool isSetup_;
00115       bool nameForEff_;  
00116      
00117       double _fEMF;
00118       double _feta;
00119       double _fHPD;
00120       double _n90Hits; 
00121       edm::InputTag triggerSummaryLabel_;
00122       edm::InputTag triggerResultsLabel_;
00123       edm::InputTag caloJetsTag_;
00124       edm::InputTag caloMETTag_;
00125       edm::Handle<reco::CaloJetCollection> calojetColl_;
00126       edm::Handle<reco::CaloMETCollection> calometColl_; 
00127       std::vector<std::string> custompathname;
00128       std::vector<std::pair<std::string, std::string> > custompathnamepairs_;
00129         
00130       reco::CaloJetCollection calojet; 
00131       HLTConfigProvider hltConfig_;
00132       edm::Handle<edm::TriggerResults> triggerResults_;
00133       edm::TriggerNames triggerNames_; // TriggerNames class
00134       edm::Handle<trigger::TriggerEvent> triggerObj_;
00135       // data across paths
00136       MonitorElement* scalersSelect;
00137       // helper class to store the data path
00138 
00139       class PathInfo {
00140         PathInfo():
00141           pathIndex_(-1), prescaleUsed_(-1),denomPathName_("unset"), pathName_("unset"), l1pathName_("unset"), filterName_("unset"), DenomfilterName_("unset"), processName_("unset"), objectType_(-1), triggerType_("unset")
00142           {};
00143       public:
00144         void setHistos( 
00145                        MonitorElement* const N, 
00146                        MonitorElement* const Pt, 
00147                        MonitorElement* const PtBarrel,
00148                        MonitorElement* const PtEndcap,
00149                        MonitorElement* const PtForward,
00150                        MonitorElement* const Eta,
00151                        MonitorElement* const Phi, 
00152                        MonitorElement* const EtaPhi, 
00153                        MonitorElement* const N_L1,
00154                        MonitorElement* const Pt_L1,
00155                        MonitorElement* const PtBarrel_L1,
00156                        MonitorElement* const PtEndcap_L1,
00157                        MonitorElement* const PtForward_L1,
00158                        MonitorElement* const Eta_L1,
00159                        MonitorElement* const Phi_L1,
00160                        MonitorElement* const EtaPhi_L1,
00161                        MonitorElement* const N_HLT,
00162                        MonitorElement* const Pt_HLT,
00163                        MonitorElement* const PtBarrel_HLT,
00164                        MonitorElement* const PtEndcap_HLT,
00165                        MonitorElement* const PtForward_HLT,
00166                        MonitorElement* const Eta_HLT,
00167                        MonitorElement* const Phi_HLT,
00168                        MonitorElement* const EtaPhi_HLT, 
00169 
00170                        MonitorElement* const PtResolution_L1HLT,
00171                        MonitorElement* const EtaResolution_L1HLT,
00172                        MonitorElement* const PhiResolution_L1HLT, 
00173                        MonitorElement* const PtResolution_HLTRecObj,
00174                        MonitorElement* const EtaResolution_HLTRecObj,
00175                        MonitorElement* const PhiResolution_HLTRecObj,
00176 
00177                        MonitorElement* const PtCorrelation_L1HLT,
00178                        MonitorElement* const EtaCorrelation_L1HLT,
00179                        MonitorElement* const PhiCorrelation_L1HLT,
00180                        MonitorElement* const PtCorrelation_HLTRecObj,
00181                        MonitorElement* const EtaCorrelation_HLTRecObj,
00182                        MonitorElement* const PhiCorrelation_HLTRecObj,
00183                       
00184                        MonitorElement* const JetAveragePt,
00185                        MonitorElement* const JetAverageEta,  
00186                        MonitorElement* const JetPhiDifference,
00187                        MonitorElement* const HLTAveragePt,
00188                        MonitorElement* const HLTAverageEta,
00189                        MonitorElement* const HLTPhiDifference,
00190                        MonitorElement* const L1AveragePt,
00191                        MonitorElement* const L1AverageEta,
00192                        MonitorElement* const L1PhiDifference 
00193                        )    
00194 
00195           {
00196                        N_             =N;
00197                        Pt_            =Pt;
00198                        PtBarrel_      =PtBarrel;
00199                        PtEndcap_      =PtEndcap;
00200                        PtForward_     =PtForward;
00201                        Eta_           =Eta;
00202                        Phi_           =Phi;
00203                        EtaPhi_        =EtaPhi;
00204                        N_L1_          =N_L1;
00205                        Pt_L1_         =Pt_L1;
00206                        PtBarrel_L1_   =PtBarrel_L1;
00207                        PtEndcap_L1_   =PtEndcap_L1;
00208                        PtForward_L1_  =PtForward_L1;
00209                        Eta_L1_        =Eta_L1;
00210                        Phi_L1_        =Phi_L1;
00211                        EtaPhi_L1_     =EtaPhi_L1 ;
00212                        N_HLT_         =N_HLT;
00213                        Pt_HLT_        =Pt_HLT;
00214                        PtBarrel_HLT_  =PtBarrel_HLT;
00215                        PtEndcap_HLT_  =PtEndcap_HLT;
00216                        PtForward_HLT_ =PtForward_HLT;
00217                        Eta_HLT_       =Eta_HLT;
00218                        Phi_HLT_       =Phi_HLT;
00219                        EtaPhi_HLT_    =EtaPhi_HLT ;
00220 
00221                        PtResolution_L1HLT_  =PtResolution_L1HLT;
00222                        EtaResolution_L1HLT_ =EtaResolution_L1HLT;
00223                        PhiResolution_L1HLT_ =PhiResolution_L1HLT;
00224                        PtResolution_HLTRecObj_ =PtResolution_HLTRecObj;
00225                        EtaResolution_HLTRecObj_=EtaResolution_HLTRecObj;
00226                        PhiResolution_HLTRecObj_=PhiResolution_HLTRecObj;
00227   
00228                        PtCorrelation_L1HLT_  =PtCorrelation_L1HLT;
00229                        EtaCorrelation_L1HLT_ =EtaCorrelation_L1HLT;
00230                        PhiCorrelation_L1HLT_ =PhiCorrelation_L1HLT;
00231                        PtCorrelation_HLTRecObj_ =PtCorrelation_HLTRecObj;
00232                        EtaCorrelation_HLTRecObj_=EtaCorrelation_HLTRecObj;
00233                        PhiCorrelation_HLTRecObj_=PhiCorrelation_HLTRecObj;
00234 
00235                        JetAveragePt_ = JetAveragePt;
00236                        JetAverageEta_ = JetAverageEta;
00237                        JetPhiDifference_ = JetPhiDifference;
00238                        HLTAveragePt_ = HLTAveragePt;
00239                        HLTAverageEta_ = HLTAverageEta;
00240                        HLTPhiDifference_ = HLTPhiDifference; 
00241                        L1AveragePt_ = L1AveragePt;
00242                        L1AverageEta_ = L1AverageEta;
00243                        L1PhiDifference_ = L1PhiDifference;
00244                        
00245 
00246         };
00247         void setDgnsHistos(
00248                        MonitorElement* const TriggerSummary,
00249                        MonitorElement* const JetSize,
00250                        MonitorElement* const JetPt,  
00251                        MonitorElement* const EtavsPt,
00252                        MonitorElement* const PhivsPt,
00253                        MonitorElement* const Pt12,
00254                        MonitorElement* const Eta12,
00255                        MonitorElement* const Phi12,                      
00256                        MonitorElement* const Pt3,
00257                        MonitorElement* const Pt12Pt3,
00258                        MonitorElement* const Pt12Phi12
00259 
00260         )
00261         {
00262                       TriggerSummary_ = TriggerSummary; 
00263                       JetSize_      = JetSize;
00264                       JetPt_        = JetPt;
00265                       EtavsPt_      = EtavsPt;
00266                       PhivsPt_      = PhivsPt;
00267                       Pt12_         = Pt12;
00268                       Eta12_        = Eta12;
00269                       Phi12_         = Phi12;
00270                       Pt3_          = Pt3;
00271                       Pt12Pt3_          = Pt12Pt3;
00272                       Pt12Phi12_          = Pt12Phi12; 
00273 
00274       };
00275         void setEffHistos(
00276                        MonitorElement* const NumeratorPt,
00277                        MonitorElement* const NumeratorPtBarrel,
00278                        MonitorElement* const NumeratorPtEndcap,
00279                        MonitorElement* const NumeratorPtForward,
00280                        MonitorElement* const NumeratorEta,
00281                        MonitorElement* const NumeratorPhi,
00282                        MonitorElement* const NumeratorEtaPhi,
00283                        MonitorElement* const DenominatorPt,
00284                        MonitorElement* const DenominatorPtBarrel,
00285                        MonitorElement* const DenominatorPtEndcap,
00286                        MonitorElement* const DenominatorPtForward,
00287                        MonitorElement* const DenominatorEta,
00288                        MonitorElement* const DenominatorPhi,
00289                        MonitorElement* const DenominatorEtaPhi
00290      
00291 )
00292 {
00293                        NumeratorPt_            =NumeratorPt;
00294                        NumeratorPtBarrel_      =NumeratorPtBarrel;
00295                        NumeratorPtEndcap_      =NumeratorPtEndcap;
00296                        NumeratorPtForward_     =NumeratorPtForward;
00297                        NumeratorEta_           =NumeratorEta;
00298                        NumeratorPhi_           =NumeratorPhi;
00299                        NumeratorEtaPhi_        =NumeratorEtaPhi; 
00300                        DenominatorPt_            =DenominatorPt;
00301                        DenominatorPtBarrel_      =DenominatorPtBarrel;
00302                        DenominatorPtEndcap_      =DenominatorPtEndcap;
00303                        DenominatorPtForward_     =DenominatorPtForward;
00304                        DenominatorEta_           =DenominatorEta;
00305                        DenominatorPhi_           =DenominatorPhi;
00306                        DenominatorEtaPhi_        =DenominatorEtaPhi;
00307 
00308 
00309           }; 
00310         ~PathInfo() {};
00311         PathInfo(int prescaleUsed, std::string denomPathName, std::string pathName, std::string l1pathName, std::string filterName, std::string DenomfilterName, std::string processName, size_t type, std::string triggerType):
00312           prescaleUsed_(prescaleUsed),denomPathName_(denomPathName), pathName_(pathName), l1pathName_(l1pathName), filterName_(filterName), DenomfilterName_(DenomfilterName), processName_(processName), objectType_(type), triggerType_(triggerType){};
00313        
00314         MonitorElement * getMEhisto_N() { return N_;}
00315         MonitorElement * getMEhisto_Pt() { return Pt_;}
00316         MonitorElement * getMEhisto_PtBarrel() { return PtBarrel_;}
00317         MonitorElement * getMEhisto_PtEndcap() { return PtEndcap_;}
00318         MonitorElement * getMEhisto_PtForward() { return PtForward_;}
00319         MonitorElement * getMEhisto_Eta() { return Eta_; }
00320         MonitorElement * getMEhisto_Phi() { return Phi_; }
00321         MonitorElement * getMEhisto_EtaPhi() { return EtaPhi_; }
00322         
00323         MonitorElement * getMEhisto_N_L1() { return N_L1_;}
00324         MonitorElement * getMEhisto_Pt_L1() { return Pt_L1_;}
00325         MonitorElement * getMEhisto_PtBarrel_L1() { return PtBarrel_L1_;}
00326         MonitorElement * getMEhisto_PtEndcap_L1() { return PtEndcap_L1_;}
00327         MonitorElement * getMEhisto_PtForward_L1() { return PtForward_L1_;}
00328         MonitorElement * getMEhisto_Eta_L1() { return Eta_L1_; }
00329         MonitorElement * getMEhisto_Phi_L1() { return Phi_L1_; }
00330         MonitorElement * getMEhisto_EtaPhi_L1() { return EtaPhi_L1_; } 
00331 
00332         MonitorElement * getMEhisto_N_HLT() { return N_HLT_;}
00333         MonitorElement * getMEhisto_Pt_HLT() { return Pt_HLT_;}
00334         MonitorElement * getMEhisto_PtBarrel_HLT() { return PtBarrel_HLT_;}
00335         MonitorElement * getMEhisto_PtEndcap_HLT() { return PtEndcap_HLT_;}
00336         MonitorElement * getMEhisto_PtForward_HLT() { return PtForward_HLT_;}
00337         MonitorElement * getMEhisto_Eta_HLT() { return Eta_HLT_; }
00338         MonitorElement * getMEhisto_Phi_HLT() { return Phi_HLT_; }
00339         MonitorElement * getMEhisto_EtaPhi_HLT() { return EtaPhi_HLT_; }
00340 
00341         MonitorElement * getMEhisto_PtResolution_L1HLT() { return PtResolution_L1HLT_;}
00342         MonitorElement * getMEhisto_EtaResolution_L1HLT() { return EtaResolution_L1HLT_;}
00343         MonitorElement * getMEhisto_PhiResolution_L1HLT() { return PhiResolution_L1HLT_;}
00344         MonitorElement * getMEhisto_PtResolution_HLTRecObj() { return PtResolution_HLTRecObj_;}
00345         MonitorElement * getMEhisto_EtaResolution_HLTRecObj() { return EtaResolution_HLTRecObj_;}
00346         MonitorElement * getMEhisto_PhiResolution_HLTRecObj() { return PhiResolution_HLTRecObj_;}
00347    
00348         MonitorElement * getMEhisto_PtCorrelation_L1HLT() { return PtCorrelation_L1HLT_;}
00349         MonitorElement * getMEhisto_EtaCorrelation_L1HLT() { return EtaCorrelation_L1HLT_;}
00350         MonitorElement * getMEhisto_PhiCorrelation_L1HLT() { return PhiCorrelation_L1HLT_;}
00351         MonitorElement * getMEhisto_PtCorrelation_HLTRecObj() { return PtCorrelation_HLTRecObj_;}
00352         MonitorElement * getMEhisto_EtaCorrelation_HLTRecObj() { return EtaCorrelation_HLTRecObj_;}
00353         MonitorElement * getMEhisto_PhiCorrelation_HLTRecObj() { return PhiCorrelation_HLTRecObj_;}
00354 
00355         MonitorElement * getMEhisto_AveragePt_RecObj() {return JetAveragePt_;}
00356         MonitorElement * getMEhisto_AverageEta_RecObj() {return JetAverageEta_;}
00357         MonitorElement * getMEhisto_DeltaPhi_RecObj() {return JetPhiDifference_;}
00358         MonitorElement * getMEhisto_AveragePt_HLTObj() {return HLTAveragePt_;}
00359         MonitorElement * getMEhisto_AverageEta_HLTObj() {return HLTAverageEta_;}
00360         MonitorElement * getMEhisto_DeltaPhi_HLTObj() {return HLTPhiDifference_;}
00361         MonitorElement * getMEhisto_AveragePt_L1Obj() {return L1AveragePt_;}
00362         MonitorElement * getMEhisto_AverageEta_L1Obj() {return L1AverageEta_;}
00363         MonitorElement * getMEhisto_DeltaPhi_L1Obj() {return L1PhiDifference_;}
00364   
00365         MonitorElement * getMEhisto_NumeratorPt() { return NumeratorPt_;}
00366         MonitorElement * getMEhisto_NumeratorPtBarrel() { return NumeratorPtBarrel_;}
00367         MonitorElement * getMEhisto_NumeratorPtEndcap() { return NumeratorPtEndcap_;}
00368         MonitorElement * getMEhisto_NumeratorPtForward() { return NumeratorPtForward_;}
00369         MonitorElement * getMEhisto_NumeratorEta() { return NumeratorEta_; }
00370         MonitorElement * getMEhisto_NumeratorPhi() { return NumeratorPhi_; }
00371         MonitorElement * getMEhisto_NumeratorEtaPhi() { return NumeratorEtaPhi_; } 
00372         MonitorElement * getMEhisto_DenominatorPt() { return DenominatorPt_;}
00373         MonitorElement * getMEhisto_DenominatorPtBarrel() { return DenominatorPtBarrel_;}
00374         MonitorElement * getMEhisto_DenominatorPtEndcap() { return DenominatorPtEndcap_;}
00375         MonitorElement * getMEhisto_DenominatorPtForward() { return DenominatorPtForward_;}
00376         MonitorElement * getMEhisto_DenominatorEta() { return DenominatorEta_; }
00377         MonitorElement * getMEhisto_DenominatorPhi() { return DenominatorPhi_; }
00378         MonitorElement * getMEhisto_DenominatorEtaPhi() { return DenominatorEtaPhi_; }
00379 
00380         MonitorElement * getMEhisto_TriggerSummary() {return TriggerSummary_;}
00381         MonitorElement * getMEhisto_JetSize() {return JetSize_;}
00382         MonitorElement * getMEhisto_JetPt() {return JetPt_;}
00383         MonitorElement * getMEhisto_EtavsPt(){return EtavsPt_;}
00384         MonitorElement * getMEhisto_PhivsPt(){return PhivsPt_;}
00385         MonitorElement * getMEhisto_Pt12() {return Pt12_;}
00386         MonitorElement * getMEhisto_Eta12() {return Eta12_;}
00387         MonitorElement * getMEhisto_Phi12() {return Phi12_;}   
00388         MonitorElement * getMEhisto_Pt3() {return Pt3_;}
00389         MonitorElement * getMEhisto_Pt12Pt3() {return Pt12Pt3_;}
00390         MonitorElement * getMEhisto_Pt12Phi12() {return Pt12Phi12_;}
00391 
00392         const std::string getLabel(void ) const {
00393           return filterName_;
00394         }
00395         const std::string getDenomLabel(void ) const {
00396           return DenomfilterName_;
00397         }
00398         
00399         void setLabel(std::string labelName){
00400           filterName_ = labelName;
00401           return;
00402         }
00403         void setDenomLabel(std::string labelName){
00404           DenomfilterName_ = labelName;
00405           return;
00406         }
00407         const std::string getPath(void ) const {
00408           return pathName_;
00409         }
00410         const std::string getl1Path(void ) const {
00411           return l1pathName_;
00412         }
00413         const std::string getDenomPath(void ) const {
00414           return denomPathName_;
00415         }
00416         const int getprescaleUsed(void) const {
00417           return prescaleUsed_;
00418         }
00419         const std::string getProcess(void ) const {
00420           return processName_;
00421         }
00422         const int getObjectType(void ) const {
00423           return objectType_;
00424         }
00425         const std::string getTriggerType(void ) const {
00426           return triggerType_;
00427         }    
00428         
00429 
00430         const edm::InputTag getTag(void) const{
00431           edm::InputTag tagName(filterName_,"",processName_);
00432           return tagName;
00433         }
00434         const edm::InputTag getDenomTag(void) const{
00435           edm::InputTag tagName(DenomfilterName_,"",processName_);
00436           return tagName;
00437         }
00438      bool operator==(const std::string v)
00439    {
00440      return v==pathName_;
00441    } 
00442       private:
00443           int pathIndex_;
00444           int prescaleUsed_;
00445           std::string denomPathName_;
00446           std::string pathName_;
00447           std::string l1pathName_;
00448           std::string filterName_;
00449           std::string DenomfilterName_;
00450           std::string processName_;
00451           int objectType_;
00452           std::string triggerType_;
00453 
00454           MonitorElement*  N_;
00455           MonitorElement*  Pt_;
00456           MonitorElement*  PtBarrel_;
00457           MonitorElement*  PtEndcap_;
00458           MonitorElement*  PtForward_;
00459           MonitorElement*  Eta_;
00460           MonitorElement*  Phi_;
00461           MonitorElement*  EtaPhi_;
00462           MonitorElement*  N_L1_;
00463           MonitorElement*  Pt_L1_;
00464           MonitorElement*  PtBarrel_L1_;
00465           MonitorElement*  PtEndcap_L1_;
00466           MonitorElement*  PtForward_L1_;
00467           MonitorElement*  Eta_L1_;
00468           MonitorElement*  Phi_L1_;
00469           MonitorElement*  EtaPhi_L1_;
00470           MonitorElement*  N_HLT_;
00471           MonitorElement*  Pt_HLT_;
00472           MonitorElement*  PtBarrel_HLT_;
00473           MonitorElement*  PtEndcap_HLT_;
00474           MonitorElement*  PtForward_HLT_;
00475           MonitorElement*  Eta_HLT_;
00476           MonitorElement*  Phi_HLT_;
00477           MonitorElement*  EtaPhi_HLT_;
00478 
00479           MonitorElement*  PtResolution_L1HLT_;
00480           MonitorElement*  EtaResolution_L1HLT_;
00481           MonitorElement*  PhiResolution_L1HLT_;
00482           MonitorElement*  PtResolution_HLTRecObj_;
00483           MonitorElement*  EtaResolution_HLTRecObj_;
00484           MonitorElement*  PhiResolution_HLTRecObj_;
00485           MonitorElement*  PtCorrelation_L1HLT_;
00486           MonitorElement*  EtaCorrelation_L1HLT_;
00487           MonitorElement*  PhiCorrelation_L1HLT_;
00488           MonitorElement*  PtCorrelation_HLTRecObj_;
00489           MonitorElement*  EtaCorrelation_HLTRecObj_;
00490           MonitorElement*  PhiCorrelation_HLTRecObj_;
00491 
00492           MonitorElement*  JetAveragePt_;
00493           MonitorElement*  JetAverageEta_;
00494           MonitorElement*  JetPhiDifference_;
00495           MonitorElement*  HLTAveragePt_;
00496           MonitorElement*  HLTAverageEta_;
00497           MonitorElement*  HLTPhiDifference_;
00498           MonitorElement*  L1AveragePt_;
00499           MonitorElement*  L1AverageEta_;
00500           MonitorElement*  L1PhiDifference_;
00501           
00502           MonitorElement*  NumeratorPt_;
00503           MonitorElement*  NumeratorPtBarrel_;
00504           MonitorElement*  NumeratorPtEndcap_;
00505           MonitorElement*  NumeratorPtForward_;
00506           MonitorElement*  NumeratorEta_;
00507           MonitorElement*  NumeratorPhi_;
00508           MonitorElement*  NumeratorEtaPhi_;
00509           MonitorElement*  DenominatorPt_;
00510           MonitorElement*  DenominatorPtBarrel_;
00511           MonitorElement*  DenominatorPtEndcap_;
00512           MonitorElement*  DenominatorPtForward_;
00513           MonitorElement*  DenominatorEta_;
00514           MonitorElement*  DenominatorPhi_;
00515           MonitorElement*  DenominatorEtaPhi_;
00516 
00517           MonitorElement*  TriggerSummary_;
00518           MonitorElement*  JetSize_;
00519           MonitorElement*  JetPt_;
00520           MonitorElement*  EtavsPt_;
00521           MonitorElement*  PhivsPt_;
00522           MonitorElement*  Pt12_;
00523           MonitorElement*  Eta12_;
00524           MonitorElement*  Phi12_; 
00525           MonitorElement*  Pt3_;
00526           MonitorElement*  Pt12Pt3_;
00527           MonitorElement*  Pt12Phi12_;
00528         };
00529    
00530        // simple collection 
00531    class PathInfoCollection: public std::vector<PathInfo> {
00532    public:
00533      PathInfoCollection(): std::vector<PathInfo>()
00534        {};
00535        std::vector<PathInfo>::iterator find(std::string pathName) {
00536         return std::find(begin(), end(), pathName);
00537        }
00538    };
00539       PathInfoCollection hltPathsAllTriggerSummary_;
00540       PathInfoCollection hltPathsAll_;
00541       PathInfoCollection hltPathsAllWrtMu_;
00542       PathInfoCollection hltPathsEff_;
00543       PathInfoCollection hltPathsEffWrtMu_;
00544       PathInfoCollection hltPathsEffWrtMB_;
00545       
00546       MonitorElement* rate_All;
00547       MonitorElement* rate_AllWrtMu;
00548       MonitorElement* rate_AllWrtMB;
00549 
00550       MonitorElement* correlation_All;
00551       MonitorElement* correlation_AllWrtMu;
00552       MonitorElement* correlation_AllWrtMB;
00553      
00554 
00555         
00556         
00557 };
00558 #endif
00559