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 #include "DataFormats/METReco/interface/HcalNoiseSummary.h"
00036
00037 #include "RecoJets/JetProducers/interface/JetIDHelper.h"
00038
00039 class TcMETAnalyzer : public TcMETAnalyzerBase {
00040 public:
00041
00043 TcMETAnalyzer(const edm::ParameterSet&);
00044
00046 virtual ~TcMETAnalyzer();
00047
00049 void beginJob(DQMStore * dbe);
00050
00052 void endJob();
00053
00054
00055 void bookMESet(std::string);
00056 void bookMonitorElement(std::string, bool);
00057
00059 void analyze(const edm::Event&, const edm::EventSetup&,
00060 const edm::TriggerResults&);
00061
00063 void beginRun(const edm::Run&, const edm::EventSetup&);
00064
00066 void endRun(const edm::Run& iRun, const edm::EventSetup& iSetup, DQMStore *dbe);
00067
00068
00069 void fillMESet(const edm::Event&, std::string, const reco::MET&);
00070 void fillMonitorElement(const edm::Event&, std::string, std::string, const reco::MET&, bool);
00071 void makeRatePlot(std::string, double);
00072
00073 bool selectHighPtJetEvent(const edm::Event&);
00074 bool selectLowPtJetEvent(const edm::Event&);
00075 bool selectWElectronEvent(const edm::Event&);
00076 bool selectWMuonEvent(const edm::Event&);
00077
00078 void setSource(std::string source) {
00079 _source = source;
00080 }
00081
00082 int evtCounter;
00083
00084 private:
00085
00086
00087 edm::ParameterSet parameters;
00088
00089 int _verbose;
00090
00091 std::string metname;
00092 std::string _source;
00093
00094 edm::InputTag theTcMETCollectionLabel;
00095 edm::InputTag HcalNoiseRBXCollectionTag;
00096 edm::InputTag HcalNoiseSummaryTag;
00097 edm::InputTag theJetCollectionLabel;
00098 edm::InputTag thePfJetCollectionLabel;
00099 edm::InputTag TcCandidatesTag;
00100
00101
00102 std::vector<std::string > HLTPathsJetMBByName_;
00103
00104 std::string _hlt_HighPtJet;
00105 std::string _hlt_LowPtJet;
00106 std::string _hlt_HighMET;
00107 std::string _hlt_LowMET;
00108 std::string _hlt_Ele;
00109 std::string _hlt_Muon;
00110
00111 int _trig_JetMB;
00112 int _trig_HighPtJet;
00113 int _trig_LowPtJet;
00114 int _trig_HighMET;
00115 int _trig_LowMET;
00116 int _trig_Ele;
00117 int _trig_Muon;
00118
00119
00120 double _highPtTcJetThreshold;
00121 double _lowPtTcJetThreshold;
00122 double _highTcMETThreshold;
00123 double _lowTcMETThreshold;
00124
00125
00126 double _etThreshold;
00127
00128
00129 double hfCalibFactor_;
00130
00131
00132 reco::helper::JetIDHelper *jetID;
00133
00134
00135 bool _allhist;
00136 bool _allSelection;
00137
00138
00139 std::vector<std::string> _FolderNames;
00140
00141
00142 DQMStore *_dbe;
00143
00144
00145 MonitorElement* metME;
00146
00147 MonitorElement* meTriggerName_HighPtJet;
00148 MonitorElement* meTriggerName_LowPtJet;
00149 MonitorElement* meTriggerName_HighMET;
00150 MonitorElement* meTriggerName_LowMET;
00151 MonitorElement* meTriggerName_Ele;
00152 MonitorElement* meTriggerName_Muon;
00153
00154 MonitorElement* meTcNeutralEMFraction;
00155 MonitorElement* meTcNeutralHadFraction;
00156 MonitorElement* meTcChargedEMFraction;
00157 MonitorElement* meTcChargedHadFraction;
00158 MonitorElement* meTcMuonFraction;
00159
00160 MonitorElement* meNevents;
00161 MonitorElement* meTcMEx;
00162 MonitorElement* meTcMEy;
00163 MonitorElement* meTcEz;
00164 MonitorElement* meTcMETSig;
00165 MonitorElement* meTcMET;
00166 MonitorElement* meTcMETPhi;
00167 MonitorElement* meTcSumET;
00168 MonitorElement* meTcMExLS;
00169 MonitorElement* meTcMEyLS;
00170
00171 MonitorElement* meTcMETIonFeedbck;
00172 MonitorElement* meTcMETHPDNoise;
00173 MonitorElement* meTcMETRBXNoise;
00174
00175 MonitorElement* meTcMETRate;
00176
00177
00178 };
00179 #endif