ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ROCCalc.h
Go to the documentation of this file.
1 #ifndef ROOT_TMVA_ROCCalc
2 #define ROOT_TMVA_ROCCalc
3 
4 #include "RtypesCore.h"
5 
6 #include <vector>
7 #include <sstream>
8 #include <iostream>
9 #include <iomanip>
10 
11 class TList;
12 class TTree;
13 class TString;
14 class TH1;
15 class TH1D;
16 class TH2;
17 class TH2F;
18 class TSpline;
19 class TSpline1;
20 
21 namespace TMVA {
22 
23  class MsgLogger;
24 
25 
26  class ROCCalc {
27 
28  public:
29  ROCCalc(TH1* mvaS, TH1* mvaB);
30 
31  ~ROCCalc();
32 
33 
34  TH1D* GetROC();
35  // return the signal eff for a given backgr. efficiency
36  Double_t GetEffSForEffBof(Double_t effBref, Double_t &effSerr);
37  // return the cut value
39  // return the area under the ROC curve
41  // return the statistical significance as function of the mva cut value
42  TH1* GetSignificance( Int_t nStot, Int_t nBtot);
43  TH1* GetPurity(Int_t nStot, Int_t nBtot);
44 
45  void ApplySignalAndBackgroundStyle( TH1* sig, TH1* bkg, TH1* any = 0 );
46 
47  TH1* GetMvaSpdf(){return fmvaSpdf;}
48  TH1* GetMvaBpdf(){return fmvaBpdf;}
49 
50  private:
53  Int_t fMaxIter; // maximum number of iterations
54  Double_t fAbsTol; // absolute tolerance deviation
55 
58 
59  TH1* fmvaS, *fmvaB; // the input mva distributions
60  TH1* fmvaSpdf, *fmvaBpdf; // the normalized (and rebinned) input mva distributions
61  Float_t fXmin, fXmax; // min and max of the mva distribution
62  Double_t fNevtS; // number of signal events (used in error calculation)
63  Int_t fCutOrientation; //+1 if larger mva value means more signal like, -1 otherwise
65  TSpline* fSplmvaCumS, *fSplmvaCumB; // spline of cumulated mva distributions
71 
72  Double_t fSignalCut; // MVA cut value for last demanded background rejection or signal efficiency
73 
74  mutable MsgLogger* fLogger; //! message logger
75  MsgLogger& Log() const { return *fLogger; }
76 
77  };
78 }
79 #endif
TSpline * fSplB
Definition: ROCCalc.h:64
MsgLogger & Log() const
message logger
Definition: ROCCalc.h:75
TSpline * fSplS
Definition: ROCCalc.h:64
Int_t fnStot
Definition: ROCCalc.h:68
float Float_t
Definition: RtypesCore.h:53
TH1 * fmvaSpdf
Definition: ROCCalc.h:60
Int_t fMaxIter
Definition: ROCCalc.h:53
Base class for spline implementation containing the Draw/Paint methods //.
Definition: TSpline.h:22
ROCCalc(TH1 *mvaS, TH1 *mvaB)
Definition: ROCCalc.cxx:57
TH1 * fmvaBpdf
Definition: ROCCalc.h:60
UInt_t fNbins
Definition: ROCCalc.h:56
Basic string class.
Definition: TString.h:137
TH1 * GetMvaSpdf()
Definition: ROCCalc.h:47
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
TSpline * fSplmvaCumB
Definition: ROCCalc.h:65
TH1 * fmvaS
Definition: ROCCalc.h:59
TSpline * fSplmvaCumS
Definition: ROCCalc.h:65
TH1 * fSignificance
Definition: ROCCalc.h:69
Double_t fAbsTol
Definition: ROCCalc.h:54
TH1D * GetROC()
get the ROC curve
Definition: ROCCalc.cxx:181
TH1 * fmvaB
Definition: ROCCalc.h:59
Double_t GetEffSForEffBof(Double_t effBref, Double_t &effSerr)
get the signal efficiency for a particular backgroud efficiency that will be the value of the efficie...
Definition: ROCCalc.cxx:294
Double_t Root(Double_t)
Root finding using Brents algorithm; taken from CERNLIB function RZERO.
Definition: ROCCalc.cxx:350
Bool_t fUseSplines
Definition: ROCCalc.h:57
MsgLogger * fLogger
Definition: ROCCalc.h:74
Double_t GetEffForRoot(Double_t theCut)
returns efficiency as function of cut
Definition: ROCCalc.cxx:325
Float_t fXmin
Definition: ROCCalc.h:61
TH1 * GetPurity(Int_t nStot, Int_t nBtot)
Definition: ROCCalc.cxx:431
TH1 * fmvaScumul
Definition: ROCCalc.h:67
A doubly linked list.
Definition: TList.h:47
Double_t GetSignalReferenceCut()
Definition: ROCCalc.h:38
Service class for 2-Dim histogram classes.
Definition: TH2.h:36
Float_t fXmax
Definition: ROCCalc.h:61
2-D histogram with a float per channel (see TH1 documentation)}
Definition: TH2.h:256
TH1 * fPurity
Definition: ROCCalc.h:70
TH1 * GetSignificance(Int_t nStot, Int_t nBtot)
Definition: ROCCalc.cxx:442
unsigned int UInt_t
Definition: RtypesCore.h:42
1-D histogram with a double per channel (see TH1 documentation)}
Definition: TH1.h:613
Double_t fSignalCut
Definition: ROCCalc.h:72
TH1 * fmvaBcumul
Definition: ROCCalc.h:67
double Double_t
Definition: RtypesCore.h:55
Int_t fCutOrientation
Definition: ROCCalc.h:63
The TH1 histogram class.
Definition: TH1.h:80
void ApplySignalAndBackgroundStyle(TH1 *sig, TH1 *bkg, TH1 *any=0)
Int_t c_Canvas = TColor::GetColor( "#f0f0f0" ); Int_t c_FrameFill = TColor::GetColor( "#fffffd" ); In...
Definition: ROCCalc.cxx:117
TH1 * GetMvaBpdf()
Definition: ROCCalc.h:48
Double_t fNevtS
Definition: ROCCalc.h:62
Int_t fnBtot
Definition: ROCCalc.h:68
A TTree object has a header with a name and a title.
Definition: TTree.h:98
Double_t GetROCIntegral()
code to compute the area under the ROC ( rej-vs-eff ) curve
Definition: ROCCalc.cxx:270
TSpline * fSpleffBvsS
Definition: ROCCalc.h:66
~ROCCalc()
destructor
Definition: ROCCalc.cxx:165