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; int steps = 9; 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 << 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; cls->Fill((i * r_step), myconfidence->CLs()); delete mydatasource; delete myconfidence; } cls->Draw(); }