Logo ROOT  
Reference Guide
Go to the documentation of this file.
1#ifndef ROOT_TMVA_ROCCalc
2#define ROOT_TMVA_ROCCalc
4#include "Rtypes.h"
6#include <vector>
7#include <sstream>
8#include <iostream>
9#include <iomanip>
11class TList;
12class TTree;
13class TString;
14class TH1;
15class TH1D;
16class TH2;
17class TH2F;
18class TSpline;
20namespace TMVA {
22 class MsgLogger;
25 class ROCCalc {
27 public:
28 ROCCalc(TH1* mvaS, TH1* mvaB);
30 ~ROCCalc();
33 TH1D* GetROC();
34 // return the signal eff for a given backgr. efficiency
35 Double_t GetEffSForEffBof(Double_t effBref, Double_t &effSerr);
36 // return the cut value
38 // return the area under the ROC curve
40 // return the statistical significance as function of the mva cut value
41 TH1* GetSignificance( Int_t nStot, Int_t nBtot);
42 TH1* GetPurity(Int_t nStot, Int_t nBtot);
44 void ApplySignalAndBackgroundStyle( TH1* sig, TH1* bkg, TH1* any = 0 );
49 //false if is found some error in mvaS or mvaB
53 private:
56 Int_t fMaxIter; // maximum number of iterations
57 Double_t fAbsTol; // absolute tolerance deviation
59 Bool_t fStatus; //false if is found some error in mvaS or mvaB
64 TH1* fmvaS, *fmvaB; // the input mva distributions
65 TH1* fmvaSpdf, *fmvaBpdf; // the normalized (and rebinned) input mva distributions
66 Float_t fXmin, fXmax; // min and max of the mva distribution
67 Double_t fNevtS; // number of signal events (used in error calculation)
68 Int_t fCutOrientation; //+1 if larger mva value means more signal like, -1 otherwise
70 TSpline* fSplmvaCumS, *fSplmvaCumB; // spline of cumulated mva distributions
80 Double_t fSignalCut; // MVA cut value for last demanded background rejection or signal efficiency
82 mutable MsgLogger* fLogger; //! message logger
83 MsgLogger& Log() const { return *fLogger; }
85 };
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
float Float_t
Definition: RtypesCore.h:53
const Bool_t kTRUE
Definition: RtypesCore.h:87
1-D histogram with a double per channel (see TH1 documentation)}
Definition: TH1.h:614
The TH1 histogram class.
Definition: TH1.h:56
2-D histogram with a float per channel (see TH1 documentation)}
Definition: TH2.h:251
Service class for 2-Dim histogram classes.
Definition: TH2.h:30
A doubly linked list.
Definition: TList.h:44
ostringstream derivative to redirect and format output
Definition: MsgLogger.h:59
TH1 * GetMvaSpdf()
Definition: ROCCalc.h:46
Double_t fSignalCut
Definition: ROCCalc.h:80
Double_t Root(Double_t)
Root finding using Brents algorithm; taken from CERNLIB function RZERO.
Definition: ROCCalc.cxx:354
TH1 * fmvaScumul
Definition: ROCCalc.h:72
void ResetStatus()
Definition: ROCCalc.h:51
TH1 * fmvaBcumul
Definition: ROCCalc.h:72
TSpline * fSplS
Definition: ROCCalc.h:69
TH1 * fPurity
Definition: ROCCalc.h:75
Bool_t GetStatus()
Definition: ROCCalc.h:50
Double_t GetROCIntegral()
code to compute the area under the ROC ( rej-vs-eff ) curve
Definition: ROCCalc.cxx:274
Float_t fXmax
Definition: ROCCalc.h:66
Float_t fXmin
Definition: ROCCalc.h:66
TSpline * fSplmvaCumB
Definition: ROCCalc.h:70
TH1D * rejBvsS
Definition: ROCCalc.h:77
Int_t fnBtot
Definition: ROCCalc.h:73
TSpline * fSplmvaCumS
Definition: ROCCalc.h:70
Int_t fnStot
Definition: ROCCalc.h:73
Int_t fMaxIter
Definition: ROCCalc.h:56
TSpline * fSpleffBvsS
Definition: ROCCalc.h:71
Bool_t fStatus
Definition: ROCCalc.h:59
Double_t GetSignalReferenceCut()
Definition: ROCCalc.h:37
Int_t fCutOrientation
Definition: ROCCalc.h:68
TH1 * GetPurity(Int_t nStot, Int_t nBtot)
Definition: ROCCalc.cxx:435
Double_t GetEffSForEffBof(Double_t effBref, Double_t &effSerr)
get the signal efficiency for a particular background efficiency that will be the value of the effici...
Definition: ROCCalc.cxx:298
ROCCalc(TH1 *mvaS, TH1 *mvaB)
Definition: ROCCalc.cxx:48
TH1 * GetSignificance(Int_t nStot, Int_t nBtot)
Definition: ROCCalc.cxx:446
TH1D * effBvsS
Definition: ROCCalc.h:76
MsgLogger & Log() const
message logger
Definition: ROCCalc.h:83
TH1 * fmvaSpdf
Definition: ROCCalc.h:65
TH1D * GetROC()
get the ROC curve
Definition: ROCCalc.cxx:184
TH1 * fmvaS
Definition: ROCCalc.h:64
Definition: ROCCalc.cxx:166
TH1 * fmvaB
Definition: ROCCalc.h:64
TH1 * GetMvaBpdf()
Definition: ROCCalc.h:47
TH1D * inveffBvsS
Definition: ROCCalc.h:78
void ApplySignalAndBackgroundStyle(TH1 *sig, TH1 *bkg, TH1 *any=0)
Definition: ROCCalc.cxx:119
TSpline * fSplB
Definition: ROCCalc.h:69
Bool_t fUseSplines
Definition: ROCCalc.h:62
TH1 * fSignificance
Definition: ROCCalc.h:74
UInt_t fNbins
Definition: ROCCalc.h:61
MsgLogger * fLogger
Definition: ROCCalc.h:82
Double_t fAbsTol
Definition: ROCCalc.h:57
TH1 * fmvaBpdf
Definition: ROCCalc.h:65
Double_t GetEffForRoot(Double_t theCut)
returns efficiency as function of cut
Definition: ROCCalc.cxx:329
Double_t fNevtS
Definition: ROCCalc.h:67
Base class for spline implementation containing the Draw/Paint methods.
Definition: TSpline.h:22
Basic string class.
Definition: TString.h:131
A TTree represents a columnar dataset.
Definition: TTree.h:72
create variable transformations