CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
EffPurFromHistos Class Reference

#include <EffPurFromHistos.h>

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 

Public Member Functions

void compute (DQMStore::IBooker &ibook)
 
FlavourHistograms< double > & discriminatorCutEfficScan () const
 
FlavourHistograms< double > & discriminatorNoCutEffic () const
 
bool doCTagPlots (bool Ctag)
 
 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, unsigned int mc, int nBin=100, double startO=0.005, double endO=1.005)
 
 EffPurFromHistos (const FlavourHistograms< double > &dDiscriminatorFC, const std::string &label, 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

std::unique_ptr< FlavourHistograms< double > > discrCutEfficScan
 
std::unique_ptr< FlavourHistograms< double > > discrNoCutEffic
 
bool doCTagPlots_
 
MonitorElementEffFlavVsXEff_b
 
MonitorElementEffFlavVsXEff_c
 
MonitorElementEffFlavVsXEff_d
 
MonitorElementEffFlavVsXEff_dus
 
MonitorElementEffFlavVsXEff_dusg
 
MonitorElementEffFlavVsXEff_g
 
MonitorElementEffFlavVsXEff_ni
 
MonitorElementEffFlavVsXEff_pu
 
MonitorElementEffFlavVsXEff_s
 
MonitorElementEffFlavVsXEff_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 13 of file EffPurFromHistos.h.

Member Typedef Documentation

Definition at line 15 of file EffPurFromHistos.h.

Definition at line 16 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,
unsigned int  mc,
int  nBin = 100,
double  startO = 0.005,
double  endO = 1.005 
)

Definition at line 16 of file EffPurFromHistos.cc.

References check().

32  : fromDiscriminatorDistr(false),
33  mcPlots_(mc),
34  doCTagPlots_(false),
35  label_(label),
37  effVersusDiscr_d(h_d),
38  effVersusDiscr_u(h_u),
39  effVersusDiscr_s(h_s),
40  effVersusDiscr_c(h_c),
41  effVersusDiscr_b(h_b),
42  effVersusDiscr_g(h_g),
43  effVersusDiscr_ni(h_ni),
44  effVersusDiscr_dus(h_dus),
45  effVersusDiscr_dusg(h_dusg),
46  effVersusDiscr_pu(h_pu),
48  startOutput(startO),
49  endOutput(endO) {
50  // consistency check
51  check();
52 }
std::string label_
char const * label
std::string histoExtension
unsigned int mcPlots_
Definition: memstream.h:15
EffPurFromHistos::EffPurFromHistos ( const FlavourHistograms< double > &  dDiscriminatorFC,
const std::string &  label,
unsigned int  mc,
DQMStore::IBooker ibook,
int  nBin = 100,
double  startO = 0.005,
double  endO = 1.005 
)

Definition at line 54 of file EffPurFromHistos.cc.

References FlavourHistograms< T >::baseNameDescription(), FlavourHistograms< T >::baseNameTitle(), discrCutEfficScan, discrNoCutEffic, effVersusDiscr_b, effVersusDiscr_c, effVersusDiscr_d, effVersusDiscr_dus, effVersusDiscr_dusg, effVersusDiscr_g, effVersusDiscr_ni, effVersusDiscr_pu, effVersusDiscr_s, effVersusDiscr_u, FlavourHistograms< T >::getHistoVector(), histoExtension, label, FlavourHistograms< T >::lowerBound(), mcPlots_, seedmultiplicitymonitor_newtracking_cfi::nBins, FlavourHistograms< T >::nBins(), mathSSE::sqrt(), and FlavourHistograms< T >::upperBound().

61  : fromDiscriminatorDistr(true),
62  mcPlots_(mc),
63  doCTagPlots_(false),
64  label_(label),
66  startOutput(startO),
67  endOutput(endO) {
68  histoExtension = "_" + dDiscriminatorFC.baseNameTitle();
69 
70  discrNoCutEffic.reset(new FlavourHistograms<double>("totalEntries" + histoExtension,
71  "Total Entries: " + dDiscriminatorFC.baseNameDescription(),
72  dDiscriminatorFC.nBins(),
73  dDiscriminatorFC.lowerBound(),
74  dDiscriminatorFC.upperBound(),
75  false,
76  true,
77  false,
78  "b",
79  label,
80  mcPlots_,
81  ibook));
82 
83  // conditional discriminator cut for efficiency histos
84 
86  "Eff. vs Disc. Cut: " + dDiscriminatorFC.baseNameDescription(),
87  dDiscriminatorFC.nBins(),
88  dDiscriminatorFC.lowerBound(),
89  dDiscriminatorFC.upperBound(),
90  false,
91  true,
92  false,
93  "b",
94  label,
95  mcPlots_,
96  ibook));
97  discrCutEfficScan->SetMinimum(1E-4);
98  if (mcPlots_) {
99  if (mcPlots_ > 2) {
100  effVersusDiscr_d = discrCutEfficScan->histo_d();
101  effVersusDiscr_u = discrCutEfficScan->histo_u();
102  effVersusDiscr_s = discrCutEfficScan->histo_s();
103  effVersusDiscr_g = discrCutEfficScan->histo_g();
104  effVersusDiscr_dus = discrCutEfficScan->histo_dus();
105  } else {
106  effVersusDiscr_d = nullptr;
107  effVersusDiscr_u = nullptr;
108  effVersusDiscr_s = nullptr;
109  effVersusDiscr_g = nullptr;
110  effVersusDiscr_dus = nullptr;
111  }
112  effVersusDiscr_c = discrCutEfficScan->histo_c();
113  effVersusDiscr_b = discrCutEfficScan->histo_b();
114  effVersusDiscr_ni = discrCutEfficScan->histo_ni();
115  effVersusDiscr_dusg = discrCutEfficScan->histo_dusg();
116  effVersusDiscr_pu = discrCutEfficScan->histo_pu();
117 
118  if (mcPlots_ > 2) {
119  effVersusDiscr_d->SetXTitle("Discriminant");
120  effVersusDiscr_d->GetXaxis()->SetTitleOffset(0.75);
121  effVersusDiscr_u->SetXTitle("Discriminant");
122  effVersusDiscr_u->GetXaxis()->SetTitleOffset(0.75);
123  effVersusDiscr_s->SetXTitle("Discriminant");
124  effVersusDiscr_s->GetXaxis()->SetTitleOffset(0.75);
125  effVersusDiscr_g->SetXTitle("Discriminant");
126  effVersusDiscr_g->GetXaxis()->SetTitleOffset(0.75);
127  effVersusDiscr_dus->SetXTitle("Discriminant");
128  effVersusDiscr_dus->GetXaxis()->SetTitleOffset(0.75);
129  }
130  effVersusDiscr_c->SetXTitle("Discriminant");
131  effVersusDiscr_c->GetXaxis()->SetTitleOffset(0.75);
132  effVersusDiscr_b->SetXTitle("Discriminant");
133  effVersusDiscr_b->GetXaxis()->SetTitleOffset(0.75);
134  effVersusDiscr_ni->SetXTitle("Discriminant");
135  effVersusDiscr_ni->GetXaxis()->SetTitleOffset(0.75);
136  effVersusDiscr_dusg->SetXTitle("Discriminant");
137  effVersusDiscr_dusg->GetXaxis()->SetTitleOffset(0.75);
138  effVersusDiscr_pu->SetXTitle("Discriminant");
139  effVersusDiscr_pu->GetXaxis()->SetTitleOffset(0.75);
140  } else {
141  effVersusDiscr_d = nullptr;
142  effVersusDiscr_u = nullptr;
143  effVersusDiscr_s = nullptr;
144  effVersusDiscr_c = nullptr;
145  effVersusDiscr_b = nullptr;
146  effVersusDiscr_g = nullptr;
147  effVersusDiscr_ni = nullptr;
148  effVersusDiscr_dus = nullptr;
149  effVersusDiscr_dusg = nullptr;
150  effVersusDiscr_pu = nullptr;
151  }
152 
153  // discr. for computation
154  vector<TH1F*> discrCfHistos = dDiscriminatorFC.getHistoVector();
155 
156  // discr no cut
157  vector<TH1F*> discrNoCutHistos = discrNoCutEffic->getHistoVector();
158 
159  // discr no cut
160  vector<TH1F*> discrCutHistos = discrCutEfficScan->getHistoVector();
161 
162  const int& dimHistos = discrCfHistos.size(); // they all have the same size
163 
164  // DISCR-CUT LOOP:
165  // fill the histos for eff-pur computations by scanning the discriminatorFC histogram
166 
167  // better to loop over bins -> discrCut no longer needed
168  const int& nBins = dDiscriminatorFC.nBins();
169 
170  // loop over flavours
171  for (int iFlav = 0; iFlav < dimHistos; iFlav++) {
172  if (discrCfHistos[iFlav] == nullptr)
173  continue;
174  discrNoCutHistos[iFlav]->SetXTitle("Discriminant");
175  discrNoCutHistos[iFlav]->GetXaxis()->SetTitleOffset(0.75);
176 
177  // In Root histos, bin counting starts at 1 to nBins.
178  // bin 0 is the underflow, and nBins+1 is the overflow.
179  const double& nJetsFlav = discrCfHistos[iFlav]->GetEntries();
180  double sum = discrCfHistos[iFlav]->GetBinContent(nBins + 1); //+1 to get the overflow.
181 
182  for (int iDiscr = nBins; iDiscr > 0; --iDiscr) {
183  // fill all jets into NoCut histo
184  discrNoCutHistos[iFlav]->SetBinContent(iDiscr, nJetsFlav);
185  discrNoCutHistos[iFlav]->SetBinError(iDiscr, sqrt(nJetsFlav));
186  sum += discrCfHistos[iFlav]->GetBinContent(iDiscr);
187  discrCutHistos[iFlav]->SetBinContent(iDiscr, sum);
188  discrCutHistos[iFlav]->SetBinError(iDiscr, sqrt(sum));
189  }
190  }
191 
192  // divide to get efficiency vs. discriminator cut from absolute numbers
193  discrCutEfficScan->divide(*discrNoCutEffic); // does: histos including discriminator cut / flat histo
194  discrCutEfficScan->setEfficiencyFlag();
195 }
double lowerBound() const
std::unique_ptr< FlavourHistograms< double > > discrNoCutEffic
std::string label_
std::string baseNameDescription() const
std::vector< TH1F * > getHistoVector() const
std::unique_ptr< FlavourHistograms< double > > discrCutEfficScan
char const * label
T sqrt(T t)
Definition: SSEVec.h:19
std::string baseNameTitle() const
std::string histoExtension
unsigned int mcPlots_
double upperBound() const
EffPurFromHistos::~EffPurFromHistos ( )

Definition at line 197 of file EffPurFromHistos.cc.

197 {}

Member Function Documentation

void EffPurFromHistos::check ( )
private

Definition at line 361 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 doCTagPlots(), and EffPurFromHistos().

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

Definition at line 447 of file EffPurFromHistos.cc.

References HistoProviderDQM::book1D(), doCTagPlots_, EffFlavVsXEff_b, EffFlavVsXEff_c, EffFlavVsXEff_d, EffFlavVsXEff_dus, EffFlavVsXEff_dusg, EffFlavVsXEff_g, EffFlavVsXEff_ni, EffFlavVsXEff_pu, EffFlavVsXEff_s, EffFlavVsXEff_u, effVersusDiscr_b, effVersusDiscr_c, effVersusDiscr_d, effVersusDiscr_dus, effVersusDiscr_dusg, effVersusDiscr_g, effVersusDiscr_ni, effVersusDiscr_pu, effVersusDiscr_s, effVersusDiscr_u, endOutput, dqm::impl::MonitorElement::Fill(), RecoBTag::findBinClosestYValue(), dqm::legacy::MonitorElement::getTH1F(), histoExtension, label_, mcPlots_, nBinOutput, anotherprimaryvertexanalyzer_cfi::nBinX, dqm::impl::MonitorElement::setEfficiencyFlag(), startOutput, and AlCaHLTBitMon_QueryRunRegistry::string.

447  {
448  if (!mcPlots_) {
449  EffFlavVsXEff_d = nullptr;
450  EffFlavVsXEff_u = nullptr;
451  EffFlavVsXEff_s = nullptr;
452  EffFlavVsXEff_c = nullptr;
453  EffFlavVsXEff_b = nullptr;
454  EffFlavVsXEff_g = nullptr;
455  EffFlavVsXEff_ni = nullptr;
456  EffFlavVsXEff_dus = nullptr;
457  EffFlavVsXEff_dusg = nullptr;
458  EffFlavVsXEff_pu = nullptr;
459  return;
460  }
461 
462  // to have shorter names ......
463  const std::string& hE = histoExtension;
464  std::string hX = "";
465  TString Title = "";
466  if (!doCTagPlots_) {
467  hX = "FlavEffVsBEff_";
468  Title = "b";
469  } else {
470  hX = "FlavEffVsCEff_";
471  Title = "c";
472  }
473 
474  // create histograms from base name and extension as given from user
475  // BINNING MUST BE IDENTICAL FOR ALL OF THEM!!
476  HistoProviderDQM prov("Btag", label_, ibook);
477  if (mcPlots_ > 2) {
478  EffFlavVsXEff_d = (prov.book1D(hX + "D" + hE, hX + "D" + hE, nBinOutput, startOutput, endOutput));
480  EffFlavVsXEff_u = (prov.book1D(hX + "U" + hE, hX + "U" + hE, nBinOutput, startOutput, endOutput));
482  EffFlavVsXEff_s = (prov.book1D(hX + "S" + hE, hX + "S" + hE, nBinOutput, startOutput, endOutput));
484  EffFlavVsXEff_g = (prov.book1D(hX + "G" + hE, hX + "G" + hE, nBinOutput, startOutput, endOutput));
486  EffFlavVsXEff_dus = (prov.book1D(hX + "DUS" + hE, hX + "DUS" + hE, nBinOutput, startOutput, endOutput));
488  } else {
489  EffFlavVsXEff_d = nullptr;
490  EffFlavVsXEff_u = nullptr;
491  EffFlavVsXEff_s = nullptr;
492  EffFlavVsXEff_g = nullptr;
493  EffFlavVsXEff_dus = nullptr;
494  }
495  EffFlavVsXEff_c = (prov.book1D(hX + "C" + hE, hX + "C" + hE, nBinOutput, startOutput, endOutput));
497  EffFlavVsXEff_b = (prov.book1D(hX + "B" + hE, hX + "B" + hE, nBinOutput, startOutput, endOutput));
499  EffFlavVsXEff_ni = (prov.book1D(hX + "NI" + hE, hX + "NI" + hE, nBinOutput, startOutput, endOutput));
501  EffFlavVsXEff_dusg = (prov.book1D(hX + "DUSG" + hE, hX + "DUSG" + hE, nBinOutput, startOutput, endOutput));
503  EffFlavVsXEff_pu = (prov.book1D(hX + "PU" + hE, hX + "PU" + hE, nBinOutput, startOutput, endOutput));
505 
506  if (mcPlots_ > 2) {
507  EffFlavVsXEff_d->getTH1F()->SetXTitle(Title + "-jet efficiency");
508  EffFlavVsXEff_d->getTH1F()->SetYTitle("non " + Title + "-jet efficiency");
509  EffFlavVsXEff_d->getTH1F()->GetXaxis()->SetTitleOffset(0.75);
510  EffFlavVsXEff_d->getTH1F()->GetYaxis()->SetTitleOffset(0.75);
511  EffFlavVsXEff_u->getTH1F()->SetXTitle(Title + "-jet efficiency");
512  EffFlavVsXEff_u->getTH1F()->SetYTitle("non " + Title + "-jet efficiency");
513  EffFlavVsXEff_u->getTH1F()->GetXaxis()->SetTitleOffset(0.75);
514  EffFlavVsXEff_u->getTH1F()->GetYaxis()->SetTitleOffset(0.75);
515  EffFlavVsXEff_s->getTH1F()->SetXTitle(Title + "-jet efficiency");
516  EffFlavVsXEff_s->getTH1F()->SetYTitle("non " + Title + "-jet efficiency");
517  EffFlavVsXEff_s->getTH1F()->GetXaxis()->SetTitleOffset(0.75);
518  EffFlavVsXEff_s->getTH1F()->GetYaxis()->SetTitleOffset(0.75);
519  EffFlavVsXEff_g->getTH1F()->SetXTitle(Title + "-jet efficiency");
520  EffFlavVsXEff_g->getTH1F()->SetYTitle("non " + Title + "-jet efficiency");
521  EffFlavVsXEff_g->getTH1F()->GetXaxis()->SetTitleOffset(0.75);
522  EffFlavVsXEff_g->getTH1F()->GetYaxis()->SetTitleOffset(0.75);
523  EffFlavVsXEff_dus->getTH1F()->SetXTitle(Title + "-jet efficiency");
524  EffFlavVsXEff_dus->getTH1F()->SetYTitle("non " + Title + "-jet efficiency");
525  EffFlavVsXEff_dus->getTH1F()->GetXaxis()->SetTitleOffset(0.75);
526  EffFlavVsXEff_dus->getTH1F()->GetYaxis()->SetTitleOffset(0.75);
527  }
528  EffFlavVsXEff_c->getTH1F()->SetXTitle(Title + "-jet efficiency");
529  EffFlavVsXEff_c->getTH1F()->SetYTitle("c-jet efficiency");
530  EffFlavVsXEff_c->getTH1F()->GetXaxis()->SetTitleOffset(0.75);
531  EffFlavVsXEff_c->getTH1F()->GetYaxis()->SetTitleOffset(0.75);
532  EffFlavVsXEff_b->getTH1F()->SetXTitle(Title + "-jet efficiency");
533  EffFlavVsXEff_b->getTH1F()->SetYTitle("b-jet efficiency");
534  EffFlavVsXEff_b->getTH1F()->GetXaxis()->SetTitleOffset(0.75);
535  EffFlavVsXEff_b->getTH1F()->GetYaxis()->SetTitleOffset(0.75);
536  EffFlavVsXEff_ni->getTH1F()->SetXTitle(Title + "-jet efficiency");
537  EffFlavVsXEff_ni->getTH1F()->SetYTitle("non " + Title + "-jet efficiency");
538  EffFlavVsXEff_ni->getTH1F()->GetXaxis()->SetTitleOffset(0.75);
539  EffFlavVsXEff_ni->getTH1F()->GetYaxis()->SetTitleOffset(0.75);
540  EffFlavVsXEff_dusg->getTH1F()->SetXTitle(Title + "-jet efficiency");
541  EffFlavVsXEff_dusg->getTH1F()->SetYTitle("non " + Title + "-jet efficiency");
542  EffFlavVsXEff_dusg->getTH1F()->GetXaxis()->SetTitleOffset(0.75);
543  EffFlavVsXEff_dusg->getTH1F()->GetYaxis()->SetTitleOffset(0.75);
544  EffFlavVsXEff_pu->getTH1F()->SetXTitle(Title + "-jet efficiency");
545  EffFlavVsXEff_pu->getTH1F()->SetYTitle("non " + Title + "-jet efficiency");
546  EffFlavVsXEff_pu->getTH1F()->GetXaxis()->SetTitleOffset(0.75);
547  EffFlavVsXEff_pu->getTH1F()->GetYaxis()->SetTitleOffset(0.75);
548 
549  // loop over eff. vs. discriminator cut b-histo and look in which bin the closest entry is;
550  // use fact that eff decreases monotonously
551 
552  // any of the histos to be created can be taken here:
553  MonitorElement* EffFlavVsXEff = EffFlavVsXEff_b;
554 
555  const int& nBinX = EffFlavVsXEff->getTH1F()->GetNbinsX();
556 
557  for (int iBinX = 1; iBinX <= nBinX; iBinX++) { // loop over the bins on the x-axis of the histograms to be filled
558 
559  const float& effXBinWidth = EffFlavVsXEff->getTH1F()->GetBinWidth(iBinX);
560  const float& effXMid = EffFlavVsXEff->getTH1F()->GetBinCenter(iBinX); // middle of b-efficiency bin
561  const float& effXLeft = effXMid - 0.5 * effXBinWidth; // left edge of bin
562  const float& effXRight = effXMid + 0.5 * effXBinWidth; // right edge of bin
563  // find the corresponding bin in the efficiency versus discriminator cut histo: closest one in efficiency
564 
565  int binClosest = -1;
566  if (!doCTagPlots_) {
567  binClosest = findBinClosestYValue(effVersusDiscr_b, effXMid, effXLeft, effXRight);
568  } else {
569  binClosest = findBinClosestYValue(effVersusDiscr_c, effXMid, effXLeft, effXRight);
570  }
571 
572  const bool& binFound = (binClosest > 0);
573  //
574  if (binFound) {
575  // fill the histos
576  if (mcPlots_ > 2) {
577  EffFlavVsXEff_d->Fill(effXMid, effVersusDiscr_d->GetBinContent(binClosest));
578  EffFlavVsXEff_u->Fill(effXMid, effVersusDiscr_u->GetBinContent(binClosest));
579  EffFlavVsXEff_s->Fill(effXMid, effVersusDiscr_s->GetBinContent(binClosest));
580  EffFlavVsXEff_g->Fill(effXMid, effVersusDiscr_g->GetBinContent(binClosest));
581  EffFlavVsXEff_dus->Fill(effXMid, effVersusDiscr_dus->GetBinContent(binClosest));
582  }
583  EffFlavVsXEff_c->Fill(effXMid, effVersusDiscr_c->GetBinContent(binClosest));
584  EffFlavVsXEff_b->Fill(effXMid, effVersusDiscr_b->GetBinContent(binClosest));
585  EffFlavVsXEff_ni->Fill(effXMid, effVersusDiscr_ni->GetBinContent(binClosest));
586  EffFlavVsXEff_dusg->Fill(effXMid, effVersusDiscr_dusg->GetBinContent(binClosest));
587  EffFlavVsXEff_pu->Fill(effXMid, effVersusDiscr_pu->GetBinContent(binClosest));
588 
589  if (mcPlots_ > 2) {
590  EffFlavVsXEff_d->getTH1F()->SetBinError(iBinX, effVersusDiscr_d->GetBinError(binClosest));
591  EffFlavVsXEff_u->getTH1F()->SetBinError(iBinX, effVersusDiscr_u->GetBinError(binClosest));
592  EffFlavVsXEff_s->getTH1F()->SetBinError(iBinX, effVersusDiscr_s->GetBinError(binClosest));
593  EffFlavVsXEff_g->getTH1F()->SetBinError(iBinX, effVersusDiscr_g->GetBinError(binClosest));
594  EffFlavVsXEff_dus->getTH1F()->SetBinError(iBinX, effVersusDiscr_dus->GetBinError(binClosest));
595  }
596  EffFlavVsXEff_c->getTH1F()->SetBinError(iBinX, effVersusDiscr_c->GetBinError(binClosest));
597  EffFlavVsXEff_b->getTH1F()->SetBinError(iBinX, effVersusDiscr_b->GetBinError(binClosest));
598  EffFlavVsXEff_ni->getTH1F()->SetBinError(iBinX, effVersusDiscr_ni->GetBinError(binClosest));
599  EffFlavVsXEff_dusg->getTH1F()->SetBinError(iBinX, effVersusDiscr_dusg->GetBinError(binClosest));
600  EffFlavVsXEff_pu->getTH1F()->SetBinError(iBinX, effVersusDiscr_pu->GetBinError(binClosest));
601  }
602  }
603 }
MonitorElement * EffFlavVsXEff_s
std::string label_
MonitorElement * EffFlavVsXEff_u
virtual TH1F * getTH1F() const
MonitorElement * EffFlavVsXEff_g
int findBinClosestYValue(const TH1F *, const float &yVal, const float &yLow, const float &yHigh)
Definition: Tools.cc:225
MonitorElement * EffFlavVsXEff_d
MonitorElement * EffFlavVsXEff_ni
MonitorElement * EffFlavVsXEff_c
void Fill(long long x)
MonitorElement * EffFlavVsXEff_pu
std::string histoExtension
unsigned int mcPlots_
MonitorElement * EffFlavVsXEff_dusg
MonitorElement * EffFlavVsXEff_dus
MonitorElement * EffFlavVsXEff_b
FlavourHistograms<double>& EffPurFromHistos::discriminatorCutEfficScan ( ) const
inline

Definition at line 67 of file EffPurFromHistos.h.

References discrCutEfficScan.

67 { return *discrCutEfficScan; }
std::unique_ptr< FlavourHistograms< double > > discrCutEfficScan
FlavourHistograms<double>& EffPurFromHistos::discriminatorNoCutEffic ( ) const
inline

Definition at line 66 of file EffPurFromHistos.h.

References discrNoCutEffic.

66 { return *discrNoCutEffic; }
std::unique_ptr< FlavourHistograms< double > > discrNoCutEffic
bool EffPurFromHistos::doCTagPlots ( bool  Ctag)
inline

Definition at line 69 of file EffPurFromHistos.h.

References check(), and doCTagPlots_.

69  {
70  doCTagPlots_ = Ctag;
71  return doCTagPlots_;
72  }
void EffPurFromHistos::epsPlot ( const std::string &  name)

Definition at line 199 of file EffPurFromHistos.cc.

References discrCutEfficScan, discrNoCutEffic, fromDiscriminatorDistr, and plot().

Referenced by getEffFlavVsBEff_pu().

199  {
201  discrNoCutEffic->epsPlot(name);
202  discrCutEfficScan->epsPlot(name);
203  }
204  plot(name, ".eps");
205 }
std::unique_ptr< FlavourHistograms< double > > discrNoCutEffic
std::unique_ptr< FlavourHistograms< double > > discrCutEfficScan
void plot(TPad *theCanvas=0)
TH1F* EffPurFromHistos::getEffFlavVsBEff_b ( )
inline

Definition at line 53 of file EffPurFromHistos.h.

References EffFlavVsXEff_b, and dqm::legacy::MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

53 { return EffFlavVsXEff_b->getTH1F(); };
virtual TH1F * getTH1F() const
MonitorElement * EffFlavVsXEff_b
TH1F* EffPurFromHistos::getEffFlavVsBEff_c ( )
inline

Definition at line 52 of file EffPurFromHistos.h.

References EffFlavVsXEff_c, and dqm::legacy::MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

52 { return EffFlavVsXEff_c->getTH1F(); };
virtual TH1F * getTH1F() const
MonitorElement * EffFlavVsXEff_c
TH1F* EffPurFromHistos::getEffFlavVsBEff_d ( )
inline

Definition at line 49 of file EffPurFromHistos.h.

References EffFlavVsXEff_d, and dqm::legacy::MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

49 { return EffFlavVsXEff_d->getTH1F(); };
virtual TH1F * getTH1F() const
MonitorElement * EffFlavVsXEff_d
TH1F* EffPurFromHistos::getEffFlavVsBEff_dus ( )
inline

Definition at line 56 of file EffPurFromHistos.h.

References EffFlavVsXEff_dus, and dqm::legacy::MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

56 { return EffFlavVsXEff_dus->getTH1F(); };
virtual TH1F * getTH1F() const
MonitorElement * EffFlavVsXEff_dus
TH1F* EffPurFromHistos::getEffFlavVsBEff_dusg ( )
inline

Definition at line 57 of file EffPurFromHistos.h.

References EffFlavVsXEff_dusg, and dqm::legacy::MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

57 { return EffFlavVsXEff_dusg->getTH1F(); };
virtual TH1F * getTH1F() const
MonitorElement * EffFlavVsXEff_dusg
TH1F* EffPurFromHistos::getEffFlavVsBEff_g ( )
inline

Definition at line 54 of file EffPurFromHistos.h.

References EffFlavVsXEff_g, and dqm::legacy::MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

54 { return EffFlavVsXEff_g->getTH1F(); };
virtual TH1F * getTH1F() const
MonitorElement * EffFlavVsXEff_g
TH1F* EffPurFromHistos::getEffFlavVsBEff_ni ( )
inline

Definition at line 55 of file EffPurFromHistos.h.

References EffFlavVsXEff_ni, and dqm::legacy::MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

55 { return EffFlavVsXEff_ni->getTH1F(); };
virtual TH1F * getTH1F() const
MonitorElement * EffFlavVsXEff_ni
TH1F* EffPurFromHistos::getEffFlavVsBEff_pu ( )
inline
TH1F* EffPurFromHistos::getEffFlavVsBEff_s ( )
inline

Definition at line 51 of file EffPurFromHistos.h.

References EffFlavVsXEff_s, and dqm::legacy::MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

51 { return EffFlavVsXEff_s->getTH1F(); };
MonitorElement * EffFlavVsXEff_s
virtual TH1F * getTH1F() const
TH1F* EffPurFromHistos::getEffFlavVsBEff_u ( )
inline

Definition at line 50 of file EffPurFromHistos.h.

References EffFlavVsXEff_u, and dqm::legacy::MonitorElement::getTH1F().

Referenced by BTagDifferentialPlot::fillHisto().

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

Definition at line 225 of file EffPurFromHistos.cc.

References doCTagPlots_, MillePedeFileConverter_cfg::e, EffFlavVsXEff_b, EffFlavVsXEff_c, EffFlavVsXEff_d, EffFlavVsXEff_dus, EffFlavVsXEff_dusg, EffFlavVsXEff_g, EffFlavVsXEff_ni, EffFlavVsXEff_pu, EffFlavVsXEff_s, EffFlavVsXEff_u, dqm::legacy::MonitorElement::getTH1F(), mcPlots_, and plotscripts::setTDRStyle().

Referenced by epsPlot(), getEffFlavVsBEff_pu(), plot(), and psPlot().

225  {
226  //fixme:
227  bool btppNI = false;
228  bool btppColour = true;
229 
230  // if ( !btppTitle ) gStyle->SetOptTitle( 0 );
231  setTDRStyle()->cd();
232 
233  if (plotCanvas)
234  plotCanvas->cd();
235 
236  gPad->UseCurrentStyle();
237  gPad->SetFillColor(0);
238  gPad->SetLogy(1);
239  gPad->SetGridx(1);
240  gPad->SetGridy(1);
241 
242  int col_c;
243  int col_g;
244  int col_dus;
245  int col_ni;
246 
247  int mStyle_c;
248  int mStyle_g;
249  int mStyle_dus;
250  int mStyle_ni;
251 
252  // marker size(same for all)
253  float mSize = gPad->GetWh() * gPad->GetHNDC() / 500.; //1.2;
254 
255  if (btppColour) {
256  col_c = 6;
257  col_g = 3; // g in green
258  col_dus = 4; // uds in blue
259  col_ni = 5; // ni in ??
260  mStyle_c = 20;
261  mStyle_g = 20;
262  mStyle_dus = 20;
263  mStyle_ni = 20;
264  } else {
265  col_c = 1;
266  col_g = 1;
267  col_dus = 1;
268  col_ni = 1;
269  mStyle_c = 22;
270  mStyle_g = 29;
271  mStyle_dus = 20;
272  mStyle_ni = 27;
273  }
274 
275  TString Title = "";
276  if (!doCTagPlots_) {
277  Title = "b";
278  } else {
279  Title = "c";
280  }
281 
282  // for the moment: plot c,dus,g
283  if (mcPlots_ > 2) {
284  EffFlavVsXEff_dus->getTH1F()->GetXaxis()->SetTitle(Title + "-jet efficiency");
285  EffFlavVsXEff_dus->getTH1F()->GetYaxis()->SetTitle("non " + Title + "-jet efficiency");
286  EffFlavVsXEff_dus->getTH1F()->GetYaxis()->SetTitleOffset(0.25);
287  EffFlavVsXEff_dus->getTH1F()->SetMaximum(1.1);
288  EffFlavVsXEff_dus->getTH1F()->SetMinimum(1.e-5);
289  EffFlavVsXEff_dus->getTH1F()->SetMarkerColor(col_dus);
290  EffFlavVsXEff_dus->getTH1F()->SetLineColor(col_dus);
291  EffFlavVsXEff_dus->getTH1F()->SetMarkerSize(mSize);
292  EffFlavVsXEff_dus->getTH1F()->SetMarkerStyle(mStyle_dus);
293  EffFlavVsXEff_dus->getTH1F()->SetStats(false);
294  EffFlavVsXEff_dus->getTH1F()->Draw("pe");
295 
296  EffFlavVsXEff_g->getTH1F()->SetMarkerColor(col_g);
297  EffFlavVsXEff_g->getTH1F()->SetLineColor(col_g);
298  EffFlavVsXEff_g->getTH1F()->SetMarkerSize(mSize);
299  EffFlavVsXEff_g->getTH1F()->SetMarkerStyle(mStyle_g);
300  EffFlavVsXEff_g->getTH1F()->SetStats(false);
301  EffFlavVsXEff_g->getTH1F()->Draw("peSame");
302  }
303  EffFlavVsXEff_c->getTH1F()->SetMarkerColor(col_c);
304  EffFlavVsXEff_c->getTH1F()->SetLineColor(col_c);
305  EffFlavVsXEff_c->getTH1F()->SetMarkerSize(mSize);
306  EffFlavVsXEff_c->getTH1F()->SetMarkerStyle(mStyle_c);
307  EffFlavVsXEff_c->getTH1F()->SetStats(false);
308  EffFlavVsXEff_c->getTH1F()->Draw("peSame");
309 
310  if (mcPlots_ > 2) {
311  EffFlavVsXEff_d->getTH1F()->SetMinimum(0.01);
312  EffFlavVsXEff_u->getTH1F()->SetMinimum(0.01);
313  EffFlavVsXEff_s->getTH1F()->SetMinimum(0.01);
314  EffFlavVsXEff_g->getTH1F()->SetMinimum(0.01);
315  EffFlavVsXEff_dus->getTH1F()->SetMinimum(0.01);
316  }
317  EffFlavVsXEff_c->getTH1F()->SetMinimum(0.01);
318  EffFlavVsXEff_b->getTH1F()->SetMinimum(0.01);
319  EffFlavVsXEff_ni->getTH1F()->SetMinimum(0.01);
320  EffFlavVsXEff_dusg->getTH1F()->SetMinimum(0.01);
321  EffFlavVsXEff_pu->getTH1F()->SetMinimum(0.01);
322 
323  // plot separately u,d and s
324  // EffFlavVsXEff_d ->GetXaxis()->SetTitle( Title + "-jet efficiency" );
325  // EffFlavVsXEff_d ->GetYaxis()->SetTitle( "non " + Title + "-jet efficiency" );
326  // EffFlavVsXEff_d ->GetYaxis()->SetTitleOffset( 1.25 );
327  // EffFlavVsXEff_d ->SetMaximum ( 1.1 );
328  // EffFlavVsXEff_d ->SetMinimum ( 1.e-5 );
329  // EffFlavVsXEff_d ->SetMarkerColor( col_dus );
330  // EffFlavVsXEff_d ->SetLineColor ( col_dus );
331  // EffFlavVsXEff_d ->SetMarkerSize ( mSize );
332  // EffFlavVsXEff_d ->SetMarkerStyle( mStyle_dus );
333  // EffFlavVsXEff_d ->SetStats ( false );
334  // EffFlavVsXEff_d ->Draw("pe");
335  //
336  // EffFlavVsXEff_u ->SetMarkerColor( col_g );
337  // EffFlavVsXEff_u ->SetLineColor ( col_g );
338  // EffFlavVsXEff_u ->SetMarkerSize ( mSize );
339  // EffFlavVsXEff_u ->SetMarkerStyle( mStyle_g );
340  // EffFlavVsXEff_u ->SetStats ( false );
341  // EffFlavVsXEff_u ->Draw("peSame");
342  //
343  // EffFlavVsXEff_s ->SetMarkerColor( col_c );
344  // EffFlavVsXEff_s ->SetLineColor ( col_c );
345  // EffFlavVsXEff_s ->SetMarkerSize ( mSize );
346  // EffFlavVsXEff_s ->SetMarkerStyle( mStyle_c );
347  // EffFlavVsXEff_s ->SetStats ( false );
348  // EffFlavVsXEff_s ->Draw("peSame");
349 
350  // only if asked: NI
351  if (btppNI) {
352  EffFlavVsXEff_ni->getTH1F()->SetMarkerColor(col_ni);
353  EffFlavVsXEff_ni->getTH1F()->SetLineColor(col_ni);
354  EffFlavVsXEff_ni->getTH1F()->SetMarkerSize(mSize);
355  EffFlavVsXEff_ni->getTH1F()->SetMarkerStyle(mStyle_ni);
356  EffFlavVsXEff_ni->getTH1F()->SetStats(false);
357  EffFlavVsXEff_ni->getTH1F()->Draw("peSame");
358  }
359 }
MonitorElement * EffFlavVsXEff_s
MonitorElement * EffFlavVsXEff_u
virtual TH1F * getTH1F() const
MonitorElement * EffFlavVsXEff_g
MonitorElement * EffFlavVsXEff_d
MonitorElement * EffFlavVsXEff_ni
MonitorElement * EffFlavVsXEff_c
MonitorElement * EffFlavVsXEff_pu
def setTDRStyle()
Definition: plotscripts.py:89
unsigned int mcPlots_
MonitorElement * EffFlavVsXEff_dusg
MonitorElement * EffFlavVsXEff_dus
MonitorElement * EffFlavVsXEff_b
void EffPurFromHistos::plot ( const std::string &  name,
const std::string &  ext 
)

Definition at line 209 of file EffPurFromHistos.cc.

References doCTagPlots_, histoExtension, plot(), and AlCaHLTBitMon_QueryRunRegistry::string.

209  {
210  std::string hX = "";
211  std::string Title = "";
212  if (!doCTagPlots_) {
213  hX = "FlavEffVsBEff";
214  Title = "b";
215  } else {
216  hX = "FlavEffVsCEff";
217  Title = "c";
218  }
219  TCanvas tc((hX + histoExtension).c_str(),
220  ("Flavour misidentification vs. " + Title + "-tagging efficiency " + histoExtension).c_str());
221  plot(&tc);
222  tc.Print((name + hX + histoExtension + ext).c_str());
223 }
void plot(TPad *theCanvas=0)
std::string histoExtension
Definition: memstream.h:15
void EffPurFromHistos::psPlot ( const std::string &  name)

Definition at line 207 of file EffPurFromHistos.cc.

References plot().

Referenced by getEffFlavVsBEff_pu().

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

Member Data Documentation

std::unique_ptr<FlavourHistograms<double> > EffPurFromHistos::discrCutEfficScan
private

Definition at line 85 of file EffPurFromHistos.h.

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

std::unique_ptr<FlavourHistograms<double> > EffPurFromHistos::discrNoCutEffic
private

Definition at line 85 of file EffPurFromHistos.h.

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

bool EffPurFromHistos::doCTagPlots_
private

Definition at line 80 of file EffPurFromHistos.h.

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

MonitorElement* EffPurFromHistos::EffFlavVsXEff_b
private

Definition at line 113 of file EffPurFromHistos.h.

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

MonitorElement* EffPurFromHistos::EffFlavVsXEff_c
private

Definition at line 112 of file EffPurFromHistos.h.

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

MonitorElement* EffPurFromHistos::EffFlavVsXEff_d
private

Definition at line 109 of file EffPurFromHistos.h.

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

MonitorElement* EffPurFromHistos::EffFlavVsXEff_dus
private

Definition at line 116 of file EffPurFromHistos.h.

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

MonitorElement* EffPurFromHistos::EffFlavVsXEff_dusg
private

Definition at line 117 of file EffPurFromHistos.h.

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

MonitorElement* EffPurFromHistos::EffFlavVsXEff_g
private

Definition at line 114 of file EffPurFromHistos.h.

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

MonitorElement* EffPurFromHistos::EffFlavVsXEff_ni
private

Definition at line 115 of file EffPurFromHistos.h.

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

MonitorElement* EffPurFromHistos::EffFlavVsXEff_pu
private

Definition at line 118 of file EffPurFromHistos.h.

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

MonitorElement* EffPurFromHistos::EffFlavVsXEff_s
private

Definition at line 111 of file EffPurFromHistos.h.

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

MonitorElement* EffPurFromHistos::EffFlavVsXEff_u
private

Definition at line 110 of file EffPurFromHistos.h.

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

TH1F* EffPurFromHistos::effVersusDiscr_b
private

Definition at line 95 of file EffPurFromHistos.h.

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

TH1F* EffPurFromHistos::effVersusDiscr_c
private

Definition at line 94 of file EffPurFromHistos.h.

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

TH1F* EffPurFromHistos::effVersusDiscr_d
private

Definition at line 91 of file EffPurFromHistos.h.

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

TH1F* EffPurFromHistos::effVersusDiscr_dus
private

Definition at line 98 of file EffPurFromHistos.h.

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

TH1F* EffPurFromHistos::effVersusDiscr_dusg
private

Definition at line 99 of file EffPurFromHistos.h.

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

TH1F* EffPurFromHistos::effVersusDiscr_g
private

Definition at line 96 of file EffPurFromHistos.h.

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

TH1F* EffPurFromHistos::effVersusDiscr_ni
private

Definition at line 97 of file EffPurFromHistos.h.

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

TH1F* EffPurFromHistos::effVersusDiscr_pu
private

Definition at line 100 of file EffPurFromHistos.h.

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

TH1F* EffPurFromHistos::effVersusDiscr_s
private

Definition at line 93 of file EffPurFromHistos.h.

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

TH1F* EffPurFromHistos::effVersusDiscr_u
private

Definition at line 92 of file EffPurFromHistos.h.

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

double EffPurFromHistos::endOutput
private

Definition at line 107 of file EffPurFromHistos.h.

Referenced by compute().

bool EffPurFromHistos::fromDiscriminatorDistr
private

Definition at line 77 of file EffPurFromHistos.h.

Referenced by epsPlot().

std::string EffPurFromHistos::histoExtension
private

Definition at line 83 of file EffPurFromHistos.h.

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

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

Definition at line 79 of file EffPurFromHistos.h.

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

int EffPurFromHistos::nBinOutput
private

Definition at line 105 of file EffPurFromHistos.h.

Referenced by compute().

double EffPurFromHistos::startOutput
private

Definition at line 106 of file EffPurFromHistos.h.

Referenced by compute().