void DrawDmDiff(TString path="/panda/pandaroot/macro/lmd/testPixel/mom_1_5/"){ // double dP[11]={-1e-1,-1e-2,-1e-3,-1e-4,-1e-5,0,1e-5,1e-4,1e-3,1e-2,1e-1}; //TString dPstr[11]={"-1e-1", "-1e-2", "-1e-3", "-1e-4", "-1e-5", "0", "1e-5", "1e-4", "1e-3", "1e-2", "1e-1"}; // const int Nsteps=11; const int Nsteps=5; TString dPstr[Nsteps]={"-1e-3", "-1e-4", "0", "1e-4", "1e-3"}; TH1D *hresPhi_phi_mean[Nsteps]; TH1D *hresPhi_phi_sigma[Nsteps]; TH1D *hresTheta_phi_mean[Nsteps]; TH1D *hresTheta_phi_sigma[Nsteps]; TH1D *hresPhi_theta_mean[Nsteps]; TH1D *hresPhi_theta_sigma[Nsteps]; TH1D *hresTheta_theta_mean[Nsteps]; TH1D *hresTheta_theta_sigma[Nsteps]; TH2D *hthphLMD[Nsteps]; TH2D *hthphIP[Nsteps]; TCanvas c1; TString name_out = path+"/PlotsSummary_noCuts_PrecIsPbeam_small.pdf"; name_out_o = name_out+"("; name_out_c = name_out+")"; TLegend *leg = new TLegend(0.75,0.6,0.98,0.99); leg->SetHeader("P_{sim}=P_{beam}+dP, P_{rec}=P_{beam}"); for(int i=0;iGet("hresPhiPhi"); if(hresPhi_phi==0) continue; // hthphLMD[i] = new TH2D(); hthphIP[i] = new TH2D(); hthphLMD[i] = (TH2D*)f_in->Get("hphthLMD"); TString nameAcc = "dP ="; nameAcc+=dPstr[i]; hthphLMD[i]->SetTitle(nameAcc.Data()); hthphIP[i] = (TH2D*)f_in->Get("hphthIP"); hthphIP[i]->SetTitle(nameAcc.Data()); TString name_phiphi = "hresPhiPhi_"; name_phiphi +=i; hresPhi_phi->SetName(name_phiphi.Data()); hresPhi_phi->FitSlicesY(); TString name_phiphi_mean = name_phiphi; name_phiphi_mean += "_1"; cout<Get(name_phiphi_mean); hresPhi_phi_mean[i]->SetMarkerStyle(21); hresPhi_phi_mean[i]->SetMarkerSize(2.1); hresPhi_phi_mean[i]->SetMarkerColor(36+i); hresPhi_phi_mean[i]->GetYaxis()->SetTitle("Mean(#phi^{IP}_{MC}-#phi^{IP}_{REC}), rad"); // hresPhi_phi_mean[i]->SetMaximum(2.); // hresPhi_phi_mean[i]->SetMinimum(-2.); hresPhi_phi_mean[i]->SetMaximum(0.1); hresPhi_phi_mean[i]->SetMinimum(-0.1); hresPhi_phi_mean[i]->SetTitle(""); if(i==0) hresPhi_phi_mean[i]->Draw(); else hresPhi_phi_mean[i]->Draw("same"); TString Pleg = "dP = "; Pleg+=dPstr[i]; leg->AddEntry(hresPhi_phi_mean[i],Pleg.Data(),"ep"); // f_in->Close(); } leg->Draw(); c1.Print(name_out_o); for(int i=0;iGet("hresPhiPhi"); if(hresPhi_phi==0) continue; TString name_phiphi = "hresPhiPhi_"; name_phiphi +=i; hresPhi_phi->SetName(name_phiphi.Data()); hresPhi_phi->FitSlicesY(); TString name_phiphi_sigma = name_phiphi; name_phiphi_sigma += "_2"; cout<Get(name_phiphi_sigma); hresPhi_phi_sigma[i]->SetMarkerStyle(21); hresPhi_phi_sigma[i]->SetMarkerSize(2.1); hresPhi_phi_sigma[i]->SetMarkerColor(36+i); hresPhi_phi_sigma[i]->GetYaxis()->SetTitle("Sigma(#phi^{IP}_{MC}-#phi^{IP}_{REC}), rad"); hresPhi_phi_sigma[i]->SetTitle(""); // hresPhi_phi_sigma[i]->SetMaximum(1.); // hresPhi_phi_sigma[i]->SetMinimum(0); hresPhi_phi_sigma[i]->SetMaximum(0.2); hresPhi_phi_sigma[i]->SetMinimum(0); if(i==0) hresPhi_phi_sigma[i]->Draw(); else hresPhi_phi_sigma[i]->Draw("same"); // f_in->Close(); } leg->Draw(); c1.Print(name_out_o); for(int i=0;iGet("hresThetaPhi"); if(hresTheta_phi==0) continue; TString name_phiphi = "hresThetaPhi_"; name_phiphi +=i; hresTheta_phi->SetName(name_phiphi.Data()); hresTheta_phi->FitSlicesY(); TString name_phiphi_mean = name_phiphi; name_phiphi_mean += "_1"; cout<Get(name_phiphi_mean); hresTheta_phi_mean[i]->SetMarkerStyle(21); hresTheta_phi_mean[i]->SetMarkerSize(2.1); hresTheta_phi_mean[i]->SetMarkerColor(36+i); hresTheta_phi_mean[i]->GetYaxis()->SetTitle("Mean(#theta^{IP}_{MC}-#theta^{IP}_{REC}), mrad"); hresTheta_phi_mean[i]->SetTitle(""); // hresTheta_phi_mean[i]->SetMaximum(5.); // hresTheta_phi_mean[i]->SetMinimum(-5.); hresTheta_phi_mean[i]->SetMaximum(0.5); hresTheta_phi_mean[i]->SetMinimum(-0.5); if(i==0) hresTheta_phi_mean[i]->Draw(); else hresTheta_phi_mean[i]->Draw("same"); // f_in->Close(); } leg->Draw(); c1.Print(name_out_o); for(int i=0;iGet("hresThetaPhi"); if(hresTheta_phi==0) continue; TString name_phiphi = "hresThetaPhi_"; name_phiphi +=i; hresTheta_phi->SetName(name_phiphi.Data()); hresTheta_phi->FitSlicesY(); TString name_phiphi_sigma = name_phiphi; name_phiphi_sigma += "_2"; cout<Get(name_phiphi_sigma); hresTheta_phi_sigma[i]->SetMarkerStyle(21); hresTheta_phi_sigma[i]->SetMarkerSize(2.1); hresTheta_phi_sigma[i]->SetMarkerColor(36+i); hresTheta_phi_sigma[i]->GetYaxis()->SetTitle("Sigma(#theta^{IP}_{MC}-#theta^{IP}_{REC}), mrad"); hresTheta_phi_sigma[i]->SetTitle(""); // hresTheta_phi_sigma[i]->SetMaximum(3.); // hresTheta_phi_sigma[i]->SetMinimum(0); hresTheta_phi_sigma[i]->SetMaximum(2.); hresTheta_phi_sigma[i]->SetMinimum(0); if(i==0) hresTheta_phi_sigma[i]->Draw(); else hresTheta_phi_sigma[i]->Draw("same"); // f_in->Close(); } leg->Draw(); c1.Print(name_out_o); // //////////////////////////// theta for(int i=0;iGet("hresPhiTheta"); if(hresPhi_theta==0) continue; TString name_thetaphi = "hresPhiTheta_"; name_thetaphi +=i; hresPhi_theta->SetName(name_thetaphi.Data()); hresPhi_theta->FitSlicesY(); TString name_thetaphi_mean = name_thetaphi; name_thetaphi_mean += "_1"; cout<Get(name_thetaphi_mean); hresPhi_theta_mean[i]->SetMarkerStyle(21); hresPhi_theta_mean[i]->SetMarkerSize(2.1); hresPhi_theta_mean[i]->SetMarkerColor(36+i); hresPhi_theta_mean[i]->GetYaxis()->SetTitle("Mean(#phi^{IP}_{MC}-#phi^{IP}_{REC}), rad"); hresPhi_theta_mean[i]->SetTitle(""); // hresPhi_theta_mean[i]->SetMaximum(2.); // hresPhi_theta_mean[i]->SetMinimum(-2.); hresPhi_theta_mean[i]->SetMaximum(0.1); hresPhi_theta_mean[i]->SetMinimum(-0.1); if(i==0) hresPhi_theta_mean[i]->Draw(); else hresPhi_theta_mean[i]->Draw("same"); } leg->Draw(); c1.Print(name_out_o); for(int i=0;iGet("hresPhiTheta"); if(hresPhi_theta==0) continue; TString name_thetaphi = "hresPhiTheta_"; name_thetaphi +=i; hresPhi_theta->SetName(name_thetaphi.Data()); hresPhi_theta->FitSlicesY(); TString name_thetaphi_sigma = name_thetaphi; name_thetaphi_sigma += "_2"; cout<Get(name_thetaphi_sigma); hresPhi_theta_sigma[i]->SetMarkerStyle(21); hresPhi_theta_sigma[i]->SetMarkerSize(2.1); hresPhi_theta_sigma[i]->SetMarkerColor(36+i); hresPhi_theta_sigma[i]->GetYaxis()->SetTitle("Sigma(#phi^{IP}_{MC}-#phi^{IP}_{REC}), rad"); hresPhi_theta_sigma[i]->SetTitle(""); // hresPhi_theta_sigma[i]->SetMaximum(5); // hresPhi_theta_sigma[i]->SetMinimum(0); hresPhi_theta_sigma[i]->SetMaximum(0.5); hresPhi_theta_sigma[i]->SetMinimum(0); if(i==0) hresPhi_theta_sigma[i]->Draw(); else hresPhi_theta_sigma[i]->Draw("same"); // f_in->Close(); } leg->Draw(); c1.Print(name_out_o); for(int i=0;iGet("hresThetaTheta"); if(hresTheta_theta==0) continue; TString name_thetaphi = "hresThetaTheta_"; name_thetaphi +=i; hresTheta_theta->SetName(name_thetaphi.Data()); hresTheta_theta->FitSlicesY(); TString name_thetaphi_mean = name_thetaphi; name_thetaphi_mean += "_1"; cout<Get(name_thetaphi_mean); hresTheta_theta_mean[i]->SetMarkerStyle(21); hresTheta_theta_mean[i]->SetMarkerSize(2.1); hresTheta_theta_mean[i]->SetMarkerColor(36+i); hresTheta_theta_mean[i]->GetYaxis()->SetTitle("Mean(#theta^{IP}_{MC}-#theta^{IP}_{REC}), mrad"); hresTheta_theta_mean[i]->SetTitle(""); // hresTheta_theta_mean[i]->SetMaximum(5.); // hresTheta_theta_mean[i]->SetMinimum(-5.); hresTheta_theta_mean[i]->SetMaximum(0.5); hresTheta_theta_mean[i]->SetMinimum(-0.5); if(i==0) hresTheta_theta_mean[i]->Draw(); else hresTheta_theta_mean[i]->Draw("same"); // f_in->Close(); } leg->Draw(); c1.Print(name_out_o); for(int i=0;iGet("hresThetaTheta"); if(hresTheta_theta==0) continue; TString name_thetaphi = "hresThetaTheta_"; name_thetaphi +=i; hresTheta_theta->SetName(name_thetaphi.Data()); hresTheta_theta->FitSlicesY(); TString name_thetaphi_sigma = name_thetaphi; name_thetaphi_sigma += "_2"; cout<Get(name_thetaphi_sigma); hresTheta_theta_sigma[i]->SetMarkerStyle(21); hresTheta_theta_sigma[i]->SetMarkerSize(2.1); hresTheta_theta_sigma[i]->SetMarkerColor(36+i); hresTheta_theta_sigma[i]->GetYaxis()->SetTitle("Sigma(#theta^{IP}_{MC}-#theta^{IP}_{REC}), mrad"); hresTheta_theta_sigma[i]->SetTitle(""); // hresTheta_theta_sigma[i]->SetMaximum(5.); // hresTheta_theta_sigma[i]->SetMinimum(0); hresTheta_theta_sigma[i]->SetMaximum(2.); hresTheta_theta_sigma[i]->SetMinimum(0); if(i==0) hresTheta_theta_sigma[i]->Draw(); else hresTheta_theta_sigma[i]->Draw("same"); // f_in->Close(); } leg->Draw(); c1.Print(name_out_o); // for(int k=0;kDivide(hthphLMD[5]);// normilise to no shift case // // // // hthphIP[i]->Divide(hthphIP[5]);// // c1.Divide(2); // hthphLMD[i]->Draw("colz"); // c1.cd(1); // hthphIP[i]->Draw("colz"); // c1.Print(name_out_o); // } c1.Clear(); c1.Print(name_out_c); }