CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrigResRateMon.h
Go to the documentation of this file.
1 #ifndef TRIGRESRATEMON_H
2 #define TRIGRESRATEMON_H
3 // -*- C++ -*-
4 //
5 // Package: TrigResRateMon
6 // Class: TrigResRateMon
7 //
15 // Original Author:
16 // Vladimir Rekovic, July 2010
17 //
18 //
19 //
20 //
21 
22 // system include files
23 #include <memory>
24 #include <unistd.h>
25 
26 
27 // user include files
30 
36 
42 
43 // added VR
49 
51 
59 
60 /*
61  needs cleaining of include statments (VR)
62 */
63 
66 
69 
71 
72 //for LumiScalers in getByToken method
74 
75 #include <iostream>
76 #include <fstream>
77 #include <vector>
78 #include <set>
79 
80 namespace edm {
81  class TriggerNames;
82 }
83 
84 //typedef std::multimap<float,int> fimmap ;
85 //typedef std::set<fimmap , less<fimmap> > mmset;
86 
88 
89  public:
90  explicit TrigResRateMon(const edm::ParameterSet&);
92 
93  //void cleanDRMatchSet(mmset& tempSet);
94 
96  //edm::Handle<reco::BeamSpot> fBeamSpotHandle;
97 
98  private:
99  virtual void beginJob() ;
100  virtual void analyze(const edm::Event&, const edm::EventSetup&);
101  virtual void endJob() ;
102 
103  // BeginRun
104  void beginRun(const edm::Run& run, const edm::EventSetup& c);
105 
106  // EndRun
107  void endRun(const edm::Run& run, const edm::EventSetup& c);
108  void setupHltMatrix(const std::string& label, std::vector<std::string> & paths);
109  void setupStreamMatrix(const std::string& label, std::vector<std::string> & paths);
110  void setupHltLsPlots();
111  void setupHltBxPlots();
112  void countHLTPathHitsEndLumiBlock(const int & lumi);
113  void countHLTGroupHitsEndLumiBlock(const int & lumi);
114  void countHLTGroupL1HitsEndLumiBlock(const int & lumi);
115  void countHLTGroupBXHitsEndLumiBlock(const int & lumi);
116 
117  void fillHltMatrix(const edm::TriggerNames & triggerNames, const edm::Event& iEvent, const edm::EventSetup& iSetup);
118 
119 
120  // JMS counts
121  // need to fill counts per path with the prescales
122  void fillCountsPerPath(const edm::Event& iEvent, const edm::EventSetup& iSetup);
123  void bookCountsPerPath();
125  void clearCountsPerPath();
126  void fillXsecPerDataset(const int& lumi);
127 
128  void filltestHisto(const int& lumi); //Robin
129  void bookTestHisto(); //Robin
130  // JMS lumi average
131  void addLumiToAverage (double lumi);
132  void clearLumiAverage ();
133 
134 
135  void normalizeHLTMatrix();
136 
139  bool hasL1Passed(const std::string & pathname, const edm::TriggerNames & triggerNames);
140  bool hasHLTPassed(const std::string & pathname, const edm::TriggerNames& triggerNames);
142 
143 
144  void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& c);
145  void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& c);
146 
147  // ----------member data ---------------------------
148  int nev_;
149  int nStream_; //Robin
150  int nPass_; //Robin
151  bool passAny; //Robin
153  bool fLumiFlag;
154  bool fIsSetup;
155 
156  // JetID helper
157  //reco::helper::JetIDHelper *jetID;
158 
159  bool jmsDebug;
162 
166  std::vector<MonitorElement*> v_ME_HLTAll_LS;
167  std::vector<MonitorElement*> v_ME_Total_BX;
168  std::vector<MonitorElement*> v_ME_Total_BX_Norm;
169 
170  std::vector<MonitorElement*> v_ME_HLTPassPass;
171  std::vector<MonitorElement*> v_ME_HLTPassPass_Normalized;
172  std::vector<MonitorElement*> v_ME_HLTPass_Normalized_Any;
173 
184 
185  std::vector<std::string> fGroupName;
186 
187 
188  // JMS Keep track of rates and average lumi
189  std::vector<unsigned> rawCountsPerPD; //Robin
190  std::vector<unsigned> rawCountsPerPath; //Robin
191  std::vector<unsigned> finalCountsPerPath; //Robin
195 
196  //Robin---
203  // MonitorElement * meXsecPerLS;
204  // MonitorElement * meXsec;
205  // MonitorElement * meXsecPerIL;
206 
208  std::vector<MonitorElement*> v_ME_XsecPerLS;
209  std::vector<MonitorElement*> v_ME_CountsPerLS;
210  std::vector<MonitorElement*> v_ME_Xsec;
211 
212  // JMS Mask off some paths so that they don't mess with your plots
213 
214  std::vector< std::string > maskedPaths_;
215  std::vector< std::string > testPaths_; //Robin
216 
217  // JMS calcuate a reference cross section
218  // then scale
224  // unsigned testTrigCountsPS_; //Robin
226  //unsigned referenceTrigCounts_;
227 
228 
229  unsigned int nLS_;
230  double LSsize_ ;
232  unsigned int referenceBX_;
233  unsigned int Nbx_;
234 
235  bool plotAll_;
238 
239  unsigned int nBins_;
240  unsigned int nBins2D_;
241  unsigned int nBinsDR_;
242  unsigned int nBinsOneOverEt_;
243  double ptMin_ ;
244  double ptMax_ ;
245  double dRMax_ ;
247 
248  double sumEtMin_;
249 
250  // Muon quality cuts
251  double dxyCut_;
258 
259  std::vector<std::pair<std::string, std::string> > custompathnamepairs_;
260 
261  std::vector <std::vector <std::string> > triggerFilters_;
262  std::vector <std::vector <uint> > triggerFilterIndices_;
263  std::vector <std::pair<std::string, float> > fPathTempCountPair;
264  std::vector <std::pair<std::string, std::vector<int> > > fPathBxTempCountPair;
265  std::vector <std::pair<std::string, float> > fGroupTempCountPair;
266  std::vector <std::pair<std::string, float> > fGroupL1TempCountPair;
267 
268 
269  // This variable contains the list of PD, then the list of paths per PD
270 
271  std::vector <std::pair<std::string, std::vector<std::string> > > fGroupNamePathsPair;
272 
273  std::vector<std::string> specialPaths_;
274 
282  // data across paths
284  // helper class to store the data path
285 
287 
288  //define Token(-s)
292 
293 
294 
295  // create a class that can store all the strings
296  // associated with a primary dataset
297  // the
298  class DatasetInfo {
299 
300  public:
302  std::vector<std::string> pathNames;
303  std::set<std::string> maskedPaths;
304  std::set<std::string> testPaths; //Robin
305  // this tells you the name of the monitor element
306  // that has the counts per path saved
308 
309  // name of monitor element that has xsec per path saved
311 
312  // name of monitor element that has xsec per path saved
314 
316  // this tells you the name of the ME that has
317  // raw counts (no prescale accounting)
318  // for each path
319 
321 
322  // counts per path
323 
324  std::map<std::string, unsigned int> countsPerPath;
325 
326  //empty default constructor
327  DatasetInfo () {};
328 
329  // do we need a copy constructor?
330 
331  // function to set the paths and
332  // create zeroed counts per path
333 
334  void setPaths (const std::vector<std::string>& inputPaths){
335  pathNames = inputPaths;
336  for (std::vector<std::string>::const_iterator iPath = pathNames.begin();
337  iPath != pathNames.end();
338  iPath++) {
339  countsPerPath[*iPath] = 0;
340  }
341  }//end setPaths
342 
344  std::map<std::string, unsigned int>::iterator iCounts;
345  for (iCounts = countsPerPath.begin();
346  iCounts != countsPerPath.end();
347  iCounts++){
348  iCounts->second = 0;
349  }
350 
351  }// end clearCountsPerPath
352 
353  // put this here so that external people
354  // don't care how you store counts
356  countsPerPath[targetPath]++;
357  }
358 
359  void incrementCountsForPath (std::string targetPath, unsigned preScale){
360  countsPerPath[targetPath] += preScale;
361  }
362 
363  void printCountsPerPath () const {
364  std::map<std::string, unsigned int>::const_iterator iCounts;
365  for (iCounts = countsPerPath.begin();
366  iCounts != countsPerPath.end();
367  iCounts++){
369  << " " << iCounts->first
370  << " " << iCounts->second
371  << std::endl;
372  }
373 
374  }// end clearCountsPerPath
375 
376 
377  void fillXsecPlot (MonitorElement * myXsecPlot, double currentInstLumi, double secondsPerLS, double referenceXSec) {
378  // this will put the reference cross section in the denominator
379  fillXsecPlot( myXsecPlot, currentInstLumi*referenceXSec, secondsPerLS);
380  }
381 
382  void fillXsecPlot (MonitorElement * myXsecPlot, double currentInstLumi, double secondsPerLS) {
383 
384 
385  for (unsigned iPath = 0;
386  iPath < pathNames.size();
387  iPath++) {
388  std::string thisPathName = pathNames[iPath];
389  unsigned thisPathCounts = countsPerPath[thisPathName];
390 
391  // if this is a masked path, then skip it
392  if (maskedPaths.find(thisPathName) != maskedPaths.end()) {
393  //std::cout << "Path " << thisPathName << " is masked, not filling it " << std::endl;
394  continue;
395  }
397  TString thisName = thisPathName.c_str();
398  if ( thisName.Contains("L1") || thisName.Contains("L2") ){
399  continue;
400  }
401 
402  double xsec = 1.0;
403  // what should we fill when averageLumi == 0 ???
404  if (currentInstLumi > 0) {
405  xsec = thisPathCounts / (currentInstLumi*secondsPerLS);
406  } else if ( secondsPerLS > 0) {
407  xsec = (9e-10) ;
408  // xsec = thisPathCounts / secondsPerLS;
409  } else {
410  xsec = (9e-20) ;
411  // xsec = thisPathCounts;
412  }
413 
414  myXsecPlot->Fill(iPath, xsec);
415  //Robin ???
416  // if (currentInstLumi > 0) myXsecPlot->Fill(iPath, xsec);
417  //std::cout << datasetName << " " << thisPathName << " filled with xsec " << xsec << std::endl;
418 
419  }
420  } // end fill Xsec plot
421 
423  TH1F* tempRawCounts = myRawCountsPlot->getTH1F();
424  int binNumber = tempRawCounts->GetXaxis()->FindBin(pathName.c_str());
425  if (binNumber > 0) {
426  tempRawCounts->Fill(binNumber);
427  } else {
428  //std::cout << "Problem finding bin " << pathName << " in plot " << tempRawCounts->GetTitle() << std::endl;
429  }
430  }// end fill RawCountsForPath
431 
432  void setMaskedPaths (const std::vector<std::string>& inputPaths) {
433  for (unsigned i=0; i < inputPaths.size(); i++) {
434  std::string maskSubString = inputPaths[i];
435  for (unsigned j=0; j < pathNames.size(); j++) {
436  // If a path in the DS contains a masked substring
437  // Then mask that path
438  //
439  std::string candidateForRemoval = pathNames[j];
440  TString pNameTS (candidateForRemoval);
441  if ( pNameTS.Contains(maskSubString)){
442 
443  maskedPaths.insert(candidateForRemoval);
444  } // end if path contains substring
445  }// end for each path in ds
446  }
447  }// end setMaskedPaths
448 
450  std::cout << "======== Printing masked paths for " << datasetName <<" ======== " << std::endl;
451  for ( std::set<std::string>::const_iterator iMask = maskedPaths.begin();
452  iMask != maskedPaths.end();
453  iMask++) {
454  std::cout << (*iMask) << std::endl;
455  }
456  std::cout << "======DONE PRINTING=====" << std::endl;
457  }
458 
459  };
460 
461  // create a vector of the information
462  std::vector<DatasetInfo> primaryDataSetInformation;
463 
464  class PathInfo {
465 
467  pathIndex_(-1), denomPathName_("unset"), pathName_("unset"), l1pathName_("unset"), filterName_("unset"), processName_("unset"), objectType_(-1) {};
468 
469  public:
470 
472  {
473  filters_ = filters;
474  }
475 
476  void setHistos(
477 
478  MonitorElement* const NOn,
479  MonitorElement* const onEtOn,
480  MonitorElement* const onOneOverEtOn,
481  MonitorElement* const onEtavsonPhiOn,
482  MonitorElement* const NOff,
483  MonitorElement* const offEtOff,
484  MonitorElement* const offEtavsoffPhiOff,
485  MonitorElement* const NL1,
486  MonitorElement* const l1EtL1,
487  MonitorElement* const l1Etavsl1PhiL1,
488  MonitorElement* const NL1On,
489  MonitorElement* const l1EtL1On,
490  MonitorElement* const l1Etavsl1PhiL1On,
491  MonitorElement* const NL1Off,
492  MonitorElement* const offEtL1Off,
493  MonitorElement* const offEtavsoffPhiL1Off,
494  MonitorElement* const NOnOff,
495  MonitorElement* const offEtOnOff,
496  MonitorElement* const offEtavsoffPhiOnOff,
497  MonitorElement* const NL1OnUM,
498  MonitorElement* const l1EtL1OnUM,
499  MonitorElement* const l1Etavsl1PhiL1OnUM,
500  MonitorElement* const NL1OffUM,
501  MonitorElement* const offEtL1OffUM,
502  MonitorElement* const offEtavsoffPhiL1OffUM,
503  MonitorElement* const NOnOffUM,
504  MonitorElement* const offEtOnOffUM,
505  MonitorElement* const offEtavsoffPhiOnOffUM,
506  MonitorElement* const offDRL1Off,
507  MonitorElement* const offDROnOff,
508  MonitorElement* const l1DRL1On)
509  {
510 
511  NOn_ = NOn;
512  onEtOn_ = onEtOn;
513  onOneOverEtOn_ = onOneOverEtOn;
514  onEtavsonPhiOn_ = onEtavsonPhiOn;
515  NOff_ = NOff;
516  offEtOff_ = offEtOff;
517  offEtavsoffPhiOff_ = offEtavsoffPhiOff;
518  NL1_ = NL1;
519  l1EtL1_ = l1EtL1;
520  l1Etavsl1PhiL1_ = l1Etavsl1PhiL1;
521  NL1On_ = NL1On;
522  l1EtL1On_ = l1EtL1On;
523  l1Etavsl1PhiL1On_ = l1Etavsl1PhiL1On;
524  NL1Off_ = NL1Off;
525  offEtL1Off_ = offEtL1Off;
526  offEtavsoffPhiL1Off_ = offEtavsoffPhiL1Off;
527  NOnOff_ = NOnOff;
528  offEtOnOff_ = offEtOnOff;
529  offEtavsoffPhiOnOff_ = offEtavsoffPhiOnOff;
530  NL1OnUM_ = NL1OnUM;
531  l1EtL1OnUM_ = l1EtL1OnUM;
532  l1Etavsl1PhiL1OnUM_ = l1Etavsl1PhiL1OnUM;
533  NL1OffUM_ = NL1OffUM;
534  offEtL1OffUM_ = offEtL1OffUM;
535  offEtavsoffPhiL1OffUM_ = offEtavsoffPhiL1OffUM;
536  NOnOffUM_ = NOnOffUM;
537  offEtOnOffUM_ = offEtOnOffUM;
538  offEtavsoffPhiOnOffUM_ = offEtavsoffPhiOnOffUM;
539  offDRL1Off_ = offDRL1Off;
540  offDROnOff_ = offDROnOff;
541  l1DRL1On_ = l1DRL1On;
542 
543  }
544 
546  return NOn_;
547  }
549  return onEtOn_;
550  }
552  return onOneOverEtOn_;
553  }
555  return onEtavsonPhiOn_;
556  }
558  return NOff_;
559  }
561  return offEtOff_;
562  }
564  return offEtavsoffPhiOff_;
565  }
567  return NL1_;
568  }
570  return l1EtL1_;
571  }
573  return l1Etavsl1PhiL1_;
574  }
576  return NL1On_;
577  }
579  return l1EtL1On_;
580  }
582  return l1Etavsl1PhiL1On_;
583  }
585  return NL1Off_;
586  }
588  return offEtL1Off_;
589  }
591  return offEtavsoffPhiL1Off_;
592  }
594  return NOnOff_;
595  }
597  return offEtOnOff_;
598  }
600  return offEtavsoffPhiOnOff_;
601  }
603  return NL1OnUM_;
604  }
606  return l1EtL1OnUM_;
607  }
609  return l1Etavsl1PhiL1OnUM_;
610  }
612  return NL1OffUM_;
613  }
615  return offEtL1OffUM_;
616  }
618  return offEtavsoffPhiL1OffUM_;
619  }
621  return NOnOffUM_;
622  }
624  return offEtOnOffUM_;
625  }
627  return offEtavsoffPhiOnOffUM_;
628  }
630  return offDRL1Off_;
631  }
633  return offDROnOff_;
634  }
636  return l1DRL1On_;
637  }
639  return filters_;
640  }
641  const std::string getLabel(void ) const {
642  return filterName_;
643  }
644  void setLabel(std::string labelName){
645  filterName_ = labelName;
646  return;
647  }
648  const std::string & getPath(void ) const {
649  return pathName_;
650  }
651  const std::string & getl1Path(void ) const {
652  return l1pathName_;
653  }
654  const int getL1ModuleIndex(void ) const {
655  return l1ModuleIndex_;
656  }
657  const std::string & getDenomPath(void ) const {
658  return denomPathName_;
659  }
660  const std::string & getProcess(void ) const {
661  return processName_;
662  }
663  const int getObjectType(void ) const {
664  return objectType_;
665  }
666 
667  const edm::InputTag getTag(void) const{
669  return tagName;
670  }
671 
672  ~PathInfo() {};
673 
674  PathInfo(std::string denomPathName, std::string pathName, std::string l1pathName, int l1ModuleIndex, std::string filterName, std::string processName, size_t type, float ptmin, float ptmax, float hltThreshold, float l1Threshold):
675 
676  denomPathName_(denomPathName),
677  pathName_(pathName),
678  l1pathName_(l1pathName),
679  l1ModuleIndex_(l1ModuleIndex),
680  filterName_(filterName),
681  processName_(processName),
682  objectType_(type),
683  NOn_(0), onEtOn_(0), onOneOverEtOn_(0), onEtavsonPhiOn_(0),
685  NL1_(0), l1EtL1_(0), l1Etavsl1PhiL1_(0),
692  offDRL1Off_(0), offDROnOff_(0), l1DRL1On_(0), filters_(0),
693  ptmin_(ptmin), ptmax_(ptmax),
694  hltThreshold_(hltThreshold), l1Threshold_(l1Threshold)
695 
696  {
697  };
698 
699  PathInfo(std::string denomPathName, std::string pathName, std::string l1pathName, std::string filterName, std::string processName, size_t type,
700  MonitorElement *NOn,
701  MonitorElement *onEtOn,
702  MonitorElement *onOneOverEtOn,
703  MonitorElement *onEtavsonPhiOn,
704  MonitorElement *NOff,
705  MonitorElement *offEtOff,
706  MonitorElement *offEtavsoffPhiOff,
707  MonitorElement *NL1,
708  MonitorElement *l1EtL1,
709  MonitorElement *l1Etavsl1PhiL1,
710  MonitorElement *NL1On,
711  MonitorElement *l1EtL1On,
712  MonitorElement *l1Etavsl1PhiL1On,
713  MonitorElement *NL1Off,
714  MonitorElement *offEtL1Off,
715  MonitorElement *offEtavsoffPhiL1Off,
716  MonitorElement *NOnOff,
717  MonitorElement *offEtOnOff,
718  MonitorElement *offEtavsoffPhiOnOff,
719  MonitorElement *NL1OnUM,
720  MonitorElement *l1EtL1OnUM,
721  MonitorElement *l1Etavsl1PhiL1OnUM,
722  MonitorElement *NL1OffUM,
723  MonitorElement *offEtL1OffUM,
724  MonitorElement *offEtavsoffPhiL1OffUM,
725  MonitorElement *NOnOffUM,
726  MonitorElement *offEtOnOffUM,
727  MonitorElement *offEtavsoffPhiOnOffUM,
728  MonitorElement *offDRL1Off,
729  MonitorElement *offDROnOff,
730  MonitorElement *l1DRL1On,
732  float ptmin, float ptmax
733  ):
734 
735  denomPathName_(denomPathName),
736  pathName_(pathName), l1pathName_(l1pathName),
737  filterName_(filterName), processName_(processName), objectType_(type),
738  NOn_(NOn), onEtOn_(onEtOn), onOneOverEtOn_(onOneOverEtOn), onEtavsonPhiOn_(onEtavsonPhiOn),
739  NOff_(NOff), offEtOff_(offEtOff), offEtavsoffPhiOff_(offEtavsoffPhiOff),
740  NL1_(NL1), l1EtL1_(l1EtL1), l1Etavsl1PhiL1_(l1Etavsl1PhiL1),
741  NL1On_(NL1On), l1EtL1On_(l1EtL1On), l1Etavsl1PhiL1On_(l1Etavsl1PhiL1On),
742  NL1Off_(NL1Off), offEtL1Off_(offEtL1Off), offEtavsoffPhiL1Off_(offEtavsoffPhiL1Off),
743  NOnOff_(NOnOff), offEtOnOff_(offEtOnOff), offEtavsoffPhiOnOff_(offEtavsoffPhiOnOff),
744  NL1OnUM_(NL1OnUM), l1EtL1OnUM_(l1EtL1OnUM), l1Etavsl1PhiL1OnUM_(l1Etavsl1PhiL1OnUM),
745  NL1OffUM_(NL1OffUM), offEtL1OffUM_(offEtL1OffUM), offEtavsoffPhiL1OffUM_(offEtavsoffPhiL1OffUM),
746  NOnOffUM_(NOnOffUM), offEtOnOffUM_(offEtOnOffUM), offEtavsoffPhiOnOffUM_(offEtavsoffPhiOnOffUM),
747  offDRL1Off_(offDRL1Off),
748  offDROnOff_(offDROnOff),
749  l1DRL1On_(l1DRL1On),
750  filters_(filters),
751  ptmin_(ptmin), ptmax_(ptmax)
752  {
753  };
754 
755  bool operator==(const std::string& v)
756  {
757  return v==filterName_;
758  }
759 
760  bool operator!=(const std::string& v)
761  {
762  return v!=filterName_;
763  }
764 
765  float getPtMin() const { return ptmin_; }
766  float getPtMax() const { return ptmax_; }
767  float getHltThreshold() const { return hltThreshold_; }
768  float getL1Threshold() const { return l1Threshold_; }
769 
770  std::vector< std::pair<std::string,unsigned int> > filtersAndIndices;
771 
772 
773  private:
774 
783 
784  // we don't own this data
796 
797  float ptmin_, ptmax_;
799 
800  const int index() {
801  return pathIndex_;
802  }
803  const int type() {
804  return objectType_;
805  }
806 
807 
808  };
809 
810 
811  public:
812 
813  // simple collection - just
814  class PathInfoCollection: public std::vector<PathInfo> {
815  public:
816 
817  PathInfoCollection(): std::vector<PathInfo>()
818  {};
819  std::vector<PathInfo>::iterator find(std::string pathName) {
820  return std::find(begin(), end(), pathName);
821  }
822  };
823 
825 
827 
828 };
829 
830 
831 
832 
833 
834 #endif
std::vector< std::pair< std::string, std::string > > custompathnamepairs_
std::vector< unsigned > rawCountsPerPD
std::vector< std::pair< std::string, float > > fGroupL1TempCountPair
edm::InputTag triggerResultsLabel_
double normalizedChi2Cut_
type
Definition: HCALResponse.h:21
int getThresholdFromName(const std::string &pathname)
unsigned int nBinsOneOverEt_
int i
Definition: DBlmapReader.cc:9
const std::string & getDenomPath(void) const
std::vector< std::string > pathNames
MonitorElement * getNOnOffUMHisto()
std::string pathsSummaryFilterCountsFolder_
TrigResRateMon(const edm::ParameterSet &)
HLTConfigProvider hltConfig_
edm::Handle< trigger::TriggerEvent > fTriggerObj
std::vector< std::string > fGroupName
MonitorElement * getFiltersHisto()
float getL1Threshold() const
void countHLTGroupBXHitsEndLumiBlock(const int &lumi)
void fillHltMatrix(const edm::TriggerNames &triggerNames, const edm::Event &iEvent, const edm::EventSetup &iSetup)
std::vector< std::string > testPaths_
std::vector< std::pair< std::string, float > > fPathTempCountPair
const std::string getLabel(void) const
void setPaths(const std::vector< std::string > &inputPaths)
MonitorElement * getNL1OffUMHisto()
std::vector< std::pair< std::string, unsigned int > > filtersAndIndices
void incrementCountsForPath(std::string targetPath, unsigned preScale)
std::vector< unsigned > finalCountsPerPath
bool operator!=(const std::string &v)
bool operator==(const std::string &v)
MonitorElement * getOffEtOnOffHisto()
std::vector< std::pair< std::string, std::vector< std::string > > > fGroupNamePathsPair
MonitorElement * offDROnOff_
MonitorElement * ME_HLTAll_LS
void setFilterHistos(MonitorElement *const filters)
MonitorElement * NOnOffUM_
MonitorElement * filters_
std::string fCustomBXPath
MonitorElement * meAverageLumiPerLS
MonitorElement * l1Etavsl1PhiL1OnUM_
MonitorElement * onOneOverEtOn_
MonitorElement * getOffDRL1OffHisto()
tuple lumi
Definition: fjr2json.py:35
edm::InputTag recHitsEBTag_
MonitorElement * NL1Off_
double averageInstLumi3LS
MonitorElement * scalersSelect
bool hasL1Passed(const std::string &pathname, const edm::TriggerNames &triggerNames)
MonitorElement * offEtavsoffPhiOff_
MonitorElement * getOffEtaVsOffPhiL1OffHisto()
MonitorElement * getL1EtL1OnHisto()
void countHLTGroupHitsEndLumiBlock(const int &lumi)
PathInfoCollection hltPaths_
void fillXsecPlot(MonitorElement *myXsecPlot, double currentInstLumi, double secondsPerLS, double referenceXSec)
std::vector< MonitorElement * > v_ME_HLTAll_LS
std::vector< MonitorElement * > v_ME_Xsec
MonitorElement * l1Etavsl1PhiL1On_
std::string pathsSummaryHLTPathsPerLSFolder_
double thresholdFactor_
MonitorElement * NL1OffUM_
double dRMaxElectronMuon_
void setupHltMatrix(const std::string &label, std::vector< std::string > &paths)
MonitorElement * onEtOn_
const edm::InputTag getTag(void) const
edm::EDGetTokenT< LumiScalersCollection > lumiScalersToken_
MonitorElement * getL1EtL1Histo()
std::vector< unsigned > rawCountsPerPath
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
MonitorElement * getOffEtOffHisto()
MonitorElement * l1EtL1On_
MonitorElement * getOnOneOverEtOnHisto()
void countHLTGroupL1HitsEndLumiBlock(const int &lumi)
std::string dirname_
MonitorElement * l1EtL1_
std::vector< TPRegexp > filters
Definition: eve_filter.cc:25
std::vector< DatasetInfo > primaryDataSetInformation
PathInfoCollection hltPathsDiagonal_
double averageInstLumi
MonitorElement * offEtavsoffPhiOnOffUM_
MonitorElement * l1Etavsl1PhiL1_
void Fill(long long x)
void addLumiToAverage(double lumi)
const std::string & getProcess(void) const
edm::EDGetTokenT< edm::TriggerResults > triggerResultsToken_
bool hasHLTPassed(const std::string &pathname, const edm::TriggerNames &triggerNames)
MonitorElement * getOffEtaVsOffPhiOnOffUMHisto()
MonitorElement * NL1On_
MonitorElement * getNL1OnHisto()
std::vector< std::string > specialPaths_
PathInfo(std::string denomPathName, std::string pathName, std::string l1pathName, std::string filterName, std::string processName, size_t type, MonitorElement *NOn, MonitorElement *onEtOn, MonitorElement *onOneOverEtOn, MonitorElement *onEtavsonPhiOn, MonitorElement *NOff, MonitorElement *offEtOff, MonitorElement *offEtavsoffPhiOff, MonitorElement *NL1, MonitorElement *l1EtL1, MonitorElement *l1Etavsl1PhiL1, MonitorElement *NL1On, MonitorElement *l1EtL1On, MonitorElement *l1Etavsl1PhiL1On, MonitorElement *NL1Off, MonitorElement *offEtL1Off, MonitorElement *offEtavsoffPhiL1Off, MonitorElement *NOnOff, MonitorElement *offEtOnOff, MonitorElement *offEtavsoffPhiOnOff, MonitorElement *NL1OnUM, MonitorElement *l1EtL1OnUM, MonitorElement *l1Etavsl1PhiL1OnUM, MonitorElement *NL1OffUM, MonitorElement *offEtL1OffUM, MonitorElement *offEtavsoffPhiL1OffUM, MonitorElement *NOnOffUM, MonitorElement *offEtOnOffUM, MonitorElement *offEtavsoffPhiOnOffUM, MonitorElement *offDRL1Off, MonitorElement *offDROnOff, MonitorElement *l1DRL1On, MonitorElement *filters, float ptmin, float ptmax)
int iEvent
Definition: GenABIO.cc:230
MonitorElement * getOffEtL1OffHisto()
MonitorElement * getNOffHisto()
MonitorElement * NOnOff_
const std::string & getPath(void) const
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
MonitorElement * getOffEtL1OffUMHisto()
std::string pathsSummaryFilterEfficiencyFolder_
bool foundReferenceTrigger_
std::string pathsSummaryStreamsFolder_
MonitorElement * getOffEtaVsOffPhiL1OffUMHisto()
void setupStreamMatrix(const std::string &label, std::vector< std::string > &paths)
std::vector< std::pair< std::string, float > > fGroupTempCountPair
unsigned int nBinsDR_
MonitorElement * offEtOff_
std::vector< MonitorElement * > v_ME_HLTPassPass_Normalized
edm::InputTag recHitsEETag_
void fillRawCountsForPath(MonitorElement *myRawCountsPlot, std::string pathName)
MonitorElement * getL1EtaVsL1PhiL1OnHisto()
int j
Definition: DBlmapReader.cc:9
void setLabel(std::string labelName)
virtual void endJob()
const int getL1ModuleIndex(void) const
const std::string & getl1Path(void) const
std::map< std::string, unsigned int > countsPerPath
std::set< std::string > testPaths
#define end
Definition: vmac.h:37
void countHLTPathHitsEndLumiBlock(const int &lumi)
MonitorElement * getL1EtaVsL1PhiL1OnUMHisto()
std::vector< MonitorElement * > v_ME_HLTPassPass
std::vector< MonitorElement * > v_ME_Total_BX
void filltestHisto(const int &lumi)
std::vector< MonitorElement * > v_ME_CountsPerLS
edm::EDGetTokenT< edm::TriggerResults > triggerResultsTokenFU_
MonitorElement * ME_HLT_BX
edm::InputTag triggerSummaryLabel_
MonitorElement * getOffDROnOffHisto()
unsigned int referenceBX_
std::string referenceTrigName_
MonitorElement * meXsecPerTestPath
unsigned referenceTrigIndex_
std::vector< MonitorElement * > v_ME_Total_BX_Norm
std::vector< std::vector< uint > > triggerFilterIndices_
unsigned int Nbx_
MonitorElement * getOffEtOnOffUMHisto()
std::string pathsSummaryFolder_
unsigned int nLS_
MonitorElement * getOffEtaVsOffPhiOnOffHisto()
std::string testPathsFolder_
MonitorElement * meCountsDroppedPerLS
MonitorElement * getOnEtOnHisto()
void fillXsecPerDataset(const int &lumi)
MonitorElement * getNL1OnUMHisto()
void findReferenceTriggerIndex()
MonitorElement * getL1EtaVsL1PhiL1Histo()
std::string pathsIndividualHLTPathsPerLSFolder_
MonitorElement * getL1DROnL1Histo()
edm::Handle< edm::TriggerResults > triggerResults_
MonitorElement * offEtOnOffUM_
MonitorElement * meXsecStreamPerLS
void setHistos(MonitorElement *const NOn, MonitorElement *const onEtOn, MonitorElement *const onOneOverEtOn, MonitorElement *const onEtavsonPhiOn, MonitorElement *const NOff, MonitorElement *const offEtOff, MonitorElement *const offEtavsoffPhiOff, MonitorElement *const NL1, MonitorElement *const l1EtL1, MonitorElement *const l1Etavsl1PhiL1, MonitorElement *const NL1On, MonitorElement *const l1EtL1On, MonitorElement *const l1Etavsl1PhiL1On, MonitorElement *const NL1Off, MonitorElement *const offEtL1Off, MonitorElement *const offEtavsoffPhiL1Off, MonitorElement *const NOnOff, MonitorElement *const offEtOnOff, MonitorElement *const offEtavsoffPhiOnOff, MonitorElement *const NL1OnUM, MonitorElement *const l1EtL1OnUM, MonitorElement *const l1Etavsl1PhiL1OnUM, MonitorElement *const NL1OffUM, MonitorElement *const offEtL1OffUM, MonitorElement *const offEtavsoffPhiL1OffUM, MonitorElement *const NOnOffUM, MonitorElement *const offEtOnOffUM, MonitorElement *const offEtavsoffPhiOnOffUM, MonitorElement *const offDRL1Off, MonitorElement *const offDROnOff, MonitorElement *const l1DRL1On)
void beginRun(const edm::Run &run, const edm::EventSetup &c)
std::string referenceTrigInput_
MonitorElement * meDiagnostic
TH1F * getTH1F(void) const
MonitorElement * l1DRL1On_
MonitorElement * getNL1OffHisto()
MonitorElement * offEtOnOff_
MonitorElement * getNL1Histo()
std::vector< MonitorElement * > v_ME_XsecPerLS
MonitorElement * getL1EtL1OnUMHisto()
virtual void analyze(const edm::Event &, const edm::EventSetup &)
std::vector< PathInfo >::iterator find(std::string pathName)
MonitorElement * offEtL1Off_
MonitorElement * getOnEtaVsOnPhiOnHisto()
MonitorElement * offDRL1Off_
std::string pathsSummaryHLTCorrelationsFolder_
double ptmin
Definition: HydjetWrapper.h:85
MonitorElement * onEtavsonPhiOn_
void endRun(const edm::Run &run, const edm::EventSetup &c)
EndRun.
void printCountsPerPathThisLumi()
#define begin
Definition: vmac.h:30
MonitorElement * l1EtL1OnUM_
std::vector< std::string > maskedPaths_
MonitorElement * getOffEtaVsOffPhiOffHisto()
MonitorElement * meCountsStreamPerLS
MonitorElement * offEtavsoffPhiOnOff_
std::vector< MonitorElement * > v_ME_HLTPass_Normalized_Any
float getHltThreshold() const
MonitorElement * getNOnOffHisto()
void setMaskedPaths(const std::vector< std::string > &inputPaths)
int64_t TotalDroppedCounts
std::string muonRecoCollectionName_
tuple cout
Definition: gather_cfg.py:121
MonitorElement * offEtavsoffPhiL1OffUM_
unsigned int nBins2D_
MonitorElement * offEtavsoffPhiL1Off_
void incrementCountsForPath(std::string targetPath)
DQMStore * dbe_
virtual void beginJob()
std::set< std::string > maskedPaths
std::string pathsSummaryHLTPathsPerBXFolder_
void fillXsecPlot(MonitorElement *myXsecPlot, double currentInstLumi, double secondsPerLS)
int getTriggerTypeParsePathName(const std::string &pathname)
std::vector< std::vector< std::string > > triggerFilters_
const int getObjectType(void) const
std::string processname_
std::vector< std::pair< std::string, std::vector< int > > > fPathBxTempCountPair
unsigned int nBins_
MonitorElement * NOff_
MonitorElement * NL1OnUM_
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
MonitorElement * ME_HLT_CUSTOM_BX
MonitorElement * meCountsPassPerLS
const std::string getL1ConditionModuleName(const std::string &pathname)
Definition: Run.h:41
unsigned referenceTrigCountsPS_
MonitorElement * getNOnHisto()
void fillCountsPerPath(const edm::Event &iEvent, const edm::EventSetup &iSetup)
MonitorElement * offEtL1OffUM_
PathInfo(std::string denomPathName, std::string pathName, std::string l1pathName, int l1ModuleIndex, std::string filterName, std::string processName, size_t type, float ptmin, float ptmax, float hltThreshold, float l1Threshold)