CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/DQMOffline/JetMET/interface/TcMETAnalyzer.h

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   // Book MonitorElements
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   // Fill MonitorElements
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   // ----------member data ---------------------------
00086   
00087   edm::ParameterSet parameters;
00088   // Switch for verbosity
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   // list of Jet or MB HLT triggers
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   // Et threshold for MET plots
00126   double _etThreshold;
00127 
00128   // HF calibration factor (in 31X applied by TcProducer)
00129   double hfCalibFactor_;  //
00130 
00131   // JetID helper
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   //the histos
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