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