00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROOSTATS_SamplingDistribution
00017 #define ROOSTATS_SamplingDistribution
00018
00019 #ifndef ROOT_TNamed
00020 #include "TNamed.h"
00021 #endif
00022
00023 #include "Rtypes.h"
00024 #include "RooDataSet.h"
00025
00026
00027 #include <vector>
00028
00029
00030 namespace RooStats {
00031
00032 class SamplingDistribution : public TNamed {
00033
00034 public:
00035
00036
00037 SamplingDistribution(const char *name,const char *title, std::vector<Double_t>& samplingDist, const char * varName = 0);
00038 SamplingDistribution(const char *name,const char *title,
00039 std::vector<Double_t>& samplingDist, std::vector<Double_t>& sampleWeights, const char * varName = 0);
00040
00041
00042 SamplingDistribution(const char *name,const char *title, const char * varName = 0);
00043
00044 SamplingDistribution(const char *name,const char *title, RooDataSet& dataSet, const char * varName = 0);
00045
00046
00047 SamplingDistribution();
00048
00049
00050 virtual ~SamplingDistribution();
00051
00052
00053 Double_t InverseCDF(Double_t pvalue);
00054
00055
00056 Double_t InverseCDFInterpolate(Double_t pvalue);
00057
00058
00059
00060 Double_t InverseCDF(Double_t pvalue, Double_t sigmaVariaton, Double_t& inverseVariation);
00061
00062
00063 void Add(const SamplingDistribution* other);
00064
00065
00066 Int_t GetSize() const{return fSamplingDist.size();}
00067
00068
00069 const std::vector<Double_t> & GetSamplingDistribution() const {return fSamplingDist;}
00070
00071 const std::vector<Double_t> & GetSampleWeights() const {return fSampleWeights;}
00072
00073 const TString GetVarName() const {return fVarName;}
00074
00075
00076 Double_t Integral(Double_t low, Double_t high, Bool_t normalize = kTRUE, Bool_t lowClosed = kTRUE, Bool_t highClosed = kFALSE) const;
00077
00078
00079 Double_t CDF(Double_t x) const;
00080
00081 private:
00082 std::vector<Double_t> fSamplingDist;
00083 std::vector<Double_t> fSampleWeights;
00084
00085
00086 TString fVarName;
00087
00088 protected:
00089
00090 ClassDef(SamplingDistribution,1)
00091 };
00092 }
00093
00094 #endif