Geant4 Cross Reference

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

  1 // *********************************************************************
  2 // To execute this macro under ROOT,
  3 //   1 - launch ROOT (usually type 'root' at your machine's prompt)
  4 //   2 - type '.X plot.C' at the ROOT session prompt
  5 // This macro needs the output ROOT file
  6 // *********************************************************************
  7 
  8 void SetLeafAddress(TNtuple* ntuple, const char* name, void* address);
  9 
 10 void plot()
 11 {
 12   gROOT->Reset();
 13   gStyle->SetPalette(1);
 14   gROOT->SetStyle("Plain");
 15   
 16   TCanvas* c1 = new TCanvas ("c1","",20,20,1000,500);
 17   
 18   TFile* f = new TFile("ICSD.root");
 19   f->ls();
 20   
 21   TH1D* hist1 = new TH1D("histo","ICSD", 30, 0.0, 30);
 22 
 23   Double_t ion = 0.0;
 24 
 25   TNtuple* ntuple1 = (TNtuple*)f->Get("ntuple_1");
 26   bool rowWise = true;
 27   TBranch* eventBranch = ntuple1->FindBranch("row_wise_branch");
 28   if ( ! eventBranch ) rowWise = false;
 29   std::cout <<  "rowWise: " << rowWise << std::endl; 
 30 
 31   if ( ! rowWise ) {
 32     ntuple1->SetBranchAddress("ionisations", &ion);
 33   } else {
 34     SetLeafAddress(ntuple1, "ionisations",&ion);
 35   }
 36 
 37   Int_t nentries = ntuple1->GetEntries();
 38 
 39   for (Int_t i=0; i<nentries; i++)
 40   {
 41       ntuple1->GetEntry(i);
 42       hist1->Fill(ion);
 43   }
 44 
 45   hist1->Draw();
 46   hist1->GetXaxis()->SetLabelSize(0.025);
 47   hist1->GetYaxis()->SetLabelSize(0.025);
 48 
 49   hist1->GetXaxis()->SetTitleSize(0.035);
 50   hist1->GetYaxis()->SetTitleSize(0.035);
 51 
 52 //  hist1->GetXaxis()->SetTittleOffset(1.4);
 53 //  hist1->GetYaxis()->SetTittleOffset(1.4);
 54 
 55   hist1->GetXaxis()->SetTitle("ionisation number");
 56   hist1->GetYaxis()->SetTitle("frequency");
 57 
 58   c1->SaveAs("ICSD.tiff");
 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