//******************************************************** //*Be sure to add headfiles if want to compile this scrpt* //*This script is developed by iSTEV group1 * //******************************************************** void homework_1(){ Double_t mass_sig,ann_sig,mass_bkg,ann_bkg; Double_t ann_cut = 0.4; Double_t power = 0.; Double_t baoliu=0.; TFile *file = new TFile("tree_group_01.root","r"); TTree *tr_sig = (TTree*) file->Get("tree_mc_sig"); TTree *tr_bck = (TTree*) file->Get("tree_mc_bkg"); tr_sig->SetBranchAddress("mass",&mass_sig); tr_sig->SetBranchAddress("ann",&ann_sig); tr_bck->SetBranchAddress("mass",&mass_bkg); tr_bck->SetBranchAddress("ann",&ann_bkg); Int_t num_bkg = tr_sig->GetEntriesFast();//data entries Int_t num_sig = tr_bck->GetEntriesFast(); TCanvas* c1 = new TCanvas("c1","c1",900,700); gStyle->SetOptStat(0); gStyle->SetStatY(0.98); gStyle->SetStatX(0.98); gStyle->SetStatW(0.3); gStyle->SetStatH(0.3); c1->SetGridx(1); c1->SetGridy(1); c1->SetTickx(1); c1->SetTicky(1); c1->SetFillColor(0); c1->SetBorderMode(0); c1->SetBorderSize(2); c1->SetLeftMargin(0.11); c1->SetFrameBorderMode(0); c1->SetFrameLineWidth(2); TH2F* frame = new TH2F("frame","ann_cut vs S/B;ann_cut;S/B",60,0.3,0.9,550,1.5,20); gPad->SetLeftMargin(0.12); gPad->SetRightMargin(0.12); gPad->SetTopMargin(0.12); gPad->SetBottomMargin(0.12); gPad->SetFrameLineWidth(0); gPad->SetFrameBorderMode(0); gPad->SetTickx(1); gPad->SetTicky(1); gPad->SetLogx(0); gPad->SetLogy(0); frame->SetLineStyle(1); frame->SetLineColor(2); frame->SetLineWidth(1); frame->GetXaxis()->SetRangeUser(0.3,0.9); frame->GetXaxis()->SetTitle("ann_cut"); frame->GetXaxis()->CenterTitle(false); frame->GetXaxis()->SetLabelFont(42); frame->GetXaxis()->SetLabelSize(0.05); frame->GetXaxis()->SetTitleSize(0.06); frame->GetXaxis()->SetTitleOffset(0.9); frame->GetXaxis()->SetNdivisions(8,5,0,kTRUE); frame->GetYaxis()->SetRangeUser(1.5,7); frame->GetYaxis()->SetNdivisions(7,9,0,kTRUE); frame->GetYaxis()->SetTitle( "S/B" ); frame->GetYaxis()->CenterTitle(true); frame->GetYaxis()->SetLabelFont(42); frame->GetYaxis()->SetLabelSize(0.05); frame->GetYaxis()->SetTitleSize(0.055); frame->GetYaxis()->SetTitleOffset(1.15); frame->GetYaxis()->SetNdivisions(8,5,0,kTRUE); frame->GetYaxis()->SetTitleFont(42); TGraph* g1 = new TGraph(); Double_t total_num_sig=0;//selection events Double_t total_num_bkg=0; Double_t total_num_bkg_final = total_num_bkg;//bkg number after last cut for (Int_t j = 0; j < 1000; j++){ total_num_bkg=0; total_num_sig=0; for(Int_t i = 0; i < num_sig; i++){ tr_sig -> GetEntry(i); if (ann_sig > ann_cut){ total_num_sig = total_num_sig+1; } } for(Int_t k = 0; k < num_bkg; k++){ tr_bck -> GetEntry(k); if (ann_bkg > ann_cut){ total_num_bkg = total_num_bkg+1; } } baoliu = 1-total_num_sig/num_sig; if (baoliu >= 0.1) {break;} power = total_num_sig/total_num_bkg; g1->SetPoint(j,ann_cut,power); ann_cut = ann_cut + 0.6/1000.; total_num_bkg_final = total_num_bkg; std::cout<<"***************************************"<Draw(); g1->SetLineWidth(2); g1->Draw("same"); c1->Print("ann_cut_effect_0.7732.eps"); c1->Print("ann_cut_effect_0.7732.bmp"); }