CMS 3D CMS Logo

EgHLTOfflineClient.h

Go to the documentation of this file.
00001 #ifndef DQMOFFLINE_TRIGGER_EGHLTOFFLINECLIENT
00002 #define DQMOFFLINE_TRIGGER_EGHLTOFFLINECLIENT
00003 
00004 // -*- C++ -*-
00005 //
00006 // Package:    EgammaHLTOfflineClient
00007 // Class:      EgammaHLTOffline
00008 // 
00009 /*
00010  Description: This is a DQM client meant to plot high-level HLT trigger 
00011  quantities as stored in the HLT results object TriggerResults for the Egamma triggers
00012 
00013  Notes:
00014   Currently I would like to plot simple histograms of three seperate types of variables
00015   1) global event quantities: eg nr of electrons
00016   2) di-object quanities: transverse mass, di-electron mass
00017   3) single object kinematic and id variables: eg et,eta,isolation
00018 
00019 */
00020 //
00021 // Original Author:  Sam Harper
00022 //         Created:  June 2008
00023 // 
00024 //
00025 //
00026 
00027 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
00028 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
00029 
00030 #include "FWCore/Framework/interface/Frameworkfwd.h"
00031 #include "FWCore/Framework/interface/EDAnalyzer.h"
00032 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00033 #include "FWCore/Framework/interface/Event.h"
00034 
00035 #include "DQMOffline/Trigger/interface/MonElemManager.h"
00036 #include "DQMOffline/Trigger/interface/EgHLTOffHelper.h"
00037 
00038 class DQMStore;
00039 
00040 class EleHLTPathMon;
00041 
00042 namespace trigger{
00043   class TriggerObject;
00044 
00045 }
00046 
00047 class EgHLTOfflineClient : public edm::EDAnalyzer {
00048  
00049  private:
00050   DQMStore* dbe_; //dbe seems to be the standard name for this, I dont know why. We of course dont own it
00051   std::string dirName_;
00052   std::vector<std::string> eleHLTPathNames_;//names of the HLT paths to use
00053   std::vector<std::string> eleHLTFilterNames_;//names of the filter names to use, appended to the pathNames 
00054   std::vector<std::string> eleHLTTightLooseFilters_;//names of the filter names to use, appended to the pathNames
00055   //disabling copying/assignment
00056   EgHLTOfflineClient(const EgHLTOfflineClient& rhs){}
00057   EgHLTOfflineClient& operator=(const EgHLTOfflineClient& rhs){return *this;}
00058 
00059  public:
00060   explicit EgHLTOfflineClient(const edm::ParameterSet& );
00061   virtual ~EgHLTOfflineClient();
00062   
00063   
00064   virtual void beginJob(const edm::EventSetup&);
00065   virtual void analyze(const edm::Event&, const edm::EventSetup&); //dummy
00066   virtual void endJob();
00067   virtual void beginRun(const edm::Run& run, const edm::EventSetup& c);
00068   virtual void endRun(const edm::Run& run, const edm::EventSetup& c);
00069   
00070   
00071   virtual void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg,const edm::EventSetup& context){}
00072   // DQM Client Diagnostic
00073   virtual void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg,const edm::EventSetup& c);
00074 
00075   //at somepoint these all may migrate to a helper class
00076   void createN1EffHists(const std::string& baseName,const std::string& region="");
00077   void createLooseTightTrigEff(const std::string& filterName,const std::string& region="");
00078   void createTrigTagProbeEffHists(const std::string& filterName,const std::string& region="");
00079   MonitorElement* makeEffMonElemFromPassAndAll(const std::string& name,const MonitorElement* pass,const MonitorElement* all);
00080   MonitorElement* makeEffMonElemFromPassAndFail(const std::string& name,const MonitorElement* pass,const MonitorElement* fail);
00081   
00082 };
00083  
00084 
00085 
00086 #endif

Generated on Tue Jun 9 17:34:09 2009 for CMSSW by  doxygen 1.5.4