Go to the documentation of this file.00001 #ifndef TcMETAnalyzer_H
00002 #define TcMETAnalyzer_H
00003
00004
00015 #include <memory>
00016 #include <fstream>
00017 #include "TMath.h"
00018 #include "FWCore/Framework/interface/Frameworkfwd.h"
00019 #include "DQMOffline/JetMET/interface/TcMETAnalyzerBase.h"
00020 #include "FWCore/Framework/interface/Event.h"
00021 #include "FWCore/Framework/interface/MakerMacros.h"
00022 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00023 #include "FWCore/ServiceRegistry/interface/Service.h"
00024 #include "DQMServices/Core/interface/DQMStore.h"
00025 #include "DQMServices/Core/interface/MonitorElement.h"
00026
00027 #include "DataFormats/HLTReco/interface/TriggerObject.h"
00028 #include "DataFormats/Common/interface/TriggerResults.h"
00029 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
00030 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
00031
00032 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
00033
00034 #include "RecoMET/METAlgorithms/interface/HcalNoiseRBXArray.h"
00035
00036 #include "RecoJets/JetProducers/interface/JetIDHelper.h"
00037
00038 class TcMETAnalyzer : public TcMETAnalyzerBase {
00039 public:
00040
00042 TcMETAnalyzer(const edm::ParameterSet&);
00043
00045 virtual ~TcMETAnalyzer();
00046
00048 void beginJob(DQMStore * dbe);
00049
00051 void endJob();
00052
00053
00054 void bookMESet(std::string);
00055 void bookMonitorElement(std::string, bool);
00056
00058 void analyze(const edm::Event&, const edm::EventSetup&,
00059 const edm::TriggerResults&);
00060
00062 void beginRun(const edm::Run&, const edm::EventSetup&);
00063
00065 void endRun(const edm::Run& iRun, const edm::EventSetup& iSetup, DQMStore *dbe);
00066
00067
00068 void fillMESet(const edm::Event&, std::string, const reco::MET&);
00069 void fillMonitorElement(const edm::Event&, std::string, std::string, const reco::MET&, bool);
00070 void makeRatePlot(std::string, double);
00071
00072 bool selectHighPtJetEvent(const edm::Event&);
00073 bool selectLowPtJetEvent(const edm::Event&);
00074 bool selectWElectronEvent(const edm::Event&);
00075 bool selectWMuonEvent(const edm::Event&);
00076
00077 void setSource(std::string source) {
00078 _source = source;
00079 }
00080
00081 int evtCounter;
00082
00083 private:
00084
00085
00086 edm::ParameterSet parameters;
00087
00088 int _verbose;
00089
00090 std::string metname;
00091 std::string _source;
00092
00093 edm::InputTag theTcMETCollectionLabel;
00094 edm::InputTag HcalNoiseRBXCollectionTag;
00095 edm::InputTag HBHENoiseFilterResultTag;
00096 edm::InputTag theJetCollectionLabel;
00097 edm::InputTag thePfJetCollectionLabel;
00098 edm::InputTag TcCandidatesTag;
00099
00100
00101 std::vector<std::string > HLTPathsJetMBByName_;
00102
00103 std::string _hlt_HighPtJet;
00104 std::string _hlt_LowPtJet;
00105 std::string _hlt_HighMET;
00106
00107 std::string _hlt_Ele;
00108 std::string _hlt_Muon;
00109
00110 int _trig_JetMB;
00111 int _trig_HighPtJet;
00112 int _trig_LowPtJet;
00113 int _trig_HighMET;
00114
00115 int _trig_Ele;
00116 int _trig_Muon;
00117
00118
00119 double _highPtTcJetThreshold;
00120 double _lowPtTcJetThreshold;
00121 double _highTcMETThreshold;
00122 double _lowTcMETThreshold;
00123
00124
00125 double _etThreshold;
00126
00127
00128 double hfCalibFactor_;
00129
00130
00131 reco::helper::JetIDHelper *jetID;
00132
00133
00134 bool _allhist;
00135 bool _allSelection;
00136
00137
00138 std::vector<std::string> _FolderNames;
00139
00140
00141 DQMStore *_dbe;
00142
00143
00144 MonitorElement* metME;
00145
00146 MonitorElement* meTriggerName_HighPtJet;
00147 MonitorElement* meTriggerName_LowPtJet;
00148 MonitorElement* meTriggerName_HighMET;
00149
00150 MonitorElement* meTriggerName_Ele;
00151 MonitorElement* meTriggerName_Muon;
00152
00153 MonitorElement* meTcNeutralEMFraction;
00154 MonitorElement* meTcNeutralHadFraction;
00155 MonitorElement* meTcChargedEMFraction;
00156 MonitorElement* meTcChargedHadFraction;
00157 MonitorElement* meTcMuonFraction;
00158
00159 MonitorElement* meTcMEx;
00160 MonitorElement* meTcMEy;
00161 MonitorElement* meTcEz;
00162 MonitorElement* meTcMETSig;
00163 MonitorElement* meTcMET;
00164 MonitorElement* meTcMETPhi;
00165 MonitorElement* meTcSumET;
00166 MonitorElement* meTcMExLS;
00167 MonitorElement* meTcMEyLS;
00168
00169 MonitorElement* meTcMETIonFeedbck;
00170 MonitorElement* meTcMETHPDNoise;
00171 MonitorElement* meTcMETRBXNoise;
00172
00173 MonitorElement* meTcMETRate;
00174 };
00175 #endif