23 #ifndef ROOT_TMVA_ROCCurve
24 #define ROOT_TMVA_ROCCurve
50 ROCCurve(
const std::vector<std::tuple<Float_t, Float_t, Bool_t>> &mvas);
52 ROCCurve(
const std::vector<Float_t> &mvaValues,
const std::vector<Bool_t> &mvaTargets,
53 const std::vector<Float_t> &mvaWeights);
55 ROCCurve(
const std::vector<Float_t> &mvaValues,
const std::vector<Bool_t> &mvaTargets);
57 ROCCurve(
const std::vector<Float_t> &mvaSignal,
const std::vector<Float_t> &mvaBackground,
58 const std::vector<Float_t> &mvaSignalWeights,
const std::vector<Float_t> &mvaBackgroundWeights);
60 ROCCurve(
const std::vector<Float_t> &mvaSignal,
const std::vector<Float_t> &mvaBackground);
64 Double_t GetEffSForEffB(Double_t effB,
const UInt_t num_points = 41);
66 Double_t GetROCIntegral(
const UInt_t points = 41);
67 TGraph *GetROCCurve(
const UInt_t points = 100);
69 const std::vector<std::tuple<Float_t, Float_t, Bool_t>> GetMvas()
const {
return fMva; }
71 mutable MsgLogger *fLogger;
72 MsgLogger &Log()
const;
76 std::vector<std::tuple<Float_t, Float_t, Bool_t>> fMva;
78 std::vector<Double_t> ComputeSensitivity(
const UInt_t num_points);
79 std::vector<Double_t> ComputeSpecificity(
const UInt_t num_points);