void Limit(){ TH1F *signal=new TH1F("signal","signal",4, 0., 4.); TH1F *bkg=new TH1F("bkg","bkg",4, 0., 4.); TH1F *data=new TH1F("data","data",4, 0., 4.); //Bin1 muTau data->SetBinContent(1,5.0); data->SetBinError(1,sqrt(5.0)); //Bin2 eleTau data->SetBinContent(2,3.0); data->SetBinError(2,sqrt(3.0)); //Bin3 SR1 data->SetBinContent(3,1.0); data->SetBinError(3,sqrt(1.0)); //Bin4 SR2 data->SetBinContent(4,2.0); data->SetBinError(4,sqrt(2.0)); //Bin1 muTau bkg from PAS bkg->SetBinContent(1,8.59); bkg->SetBinError(1,(4.83)); //Bin2 eleTau bkg from PAS bkg->SetBinContent(2,3.52); bkg->SetBinError(2,(3.39)); //Bin3 SR1 bkg from PAS bkg->SetBinContent(3,1.60); bkg->SetBinError(3,(0.63)); //Bin4 SR2 bkg from PAS bkg->SetBinContent(4,5.29); bkg->SetBinError(4,(1.66)); float r_step = 0.01; for(int i=1;i<10;i++){ std::cout << " r : " << i * r_step << std::endl; signal->SetBinContent(1,0.7 * i * r_step); signal->SetBinContent(2,0.5 * i * r_step); signal->SetBinContent(3,1.3 * i * r_step); signal->SetBinContent(4,1.8 * i * r_step); signal->SetBinError(1,0.2 * signal->GetBinContent(1)); signal->SetBinError(2,0.2 * signal->GetBinContent(2)); signal->SetBinError(3,0.25 * signal->GetBinContent(3)); signal->SetBinError(4,0.25 * signal->GetBinContent(4)); TLimitDataSource* mydatasource = new TLimitDataSource(signal,bkg,data); TConfidenceLevel* myconfidence = TLimit::ComputeLimit(mydatasource,50000); std::cout << " CLs : " << myconfidence->CLs() << std::endl; delete mydatasource; delete myconfidence; } }