Geant4 Cross Reference |
1 // ******************************************* 1 // ********************************************************************* 2 // To execute this macro under ROOT, 2 // To execute this macro under ROOT, 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 // This macro needs the output ROOT file 5 // This macro needs the output ROOT file 6 // ******************************************* 6 // ********************************************************************* 7 << 8 void SetLeafAddress(TNtuple* ntuple, const cha << 9 << 10 void plot() << 11 { 7 { 12 gROOT->Reset(); 8 gROOT->Reset(); 13 gStyle->SetPalette(1); 9 gStyle->SetPalette(1); 14 gROOT->SetStyle("Plain"); 10 gROOT->SetStyle("Plain"); 15 11 16 TCanvas* c1 = new TCanvas ("c1","",20,20,100 12 TCanvas* c1 = new TCanvas ("c1","",20,20,1000,500); 17 13 18 TFile* f = new TFile("ICSD.root"); << 14 TFile f("ICSD.root"); 19 f->ls(); << 15 f.ls(); 20 16 21 TH1D* hist1 = new TH1D("histo","ICSD", 30, 0 17 TH1D* hist1 = new TH1D("histo","ICSD", 30, 0.0, 30); 22 << 23 Double_t ion = 0.0; 18 Double_t ion = 0.0; 24 19 25 TNtuple* ntuple1 = (TNtuple*)f->Get("ntuple_ << 20 TNtuple* ntuple1 = (TNtuple*)f.Get("ntuple_1"); 26 bool rowWise = true; << 21 ntuple1->SetBranchAddress("ionisations", &ion); 27 TBranch* eventBranch = ntuple1->FindBranch(" << 28 if ( ! eventBranch ) rowWise = false; << 29 std::cout << "rowWise: " << rowWise << std: << 30 << 31 if ( ! rowWise ) { << 32 ntuple1->SetBranchAddress("ionisations", & << 33 } else { << 34 SetLeafAddress(ntuple1, "ionisations",&ion << 35 } << 36 << 37 Int_t nentries = ntuple1->GetEntries(); 22 Int_t nentries = ntuple1->GetEntries(); 38 23 39 for (Int_t i=0; i<nentries; i++) 24 for (Int_t i=0; i<nentries; i++) 40 { 25 { 41 ntuple1->GetEntry(i); 26 ntuple1->GetEntry(i); 42 hist1->Fill(ion); 27 hist1->Fill(ion); 43 } 28 } 44 29 45 hist1->Draw(); 30 hist1->Draw(); 46 hist1->GetXaxis()->SetLabelSize(0.025); 31 hist1->GetXaxis()->SetLabelSize(0.025); 47 hist1->GetYaxis()->SetLabelSize(0.025); 32 hist1->GetYaxis()->SetLabelSize(0.025); 48 33 49 hist1->GetXaxis()->SetTitleSize(0.035); 34 hist1->GetXaxis()->SetTitleSize(0.035); 50 hist1->GetYaxis()->SetTitleSize(0.035); 35 hist1->GetYaxis()->SetTitleSize(0.035); 51 36 52 // hist1->GetXaxis()->SetTittleOffset(1.4); 37 // hist1->GetXaxis()->SetTittleOffset(1.4); 53 // hist1->GetYaxis()->SetTittleOffset(1.4); 38 // hist1->GetYaxis()->SetTittleOffset(1.4); 54 39 55 hist1->GetXaxis()->SetTitle("ionisation numb 40 hist1->GetXaxis()->SetTitle("ionisation number"); 56 hist1->GetYaxis()->SetTitle("frequency"); 41 hist1->GetYaxis()->SetTitle("frequency"); 57 42 58 c1->SaveAs("ICSD.tiff"); 43 c1->SaveAs("ICSD.tiff"); 59 } << 60 << 61 void SetLeafAddress(TNtuple* ntuple, const cha << 62 TLeaf* leaf = ntuple->FindLeaf(name); << 63 if ( ! leaf ) { << 64 std::cerr << "Error in <SetLeafAddress>: u << 65 return; << 66 } << 67 leaf->SetAddress(address); << 68 } 44 } 69 45