CMS 3D CMS Logo

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

#include <EffPurFromHistos.h>

Public Member Functions

void compute (DQMStore::IBooker &ibook)
 
FlavourHistograms< double > * discriminatorCutEfficScan () const
 
FlavourHistograms< double > * discriminatorNoCutEffic () const
 
 EffPurFromHistos (const std::string &ext, TH1F *h_d, TH1F *h_u, TH1F *h_s, TH1F *h_c, TH1F *h_b, TH1F *h_g, TH1F *h_ni, TH1F *h_dus, TH1F *h_dusg, TH1F *h_pu, const std::string &label, const unsigned int &mc, int nBin=100, double startO=0.005, double endO=1.005)
 
 EffPurFromHistos (const FlavourHistograms< double > *dDiscriminatorFC, const std::string &label, const unsigned int &mc, DQMStore::IBooker &ibook, int nBin=100, double startO=0.005, double endO=1.005)
 
void epsPlot (const std::string &name)
 
TH1F * getEffFlavVsBEff_b ()
 
TH1F * getEffFlavVsBEff_c ()
 
TH1F * getEffFlavVsBEff_d ()
 
TH1F * getEffFlavVsBEff_dus ()
 
TH1F * getEffFlavVsBEff_dusg ()
 
TH1F * getEffFlavVsBEff_g ()
 
TH1F * getEffFlavVsBEff_ni ()
 
TH1F * getEffFlavVsBEff_pu ()
 
TH1F * getEffFlavVsBEff_s ()
 
TH1F * getEffFlavVsBEff_u ()
 
void plot (TPad *theCanvas=0)
 
void plot (const std::string &name, const std::string &ext)
 
void psPlot (const std::string &name)
 
 ~EffPurFromHistos ()
 

Private Member Functions

void check ()
 

Private Attributes

FlavourHistograms< double > * discrCutEfficScan
 
FlavourHistograms< double > * discrNoCutEffic
 
MonitorElementEffFlavVsBEff_b
 
MonitorElementEffFlavVsBEff_c
 
MonitorElementEffFlavVsBEff_d
 
MonitorElementEffFlavVsBEff_dus
 
MonitorElementEffFlavVsBEff_dusg
 
MonitorElementEffFlavVsBEff_g
 
MonitorElementEffFlavVsBEff_ni
 
MonitorElementEffFlavVsBEff_pu
 
MonitorElementEffFlavVsBEff_s
 
MonitorElementEffFlavVsBEff_u
 
TH1F * effVersusDiscr_b
 
TH1F * effVersusDiscr_c
 
TH1F * effVersusDiscr_d
 
TH1F * effVersusDiscr_dus
 
TH1F * effVersusDiscr_dusg
 
TH1F * effVersusDiscr_g
 
TH1F * effVersusDiscr_ni
 
TH1F * effVersusDiscr_pu
 
TH1F * effVersusDiscr_s
 
TH1F * effVersusDiscr_u
 
double endOutput
 
bool fromDiscriminatorDistr
 
std::string histoExtension
 
std::string label_
 
unsigned int mcPlots_
 
int nBinOutput
 
double startOutput
 

Detailed Description

Definition at line 15 of file EffPurFromHistos.h.

Constructor & Destructor Documentation

EffPurFromHistos::EffPurFromHistos ( const std::string &  ext,
TH1F *  h_d,
TH1F *  h_u,
TH1F *  h_s,
TH1F *  h_c,
TH1F *  h_b,
TH1F *  h_g,
TH1F *  h_ni,
TH1F *  h_dus,
TH1F *  h_dusg,
TH1F *  h_pu,
const std::string &  label,
const unsigned int &  mc,
int  nBin = 100,
double  startO = 0.005,
double  endO = 1.005 
)

Definition at line 17 of file EffPurFromHistos.cc.

References check().

21  :
26  effVersusDiscr_dusg(h_dusg), effVersusDiscr_pu(h_pu),
27  nBinOutput(nBin), startOutput(startO),
28  endOutput(endO), mcPlots_(mc), label_(label)
29 {
30  // consistency check
31  check();
32 }
std::string histoExtension
unsigned int mcPlots_
EffPurFromHistos::EffPurFromHistos ( const FlavourHistograms< double > *  dDiscriminatorFC,
const std::string &  label,
const unsigned int &  mc,
DQMStore::IBooker ibook,
int  nBin = 100,
double  startO = 0.005,
double  endO = 1.005 
)

Definition at line 34 of file EffPurFromHistos.cc.

References FlavourHistograms< T >::baseNameDescription(), FlavourHistograms< T >::baseNameTitle(), discrCutEfficScan, discrNoCutEffic, FlavourHistograms< T >::divide(), effVersusDiscr_b, effVersusDiscr_c, effVersusDiscr_d, effVersusDiscr_dus, effVersusDiscr_dusg, effVersusDiscr_g, effVersusDiscr_ni, effVersusDiscr_pu, effVersusDiscr_s, effVersusDiscr_u, FlavourHistograms< T >::getHistoVector(), FlavourHistograms< T >::histo_b(), FlavourHistograms< T >::histo_c(), FlavourHistograms< T >::histo_d(), FlavourHistograms< T >::histo_dus(), FlavourHistograms< T >::histo_dusg(), FlavourHistograms< T >::histo_g(), FlavourHistograms< T >::histo_ni(), FlavourHistograms< T >::histo_pu(), FlavourHistograms< T >::histo_s(), FlavourHistograms< T >::histo_u(), histoExtension, diffTwoXMLs::label, FlavourHistograms< T >::lowerBound(), mcPlots_, FlavourHistograms< T >::nBins(), FlavourHistograms< T >::setEfficiencyFlag(), FlavourHistograms< T >::SetMinimum(), mathSSE::sqrt(), and FlavourHistograms< T >::upperBound().

36  :
37  fromDiscriminatorDistr(true), nBinOutput(nBin), startOutput(startO), endOutput(endO), mcPlots_(mc), label_(label){
38  histoExtension = "_"+dDiscriminatorFC->baseNameTitle();
39 
40 
42  "totalEntries" + histoExtension, "Total Entries: " + dDiscriminatorFC->baseNameDescription(),
43  dDiscriminatorFC->nBins(), dDiscriminatorFC->lowerBound(),
44  dDiscriminatorFC->upperBound(), false, true, false, "b", label, mcPlots_, ibook );
45 
46  // conditional discriminator cut for efficiency histos
47 
49  "effVsDiscrCut" + histoExtension, "Eff. vs Disc. Cut: " + dDiscriminatorFC->baseNameDescription(),
50  dDiscriminatorFC->nBins(), dDiscriminatorFC->lowerBound(),
51  dDiscriminatorFC->upperBound(), false, true, false, "b", label , mcPlots_, ibook );
52  discrCutEfficScan->SetMinimum(1E-4);
53  if (mcPlots_){
54 
55  if(mcPlots_>2){
56  effVersusDiscr_d = discrCutEfficScan->histo_d ();
57  effVersusDiscr_u = discrCutEfficScan->histo_u ();
58  effVersusDiscr_s = discrCutEfficScan->histo_s ();
59  effVersusDiscr_g = discrCutEfficScan->histo_g ();
60  effVersusDiscr_dus = discrCutEfficScan->histo_dus ();
61  }
62  else{
63  effVersusDiscr_d = 0;
64  effVersusDiscr_u = 0;
65  effVersusDiscr_s = 0;
66  effVersusDiscr_g = 0;
68  }
69  effVersusDiscr_c = discrCutEfficScan->histo_c ();
70  effVersusDiscr_b = discrCutEfficScan->histo_b ();
71  effVersusDiscr_ni = discrCutEfficScan->histo_ni ();
72  effVersusDiscr_dusg = discrCutEfficScan->histo_dusg();
73  effVersusDiscr_pu = discrCutEfficScan->histo_pu();
74 
75 
76  if(mcPlots_>2){
77  effVersusDiscr_d->SetXTitle ( "Discriminant" );
78  effVersusDiscr_d->GetXaxis()->SetTitleOffset ( 0.75 );
79  effVersusDiscr_u->SetXTitle ( "Discriminant" );
80  effVersusDiscr_u->GetXaxis()->SetTitleOffset ( 0.75 );
81  effVersusDiscr_s->SetXTitle ( "Discriminant" );
82  effVersusDiscr_s->GetXaxis()->SetTitleOffset ( 0.75 );
83  effVersusDiscr_g->SetXTitle ( "Discriminant" );
84  effVersusDiscr_g->GetXaxis()->SetTitleOffset ( 0.75 );
85  effVersusDiscr_dus->SetXTitle ( "Discriminant" );
86  effVersusDiscr_dus->GetXaxis()->SetTitleOffset ( 0.75 );
87  }
88  effVersusDiscr_c->SetXTitle ( "Discriminant" );
89  effVersusDiscr_c->GetXaxis()->SetTitleOffset ( 0.75 );
90  effVersusDiscr_b->SetXTitle ( "Discriminant" );
91  effVersusDiscr_b->GetXaxis()->SetTitleOffset ( 0.75 );
92  effVersusDiscr_ni->SetXTitle ( "Discriminant" );
93  effVersusDiscr_ni->GetXaxis()->SetTitleOffset ( 0.75 );
94  effVersusDiscr_dusg->SetXTitle ( "Discriminant" );
95  effVersusDiscr_dusg->GetXaxis()->SetTitleOffset ( 0.75 );
96  effVersusDiscr_pu->SetXTitle ( "Discriminant" );
97  effVersusDiscr_pu->GetXaxis()->SetTitleOffset ( 0.75 );
98  }
99  else{
100  effVersusDiscr_d = 0;
101  effVersusDiscr_u = 0;
102  effVersusDiscr_s = 0;
103  effVersusDiscr_c = 0;
104  effVersusDiscr_b = 0;
105  effVersusDiscr_g = 0;
106  effVersusDiscr_ni = 0;
107  effVersusDiscr_dus = 0;
109  effVersusDiscr_pu = 0;
110  }
111 
112  // discr. for computation
113  vector<TH1F*> discrCfHistos = dDiscriminatorFC->getHistoVector();
114 
115  // discr no cut
116  vector<TH1F*> discrNoCutHistos = discrNoCutEffic->getHistoVector();
117 
118  // discr no cut
119  vector<TH1F*> discrCutHistos = discrCutEfficScan->getHistoVector();
120 
121  const int& dimHistos = discrCfHistos.size(); // they all have the same size
122 
123  // DISCR-CUT LOOP:
124  // fill the histos for eff-pur computations by scanning the discriminatorFC histogram
125 
126  // better to loop over bins -> discrCut no longer needed
127  const int& nBins = dDiscriminatorFC->nBins();
128 
129  // loop over flavours
130  for ( int iFlav = 0; iFlav < dimHistos; iFlav++ ) {
131  if (discrCfHistos[iFlav] == 0) continue;
132  discrNoCutHistos[iFlav]->SetXTitle ( "Discriminant" );
133  discrNoCutHistos[iFlav]->GetXaxis()->SetTitleOffset ( 0.75 );
134 
135  // In Root histos, bin counting starts at 1 to nBins.
136  // bin 0 is the underflow, and nBins+1 is the overflow.
137  const double& nJetsFlav = discrCfHistos[iFlav]->GetEntries ();
138  double sum = discrCfHistos[iFlav]->GetBinContent( nBins+1 ); //+1 to get the overflow.
139 
140  for ( int iDiscr = nBins; iDiscr > 0 ; --iDiscr ) {
141  // fill all jets into NoCut histo
142  discrNoCutHistos[iFlav]->SetBinContent ( iDiscr, nJetsFlav );
143  discrNoCutHistos[iFlav]->SetBinError ( iDiscr, sqrt(nJetsFlav) );
144  sum += discrCfHistos[iFlav]->GetBinContent( iDiscr );
145  discrCutHistos[iFlav]->SetBinContent ( iDiscr, sum );
146  discrCutHistos[iFlav]->SetBinError ( iDiscr, sqrt(sum) );
147  }
148  }
149 
150 
151  // divide to get efficiency vs. discriminator cut from absolute numbers
152  discrCutEfficScan->divide ( *discrNoCutEffic ); // does: histos including discriminator cut / flat histo
153  discrCutEfficScan->setEfficiencyFlag();
154 }
double lowerBound() const
void SetMinimum(const double &min)
TH1F * histo_c() const
FlavourHistograms< double > * discrNoCutEffic
std::string baseNameDescription() const
TH1F * histo_dus() const
std::vector< TH1F * > getHistoVector() const
TH1F * histo_b() const
TH1F * histo_g() const
T sqrt(T t)
Definition: SSEVec.h:48
std::string baseNameTitle() const
TH1F * histo_d() const
FlavourHistograms< double > * discrCutEfficScan
std::string histoExtension
TH1F * histo_s() const
unsigned int mcPlots_
TH1F * histo_ni() const
TH1F * histo_u() const
double upperBound() const
void divide(const FlavourHistograms< T > &bHD)
TH1F * histo_dusg() const
TH1F * histo_pu() const
EffPurFromHistos::~EffPurFromHistos ( )

Definition at line 157 of file EffPurFromHistos.cc.

157  {
158  /* delete EffFlavVsBEff_d ;
159  delete EffFlavVsBEff_u ;
160  delete EffFlavVsBEff_s ;
161  delete EffFlavVsBEff_c ;
162  delete EffFlavVsBEff_b ;
163  delete EffFlavVsBEff_g ;
164  delete EffFlavVsBEff_ni ;
165  delete EffFlavVsBEff_dus ;
166  delete EffFlavVsBEff_dusg;
167  if ( fromDiscriminatorDistr) {
168  delete discrNoCutEffic;
169  delete discrCutEfficScan;
170  }*/
171 }

Member Function Documentation

void EffPurFromHistos::check ( )
private

Definition at line 332 of file EffPurFromHistos.cc.

References effVersusDiscr_b, effVersusDiscr_c, effVersusDiscr_d, effVersusDiscr_dus, effVersusDiscr_dusg, effVersusDiscr_g, effVersusDiscr_ni, effVersusDiscr_pu, effVersusDiscr_s, effVersusDiscr_u, Exception, and mcPlots_.

Referenced by EffPurFromHistos().

332  {
333  // number of bins
334 
335  int nBins_d = 0;
336  int nBins_u = 0;
337  int nBins_s = 0;
338  int nBins_g = 0;
339  int nBins_dus = 0;
340  if(mcPlots_>2){
341  nBins_d = effVersusDiscr_d -> GetNbinsX();
342  nBins_u = effVersusDiscr_u -> GetNbinsX();
343  nBins_s = effVersusDiscr_s -> GetNbinsX();
344  nBins_g = effVersusDiscr_g -> GetNbinsX();
345  nBins_dus = effVersusDiscr_dus -> GetNbinsX();
346  }
347  const int& nBins_c = effVersusDiscr_c -> GetNbinsX();
348  const int& nBins_b = effVersusDiscr_b -> GetNbinsX();
349  const int& nBins_ni = effVersusDiscr_ni -> GetNbinsX();
350  const int& nBins_dusg = effVersusDiscr_dusg -> GetNbinsX();
351  const int& nBins_pu = effVersusDiscr_pu -> GetNbinsX();
352 
353  const bool& lNBins =
354  ( (nBins_d == nBins_u &&
355  nBins_d == nBins_s &&
356  nBins_d == nBins_c &&
357  nBins_d == nBins_b &&
358  nBins_d == nBins_g &&
359  nBins_d == nBins_ni &&
360  nBins_d == nBins_dus &&
361  nBins_d == nBins_dusg)||
362  (nBins_c == nBins_b &&
363  nBins_c == nBins_dusg &&
364  nBins_c == nBins_ni &&
365  nBins_c == nBins_pu) );
366 
367  if ( !lNBins ) {
368  throw cms::Exception("Configuration")
369  << "Input histograms do not all have the same number of bins!\n";
370  }
371 
372 
373  // start
374  float sBin_d = 0;
375  float sBin_u = 0;
376  float sBin_s = 0;
377  float sBin_g = 0;
378  float sBin_dus = 0;
379  if(mcPlots_>2){
380  sBin_d = effVersusDiscr_d -> GetBinCenter(1);
381  sBin_u = effVersusDiscr_u -> GetBinCenter(1);
382  sBin_s = effVersusDiscr_s -> GetBinCenter(1);
383  sBin_g = effVersusDiscr_g -> GetBinCenter(1);
384  sBin_dus = effVersusDiscr_dus -> GetBinCenter(1);
385  }
386  const float& sBin_c = effVersusDiscr_c -> GetBinCenter(1);
387  const float& sBin_b = effVersusDiscr_b -> GetBinCenter(1);
388  const float& sBin_ni = effVersusDiscr_ni -> GetBinCenter(1);
389  const float& sBin_dusg = effVersusDiscr_dusg -> GetBinCenter(1);
390  const float& sBin_pu = effVersusDiscr_pu -> GetBinCenter(1);
391 
392  const bool& lSBin =
393  ( (sBin_d == sBin_u &&
394  sBin_d == sBin_s &&
395  sBin_d == sBin_c &&
396  sBin_d == sBin_b &&
397  sBin_d == sBin_g &&
398  sBin_d == sBin_ni &&
399  sBin_d == sBin_dus &&
400  sBin_d == sBin_dusg)||
401  (sBin_c == sBin_b &&
402  sBin_c == sBin_dusg &&
403  sBin_c == sBin_ni &&
404  sBin_c == sBin_pu) );
405 
406  if ( !lSBin ) {
407  throw cms::Exception("Configuration")
408  << "EffPurFromHistos::check() : Input histograms do not all have the same start bin!\n";
409  }
410 
411 
412  // end
413  float eBin_d = 0;
414  float eBin_u = 0;
415  float eBin_s = 0;
416  float eBin_g = 0;
417  float eBin_dus = 0;
418  if(mcPlots_>2){
419  eBin_d = effVersusDiscr_d -> GetBinCenter( nBins_d - 1 );
420  eBin_u = effVersusDiscr_u -> GetBinCenter( nBins_d - 1 );
421  eBin_s = effVersusDiscr_s -> GetBinCenter( nBins_d - 1 );
422  eBin_g = effVersusDiscr_g -> GetBinCenter( nBins_d - 1 );
423  eBin_dus = effVersusDiscr_dus -> GetBinCenter( nBins_d - 1 );
424  }
425  const float& eBin_c = effVersusDiscr_c -> GetBinCenter( nBins_d - 1 );
426  const float& eBin_b = effVersusDiscr_b -> GetBinCenter( nBins_d - 1 );
427  const float& eBin_ni = effVersusDiscr_ni -> GetBinCenter( nBins_d - 1 );
428  const float& eBin_dusg = effVersusDiscr_dusg -> GetBinCenter( nBins_d - 1 );
429  const float& eBin_pu = effVersusDiscr_pu -> GetBinCenter( nBins_d - 1 );
430 
431  const bool& lEBin =
432  ( (eBin_d == eBin_u &&
433  eBin_d == eBin_s &&
434  eBin_d == eBin_c &&
435  eBin_d == eBin_b &&
436  eBin_d == eBin_g &&
437  eBin_d == eBin_ni &&
438  eBin_d == eBin_dus &&
439  eBin_d == eBin_dusg)||
440  (eBin_c == eBin_b &&
441  eBin_c == eBin_dusg &&
442  eBin_c == eBin_ni &&
443  eBin_c == eBin_pu) );
444 
445  if ( !lEBin ) {
446  throw cms::Exception("Configuration")
447  << "EffPurFromHistos::check() : Input histograms do not all have the same end bin!\n";
448  }
449 }
unsigned int mcPlots_
void EffPurFromHistos::compute ( DQMStore::IBooker ibook)

Definition at line 452 of file EffPurFromHistos.cc.

References HistoProviderDQM::book1D(), EffFlavVsBEff_b, EffFlavVsBEff_c, EffFlavVsBEff_d, EffFlavVsBEff_dus, EffFlavVsBEff_dusg, EffFlavVsBEff_g, EffFlavVsBEff_ni, EffFlavVsBEff_pu, EffFlavVsBEff_s, EffFlavVsBEff_u, effVersusDiscr_b, effVersusDiscr_c, effVersusDiscr_d, effVersusDiscr_dus, effVersusDiscr_dusg, effVersusDiscr_g, effVersusDiscr_ni, effVersusDiscr_pu, effVersusDiscr_s, effVersusDiscr_u, endOutput, HcalObjRepresent::Fill(), RecoBTag::findBinClosestYValue(), MonitorElement::getTH1F(), histoExtension, label_, mcPlots_, cuy::nBinB, nBinOutput, MonitorElement::setEfficiencyFlag(), startOutput, and AlCaHLTBitMon_QueryRunRegistry::string.

453 {
454  if (!mcPlots_) {
455 
456  EffFlavVsBEff_d = 0;
457  EffFlavVsBEff_u = 0;
458  EffFlavVsBEff_s = 0;
459  EffFlavVsBEff_c = 0;
460  EffFlavVsBEff_b = 0;
461  EffFlavVsBEff_g = 0;
462  EffFlavVsBEff_ni = 0;
463  EffFlavVsBEff_dus = 0;
464  EffFlavVsBEff_dusg = 0;
465  EffFlavVsBEff_pu = 0;
466 
467  return;
468 
469  }
470 
471 
472  // to have shorter names ......
473  const std::string & hE = histoExtension;
474  const std::string & hB = "FlavEffVsBEff_";
475 
476 
477  // create histograms from base name and extension as given from user
478  // BINNING MUST BE IDENTICAL FOR ALL OF THEM!!
479  HistoProviderDQM prov("Btag",label_,ibook);
480  if(mcPlots_>2){
481  EffFlavVsBEff_d = (prov.book1D ( hB + "D" + hE , hB + "D" + hE , nBinOutput , startOutput , endOutput ));
483  EffFlavVsBEff_u = (prov.book1D ( hB + "U" + hE , hB + "U" + hE , nBinOutput , startOutput , endOutput )) ;
485  EffFlavVsBEff_s = (prov.book1D ( hB + "S" + hE , hB + "S" + hE , nBinOutput , startOutput , endOutput )) ;
487  EffFlavVsBEff_g = (prov.book1D ( hB + "G" + hE , hB + "G" + hE , nBinOutput , startOutput , endOutput )) ;
489  EffFlavVsBEff_dus = (prov.book1D ( hB + "DUS" + hE , hB + "DUS" + hE , nBinOutput , startOutput , endOutput )) ;
491  }
492  else {
493  EffFlavVsBEff_d = 0;
494  EffFlavVsBEff_u = 0;
495  EffFlavVsBEff_s = 0;
496  EffFlavVsBEff_g = 0;
497  EffFlavVsBEff_dus = 0;
498  }
499  EffFlavVsBEff_c = (prov.book1D ( hB + "C" + hE , hB + "C" + hE , nBinOutput , startOutput , endOutput )) ;
501  EffFlavVsBEff_b = (prov.book1D ( hB + "B" + hE , hB + "B" + hE , nBinOutput , startOutput , endOutput )) ;
503  EffFlavVsBEff_ni = (prov.book1D ( hB + "NI" + hE , hB + "NI" + hE , nBinOutput , startOutput , endOutput )) ;
505  EffFlavVsBEff_dusg = (prov.book1D ( hB + "DUSG" + hE , hB + "DUSG" + hE , nBinOutput , startOutput , endOutput )) ;
507  EffFlavVsBEff_pu = (prov.book1D ( hB + "PU" + hE , hB + "PU" + hE , nBinOutput , startOutput , endOutput )) ;
509 
510  if(mcPlots_>2){
511  EffFlavVsBEff_d->getTH1F()->SetXTitle ( "b-jet efficiency" );
512  EffFlavVsBEff_d->getTH1F()->SetYTitle ( "non b-jet efficiency" );
513  EffFlavVsBEff_d->getTH1F()->GetXaxis()->SetTitleOffset ( 0.75 );
514  EffFlavVsBEff_d->getTH1F()->GetYaxis()->SetTitleOffset ( 0.75 );
515  EffFlavVsBEff_u->getTH1F()->SetXTitle ( "b-jet efficiency" );
516  EffFlavVsBEff_u->getTH1F()->SetYTitle ( "non b-jet efficiency" );
517  EffFlavVsBEff_u->getTH1F()->GetXaxis()->SetTitleOffset ( 0.75 );
518  EffFlavVsBEff_u->getTH1F()->GetYaxis()->SetTitleOffset ( 0.75 );
519  EffFlavVsBEff_s->getTH1F()->SetXTitle ( "b-jet efficiency" );
520  EffFlavVsBEff_s->getTH1F()->SetYTitle ( "non b-jet efficiency" );
521  EffFlavVsBEff_s->getTH1F()->GetXaxis()->SetTitleOffset ( 0.75 );
522  EffFlavVsBEff_s->getTH1F()->GetYaxis()->SetTitleOffset ( 0.75 );
523  EffFlavVsBEff_g->getTH1F()->SetXTitle ( "b-jet efficiency" );
524  EffFlavVsBEff_g->getTH1F()->SetYTitle ( "non b-jet efficiency" );
525  EffFlavVsBEff_g->getTH1F()->GetXaxis()->SetTitleOffset ( 0.75 );
526  EffFlavVsBEff_g->getTH1F()->GetYaxis()->SetTitleOffset ( 0.75 );
527  EffFlavVsBEff_dus->getTH1F()->SetXTitle ( "b-jet efficiency" );
528  EffFlavVsBEff_dus->getTH1F()->SetYTitle ( "non b-jet efficiency" );
529  EffFlavVsBEff_dus->getTH1F()->GetXaxis()->SetTitleOffset ( 0.75 );
530  EffFlavVsBEff_dus->getTH1F()->GetYaxis()->SetTitleOffset ( 0.75 );
531  }
532  EffFlavVsBEff_c->getTH1F()->SetXTitle ( "b-jet efficiency" );
533  EffFlavVsBEff_c->getTH1F()->SetYTitle ( "non b-jet efficiency" );
534  EffFlavVsBEff_c->getTH1F()->GetXaxis()->SetTitleOffset ( 0.75 );
535  EffFlavVsBEff_c->getTH1F()->GetYaxis()->SetTitleOffset ( 0.75 );
536  EffFlavVsBEff_b->getTH1F()->SetXTitle ( "b-jet efficiency" );
537  EffFlavVsBEff_b->getTH1F()->SetYTitle ( "b-jet efficiency" );
538  EffFlavVsBEff_b->getTH1F()->GetXaxis()->SetTitleOffset ( 0.75 );
539  EffFlavVsBEff_b->getTH1F()->GetYaxis()->SetTitleOffset ( 0.75 );
540  EffFlavVsBEff_ni->getTH1F()->SetXTitle ( "b-jet efficiency" );
541  EffFlavVsBEff_ni->getTH1F()->SetYTitle ( "non b-jet efficiency" );
542  EffFlavVsBEff_ni->getTH1F()->GetXaxis()->SetTitleOffset ( 0.75 );
543  EffFlavVsBEff_ni->getTH1F()->GetYaxis()->SetTitleOffset ( 0.75 );
544  EffFlavVsBEff_dusg->getTH1F()->SetXTitle ( "b-jet efficiency" );
545  EffFlavVsBEff_dusg->getTH1F()->SetYTitle ( "non b-jet efficiency" );
546  EffFlavVsBEff_dusg->getTH1F()->GetXaxis()->SetTitleOffset ( 0.75 );
547  EffFlavVsBEff_dusg->getTH1F()->GetYaxis()->SetTitleOffset ( 0.75 );
548  EffFlavVsBEff_pu->getTH1F()->SetXTitle ( "b-jet efficiency" );
549  EffFlavVsBEff_pu->getTH1F()->SetYTitle ( "non b-jet efficiency" );
550  EffFlavVsBEff_pu->getTH1F()->GetXaxis()->SetTitleOffset ( 0.75 );
551  EffFlavVsBEff_pu->getTH1F()->GetYaxis()->SetTitleOffset ( 0.75 );
552 
553 
554  // loop over eff. vs. discriminator cut b-histo and look in which bin the closest entry is;
555  // use fact that eff decreases monotonously
556 
557  // any of the histos to be created can be taken here:
558  MonitorElement * EffFlavVsBEff = EffFlavVsBEff_b;
559 
560  const int& nBinB = EffFlavVsBEff->getTH1F()->GetNbinsX();
561 
562  for ( int iBinB = 1; iBinB <= nBinB; iBinB++ ) { // loop over the bins on the x-axis of the histograms to be filled
563 
564  const float& effBBinWidth = EffFlavVsBEff->getTH1F()->GetBinWidth ( iBinB );
565  const float& effBMid = EffFlavVsBEff->getTH1F()->GetBinCenter ( iBinB ); // middle of b-efficiency bin
566  const float& effBLeft = effBMid - 0.5*effBBinWidth; // left edge of bin
567  const float& effBRight = effBMid + 0.5*effBBinWidth; // right edge of bin
568  // find the corresponding bin in the efficiency versus discriminator cut histo: closest one in efficiency
569  const int& binClosest = findBinClosestYValue ( effVersusDiscr_b , effBMid , effBLeft , effBRight );
570  const bool& binFound = ( binClosest > 0 ) ;
571  //
572  if ( binFound ) {
573  // fill the histos
574  if(mcPlots_>2){
575  EffFlavVsBEff_d -> Fill ( effBMid , effVersusDiscr_d ->GetBinContent ( binClosest ) );
576  EffFlavVsBEff_u -> Fill ( effBMid , effVersusDiscr_u ->GetBinContent ( binClosest ) );
577  EffFlavVsBEff_s -> Fill ( effBMid , effVersusDiscr_s ->GetBinContent ( binClosest ) );
578  EffFlavVsBEff_g -> Fill ( effBMid , effVersusDiscr_g ->GetBinContent ( binClosest ) );
579  EffFlavVsBEff_dus -> Fill ( effBMid , effVersusDiscr_dus ->GetBinContent ( binClosest ) );
580  }
581  EffFlavVsBEff_c -> Fill ( effBMid , effVersusDiscr_c ->GetBinContent ( binClosest ) );
582  EffFlavVsBEff_b -> Fill ( effBMid , effVersusDiscr_b ->GetBinContent ( binClosest ) );
583  EffFlavVsBEff_ni -> Fill ( effBMid , effVersusDiscr_ni ->GetBinContent ( binClosest ) );
584  EffFlavVsBEff_dusg -> Fill ( effBMid , effVersusDiscr_dusg->GetBinContent ( binClosest ) );
585  EffFlavVsBEff_pu -> Fill ( effBMid , effVersusDiscr_pu ->GetBinContent ( binClosest ) );
586 
587  if(mcPlots_>2){
588  EffFlavVsBEff_d ->getTH1F() -> SetBinError ( iBinB , effVersusDiscr_d ->GetBinError ( binClosest ) );
589  EffFlavVsBEff_u ->getTH1F() -> SetBinError ( iBinB , effVersusDiscr_u ->GetBinError ( binClosest ) );
590  EffFlavVsBEff_s ->getTH1F() -> SetBinError ( iBinB , effVersusDiscr_s ->GetBinError ( binClosest ) );
591  EffFlavVsBEff_g ->getTH1F() -> SetBinError ( iBinB , effVersusDiscr_g ->GetBinError ( binClosest ) );
592  EffFlavVsBEff_dus->getTH1F() -> SetBinError ( iBinB , effVersusDiscr_dus ->GetBinError ( binClosest ) );
593  }
594  EffFlavVsBEff_c ->getTH1F() -> SetBinError ( iBinB , effVersusDiscr_c ->GetBinError ( binClosest ) );
595  EffFlavVsBEff_b ->getTH1F() -> SetBinError ( iBinB , effVersusDiscr_b ->GetBinError ( binClosest ) );
596  EffFlavVsBEff_ni ->getTH1F() -> SetBinError ( iBinB , effVersusDiscr_ni ->GetBinError ( binClosest ) );
597  EffFlavVsBEff_dusg->getTH1F() -> SetBinError ( iBinB , effVersusDiscr_dusg->GetBinError ( binClosest ) );
598  EffFlavVsBEff_pu ->getTH1F() -> SetBinError ( iBinB , effVersusDiscr_pu ->GetBinError ( binClosest ) );
599  }
600  else {
601  //cout << "Did not find right bin for b-efficiency : " << effBMid << endl;
602  }
603 
604  }
605 
606 }
MonitorElement * EffFlavVsBEff_g
MonitorElement * EffFlavVsBEff_dusg
MonitorElement * EffFlavVsBEff_u
int findBinClosestYValue(const TH1F *, const float &yVal, const float &yLow, const float &yHigh)
Definition: Tools.cc:233
MonitorElement * EffFlavVsBEff_pu
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * EffFlavVsBEff_c
MonitorElement * EffFlavVsBEff_s
std::string histoExtension
TH1F * getTH1F(void) const
MonitorElement * EffFlavVsBEff_d
unsigned int mcPlots_
MonitorElement * EffFlavVsBEff_b
MonitorElement * EffFlavVsBEff_ni
int nBinB
Definition: cuy.py:871
void setEfficiencyFlag(void)
MonitorElement * EffFlavVsBEff_dus
FlavourHistograms<double>* EffPurFromHistos::discriminatorCutEfficScan ( ) const
inline

Definition at line 61 of file EffPurFromHistos.h.

References discrCutEfficScan.

Referenced by TrackCountingTagPlotter::psPlot(), TrackProbabilityTagPlotter::psPlot(), and JetTagPlotter::psPlot().

61 {return discrCutEfficScan;}
FlavourHistograms< double > * discrCutEfficScan
FlavourHistograms<double>* EffPurFromHistos::discriminatorNoCutEffic ( ) const
inline

Definition at line 60 of file EffPurFromHistos.h.

References discrNoCutEffic.

Referenced by TrackCountingTagPlotter::psPlot(), TrackProbabilityTagPlotter::psPlot(), and JetTagPlotter::psPlot().

60 {return discrNoCutEffic;}
FlavourHistograms< double > * discrNoCutEffic
void EffPurFromHistos::epsPlot ( const std::string &  name)

Definition at line 176 of file EffPurFromHistos.cc.

References discrCutEfficScan, discrNoCutEffic, FlavourHistograms< T >::epsPlot(), fromDiscriminatorDistr, and plot().

Referenced by JetTagPlotter::epsPlot().

177 {
178  if ( fromDiscriminatorDistr) {
181  }
182  plot(name, ".eps");
183 }
FlavourHistograms< double > * discrNoCutEffic
void epsPlot(const std::string &name)
void plot(TPad *theCanvas=0)
FlavourHistograms< double > * discrCutEfficScan
TH1F* EffPurFromHistos::getEffFlavVsBEff_b ( )
inline

Definition at line 41 of file EffPurFromHistos.h.

References EffFlavVsBEff_b, and MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

41 { return EffFlavVsBEff_b ->getTH1F() ; };
TH1F * getTH1F(void) const
MonitorElement * EffFlavVsBEff_b
TH1F* EffPurFromHistos::getEffFlavVsBEff_c ( )
inline

Definition at line 40 of file EffPurFromHistos.h.

References EffFlavVsBEff_c, and MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

40 { return EffFlavVsBEff_c ->getTH1F() ; };
MonitorElement * EffFlavVsBEff_c
TH1F * getTH1F(void) const
TH1F* EffPurFromHistos::getEffFlavVsBEff_d ( )
inline

Definition at line 37 of file EffPurFromHistos.h.

References EffFlavVsBEff_d, and MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

37 { return EffFlavVsBEff_d->getTH1F() ; };
TH1F * getTH1F(void) const
MonitorElement * EffFlavVsBEff_d
TH1F* EffPurFromHistos::getEffFlavVsBEff_dus ( )
inline

Definition at line 44 of file EffPurFromHistos.h.

References EffFlavVsBEff_dus, and MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

44 { return EffFlavVsBEff_dus ->getTH1F() ; };
TH1F * getTH1F(void) const
MonitorElement * EffFlavVsBEff_dus
TH1F* EffPurFromHistos::getEffFlavVsBEff_dusg ( )
inline

Definition at line 45 of file EffPurFromHistos.h.

References EffFlavVsBEff_dusg, and MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

45 { return EffFlavVsBEff_dusg ->getTH1F(); };
MonitorElement * EffFlavVsBEff_dusg
TH1F * getTH1F(void) const
TH1F* EffPurFromHistos::getEffFlavVsBEff_g ( )
inline

Definition at line 42 of file EffPurFromHistos.h.

References EffFlavVsBEff_g, and MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

42 { return EffFlavVsBEff_g ->getTH1F() ; };
MonitorElement * EffFlavVsBEff_g
TH1F * getTH1F(void) const
TH1F* EffPurFromHistos::getEffFlavVsBEff_ni ( )
inline

Definition at line 43 of file EffPurFromHistos.h.

References EffFlavVsBEff_ni, and MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

43 { return EffFlavVsBEff_ni ->getTH1F() ; };
TH1F * getTH1F(void) const
MonitorElement * EffFlavVsBEff_ni
TH1F* EffPurFromHistos::getEffFlavVsBEff_pu ( )
inline

Definition at line 46 of file EffPurFromHistos.h.

References EffFlavVsBEff_pu, and MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

46 { return EffFlavVsBEff_pu ->getTH1F(); };
MonitorElement * EffFlavVsBEff_pu
TH1F * getTH1F(void) const
TH1F* EffPurFromHistos::getEffFlavVsBEff_s ( )
inline

Definition at line 39 of file EffPurFromHistos.h.

References EffFlavVsBEff_s, and MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

39 { return EffFlavVsBEff_s ->getTH1F() ; };
MonitorElement * EffFlavVsBEff_s
TH1F * getTH1F(void) const
TH1F* EffPurFromHistos::getEffFlavVsBEff_u ( )
inline

Definition at line 38 of file EffPurFromHistos.h.

References EffFlavVsBEff_u, and MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

38 { return EffFlavVsBEff_u->getTH1F() ; };
MonitorElement * EffFlavVsBEff_u
TH1F * getTH1F(void) const
void EffPurFromHistos::plot ( TPad *  theCanvas = 0)

Definition at line 198 of file EffPurFromHistos.cc.

References alignCSCRings::e, EffFlavVsBEff_b, EffFlavVsBEff_c, EffFlavVsBEff_d, EffFlavVsBEff_dus, EffFlavVsBEff_dusg, EffFlavVsBEff_g, EffFlavVsBEff_ni, EffFlavVsBEff_pu, EffFlavVsBEff_s, EffFlavVsBEff_u, MonitorElement::getTH1F(), mcPlots_, and setTDRStyle().

Referenced by cuy.FindIssue::__init__(), epsPlot(), plot(), TrackCountingTagPlotter::psPlot(), TrackProbabilityTagPlotter::psPlot(), JetTagPlotter::psPlot(), and psPlot().

198  {
199 
200 //fixme:
201  bool btppNI = false;
202  bool btppColour = true;
203 
204 // if ( !btppTitle ) gStyle->SetOptTitle ( 0 );
205  setTDRStyle()->cd();
206 
207  if (plotCanvas)
208  plotCanvas->cd();
209 
210  gPad->UseCurrentStyle();
211  gPad->SetFillColor ( 0 );
212  gPad->SetLogy ( 1 );
213  gPad->SetGridx ( 1 );
214  gPad->SetGridy ( 1 );
215 
216  int col_c ;
217  int col_g ;
218  int col_dus;
219  int col_ni ;
220 
221  int mStyle_c ;
222  int mStyle_g ;
223  int mStyle_dus;
224  int mStyle_ni ;
225 
226  // marker size (same for all)
227  float mSize = gPad->GetWh() * gPad->GetHNDC() / 500.; //1.2;
228 
229  if ( btppColour ) {
230  col_c = 6;
231  col_g = 3; // g in green
232  col_dus = 4; // uds in blue
233  col_ni = 5; // ni in ??
234  mStyle_c = 20;
235  mStyle_g = 20;
236  mStyle_dus = 20;
237  mStyle_ni = 20;
238  }
239  else {
240  col_c = 1;
241  col_g = 1;
242  col_dus = 1;
243  col_ni = 1;
244  mStyle_c = 22;
245  mStyle_g = 29;
246  mStyle_dus = 20;
247  mStyle_ni = 27;
248  }
249 
250 
251  // for the moment: plot c,dus,g
252  if(mcPlots_>2){
253  EffFlavVsBEff_dus ->getTH1F()->GetXaxis()->SetTitle ( "b-jet efficiency" );
254  EffFlavVsBEff_dus ->getTH1F()->GetYaxis()->SetTitle ( "non b-jet efficiency" );
255  EffFlavVsBEff_dus ->getTH1F()->GetYaxis()->SetTitleOffset ( 0.25 );
256  EffFlavVsBEff_dus ->getTH1F()->SetMaximum ( 1.1 );
257  EffFlavVsBEff_dus ->getTH1F()->SetMinimum ( 1.e-5 );
258  EffFlavVsBEff_dus ->getTH1F()->SetMarkerColor ( col_dus );
259  EffFlavVsBEff_dus ->getTH1F()->SetLineColor ( col_dus );
260  EffFlavVsBEff_dus ->getTH1F()->SetMarkerSize ( mSize );
261  EffFlavVsBEff_dus ->getTH1F()->SetMarkerStyle ( mStyle_dus );
262  EffFlavVsBEff_dus ->getTH1F()->SetStats ( false );
263  EffFlavVsBEff_dus ->getTH1F()->Draw("pe");
264 
265  EffFlavVsBEff_g ->getTH1F()->SetMarkerColor ( col_g );
266  EffFlavVsBEff_g ->getTH1F()->SetLineColor ( col_g );
267  EffFlavVsBEff_g ->getTH1F()->SetMarkerSize ( mSize );
268  EffFlavVsBEff_g ->getTH1F()->SetMarkerStyle ( mStyle_g );
269  EffFlavVsBEff_g ->getTH1F()->SetStats ( false );
270  EffFlavVsBEff_g ->getTH1F()->Draw("peSame");
271  }
272  EffFlavVsBEff_c ->getTH1F()->SetMarkerColor ( col_c );
273  EffFlavVsBEff_c ->getTH1F()->SetLineColor ( col_c );
274  EffFlavVsBEff_c ->getTH1F()->SetMarkerSize ( mSize );
275  EffFlavVsBEff_c ->getTH1F()->SetMarkerStyle ( mStyle_c );
276  EffFlavVsBEff_c ->getTH1F()->SetStats ( false );
277  EffFlavVsBEff_c ->getTH1F()->Draw("peSame");
278 
279  if(mcPlots_>2){
280  EffFlavVsBEff_d ->getTH1F()-> SetMinimum(0.01);
281  EffFlavVsBEff_u ->getTH1F()-> SetMinimum(0.01);
282  EffFlavVsBEff_s ->getTH1F()-> SetMinimum(0.01);
283  EffFlavVsBEff_g ->getTH1F()-> SetMinimum(0.01);
284  EffFlavVsBEff_dus ->getTH1F()-> SetMinimum(0.01);
285  }
286  EffFlavVsBEff_c ->getTH1F()-> SetMinimum(0.01);
287  EffFlavVsBEff_b ->getTH1F()-> SetMinimum(0.01);
288  EffFlavVsBEff_ni ->getTH1F()-> SetMinimum(0.01);
289  EffFlavVsBEff_dusg ->getTH1F()-> SetMinimum(0.01);
290  EffFlavVsBEff_pu ->getTH1F()-> SetMinimum(0.01);
291 
292  // plot separately u,d and s
293 // EffFlavVsBEff_d ->GetXaxis()->SetTitle ( "b-jet efficiency" );
294 // EffFlavVsBEff_d ->GetYaxis()->SetTitle ( "non b-jet efficiency" );
295 // EffFlavVsBEff_d ->GetYaxis()->SetTitleOffset ( 1.25 );
296 // EffFlavVsBEff_d ->SetMaximum ( 1.1 );
297 // EffFlavVsBEff_d ->SetMinimum ( 1.e-5 );
298 // EffFlavVsBEff_d ->SetMarkerColor ( col_dus );
299 // EffFlavVsBEff_d ->SetLineColor ( col_dus );
300 // EffFlavVsBEff_d ->SetMarkerSize ( mSize );
301 // EffFlavVsBEff_d ->SetMarkerStyle ( mStyle_dus );
302 // EffFlavVsBEff_d ->SetStats ( false );
303 // EffFlavVsBEff_d ->Draw("pe");
304 //
305 // EffFlavVsBEff_u ->SetMarkerColor ( col_g );
306 // EffFlavVsBEff_u ->SetLineColor ( col_g );
307 // EffFlavVsBEff_u ->SetMarkerSize ( mSize );
308 // EffFlavVsBEff_u ->SetMarkerStyle ( mStyle_g );
309 // EffFlavVsBEff_u ->SetStats ( false );
310 // EffFlavVsBEff_u ->Draw("peSame");
311 //
312 // EffFlavVsBEff_s ->SetMarkerColor ( col_c );
313 // EffFlavVsBEff_s ->SetLineColor ( col_c );
314 // EffFlavVsBEff_s ->SetMarkerSize ( mSize );
315 // EffFlavVsBEff_s ->SetMarkerStyle ( mStyle_c );
316 // EffFlavVsBEff_s ->SetStats ( false );
317 // EffFlavVsBEff_s ->Draw("peSame");
318 
319  // only if asked: NI
320  if ( btppNI ) {
321  EffFlavVsBEff_ni ->getTH1F()->SetMarkerColor ( col_ni );
322  EffFlavVsBEff_ni ->getTH1F()->SetLineColor ( col_ni );
323  EffFlavVsBEff_ni ->getTH1F()->SetMarkerSize ( mSize );
324  EffFlavVsBEff_ni ->getTH1F()->SetMarkerStyle ( mStyle_ni );
325  EffFlavVsBEff_ni ->getTH1F()->SetStats ( false );
326  EffFlavVsBEff_ni ->getTH1F()->Draw("peSame");
327  }
328 
329 }
MonitorElement * EffFlavVsBEff_g
MonitorElement * EffFlavVsBEff_dusg
MonitorElement * EffFlavVsBEff_u
MonitorElement * EffFlavVsBEff_pu
MonitorElement * EffFlavVsBEff_c
MonitorElement * EffFlavVsBEff_s
TH1F * getTH1F(void) const
MonitorElement * EffFlavVsBEff_d
unsigned int mcPlots_
MonitorElement * EffFlavVsBEff_b
void setTDRStyle()
Definition: plotscripts.py:87
MonitorElement * EffFlavVsBEff_ni
MonitorElement * EffFlavVsBEff_dus
void EffPurFromHistos::plot ( const std::string &  name,
const std::string &  ext 
)

Definition at line 190 of file EffPurFromHistos.cc.

References histoExtension, and plot().

Referenced by cuy.FindIssue::__init__().

191 {
192  TCanvas tc (("FlavEffVsBEff" +histoExtension).c_str() ,
193  ("Flavour misidentification vs. b-tagging efficiency " + histoExtension).c_str());
194  plot(&tc);
195  tc.Print((name + "FlavEffVsBEff" + histoExtension + ext).c_str());
196 }
void plot(TPad *theCanvas=0)
std::string histoExtension
void EffPurFromHistos::psPlot ( const std::string &  name)

Definition at line 185 of file EffPurFromHistos.cc.

References plot().

186 {
187  plot(name, ".ps");
188 }
void plot(TPad *theCanvas=0)

Member Data Documentation

FlavourHistograms<double> * EffPurFromHistos::discrCutEfficScan
private

Definition at line 74 of file EffPurFromHistos.h.

Referenced by discriminatorCutEfficScan(), EffPurFromHistos(), and epsPlot().

FlavourHistograms<double>* EffPurFromHistos::discrNoCutEffic
private

Definition at line 74 of file EffPurFromHistos.h.

Referenced by discriminatorNoCutEffic(), EffPurFromHistos(), and epsPlot().

MonitorElement* EffPurFromHistos::EffFlavVsBEff_b
private

Definition at line 106 of file EffPurFromHistos.h.

Referenced by compute(), getEffFlavVsBEff_b(), and plot().

MonitorElement* EffPurFromHistos::EffFlavVsBEff_c
private

Definition at line 105 of file EffPurFromHistos.h.

Referenced by compute(), getEffFlavVsBEff_c(), and plot().

MonitorElement* EffPurFromHistos::EffFlavVsBEff_d
private

Definition at line 102 of file EffPurFromHistos.h.

Referenced by compute(), getEffFlavVsBEff_d(), and plot().

MonitorElement* EffPurFromHistos::EffFlavVsBEff_dus
private

Definition at line 109 of file EffPurFromHistos.h.

Referenced by compute(), getEffFlavVsBEff_dus(), and plot().

MonitorElement* EffPurFromHistos::EffFlavVsBEff_dusg
private

Definition at line 110 of file EffPurFromHistos.h.

Referenced by compute(), getEffFlavVsBEff_dusg(), and plot().

MonitorElement* EffPurFromHistos::EffFlavVsBEff_g
private

Definition at line 107 of file EffPurFromHistos.h.

Referenced by compute(), getEffFlavVsBEff_g(), and plot().

MonitorElement* EffPurFromHistos::EffFlavVsBEff_ni
private

Definition at line 108 of file EffPurFromHistos.h.

Referenced by compute(), getEffFlavVsBEff_ni(), and plot().

MonitorElement* EffPurFromHistos::EffFlavVsBEff_pu
private

Definition at line 111 of file EffPurFromHistos.h.

Referenced by compute(), getEffFlavVsBEff_pu(), and plot().

MonitorElement* EffPurFromHistos::EffFlavVsBEff_s
private

Definition at line 104 of file EffPurFromHistos.h.

Referenced by compute(), getEffFlavVsBEff_s(), and plot().

MonitorElement* EffPurFromHistos::EffFlavVsBEff_u
private

Definition at line 103 of file EffPurFromHistos.h.

Referenced by compute(), getEffFlavVsBEff_u(), and plot().

TH1F* EffPurFromHistos::effVersusDiscr_b
private

Definition at line 84 of file EffPurFromHistos.h.

Referenced by check(), compute(), and EffPurFromHistos().

TH1F* EffPurFromHistos::effVersusDiscr_c
private

Definition at line 83 of file EffPurFromHistos.h.

Referenced by check(), compute(), and EffPurFromHistos().

TH1F* EffPurFromHistos::effVersusDiscr_d
private

Definition at line 80 of file EffPurFromHistos.h.

Referenced by check(), compute(), and EffPurFromHistos().

TH1F* EffPurFromHistos::effVersusDiscr_dus
private

Definition at line 87 of file EffPurFromHistos.h.

Referenced by check(), compute(), and EffPurFromHistos().

TH1F* EffPurFromHistos::effVersusDiscr_dusg
private

Definition at line 88 of file EffPurFromHistos.h.

Referenced by check(), compute(), and EffPurFromHistos().

TH1F* EffPurFromHistos::effVersusDiscr_g
private

Definition at line 85 of file EffPurFromHistos.h.

Referenced by check(), compute(), and EffPurFromHistos().

TH1F* EffPurFromHistos::effVersusDiscr_ni
private

Definition at line 86 of file EffPurFromHistos.h.

Referenced by check(), compute(), and EffPurFromHistos().

TH1F* EffPurFromHistos::effVersusDiscr_pu
private

Definition at line 89 of file EffPurFromHistos.h.

Referenced by check(), compute(), and EffPurFromHistos().

TH1F* EffPurFromHistos::effVersusDiscr_s
private

Definition at line 82 of file EffPurFromHistos.h.

Referenced by check(), compute(), and EffPurFromHistos().

TH1F* EffPurFromHistos::effVersusDiscr_u
private

Definition at line 81 of file EffPurFromHistos.h.

Referenced by check(), compute(), and EffPurFromHistos().

double EffPurFromHistos::endOutput
private

Definition at line 97 of file EffPurFromHistos.h.

Referenced by compute().

bool EffPurFromHistos::fromDiscriminatorDistr
private

Definition at line 68 of file EffPurFromHistos.h.

Referenced by epsPlot().

std::string EffPurFromHistos::histoExtension
private

Definition at line 72 of file EffPurFromHistos.h.

Referenced by compute(), EffPurFromHistos(), and plot().

std::string EffPurFromHistos::label_
private
unsigned int EffPurFromHistos::mcPlots_
private

Definition at line 99 of file EffPurFromHistos.h.

Referenced by check(), compute(), EffPurFromHistos(), and plot().

int EffPurFromHistos::nBinOutput
private

Definition at line 95 of file EffPurFromHistos.h.

Referenced by compute().

double EffPurFromHistos::startOutput
private

Definition at line 96 of file EffPurFromHistos.h.

Referenced by compute().