89 lines
2.6 KiB
C
89 lines
2.6 KiB
C
// To run root without logon screen and script use: root -l -n
|
|
// To run a named macro in root use:
|
|
//.L sr_tr.C
|
|
// BeamSpot("data/sr1_1100.root")
|
|
|
|
#include <string>
|
|
void plotBeamSpot(char* fname)
|
|
{
|
|
|
|
TFile* f1 = new TFile(fname);
|
|
|
|
gStyle->SetPalette(1,0);
|
|
TCanvas* c1 = new TCanvas("c1","Polarization and Transmission",60,40,600,800);
|
|
c1->Divide(2,3);
|
|
c1->SetGridx();
|
|
c1->SetGridy();
|
|
|
|
// Resulting polarization in the x direction
|
|
c1->cd(1);
|
|
t1->Draw("save_polx >> pol_x(128, -0.3, 0.3)","save_detID==900&&save_particleID==-13"); //0, 2
|
|
pol_x->SetTitle("Polarization X");
|
|
pol_x->GetXaxis()->SetNdivisions(405);
|
|
pol_x->GetYaxis()->SetNdivisions(406);
|
|
pol_x->GetXaxis()->SetTickLength(0.018);
|
|
pol_x->GetYaxis()->SetTickLength(0.018);
|
|
pol_x->Draw("F");
|
|
pol_x->SetFillStyle(1001);
|
|
pol_x->SetFillColor(kGreen-5);
|
|
pol_x->Draw();
|
|
//c1->SaveAs("data/sr_bspot_0.eps");
|
|
|
|
// Resulting polarization in the z direction
|
|
c1->cd(2);
|
|
t1->Draw("save_polz >> pol_z(128, -1, -0.9)","save_detID==900&&save_particleID==-13"); //-1., 1
|
|
pol_z->SetTitle("Polarization Z");
|
|
pol_z->GetXaxis()->SetNdivisions(405);
|
|
pol_z->GetYaxis()->SetNdivisions(406);
|
|
pol_z->GetXaxis()->SetTickLength(0.018);
|
|
pol_z->GetYaxis()->SetTickLength(0.018);
|
|
pol_z->Draw("F");
|
|
pol_z->SetFillStyle(1001);
|
|
pol_z->SetFillColor(38);
|
|
pol_z->Draw();
|
|
|
|
|
|
// Initial beam spot
|
|
c1->cd(3)->SetGridx();c1->cd(3)->SetGridy(); // c2->cd(3);
|
|
t1->Draw("muIniPosZ[0]:muIniPosY[0]>>ini_hist(64,-40,40,64,-1710,-1646)","muIniPolZ > -2");
|
|
ini_hist->SetTitle("Muon initial beam cross section [mm]");
|
|
ini_hist->Draw();
|
|
ini_hist->Draw("cont0 same");
|
|
ini_hist->ProjectionX("xisect",31,33);
|
|
ini_hist->ProjectionY("yisect",31,33);
|
|
|
|
// Resulting beam spot
|
|
c1->cd(4)->SetGridx();c1->cd(4)->SetGridy(); // c1->cd(3);
|
|
t1->Draw("save_y:save_x>>bspot_hist(64,-40,40,64,-40,40)","save_detID==900&&save_particleID==-13");
|
|
bspot_hist->SetTitle("Muon beam cross section [mm]");
|
|
bspot_hist->Draw();
|
|
bspot_hist->Draw("cont0 same");
|
|
bspot_hist->ProjectionX("xfsect",31,33);
|
|
bspot_hist->ProjectionY("yfsect",31,33);
|
|
|
|
// Initial beam spot cross section
|
|
c1->cd(5);
|
|
xisect->SetTitle("x initial cross section [mm]");
|
|
xisect->SetFillStyle(1001);
|
|
xisect->SetFillColor(45);
|
|
xisect->Draw();
|
|
|
|
|
|
// Resulting beam spot cross section
|
|
c1->cd(6);
|
|
xfsect->SetTitle("x cross section [mm]");
|
|
xfsect->SetFillStyle(1001);
|
|
xfsect->SetFillColor(45);
|
|
xfsect->Draw();
|
|
|
|
// I am not sure what this does, but it waits until canvas is closed
|
|
c1->WaitPrimitive(" ");
|
|
cout << endl << "Canvas Closed" << endl ;
|
|
|
|
// Then quit root cleanly
|
|
gApplication->Terminate();
|
|
|
|
|
|
}
|
|
|