//macro to compare results with different //kinematic cut before back-propagation: Box vs X(theta)&Y(phi) //date: 08/02/2014 //author: A.Karavdina void XYvsBoxCut_lmd(TString path = "/panda/myResults/G4_ph_lists/BOX_2_12mrad_G4_FTF_BERT_"){ const int npmom=5; double Pbeam[npmom]={1.5,4.06,8.9,11.91,15}; TString Pbeam_str[npmom] = {"/mom_1_5/","/mom_4_06/","/mom_8_9/","/mom_11_91/","/mom_15/"}; // double Thres[npmom]={685,228,103,86,77};//resolution in murad double Thres[npmom]={601,212,100,83,74};//resolution in murad NEW official const int nsamples = 100; // const int npmom=1; // double Pbeam[npmom]={1.5}; // TString Pbeam_str[npmom] = {"/mom_1_5/"}; // double Thres[npmom]={685};//resolution in murad // const int npmom=4; // double Pbeam[npmom]={4.06,8.9,11.91,15}; // TString Pbeam_str[npmom] = {"/mom_4_06/","/mom_8_9/","/mom_11_91/","/mom_15/"}; /// Get results w/o Cuts ----------------------------------- TString path_noCuts = path+"noCut/"; double ratio_sec_noCuts[npmom][nsamples];//ratio secondaries/all sim double ratio_sec_noCuts_mean[npmom]; double ratio_sec_noCuts_rms[npmom]; double ratio_badth_noCuts[npmom][nsamples];//ratio trk with badTheta/all sim double ratio_badth_noCuts_mean[npmom]; double ratio_badth_noCuts_rms[npmom]; for(int qb=0;qbIsZombie()) cout<<"File: "<Get("tBkg"); //Bkg data Int_t nevent_noCuts = tbkg_noCuts->GetEntries(); if(nevent_noCuts<1){ cout<<"nevent_noCuts = 0!!!"<GetEntries("issecond>=0");//only secondary events // cout<GetEntries(thcond.Data());//only primary events ratio_badth_noCuts[qb][qs] = 100.*double(nevent_badth_noCuts)/1e4; fin_noCuts->Close(); }//end loop over samples }//end loop over Pbeam for(int qb=0;qbSetMarkerColor(2); gr_ratio_sec_noCuts->SetMarkerStyle(20); gr_ratio_sec_noCuts->SetMarkerSize(2.5); TGraphErrors *gr_ratio_badth_noCuts = new TGraphErrors(npmom,Pbeam,ratio_badth_noCuts_mean,0,ratio_badth_noCuts_rms); gr_ratio_badth_noCuts->SetMarkerColor(2); gr_ratio_badth_noCuts->SetMarkerStyle(20); gr_ratio_badth_noCuts->SetMarkerSize(2.5); ///[END] Get results w/o Cuts ----------------------------------- // /// Get results with X Cuts ----------------------------------- // TString path_XCuts = path+"XCut/"; // double ratio_sec_XCuts[npmom][nsamples];//ratio secondaries/all sim // double ratio_sec_XCuts_mean[npmom]; // double ratio_sec_XCuts_rms[npmom]; // double ratio_badth_XCuts[npmom][nsamples];//ratio trk with badTheta/all sim // double ratio_badth_XCuts_mean[npmom]; // double ratio_badth_XCuts_rms[npmom]; // for(int qb=0;qbIsZombie()) cout<<"File: "<Get("tBkg"); //Bkg data // Int_t nevent_XCuts = tbkg_XCuts->GetEntries(); // if(nevent_XCuts<1){ // cout<<"nevent_XCuts = 0!!!"<GetEntries("issecond>=0");//only secondary events // // cout<GetEntries(thcond.Data());//only primary events // ratio_badth_XCuts[qb][qs] = 100.*double(nevent_badth_XCuts)/1e4; // // cout<Close(); // }//end loop over samples // }//end loop over Pbeam // for(int qb=0;qbSetMarkerColor(8); // gr_ratio_sec_XCuts->SetMarkerStyle(20); // gr_ratio_sec_XCuts->SetMarkerSize(2.5); // TGraphErrors *gr_ratio_badth_XCuts = new TGraphErrors(npmom,Pbeam,ratio_badth_XCuts_mean,0,ratio_badth_XCuts_rms); // gr_ratio_badth_XCuts->SetMarkerColor(8); // gr_ratio_badth_XCuts->SetMarkerStyle(20); // gr_ratio_badth_XCuts->SetMarkerSize(2.5); // ///[END] Get results with X Cuts ----------------------------------- /// Get results with XY Cuts ----------------------------------- TString path_XYCuts = path+"XYCut_3sigma/"; double ratio_sec_XYCuts[npmom][nsamples];//ratio secondaries/all sim double ratio_sec_XYCuts_mean[npmom]; double ratio_sec_XYCuts_rms[npmom]; double ratio_badth_XYCuts[npmom][nsamples];//ratio trk with badTheta/all sim double ratio_badth_XYCuts_mean[npmom]; double ratio_badth_XYCuts_rms[npmom]; for(int qb=0;qbIsZombie()) cout<<"File: "<Get("tBkg"); //Bkg data Int_t nevent_XYCuts = tbkg_XYCuts->GetEntries(); if(nevent_XYCuts<1){ cout<<"nevent_XYCuts = 0!!!"<GetEntries("issecond>=0");//only secondary events // cout<GetEntries(thcond.Data());//only primary events ratio_badth_XYCuts[qb][qs] = 100.*double(nevent_badth_XYCuts)/1e4; // cout<Close(); }//end loop over samples }//end loop over Pbeam for(int qb=0;qbSetMarkerColor(4); gr_ratio_sec_XYCuts->SetMarkerStyle(20); gr_ratio_sec_XYCuts->SetMarkerSize(2.5); TGraphErrors *gr_ratio_badth_XYCuts = new TGraphErrors(npmom,Pbeam,ratio_badth_XYCuts_mean,0,ratio_badth_XYCuts_rms); gr_ratio_badth_XYCuts->SetMarkerColor(4); gr_ratio_badth_XYCuts->SetMarkerStyle(20); gr_ratio_badth_XYCuts->SetMarkerSize(2.5); ///[END] Get results with XY Cuts ----------------------------------- /// Get results with Box Cuts ----------------------------------- TString path_BoxCuts = path+"BoxCut/"; double ratio_sec_BoxCuts[npmom][nsamples];//ratio secondaries/all sim double ratio_sec_BoxCuts_mean[npmom]; double ratio_sec_BoxCuts_rms[npmom]; double ratio_badth_BoxCuts[npmom][nsamples];//ratio trk with badTheta/all sim double ratio_badth_BoxCuts_mean[npmom]; double ratio_badth_BoxCuts_rms[npmom]; for(int qb=0;qbIsZombie()) cout<<"File: "<Get("tBkg"); //Bkg data Int_t nevent_BoxCuts = tbkg_BoxCuts->GetEntries(); if(nevent_BoxCuts<1) cout<<"nevent_BoxCuts = 0!!!"<GetEntries("issecond>=0");//only secondary events // cout<GetEntries(thcond.Data());//only primary events ratio_badth_BoxCuts[qb][qs] = 100.*double(nevent_badth_BoxCuts)/1e4; // cout<Close(); }//end loop over samples }//end loop over Pbeam for(int qb=0;qbSetMarkerColor(37); gr_ratio_sec_BoxCuts->SetMarkerStyle(20); gr_ratio_sec_BoxCuts->SetMarkerSize(2.5); TGraphErrors *gr_ratio_badth_BoxCuts = new TGraphErrors(npmom,Pbeam,ratio_badth_BoxCuts_mean,0,ratio_badth_BoxCuts_rms); gr_ratio_badth_BoxCuts->SetMarkerColor(37); gr_ratio_badth_BoxCuts->SetMarkerStyle(20); gr_ratio_badth_BoxCuts->SetMarkerSize(2.5); ///[END] Get results with Box Cuts ----------------------------------- // TMultiGraph *mgr_ratio_sec = new TMultiGraph(); // mgr_ratio_sec->Add(gr_ratio_sec_BoxCuts); // mgr_ratio_sec->Add(gr_ratio_sec_noCuts); // mgr_ratio_sec->Draw("AP"); // mgr_ratio_sec->GetYaxis()->SetTitle("N^{REC}_{secondaries}/N^{SIM}, %"); // mgr_ratio_sec->GetBoxaxis()->SetTitle("P_{beam},GeV/c "); // TLegend *leg2 = new TLegend(0.15,0.84,0.45,0.99); // leg2->SetHeader("2 mrad < #theta_{MC} < 12 mrad"); // leg2->SetTextAlign(12); // leg2->SetTextSize(0.03); // leg2->SetFillColor(0); // leg2->AddEntry(gr_ratio_sec_noCuts,"no Cuts","pe"); // leg2->AddEntry(gr_ratio_sec_BoxCuts,"Box Cut","pe"); // leg2->Draw(); // TMultiGraph *mgr_ratio_sec = new TMultiGraph(); // mgr_ratio_sec->Add(gr_ratio_sec_noCuts); // mgr_ratio_sec->Add(gr_ratio_sec_BoxCuts); // // mgr_ratio_sec->Add(gr_ratio_sec_XCuts); // mgr_ratio_sec->Add(gr_ratio_sec_XYCuts); // mgr_ratio_sec->Draw("AP"); // mgr_ratio_sec->GetYaxis()->SetTitle("N^{REC}_{secondary}/N^{SIM}, %"); // mgr_ratio_sec->GetXaxis()->SetTitle("P_{beam},GeV/c "); // TLegend *leg2 = new TLegend(0.15,0.84,0.45,0.99); // leg2->SetHeader("2 mrad < #theta_{MC} < 12 mrad"); // leg2->SetTextAlign(12); // leg2->SetTextSize(0.03); // leg2->SetFillColor(0); // leg2->AddEntry(gr_ratio_sec_noCuts,"no Cuts","pe"); // leg2->AddEntry(gr_ratio_sec_BoxCuts,"Box Cut","pe"); // // leg2->AddEntry(gr_ratio_sec_XCuts,"X Cut","pe"); // leg2->AddEntry(gr_ratio_sec_XYCuts,"X&Y Cut","pe"); // leg2->Draw(); TMultiGraph *mgr_ratio_badth = new TMultiGraph(); mgr_ratio_badth->Add(gr_ratio_badth_noCuts); mgr_ratio_badth->Add(gr_ratio_badth_BoxCuts); // mgr_ratio_badth->Add(gr_ratio_badth_XCuts); mgr_ratio_badth->Add(gr_ratio_badth_XYCuts); mgr_ratio_badth->Draw("AP"); mgr_ratio_badth->GetYaxis()->SetTitle("N^{REC}_{primary}/N^{SIM}, %"); mgr_ratio_badth->GetXaxis()->SetTitle("P_{beam},GeV/c "); TLegend *leg2 = new TLegend(0.15,0.84,0.45,0.99); leg2->SetHeader("2 mrad < #theta_{MC} < 12 mrad, |#theta_{REC}-#theta_{MC}|>3#sigma_{#theta}"); leg2->SetTextAlign(12); leg2->SetTextSize(0.03); leg2->SetFillColor(0); leg2->AddEntry(gr_ratio_badth_noCuts,"no Cuts","pe"); leg2->AddEntry(gr_ratio_badth_BoxCuts,"Box Cut","pe"); // leg2->AddEntry(gr_ratio_badth_XCuts,"X Cut","pe"); leg2->AddEntry(gr_ratio_badth_XYCuts,"X&Y Cut","pe"); leg2->Draw(); }