CMS 3D CMS Logo

HLTJetMETDQMSource.h

Go to the documentation of this file.
00001 #ifndef HLTJetMETDQMSource_H
00002 #define HLTJetMETDQMSource_H
00003 // -*- C++ -*-
00004 //
00005 // Package:    HLTJetMETDQMSource
00006 // Class:      HLTJetMETDQMSource
00007 // 
00018 //
00019 // Original Author:  Peter Wittich
00020 //         Created:  May 2008
00021 // Adapted for JetMET: Jochen Cammin 28 May 2008
00022 // $Id: HLTJetMETDQMSource.h,v 1.1 2008/05/29 15:43:47 cammin Exp $
00023 //
00024 //
00025 
00026 
00027 // system include files
00028 #include <memory>
00029 #include <unistd.h>
00030 
00031 
00032 // user include files
00033 #include "FWCore/Framework/interface/Frameworkfwd.h"
00034 #include "FWCore/Framework/interface/EDAnalyzer.h"
00035 
00036 #include "FWCore/Framework/interface/Event.h"
00037 #include "FWCore/Framework/interface/MakerMacros.h"
00038 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
00039 
00040 #include "DQMServices/Core/interface/DQMStore.h"
00041 #include "DQMServices/Core/interface/MonitorElement.h"
00042 #include "FWCore/ServiceRegistry/interface/Service.h"
00043 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00044 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00045 #include <iostream>
00046 #include <fstream>
00047 #include <vector>
00048 
00049 //
00050 // class decleration
00051 //
00052 
00053 class HLTJetMETDQMSource : public edm::EDAnalyzer {
00054    public:
00055       explicit HLTJetMETDQMSource(const edm::ParameterSet&);
00056       ~HLTJetMETDQMSource();
00057 
00058 
00059    private:
00060       virtual void beginJob(const edm::EventSetup&) ;
00061       virtual void analyze(const edm::Event&, const edm::EventSetup&);
00062       virtual void endJob() ;
00063 
00064       // BeginRun
00065       void beginRun(const edm::Run& run, const edm::EventSetup& c);
00066 
00067       // EndRun
00068       void endRun(const edm::Run& run, const edm::EventSetup& c);
00069 
00070 
00071       // ----------member data --------------------------- 
00072       bool isFirst;
00073 
00074       int nev_;
00075       DQMStore * dbe_;
00076 
00077       MonitorElement* total_;
00078 
00079       bool plotAll_;
00080       bool resetMe_;
00081       int currentRun_;
00082  
00083       unsigned int nBins_; 
00084       double ptMin_ ;
00085       double ptMax_ ;
00086       
00087       std::string dirname_;
00088       bool monitorDaemon_;
00089       int theHLTOutputType;
00090       edm::InputTag triggerSummaryLabel_;
00091       edm::InputTag triggerResultLabel_;
00092 
00093       // helper class to store the data
00094       class PathInfo {
00095         PathInfo():
00096           pathIndex_(-1), pathName_("unset"), objectType_(-1)
00097           {};
00098       public:
00099         void setHistos(MonitorElement* const et, MonitorElement* const eta, 
00100                        MonitorElement* const phi, 
00101                        MonitorElement* const etavsphi, 
00102                        MonitorElement* const etavset,
00103                        MonitorElement* const phivset
00104                        ) {
00105           et_ = et;
00106           eta_ = eta;
00107           phi_ = phi;
00108           etavsphi_ = etavsphi;
00109           etavset_  = etavset;
00110           phivset_  = phivset;
00111         }
00112         MonitorElement * getEtHisto() {
00113           return et_;
00114         }
00115         MonitorElement * getEtaHisto() {
00116           return eta_;
00117         }
00118         MonitorElement * getPhiHisto() {
00119           return phi_;
00120         }
00121         MonitorElement * getEtaVsPhiHisto() {
00122           return etavsphi_;
00123         }
00124         MonitorElement * getEtaVsEtHisto() {
00125           return etavset_;
00126         }
00127         MonitorElement * getPhiVsEtHisto() {
00128           return phivset_;
00129         }
00130         const std::string getName(void ) const {
00131           return pathName_;
00132         }
00133         ~PathInfo() {};
00134         PathInfo(std::string pathName, size_t type, float ptmin, 
00135                  float ptmax):
00136           pathName_(pathName), objectType_(type),
00137           et_(0), eta_(0), phi_(0), etavsphi_(0), etavset_(0), phivset_(0),
00138           ptmin_(ptmin), ptmax_(ptmax)
00139           {
00140           };
00141           PathInfo(std::string pathName, size_t type,
00142                    MonitorElement *et,
00143                    MonitorElement *eta,
00144                    MonitorElement *phi,
00145                    MonitorElement *etavsphi,
00146                    MonitorElement *etavset,
00147                    MonitorElement *phivset,
00148                    float ptmin, float ptmax
00149                    ):
00150             pathName_(pathName), objectType_(type),
00151             et_(et), eta_(eta), phi_(phi), etavsphi_(etavsphi),
00152             etavset_(etavset), phivset_(phivset), 
00153             ptmin_(ptmin), ptmax_(ptmax)
00154             {};
00155             bool operator==(const std::string v) 
00156             {
00157               return v==pathName_;
00158             }
00159       private:
00160           int pathIndex_;
00161           std::string pathName_;
00162           int objectType_;
00163 
00164           // we don't own this data
00165           MonitorElement *et_, *eta_, *phi_, *etavsphi_, *etavset_, *phivset_;
00166 
00167           float ptmin_, ptmax_;
00168 
00169           const int index() { 
00170             return pathIndex_;
00171           }
00172           const int type() { 
00173             return objectType_;
00174           }
00175 
00176       public:
00177           float getPtMin() const { return ptmin_; }
00178           float getPtMax() const { return ptmax_; }
00179       };
00180 
00181       // simple collection - just 
00182       class PathInfoCollection: public std::vector<PathInfo> {
00183       public:
00184         PathInfoCollection(): std::vector<PathInfo>() 
00185           {};
00186           std::vector<PathInfo>::iterator find(std::string pathName) {
00187             return std::find(begin(), end(), pathName);
00188           }
00189       };
00190       PathInfoCollection hltPaths_;
00191 
00192 
00193 };
00194 #endif

Generated on Tue Jun 9 17:33:04 2009 for CMSSW by  doxygen 1.5.4