CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/DQMOffline/Trigger/interface/TopElectronHLTOfflineClient.h

Go to the documentation of this file.
00001 #ifndef DQMOFFLINE_TRIGGER_TOPELECTRONHLTOFFLINECLIENT
00002 #define DQMOFFLINE_TRIGGER_TOPELECTRONHLTOFFLINECLIENT
00003 
00004 // -*- C++ -*-
00005 //
00006 // Package:             TopElectronHLTOfflineClient
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 "FWCore/Framework/interface/Frameworkfwd.h"
00028 #include "FWCore/Framework/interface/EDAnalyzer.h"
00029 
00030 #include <vector>
00031 #include <string>
00032 
00033 class DQMStore;
00034 class MonitorElement;
00035 
00036         
00037 class TopElectronHLTOfflineClient : public edm::EDAnalyzer {
00038 
00039 private:
00040         DQMStore* dbe_; // non-owned dqm store
00041         std::string dirName_;
00042         
00043         std::string hltTag_;
00044         
00045         std::vector<std::string> superMeNames_;
00046         std::vector<std::string> eleMeNames_;
00047         
00048         std::vector<std::string> electronIdNames_;
00049         std::vector<std::string> superTriggerNames_;
00050         std::vector<std::string> electronTriggerNames_;
00051         
00052         bool addExtraId_;
00053         
00054         bool runClientEndLumiBlock_;
00055         bool runClientEndRun_;
00056         bool runClientEndJob_;
00057 
00058 
00059         //disabling copying/assignment 
00060         TopElectronHLTOfflineClient(const TopElectronHLTOfflineClient& rhs){}
00061         TopElectronHLTOfflineClient& operator=(const TopElectronHLTOfflineClient& rhs){return *this;}
00062 
00063 public:
00064         explicit TopElectronHLTOfflineClient(const edm::ParameterSet& );
00065         virtual ~TopElectronHLTOfflineClient();
00066         
00067         
00068         virtual void beginJob();
00069         virtual void analyze(const edm::Event&, const edm::EventSetup&); //dummy
00070         virtual void endJob();
00071         virtual void beginRun(const edm::Run& run, const edm::EventSetup& c);
00072         virtual void endRun(const edm::Run& run, const edm::EventSetup& c);
00073 
00074         virtual void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg,const edm::EventSetup& context){}
00075         // DQM Client Diagnostic
00076         virtual void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg,const edm::EventSetup& c);
00077 
00078         MonitorElement* makeEffMonElemFromPassAndAll(const std::string& name,const MonitorElement* pass,const MonitorElement* fail);
00079         void createSingleEffHists(const std::string&, const std::string&, const std::string&);
00080 
00081 private:
00082         void runClient_(); //master function which runs the client
00083         
00084 };
00085  
00086 
00087 
00088 #endif