CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EgHLTOfflineSource.h
Go to the documentation of this file.
1 #ifndef DQMOFFLINE_TRIGGER_EGHLTOFFLINESOURCE
2 #define DQMOFFLINE_TRIGGER_EGHLTOFFLINESOURCE
3 
4 // -*- C++ -*-
5 //
6 // Package: EgammaHLTOffline
7 // Class: EgammaHLTOffline
8 //
9 /*
10  Description: This is a DQM source meant to plot high-level HLT trigger
11  quantities as stored in the HLT results object TriggerResults for the Egamma triggers
12 
13  Notes:
14  Currently I would like to plot simple histograms of three seperate types of variables
15  1) global event quantities: eg nr of electrons
16  2) di-object quanities: transverse mass, di-electron mass
17  3) single object kinematic and id variables: eg et,eta,isolation
18 
19 */
20 //
21 // Original Author: Sam Harper
22 // Created: June 2008
23 //
24 //
25 //
26 
27 //#include "DataFormats/HLTReco/interface/TriggerEvent.h"
28 //#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
29 
34 
41 
42 class DQMStore;
43 class MonitorElement;
44 class HLTConfigProvider;
45 
46 namespace egHLT {
47  class EleHLTFilterMon;
48  class PhoHLTFilterMon;
49 }
50 
51 // namespace trigger{
52 // class TriggerObject;
53 
54 // }
55 
57 
58  private:
59  DQMStore* dbe_; //dbe seems to be the standard name for this, I dont know why. We of course dont own it
60  MonitorElement* dqmErrsMonElem_; //monitors DQM errors (ie failing to get trigger info, etc)
61  MonitorElement* nrEventsProcessedMonElem_; //number of events processed mon elem
62  int nrEventsProcessed_; //number of events processed
63 
64  std::vector<egHLT::EleHLTFilterMon*> eleFilterMonHists_; //monitoring histograms for different trigger paths, we own them
65  std::vector<egHLT::PhoHLTFilterMon*> phoFilterMonHists_; //monitoring histograms for different trigger paths, we own them
66  std::vector<egHLT::MonElemContainer<egHLT::OffEle>*> eleMonElems_; //mon elements for monitoring electrons, we own them
67  std::vector<egHLT::MonElemContainer<egHLT::OffPho>*> phoMonElems_; //mon elements for monitoring photons, we own them
68 
69  std::string dirName_;
70 
72  egHLT::OffHelper offEvtHelper_;// this is where up wrap up nasty code which will be replaced by offical tools at some point
73 
74  //note ele,pho does not refer to whether the trigger is electron or photon, it refers to what type
75  //of object passing the trigger will be monitored, eg ele = offline gsf electrons
76  std::vector<std::string> eleHLTFilterNames_;//names of the filter names to use for offline ele
77  std::vector<std::string> phoHLTFilterNames_;//names of the filter names to use for offline pho
78  std::vector<std::string> eleHLTFilterNames2Leg_;//names of the first leg of 2Leg filter names to use for offline ele in form filter1::filter2
79  std::vector<std::string> eleTightLooseTrigNames_; // list of 'tightTrig:looseTrig' pairs for ele
80  std::vector<std::string> phoTightLooseTrigNames_; // list of 'tightTrig:looseTrig' pairs for pho
81  std::vector<std::string> diEleTightLooseTrigNames_; // list of 'tightTrig:looseTrig' pairs for di-ele triggers
82  std::vector<std::string> diPhoTightLooseTrigNames_; // list of 'tightTrig:looseTrig' pairs for di-pho triggers
83 
86 
87  bool isSetup_;
89  std::string hltTag_;
90 
91  //disabling copying/assignment (copying this class would be bad, mkay)
93  EgHLTOfflineSource& operator=(const EgHLTOfflineSource& rhs){return *this;}
94 
95  public:
96  explicit EgHLTOfflineSource(const edm::ParameterSet& );
97  virtual ~EgHLTOfflineSource();
98 
99  virtual void beginJob();
100  virtual void endJob();
101  virtual void beginRun(const edm::Run& run, const edm::EventSetup& c);
102  virtual void endRun(const edm::Run& run, const edm::EventSetup& c);
103  virtual void analyze(const edm::Event&, const edm::EventSetup&);
104 
105  void addEleTrigPath(const std::string& name);
106  void addPhoTrigPath(const std::string& name);
107  void getHLTFilterNamesUsed(std::vector<std::string>& filterNames)const;
109 };
110 
111 
112 
113 #endif
std::vector< std::string > diPhoTightLooseTrigNames_
virtual void beginJob()
egHLT::OffHelper offEvtHelper_
MonitorElement * dqmErrsMonElem_
std::vector< egHLT::EleHLTFilterMon * > eleFilterMonHists_
std::vector< std::string > phoTightLooseTrigNames_
EgHLTOfflineSource & operator=(const EgHLTOfflineSource &rhs)
std::vector< std::string > eleHLTFilterNames2Leg_
std::vector< egHLT::MonElemContainer< egHLT::OffEle > * > eleMonElems_
std::vector< egHLT::PhoHLTFilterMon * > phoFilterMonHists_
void addPhoTrigPath(const std::string &name)
void getHLTFilterNamesUsed(std::vector< std::string > &filterNames) const
std::vector< std::string > eleTightLooseTrigNames_
void addEleTrigPath(const std::string &name)
std::vector< egHLT::MonElemContainer< egHLT::OffPho > * > phoMonElems_
std::vector< std::string > phoHLTFilterNames_
MonitorElement * nrEventsProcessedMonElem_
std::vector< std::string > diEleTightLooseTrigNames_
std::vector< std::string > eleHLTFilterNames_
virtual void analyze(const edm::Event &, const edm::EventSetup &)
void filterTriggers(const HLTConfigProvider &hltConfig)
egHLT::BinData binData_
egHLT::CutMasks cutMasks_
virtual void endRun(const edm::Run &run, const edm::EventSetup &c)
EgHLTOfflineSource(const EgHLTOfflineSource &rhs)
Definition: Run.h:33
virtual void beginRun(const edm::Run &run, const edm::EventSetup &c)