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 // ******************************************* 5 // ********************************************************************* 6 { 6 { 7 gROOT->Reset(); 7 gROOT->Reset(); 8 gStyle->SetPalette(1); 8 gStyle->SetPalette(1); 9 gROOT->SetStyle("Plain"); 9 gROOT->SetStyle("Plain"); 10 << 10 11 auto c1 = new TCanvas ("c1","",20,20,800,800 << 11 c1 = new TCanvas ("c1","",20,20,800,800); 12 c1->Divide(1,1); 12 c1->Divide(1,1); 13 13 14 TFile f("slowing.root"); << 14 TFile f("slowing.root"); 15 15 16 TH1F* h1 ; 16 TH1F* h1 ; 17 h1 = (TH1F*)f.Get("1"); << 17 h1 = (TH1F*)f.Get("1"); 18 h2 = (TH1F*)f.Get("2"); << 18 h2 = (TH1F*)f.Get("2"); 19 h3 = (TH1F*)f.Get("3"); << 19 h3 = (TH1F*)f.Get("3"); 20 << 20 21 //goto end; << 21 //goto end; 22 22 23 Int_t nbinsx = h1->GetXaxis()->GetNbins(); 23 Int_t nbinsx = h1->GetXaxis()->GetNbins(); 24 //cout << nbinsx << endl; 24 //cout << nbinsx << endl; 25 25 26 Double_t y = 0; 26 Double_t y = 0; 27 Double_t mini = 0; 27 Double_t mini = 0; 28 Double_t maxi = 0; 28 Double_t maxi = 0; 29 Double_t largeur = 0; 29 Double_t largeur = 0; 30 30 31 Double_t sum = 0; 31 Double_t sum = 0; 32 32 33 // Division by bin width to get y axis << 33 // Division by bin width to get y axis 34 // in nm/eV 34 // in nm/eV 35 // 35 // 36 // Scaling by 1E9/1.6 to get correct unit << 36 // Scaling by 1E9/1.6 to get correct unit 37 // for Phi/D in (/cm2/eV/Gy) << 37 // for Phi/D in (/cm2/eV/Gy) 38 // when histogram (in nm/eV) is 38 // when histogram (in nm/eV) is 39 // multiplied by density(=1g/cm3)/E(eV) 39 // multiplied by density(=1g/cm3)/E(eV) 40 40 41 for (Int_t i=1; i<=nbinsx; i++) 41 for (Int_t i=1; i<=nbinsx; i++) 42 { 42 { 43 sum = sum + h1->GetBinContent(i); 43 sum = sum + h1->GetBinContent(i); 44 44 45 mini = h1->GetBinLowEdge(i); 45 mini = h1->GetBinLowEdge(i); 46 maxi = mini + h1->GetBinWidth(i); 46 maxi = mini + h1->GetBinWidth(i); 47 largeur = std::pow(10,maxi)-std::pow(10,mi 47 largeur = std::pow(10,maxi)-std::pow(10,mini); 48 // cout << mini << " " << std::pow(10,mini << 48 // cout << mini << " " << std::pow(10,mini)<< " " << largeur 49 // << " " << maxi << " " << std::pow(10,ma 49 // << " " << maxi << " " << std::pow(10,maxi) << endl; 50 h1->SetBinContent(i,h1->GetBinContent(i)*( 50 h1->SetBinContent(i,h1->GetBinContent(i)*(1E9/1.6)/largeur); 51 h2->SetBinContent(i,h2->GetBinContent(i)*( 51 h2->SetBinContent(i,h2->GetBinContent(i)*(1E9/1.6)/largeur); 52 h3->SetBinContent(i,h3->GetBinContent(i)*( 52 h3->SetBinContent(i,h3->GetBinContent(i)*(1E9/1.6)/largeur); >> 53 53 } 54 } 54 55 55 gStyle->SetOptStat(000000); 56 gStyle->SetOptStat(000000); 56 57 57 cout << endl; 58 cout << endl; 58 cout << "--> Integral of Phi (nm/eV) = " << 59 cout << "--> Integral of Phi (nm/eV) = " << sum << endl; 59 cout << endl; 60 cout << endl; 60 61 61 c1->cd(1); << 62 c1->cd(1); 62 63 63 TH2F *ht = new TH2F("","",2,1,6,2,1E2,1E8); 64 TH2F *ht = new TH2F("","",2,1,6,2,1E2,1E8); 64 ht->Draw(); 65 ht->Draw(); 65 ht->GetXaxis()->SetTitle("Log(E (eV))"); 66 ht->GetXaxis()->SetTitle("Log(E (eV))"); 66 ht->GetYaxis()->SetTitle("#phi/D (/cm^{2}/eV 67 ht->GetYaxis()->SetTitle("#phi/D (/cm^{2}/eV/Gy)"); 67 ht->GetXaxis()->SetTitleSize(0.03); 68 ht->GetXaxis()->SetTitleSize(0.03); 68 ht->GetYaxis()->SetTitleSize(0.03); 69 ht->GetYaxis()->SetTitleSize(0.03); 69 ht->GetXaxis()->SetTitleOffset(1.7); 70 ht->GetXaxis()->SetTitleOffset(1.7); 70 ht->GetYaxis()->SetTitleOffset(1.7); 71 ht->GetYaxis()->SetTitleOffset(1.7); 71 72 72 gPad->SetLogy(); 73 gPad->SetLogy(); 73 h1->SetLineColor(2); 74 h1->SetLineColor(2); 74 h1->Draw("HSAME"); 75 h1->Draw("HSAME"); 75 h2->SetLineColor(3); 76 h2->SetLineColor(3); 76 h2->Draw("HSAME"); 77 h2->Draw("HSAME"); 77 h3->SetLineColor(4); 78 h3->SetLineColor(4); 78 h3->Draw("HSAME"); 79 h3->Draw("HSAME"); 79 h1->Draw("HSAME"); 80 h1->Draw("HSAME"); 80 81 81 TLegend *legend=new TLegend(0.6,0.65,0.88,0. 82 TLegend *legend=new TLegend(0.6,0.65,0.88,0.85); 82 legend->AddEntry(h1,"All e-","L"); 83 legend->AddEntry(h1,"All e-","L"); 83 legend->AddEntry(h2,"Primaries","L"); 84 legend->AddEntry(h2,"Primaries","L"); 84 legend->AddEntry(h3,"Secondaries","L"); 85 legend->AddEntry(h3,"Secondaries","L"); 85 legend->Draw(); 86 legend->Draw(); 86 87 87 end: 88 end: 88 } 89 } 89 90