42 ClassImp(RooStats::PointSetInterval); ;
44 using namespace RooStats;
50 PointSetInterval::PointSetInterval(
const char* name) :
51 ConfInterval(name), fConfidenceLevel(0.95), fParameterPointsInInterval(0)
58 PointSetInterval::PointSetInterval(
const char* name, RooAbsData& data) :
59 ConfInterval(name), fConfidenceLevel(0.95), fParameterPointsInInterval(&data)
68 PointSetInterval::~PointSetInterval()
76 Bool_t PointSetInterval::IsInInterval(
const RooArgSet ¶meterPoint)
const
78 RooDataSet* tree =
dynamic_cast<RooDataSet*
>( fParameterPointsInInterval );
79 RooDataHist* hist =
dynamic_cast<RooDataHist*
>( fParameterPointsInInterval );
81 if( !this->CheckParameters(parameterPoint) ){
87 if ( hist->weight( parameterPoint , 0 ) > 0 )
93 const RooArgSet* thisPoint = 0;
95 for(Int_t i = 0; i<tree->numEntries(); ++i){
97 thisPoint = tree->get(i);
98 bool samePoint =
true;
99 TIter it = parameterPoint.createIterator();
101 while ( samePoint && (myarg = (RooRealVar *)it.Next())) {
102 if(myarg->getVal() != thisPoint->getRealValue(myarg->GetName()))
113 std::cout <<
"dataset is not initialized properly" << std::endl;
123 RooArgSet* PointSetInterval::GetParameters()
const
125 return new RooArgSet(*(fParameterPointsInInterval->get()) );
130 Bool_t PointSetInterval::CheckParameters(
const RooArgSet ¶meterPoint)
const
132 if (parameterPoint.getSize() != fParameterPointsInInterval->get()->getSize() ) {
133 std::cout <<
"PointSetInterval: argument size is wrong, parameters don't match: arg=" << parameterPoint
134 <<
" interval=" << (*fParameterPointsInInterval->get()) << std::endl;
137 if ( ! parameterPoint.equals( *(fParameterPointsInInterval->get() ) ) ) {
138 std::cout <<
"PointSetInterval: size is ok, but parameters don't match" << std::endl;
147 Double_t PointSetInterval::UpperLimit(RooRealVar& param )
149 RooDataSet* tree =
dynamic_cast<RooDataSet*
>( fParameterPointsInInterval );
150 Double_t low = 0, high = 0;
152 tree->getRange(param, low, high);
155 return param.getMax();
160 Double_t PointSetInterval::LowerLimit(RooRealVar& param )
162 RooDataSet* tree =
dynamic_cast<RooDataSet*
>( fParameterPointsInInterval );
163 Double_t low = 0, high = 0;
165 tree->getRange(param, low, high);
168 return param.getMin();