Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/medical/dna/dnaphysics/plotDeexcitation.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 ]

  1 // -------------------------------------------------------------------
  2 // -------------------------------------------------------------------
  3 //
  4 // *********************************************************************
  5 // To execute this macro under ROOT after your simulation ended,
  6 //   1 - launch ROOT (usually type 'root' at your machine's prompt)
  7 //   2 - type '.X plot.C' at the ROOT session prompt
  8 // *********************************************************************
  9 
 10 void SetLeafAddress(TNtuple* ntuple, const char* name, void* address);
 11 
 12 void plotDeexcitation()
 13 {
 14   gROOT->Reset();
 15   gStyle->SetPalette(1);
 16   gROOT->SetStyle("Plain");
 17 
 18   TCanvas* c1 = new TCanvas ("c1","",20,20,1000,500);
 19   c1->Divide(2,1);
 20 
 21   // Uncomment if merging should be done
 22   //system ("rm -rf dna.root");
 23   //system ("hadd dna.root dna_*.root");
 24 
 25   TFile* f = new TFile("dna.root");
 26 
 27   TNtuple* ntuple2;
 28   ntuple2 = (TNtuple*)f->Get("track");
 29   bool rowWise2 = true;
 30   TBranch* eventBranch2 = ntuple2->FindBranch("row_wise_branch");
 31   if ( ! eventBranch2 ) rowWise2 = false;
 32 
 33   // Auger electrons
 34   c1->cd(1);
 35   gStyle->SetOptStat(000000);
 36 
 37   ntuple2->SetFillStyle(1001);
 38   ntuple2->SetFillColor(2);
 39   ntuple2->Draw("kineticEnergy","kineticEnergy>450&&kineticEnergy<550&&flagParticle==1","B");
 40 
 41   gPad->SetLogy();
 42 
 43   TText *pt1 = new TText(510,500,"Auger electrons");
 44   pt1->Draw("SAME");
 45 
 46   // Fluorescence photons
 47   c1->cd(2);
 48   gStyle->SetOptStat(000000);
 49 
 50   ntuple2->SetFillStyle(1001);
 51   ntuple2->SetFillColor(4);
 52   ntuple2->Draw("kineticEnergy","flagParticle==0","B");
 53 
 54   gPad->SetLogy();
 55 
 56   TText *pt2 = new TText(523.1,10,"Fluo. photons");
 57   pt2->Draw("SAME");
 58 
 59 }
 60 
 61 void SetLeafAddress(TNtuple* ntuple, const char* name, void* address) {
 62   TLeaf* leaf = ntuple->FindLeaf(name);
 63   if ( ! leaf ) {
 64     std::cerr << "Error in <SetLeafAddress>: unknown leaf --> " << name << std::endl;
 65     return;
 66   }
 67   leaf->SetAddress(address);
 68 }
 69