Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/medical/dna/slowing/plot.C

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/extended/medical/dna/slowing/plot.C (Version 11.3.0) and /examples/extended/medical/dna/slowing/plot.C (Version 11.1.1)


  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