Go to the documentation of this file.00001
00002
00003
00004
00005
00006
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
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
00080 std::string triggerTag_, MyTrigger, patternJetTrg_, patternMetTrg_, patternMuTrg_;
00081
00082
00083
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
00125
00126 MonitorElement *_triggerResults;
00127
00128
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
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
00146 bool writeFile_;
00147 };
00148 #endif