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