Geant4 Cross Reference |
1 // ******************************************* 1 // ********************************************************************* 2 // To execute this macro under ROOT after your << 2 // To execute this macro under ROOT after your simulation ended, 3 // 1 - launch ROOT (usually type 'root' at y 3 // 1 - launch ROOT (usually type 'root' at your machine's prompt) 4 // 2 - type '.X plot.C' at the ROOT session 4 // 2 - type '.X plot.C' at the ROOT session prompt 5 // 3 - OR type directly 'root plot.C' 5 // 3 - OR type directly 'root plot.C' 6 // ******************************************* 6 // ********************************************************************* 7 7 8 { 8 { 9 gROOT->Reset(); 9 gROOT->Reset(); 10 10 11 gStyle->SetPalette(1); 11 gStyle->SetPalette(1); 12 gROOT->SetStyle("Plain"); 12 gROOT->SetStyle("Plain"); 13 gStyle->SetOptStat(000000); 13 gStyle->SetOptStat(000000); 14 << 14 15 auto c1 = new TCanvas ("c1","",60,60,800,800); << 15 c1 = new TCanvas ("c1","",60,60,800,800); 16 c1->Divide(1,1); 16 c1->Divide(1,1); 17 17 18 FILE * fp = fopen("mfp.txt","r"); 18 FILE * fp = fopen("mfp.txt","r"); 19 19 20 Float_t E,mfp,smfp; 20 Float_t E,mfp,smfp; 21 Int_t ncols = 0; 21 Int_t ncols = 0; 22 Int_t nlines = 0; 22 Int_t nlines = 0; 23 23 24 TNtuple *ntuple = new TNtuple("ntuple","mfp"," 24 TNtuple *ntuple = new TNtuple("ntuple","mfp","E:mfp:smfp"); 25 while (1) << 25 while (1) 26 { 26 { 27 ncols = fscanf(fp,"%f %f %f",&E,&mfp,&smfp); 27 ncols = fscanf(fp,"%f %f %f",&E,&mfp,&smfp); 28 if (ncols < 0) break; 28 if (ncols < 0) break; 29 ntuple->Fill(E,mfp,smfp); 29 ntuple->Fill(E,mfp,smfp); 30 nlines++; 30 nlines++; 31 } 31 } 32 fclose(fp); 32 fclose(fp); 33 << 33 34 c1->cd(1); 34 c1->cd(1); 35 gPad->SetLogx(); 35 gPad->SetLogx(); 36 gPad->SetLogy(); 36 gPad->SetLogy(); 37 37 38 TH2F * h2 = new TH2F ("h2","",2,9.99,1e4,2,0.0 38 TH2F * h2 = new TH2F ("h2","",2,9.99,1e4,2,0.099,1e2); 39 h2->Draw(); 39 h2->Draw(); 40 ntuple->SetMarkerStyle(20); 40 ntuple->SetMarkerStyle(20); 41 ntuple->SetMarkerSize(1.); 41 ntuple->SetMarkerSize(1.); 42 ntuple->Draw("mfp:E","","LPSAME"); 42 ntuple->Draw("mfp:E","","LPSAME"); 43 43 44 h2->GetXaxis()->SetLabelSize(0.025); 44 h2->GetXaxis()->SetLabelSize(0.025); 45 h2->GetYaxis()->SetLabelSize(0.025); 45 h2->GetYaxis()->SetLabelSize(0.025); 46 h2->GetXaxis()->SetTitleSize(0.035); 46 h2->GetXaxis()->SetTitleSize(0.035); 47 h2->GetYaxis()->SetTitleSize(0.035); 47 h2->GetYaxis()->SetTitleSize(0.035); 48 h2->GetXaxis()->SetTitleOffset(1.4); 48 h2->GetXaxis()->SetTitleOffset(1.4); 49 h2->GetYaxis()->SetTitleOffset(1.4); 49 h2->GetYaxis()->SetTitleOffset(1.4); 50 h2->GetXaxis()->SetTitle("E (eV)"); 50 h2->GetXaxis()->SetTitle("E (eV)"); 51 h2->GetYaxis()->SetTitle("MFP (nm)"); 51 h2->GetYaxis()->SetTitle("MFP (nm)"); >> 52 52 } 53 } 53 54