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.58); bkg->SetBinError(3,(0.65)); //Bin4 SR2 bkg from PAS bkg->SetBinContent(4,7.07); bkg->SetBinError(4,(2.25)); float r_step = 0.01; int steps = 30; TH1F *cls = new TH1F("cls", "cls", steps, (0.5 *r_step), ((0.5+ steps) *r_step)); for(int i = 1; i < (steps + 1); i++) { std::cout << " r : " << (i * r_step<0.05) << std::endl; signal->SetBinContent(1,6.042 * i * r_step); signal->SetBinContent(2,79.45* i * r_step); signal->SetBinContent(3,1.363 * i * r_step); signal->SetBinContent(4,0.68 * 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; cls->Fill((i * r_step), myconfidence->CLs()); delete mydatasource; delete myconfidence; } cls->Draw(); }