CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/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 
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   // Book MonitorElements
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   // Fill MonitorElements
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   // ----------member data ---------------------------
00085   
00086   edm::ParameterSet parameters;
00087   // Switch for verbosity
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   // list of Jet or MB HLT triggers
00101   std::vector<std::string > HLTPathsJetMBByName_;
00102 
00103   std::string _hlt_HighPtJet;
00104   std::string _hlt_LowPtJet;
00105   std::string _hlt_HighMET;
00106   //  std::string _hlt_LowMET;
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   //  int _trig_LowMET;
00115   int _trig_Ele;
00116   int _trig_Muon;
00117 
00118 
00119   double _highPtTcJetThreshold;
00120   double _lowPtTcJetThreshold;
00121   double _highTcMETThreshold;
00122   double _lowTcMETThreshold;
00123 
00124   // Et threshold for MET plots
00125   double _etThreshold;
00126 
00127   // HF calibration factor (in 31X applied by TcProducer)
00128   double hfCalibFactor_;  //
00129 
00130   // JetID helper
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   //the histos
00144   MonitorElement* metME;
00145 
00146   MonitorElement* meTriggerName_HighPtJet;
00147   MonitorElement* meTriggerName_LowPtJet;
00148   MonitorElement* meTriggerName_HighMET;
00149   //  MonitorElement* meTriggerName_LowMET;
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