File indexing completed on 2023-03-17 11:10:04
0001
0002
0003
0004
0005 #ifndef HLTJetMETValidation_h
0006 #define HLTJetMETValidation_h
0007
0008 #include "DataFormats/Math/interface/LorentzVector.h"
0009 #include "FWCore/Framework/interface/Event.h"
0010 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012 #include "FWCore/ServiceRegistry/interface/Service.h"
0013
0014 #include "DataFormats/Common/interface/TriggerResults.h"
0015 #include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h"
0016 #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h"
0017
0018 #include "DataFormats/L1Trigger/interface/L1EmParticle.h"
0019 #include "DataFormats/L1Trigger/interface/L1EmParticleFwd.h"
0020 #include "DataFormats/L1Trigger/interface/L1JetParticle.h"
0021 #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h"
0022 #include "DataFormats/L1Trigger/interface/L1MuonParticle.h"
0023 #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h"
0024
0025 #include "DataFormats/JetReco/interface/CaloJet.h"
0026 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
0027 #include "DataFormats/JetReco/interface/GenJet.h"
0028 #include "DataFormats/JetReco/interface/PFJet.h"
0029 #include "DataFormats/JetReco/interface/PFJetCollection.h"
0030
0031 #include "DataFormats/METReco/interface/CaloMET.h"
0032 #include "DataFormats/METReco/interface/CaloMETCollection.h"
0033
0034 #include "DataFormats/METReco/interface/GenMET.h"
0035 #include "DataFormats/METReco/interface/GenMETCollection.h"
0036
0037 #include "DataFormats/EgammaCandidates/interface/Electron.h"
0038 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
0039
0040 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0041 #include "DQMServices/Core/interface/DQMStore.h"
0042
0043 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
0044
0045 #include "TPRegexp.h"
0046 #include <string>
0047 #include <vector>
0048
0049 namespace edm {
0050 class TriggerNames;
0051 }
0052
0053 class HLTJetMETValidation : public DQMEDAnalyzer {
0054 public:
0055 explicit HLTJetMETValidation(const edm::ParameterSet &);
0056 ~HLTJetMETValidation() override;
0057
0058 private:
0059 void analyze(const edm::Event &, const edm::EventSetup &) override;
0060 void bookHistograms(DQMStore::IBooker &, edm::Run const &iRun, edm::EventSetup const &iSetup) override;
0061 void dqmBeginRun(edm::Run const &iRun, edm::EventSetup const &iSetup) override;
0062
0063 void getHLTResults(const edm::TriggerResults &, const edm::TriggerNames &triggerNames);
0064
0065
0066 edm::EDGetTokenT<trigger::TriggerEventWithRefs> triggerEventObject_;
0067 edm::EDGetTokenT<reco::PFJetCollection> PFJetAlgorithm;
0068 edm::EDGetTokenT<reco::GenJetCollection> GenJetAlgorithm;
0069 edm::EDGetTokenT<reco::CaloMETCollection> CaloMETColl;
0070 edm::EDGetTokenT<reco::GenMETCollection> GenMETColl;
0071 edm::EDGetTokenT<edm::TriggerResults> HLTriggerResults;
0072
0073
0074 std::string triggerTag_, patternJetTrg_, patternMetTrg_, patternMuTrg_;
0075
0076 std::vector<MonitorElement *> _meHLTJetPt;
0077 std::vector<MonitorElement *> _meHLTJetPtTrgMC;
0078 std::vector<MonitorElement *> _meHLTJetPtTrg;
0079 std::vector<MonitorElement *> _meHLTJetPtTrgLow;
0080 std::vector<MonitorElement *> _meHLTJetEta;
0081 std::vector<MonitorElement *> _meHLTJetEtaTrgMC;
0082 std::vector<MonitorElement *> _meHLTJetEtaTrg;
0083 std::vector<MonitorElement *> _meHLTJetEtaTrgLow;
0084 std::vector<MonitorElement *> _meHLTJetPhi;
0085 std::vector<MonitorElement *> _meHLTJetPhiTrgMC;
0086 std::vector<MonitorElement *> _meHLTJetPhiTrg;
0087 std::vector<MonitorElement *> _meHLTJetPhiTrgLow;
0088
0089 std::vector<MonitorElement *> _meGenJetPt;
0090 std::vector<MonitorElement *> _meGenJetPtTrgMC;
0091 std::vector<MonitorElement *> _meGenJetPtTrg;
0092 std::vector<MonitorElement *> _meGenJetPtTrgLow;
0093 std::vector<MonitorElement *> _meGenJetEta;
0094 std::vector<MonitorElement *> _meGenJetEtaTrgMC;
0095 std::vector<MonitorElement *> _meGenJetEtaTrg;
0096 std::vector<MonitorElement *> _meGenJetEtaTrgLow;
0097 std::vector<MonitorElement *> _meGenJetPhi;
0098 std::vector<MonitorElement *> _meGenJetPhiTrgMC;
0099 std::vector<MonitorElement *> _meGenJetPhiTrg;
0100 std::vector<MonitorElement *> _meGenJetPhiTrgLow;
0101
0102 std::vector<MonitorElement *> _meHLTMET;
0103 std::vector<MonitorElement *> _meHLTMETTrgMC;
0104 std::vector<MonitorElement *> _meHLTMETTrg;
0105 std::vector<MonitorElement *> _meHLTMETTrgLow;
0106 std::vector<MonitorElement *> _meGenMET;
0107 std::vector<MonitorElement *> _meGenMETTrgMC;
0108 std::vector<MonitorElement *> _meGenMETTrg;
0109 std::vector<MonitorElement *> _meGenMETTrgLow;
0110
0111 MonitorElement *_triggerResults;
0112
0113
0114 int evtCnt;
0115
0116 HLTConfigProvider hltConfig_;
0117 std::vector<std::string> hltTrgJet;
0118 std::vector<std::string> hltTrgJetLow;
0119 std::vector<std::string> hltTrgMet;
0120 std::vector<std::string> hltTrgMetLow;
0121
0122
0123 std::vector<bool> hlttrigs;
0124 std::map<std::string, bool> hltTriggerMap;
0125 std::map<std::string, bool>::iterator trig_iter;
0126
0127 bool HLTinit_;
0128
0129 bool writeFile_;
0130 };
0131 #endif