14 #ifndef ROOSTATS_HypoTestResult
15 #define ROOSTATS_HypoTestResult
25 class HypoTestResult :
public TNamed {
30 explicit HypoTestResult(
const char* name = 0);
33 HypoTestResult(
const HypoTestResult& other);
36 HypoTestResult(
const char* name, Double_t nullp, Double_t altp);
39 virtual ~HypoTestResult();
42 HypoTestResult & operator=(
const HypoTestResult& other);
45 virtual void Append(
const HypoTestResult *other);
48 virtual Double_t NullPValue()
const {
return fNullPValue; }
51 virtual Double_t AlternatePValue()
const {
return fAlternatePValue; }
54 virtual Double_t CLb()
const {
return !fBackgroundIsAlt ? NullPValue() : AlternatePValue(); }
57 virtual Double_t CLsplusb()
const {
return !fBackgroundIsAlt ? AlternatePValue() : NullPValue(); }
60 virtual Double_t CLs()
const {
61 double thisCLb = CLb();
63 std::cout <<
"Error: Cannot compute CLs because CLb = 0. Returning CLs = -1\n";
66 double thisCLsb = CLsplusb();
67 return thisCLsb / thisCLb;
71 virtual Double_t Significance()
const {
return RooStats::PValueToSignificance( NullPValue() ); }
73 SamplingDistribution* GetNullDistribution(
void)
const {
return fNullDistr; }
74 SamplingDistribution* GetAltDistribution(
void)
const {
return fAltDistr; }
75 RooDataSet* GetNullDetailedOutput(
void)
const {
return fNullDetailedOutput; }
76 RooDataSet* GetAltDetailedOutput(
void)
const {
return fAltDetailedOutput; }
77 RooDataSet* GetFitInfo(
void)
const {
return fFitInfo; }
78 Double_t GetTestStatisticData(
void)
const {
return fTestStatisticData; }
79 const RooArgList* GetAllTestStatisticsData(
void)
const {
return fAllTestStatisticsData; }
80 Bool_t HasTestStatisticData(
void)
const;
82 void SetAltDistribution(SamplingDistribution *alt);
83 void SetNullDistribution(SamplingDistribution *null);
84 void SetAltDetailedOutput(RooDataSet* d) { fAltDetailedOutput = d; }
85 void SetNullDetailedOutput(RooDataSet* d) { fNullDetailedOutput = d; }
86 void SetFitInfo(RooDataSet* d) { fFitInfo = d; }
87 void SetTestStatisticData(
const Double_t tsd);
88 void SetAllTestStatisticsData(
const RooArgList* tsd);
90 void SetPValueIsRightTail(Bool_t pr);
91 Bool_t GetPValueIsRightTail(
void)
const {
return fPValueIsRightTail; }
93 void SetBackgroundAsAlt(Bool_t l = kTRUE) { fBackgroundIsAlt = l; }
94 Bool_t GetBackGroundIsAlt(
void)
const {
return fBackgroundIsAlt; }
97 Double_t CLbError()
const;
100 Double_t CLsplusbError()
const;
103 Double_t CLsError()
const;
106 Double_t NullPValueError()
const;
109 Double_t SignificanceError()
const;
112 void Print(
const Option_t* =
"")
const;
115 void UpdatePValue(
const SamplingDistribution* distr, Double_t &pvalue, Double_t &perror, Bool_t pIsRightTail);
120 mutable Double_t fNullPValue;
121 mutable Double_t fAlternatePValue;
122 mutable Double_t fNullPValueError;
123 mutable Double_t fAlternatePValueError;
124 Double_t fTestStatisticData;
125 const RooArgList* fAllTestStatisticsData;
126 SamplingDistribution *fNullDistr;
127 SamplingDistribution *fAltDistr;
128 RooDataSet* fNullDetailedOutput;
129 RooDataSet* fAltDetailedOutput;
130 RooDataSet* fFitInfo;
131 Bool_t fPValueIsRightTail;
132 Bool_t fBackgroundIsAlt;
134 ClassDef(HypoTestResult,3)