00001 #ifndef HLTMON_H 00002 #define HLTMON_H 00003 // -*- C++ -*- 00004 // 00005 // Package: HLTMon 00006 // Class: HLTMon 00007 // 00018 // 00019 // Original Author: Lorenzo AGOSTINO 00020 // Created: Wed Jan 16 15:55:28 CET 2008 00021 // $Id: HLTMon.h,v 1.3 2009/10/15 11:31:28 fwyzard Exp $ 00022 // 00023 // 00024 00025 00026 // system include files 00027 #include <memory> 00028 #include <unistd.h> 00029 00030 00031 // user include files 00032 #include "FWCore/Framework/interface/Frameworkfwd.h" 00033 #include "FWCore/Framework/interface/EDAnalyzer.h" 00034 00035 #include "FWCore/Framework/interface/Event.h" 00036 #include "FWCore/Framework/interface/MakerMacros.h" 00037 #include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h" 00038 00039 #include "DQMServices/Core/interface/DQMStore.h" 00040 #include "DQMServices/Core/interface/MonitorElement.h" 00041 #include "FWCore/ServiceRegistry/interface/Service.h" 00042 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00043 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00044 #include <iostream> 00045 #include <fstream> 00046 #include <vector> 00047 00048 // 00049 // class decleration 00050 // 00051 00052 class HLTMon : public edm::EDAnalyzer { 00053 public: 00054 explicit HLTMon(const edm::ParameterSet&); 00055 ~HLTMon(); 00056 00057 00058 private: 00059 virtual void beginJob() ; 00060 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00061 virtual void endJob() ; 00062 template <class T> void fillHistos(edm::Handle<trigger::TriggerEventWithRefs>& , const edm::Event& ,unsigned int); 00063 00064 // ----------member data --------------------------- 00065 int nev_; 00066 DQMStore * dbe; 00067 std::vector<MonitorElement *> etahist; 00068 std::vector<MonitorElement *> ethist; 00069 std::vector<MonitorElement *> phihist; 00070 std::vector<MonitorElement *> eta_phihist; 00071 std::vector<MonitorElement *> etahistiso; 00072 std::vector<MonitorElement *> ethistiso; 00073 std::vector<MonitorElement *> phihistiso; 00074 MonitorElement* total; 00075 std::vector<edm::InputTag> theHLTCollectionLabels; 00076 std::vector<int> theHLTOutputTypes; 00077 std::vector<bool> plotiso; 00078 std::vector<std::vector<edm::InputTag> > isoNames; // there has to be a better solution 00079 std::vector<std::pair<double,double> > plotBounds; 00080 unsigned int reqNum; 00081 00082 double thePtMin ; 00083 double thePtMax ; 00084 double thePtMinTemp; 00085 double thePtMaxTemp; 00086 unsigned int theNbins ; 00087 00088 std::string dirname_; 00089 bool monitorDaemon_; 00090 ofstream logFile_; 00091 int theHLTOutputType; 00092 std::string outputFile_; 00093 00094 std::string histoTitle; 00095 00096 }; 00097 #endif