LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
plot.C
Go to the documentation of this file.
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 }
TFile f("microbeam.root")
TNtuple * ntuple
Definition: plot.C:20
void SetLeafAddress(TNtuple *ntuple, const char *name, void *address)
Definition: plot.C:170
TNtuple * ntuple1
Definition: plot.C:175
TH1D * hist1
Definition: plotHisto.C:9
Int_t nentries
Definition: plot.C:280
void plot()
Definition: plot.C:12
c1
Definition: plot.C:27