00001 /*Offline DQM For Tau HLT 00002 Author : Michail Bachtis 00003 University of Wisconsin-Madison 00004 bachtis@hep.wisc.edu 00005 */ 00006 00007 #include <FWCore/Framework/interface/EDAnalyzer.h> 00008 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00009 #include "DQMServices/Core/interface/MonitorElement.h" 00010 #include "DQMServices/Core/interface/DQMStore.h" 00011 #include "DataFormats/Common/interface/Handle.h" 00012 #include "FWCore/Framework/interface/Event.h" 00013 #include "FWCore/Framework/interface/EventSetup.h" 00014 #include "FWCore/Framework/interface/ESHandle.h" 00015 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00016 #include "FWCore/ServiceRegistry/interface/Service.h" 00017 #include "DataFormats/Math/interface/LorentzVector.h" 00018 #include "FWCore/Utilities/interface/Digest.h" 00019 00020 //Plotters 00021 #include "DQMOffline/Trigger/interface/HLTTauDQML1Plotter.h" 00022 #include "DQMOffline/Trigger/interface/HLTTauDQMCaloPlotter.h" 00023 #include "DQMOffline/Trigger/interface/HLTTauDQMTrkPlotter.h" 00024 #include "DQMOffline/Trigger/interface/HLTTauDQMPathPlotter.h" 00025 #include "DQMOffline/Trigger/interface/HLTTauDQMLitePathPlotter.h" 00026 00027 //Automatic Configuration 00028 #include "DQMOffline/Trigger/interface/HLTTauDQMAutomation.h" 00029 00030 // 00031 // class declaration 00032 // 00033 00034 class HLTTauDQMOfflineSource : public edm::EDAnalyzer { 00035 public: 00036 HLTTauDQMOfflineSource( const edm::ParameterSet& ); 00037 ~HLTTauDQMOfflineSource(); 00038 00039 protected: 00041 void beginJob(); 00042 00044 void beginRun(const edm::Run& r, const edm::EventSetup& c); 00045 00047 void analyze(const edm::Event& e, const edm::EventSetup& c) ; 00048 00050 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& context); 00051 00053 void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& c); 00054 00056 void endRun(const edm::Run& r, const edm::EventSetup& c); 00057 00059 void endJob(); 00060 00061 private: 00062 std::vector<edm::ParameterSet> config_; 00063 edm::ParameterSet matching_; 00064 std::string moduleName_; 00065 std::string hltProcessName_; 00066 bool hltMenuChanged_; 00067 edm::ParameterSet ps_; 00068 std::string dqmBaseFolder_; 00069 bool verbose_; 00070 00071 HLTConfigProvider HLTCP_; 00072 HLTTauDQMAutomation automation_; 00073 00074 //Reference 00075 bool doRefAnalysis_; 00076 std::vector<edm::ParameterSet> refObjects_; 00077 00078 int NPtBins_; 00079 int NEtaBins_; 00080 int NPhiBins_; 00081 double EtMax_; 00082 double L1MatchDr_; 00083 double HLTMatchDr_; 00084 00085 //DQM Prescaler 00086 int counterEvt_; //counter 00087 int prescaleEvt_; //every n events 00088 00089 //Helper function to retrieve data from the parameter set 00090 void processPSet( const edm::ParameterSet& pset ); 00091 00092 //Count parameters 00093 unsigned int countParameters( const edm::ParameterSet& pset ); 00094 00095 //search event content 00096 void searchEventContent(std::vector<edm::InputTag>& eventContent, const edm::ParameterSet& pset); 00097 00098 //Define Dummy vectors of Plotters 00099 std::vector<HLTTauDQML1Plotter*> l1Plotters; 00100 std::vector<HLTTauDQMCaloPlotter*> caloPlotters; 00101 std::vector<HLTTauDQMTrkPlotter*> trackPlotters; 00102 std::vector<HLTTauDQMPathPlotter*> pathPlotters; 00103 std::vector<HLTTauDQMLitePathPlotter*> litePathPlotters; 00104 };