CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
HLTJetMETDQMSource Class Reference

#include <HLTJetMETDQMSource.h>

Inheritance diagram for HLTJetMETDQMSource:
edm::EDAnalyzer

Classes

class  PathInfo
 
class  PathInfoCollection
 

Public Member Functions

 HLTJetMETDQMSource (const edm::ParameterSet &)
 
 ~HLTJetMETDQMSource ()
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Private Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob ()
 
void beginLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
 
void beginRun (const edm::Run &run, const edm::EventSetup &c)
 
virtual void endJob ()
 
void endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
 DQM Client Diagnostic. More...
 
void endRun (const edm::Run &run, const edm::EventSetup &c)
 EndRun. More...
 
void histobooking (const edm::EventSetup &c)
 

Private Attributes

int currentRun_
 
std::string custompathnamemu_
 
std::vector< std::pair
< std::string, std::string > > 
custompathnamepairs_
 
DQMStoredbe_
 
std::string dirname_
 
HLTConfigProvider hltConfig_
 
bool hltconfigchanged
 
PathInfoCollection hltPathsAll_
 
PathInfoCollection hltPathsEff_
 
PathInfoCollection hltPathswrtMu_
 
double htMin_
 
double jetDRMatch_
 
double jetEtaMax_
 
double jetEtMin_
 
double metMin_
 
bool monitorDaemon_
 
double muonDRMatch_
 
double muonEtaMax_
 
double muonEtMin_
 
unsigned int nBins_
 
int nev_
 
int nhltcfg
 
bool plotAll_
 
bool plotEff_
 
bool plotwrtMu_
 
std::vector< int > prescUsed_
 
std::string processname_
 
double ptMax_
 
double ptMin_
 
MonitorElementrate_All
 
MonitorElementrate_All_L1
 
MonitorElementrate_Denom
 
MonitorElementrate_Eff
 
MonitorElementrate_Num
 
MonitorElementrate_wrtMu
 
bool resetMe_
 
MonitorElementscalersSelect
 
double sumEtMin_
 
int theHLTOutputType
 
MonitorElementtotal_
 
edm::InputTag triggerResultsLabel_
 
edm::InputTag triggerSummaryLabel_
 
bool verbose_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDAnalyzer
CurrentProcessingContext const * currentContext () const
 

Detailed Description

Definition at line 38 of file HLTJetMETDQMSource.h.

Constructor & Destructor Documentation

HLTJetMETDQMSource::HLTJetMETDQMSource ( const edm::ParameterSet iConfig)
explicit

Definition at line 33 of file HLTJetMETDQMSource.cc.

References custompathnamemu_, custompathnamepairs_, dbe_, dirname_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), htMin_, jetDRMatch_, jetEtaMax_, jetEtMin_, LogDebug, metMin_, muonDRMatch_, muonEtaMax_, muonEtMin_, nBins_, cmsCodeRules.cppFunctionSkipper::operator, EgammaValidation_cff::paths, plotAll_, plotEff_, plotwrtMu_, prescUsed_, processname_, ptMax_, ptMin_, DQMStore::setCurrentFolder(), DQMStore::setVerbose(), sumEtMin_, triggerResultsLabel_, triggerSummaryLabel_, and verbose_.

33  :
34  resetMe_(true),
35  currentRun_(-99) {
36  LogDebug("HLTJetMETDQMSource") << "constructor....";
37 
39  if ( ! dbe_ ) {
40  LogDebug("HLTJetMETDQMSource") << "unabel to get DQMStore service?";
41  }
42  if (iConfig.getUntrackedParameter < bool > ("DQMStore", false)) {
43  dbe_->setVerbose(0);
44  }
45 
46  dirname_ = iConfig.getUntrackedParameter("dirname",
47  std::string("HLT/JetMET/"));
48  //dirname_ += iConfig.getParameter<std::string>("@module_label");
49 
50  if (dbe_ != 0 ) {
52  }
53  //hltconfigchanged=false;
54 
55  processname_ = iConfig.getParameter<std::string>("processname");
56  //HLTPathNamesConfigPreVal_= iConfig.getParameter<std::vector<std::string > >("HLTPaths"),
57  verbose_ = iConfig.getUntrackedParameter< bool >("verbose", false);
58  // plotting paramters
59  ptMin_ = iConfig.getUntrackedParameter<double>("ptMin",0.);
60  ptMax_ = iConfig.getUntrackedParameter<double>("ptMax",1000.);
61  nBins_ = iConfig.getUntrackedParameter<unsigned int>("Nbins",50);
62 
63  plotAll_ = iConfig.getUntrackedParameter<bool>("plotAll", false);
64  plotwrtMu_ = iConfig.getUntrackedParameter<bool>("plotwrtMu", false);
65  plotEff_ = iConfig.getUntrackedParameter<bool>("plotEff", false);
66  // this is the list of paths to look at.
67  std::vector<edm::ParameterSet> paths = iConfig.getParameter<std::vector<edm::ParameterSet> >("paths");
68 
69 
70  for(std::vector<edm::ParameterSet>::iterator pathconf = paths.begin() ; pathconf != paths.end(); pathconf++) {
71  std::pair<std::string, std::string> custompathnamepair;
72  int prescaleused;
73  custompathnamepair.first =pathconf->getParameter<std::string>("pathname");
74  custompathnamepair.second = pathconf->getParameter<std::string>("denompathname");
75  custompathnamepairs_.push_back(custompathnamepair);
76  //prescaleEvt_ = parameters_.getUntrackedParameter<int>("prescaleEvt", -1);
77  prescaleused = pathconf->getParameter<int>("prescaleused");
78  prescUsed_.push_back(prescaleused);
79  // customdenompathnames_.push_back(pathconf->getParameter<std::string>("denompathname"));
80  // custompathnames_.push_back(pathconf->getParameter<std::string>("pathname"));
81  }
82 
83  custompathnamemu_ = iConfig.getUntrackedParameter("pathnameMuon",
84  std::string("HLT_L1Mu"));
85 
86  triggerSummaryLabel_ = iConfig.getParameter<edm::InputTag>("triggerSummaryLabel");
87  triggerResultsLabel_ = iConfig.getParameter<edm::InputTag>("triggerResultsLabel");
88 
89  muonEtaMax_ = iConfig.getUntrackedParameter<double>("muonEtaMax",2.5);
90  muonEtMin_ = iConfig.getUntrackedParameter<double>("muonEtMin",0.0);
91  muonDRMatch_ =iConfig.getUntrackedParameter<double>("muonDRMatch",0.3);
92 
93  jetEtaMax_ = iConfig.getUntrackedParameter<double>("jetEtaMax",5.0);
94  jetEtMin_ = iConfig.getUntrackedParameter<double>("jetEtMin",0.0);
95  jetDRMatch_ =iConfig.getUntrackedParameter<double>("jetDRMatch",0.3);
96 
97  metMin_ = iConfig.getUntrackedParameter<double>("metMin",0.0);
98  htMin_ = iConfig.getUntrackedParameter<double>("htMin",0.0);
99  sumEtMin_ = iConfig.getUntrackedParameter<double>("sumEtMin",0.0);
100 
101 
102 
103 }
#define LogDebug(id)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::InputTag triggerSummaryLabel_
edm::InputTag triggerResultsLabel_
void setVerbose(unsigned level)
Definition: DQMStore.cc:196
std::string custompathnamemu_
std::vector< int > prescUsed_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
std::vector< std::pair< std::string, std::string > > custompathnamepairs_
HLTJetMETDQMSource::~HLTJetMETDQMSource ( )

Definition at line 106 of file HLTJetMETDQMSource.cc.

106  {
107 
108 
109  //
110  // do anything here that needs to be done at desctruction time
111  // (e.g. close files, deallocate resources etc.)
112 
113 }

Member Function Documentation

void HLTJetMETDQMSource::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDAnalyzer.

Definition at line 117 of file HLTJetMETDQMSource.cc.

References gather_cfg::cout, reco::deltaR(), eta(), MonitorElement::Fill(), edm::Event::getByLabel(), getTH1F(), MonitorElement::getTH1F(), hltConfig_, hltconfigchanged, hltPathsAll_, hltPathsEff_, hltPathswrtMu_, i, getHLTprescales::index, edm::InputTag::instance(), j, gen::k, edm::InputTag::label(), HLTConfigProvider::moduleLabels(), MultiGaussianStateTransform::N, nev_, NULL, phi, plotAll_, plotEff_, plotwrtMu_, edm::InputTag::process(), processname_, rate_All, rate_All_L1, rate_Denom, rate_Eff, rate_Num, rate_wrtMu, MonitorElement::setBinContent(), MonitorElement::setBinError(), edm::TriggerNames::size(), mathSSE::sqrt(), trigger::TriggerJet, trigger::TriggerL1CenJet, trigger::TriggerL1ETM, trigger::TriggerL1ETT, trigger::TriggerL1ForJet, trigger::TriggerL1Mu, trigger::TriggerL1TauJet, trigger::TriggerMET, trigger::TriggerMuon, edm::Event::triggerNames(), triggerResultsLabel_, triggerSummaryLabel_, trigger::TriggerTET, v, and verbose_.

117  {
118  using namespace edm;
119  using namespace trigger;
120 
121  ++nev_;
122  if (verbose_) std::cout << " --------------- N Event ------------" << nev_ << std::endl; // LogDebug("HLTJetMETDQMSource")<< "HLTJetMETDQMSource: analyze...." ;
123 
124 
125 
126 
127  //currun=iEvent.id().run();
128  //if ( nev_==1) runno = iEvent.id().run();
129  /*
130  bool changed(true);
131  if (hltConfig_.init(iEvent,processname_,changed)) {
132  if (changed) {
133  hltconfigchanged=true;
134  //if(verbose_)
135  //hltConfig_.dump("Triggers");
136  LogWarning("HLTJetMETDQMSource") << "HLTJetMETDQMSource:analyze: The number of valid triggers has changed since beginning of job." << std::endl;
137  // << "Processing of events halted for summary histograms" << std::endl;
138  //<< "Summary histograms do not support changing configurations." << std::endl
139 
140  }
141  }
142 
143  if ( hltConfig_.size() <= 0 ) {
144  LogError("HLTJetMETDQMSource") << "HLT config size error" << std::endl;
145  return;
146  }
147  // if ( currun != runno) runchanged=true;
148  */
149 
150 
151  edm::Handle<TriggerResults> triggerResults;
152  iEvent.getByLabel(triggerResultsLabel_,triggerResults);
153  if(!triggerResults.isValid()) {
154  edm::InputTag triggerResultsLabelFU(triggerResultsLabel_.label(),triggerResultsLabel_.instance(), "FU");
155  iEvent.getByLabel(triggerResultsLabelFU,triggerResults);
156  if(!triggerResults.isValid()) {
157  LogWarning("HLTJetMETDQMSource") << "TriggerResults not found, skipping event" << std::endl;
158  return;
159  }
160  }
161  const edm::TriggerNames & triggerNames = iEvent.triggerNames(*triggerResults);
162  unsigned int npath = triggerResults->size();
163 
164  edm::Handle<TriggerEvent> triggerObj;
165  iEvent.getByLabel(triggerSummaryLabel_,triggerObj);
166  if(!triggerObj.isValid()) {
167  edm::InputTag triggerSummaryLabelFU(triggerSummaryLabel_.label(),triggerSummaryLabel_.instance(), "FU");
168  iEvent.getByLabel(triggerSummaryLabelFU,triggerObj);
169  if(!triggerObj.isValid()) {
170  LogWarning("HLTJetMETDQMSource") << "TriggerEvent not found, skipping event" << std::endl;
171  return;
172  }
173  }
174  //----plot all the ditributions for JET and MET -----------------------
175 
176 
177  const trigger::TriggerObjectCollection & toc(triggerObj->getObjects());
178 
179 
180  int testint=0;
181  if (plotAll_) testint=1;
182  if (verbose_) std::cout << " plots all " << testint << std::endl;
183  if (plotAll_) {
184  if (verbose_) std::cout << " Look at basic distributions " << std::endl;
185 
186  int N =-1;
187  int NL1=-1;
188 
189 
190  for(PathInfoCollection::iterator v = hltPathsAll_.begin(); v!= hltPathsAll_.end(); ++v ){
191  NL1++;
192  N++;
193 
194  int triggertype = 0;
195  triggertype = v->getObjectType();
196 
197  bool l1accept = false;
198  edm::InputTag l1testTag(v->getl1Path(),"",processname_);
199  const int l1index = triggerObj->filterIndex(l1testTag);
200  if ( l1index >= triggerObj->sizeFilters() ) {
201  if (verbose_) std::cout<< "no index "<< l1index << " of that name "
202  << v->getl1Path() << "\t" << "\t" << l1testTag << std::endl;
203  continue;
204  }
205 
206  const trigger::Vids & idtype = triggerObj->filterIds(l1index);
207  const trigger::Keys & l1k = triggerObj->filterKeys(l1index);
208  //if (verbose_) std::cout << "filterID "<< idtype << " keys " << l1k << std::endl;
209  //if (verbose_) std::cout << " keys " << l1k << std::endl;
210  l1accept = l1k.size() > 0;
211  //if (l1accept)
212  //l1accept = true ;
213 
214  //
215  //-----------------------------------------------------
216 
217  bool passed = false;
218  for(unsigned int i = 0; i < npath; ++i) {
219  if ( triggerNames.triggerName(i).find(v->getPath()) != std::string::npos
220  && triggerResults->accept(i)){
221  passed = true;
222  if (verbose_) std::cout << " i " << i << " trigger name " << v->getPath() << std::endl;
223  break;
224  }
225  }
226  if(passed){
227 
228  if(!hltconfigchanged) rate_All->Fill(N);
229 
230  if (verbose_) std::cout << " N " << N << " trigger name " << v->getPath() << std::endl;
231 
232  if (!l1accept) {
233  edm::LogInfo("HLTJetMETDQMSource") << "l1 seed path not accepted for hlt path "
234  << v->getPath() << "\t" << v->getl1Path();
235  }
236  edm::InputTag filterTag = v->getTag();
237 
238  //const std::vector<std::string> filterLabels = hltConfig_.moduleLabels(v->getPath());
239 
240  if (v->getLabel() == "dummy"){
241  const std::vector<std::string> filterLabels = hltConfig_.moduleLabels(v->getPath());
242  //loop over labels
243 
244  for (std::vector<std::string>::const_iterator labelIter= filterLabels.begin();
245  labelIter!=filterLabels.end(); labelIter++) {
246  edm::InputTag testTag(*labelIter,"",processname_);
247  if (verbose_) std::cout << v->getPath() << "\t" << testTag.label() << "\t"
248  << testTag.process() << std::endl;
249  int testindex = triggerObj->filterIndex(testTag);
250 
251  if ( !(testindex >= triggerObj->sizeFilters()) ) {
252  if (verbose_) std::cout << "found one! " << v->getPath() << "\t"
253  << testTag.label() << std::endl;
254  filterTag = testTag;
255  v->setLabel(*labelIter);
256  }
257  }
258  }
259  const int index = triggerObj->filterIndex(filterTag);
260  if (verbose_) std::cout << "filter index "<< index << " of that name "
261  << filterTag << std::endl;
262  if ( index >= triggerObj->sizeFilters() ) {
263  if (verbose_) std::cout << "WTF no index "<< index << " of that name "
264  << filterTag << std::endl;
265  continue; //
266  }
267  const trigger::Keys & k = triggerObj->filterKeys(index);
268 
269  for (trigger::Keys::const_iterator ki = k.begin(); ki !=k.end(); ++ki ) {
270  if (verbose_) cout << " filling HLT " << v->getPath() << "\t" << toc[*ki].pt()
271  << "\t" << toc[*ki].eta() << "\t" << toc[*ki].phi() << std::endl;
272  if ( triggertype == trigger::TriggerJet
273  || triggertype == trigger::TriggerL1TauJet
274  || triggertype == trigger::TriggerL1CenJet
275  || triggertype == trigger::TriggerL1ForJet)
276  {
277  if (verbose_) cout << " filling HLT " << v->getPath() << "\t"
278  << " *ki " << *ki << " Nki "<< N<< " "
279  << toc[*ki].pt() << "\t" << toc[*ki].eta() << "\t"
280  << toc[*ki].phi() << std::endl;
281 
282  v->getEtHisto()->Fill(toc[*ki].pt());
283  v->getEtaHisto()->Fill(toc[*ki].eta());
284  v->getPhiHisto()->Fill(toc[*ki].phi());
285  v->getEtaPhiHisto()->Fill(toc[*ki].eta(), toc[*ki].phi());
286 
287  //---L1 Histograms
288  trigger::Vids::const_iterator idtypeiter = idtype.begin();
289  for (trigger::Keys::const_iterator l1ki = l1k.begin();
290  l1ki !=l1k.end(); ++l1ki ) {
291  if (*idtypeiter == trigger::TriggerL1TauJet
292  || *idtypeiter == trigger::TriggerL1ForJet
293  || *idtypeiter == trigger::TriggerL1CenJet)
294  {
295  if (verbose_) cout << " filling L1 HLT " << v->getPath()
296  << "\t" << " *l1ki " << *l1ki << " NL1 "
297  << NL1<< " " << toc[*l1ki].pt() << "\t"
298  << toc[*l1ki].eta() << "\t" << toc[*l1ki].phi()
299  << std::endl;
300  if (reco::deltaR(toc[*l1ki].eta(),toc[*l1ki].phi(),toc[*ki].eta(),toc[*ki].phi()) < 0.3){
301  if(!hltconfigchanged) rate_All_L1->Fill(NL1);
302 
303  v->getL1EtHisto()->Fill(toc[*l1ki].pt());
304  v->getL1PhiHisto()->Fill(toc[*l1ki].phi());
305  v->getL1EtaHisto()->Fill(toc[*l1ki].eta());
306  v->getL1EtaPhiHisto()->Fill(toc[*l1ki].eta(),toc[*l1ki].phi());
307  }
308 
309 
310  }
311  ++idtypeiter;
312  }//end L1
313 
314  }
315 
316  //----------------------------
317  else if (triggertype == trigger::TriggerMuon
318  ||triggertype == trigger::TriggerL1Mu )
319  {
320  if (verbose_) cout << " filling HLT " << v->getPath() << "\t" << " *ki "
321  << *ki << " Nki "<< N << " " << toc[*ki].pt()
322  << "\t" << toc[*ki].eta() << "\t" << toc[*ki].phi() << std::endl;
323 
324  v->getEtHisto()->Fill(toc[*ki].pt());
325  //v->getEtaHisto()->Fill(toc[*ki].eta());
326  //v->getPhiHisto()->Fill(toc[*ki].phi());
327  v->getEtaPhiHisto()->Fill(toc[*ki].eta(), toc[*ki].phi());
328 
329  //---L1 Histograms
330  trigger::Vids::const_iterator idtypeiter = idtype.begin();
331  for (trigger::Keys::const_iterator l1ki = l1k.begin(); l1ki !=l1k.end(); ++l1ki ) {
332  if (*idtypeiter == trigger::TriggerL1Mu)
333  {
334  if (reco::deltaR(toc[*l1ki].eta(),toc[*l1ki].phi(),toc[*ki].eta(),toc[*ki].phi()) < 0.3) {
335 
336  if(!hltconfigchanged) rate_All_L1->Fill(NL1);
337 
338  v->getL1EtHisto()->Fill(toc[*l1ki].pt());
339  //v->getL1PhiHisto()->Fill(toc[*l1ki].phi()());
340  //v->getL1EtaHisto()->Fill(toc[*l1ki].eta()());
341  v->getL1EtaPhiHisto()->Fill(toc[*l1ki].eta(),toc[*l1ki].phi());
342  }
343  }
344  ++idtypeiter;
345  }//end L1
346 
347 
348  }
349  //--------------------------------------
350  else if ( triggertype == trigger::TriggerMET
351  || triggertype == trigger::TriggerL1ETM
352  || triggertype == trigger::TriggerTET){
353 
354  v->getEtHisto()->Fill(toc[*ki].pt());
355  v->getPhiHisto()->Fill(toc[*ki].phi());
356 
357  //---L1 Histograms
358  trigger::Vids::const_iterator idtypeiter = idtype.begin();
359  for (trigger::Keys::const_iterator l1ki = l1k.begin(); l1ki !=l1k.end(); ++l1ki ) {
360  if (*idtypeiter == trigger::TriggerL1ETM)
361  {
362  if (reco::deltaR(toc[*l1ki].eta(),toc[*l1ki].phi(),toc[*ki].eta(),toc[*ki].phi()) < 0.3) {
363  //NL1[npth]++;
364  if(!hltconfigchanged) rate_All_L1->Fill(NL1);
365  v->getL1EtHisto()->Fill(toc[*l1ki].pt());
366  v->getL1PhiHisto()->Fill(toc[*l1ki].phi());
367  }
368  }
369  ++idtypeiter;
370  }//end L1
371 
372  }
373  //-------------------------------------------
374  else if ( triggertype == trigger::TriggerTET
375  || triggertype == trigger::TriggerL1ETT){
376 
377  v->getEtHisto()->Fill(toc[*ki].pt());
378  v->getPhiHisto()->Fill(toc[*ki].phi());
379  //---L1 Histograms
380  trigger::Vids::const_iterator idtypeiter = idtype.begin();
381  for (trigger::Keys::const_iterator l1ki = l1k.begin(); l1ki !=l1k.end(); ++l1ki ) {
382  if (*idtypeiter == TriggerL1ETT)
383  {
384 
385  if (reco::deltaR(toc[*l1ki].eta(),toc[*l1ki].phi(),toc[*ki].eta(),toc[*ki].phi()) < 0.3) {
386  //NL1[npth]++;
387  if(!hltconfigchanged) rate_All_L1->Fill(NL1);
388  v->getL1EtHisto()->Fill(toc[*l1ki].pt());
389  v->getL1PhiHisto()->Fill(toc[*l1ki].phi());
390  }
391  }
392  ++idtypeiter;
393  }//end L1
394  }
395  }
396 
397  }//ifpassed
398  }
399  }//----------------- end if plotAll
400 
401  //----plot all the ditributions for JET and MET with respect to a muon trigger --------------
402  if (plotwrtMu_) {
403 
404  // if (verbose_) std::cout << " Look at basic distributions with respect to muon " << std::endl;
405  int N =-1;
406  int NL1=-1;
407  for(PathInfoCollection::iterator v = hltPathswrtMu_.begin(); v!= hltPathswrtMu_.end(); ++v ){
408  NL1++;
409  N++;
410  int triggertype = 0;
411  triggertype = v->getObjectType();
412 
413  bool l1accept = false;
414  edm::InputTag l1testTag(v->getl1Path(),"",processname_);
415  const int l1index = triggerObj->filterIndex(l1testTag);
416  if ( l1index >= triggerObj->sizeFilters() ) {
417  if (verbose_) std::cout<< "no index "<< l1index << " of that name (wrtMu)" << v->getl1Path() << "\t" << "\t" << l1testTag << std::endl;
418  continue;
419  }
420 
421  //const trigger::Vids & idtype = triggerObj->filterIds(l1index);
422  const trigger::Keys & l1k = triggerObj->filterKeys(l1index);
423  //if (verbose_) std::cout << "filterID "<< idtype << " keys " << l1k << std::endl;
424  //if (verbose_) std::cout << " keys " << l1k << std::endl;
425  l1accept = l1k.size() > 0;
426  //if (l1accept) rate_All_L1->Fill(NL1);
427  //l1accept = true ;
428  //
429  //-----------------------------------------------------
430  bool denompassed = false;
431  bool passed = false;
432  for(unsigned int i = 0; i < npath; ++i) {
433  if ( triggerNames.triggerName(i).find(v->getPath()) != std::string::npos && triggerResults->accept(i)){
434  passed = true; break ;
435  }
436  }
437  for(unsigned int i = 0; i < npath; ++i) {
438  if ( triggerNames.triggerName(i).find(v->getDenomPath()) != std::string::npos && triggerResults->accept(i)){
439  denompassed = true; break ;
440  }
441  }
442  if(denompassed){
443 
444  if (verbose_) std::cout << " N " << N << " trigger wrt mu demom name "
445  << v->getDenomPath() << std::endl;
446  if(passed){
447 
449 
450  if (verbose_) std::cout << " N " << N << " trigger name "
451  << v->getPath() << std::endl;
452 
453  if (!l1accept) {
454  edm::LogInfo("HLTJetMETDQMSource") << "l1 seed path not accepted for hlt path "
455  << v->getPath() << "\t" << v->getl1Path();
456  }
457  edm::InputTag filterTag = v->getTag();
458  //const std::vector<std::string> filterLabels = hltConfig_.moduleLabels(v->getPath());
459  if (v->getLabel() == "dummy"){
460  const std::vector<std::string> filterLabels = hltConfig_.moduleLabels(v->getPath());
461  //loop over labels
462 
463  for (std::vector<std::string>::const_iterator labelIter= filterLabels.begin(); labelIter!=filterLabels.end(); labelIter++) {
464  edm::InputTag testTag(*labelIter,"",processname_);
465  if (verbose_) std::cout << v->getPath() << "\t" << testTag.label() << "\t" << testTag.process() << std::endl;
466 
467  int testindex = triggerObj->filterIndex(testTag);
468 
469  if ( !(testindex >= triggerObj->sizeFilters()) ) {
470  if (verbose_) std::cout << "found one! " << v->getPath() << "\t" << testTag.label() << std::endl;
471  filterTag = testTag;
472  v->setLabel(*labelIter);
473  }
474  }
475  }
476  const int index = triggerObj->filterIndex(filterTag);
477  if (verbose_) std::cout << "filter index "<< index << " of that name (wrtMu)"
478  << filterTag << std::endl;
479  if ( index >= triggerObj->sizeFilters() ) {
480  if (verbose_) std::cout << "WTF no index "<< index << " of that name (wrtMu)"
481  << filterTag << std::endl;
482  continue; //
483  }
484  const trigger::Keys & k = triggerObj->filterKeys(index);
485 
486  for (trigger::Keys::const_iterator ki = k.begin(); ki !=k.end(); ++ki ) {
487 
488  if (verbose_) cout << " filling HLT (wrtMu)" << v->getPath()
489  << "\t" << toc[*ki].pt() << "\t" << toc[*ki].eta()
490  << "\t" << toc[*ki].phi() << std::endl;
491  if ( triggertype == trigger::TriggerJet
492  || triggertype == trigger::TriggerL1TauJet
493  || triggertype == trigger::TriggerL1CenJet
494  || triggertype == trigger::TriggerL1ForJet)
495  {
496  if (verbose_) cout << " filling HLT (wrtMu)" << v->getPath()
497  << "\t" << " *ki " << *ki << " Nki "<< N
498  << " " << toc[*ki].pt() << "\t" << toc[*ki].eta()
499  << "\t" << toc[*ki].phi() << std::endl;
500  v->getEtwrtMuHisto()->Fill(toc[*ki].pt());
501  //v->getEtawrtMuHisto()->Fill(toc[*ki].eta());
502  //v->getPhiwrtMuHisto()->Fill(toc[*ki].phi());
503  v->getEtaPhiwrtMuHisto()->Fill(toc[*ki].eta(), toc[*ki].phi());
504  }
505 
506  //----------------------------
507  else if (triggertype == trigger::TriggerMuon
508  ||triggertype == trigger::TriggerL1Mu )
509  {
510  if (verbose_) cout << " filling HLT (wrtMu)" << v->getPath() << "\t" << " *ki " << *ki << " Nki "<< N << " " << toc[*ki].pt() << "\t" << toc[*ki].eta() << "\t" << toc[*ki].phi() << std::endl;
511  v->getEtwrtMuHisto()->Fill(toc[*ki].pt());
512  //v->getEtaHisto()->Fill(toc[*ki].eta());
513  //v->getPhiHisto()->Fill(toc[*ki].phi());
514  v->getEtaPhiwrtMuHisto()->Fill(toc[*ki].eta(), toc[*ki].phi());
515  }
516  //--------------------------------------
517  else if ( triggertype == trigger::TriggerMET
518  || triggertype == trigger::TriggerL1ETM)
519  {
520  v->getEtwrtMuHisto()->Fill(toc[*ki].pt());
521  v->getPhiwrtMuHisto()->Fill(toc[*ki].phi());
522  }
523  //-------------------------------------------
524  else if ( triggertype == trigger::TriggerTET
525  || triggertype == trigger::TriggerL1ETT)
526  {
527  v->getEtwrtMuHisto()->Fill(toc[*ki].pt());
528  }
529  }
530 
531  }//ifpassed
532  }//if denom passed
533  }
534  }//----------------- end if plowrtMu
535  //----------plot efficiency---------------
536 
537  if (plotEff_) {
538  if (verbose_) std::cout << " Look at basic distributions for Eff " << std::endl;
539 
540  int N =-1;
541  int Ndenom =-1;
542  int Nnum =-1;
543  for(PathInfoCollection::iterator v = hltPathsEff_.begin(); v!= hltPathsEff_.end(); ++v ){
544  Ndenom++;
545  Nnum++;
546  N++;
547  int triggertype = 0;
548  triggertype = v->getObjectType();
549 
550  bool l1accept = false;
551  edm::InputTag l1testTag(v->getl1Path(),"",processname_);
552  const int l1index = triggerObj->filterIndex(l1testTag);
553  if ( l1index >= triggerObj->sizeFilters() ) {
554  if (verbose_) std::cout<< "no index "<< l1index << " of that name "
555  << v->getl1Path() << "\t" << "\t" << l1testTag << std::endl;
556  continue;
557  }
558  //const trigger::Vids & idtype = triggerObj->filterIds(l1index);
559  const trigger::Keys & l1k = triggerObj->filterKeys(l1index);
560  //if (verbose_) std::cout << "filterID "<< idtype << " keys " << l1k << std::endl;
561  //if (verbose_) std::cout << " keys " << l1k << std::endl;
562  l1accept = l1k.size() > 0;
563  bool passed = false;
564  for(unsigned int i = 0; i < npath; ++i) {
565  if ( triggerNames.triggerName(i).find(v->getPath()) != std::string::npos
566  && triggerResults->accept(i)){
567  passed = true;
568  if (verbose_) std::cout << " i " << i << " trigger name " << v->getPath() << std::endl;
569  break;
570  }
571  }
572  bool denompassed = false;
573  for(unsigned int i = 0; i < npath; ++i) {
574  if ( triggerNames.triggerName(i).find(v->getDenomPath()) != std::string::npos
575  && triggerResults->accept(i)){
576  denompassed = true;
577  if (verbose_) std::cout << " i " << i << " trigger name " << v->getDenomPath() << std::endl;
578  break;
579  }
580  }
581  if (denompassed){
582  if(!hltconfigchanged) rate_Denom->Fill(Ndenom);
583  if (verbose_) std::cout << " N " << N << " trigger name " << v->getDenomPath() << std::endl;
584 
585  if (!l1accept) {
586  edm::LogInfo("HLTJetMETDQMSource") << "l1 seed path not accepted for hlt path "
587  << v->getPath() << "\t" << v->getl1Path();
588  }
589  edm::InputTag filterTag = v->getDenomTag();
590  //const std::vector<std::string> filterLabels = hltConfig_.moduleLabels(v->getPath());
591  if (verbose_) std::cout << v->getDenomPath() << "\t" << v->getDenomLabel() << "\t" << std::endl;
592  if (v->getDenomLabel() == "denomdummy"){
593  const std::vector<std::string> filterLabels = hltConfig_.moduleLabels(v->getDenomPath());
594  //loop over labels
595  for (std::vector<std::string>::const_iterator labelIter= filterLabels.begin(); labelIter!=filterLabels.end(); labelIter++) {
596  edm::InputTag testTag(*labelIter,"",processname_);
597  if (verbose_) std::cout << v->getDenomPath() << "\t" << testTag.label() << "\t"
598  << testTag.process() << std::endl;
599  int testindex = triggerObj->filterIndex(testTag);
600  if ( !(testindex >= triggerObj->sizeFilters()) ) {
601  if (verbose_) std::cout << "found one! " << v->getDenomPath() << "\t"
602  << testTag.label() << std::endl;
603  filterTag = testTag;
604  v->setDenomLabel(*labelIter);
605  }
606  }
607  }
608  const int index = triggerObj->filterIndex(filterTag);
609  if (verbose_) std::cout << "filter index "<< index << " of that name "
610  << filterTag << std::endl;
611  if ( index >= triggerObj->sizeFilters() ) {
612  if (verbose_) std::cout << "WTF no index "<< index << " of that name "
613  << filterTag << std::endl;
614  continue; //
615  }
616  const trigger::Keys & k = triggerObj->filterKeys(index);
617  int numobj=-1;
618  for (trigger::Keys::const_iterator ki = k.begin(); ki !=k.end(); ++ki ) {
619  if (verbose_) cout << " filling HLT Denom " << v->getDenomPath() << "\t"
620  << toc[*ki].pt() << "\t" << toc[*ki].eta() << "\t"
621  << toc[*ki].phi() << std::endl;
622  if ( triggertype == trigger::TriggerJet
623  || triggertype == trigger::TriggerL1TauJet
624  || triggertype == trigger::TriggerL1CenJet
625  || triggertype == trigger::TriggerL1ForJet)
626  {
627  if (verbose_) cout << " filling HLT Denom" << v->getDenomPath()
628  << "\t" << " *kiDeno " << *ki << " NkiDenom "
629  << Ndenom<< " " << toc[*ki].pt() << "\t"
630  << toc[*ki].eta() << "\t" << toc[*ki].phi() << std::endl;
631 
632  numobj=*ki;
633  v->getEtDenomHisto()->Fill(toc[*ki].pt());
634  v->getEtaDenomHisto()->Fill(toc[*ki].eta());
635  v->getPhiDenomHisto()->Fill(toc[*ki].phi());
636  }
637  //--------------------------------------
638  else if ( triggertype == trigger::TriggerMET
639  || triggertype == trigger::TriggerL1ETM
640  || triggertype == trigger::TriggerTET){
641  v->getEtDenomHisto()->Fill(toc[*ki].pt());
642  v->getPhiDenomHisto()->Fill(toc[*ki].phi());
643  }
644  //-------------------------------------------
645  else if ( triggertype == trigger::TriggerTET
646  || triggertype == trigger::TriggerL1ETT){
647  v->getEtDenomHisto()->Fill(toc[*ki].pt());
648  v->getPhiDenomHisto()->Fill(toc[*ki].phi());
649  }
650  if ( numobj != -1) break;
651  }
652 
653  }//if denom passed
654  if(denompassed){
655  if (passed){
656  if(!hltconfigchanged) rate_Num->Fill(Nnum);
657  if (verbose_) std::cout << " N " << N << " trigger name " << v->getPath() << std::endl;
658  if (!l1accept) {
659  edm::LogInfo("HLTJetMETDQMSource") << "l1 seed path not accepted for hlt path "<< v->getPath() << "\t" << v->getl1Path();
660  }
661  edm::InputTag filterTag = v->getTag();
662  //const std::vector<std::string> filterLabels = hltConfig_.moduleLabels(v->getPath());
663  if (verbose_) std::cout << v->getPath() << "\t" << v->getLabel() << std::endl;
664  if (v->getLabel() == "dummy"){
665  const std::vector<std::string> filterLabels = hltConfig_.moduleLabels(v->getPath());
666  //loop over labels
667  for (std::vector<std::string>::const_iterator labelIter= filterLabels.begin(); labelIter!=filterLabels.end(); labelIter++) {
668  edm::InputTag testTag(*labelIter,"",processname_);
669  if (verbose_) std::cout << v->getPath() << "\t" << testTag.label() << "\t"
670  << testTag.process() << std::endl;
671  int testindex = triggerObj->filterIndex(testTag);
672  if ( !(testindex >= triggerObj->sizeFilters()) ) {
673  if (verbose_) std::cout << "found one! " << v->getPath() << "\t"
674  << testTag.label() << std::endl;
675  filterTag = testTag;
676  v->setLabel(*labelIter);
677  }
678  }
679  }
680  const int index = triggerObj->filterIndex(filterTag);
681  if (verbose_) std::cout << "filter index "<< index << " of that name "
682  << filterTag << std::endl;
683  if ( index >= triggerObj->sizeFilters() ) {
684  if (verbose_) std::cout << "WTF no index "<< index << " of that name "
685  << filterTag << std::endl;
686  continue; //
687  }
688  const trigger::Keys & k = triggerObj->filterKeys(index);
689  int numobj = -1;
690  for (trigger::Keys::const_iterator ki = k.begin(); ki !=k.end(); ++ki ) {
691 
692  if (verbose_) cout << " filling HLT " << v->getPath() << "\t"
693  << toc[*ki].pt() << "\t" << toc[*ki].eta()
694  << "\t" << toc[*ki].phi() << std::endl;
695  if ( triggertype == trigger::TriggerJet
696  || triggertype == trigger::TriggerL1TauJet
697  || triggertype == trigger::TriggerL1CenJet
698  || triggertype == trigger::TriggerL1ForJet)
699  {
700  if (verbose_) cout << " filling HLT " << v->getPath() << "\t"
701  << " *ki " << *ki << " Nki "<< N<< " "
702  << toc[*ki].pt() << "\t" << toc[*ki].eta()
703  << "\t" << toc[*ki].phi() << std::endl;
704  numobj=*ki;
705  v->getEtNumHisto()->Fill(toc[*ki].pt());
706  v->getEtaNumHisto()->Fill(toc[*ki].eta());
707  v->getPhiNumHisto()->Fill(toc[*ki].phi());
708  }
709  //--------------------------------------
710  else if ( triggertype == trigger::TriggerMET
711  || triggertype == trigger::TriggerL1ETM
712  || triggertype == trigger::TriggerTET){
713  v->getEtNumHisto()->Fill(toc[*ki].pt());
714  v->getPhiNumHisto()->Fill(toc[*ki].phi());
715  }
716  //-------------------------------------------
717  else if ( triggertype == trigger::TriggerTET
718  || triggertype == trigger::TriggerL1ETT){
719  v->getEtNumHisto()->Fill(toc[*ki].pt());
720  v->getPhiNumHisto()->Fill(toc[*ki].phi());
721  }
722  if ( numobj != -1) break;
723  }
724  }//end if passed
725  } //if denompassed
726  }
727  //----------plot efficiency---------------
728  if ( (nev_ % 1000) == 0 ){
729  if (verbose_) std::cout << " Calculating Eff.... " << nev_ << std::endl;
730 
731  //if (nev_ % 1000)
732  //if (verbose_) std::cout << "starting the luminosity block -----" << std::endl;
733 
734  TH1F *rate_denom=NULL;
735  TH1F *rate_num=NULL;
736  rate_denom = rate_Denom->getTH1F();
737  rate_num = rate_Num->getTH1F();
738  //rate_denom->Sumw2();rate_num->Sumw2();
739  if ((rate_denom->Integral() != 0.) && (rate_num->Integral() != 0.) ) {
740  if (verbose_) std::cout << " Nonzero rate summary -----" << std::endl;
741  for(int j=1; j <= rate_denom->GetXaxis()->GetNbins();j++ ){
742  double y1 = rate_num->GetBinContent(j);
743  double y2 = rate_denom->GetBinContent(j);
744  double eff = y2 > 0. ? y1/y2 : 0.;
745  rate_Eff->setBinContent(j, eff);
746  double y1err = rate_num->GetBinError(j);
747  double y2err = rate_denom->GetBinError(j);
748  double efferr = 0.0;
749 
750  if (y2 && y1 > 0.) efferr = (y1/y2)* sqrt ((y1err/y1)*(y1err/y1)
751  + (y2err/y2)*(y2err/y2)) ;
752  rate_Eff->setBinError(j, efferr);
753  }
754  }
755  for(PathInfoCollection::iterator v = hltPathsEff_.begin(); v!= hltPathsEff_.end(); ++v ) {
756  int triggertype = 0;
757  triggertype = v->getObjectType();
758  if (verbose_) std::cout << " triggertype ----- " << triggertype << std::endl;
759  if ( triggertype == trigger::TriggerJet
760  || triggertype == trigger::TriggerL1TauJet
761  || triggertype == trigger::TriggerL1CenJet
762  || triggertype == trigger::TriggerL1ForJet
763  || triggertype == trigger::TriggerL1Mu
764  || triggertype == trigger::TriggerMuon ){
765  TH1F *EtNum=NULL;
766  TH1F *EtaNum=NULL;
767  TH1F *PhiNum=NULL;
768  TH1F *EtDenom=NULL;
769  TH1F *EtaDenom=NULL;
770  TH1F *PhiDenom=NULL;
771 
772  EtNum= ( v->getEtNumHisto())->getTH1F() ;
773  EtaNum= ( v->getEtaNumHisto())->getTH1F() ;
774  PhiNum= ( v->getPhiNumHisto())->getTH1F() ;
775  EtDenom= ( v->getEtDenomHisto())->getTH1F() ;
776  EtaDenom= ( v->getEtaDenomHisto())->getTH1F() ;
777  PhiDenom= ( v->getPhiDenomHisto())->getTH1F() ;
778 
779  if ((EtNum->Integral() != 0.) && (EtDenom->Integral() != 0.) ) {
780  if (verbose_) std::cout << " Nonzero Jet Et -----" << std::endl;
781  for(int j=1; j <= EtNum->GetXaxis()->GetNbins();j++ ){
782  double y1 = EtNum->GetBinContent(j);
783  double y2 = EtDenom->GetBinContent(j);
784  double eff = y2 > 0. ? y1/y2 : 0.;
785 
786  v->getEtEffHisto()->setBinContent(j, eff);
787  double y1err = EtNum->GetBinError(j);
788  double y2err = EtDenom->GetBinError(j);
789  double efferr = 0.0;
790 
791  if (y2 && y1 > 0.) efferr = (y1/y2)* sqrt ((y1err/y1)*(y1err/y1)
792  + (y2err/y2)*(y2err/y2)) ;
793  v->getEtEffHisto()->setBinError(j, efferr);
794 
795  if(verbose_) std::cout << eff << " "<< efferr << " "
796  << y1 << " " << y2 << " "<< y1err << " " << y2err << std::endl;
797  }
798  }
799 
800  if (EtaNum->Integral() != 0. && EtaDenom->Integral() != 0. ) {
801  for(int j=1; j <= EtaNum->GetXaxis()->GetNbins();j++ ){
802  double y1 = EtaNum->GetBinContent(j);
803  double y2 = EtaDenom->GetBinContent(j);
804  double eff = y2 > 0. ? y1/y2 : 0.;
805  v->getEtaEffHisto()->setBinContent(j, eff);
806  double y1err = EtaNum->GetBinError(j);
807  double y2err = EtaDenom->GetBinError(j);
808  double efferr = 0.0;
809 
810  if (y2 && y1 > 0.) efferr = (y1/y2)* sqrt ((y1err/y1)*(y1err/y1)
811  + (y2err/y2)*(y2err/y2)) ;
812  v->getEtaEffHisto()->setBinError(j, efferr);
813  //
814  }
815  }
816  if (PhiNum->Integral() != 0. && PhiDenom->Integral() != 0. ) {
817  for(int j=1; j <= PhiNum->GetXaxis()->GetNbins();j++ ){
818  double y1 = PhiNum->GetBinContent(j);
819  double y2 = PhiDenom->GetBinContent(j);
820  double eff = y2 > 0. ? y1/y2 : 0.;
821  v->getPhiEffHisto()->setBinContent(j, eff);
822  double y1err = PhiNum->GetBinError(j);
823  double y2err = PhiDenom->GetBinError(j);
824  double efferr = 0.0;
825  if (y2 && y1 > 0.) efferr = (y1/y2)* sqrt ((y1err/y1)*(y1err/y1)
826  + (y2err/y2)*(y2err/y2)) ;
827  v->getPhiEffHisto()->setBinError(j, efferr);
828  //
829  }
830  }
831  }
832  if ( triggertype == trigger::TriggerMET
833  || triggertype == trigger::TriggerTET ){
834  TH1F *EtNum=NULL;
835  TH1F *PhiNum=NULL;
836  TH1F *EtDenom=NULL;
837  TH1F *PhiDenom=NULL;
838  EtNum= ( v->getEtNumHisto())->getTH1F() ;
839  PhiNum= ( v->getPhiNumHisto())->getTH1F() ;
840  EtDenom= ( v->getEtDenomHisto())->getTH1F() ;
841  PhiDenom= ( v->getPhiDenomHisto())->getTH1F() ;
842 
843  if (EtNum->Integral() != 0. && EtDenom->Integral() != 0. ) {
844  if (verbose_) std::cout << " Nonzero Met Et -----" << std::endl;
845  for(int j=1; j <= EtNum->GetXaxis()->GetNbins();j++ ){
846  double y1 = EtNum->GetBinContent(j);
847  double y2 = EtDenom->GetBinContent(j);
848  double eff = y2 > 0. ? y1/y2 : 0.;
849  v->getEtEffHisto()->setBinContent(j, eff);
850  double y1err = EtNum->GetBinError(j);
851  double y2err = EtDenom->GetBinError(j);
852  double efferr = 0.0;
853 
854  if (y2 && y1 > 0.) efferr = (y1/y2)* sqrt ((y1err/y1)*(y1err/y1)
855  + (y2err/y2)*(y2err/y2)) ;
856  v->getEtEffHisto()->setBinError(j, efferr);
857  }
858  }
859  if (PhiNum->Integral() != 0. && PhiDenom->Integral() != 0. ) {
860 
861  for(int j=1; j <= PhiNum->GetXaxis()->GetNbins();j++ ){
862  double y1 = PhiNum->GetBinContent(j);
863  double y2 = PhiDenom->GetBinContent(j);
864  double eff = y2 > 0. ? y1/y2 : 0.;
865  v->getPhiEffHisto()->setBinContent(j, eff);
866  double y1err = PhiNum->GetBinError(j);
867  double y2err = PhiDenom->GetBinError(j);
868  double efferr = 0.0;
869 
870  if (y2 && y1 > 0.) efferr = (y1/y2)* sqrt ((y1err/y1)*(y1err/y1)
871  + (y2err/y2)*(y2err/y2)) ;
872  v->getPhiEffHisto()->setBinError(j, efferr);
873  }
874  }
875  }// met triggers
876  }
877  }
878  }
879 }
int i
Definition: DBlmapReader.cc:9
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
Definition: Event.cc:208
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * rate_All
edm::InputTag triggerSummaryLabel_
edm::InputTag triggerResultsLabel_
enum start value shifted to 81 so as to avoid clashes with PDG codes
PathInfoCollection hltPathsAll_
#define NULL
Definition: scimark2.h:8
Strings::size_type size() const
Definition: TriggerNames.cc:39
T eta() const
double deltaR(double eta1, double phi1, double eta2, double phi2)
Definition: deltaR.h:19
void Fill(long long x)
T sqrt(T t)
Definition: SSEVec.h:28
HLTConfigProvider hltConfig_
MonitorElement * rate_Denom
int j
Definition: DBlmapReader.cc:9
TH1F * getTH1F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
PathInfoCollection hltPathswrtMu_
int k[5][pyjets_maxn]
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:83
std::vector< size_type > Keys
TH1F * getTH1F(void) const
MonitorElement * rate_Eff
MonitorElement * rate_Num
std::string const & label() const
Definition: InputTag.h:25
PathInfoCollection hltPathsEff_
MonitorElement * rate_All_L1
tuple cout
Definition: gather_cfg.py:41
MonitorElement * rate_wrtMu
std::string const & instance() const
Definition: InputTag.h:26
mathSSE::Vec4< T > v
std::vector< int > Vids
Definition: DDAxes.h:10
void HLTJetMETDQMSource::beginJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 884 of file HLTJetMETDQMSource.cc.

References dirname_, nev_, cmsCodeRules.cppFunctionSkipper::operator, DQMStore::rmdir(), and DQMStore::setCurrentFolder().

884  {
885  nev_ = 0;
886  DQMStore *dbe = 0;
887  dbe = Service<DQMStore>().operator->();
888  if (dbe) {
889  dbe->setCurrentFolder(dirname_);
890  dbe->rmdir(dirname_);
891  }
892  if (dbe) {
893  dbe->setCurrentFolder(dirname_);
894  }
895  /*
896  hltconfigchanged=false;
897  //if (!hltConfig_.init(processname_)) {
898  if (!hltConfig_.init(run, c, processname_, hltconfigchanged)) {
899  processname_ = "FU";
900  // if (!hltConfig_.init(processname_)){
901  if (!hltConfig_.init(run, c, processname_, hltconfigchanged))
902  LogError("HLTJetMETDQMSource") << "HLTConfigProvider failed to initialize." << std::endl;
903  }
904  // hltConfig_.dump("Triggers");
905  }
906  const unsigned int n(hltConfig_.size());
907  if (verbose_) std::cout << " hltConfig_.size() " << n << std::endl;
908  //-------------if plot all jetmet trigger pt,eta, phi-------------------
909  if (plotAll_){
910  if (verbose_) std::cout << " booking histos All " << std::endl;
911  std::string foldernm = "/All/";
912 
913  if (dbe) {
914 
915  dbe->setCurrentFolder(dirname_ + foldernm);
916  }
917  for (unsigned int j=0; j!=n; ++j) {
918  std::string pathname = hltConfig_.triggerName(j);
919  std::string l1pathname = "dummy";
920  //for (unsigned int i=0; i!=n; ++i) {
921  // std::cout << hltConfig_.triggerName(i) << std::endl;
922 
923  //std::string denompathname = hltConfig_.triggerName(i);
924  std::string denompathname = "";
925  unsigned int usedPresscale = 1;
926  unsigned int objectType = 0;
927  //int denomobjectType = 0;
928  //parse pathname to guess object type
929 
930  if ( pathname.find("Mu") && (pathname=="HLT_L1MuOpen"))
931  objectType = trigger::TriggerMuon;
932  else if (pathname.find("MET") != std::string::npos) objectType = trigger::TriggerMET;
933  else if (pathname.find("L1MET") != std::string::npos) objectType = trigger::TriggerL1ETM;
934  else if (pathname.find("SumET") != std::string::npos) objectType = trigger::TriggerTET;
935  else if (pathname.find("Jet") != std::string::npos) objectType = trigger::TriggerJet;
936  //if (pathname.find("HLT_Jet30") != std::string::npos) objectType = trigger::TriggerJet;
937  //if (pathname.find("HLT_Jet50") != std::string::npos) objectType = trigger::TriggerJet;
938  //if ((pathname.find("HLT_Mu3") != std::string::npos) || (pathname.find("HLT_L2Mu9") != std::string::npos) ) objectType = trigger::TriggerMuon;
939 
940  else continue;
941  //std::cout << "objecttye " << objectType << std::endl;
942  // find L1 condition for numpath with numpath objecttype
943 
944  // find PSet for L1 global seed for numpath,
945  // list module labels for numpath
946  std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
947 
948  for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
949  numpathmodule!= numpathmodules.end();
950  ++numpathmodule ) {
951 
952  // std::cout << pathname << "\t" << *numpathmodule << "\t"
953  //<< hltConfig_.moduleType(*numpathmodule) << std::endl;
954  if (hltConfig_.moduleType(*numpathmodule) == "HLTLevel1GTSeed") {
955  edm::ParameterSet l1GTPSet = hltConfig_.modulePSet(*numpathmodule);
956  //std::cout << l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression") << std::endl;
957  // l1pathname = l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression");
958  l1pathname = *numpathmodule;
959  break;
960  }
961  }
962  std::string filtername("dummy");
963  std::string Denomfiltername("denomdummy");
964  float ptMin = 0.0;
965  float ptMax = 300.0;
966  if (objectType != 0 )
967  hltPathsAll_.push_back(PathInfo(usedPresscale, denompathname,
968  pathname, l1pathname, filtername,
969  Denomfiltername, processname_,
970  objectType, ptMin, ptMax));
971  }
972  std::string histonm="JetMET_rate_All";
973  std::string histonmL1="JetMET_rate_All_L1";
974  std::string histot="JetMET Rate Summary";
975  std::string histoL1t="JetMET L1 Rate Summary";
976  rate_All = dbe->book1D(histonm.c_str(),histot.c_str(),
977  hltPathsAll_.size()+1,-0.5,hltPathsAll_.size()+1-0.5);
978 
979  rate_All_L1 = dbe->book1D(histonmL1.c_str(),histoL1t.c_str(),
980  hltPathsAll_.size()+1,-0.5,hltPathsAll_.size()+1-0.5);
981 
982  //rate_All->setBinLabel(hltPathsAll_.size()+1,"Rate",1);
983  unsigned int nname=0;
984  unsigned int nnameL1=0;
985  for(PathInfoCollection::iterator v = hltPathsAll_.begin(); v!= hltPathsAll_.end(); ++v ){
986  std::string labelnm("dummy");
987  labelnm = v->getPath();
988  rate_All->setBinLabel(nname+1,labelnm);
989  nname++;
990 
991  std::string labelnml1("dummyl1");
992  labelnml1 = v->getl1Path();
993  rate_All_L1->setBinLabel(nnameL1+1,labelnml1);
994  nnameL1++;
995  }
996  // now set up all of the histos for each path
997  for(PathInfoCollection::iterator v = hltPathsAll_.begin(); v!= hltPathsAll_.end(); ++v ) {
998  MonitorElement *N = 0;
999  MonitorElement *Et = 0;
1000  MonitorElement *EtaPhi = 0;
1001  MonitorElement *Eta = 0;
1002  MonitorElement *Phi = 0;
1003  MonitorElement *NL1 = 0;
1004  MonitorElement *l1Et = 0;
1005  MonitorElement *l1EtaPhi = 0;
1006  MonitorElement *l1Eta = 0;
1007  MonitorElement *l1Phi = 0;
1008 
1009  std::string labelname("dummy");
1010  labelname = v->getPath();
1011  std::string histoname(labelname+"");
1012  std::string title(labelname+"");
1013 
1014  double histEtaMax = 2.5;
1015  if (v->getObjectType() == trigger::TriggerMuon
1016  || v->getObjectType() == trigger::TriggerL1Mu) {
1017  histEtaMax = muonEtaMax_;
1018  nBins_ = 25 ;
1019  }
1020 
1021  else if (v->getObjectType() == trigger::TriggerJet
1022  || v->getObjectType() == trigger::TriggerL1CenJet
1023  || v->getObjectType() == trigger::TriggerL1ForJet ) {
1024  histEtaMax = jetEtaMax_;
1025  nBins_ = 60 ;
1026  }
1027 
1028  else if (v->getObjectType() == trigger::TriggerMET
1029  || v->getObjectType() == trigger::TriggerL1ETM ) {
1030  histEtaMax = 5.0;
1031  nBins_ = 60 ;
1032  }
1033 
1034  TString pathfolder = dirname_ + foldernm + v->getPath();
1035  dbe_->setCurrentFolder(pathfolder.Data());
1036  if (verbose_) std::cout << "Booking Histos in Directory " << pathfolder.Data() << std::endl;
1037  int nBins2D = 10;
1038 
1039 
1040  histoname = labelname+"_Et";
1041  title = labelname+" E_t";
1042  Et = dbe->book1D(histoname.c_str(),
1043  title.c_str(),nBins_,
1044  v->getPtMin(),
1045  v->getPtMax());
1046 
1047  histoname = labelname+"_l1Et";
1048  title = labelname+" L1 E_t";
1049  l1Et = dbe->book1D(histoname.c_str(),
1050  title.c_str(),nBins_,
1051  v->getPtMin(),
1052  v->getPtMax());
1053 
1054  if (labelname.find("Jet") != std::string::npos
1055  || labelname.find("Mu") != std::string::npos) {
1056 
1057  histoname = labelname+"_EtaPhi";
1058  title = labelname+" #eta vs #phi";
1059  EtaPhi = dbe->book2D(histoname.c_str(),
1060  title.c_str(),
1061  nBins2D,-histEtaMax,histEtaMax,
1062  nBins2D,-TMath::Pi(), TMath::Pi());
1063 
1064  histoname = labelname+"_l1EtaPhi";
1065  title = labelname+"L1 #eta vs L1 #phi";
1066  l1EtaPhi = dbe->book2D(histoname.c_str(),
1067  title.c_str(),
1068  nBins2D,-histEtaMax,histEtaMax,
1069  nBins2D,-TMath::Pi(), TMath::Pi());
1070 
1071  histoname = labelname+"_Phi";
1072  title = labelname+" #phi";
1073  Phi = dbe->book1D(histoname.c_str(),
1074  title.c_str(),
1075  nBins_,-TMath::Pi(), TMath::Pi());
1076 
1077  histoname = labelname+"_l1Phi";
1078  title = labelname+"L1 #phi";
1079  l1Phi = dbe->book1D(histoname.c_str(),
1080  title.c_str(),
1081  nBins_,-TMath::Pi(), TMath::Pi());
1082  histoname = labelname+"_Eta";
1083  title = labelname+" #eta";
1084  Eta = dbe->book1D(histoname.c_str(),
1085  title.c_str(),
1086  nBins_,-histEtaMax,histEtaMax
1087  );
1088 
1089  histoname = labelname+"_l1Eta";
1090  title = labelname+"L1 #eta";
1091  l1Eta = dbe->book1D(histoname.c_str(),
1092  title.c_str(),
1093  nBins_,-histEtaMax,histEtaMax);
1094  }
1095  else if( (labelname.find("MET") != std::string::npos)
1096  || (labelname.find("SumET") != std::string::npos) ){
1097  histoname = labelname+"_phi";
1098  title = labelname+" #phi";
1099  Phi = dbe->book1D(histoname.c_str(),
1100  title.c_str(),
1101  nBins_,-TMath::Pi(), TMath::Pi());
1102 
1103  histoname = labelname+"_l1Phi";
1104  title = labelname+"L1 #phi";
1105  l1Phi = dbe->book1D(histoname.c_str(),
1106  title.c_str(),
1107  nBins_,-TMath::Pi(), TMath::Pi());
1108 
1109  }
1110  v->setHistos( N, Et, EtaPhi, Eta, Phi, NL1, l1Et, l1EtaPhi,l1Eta, l1Phi);
1111  }
1112  if (verbose_) std::cout << "Done booking histos All " << std::endl;
1113  }
1114  //----------------plot all jetmet trigger wrt some muon trigger-----
1115  if (plotwrtMu_){
1116  if (verbose_) std::cout << " booking histos wrt Muon " << std::endl;
1117  std::string foldernm = "/wrtMuon/";
1118  if (dbe) {
1119  dbe->setCurrentFolder(dirname_ + foldernm);
1120  }
1121 
1122  for (unsigned int j=0; j!=n; ++j) {
1123  std::string pathname = hltConfig_.triggerName(j);
1124  std::string l1pathname = "dummy";
1125  //for (unsigned int i=0; i!=n; ++i)
1126  //{
1127  if (verbose_) std::cout << hltConfig_.triggerName(j) << std::endl;
1128  std::string denompathname = custompathnamemu_ ;
1129  int objectType = 0;
1130  int usedPresscale = 1;
1131  //int denomobjectType = 0;
1132  //parse pathname to guess object type
1133 
1134  if ( pathname.find("Mu") && (pathname=="HLT_L1MuOpen"))
1135  objectType = trigger::TriggerMuon;
1136  else if (pathname.find("MET") != std::string::npos) objectType = trigger::TriggerMET;
1137  else if (pathname.find("L1MET") != std::string::npos) objectType = trigger::TriggerL1ETM;
1138  else if (pathname.find("SumET") != std::string::npos) objectType = trigger::TriggerTET;
1139  else if (pathname.find("Jet") != std::string::npos) objectType = trigger::TriggerJet;
1140  //if (pathname.find("HLT_Jet30") != std::string::npos) objectType = trigger::TriggerJet;
1141  //if (pathname.find("HLT_Jet50") != std::string::npos) objectType = trigger::TriggerJet;
1142  //if ((pathname.find("HLT_Mu3") != std::string::npos) || (pathname.find("HLT_L2Mu9") != std::string::npos) ) objectType = trigger::TriggerMuon;
1143  else continue;
1144 
1145  // find L1 condition for numpath with numpath objecttype
1146  // find PSet for L1 global seed for numpath,
1147  // list module labels for numpath
1148  std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
1149 
1150  for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
1151  numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
1152  // std::cout << pathname << "\t" << *numpathmodule << "\t" << hltConfig_.moduleType(*numpathmodule) << std::endl;
1153  if (hltConfig_.moduleType(*numpathmodule) == "HLTLevel1GTSeed") {
1154  edm::ParameterSet l1GTPSet = hltConfig_.modulePSet(*numpathmodule);
1155  //std::cout << l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression") << std::endl;
1156  // l1pathname = l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression");
1157  l1pathname = *numpathmodule;
1158  break;
1159  }
1160  }
1161 
1162  std::string filtername("dummy");
1163  std::string Denomfiltername("denomdummy");
1164  float ptMin = 0.0;
1165  float ptMax = 300.0;
1166  if ( objectType != 0){
1167  // if (verbose_) std::cout << " wrt muon PathInfo(denompathname, pathname, l1pathname, filtername, denomfiltername, processname_, objectType, ptMin, ptMax " << denompathname << " "<< pathname << " "<< l1pathname << " " << filtername << " " << Denomfiltername << " " << processname_ << " " << objectType << " " << ptMin << " " << ptMax<< std::endl;
1168 
1169  hltPathswrtMu_.push_back(PathInfo(usedPresscale, denompathname, pathname, l1pathname,
1170  filtername, Denomfiltername, processname_,
1171  objectType, ptMin, ptMax));
1172  }
1173  }
1174 
1175  std::string histonm="JetMET_rate_wrt_" + custompathnamemu_ + "_Summary";
1176  std::string histt="JetMET Rate wrt " + custompathnamemu_ + "Summary";
1177  rate_wrtMu = dbe->book1D(histonm.c_str(),histt.c_str(),
1178  hltPathswrtMu_.size()+1,-0.5,hltPathswrtMu_.size()+1.0-0.5);
1179 
1180 
1181  int nname=0;
1182  for(PathInfoCollection::iterator v = hltPathswrtMu_.begin(); v!= hltPathswrtMu_.end(); ++v ){
1183  std::string labelnm("dummy");
1184  labelnm = v->getPath();
1185 
1186  rate_wrtMu->setBinLabel(nname+1,labelnm);
1187 
1188  nname++;
1189  }
1190  // now set up all of the histos for each path
1191  for(PathInfoCollection::iterator v = hltPathswrtMu_.begin(); v!= hltPathswrtMu_.end(); ++v ) {
1192  MonitorElement *NwrtMu = 0;
1193  MonitorElement *EtwrtMu = 0;
1194  MonitorElement *EtaPhiwrtMu = 0;
1195  MonitorElement *PhiwrtMu = 0;
1196 
1197  std::string labelname("dummy");
1198  labelname = v->getPath() + "_wrt_" + v->getDenomPath();
1199  std::string histoname(labelname+"");
1200  std::string title(labelname+"");
1201 
1202  double histEtaMax = 2.5;
1203  if (v->getObjectType() == trigger::TriggerMuon
1204  || v->getObjectType() == trigger::TriggerL1Mu) {
1205  histEtaMax = muonEtaMax_;nBins_ = 20 ;
1206  }
1207 
1208  else if (v->getObjectType() == trigger::TriggerJet
1209  || v->getObjectType() == trigger::TriggerL1CenJet
1210  || v->getObjectType() == trigger::TriggerL1ForJet ){
1211  histEtaMax = jetEtaMax_; nBins_ = 60 ;
1212  }
1213 
1214  else if (v->getObjectType() == trigger::TriggerMET
1215  || v->getObjectType() == trigger::TriggerL1ETM ) {
1216  histEtaMax = 5.0; nBins_ = 60 ;
1217  }
1218 
1219  TString pathfolder = dirname_ + foldernm + v->getPath();
1220  dbe_->setCurrentFolder(pathfolder.Data());
1221  if (verbose_) std::cout << "Booking Histos in Directory " << pathfolder.Data() << std::endl;
1222  int nBins2D = 10;
1223 
1224  //pathfolder = dirname_ + TString("/wrtMuon/") + v->getPath();
1225 
1226 
1227  histoname = labelname+"_Et_wrtMu";
1228  title = labelname+" E_t";
1229  EtwrtMu = dbe->book1D(histoname.c_str(),
1230  title.c_str(),nBins_,
1231  v->getPtMin(),
1232  v->getPtMax());
1233 
1234  if ((v->getPath()).find("Jet") != std::string::npos
1235  || (v->getPath()).find("Mu") != std::string::npos) {
1236  histoname = labelname+"_EtaPhi_wrtMu";
1237  title = labelname+" #eta vs #phi";
1238  EtaPhiwrtMu = dbe->book2D(histoname.c_str(),
1239  title.c_str(),
1240  nBins2D,-histEtaMax,histEtaMax,
1241  nBins2D,-TMath::Pi(), TMath::Pi());
1242 
1243 
1244  }
1245  else if( ((v->getPath()).find("MET") != std::string::npos)
1246  || ((v->getPath()).find("SumET") != std::string::npos) ){
1247  histoname = labelname+"_phi_wrtMu";
1248  title = labelname+" #phi";
1249  PhiwrtMu = dbe->book1D(histoname.c_str(),
1250  title.c_str(),
1251  nBins_,-TMath::Pi(), TMath::Pi());
1252  }
1253 
1254  v->setHistoswrtMu( NwrtMu, EtwrtMu, EtaPhiwrtMu, PhiwrtMu);
1255  }
1256  if (verbose_) std::cout << "Done booking histos wrt Muon " << std::endl;
1257  }
1259 
1260  if (plotEff_) {
1261  // plot efficiency for specified HLT path pairs
1262  if (verbose_) std::cout << " booking histos for Efficiency " << std::endl;
1263 
1264  std::string foldernm = "/Efficiency/";
1265  if (dbe) {
1266 
1267  dbe->setCurrentFolder(dirname_ + foldernm);
1268  }
1269  // now loop over denom/num path pairs specified in cfg,
1270  int countN = 0;
1271  for (std::vector<std::pair<std::string, std::string> >::iterator
1272  custompathnamepair = custompathnamepairs_.begin();
1273  custompathnamepair != custompathnamepairs_.end();
1274  ++custompathnamepair) {
1275 
1276  std::string denompathname = custompathnamepair->second;
1277  std::string pathname = custompathnamepair->first;
1278  int usedPrescale = prescUsed_[countN];
1279  if (verbose_) std::cout << " ------prescale used -----" << usedPrescale << std::endl;
1280  // check that these exist
1281  bool foundfirst = false;
1282  bool foundsecond = false;
1283  for (unsigned int i=0; i!=n; ++i) {
1284  if (hltConfig_.triggerName(i) == denompathname) foundsecond = true;
1285  if (hltConfig_.triggerName(i) == pathname) foundfirst = true;
1286  }
1287  if (!foundfirst) {
1288  edm::LogInfo("HLTJetMETDQMSource")
1289  << "pathname not found, ignoring "
1290  << pathname;
1291  continue;
1292  }
1293  if (!foundsecond) {
1294  edm::LogInfo("HLTJetMETDQMSource")
1295  << "denompathname not found, ignoring "
1296  << pathname;
1297  continue;
1298  }
1299  //if (verbose_) std::cout << pathname << "\t" << denompathname << std::endl;
1300  std::string l1pathname = "dummy";
1301  int objectType = 0;
1302  //int denomobjectType = 0;
1303  //parse pathname to guess object type
1304  if ( pathname.find("Mu") && (pathname=="HLT_L1MuOpen"))
1305  objectType = trigger::TriggerMuon;
1306  else if (pathname.find("MET") != std::string::npos) objectType = trigger::TriggerMET;
1307  else if (pathname.find("L1MET") != std::string::npos) objectType = trigger::TriggerL1ETM;
1308  else if (pathname.find("SumET") != std::string::npos) objectType = trigger::TriggerTET;
1309  else if (pathname.find("Jet") != std::string::npos) objectType = trigger::TriggerJet;
1310  //if (pathname.find("HLT_Jet30") != std::string::npos) objectType = trigger::TriggerJet;
1311  //if (pathname.find("HLT_Jet50") != std::string::npos) objectType = trigger::TriggerJet;
1312  //if ((pathname.find("HLT_Mu3") != std::string::npos) || (pathname.find("HLT_L2Mu9") != std::string::npos) ) objectType = trigger::TriggerMuon;
1313  else continue;
1314 
1315  // find L1 condition for numpath with numpath objecttype
1316  // find PSet for L1 global seed for numpath,
1317  // list module labels for numpath
1318 
1319  std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
1320 
1321  for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
1322  numpathmodule!= numpathmodules.end();
1323  ++numpathmodule ) {
1324  // if (verbose_) std::cout << pathname << "\t" << *numpathmodule << "\t" << hltConfig_.moduleType(*numpathmodule) << std::endl;
1325  if (hltConfig_.moduleType(*numpathmodule) == "HLTLevel1GTSeed"){
1326  edm::ParameterSet l1GTPSet = hltConfig_.modulePSet(*numpathmodule);
1327  // if (verbose_) std::cout << l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression") << std::endl;
1328  // l1pathname = l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression");
1329  l1pathname = *numpathmodule;
1330  //if (verbose_) std::cout << *numpathmodule << std::endl;
1331  break;
1332  }
1333  }
1334 
1335  std::string filtername("dummy");
1336  std::string Denomfiltername("denomdummy");
1337  float ptMin = 0.0;
1338  float ptMax = 300.0;
1339  if (objectType == trigger::TriggerMuon) ptMax = 300.0;
1340  if (objectType == trigger::TriggerJet) ptMax = 300.0;
1341  if (objectType == trigger::TriggerMET) ptMax = 300.0;
1342  if (objectType == trigger::TriggerTET) ptMax = 300.0;
1343 
1344 
1345  if (objectType != 0){
1346  if (verbose_) std::cout << " PathInfo(denompathname, pathname, l1pathname, filtername, Denomfiltername, processname_, objectType, ptMin, ptMax " << denompathname << " "<< pathname << " "<< l1pathname << " " << filtername << " " << Denomfiltername << " " << processname_ << " " << objectType << " " << ptMin << " " << ptMax<< std::endl;
1347 
1348 
1349  hltPathsEff_.push_back(PathInfo(usedPrescale, denompathname, pathname, l1pathname, filtername, Denomfiltername, processname_, objectType, ptMin, ptMax));
1350  }
1351 
1352  countN++;
1353  }
1354 
1355  std::string histonm="JetMET_Efficiency_Summary";
1356  std::string histonmDenom="Denom_passed_Summary";
1357  std::string histonmNum="Num_passed_Summary";
1358  rate_Denom = dbe->book1D(histonmDenom.c_str(),histonmDenom.c_str(),
1359  hltPathsEff_.size(),0,hltPathsEff_.size());
1360  rate_Num = dbe->book1D(histonmNum.c_str(),histonmNum.c_str(),
1361  hltPathsEff_.size(),-0.5,hltPathsEff_.size()+1-0.5);
1362  rate_Eff = dbe->book1D(histonm.c_str(),histonm.c_str(),
1363  hltPathsEff_.size(),-0.5,hltPathsEff_.size()+1-0.5);
1364 
1365  //rate_Eff = dbe_->bookProfile("Efficiency_Summary","Efficiency_Summary", hltPathsEff_.size(), -0.5, hltPathsEff_.size()-0.5, 1000, 0.0, 1.0);
1366  int nname=0;
1367  for(PathInfoCollection::iterator v = hltPathsEff_.begin(); v!= hltPathsEff_.end(); ++v ){
1368  std::string labelnm("dummy");
1369  std::string labeldenom("dummy");
1370  labelnm = v->getPath();
1371  labeldenom = v->getDenomPath();
1372  //rate_Eff->getTProfile()->GetXaxis()->SetBinLabel(nname+1,labelnm.c_str());
1373 
1374  rate_Eff->setBinLabel(nname+1,labelnm);
1375  rate_Denom->setBinLabel(nname+1,labeldenom);
1376  rate_Num->setBinLabel(nname+1,labelnm);
1377  nname++;
1378  }
1379  for(PathInfoCollection::iterator v = hltPathsEff_.begin(); v!= hltPathsEff_.end(); ++v ) {
1380  MonitorElement *NEff=0;
1381  MonitorElement *EtEff=0;
1382  MonitorElement *EtaEff=0;
1383  MonitorElement *PhiEff=0;
1384  MonitorElement *NNum =0;
1385  MonitorElement *EtNum =0;
1386  MonitorElement *EtaNum =0;
1387  MonitorElement *PhiNum =0;
1388  MonitorElement *NDenom=0;
1389  MonitorElement *EtDenom=0;
1390  MonitorElement *EtaDenom=0;
1391  MonitorElement *PhiDenom=0;
1392  std::string labelname("dummy");
1393  labelname = "Eff_" + v->getPath() + "_wrt_" + v->getDenomPath();
1394  std::string histoname(labelname+"");
1395  std::string title(labelname+"");
1396 
1397  double histEtaMax = 5.0;
1398  if (v->getObjectType() == trigger::TriggerMuon
1399  || v->getObjectType() == trigger::TriggerL1Mu) {
1400  histEtaMax = muonEtaMax_; nBins_ = 20 ;
1401  }
1402 
1403  else if (v->getObjectType() == trigger::TriggerJet
1404  || v->getObjectType() == trigger::TriggerL1CenJet
1405  || v->getObjectType() == trigger::TriggerL1ForJet ){
1406  histEtaMax = jetEtaMax_; nBins_ = 60 ;
1407  }
1408 
1409  else if (v->getObjectType() == trigger::TriggerMET
1410  || v->getObjectType() == trigger::TriggerL1ETM ) {
1411  histEtaMax = 5.0; nBins_ = 60 ;
1412  }
1413 
1414  TString pathfolder = dirname_ + foldernm + v->getPath();
1415  dbe_->setCurrentFolder(pathfolder.Data());
1416  if (verbose_) std::cout << "Booking Histos in Directory " << pathfolder.Data() << std::endl;
1417 
1418  //pathfolder = dirname_ + TString("/Eff/") + v->getPath();
1419  //int nBins2D = 10;
1420  histoname = labelname+"_Et_Eff";
1421  title = labelname+" E_t Eff";
1422  EtEff = dbe->book1D(histoname.c_str(),
1423  title.c_str(),nBins_,
1424  v->getPtMin(),
1425  v->getPtMax());
1426 
1427  histoname = labelname+"_Et_Num";
1428  title = labelname+" E_t Num";
1429  EtNum = dbe->book1D(histoname.c_str(),
1430  title.c_str(),nBins_,
1431  v->getPtMin(),
1432  v->getPtMax());
1433 
1434 
1435  histoname = labelname+"_Et_Denom";
1436  title = labelname+" E_t Denom";
1437  EtDenom = dbe->book1D(histoname.c_str(),
1438  title.c_str(),nBins_,
1439  v->getPtMin(),
1440  v->getPtMax());
1441 
1442  if ((v->getPath()).find("Jet") != std::string::npos
1443  || (v->getPath()).find("Mu") != std::string::npos) {
1444  histoname = labelname+"_Eta_Eff";
1445  title = labelname+" #eta Eff";
1446  EtaEff = dbe->book1D(histoname.c_str(),
1447  title.c_str(),
1448  nBins_,-histEtaMax,histEtaMax);
1449  histoname = labelname+"_Phi_Eff";
1450  title = labelname+" #phi Eff";
1451  PhiEff = dbe->book1D(histoname.c_str(),
1452  title.c_str(),
1453  nBins_,-TMath::Pi(), TMath::Pi());
1454 
1455  histoname = labelname+"_Eta_Num";
1456  title = labelname+" #eta Num";
1457  EtaNum = dbe->book1D(histoname.c_str(),
1458  title.c_str(),
1459  nBins_,-histEtaMax,histEtaMax);
1460  histoname = labelname+"_Phi_Num";
1461  title = labelname+" #phi Num";
1462  PhiNum = dbe->book1D(histoname.c_str(),
1463  title.c_str(),
1464  nBins_,-TMath::Pi(), TMath::Pi());
1465 
1466  histoname = labelname+"_Eta_Denom";
1467  title = labelname+" #eta Denom";
1468  EtaDenom = dbe->book1D(histoname.c_str(),
1469  title.c_str(),
1470  nBins_,-histEtaMax,histEtaMax);
1471  histoname = labelname+"_Phi_Denom";
1472  title = labelname+" #phi Denom";
1473  PhiDenom = dbe->book1D(histoname.c_str(),
1474  title.c_str(),
1475  nBins_,-TMath::Pi(), TMath::Pi());
1476  }
1477 
1478 
1479  else if( ((v->getPath()).find("MET") != std::string::npos)
1480  || ((v->getPath()).find("SumET") != std::string::npos) ){
1481 
1482  histoname = labelname+"_Phi_Eff";
1483  title = labelname+" #phi Eff";
1484  PhiEff = dbe->book1D(histoname.c_str(),
1485  title.c_str(),
1486  nBins_,-TMath::Pi(), TMath::Pi());
1487 
1488  histoname = labelname+"_Phi_Num";
1489  title = labelname+" #phi Num";
1490  PhiNum = dbe->book1D(histoname.c_str(),
1491  title.c_str(),
1492  nBins_,-TMath::Pi(), TMath::Pi());
1493 
1494  histoname = labelname+"_Phi_Denom";
1495  title = labelname+" #phi Denom";
1496  PhiDenom = dbe->book1D(histoname.c_str(),
1497  title.c_str(),
1498  nBins_,-TMath::Pi(), TMath::Pi());
1499 
1500  }
1501 
1502  v->setHistosEff( NEff, EtEff, EtaEff, PhiEff, NNum, EtNum, EtaNum, PhiNum, NDenom, EtDenom, EtaDenom, PhiDenom);
1503 
1504  }
1505  if (verbose_) std::cout << "Done booking histos for Efficiency " << std::endl;
1506  }
1507 
1508 
1509  */
1510 }
void HLTJetMETDQMSource::beginLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
)
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 2176 of file HLTJetMETDQMSource.cc.

2177  {
2178 }
void HLTJetMETDQMSource::beginRun ( const edm::Run run,
const edm::EventSetup c 
)
privatevirtual

from begin job

Reimplemented from edm::EDAnalyzer.

Definition at line 1513 of file HLTJetMETDQMSource.cc.

References DQMStore::book1D(), DQMStore::book2D(), gather_cfg::cout, custompathnamemu_, custompathnamepairs_, dbe_, dirname_, reco::tau::disc::Eta(), spr::find(), SingleJetValidation_cfi::foldernm, hltConfig_, hltconfigchanged, hltPathsAll_, hltPathsEff_, hltPathswrtMu_, i, edm::RunBase::id(), HLTConfigProvider::init(), j, jetEtaMax_, HLTConfigProvider::moduleLabels(), HLTConfigProvider::modulePSet(), HLTConfigProvider::moduleType(), muonEtaMax_, MultiGaussianStateTransform::N, n, nBins_, cmsCodeRules.cppFunctionSkipper::operator, colinearityKinematic::Phi, Pi, plotAll_, plotEff_, plotwrtMu_, prescUsed_, processname_, jptDQMConfig_cff::ptMax, PtMinSelector_cfg::ptMin, rate_All, rate_All_L1, rate_Denom, rate_Eff, rate_Num, rate_wrtMu, MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), HLTConfigProvider::size(), indexGen::title, trigger::TriggerJet, trigger::TriggerL1CenJet, trigger::TriggerL1ETM, trigger::TriggerL1ForJet, trigger::TriggerL1Mu, trigger::TriggerMET, trigger::TriggerMuon, HLTConfigProvider::triggerName(), trigger::TriggerTET, v, and verbose_.

1513  {
1514 
1515  if (verbose_) std::cout << "beginRun, run " << run.id() << std::endl;
1516 
1517  /*
1518  // HLT config does not change within runs!
1519  bool changed(true);
1520 
1521 
1522  //if (hltConfig_.init(iEvent,processname_,changed)) {
1523  if (hltConfig_.init(run,c,processname_,changed)) {
1524  if (changed) {
1525  hltconfigchanged=true;
1526  //if(verbose_)
1527  //hltConfig_.dump("Triggers");
1528  LogWarning("HLTJetMETDQMSource") << "HLTJetMETDQMSource:analyze: The number of valid triggers has changed since beginning of job." << std::endl;
1529  // << "Processing of events halted for summary histograms" << std::endl;
1530  //<< "Summary histograms do not support changing configurations." << std::endl
1531 
1532  }
1533  }
1534  else {
1535  LogError("HLTJetMETDQMSource") << "HLT config init error" << std::endl;
1536  return;
1537  }
1538  if ( hltConfig_.size() <= 0 ) {
1539  LogError("HLTJetMETDQMSource") << "HLT config size error" << std::endl;
1540  return;
1541  }
1542  // if ( currun != runno) runchanged=true;
1543 
1544 */
1546 
1547  hltconfigchanged=false;
1548  //if (!hltConfig_.init(processname_)) {
1549  if (!hltConfig_.init(run, c, processname_, hltconfigchanged)) {
1550  processname_ = "FU";
1551  // if (!hltConfig_.init(processname_)){
1552  if (!hltConfig_.init(run, c, processname_, hltconfigchanged)) {
1553  LogError("HLTJetMETDQMSource") << "HLTConfigProvider failed to initialize." << std::endl;
1554  }
1555  // hltConfig_.dump("Triggers");
1556  }
1557 
1558  DQMStore *dbe = 0;
1559  dbe = Service<DQMStore>().operator->();
1560 
1561  if (dbe) {
1562  dbe->setCurrentFolder(dirname_);
1563  }
1564 
1565  const unsigned int n(hltConfig_.size());
1566  if (verbose_) std::cout << " hltConfig_.size() " << n << std::endl;
1567  //-------------if plot all jetmet trigger pt,eta, phi-------------------
1568 
1569 
1570  if (plotAll_){
1571  if (verbose_) std::cout << " booking histos All " << std::endl;
1572  std::string foldernm = "/All/";
1573 
1574  if (dbe) {
1575 
1576  dbe->setCurrentFolder(dirname_ + foldernm);
1577  }
1578  for (unsigned int j=0; j!=n; ++j) {
1579  std::string pathname = hltConfig_.triggerName(j);
1580  std::string l1pathname = "dummy";
1581  //for (unsigned int i=0; i!=n; ++i) {
1582  // std::cout << hltConfig_.triggerName(i) << std::endl;
1583 
1584  //std::string denompathname = hltConfig_.triggerName(i);
1585  std::string denompathname = "";
1586  unsigned int usedPresscale = 1;
1587  unsigned int objectType = 0;
1588  //int denomobjectType = 0;
1589  //parse pathname to guess object type
1590 
1591  if ( pathname.find("Mu") && (pathname=="HLT_L1MuOpen"))
1592  objectType = trigger::TriggerMuon;
1593  else if (pathname.find("MET") != std::string::npos) objectType = trigger::TriggerMET;
1594  else if (pathname.find("L1MET") != std::string::npos) objectType = trigger::TriggerL1ETM;
1595  else if (pathname.find("SumET") != std::string::npos) objectType = trigger::TriggerTET;
1596  else if (pathname.find("Jet") != std::string::npos) objectType = trigger::TriggerJet;
1597  //if (pathname.find("HLT_Jet30") != std::string::npos) objectType = trigger::TriggerJet;
1598  //if (pathname.find("HLT_Jet50") != std::string::npos) objectType = trigger::TriggerJet;
1599  //if ((pathname.find("HLT_Mu3") != std::string::npos) || (pathname.find("HLT_L2Mu9") != std::string::npos) ) objectType = trigger::TriggerMuon;
1600 
1601  else continue;
1602  //std::cout << "objecttye " << objectType << std::endl;
1603  // find L1 condition for numpath with numpath objecttype
1604 
1605  // find PSet for L1 global seed for numpath,
1606  // list module labels for numpath
1607  std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
1608 
1609  for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
1610  numpathmodule!= numpathmodules.end();
1611  ++numpathmodule ) {
1612 
1613  // std::cout << pathname << "\t" << *numpathmodule << "\t"
1614  //<< hltConfig_.moduleType(*numpathmodule) << std::endl;
1615  if (hltConfig_.moduleType(*numpathmodule) == "HLTLevel1GTSeed") {
1616  edm::ParameterSet l1GTPSet = hltConfig_.modulePSet(*numpathmodule);
1617  //std::cout << l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression") << std::endl;
1618  // l1pathname = l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression");
1619  l1pathname = *numpathmodule;
1620  break;
1621  }
1622  }
1623  std::string filtername("dummy");
1624  std::string Denomfiltername("denomdummy");
1625  float ptMin = 0.0;
1626  float ptMax = 300.0;
1627  if (objectType != 0 )
1628  hltPathsAll_.push_back(PathInfo(usedPresscale, denompathname,
1629  pathname, l1pathname, filtername,
1630  Denomfiltername, processname_,
1631  objectType, ptMin, ptMax));
1632  }
1633  std::string histonm="JetMET_rate_All";
1634  std::string histonmL1="JetMET_rate_All_L1";
1635  std::string histot="JetMET Rate Summary";
1636  std::string histoL1t="JetMET L1 Rate Summary";
1637  rate_All = dbe->book1D(histonm.c_str(),histot.c_str(),
1638  hltPathsAll_.size()+1,-0.5,hltPathsAll_.size()+1-0.5);
1639 
1640  rate_All_L1 = dbe->book1D(histonmL1.c_str(),histoL1t.c_str(),
1641  hltPathsAll_.size()+1,-0.5,hltPathsAll_.size()+1-0.5);
1642 
1643  //rate_All->setBinLabel(hltPathsAll_.size()+1,"Rate",1);
1644  unsigned int nname=0;
1645  unsigned int nnameL1=0;
1646  for(PathInfoCollection::iterator v = hltPathsAll_.begin(); v!= hltPathsAll_.end(); ++v ){
1647  std::string labelnm("dummy");
1648  labelnm = v->getPath();
1649  rate_All->setBinLabel(nname+1,labelnm);
1650  nname++;
1651 
1652  std::string labelnml1("dummyl1");
1653  labelnml1 = v->getl1Path();
1654  rate_All_L1->setBinLabel(nnameL1+1,labelnml1);
1655  nnameL1++;
1656  }
1657  // now set up all of the histos for each path
1658  for(PathInfoCollection::iterator v = hltPathsAll_.begin(); v!= hltPathsAll_.end(); ++v ) {
1659  MonitorElement *N = 0;
1660  MonitorElement *Et = 0;
1661  MonitorElement *EtaPhi = 0;
1662  MonitorElement *Eta = 0;
1663  MonitorElement *Phi = 0;
1664  MonitorElement *NL1 = 0;
1665  MonitorElement *l1Et = 0;
1666  MonitorElement *l1EtaPhi = 0;
1667  MonitorElement *l1Eta = 0;
1668  MonitorElement *l1Phi = 0;
1669 
1670  std::string labelname("dummy");
1671  labelname = v->getPath();
1672  std::string histoname(labelname+"");
1673  std::string title(labelname+"");
1674 
1675  double histEtaMax = 2.5;
1676  if (v->getObjectType() == trigger::TriggerMuon
1677  || v->getObjectType() == trigger::TriggerL1Mu) {
1678  histEtaMax = muonEtaMax_;
1679  nBins_ = 25 ;
1680  }
1681 
1682  else if (v->getObjectType() == trigger::TriggerJet
1683  || v->getObjectType() == trigger::TriggerL1CenJet
1684  || v->getObjectType() == trigger::TriggerL1ForJet ) {
1685  histEtaMax = jetEtaMax_;
1686  nBins_ = 60 ;
1687  }
1688 
1689  else if (v->getObjectType() == trigger::TriggerMET
1690  || v->getObjectType() == trigger::TriggerL1ETM ) {
1691  histEtaMax = 5.0;
1692  nBins_ = 60 ;
1693  }
1694 
1695  TString pathfolder = dirname_ + foldernm + v->getPath();
1696  dbe_->setCurrentFolder(pathfolder.Data());
1697  if (verbose_) std::cout << "Booking Histos in Directory " << pathfolder.Data() << std::endl;
1698  int nBins2D = 10;
1699 
1700 
1701  histoname = labelname+"_Et";
1702  title = labelname+" E_t";
1703  Et = dbe->book1D(histoname.c_str(),
1704  title.c_str(),nBins_,
1705  v->getPtMin(),
1706  v->getPtMax());
1707 
1708  histoname = labelname+"_l1Et";
1709  title = labelname+" L1 E_t";
1710  l1Et = dbe->book1D(histoname.c_str(),
1711  title.c_str(),nBins_,
1712  v->getPtMin(),
1713  v->getPtMax());
1714 
1715  if (labelname.find("Jet") != std::string::npos
1716  || labelname.find("Mu") != std::string::npos) {
1717 
1718  histoname = labelname+"_EtaPhi";
1719  title = labelname+" #eta vs #phi";
1720  EtaPhi = dbe->book2D(histoname.c_str(),
1721  title.c_str(),
1722  nBins2D,-histEtaMax,histEtaMax,
1723  nBins2D,-TMath::Pi(), TMath::Pi());
1724 
1725  histoname = labelname+"_l1EtaPhi";
1726  title = labelname+"L1 #eta vs L1 #phi";
1727  l1EtaPhi = dbe->book2D(histoname.c_str(),
1728  title.c_str(),
1729  nBins2D,-histEtaMax,histEtaMax,
1730  nBins2D,-TMath::Pi(), TMath::Pi());
1731 
1732  histoname = labelname+"_Phi";
1733  title = labelname+" #phi";
1734  Phi = dbe->book1D(histoname.c_str(),
1735  title.c_str(),
1736  nBins_,-TMath::Pi(), TMath::Pi());
1737 
1738  histoname = labelname+"_l1Phi";
1739  title = labelname+"L1 #phi";
1740  l1Phi = dbe->book1D(histoname.c_str(),
1741  title.c_str(),
1742  nBins_,-TMath::Pi(), TMath::Pi());
1743  histoname = labelname+"_Eta";
1744  title = labelname+" #eta";
1745  Eta = dbe->book1D(histoname.c_str(),
1746  title.c_str(),
1747  nBins_,-histEtaMax,histEtaMax
1748  );
1749 
1750  histoname = labelname+"_l1Eta";
1751  title = labelname+"L1 #eta";
1752  l1Eta = dbe->book1D(histoname.c_str(),
1753  title.c_str(),
1754  nBins_,-histEtaMax,histEtaMax);
1755  }
1756  else if( (labelname.find("MET") != std::string::npos)
1757  || (labelname.find("SumET") != std::string::npos) ){
1758  histoname = labelname+"_phi";
1759  title = labelname+" #phi";
1760  Phi = dbe->book1D(histoname.c_str(),
1761  title.c_str(),
1762  nBins_,-TMath::Pi(), TMath::Pi());
1763 
1764  histoname = labelname+"_l1Phi";
1765  title = labelname+"L1 #phi";
1766  l1Phi = dbe->book1D(histoname.c_str(),
1767  title.c_str(),
1768  nBins_,-TMath::Pi(), TMath::Pi());
1769 
1770  }
1771  v->setHistos( N, Et, EtaPhi, Eta, Phi, NL1, l1Et, l1EtaPhi,l1Eta, l1Phi);
1772  }
1773  if (verbose_) std::cout << "Done booking histos All " << std::endl;
1774  }
1775  //----------------plot all jetmet trigger wrt some muon trigger-----
1776  if (plotwrtMu_){
1777  if (verbose_) std::cout << " booking histos wrt Muon " << std::endl;
1778  std::string foldernm = "/wrtMuon/";
1779  if (dbe) {
1780  dbe->setCurrentFolder(dirname_ + foldernm);
1781  }
1782 
1783  for (unsigned int j=0; j!=n; ++j) {
1784  std::string pathname = hltConfig_.triggerName(j);
1785  std::string l1pathname = "dummy";
1786  //for (unsigned int i=0; i!=n; ++i)
1787  //{
1788  if (verbose_) std::cout << hltConfig_.triggerName(j) << std::endl;
1789  std::string denompathname = custompathnamemu_ ;
1790  int objectType = 0;
1791  int usedPresscale = 1;
1792  //int denomobjectType = 0;
1793  //parse pathname to guess object type
1794 
1795  if ( pathname.find("Mu") && (pathname=="HLT_L1MuOpen"))
1796  objectType = trigger::TriggerMuon;
1797  else if (pathname.find("MET") != std::string::npos) objectType = trigger::TriggerMET;
1798  else if (pathname.find("L1MET") != std::string::npos) objectType = trigger::TriggerL1ETM;
1799  else if (pathname.find("SumET") != std::string::npos) objectType = trigger::TriggerTET;
1800  else if (pathname.find("Jet") != std::string::npos) objectType = trigger::TriggerJet;
1801  //if (pathname.find("HLT_Jet30") != std::string::npos) objectType = trigger::TriggerJet;
1802  //if (pathname.find("HLT_Jet50") != std::string::npos) objectType = trigger::TriggerJet;
1803  //if ((pathname.find("HLT_Mu3") != std::string::npos) || (pathname.find("HLT_L2Mu9") != std::string::npos) ) objectType = trigger::TriggerMuon;
1804  else continue;
1805 
1806  // find L1 condition for numpath with numpath objecttype
1807  // find PSet for L1 global seed for numpath,
1808  // list module labels for numpath
1809  std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
1810 
1811  for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
1812  numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
1813  // std::cout << pathname << "\t" << *numpathmodule << "\t" << hltConfig_.moduleType(*numpathmodule) << std::endl;
1814  if (hltConfig_.moduleType(*numpathmodule) == "HLTLevel1GTSeed") {
1815  edm::ParameterSet l1GTPSet = hltConfig_.modulePSet(*numpathmodule);
1816  //std::cout << l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression") << std::endl;
1817  // l1pathname = l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression");
1818  l1pathname = *numpathmodule;
1819  break;
1820  }
1821  }
1822 
1823  std::string filtername("dummy");
1824  std::string Denomfiltername("denomdummy");
1825  float ptMin = 0.0;
1826  float ptMax = 300.0;
1827  if ( objectType != 0){
1828  // if (verbose_) std::cout << " wrt muon PathInfo(denompathname, pathname, l1pathname, filtername, denomfiltername, processname_, objectType, ptMin, ptMax " << denompathname << " "<< pathname << " "<< l1pathname << " " << filtername << " " << Denomfiltername << " " << processname_ << " " << objectType << " " << ptMin << " " << ptMax<< std::endl;
1829 
1830  hltPathswrtMu_.push_back(PathInfo(usedPresscale, denompathname, pathname, l1pathname,
1831  filtername, Denomfiltername, processname_,
1832  objectType, ptMin, ptMax));
1833  }
1834  }
1835 
1836  std::string histonm="JetMET_rate_wrt_" + custompathnamemu_ + "_Summary";
1837  std::string histt="JetMET Rate wrt " + custompathnamemu_ + "Summary";
1838  rate_wrtMu = dbe->book1D(histonm.c_str(),histt.c_str(),
1839  hltPathswrtMu_.size()+1,-0.5,hltPathswrtMu_.size()+1.0-0.5);
1840 
1841 
1842  int nname=0;
1843  for(PathInfoCollection::iterator v = hltPathswrtMu_.begin(); v!= hltPathswrtMu_.end(); ++v ){
1844  std::string labelnm("dummy");
1845  labelnm = v->getPath();
1846 
1847  rate_wrtMu->setBinLabel(nname+1,labelnm);
1848 
1849  nname++;
1850  }
1851  // now set up all of the histos for each path
1852  for(PathInfoCollection::iterator v = hltPathswrtMu_.begin(); v!= hltPathswrtMu_.end(); ++v ) {
1853  MonitorElement *NwrtMu = 0;
1854  MonitorElement *EtwrtMu = 0;
1855  MonitorElement *EtaPhiwrtMu = 0;
1856  MonitorElement *PhiwrtMu = 0;
1857 
1858  std::string labelname("dummy");
1859  labelname = v->getPath() + "_wrt_" + v->getDenomPath();
1860  std::string histoname(labelname+"");
1861  std::string title(labelname+"");
1862 
1863  double histEtaMax = 2.5;
1864  if (v->getObjectType() == trigger::TriggerMuon
1865  || v->getObjectType() == trigger::TriggerL1Mu) {
1866  histEtaMax = muonEtaMax_;nBins_ = 20 ;
1867  }
1868 
1869  else if (v->getObjectType() == trigger::TriggerJet
1870  || v->getObjectType() == trigger::TriggerL1CenJet
1871  || v->getObjectType() == trigger::TriggerL1ForJet ){
1872  histEtaMax = jetEtaMax_; nBins_ = 60 ;
1873  }
1874 
1875  else if (v->getObjectType() == trigger::TriggerMET
1876  || v->getObjectType() == trigger::TriggerL1ETM ) {
1877  histEtaMax = 5.0; nBins_ = 60 ;
1878  }
1879 
1880  TString pathfolder = dirname_ + foldernm + v->getPath();
1881  dbe_->setCurrentFolder(pathfolder.Data());
1882  if (verbose_) std::cout << "Booking Histos in Directory " << pathfolder.Data() << std::endl;
1883  int nBins2D = 10;
1884 
1885  //pathfolder = dirname_ + TString("/wrtMuon/") + v->getPath();
1886 
1887 
1888  histoname = labelname+"_Et_wrtMu";
1889  title = labelname+" E_t";
1890  EtwrtMu = dbe->book1D(histoname.c_str(),
1891  title.c_str(),nBins_,
1892  v->getPtMin(),
1893  v->getPtMax());
1894 
1895  if ((v->getPath()).find("Jet") != std::string::npos
1896  || (v->getPath()).find("Mu") != std::string::npos) {
1897  histoname = labelname+"_EtaPhi_wrtMu";
1898  title = labelname+" #eta vs #phi";
1899  EtaPhiwrtMu = dbe->book2D(histoname.c_str(),
1900  title.c_str(),
1901  nBins2D,-histEtaMax,histEtaMax,
1902  nBins2D,-TMath::Pi(), TMath::Pi());
1903 
1904 
1905  }
1906  else if( ((v->getPath()).find("MET") != std::string::npos)
1907  || ((v->getPath()).find("SumET") != std::string::npos) ){
1908  histoname = labelname+"_phi_wrtMu";
1909  title = labelname+" #phi";
1910  PhiwrtMu = dbe->book1D(histoname.c_str(),
1911  title.c_str(),
1912  nBins_,-TMath::Pi(), TMath::Pi());
1913  }
1914 
1915  v->setHistoswrtMu( NwrtMu, EtwrtMu, EtaPhiwrtMu, PhiwrtMu);
1916  }
1917  if (verbose_) std::cout << "Done booking histos wrt Muon " << std::endl;
1918  }
1920 
1921  if (plotEff_) {
1922  // plot efficiency for specified HLT path pairs
1923  if (verbose_) std::cout << " booking histos for Efficiency " << std::endl;
1924 
1925  std::string foldernm = "/Efficiency/";
1926  if (dbe) {
1927 
1928  dbe->setCurrentFolder(dirname_ + foldernm);
1929  }
1930  // now loop over denom/num path pairs specified in cfg,
1931  int countN = 0;
1932  for (std::vector<std::pair<std::string, std::string> >::iterator
1933  custompathnamepair = custompathnamepairs_.begin();
1934  custompathnamepair != custompathnamepairs_.end();
1935  ++custompathnamepair) {
1936 
1937  std::string denompathname = custompathnamepair->second;
1938  std::string pathname = custompathnamepair->first;
1939  int usedPrescale = prescUsed_[countN];
1940  if (verbose_) std::cout << " ------prescale used -----" << usedPrescale << std::endl;
1941  // check that these exist
1942  bool foundfirst = false;
1943  bool foundsecond = false;
1944  for (unsigned int i=0; i!=n; ++i) {
1945  if (hltConfig_.triggerName(i) == denompathname) foundsecond = true;
1946  if (hltConfig_.triggerName(i) == pathname) foundfirst = true;
1947  }
1948  if (!foundfirst) {
1949  edm::LogInfo("HLTJetMETDQMSource")
1950  << "pathname not found, ignoring "
1951  << pathname;
1952  continue;
1953  }
1954  if (!foundsecond) {
1955  edm::LogInfo("HLTJetMETDQMSource")
1956  << "denompathname not found, ignoring "
1957  << pathname;
1958  continue;
1959  }
1960  //if (verbose_) std::cout << pathname << "\t" << denompathname << std::endl;
1961  std::string l1pathname = "dummy";
1962  int objectType = 0;
1963  //int denomobjectType = 0;
1964  //parse pathname to guess object type
1965  if ( pathname.find("Mu") && (pathname=="HLT_L1MuOpen"))
1966  objectType = trigger::TriggerMuon;
1967  else if (pathname.find("MET") != std::string::npos) objectType = trigger::TriggerMET;
1968  else if (pathname.find("L1MET") != std::string::npos) objectType = trigger::TriggerL1ETM;
1969  else if (pathname.find("SumET") != std::string::npos) objectType = trigger::TriggerTET;
1970  else if (pathname.find("Jet") != std::string::npos) objectType = trigger::TriggerJet;
1971  //if (pathname.find("HLT_Jet30") != std::string::npos) objectType = trigger::TriggerJet;
1972  //if (pathname.find("HLT_Jet50") != std::string::npos) objectType = trigger::TriggerJet;
1973  //if ((pathname.find("HLT_Mu3") != std::string::npos) || (pathname.find("HLT_L2Mu9") != std::string::npos) ) objectType = trigger::TriggerMuon;
1974  else continue;
1975 
1976  // find L1 condition for numpath with numpath objecttype
1977  // find PSet for L1 global seed for numpath,
1978  // list module labels for numpath
1979 
1980  std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
1981 
1982  for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
1983  numpathmodule!= numpathmodules.end();
1984  ++numpathmodule ) {
1985  // if (verbose_) std::cout << pathname << "\t" << *numpathmodule << "\t" << hltConfig_.moduleType(*numpathmodule) << std::endl;
1986  if (hltConfig_.moduleType(*numpathmodule) == "HLTLevel1GTSeed"){
1987  edm::ParameterSet l1GTPSet = hltConfig_.modulePSet(*numpathmodule);
1988  // if (verbose_) std::cout << l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression") << std::endl;
1989  // l1pathname = l1GTPSet.getParameter<std::string>("L1SeedsLogicalExpression");
1990  l1pathname = *numpathmodule;
1991  //if (verbose_) std::cout << *numpathmodule << std::endl;
1992  break;
1993  }
1994  }
1995 
1996  std::string filtername("dummy");
1997  std::string Denomfiltername("denomdummy");
1998  float ptMin = 0.0;
1999  float ptMax = 300.0;
2000  if (objectType == trigger::TriggerMuon) ptMax = 300.0;
2001  if (objectType == trigger::TriggerJet) ptMax = 300.0;
2002  if (objectType == trigger::TriggerMET) ptMax = 300.0;
2003  if (objectType == trigger::TriggerTET) ptMax = 300.0;
2004 
2005 
2006  if (objectType != 0){
2007  if (verbose_) std::cout << " PathInfo(denompathname, pathname, l1pathname, filtername, Denomfiltername, processname_, objectType, ptMin, ptMax " << denompathname << " "<< pathname << " "<< l1pathname << " " << filtername << " " << Denomfiltername << " " << processname_ << " " << objectType << " " << ptMin << " " << ptMax<< std::endl;
2008 
2009 
2010  hltPathsEff_.push_back(PathInfo(usedPrescale, denompathname, pathname, l1pathname, filtername, Denomfiltername, processname_, objectType, ptMin, ptMax));
2011  }
2012 
2013  countN++;
2014  }
2015 
2016  std::string histonm="JetMET_Efficiency_Summary";
2017  std::string histonmDenom="Denom_passed_Summary";
2018  std::string histonmNum="Num_passed_Summary";
2019  rate_Denom = dbe->book1D(histonmDenom.c_str(),histonmDenom.c_str(),
2020  hltPathsEff_.size(),0,hltPathsEff_.size());
2021  rate_Num = dbe->book1D(histonmNum.c_str(),histonmNum.c_str(),
2022  hltPathsEff_.size(),-0.5,hltPathsEff_.size()+1-0.5);
2023  rate_Eff = dbe->book1D(histonm.c_str(),histonm.c_str(),
2024  hltPathsEff_.size(),-0.5,hltPathsEff_.size()+1-0.5);
2025 
2026  //rate_Eff = dbe_->bookProfile("Efficiency_Summary","Efficiency_Summary", hltPathsEff_.size(), -0.5, hltPathsEff_.size()-0.5, 1000, 0.0, 1.0);
2027  int nname=0;
2028  for(PathInfoCollection::iterator v = hltPathsEff_.begin(); v!= hltPathsEff_.end(); ++v ){
2029  std::string labelnm("dummy");
2030  std::string labeldenom("dummy");
2031  labelnm = v->getPath();
2032  labeldenom = v->getDenomPath();
2033  //rate_Eff->getTProfile()->GetXaxis()->SetBinLabel(nname+1,labelnm.c_str());
2034 
2035  rate_Eff->setBinLabel(nname+1,labelnm);
2036  rate_Denom->setBinLabel(nname+1,labeldenom);
2037  rate_Num->setBinLabel(nname+1,labelnm);
2038  nname++;
2039  }
2040  for(PathInfoCollection::iterator v = hltPathsEff_.begin(); v!= hltPathsEff_.end(); ++v ) {
2041  MonitorElement *NEff=0;
2042  MonitorElement *EtEff=0;
2043  MonitorElement *EtaEff=0;
2044  MonitorElement *PhiEff=0;
2045  MonitorElement *NNum =0;
2046  MonitorElement *EtNum =0;
2047  MonitorElement *EtaNum =0;
2048  MonitorElement *PhiNum =0;
2049  MonitorElement *NDenom=0;
2050  MonitorElement *EtDenom=0;
2051  MonitorElement *EtaDenom=0;
2052  MonitorElement *PhiDenom=0;
2053  std::string labelname("dummy");
2054  labelname = "Eff_" + v->getPath() + "_wrt_" + v->getDenomPath();
2055  std::string histoname(labelname+"");
2056  std::string title(labelname+"");
2057 
2058  double histEtaMax = 5.0;
2059  if (v->getObjectType() == trigger::TriggerMuon
2060  || v->getObjectType() == trigger::TriggerL1Mu) {
2061  histEtaMax = muonEtaMax_; nBins_ = 20 ;
2062  }
2063 
2064  else if (v->getObjectType() == trigger::TriggerJet
2065  || v->getObjectType() == trigger::TriggerL1CenJet
2066  || v->getObjectType() == trigger::TriggerL1ForJet ){
2067  histEtaMax = jetEtaMax_; nBins_ = 60 ;
2068  }
2069 
2070  else if (v->getObjectType() == trigger::TriggerMET
2071  || v->getObjectType() == trigger::TriggerL1ETM ) {
2072  histEtaMax = 5.0; nBins_ = 60 ;
2073  }
2074 
2075  TString pathfolder = dirname_ + foldernm + v->getPath();
2076  dbe_->setCurrentFolder(pathfolder.Data());
2077  if (verbose_) std::cout << "Booking Histos in Directory " << pathfolder.Data() << std::endl;
2078 
2079  //pathfolder = dirname_ + TString("/Eff/") + v->getPath();
2080  //int nBins2D = 10;
2081  histoname = labelname+"_Et_Eff";
2082  title = labelname+" E_t Eff";
2083  EtEff = dbe->book1D(histoname.c_str(),
2084  title.c_str(),nBins_,
2085  v->getPtMin(),
2086  v->getPtMax());
2087 
2088  histoname = labelname+"_Et_Num";
2089  title = labelname+" E_t Num";
2090  EtNum = dbe->book1D(histoname.c_str(),
2091  title.c_str(),nBins_,
2092  v->getPtMin(),
2093  v->getPtMax());
2094 
2095 
2096  histoname = labelname+"_Et_Denom";
2097  title = labelname+" E_t Denom";
2098  EtDenom = dbe->book1D(histoname.c_str(),
2099  title.c_str(),nBins_,
2100  v->getPtMin(),
2101  v->getPtMax());
2102 
2103  if ((v->getPath()).find("Jet") != std::string::npos
2104  || (v->getPath()).find("Mu") != std::string::npos) {
2105  histoname = labelname+"_Eta_Eff";
2106  title = labelname+" #eta Eff";
2107  EtaEff = dbe->book1D(histoname.c_str(),
2108  title.c_str(),
2109  nBins_,-histEtaMax,histEtaMax);
2110  histoname = labelname+"_Phi_Eff";
2111  title = labelname+" #phi Eff";
2112  PhiEff = dbe->book1D(histoname.c_str(),
2113  title.c_str(),
2114  nBins_,-TMath::Pi(), TMath::Pi());
2115 
2116  histoname = labelname+"_Eta_Num";
2117  title = labelname+" #eta Num";
2118  EtaNum = dbe->book1D(histoname.c_str(),
2119  title.c_str(),
2120  nBins_,-histEtaMax,histEtaMax);
2121  histoname = labelname+"_Phi_Num";
2122  title = labelname+" #phi Num";
2123  PhiNum = dbe->book1D(histoname.c_str(),
2124  title.c_str(),
2125  nBins_,-TMath::Pi(), TMath::Pi());
2126 
2127  histoname = labelname+"_Eta_Denom";
2128  title = labelname+" #eta Denom";
2129  EtaDenom = dbe->book1D(histoname.c_str(),
2130  title.c_str(),
2131  nBins_,-histEtaMax,histEtaMax);
2132  histoname = labelname+"_Phi_Denom";
2133  title = labelname+" #phi Denom";
2134  PhiDenom = dbe->book1D(histoname.c_str(),
2135  title.c_str(),
2136  nBins_,-TMath::Pi(), TMath::Pi());
2137  }
2138 
2139 
2140  else if( ((v->getPath()).find("MET") != std::string::npos)
2141  || ((v->getPath()).find("SumET") != std::string::npos) ){
2142 
2143  histoname = labelname+"_Phi_Eff";
2144  title = labelname+" #phi Eff";
2145  PhiEff = dbe->book1D(histoname.c_str(),
2146  title.c_str(),
2147  nBins_,-TMath::Pi(), TMath::Pi());
2148 
2149  histoname = labelname+"_Phi_Num";
2150  title = labelname+" #phi Num";
2151  PhiNum = dbe->book1D(histoname.c_str(),
2152  title.c_str(),
2153  nBins_,-TMath::Pi(), TMath::Pi());
2154 
2155  histoname = labelname+"_Phi_Denom";
2156  title = labelname+" #phi Denom";
2157  PhiDenom = dbe->book1D(histoname.c_str(),
2158  title.c_str(),
2159  nBins_,-TMath::Pi(), TMath::Pi());
2160 
2161  }
2162 
2163  v->setHistosEff( NEff, EtEff, EtaEff, PhiEff, NNum, EtNum, EtaNum, PhiNum, NDenom, EtDenom, EtaDenom, PhiDenom);
2164 
2165  }
2166  if (verbose_) std::cout << "Done booking histos for Efficiency " << std::endl;
2167  }
2168 //end from begin job
2169 
2170 
2171  if (verbose_) std::cout << "End BeginRun ---------------- " << std::endl;
2172 
2173 }
unsigned int size() const
number of trigger paths in trigger table
const double Pi
int i
Definition: DBlmapReader.cc:9
RunID const & id() const
Definition: RunBase.h:43
const std::string moduleType(const std::string &module) const
C++ class name of module.
const std::string & triggerName(unsigned int triggerIndex) const
MonitorElement * rate_All
enum start value shifted to 81 so as to avoid clashes with PDG codes
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
PathInfoCollection hltPathsAll_
const edm::ParameterSet & modulePSet(const std::string &module) const
ParameterSet of module.
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
HLTConfigProvider hltConfig_
MonitorElement * rate_Denom
int j
Definition: DBlmapReader.cc:9
PathInfoCollection hltPathswrtMu_
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
std::string custompathnamemu_
std::vector< int > prescUsed_
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
MonitorElement * rate_Eff
MonitorElement * rate_Num
PathInfoCollection hltPathsEff_
MonitorElement * rate_All_L1
tuple cout
Definition: gather_cfg.py:41
MonitorElement * rate_wrtMu
mathSSE::Vec4< T > v
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
std::vector< std::pair< std::string, std::string > > custompathnamepairs_
void HLTJetMETDQMSource::endJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 2185 of file HLTJetMETDQMSource.cc.

References nev_.

2185  {
2186  LogInfo("HLTJetMETDQMSource") << "analyzed " << nev_ << " events";
2187  return;
2188 }
void HLTJetMETDQMSource::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
)
privatevirtual

DQM Client Diagnostic.

Reimplemented from edm::EDAnalyzer.

Definition at line 2180 of file HLTJetMETDQMSource.cc.

2181  {
2182 }
void HLTJetMETDQMSource::endRun ( const edm::Run run,
const edm::EventSetup c 
)
privatevirtual

EndRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 2191 of file HLTJetMETDQMSource.cc.

References gather_cfg::cout, edm::RunBase::id(), and verbose_.

2191  {
2192  if (verbose_) std::cout << "endRun, run " << run.id() << std::endl;
2193 }
RunID const & id() const
Definition: RunBase.h:43
tuple cout
Definition: gather_cfg.py:41
void HLTJetMETDQMSource::histobooking ( const edm::EventSetup c)
private

Member Data Documentation

int HLTJetMETDQMSource::currentRun_
private

Definition at line 76 of file HLTJetMETDQMSource.h.

std::string HLTJetMETDQMSource::custompathnamemu_
private

Definition at line 96 of file HLTJetMETDQMSource.h.

Referenced by beginRun(), and HLTJetMETDQMSource().

std::vector<std::pair<std::string, std::string> > HLTJetMETDQMSource::custompathnamepairs_
private

Definition at line 97 of file HLTJetMETDQMSource.h.

Referenced by beginRun(), and HLTJetMETDQMSource().

DQMStore* HLTJetMETDQMSource::dbe_
private

Definition at line 68 of file HLTJetMETDQMSource.h.

Referenced by beginRun(), and HLTJetMETDQMSource().

std::string HLTJetMETDQMSource::dirname_
private

Definition at line 101 of file HLTJetMETDQMSource.h.

Referenced by beginJob(), beginRun(), and HLTJetMETDQMSource().

HLTConfigProvider HLTJetMETDQMSource::hltConfig_
private

Definition at line 109 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and beginRun().

bool HLTJetMETDQMSource::hltconfigchanged
private

Definition at line 78 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and beginRun().

PathInfoCollection HLTJetMETDQMSource::hltPathsAll_
private

Definition at line 401 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and beginRun().

PathInfoCollection HLTJetMETDQMSource::hltPathsEff_
private

Definition at line 402 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and beginRun().

PathInfoCollection HLTJetMETDQMSource::hltPathswrtMu_
private

Definition at line 403 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and beginRun().

double HLTJetMETDQMSource::htMin_
private

Definition at line 93 of file HLTJetMETDQMSource.h.

Referenced by HLTJetMETDQMSource().

double HLTJetMETDQMSource::jetDRMatch_
private

Definition at line 90 of file HLTJetMETDQMSource.h.

Referenced by HLTJetMETDQMSource().

double HLTJetMETDQMSource::jetEtaMax_
private

Definition at line 88 of file HLTJetMETDQMSource.h.

Referenced by beginRun(), and HLTJetMETDQMSource().

double HLTJetMETDQMSource::jetEtMin_
private

Definition at line 89 of file HLTJetMETDQMSource.h.

Referenced by HLTJetMETDQMSource().

double HLTJetMETDQMSource::metMin_
private

Definition at line 92 of file HLTJetMETDQMSource.h.

Referenced by HLTJetMETDQMSource().

bool HLTJetMETDQMSource::monitorDaemon_
private

Definition at line 104 of file HLTJetMETDQMSource.h.

double HLTJetMETDQMSource::muonDRMatch_
private

Definition at line 86 of file HLTJetMETDQMSource.h.

Referenced by HLTJetMETDQMSource().

double HLTJetMETDQMSource::muonEtaMax_
private

Definition at line 84 of file HLTJetMETDQMSource.h.

Referenced by beginRun(), and HLTJetMETDQMSource().

double HLTJetMETDQMSource::muonEtMin_
private

Definition at line 85 of file HLTJetMETDQMSource.h.

Referenced by HLTJetMETDQMSource().

unsigned int HLTJetMETDQMSource::nBins_
private

Definition at line 79 of file HLTJetMETDQMSource.h.

Referenced by beginRun(), and HLTJetMETDQMSource().

int HLTJetMETDQMSource::nev_
private

Definition at line 67 of file HLTJetMETDQMSource.h.

Referenced by analyze(), beginJob(), and endJob().

int HLTJetMETDQMSource::nhltcfg
private

Definition at line 77 of file HLTJetMETDQMSource.h.

bool HLTJetMETDQMSource::plotAll_
private

Definition at line 72 of file HLTJetMETDQMSource.h.

Referenced by analyze(), beginRun(), and HLTJetMETDQMSource().

bool HLTJetMETDQMSource::plotEff_
private

Definition at line 73 of file HLTJetMETDQMSource.h.

Referenced by analyze(), beginRun(), and HLTJetMETDQMSource().

bool HLTJetMETDQMSource::plotwrtMu_
private

Definition at line 74 of file HLTJetMETDQMSource.h.

Referenced by analyze(), beginRun(), and HLTJetMETDQMSource().

std::vector<int> HLTJetMETDQMSource::prescUsed_
private

Definition at line 98 of file HLTJetMETDQMSource.h.

Referenced by beginRun(), and HLTJetMETDQMSource().

std::string HLTJetMETDQMSource::processname_
private

Definition at line 102 of file HLTJetMETDQMSource.h.

Referenced by analyze(), beginRun(), and HLTJetMETDQMSource().

double HLTJetMETDQMSource::ptMax_
private

Definition at line 81 of file HLTJetMETDQMSource.h.

Referenced by HLTJetMETDQMSource().

double HLTJetMETDQMSource::ptMin_
private

Definition at line 80 of file HLTJetMETDQMSource.h.

Referenced by HLTJetMETDQMSource().

MonitorElement* HLTJetMETDQMSource::rate_All
private

Definition at line 404 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and beginRun().

MonitorElement* HLTJetMETDQMSource::rate_All_L1
private

Definition at line 405 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and beginRun().

MonitorElement* HLTJetMETDQMSource::rate_Denom
private

Definition at line 407 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and beginRun().

MonitorElement* HLTJetMETDQMSource::rate_Eff
private

Definition at line 406 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and beginRun().

MonitorElement* HLTJetMETDQMSource::rate_Num
private

Definition at line 408 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and beginRun().

MonitorElement* HLTJetMETDQMSource::rate_wrtMu
private

Definition at line 409 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and beginRun().

bool HLTJetMETDQMSource::resetMe_
private

Definition at line 75 of file HLTJetMETDQMSource.h.

MonitorElement* HLTJetMETDQMSource::scalersSelect
private

Definition at line 111 of file HLTJetMETDQMSource.h.

double HLTJetMETDQMSource::sumEtMin_
private

Definition at line 94 of file HLTJetMETDQMSource.h.

Referenced by HLTJetMETDQMSource().

int HLTJetMETDQMSource::theHLTOutputType
private

Definition at line 105 of file HLTJetMETDQMSource.h.

MonitorElement* HLTJetMETDQMSource::total_
private

Definition at line 70 of file HLTJetMETDQMSource.h.

edm::InputTag HLTJetMETDQMSource::triggerResultsLabel_
private

Definition at line 108 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and HLTJetMETDQMSource().

edm::InputTag HLTJetMETDQMSource::triggerSummaryLabel_
private

Definition at line 107 of file HLTJetMETDQMSource.h.

Referenced by analyze(), and HLTJetMETDQMSource().

bool HLTJetMETDQMSource::verbose_
private

Definition at line 103 of file HLTJetMETDQMSource.h.

Referenced by analyze(), beginRun(), endRun(), and HLTJetMETDQMSource().