Go to the documentation of this file.00001 #ifndef EffPurFromHistos_H
00002 #define EffPurFromHistos_H
00003
00004 #include "DQMOffline/RecoB/interface/FlavourHistorgrams.h"
00005 #include "DQMOffline/RecoB/interface/HistoProviderDQM.h"
00006
00007 #include "TH1F.h"
00008 #include "TCanvas.h"
00009
00010 #include <string>
00011
00012
00013
00014 class EffPurFromHistos {
00015
00016
00017 public:
00018
00019 EffPurFromHistos ( const std::string & ext, TH1F * h_d, TH1F * h_u,
00020 TH1F * h_s, TH1F * h_c, TH1F * h_b, TH1F * h_g, TH1F * h_ni,
00021 TH1F * h_dus, TH1F * h_dusg, const std::string& label, const bool& mc,
00022 int nBin = 100 , double startO = 0.005 , double endO = 1.005 ) ;
00023
00024
00025 EffPurFromHistos (const FlavourHistograms<double> * dDiscriminatorFC, const std::string& label, const bool& mc,
00026 int nBin = 100 , double startO = 0.005 , double endO = 1.005 ) ;
00027
00028
00029 ~EffPurFromHistos () ;
00030
00031
00032 void compute () ;
00033
00034
00035 TH1F * getEffFlavVsBEff_d () {
00036 return EffFlavVsBEff_d->getTH1F() ; };
00037 TH1F * getEffFlavVsBEff_u () { return EffFlavVsBEff_u->getTH1F() ; };
00038 TH1F * getEffFlavVsBEff_s () { return EffFlavVsBEff_s ->getTH1F() ; };
00039 TH1F * getEffFlavVsBEff_c () { return EffFlavVsBEff_c ->getTH1F() ; };
00040 TH1F * getEffFlavVsBEff_b () { return EffFlavVsBEff_b ->getTH1F() ; };
00041 TH1F * getEffFlavVsBEff_g () { return EffFlavVsBEff_g ->getTH1F() ; };
00042 TH1F * getEffFlavVsBEff_ni () { return EffFlavVsBEff_ni ->getTH1F() ; };
00043 TH1F * getEffFlavVsBEff_dus () { return EffFlavVsBEff_dus ->getTH1F() ; };
00044 TH1F * getEffFlavVsBEff_dusg () { return EffFlavVsBEff_dusg ->getTH1F(); };
00045
00046
00047
00048 void epsPlot(const std::string & name);
00049
00050 void psPlot(const std::string & name);
00051
00052 void plot(TPad * theCanvas = 0) ;
00053
00054 void plot(const std::string & name, const std::string & ext);
00055
00056
00057
00058 FlavourHistograms<double> * discriminatorNoCutEffic() const {return discrNoCutEffic;}
00059 FlavourHistograms<double> * discriminatorCutEfficScan() const {return discrCutEfficScan;}
00060
00061 private:
00062
00063
00064
00065 void check () ;
00066 bool fromDiscriminatorDistr;
00067
00068
00069
00070 std::string histoExtension ;
00071
00072 FlavourHistograms<double> * discrNoCutEffic, *discrCutEfficScan;
00073
00074
00075
00076
00077
00078 TH1F * effVersusDiscr_d ;
00079 TH1F * effVersusDiscr_u ;
00080 TH1F * effVersusDiscr_s ;
00081 TH1F * effVersusDiscr_c ;
00082 TH1F * effVersusDiscr_b ;
00083 TH1F * effVersusDiscr_g ;
00084 TH1F * effVersusDiscr_ni ;
00085 TH1F * effVersusDiscr_dus ;
00086 TH1F * effVersusDiscr_dusg ;
00087
00088
00089
00090
00091
00092 int nBinOutput ;
00093 double startOutput ;
00094 double endOutput ;
00095
00096 bool mcPlots_;
00097
00098
00099 MonitorElement * EffFlavVsBEff_d ;
00100 MonitorElement * EffFlavVsBEff_u ;
00101 MonitorElement * EffFlavVsBEff_s ;
00102 MonitorElement * EffFlavVsBEff_c ;
00103 MonitorElement * EffFlavVsBEff_b ;
00104 MonitorElement * EffFlavVsBEff_g ;
00105 MonitorElement * EffFlavVsBEff_ni ;
00106 MonitorElement * EffFlavVsBEff_dus ;
00107 MonitorElement * EffFlavVsBEff_dusg ;
00108
00109
00110 std::string label_;
00111
00112 } ;
00113
00114 #endif