File indexing completed on 2025-12-16 10:29:45
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef ROOSTATS_NeymanConstruction
0012 #define ROOSTATS_NeymanConstruction
0013
0014
0015 #include "Rtypes.h"
0016
0017 #include "RooStats/IntervalCalculator.h"
0018
0019 #include "RooStats/TestStatSampler.h"
0020 #include "RooStats/ModelConfig.h"
0021 #include "RooStats/ConfidenceBelt.h"
0022 #include "RooStats/PointSetInterval.h"
0023
0024 #include "RooAbsData.h"
0025 #include "RooAbsPdf.h"
0026 #include "RooArgSet.h"
0027
0028 #include <map>
0029
0030 class RooAbsData;
0031
0032 namespace RooStats {
0033
0034 class ConfInterval;
0035
0036 class NeymanConstruction : public IntervalCalculator{
0037
0038 public:
0039
0040 NeymanConstruction(RooAbsData& data, ModelConfig& model);
0041
0042 ~NeymanConstruction() override;
0043
0044
0045 PointSetInterval* GetInterval() const override;
0046
0047
0048
0049 void SetTestStatSampler(TestStatSampler& sampler) {fTestStatSampler = &sampler;}
0050
0051
0052
0053 void SetLeftSideTailFraction(double leftSideFraction = 0.) {fLeftSideFraction = leftSideFraction;}
0054
0055
0056 void SetParameterPointsToTest(RooAbsData& pointsToTest) {
0057 fPointsToTest = &pointsToTest;
0058 fConfBelt = new ConfidenceBelt("ConfBelt",pointsToTest);
0059 }
0060
0061
0062
0063
0064
0065
0066
0067
0068 double Size() const override {return fSize;}
0069
0070
0071 double ConfidenceLevel() const override {return 1.-fSize;}
0072
0073
0074 void SetModel(const ModelConfig &model) override {fModel = model;}
0075
0076
0077 void SetData(RooAbsData& data) override { fData = data; }
0078
0079
0080 void SetTestSize(double size) override {fSize = size;}
0081
0082 void SetConfidenceLevel(double cl) override {fSize = 1.-cl;}
0083
0084
0085 ConfidenceBelt* GetConfidenceBelt() {return fCreateBelt ? fConfBelt : nullptr;}
0086
0087
0088 void UseAdaptiveSampling(bool flag=true){fAdaptiveSampling=flag;}
0089
0090
0091 void AdditionalNToysFactor(double fact){fAdditionalNToysFactor = fact;}
0092
0093
0094 void SaveBeltToFile(bool flag=true){
0095 fSaveBeltToFile = flag;
0096 if(flag) fCreateBelt = true;
0097 }
0098
0099 void CreateConfBelt(bool flag=true){fCreateBelt = flag;}
0100
0101
0102
0103 TestStatSampler* GetTestStatSampler(void) { return fTestStatSampler; }
0104
0105
0106 private:
0107
0108 double fSize;
0109 RooAbsData& fData;
0110 ModelConfig &fModel;
0111
0112 TestStatSampler* fTestStatSampler;
0113 RooAbsData* fPointsToTest;
0114 double fLeftSideFraction;
0115 ConfidenceBelt* fConfBelt;
0116 bool fAdaptiveSampling;
0117 double fAdditionalNToysFactor;
0118 bool fSaveBeltToFile;
0119 bool fCreateBelt;
0120
0121 protected:
0122 ClassDefOverride(NeymanConstruction,0)
0123 };
0124 }
0125
0126
0127 #endif