test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EffPurFromHistos2D.h
Go to the documentation of this file.
1 #ifndef EffPurFromHistos2D_H
2 #define EffPurFromHistos2D_H
3 
7 
8 #include "TH2F.h"
9 #include "TCanvas.h"
10 
11 #include <string>
12 
14 
15  public:
16 
17  EffPurFromHistos2D ( const std::string & ext, TH2F * h_d, TH2F * h_u,
18  TH2F * h_s, TH2F * h_c, TH2F * h_b, TH2F * h_g, TH2F * h_ni,
19  TH2F * h_dus, TH2F * h_dusg, TH2F * h_pu,
20  const std::string& label, const unsigned int& mc,
21  int nBinX = 100 , double startOX = 0.05 , double endOX = 1.05) ;
22 
24  const std::string& label, const unsigned int& mc,
25  DQMStore::IBooker & ibook,
26  int nBinX = 100 , double startOX = 0.05 , double endOX = 1.05) ;
27 
29 
30  // do the computation
31  void compute (DQMStore::IBooker & ibook, std::vector<double> fixedEff) ;
32 
33  void epsPlot(const std::string & name);
34  void psPlot(const std::string & name);
35 
36  void plot(TPad * theCanvas = 0) ;
37  void plot(const std::string & name, const std::string & ext);
38 
41 
42  bool doCTagPlots(bool Ctag) {doCTagPlots_ = Ctag; return doCTagPlots_;};
43 
44  private:
45 
46  // consistency check (same binning)
47  void check () ;
49 
50  unsigned int mcPlots_;
53  // the string for the histo name extension
55 
56  std::unique_ptr<FlavourHistograms2D<double, double> > discrNoCutEffic, discrCutEfficScan;
57 
58  // the input histograms (efficiency versus discriminator cut)
59  // IMPORTANT: IT'S ASSUMED THAT ALL HISTOS HAVE THE SAME BINNING!!
60  // (can in principle be relaxed by checking explicitely for the discriminator value
61  // instead of bin index)
72 
73  // the corresponding output histograms (flavour-eff vs. b-efficiency)
74 
75  // binning for output histograms
77  double startOutputX;
78  double endOutputX;
80  double startOutputY;
81  double endOutputY;
82 
83  std::vector<MonitorElement*> X_vs_Y_eff_at_fixedZeff;
84 };
85 
86 #endif
FlavourHistograms2D< double, double > * discriminatorCutEfficScan() const
std::string histoExtension
std::unique_ptr< FlavourHistograms2D< double, double > > discrCutEfficScan
std::vector< MonitorElement * > X_vs_Y_eff_at_fixedZeff
FlavourHistograms2D< double, double > * discriminatorNoCutEffic() const
void epsPlot(const std::string &name)
EffPurFromHistos2D(const std::string &ext, TH2F *h_d, TH2F *h_u, TH2F *h_s, TH2F *h_c, TH2F *h_b, TH2F *h_g, TH2F *h_ni, TH2F *h_dus, TH2F *h_dusg, TH2F *h_pu, const std::string &label, const unsigned int &mc, int nBinX=100, double startOX=0.05, double endOX=1.05)
bool doCTagPlots(bool Ctag)
std::unique_ptr< FlavourHistograms2D< double, double > > discrNoCutEffic
void psPlot(const std::string &name)
void plot(TPad *theCanvas=0)
void compute(DQMStore::IBooker &ibook, std::vector< double > fixedEff)