CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EmDQMReco.h
Go to the documentation of this file.
1 #ifndef HLTriggerOffline_Egamma_EmDQMReco_H
2 #define HLTriggerOffline_Egamma_EmDQMReco_H
3 
4 
5 // Base Class Headers
18 #include <vector>
19 #include "TDirectory.h"
20 #include "HepMC/GenParticle.h"
23 
24 #include <boost/ptr_container/ptr_vector.hpp>
25 
26 class EmDQMReco : public edm::EDAnalyzer{
27 
28  //----------------------------------------
29 
34  {
35 
36  public:
44  const std::string &histogramNameTemplate,
45  const std::string &histogramTitleTemplate);
46 
47  void fill(const math::XYZTLorentzVector &momentum);
48 
49  private:
52 
57 
58  };
59  //----------------------------------------
60 
61 public:
62 
63 
65  explicit EmDQMReco(const edm::ParameterSet& pset);
66 
68  ~EmDQMReco();
69 
70  // Operations
71 
72  void analyze(const edm::Event & event, const edm::EventSetup&);
73  void beginJob();
74  void endJob();
75  void beginRun( const edm::Run&, const edm::EventSetup& );
76 
77 private:
78  // Input from cfg file
79 
81  std::vector<edm::InputTag> theHLTCollectionLabels;
82 
83  unsigned int numOfHLTCollectionLabels; // Will be size of above vector
84 
86  std::vector<std::string> theHLTCollectionHumanNames; // Human-readable names for the collections
88  std::vector<int> theHLTOutputTypes;
89  std::vector<bool> plotiso;
90  std::vector<std::vector<edm::InputTag> > isoNames; // there has to be a better solution
91  std::vector<std::pair<double,double> > plotBounds;
92  std::string theHltName;
95 
97  // Read from configuration file //
99  // parameters for generator study
100  unsigned int reqNum;
101  int pdgGen;
102  double recoEtaAcc;
103  double recoEtAcc;
104  // plotting paramters
105  double plotEtaMax;
106  double plotPtMin ;
107  double plotPtMax ;
108  double plotPhiMax;
109 
111  unsigned int plotBins ;
112 
113  // preselction cuts
115  unsigned int recocut_;
116 
120 
125 
130 
132  // Create Histograms //
134 
137 // std::vector<MonitorElement*> etahist;
138 // std::vector<MonitorElement*> ethist;
139 // std::vector<MonitorElement*> phiHist;
140 
141  boost::ptr_vector<FourVectorMonitorElements> standardHist;
142 
143 // std::vector<MonitorElement*> etahistmatchreco;
144 // std::vector<MonitorElement*> ethistmatchreco;
145 // std::vector<MonitorElement*> phiHistMatchReco;
146  boost::ptr_vector<FourVectorMonitorElements> histMatchReco;
147 
148 // std::vector<MonitorElement*> etahistmatchrecomonpath;
149 // std::vector<MonitorElement*> ethistmatchrecomonpath;
150 // std::vector<MonitorElement*> phiHistMatchRecoMonPath;
151  boost::ptr_vector<FourVectorMonitorElements> histMatchRecoMonPath;
152 
153 
154 // std::vector<MonitorElement*> histEtOfHltObjMatchToReco;
155 // std::vector<MonitorElement*> histEtaOfHltObjMatchToReco;
156 // std::vector<MonitorElement*> histPhiOfHltObjMatchToReco;
157  boost::ptr_vector<FourVectorMonitorElements> histHltObjMatchToReco;
158 
163  std::vector<MonitorElement*> etahistiso;
164  std::vector<MonitorElement*> ethistiso;
165  std::vector<MonitorElement*> phiHistIso;
166 
167  std::vector<MonitorElement*> etahistisomatchreco;
168  std::vector<MonitorElement*> ethistisomatchreco;
169  std::vector<MonitorElement*> phiHistIsoMatchReco;
170 
171  std::vector<MonitorElement*> histEtIsoOfHltObjMatchToReco;
172  std::vector<MonitorElement*> histEtaIsoOfHltObjMatchToReco;
173  std::vector<MonitorElement*> histPhiIsoOfHltObjMatchToReco;
180 
183 // MonitorElement* etreco;
184 // MonitorElement* etareco;
185 // MonitorElement* phiReco;
186  boost::scoped_ptr<FourVectorMonitorElements> histReco;
187 
188  // MonitorElement* etrecomonpath;
189  // MonitorElement* etarecomonpath;
190  // MonitorElement* phiRecoMonPath;
191  boost::scoped_ptr<FourVectorMonitorElements> histRecoMonpath;
192 
193  // MonitorElement* etahistmonpath;
194  // MonitorElement* ethistmonpath;
195  // MonitorElement* phiHistMonPath;
196  boost::scoped_ptr<FourVectorMonitorElements> histMonpath;
199  int eventnum;
200  // int prescale;
201 
202  // interface to DQM framework
204  std::string dirname_;
205 
206  template <class T> void fillHistos(edm::Handle<trigger::TriggerEventWithRefs>&,const edm::Event& ,unsigned int, std::vector<reco::Particle>&, bool, bool);
209 
210 
211  //----------------------------------------
212 };
213 #endif
int pdgGen
Definition: EmDQMReco.h:101
void fill(const math::XYZTLorentzVector &momentum)
Definition: EmDQMReco.cc:89
boost::ptr_vector< FourVectorMonitorElements > standardHist
Definition: EmDQMReco.h:141
std::vector< std::vector< edm::InputTag > > isoNames
Definition: EmDQMReco.h:90
void analyze(const edm::Event &event, const edm::EventSetup &)
Definition: EmDQMReco.cc:498
std::string theHltName
Definition: EmDQMReco.h:92
std::string dirname_
Definition: EmDQMReco.h:204
boost::ptr_vector< FourVectorMonitorElements > histMatchReco
Definition: EmDQMReco.h:146
int eventnum
Definition: EmDQMReco.h:199
void endJob()
Definition: EmDQMReco.cc:890
std::vector< MonitorElement * > histEtIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:171
EmDQMReco(const edm::ParameterSet &pset)
Constructor.
Definition: EmDQMReco.cc:101
std::vector< int > theHLTOutputTypes
Definition: EmDQMReco.h:88
std::vector< MonitorElement * > phiHistIso
Definition: EmDQMReco.h:165
unsigned int plotBins
Definition: EmDQMReco.h:111
std::vector< MonitorElement * > histEtaIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:172
double recoEtaAcc
Definition: EmDQMReco.h:102
bool isHltConfigInitialized_
Definition: EmDQMReco.h:94
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:93
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
void beginRun(const edm::Run &, const edm::EventSetup &)
Definition: EmDQMReco.cc:183
boost::ptr_vector< FourVectorMonitorElements > histMatchRecoMonPath
Definition: EmDQMReco.h:151
double recoEtAcc
Definition: EmDQMReco.h:103
GreaterByPt< reco::Particle > pTComparator_
Definition: EmDQMReco.h:207
std::vector< std::string > theHLTCollectionHumanNames
Definition: EmDQMReco.h:86
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:83
~EmDQMReco()
Destructor.
Definition: EmDQMReco.cc:490
MonitorElement * totalreco
Definition: EmDQMReco.h:178
MonitorElement * etaMonitorElement
Definition: EmDQMReco.h:55
MonitorElement * totalmatchreco
Definition: EmDQMReco.h:179
FourVectorMonitorElements(EmDQMReco *_parent, const std::string &histogramNameTemplate, const std::string &histogramTitleTemplate)
Definition: EmDQMReco.cc:48
DQMStore * dbe
Definition: EmDQMReco.h:203
unsigned int recocut_
Definition: EmDQMReco.h:115
std::vector< MonitorElement * > ethistisomatchreco
Definition: EmDQMReco.h:168
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
std::string triggerNameRecoMonPath
Definition: EmDQMReco.h:119
std::vector< bool > plotiso
Definition: EmDQMReco.h:89
bool useHumanReadableHistTitles
Definition: EmDQMReco.h:85
double plotPhiMax
Definition: EmDQMReco.h:108
MonitorElement * phiMonitorElement
Definition: EmDQMReco.h:56
unsigned int reqNum
Definition: EmDQMReco.h:100
boost::scoped_ptr< FourVectorMonitorElements > histRecoMonpath
Definition: EmDQMReco.h:191
std::vector< MonitorElement * > etahistiso
Definition: EmDQMReco.h:163
boost::scoped_ptr< FourVectorMonitorElements > histMonpath
Definition: EmDQMReco.h:196
std::vector< MonitorElement * > etahistisomatchreco
Definition: EmDQMReco.h:167
std::vector< std::pair< double, double > > plotBounds
Definition: EmDQMReco.h:91
edm::InputTag theL1Seed
Definition: EmDQMReco.h:87
std::vector< edm::InputTag > theHLTCollectionLabels
Definition: EmDQMReco.h:81
void fillHistos(edm::Handle< trigger::TriggerEventWithRefs > &, const edm::Event &, unsigned int, std::vector< reco::Particle > &, bool, bool)
Definition: EmDQMReco.cc:694
GreaterByPt< reco::GsfElectron > pTRecoComparator_
Definition: EmDQMReco.h:208
double plotPtMin
Definition: EmDQMReco.h:106
double plotPtMax
Definition: EmDQMReco.h:107
edm::InputTag recoElectronsInputTag
Definition: EmDQMReco.h:129
boost::ptr_vector< FourVectorMonitorElements > histHltObjMatchToReco
Definition: EmDQMReco.h:157
double plotEtaMax
Definition: EmDQMReco.h:105
std::vector< MonitorElement * > ethistiso
Definition: EmDQMReco.h:164
std::string processNameRecoMonPath
Definition: EmDQMReco.h:124
boost::scoped_ptr< FourVectorMonitorElements > histReco
Definition: EmDQMReco.h:186
std::vector< MonitorElement * > phiHistIsoMatchReco
Definition: EmDQMReco.h:169
edm::InputTag recocutCollection_
Definition: EmDQMReco.h:114
void beginJob()
Definition: EmDQMReco.cc:198
Definition: Run.h:33
std::vector< MonitorElement * > histPhiIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:173