Exemplo n.º 1
0
double upper_limit_Profile_Likelihood(Model* model,double confidence){
  cout<<"///////////////////////////////////////////////////////////////////////////////////////////"<<endl;
  cout<<"Calculating upper limit with the Profile Likelihood method"<<endl;
  cout<<"///////////////////////////////////////////////////////////////////////////////////////////"<<endl;
  
  
  //      //define paramsOfInterest
     RooArgSet *paramsOfInterest=new RooArgSet("paramsOfInterest");
     paramsOfInterest->addClone(*model->get_POI()); 	//clone because we need s for complete likelihood
     
     //get the calculator
     ProfileLikelihoodCalculator plc(*model->get_data(),*model->get_complete_likelihood(), *paramsOfInterest);
     
     //      //get the confidence interval
     LikelihoodInterval* lrint = (LikelihoodInterval*) plc.GetInterval();
     lrint->SetConfidenceLevel(1-(1-confidence)*2);
     double ul=lrint->UpperLimit(*model->get_POI());
     cout<<confidence<<"% upper limit is "<<ul<<endl;
  //    TCanvas *c1=new TCanvas;
//      LikelihoodIntervalPlot* lrplot1 = new LikelihoodIntervalPlot(lrint);
//      lrplot1->Draw(); 
//      c1->SaveAs("pll_plot6.png");
     
     
     return ul;
}
Exemplo n.º 2
0
void central_interval_Profile_Likelihood(Model* model,double confidence){
  cout<<"///////////////////////////////////////////////////////////////////////////////////////////"<<endl;
  cout<<"Calculating central confidence interval with the Profile Likelihood method"<<endl;
  cout<<"///////////////////////////////////////////////////////////////////////////////////////////"<<endl;
  
  
  //      //define paramsOfInterest
     RooArgSet *paramsOfInterest=new RooArgSet("paramsOfInterest");
     paramsOfInterest->addClone(*model->get_POI()); 	//clone because we need s for complete likelihood
     
     //get the calculator
     ProfileLikelihoodCalculator plc(*model->get_data(),*model->get_complete_likelihood(), *paramsOfInterest);
     
     //      //get the confidence interval
     LikelihoodInterval* lrint = (LikelihoodInterval*) plc.GetInterval();
     lrint->SetConfidenceLevel(confidence);
     double ll=lrint->LowerLimit(*model->get_POI());
     double ul=lrint->UpperLimit(*model->get_POI());
     cout<<confidence<<"% inter val is "<<ll<<" , "<<ul<<endl;

}