CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch1/src/HLTriggerOffline/JetMET/interface/HLTJetMETValidation.h

Go to the documentation of this file.
00001 /* HLTJetMET Path Validation Analyzer
00002 Jochen Cammin
00003 University of Rochester
00004 cammin@fnal.gov
00005 
00006 Extensions from Len Apanasevich.
00007 */
00008 
00009 
00010 #ifndef HLTJetMETValidation_h
00011 #define HLTJetMETValidation_h
00012 
00013 
00014 #include "FWCore/Framework/interface/Event.h"
00015 #include "FWCore/Framework/interface/EDAnalyzer.h"
00016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00017 #include "DataFormats/Math/interface/LorentzVector.h"
00018 #include "FWCore/ServiceRegistry/interface/Service.h"
00019 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00020 
00021 
00022 #include "DataFormats/Common/interface/TriggerResults.h"
00023 #include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h"
00024 #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h"
00025 
00026 #include "DataFormats/L1Trigger/interface/L1JetParticle.h"
00027 #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h"
00028 #include "DataFormats/L1Trigger/interface/L1EmParticle.h"
00029 #include "DataFormats/L1Trigger/interface/L1EmParticleFwd.h"
00030 #include "DataFormats/L1Trigger/interface/L1MuonParticle.h"
00031 #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h"
00032 
00033 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
00034 #include "DataFormats/JetReco/interface/CaloJet.h"
00035 #include "DataFormats/JetReco/interface/GenJet.h"
00036 #include "DataFormats/JetReco/interface/PFJetCollection.h"
00037 #include "DataFormats/JetReco/interface/PFJet.h"
00038 
00039 #include "DataFormats/METReco/interface/CaloMET.h"
00040 #include "DataFormats/METReco/interface/CaloMETCollection.h"
00041 
00042 #include "DataFormats/METReco/interface/GenMET.h"
00043 #include "DataFormats/METReco/interface/GenMETCollection.h"
00044 
00045 #include "DataFormats/EgammaCandidates/interface/Electron.h"
00046 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
00047 //Include DQM core
00048 #include "DQMServices/Core/interface/DQMStore.h"
00049 #include "DQMServices/Core/interface/MonitorElement.h"
00050 
00051 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
00052 
00053 #include <vector>
00054 #include <string>
00055 #include "TPRegexp.h"
00056 
00057 
00058 namespace edm {
00059   class TriggerNames;
00060 }
00061 
00062 class HLTJetMETValidation : public edm::EDAnalyzer {
00063   
00064  public:
00065   explicit HLTJetMETValidation(const edm::ParameterSet&);
00066   ~HLTJetMETValidation();
00067   
00068  private:
00069   virtual void analyze(const edm::Event&, const edm::EventSetup&);
00070   virtual void endJob() ;
00071   virtual void beginRun(const edm::Run&, const edm::EventSetup&);
00072   void getHLTResults(const edm::TriggerResults&,
00073                      const edm::TriggerNames & triggerNames);
00074 
00076   edm::InputTag triggerEventObject_;
00077   edm::InputTag CaloJetAlgorithm, GenJetAlgorithm, CaloMETColl, GenMETColl, HLTriggerResults;
00078 
00079   //Just a tag for better file organization
00080   std::string triggerTag_, MyTrigger, patternJetTrg_, patternMetTrg_, patternMuTrg_;
00081 
00082   //edm::InputTag _HLTPath;
00083   //edm::InputTag _HLTLow;
00084 
00085   std::string outFile_;
00086 
00087   DQMStore* store;
00088 
00089   std::vector<MonitorElement*> _meRecoJetPt;
00090   std::vector<MonitorElement*> _meRecoJetPtTrgMC;
00091   std::vector<MonitorElement*> _meRecoJetPtTrg;
00092   std::vector<MonitorElement*> _meRecoJetPtTrgLow;
00093   std::vector<MonitorElement*> _meRecoJetEta;
00094   std::vector<MonitorElement*> _meRecoJetEtaTrgMC;
00095   std::vector<MonitorElement*> _meRecoJetEtaTrg;
00096   std::vector<MonitorElement*> _meRecoJetEtaTrgLow;
00097   std::vector<MonitorElement*> _meRecoJetPhi;
00098   std::vector<MonitorElement*> _meRecoJetPhiTrgMC;
00099   std::vector<MonitorElement*> _meRecoJetPhiTrg;
00100   std::vector<MonitorElement*> _meRecoJetPhiTrgLow;
00101 
00102   std::vector<MonitorElement*> _meGenJetPt;
00103   std::vector<MonitorElement*> _meGenJetPtTrgMC;
00104   std::vector<MonitorElement*> _meGenJetPtTrg;
00105   std::vector<MonitorElement*> _meGenJetPtTrgLow;
00106   std::vector<MonitorElement*> _meGenJetEta;
00107   std::vector<MonitorElement*> _meGenJetEtaTrgMC;
00108   std::vector<MonitorElement*> _meGenJetEtaTrg;
00109   std::vector<MonitorElement*> _meGenJetEtaTrgLow;
00110   std::vector<MonitorElement*> _meGenJetPhi;
00111   std::vector<MonitorElement*> _meGenJetPhiTrgMC;
00112   std::vector<MonitorElement*> _meGenJetPhiTrg;
00113   std::vector<MonitorElement*> _meGenJetPhiTrgLow;
00114 
00115   std::vector<MonitorElement*> _meRecoMET;
00116   std::vector<MonitorElement*> _meRecoMETTrgMC;
00117   std::vector<MonitorElement*> _meRecoMETTrg;
00118   std::vector<MonitorElement*> _meRecoMETTrgLow;  
00119   std::vector<MonitorElement*> _meGenMET;
00120   std::vector<MonitorElement*> _meGenMETTrgMC;
00121   std::vector<MonitorElement*> _meGenMETTrg;
00122   std::vector<MonitorElement*> _meGenMETTrgLow;  
00123 
00124   //MonitorElement *_meGenHT, *_meGenHTTrg, *_meGenHTTrgLow;
00125   //MonitorElement *_meRecoHT, *_meRecoHTTrg, *_meRecoHTTrgLow;
00126   MonitorElement *_triggerResults;
00127 
00128 //Define Numbers 
00129 
00130   int evtCnt;
00131 
00132   HLTConfigProvider hltConfig_;
00133   std::vector<std::string> hltTrgJet;
00134   std::vector<std::string> hltTrgJetLow;
00135   std::vector<std::string> hltTrgMet;
00136   std::vector<std::string> hltTrgMetLow;
00137 
00138 // store hlt information in a map
00139   std::vector<bool> hlttrigs;
00140   std::map <std::string,bool> hltTriggerMap;
00141   std::map<std::string,bool>::iterator trig_iter;
00142 
00143   bool HLTinit_;
00144 
00145   //JL
00146   bool writeFile_;
00147 };
00148 #endif