//macro to summarize results on results of <> propagation in graphs void Limits(TString path = "/panda/myResults/RK/HIMster/mom_15/200samp_1e4/"){ // const int npbeam = 9; // const int nq=6; const int nq=1; double Pbeam = 15; // const int npbeam = 9; // int dpbeam[npbeam] = {-80,-40,-20,-10,0,10,20,40,80}; const int npbeam = 7; int dpbeam[npbeam] = {-80,-60,-40,-20,-10,0,10}; double pbeamval[npbeam]; for(int ip=0;ipIsZombie()) { //cout << "Error opening file" << endl; cout<<"File "<Get("tByPropout"); nev[ich][im] = (tProp->GetEntries()); //% for 1e4 events TH1 *hth_sim = new TH1D("hth_sim","",1e4,th1,th2); tProp->Project("hth_sim","1e3*th_sim");//theta sim TH1 *hth_rec = new TH1D("hth_rec","",1e4,0,1570); tProp->Project("hth_rec","1e3*th_out");//theta rec TH1 *hph_sim = new TH1D("hph_sim","",1e4,0,2*TMath::Pi()); tProp->Project("hph_sim","ph_sim");//phi sim TH1 *hph_rec = new TH1D("hph_rec","",1e4,-TMath::Pi(),TMath::Pi()); tProp->Project("hph_rec","ph_out");//phi rec // TH1 *hx_rec = new TH1D("hx_rec","",1e6,-2e2,2e2); // tProp->Project("hx_rec","x_out");//X TH1 *hx_rec = new TH1D("hx_rec","",1e6,-5e2,5e2); tProp->Project("hx_rec","1e4*x_out");//X TH1 *hy_rec = new TH1D("hy_rec","",1e6,-2e2,2e2); tProp->Project("hy_rec","y_out");//Y // f_out->Close(); /// begin th limit sim bool th_min_sim_fl=false; bool th_max_sim_fl=false; for(int ibin=0;ibin<1e4;ibin++){ double thbin = hth_sim->GetBinContent(ibin); if(!th_min_sim_fl){ if(thbin>0){ // cout<<"thbin["<0){ //in case of holes th_max_sim_fl=false; } } }/// end th limit sim /// begin th limit rec bool th_min_rec_fl=false; bool th_max_rec_fl=false; for(int ibin=0;ibin<1e4;ibin++){ double thbin = hth_rec->GetBinContent(ibin); if(!th_min_rec_fl){ if(thbin>0){ // cout<<"thbin["<0){ //in case of holes th_max_rec_fl=false; } } }/// end th limit rec /// begin ph limit sim bool ph_min_sim_fl=false; bool ph_max_sim_fl=false; for(int ibin=0;ibin<1e4;ibin++){ double phbin = hph_sim->GetBinContent(ibin); if(!ph_min_sim_fl){ if(phbin>0){ // cout<<"phbin["<0){ //in case of holes ph_max_sim_fl=false; } } }/// end ph limit sim /// begin ph limit rec bool ph_min_rec_fl=false; bool ph_max_rec_fl=false; for(int ibin=0;ibin<1e4;ibin++){ double phbin = hph_rec->GetBinContent(ibin); if(!ph_min_rec_fl){ if(phbin>0){ // cout<<"phbin["<0){ //in case of holes ph_max_rec_fl=false; } } }/// end ph limit rec /// begin x limit rec bool x_min_rec_fl=false; bool x_max_rec_fl=false; for(int ibin=0;ibin<1e6;ibin++){ double xbin = hx_rec->GetBinContent(ibin); if(!x_min_rec_fl){ if(xbin>0){ // cout<<"xbin["<0){ //in case of holes x_max_rec_fl=false; } if(x_max_rec_fl && xbin>0){ //in case of holes x_max_rec_fl=false; } } }/// end x limit rec /// begin y limit rec bool y_min_rec_fl=false; bool y_max_rec_fl=false; for(int ibin=0;ibin<1e6;ibin++){ double ybin = hy_rec->GetBinContent(ibin); if(!y_min_rec_fl){ if(ybin>0){ // cout<<"ybin["<0){ //in case of holes y_max_rec_fl=false; } if(y_max_rec_fl && ybin>0){ //in case of holes y_max_rec_fl=false; } } }/// end y limit rec cout<<"x_rec_min = "<SetHeader(grname); // leg->AddEntry(gnev[ich],grname,"l"); // gth_sim_min[ich] = new TGraph(npbeam,pbeamval,th_min_sim[ich]); // gth_sim_max[ich] = new TGraph(npbeam,pbeamval,th_max_sim[ich]); gth_sim_mn[ich] = new TGraphErrors(npbeam,pbeamval,th_mn_sim[ich],0,th_un_sim[ich]); // gph_sim_min[ich] = new TGraph(npbeam,pbeamval,ph_min_sim[ich]); // gph_sim_max[ich] = new TGraph(npbeam,pbeamval,ph_max_sim[ich]); gph_sim_mn[ich] = new TGraphErrors(npbeam,pbeamval,ph_mn_sim[ich],0,ph_un_sim[ich]); // gth_rec_min[ich] = new TGraph(npbeam,pbeamval,th_min_rec[ich]); // gth_rec_max[ich] = new TGraph(npbeam,pbeamval,th_max_rec[ich]); gth_rec_mn[ich] = new TGraphErrors(npbeam,pbeamval,th_mn_rec[ich],0,th_un_rec[ich]); gx_rec_mn[ich] = new TGraphErrors(npbeam,pbeamval,x_mn_rec[ich],0,x_un_rec[ich]); gx_rec_mn[ich]->SetMarkerStyle(20); // gx_rec_min[ich] = new TGraph(npbeam,pbeamval,x_min_rec[ich]); // gx_rec_max[ich] = new TGraph(npbeam,pbeamval,x_max_rec[ich]); // gth_sim_min[ich]->SetMarkerStyle(24+ich); // gth_sim_min[ich]->SetMarkerSize(3.5); // gph_sim_min[ich]->SetMarkerStyle(24+ich); // gph_sim_min[ich]->SetMarkerSize(3.5); // gth_rec_min[ich]->SetMarkerStyle(24+ich); // gth_rec_min[ich]->SetMarkerSize(3.5); // gx_rec_min[ich]->SetMarkerStyle(24+ich); // gx_rec_min[ich]->SetMarkerSize(3.5); // gth_sim_max[ich]->SetMarkerStyle(24+ich); // gth_sim_max[ich]->SetMarkerSize(3.5); // gph_sim_max[ich]->SetMarkerStyle(24+ich); // gph_sim_max[ich]->SetMarkerSize(3.5); // gth_rec_max[ich]->SetMarkerStyle(24+ich); // gth_rec_max[ich]->SetMarkerSize(3.5); // gx_rec_max[ich]->SetMarkerStyle(24+ich); // gx_rec_max[ich]->SetMarkerSize(3.5); if(q[0]<0){ gth_sim_mn[ich]->SetLineColor(kOrange+1+ich); gth_sim_mn[ich]->SetFillStyle(3004+ich); gth_sim_mn[ich]->SetFillColor(kOrange+1+ich); gph_sim_mn[ich]->SetLineColor(kOrange+1+ich); gph_sim_mn[ich]->SetFillStyle(3004+ich); gph_sim_mn[ich]->SetFillColor(kOrange+1+ich); gth_rec_mn[ich]->SetLineColor(kOrange+1+ich); gth_rec_mn[ich]->SetFillStyle(3004+ich); gth_rec_mn[ich]->SetFillColor(kOrange+1+ich); gx_rec_mn[ich]->SetLineColor(kOrange+1+ich); // gx_rec_mn[ich]->SetFillStyle(3004+ich); gx_rec_mn[ich]->SetFillColor(kOrange+1+ich); } else{ gth_sim_mn[ich]->SetLineColor(kTeal+2+ich); gth_sim_mn[ich]->SetFillStyle(3004+ich); gth_sim_mn[ich]->SetFillColor(kTeal+2+ich); gph_sim_mn[ich]->SetLineColor(kTeal+2+ich); gph_sim_mn[ich]->SetFillStyle(3004+ich); gph_sim_mn[ich]->SetFillColor(kTeal+2+ich); gth_rec_mn[ich]->SetLineColor(kTeal+2+ich); gth_rec_mn[ich]->SetFillStyle(3004+ich); gth_rec_mn[ich]->SetFillColor(kTeal+2+ich); gx_rec_mn[ich]->SetLineColor(kTeal+2+ich); // gx_rec_mn[ich]->SetFillStyle(3004+ich); gx_rec_mn[ich]->SetFillColor(kTeal+2+ich); // gth_sim_min[ich]->SetMarkerColor(kTeal+2+ich); // gth_sim_max[ich]->SetMarkerColor(kTeal+2+ich); // gth_sim_min[ich]->SetLineColor(kTeal+2+ich); // gth_sim_max[ich]->SetLineColor(kTeal+2+ich); // gph_sim_min[ich]->SetMarkerColor(kTeal+2+ich); // gph_sim_max[ich]->SetMarkerColor(kTeal+2+ich); // gph_sim_min[ich]->SetLineColor(kTeal+2+ich); // gph_sim_max[ich]->SetLineColor(kTeal+2+ich); // gth_rec_min[ich]->SetMarkerColor(kTeal+2+ich); // gth_rec_max[ich]->SetMarkerColor(kTeal+2+ich); // gth_rec_min[ich]->SetLineColor(kTeal+2+ich); // gth_rec_max[ich]->SetLineColor(kTeal+2+ich); // gx_rec_min[ich]->SetMarkerColor(kTeal+2+ich); // gx_rec_max[ich]->SetMarkerColor(kTeal+2+ich); // gx_rec_min[ich]->SetLineColor(kTeal+2+ich); // gx_rec_max[ich]->SetLineColor(kTeal+2+ich); } // mgr_th_sim->Add(gth_sim_min[ich],"C"); mgr_th_sim->Add(gth_sim_mn[ich],"3"); //mgr_th_sim->Add(gth_sim_max[ich],"C"); // mgr_ph_sim->Add(gph_sim_min[ich],"PL"); // mgr_ph_sim->Add(gph_sim_max[ich],"PL"); mgr_ph_sim->Add(gph_sim_mn[ich],"3"); mgr_th_rec->Add(gth_rec_mn[ich],"3"); // mgr_th_rec->Add(gth_rec_min[ich],"PL"); // mgr_th_rec->Add(gth_rec_max[ich],"PL"); mgr_x_rec->Add(gx_rec_mn[ich],"3"); // mgr_x_rec->Add(gx_rec_min[ich],"PL"); // mgr_x_rec->Add(gx_rec_max[ich],"PL"); // grname +=", "; TString cutn; if(thphcut[ich]<1) cutn ="(x,y)"; else cutn ="(x,y) & (#hat{#theta},#hat{#phi})"; cutn +=" cut"; leg->AddEntry(gth_sim_mn[ich],cutn,"f");//field // leg->AddEntry(gx_rec_mn[ich],cutn,"ple");//line } // mgrx->Draw("AP"); // mgrev->Draw("AP"); // // //draw th_sim // mgr_th_sim->Draw("AC"); // mgr_th_sim->GetXaxis()->SetTitle("P, GeV/c"); // mgr_th_sim->GetYaxis()->SetTitle("#theta_{sim}, mrad"); // leg->Draw(); // // /// end draw th_sim // // //draw ph_sim // mgr_ph_sim->Draw("AC"); // mgr_ph_sim->GetXaxis()->SetTitle("P, GeV/c"); // mgr_ph_sim->GetYaxis()->SetTitle("#phi_{sim}, rad"); // leg->Draw(); // // /// end draw ph_sim // //draw th_rec // mgr_th_rec->Draw("AC"); // mgr_th_rec->GetXaxis()->SetTitle("P, GeV/c"); // mgr_th_rec->GetYaxis()->SetTitle("#theta_{rec}, mrad"); // leg->Draw(); // /// end draw th_rec //draw x_rec mgr_x_rec->Draw("AC"); mgr_x_rec->GetXaxis()->SetTitle("P, GeV/c"); // mgr_x_rec->GetYaxis()->SetTitle("x_{rec}, cm"); mgr_x_rec->GetYaxis()->SetTitle("x_{rec}, #mum"); leg->Draw(); /// end draw x_rec // TGraphErrors *grsysx = new TGraphErrors(npbeam,pbeamval,x_mean[0],0,x_rms[0]); // grsysx->Draw("A*"); // TGraphErrors *grsysx = new TGraphErrors(npbeam,pbeamval,x_mean[1],0,x_rms[1]); // grsysx->Draw("A*"); }