Files
geant4/examples/advanced/nanobeam/plot.C
T
2016-06-09 15:58:43 +02:00

147 lines
4.2 KiB
C++
Executable File

{
gROOT->Reset();
gROOT->SetStyle("Plain");
gStyle->SetOptStat(1111);
gStyle->SetPalette(1);
c1 = new TCanvas ("c1","",200,10,800,800);
c1.Divide(2,2);
Float_t x,y,z,theta,phi,nrj;
Int_t ncols;
FILE *fp1 = fopen("./results/profile.txt","r");
if (fp1==0) goto jump1;
TNtuple *ntuple1 = new TNtuple("ntuple1","file1","x:y:z");
while (1)
{
ncols = fscanf(fp1,"%f %f %f",&x, &y, &z);
if (ncols < 0) break;
ntuple1->Fill(x/1000,y/1000,z/1000);
}
fclose(fp1);
c1.cd(1);
ntuple1->SetMarkerSize(.2);
ntuple1->SetMarkerColor(2);
ntuple1->SetMarkerStyle(20);
ntuple1->Draw("x:y:z","");
htemp->GetXaxis()->SetLabelSize(0.025);
htemp->GetYaxis()->SetLabelSize(0.025);
htemp->GetZaxis()->SetLabelSize(0.025);
htemp->GetXaxis()->SetTitleSize(0.035);
htemp->GetYaxis()->SetTitleSize(0.035);
htemp->GetZaxis()->SetTitleSize(0.035);
htemp->GetXaxis()->SetTitleOffset(1.4);
htemp->GetYaxis()->SetTitleOffset(1.4);
htemp->GetZaxis()->SetTitleOffset(1.4);
htemp->GetXaxis()->SetTitle("Z (m)");
htemp->GetYaxis()->SetTitle("X (mm)");
htemp->GetZaxis()->SetTitle("Y (mm)");
htemp->SetTitle("Nanobeam profile");
jump1:
FILE *fp1 = fopen("./results/x.txt","r");
if (fp1==0) goto jump2;
FILE *fp2 = fopen("./results/y.txt","r");
FILE *fp3 = fopen("./results/theta.txt","r");
FILE *fp4 = fopen("./results/phi.txt","r");
TNtuple *ntuple2 = new TNtuple("ntuple2","file2","x:y:theta:phi");
while (1)
{
ncols = fscanf(fp1,"%f",&x);
if (ncols < 0) break;
ncols = fscanf(fp2,"%f",&y);
ncols = fscanf(fp3,"%f",&theta);
ncols = fscanf(fp4,"%f",&phi);
ntuple2->Fill(x,y,theta,phi);
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
fclose(fp4);
c1.cd(2);
gStyle->SetPalette(1);
ntuple2->SetMarkerColor(2);
ntuple2->SetMarkerStyle(20);
gPad->SetLogz();
ntuple2->Draw("y:x","","hcolz");
htemp->GetXaxis()->SetLabelSize(0.025);
htemp->GetYaxis()->SetLabelSize(0.025);
htemp->GetXaxis()->SetTitleSize(0.035);
htemp->GetYaxis()->SetTitleSize(0.035);
htemp->GetXaxis()->SetTitleOffset(1.4);
htemp->GetYaxis()->SetTitleOffset(1.4);
htemp->GetXaxis()->SetTitle("X (micrometer)");
htemp->GetYaxis()->SetTitle("Y (micrometer)");
htemp->SetTitle("Nanobeam image");
c1.cd(3);
gStyle->SetPalette(1);
ntuple2->SetMarkerColor(4);
ntuple2->SetMarkerStyle(20);
gPad->SetLogz();
ntuple2->Draw("theta:x","","hcolz");
htemp->GetXaxis()->SetLabelSize(0.025);
htemp->GetYaxis()->SetLabelSize(0.025);
htemp->GetXaxis()->SetTitleSize(0.035);
htemp->GetYaxis()->SetTitleSize(0.035);
htemp->GetXaxis()->SetTitleOffset(1.4);
htemp->GetYaxis()->SetTitleOffset(1.4);
htemp->GetXaxis()->SetTitle("X (micrometer)");
htemp->GetYaxis()->SetTitle("THETA (mrad)");
htemp->SetTitle("Nanobeam image emittance (X,THETA)");
c1.cd(4);
gStyle->SetPalette(1);
ntuple2->SetMarkerColor(4);
ntuple2->SetMarkerStyle(20);
gPad->SetLogz();
ntuple2->Draw("phi:y","","hcolz");
htemp->GetXaxis()->SetLabelSize(0.025);
htemp->GetYaxis()->SetLabelSize(0.025);
htemp->GetXaxis()->SetTitleSize(0.035);
htemp->GetYaxis()->SetTitleSize(0.035);
htemp->GetXaxis()->SetTitleOffset(1.4);
htemp->GetYaxis()->SetTitleOffset(1.4);
htemp->GetXaxis()->SetTitle("Y (micrometer)");
htemp->GetYaxis()->SetTitle("PHI (mrad)");
htemp->SetTitle("Nanobeam image emittance (Y,PHI)");
jump2:
FILE *fp3 = fopen("./results/grid.txt","r");
if (fp3==0) goto jump3;
TNtuple *ntuple3 = new TNtuple("ntuple3","file3","x:y:nrj");
while (1)
{
ncols = fscanf(fp3,"%f %f %f",&x, &y, &nrj);
if (ncols < 0) break;
ntuple3->Fill(x/1000,y/1000,nrj);
}
fclose(fp3);
c1.cd(1);
gStyle->SetPalette(1);
ntuple3->SetMarkerSize(.2);
ntuple3->SetMarkerColor(2);
ntuple3->SetMarkerStyle(20);
gPad->SetLogz();
ntuple3->Draw("y:x","","hcolz");
htemp->GetXaxis()->SetLabelSize(0.025);
htemp->GetYaxis()->SetLabelSize(0.025);
htemp->GetXaxis()->SetTitleSize(0.035);
htemp->GetYaxis()->SetTitleSize(0.035);
htemp->GetXaxis()->SetTitleOffset(1.4);
htemp->GetYaxis()->SetTitleOffset(1.4);
htemp->GetXaxis()->SetTitle("X (mm)");
htemp->GetYaxis()->SetTitle("Y (mm)");
htemp->SetTitle("Grid shadow");
jump3:
}