CMS 3D CMS Logo

EgammaHLTOffline.h

Go to the documentation of this file.
00001 #ifndef DQMOFFLINE_TRIGGER_EGAMMAHLTOFFLINE
00002 #define DQMOFFLINE_TRIGGER_EGAMMAHLTOFFLINE
00003 
00004 // -*- C++ -*-
00005 //
00006 // Package:    EgammaHLTOffline
00007 // Class:      EgammaHLTOffline
00008 // 
00009 /*
00010  Description: This is a DQM source 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/MonElemContainer.h"
00036 #include "DQMOffline/Trigger/interface/MonElemManager.h"
00037 #include "DQMOffline/Trigger/interface/EgHLTOffHelper.h"
00038 #include "DQMOffline/Trigger/interface/TrigCodes.h"
00039 
00040 class DQMStore;
00041 
00042 class EleHLTPathMon;
00043 
00044 namespace trigger{
00045   class TriggerObject;
00046 
00047 }
00048 
00049 class EgammaHLTOffline : public edm::EDAnalyzer {
00050  
00051  private:
00052   DQMStore* dbe_; //dbe seems to be the standard name for this, I dont know why. We of course dont own it
00053   
00054   std::vector<EleHLTPathMon*> elePathMonHists_; //monitoring histograms for different trigger paths, we own them
00055   edm::InputTag triggerSummaryLabel_;
00056   std::string dirName_;
00057   
00058   EgHLTOffHelper egHelper_;// this is where up wrap up nasty code which will be replaced by offical tools at some point
00059   std::vector<std::string> namesFiltersUsed_; //the names of all the filters used (so we dont have to do calculations for every filter in the event
00060 
00061   std::vector<std::string> eleHLTPathNames_;//names of the HLT paths to use
00062   std::vector<std::string> eleHLTFilterNames_;//names of the filter names to use, appended to the pathNames
00063 
00064   std::vector<MonElemContainer<EgHLTOffEle>*> eleMonElems_;
00065 
00066   //disabling copying/assignment
00067   EgammaHLTOffline(const EgammaHLTOffline& rhs){}
00068   EgammaHLTOffline& operator=(const EgammaHLTOffline& rhs){return *this;}
00069 
00070  public:
00071   explicit EgammaHLTOffline(const edm::ParameterSet& );
00072   virtual ~EgammaHLTOffline();
00073   
00074   
00075   virtual void beginJob(const edm::EventSetup&);
00076   virtual void analyze(const edm::Event&, const edm::EventSetup&);
00077   virtual void endJob();
00078   virtual void beginRun(const edm::Run& run, const edm::EventSetup& c);
00079   virtual void endRun(const edm::Run& run, const edm::EventSetup& c);
00080 
00081   void addTrigPath(const std::string& name);
00082   void obtainFiltersElePasses(const std::vector<EgHLTOffEle>& eles,const std::vector<std::string>& filters,edm::Handle<trigger::TriggerEvent> trigEvt,std::vector<std::vector<int> >& filtersElePasses);
00083   void filterNamesUsed(std::vector<std::string>& filterNames);
00084   TrigCodes::TrigBitSet setFiltersElePasses(std::vector<EgHLTOffEle>& eles,const std::vector<std::string>& filters,edm::Handle<trigger::TriggerEvent> trigEvt);
00085 
00086 };
00087  
00088 
00089 
00090 #endif

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