00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef RooStats_SimpleInterval
00033 #include "RooStats/SimpleInterval.h"
00034 #endif
00035 #include "RooAbsReal.h"
00036 #include "RooRealVar.h"
00037 #include <string>
00038
00039
00040 ClassImp(RooStats::SimpleInterval) ;
00041
00042 using namespace RooStats;
00043
00044
00045
00046 SimpleInterval::SimpleInterval(const char* name) :
00047 ConfInterval(name), fLowerLimit(0), fUpperLimit(0), fConfidenceLevel(0)
00048 {
00049
00050 }
00051
00052
00053 SimpleInterval::SimpleInterval(const char* name, const RooRealVar & var, Double_t lower, Double_t upper, Double_t cl) :
00054 ConfInterval(name), fParameters(var), fLowerLimit(lower), fUpperLimit(upper), fConfidenceLevel(cl)
00055 {
00056
00057 }
00058
00059
00060
00061
00062 SimpleInterval::~SimpleInterval()
00063 {
00064
00065 }
00066
00067
00068
00069 Bool_t SimpleInterval::IsInInterval(const RooArgSet ¶meterPoint) const
00070 {
00071
00072
00073 if( !this->CheckParameters(parameterPoint) )
00074 return false;
00075
00076 if(parameterPoint.getSize() != 1 )
00077 return false;
00078
00079 RooAbsReal* point = dynamic_cast<RooAbsReal*> (parameterPoint.first());
00080 if (point == 0)
00081 return false;
00082
00083 if ( point->getVal() > fUpperLimit || point->getVal() < fUpperLimit)
00084 return false;
00085
00086
00087 return true;
00088 }
00089
00090
00091 RooArgSet* SimpleInterval::GetParameters() const
00092 {
00093
00094 return new RooArgSet(fParameters);
00095 }
00096
00097
00098 Bool_t SimpleInterval::CheckParameters(const RooArgSet ¶meterPoint) const
00099 {
00100
00101 if (parameterPoint.getSize() != fParameters.getSize() ) {
00102 std::cout << "size is wrong, parameters don't match" << std::endl;
00103 return false;
00104 }
00105 if ( ! parameterPoint.equals( fParameters ) ) {
00106 std::cout << "size is ok, but parameters don't match" << std::endl;
00107 return false;
00108 }
00109 return true;
00110 }