Re: [ROOT] Ntuple trouble

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Jan 16 2001 - 23:02:05 MET


I David,
You will find below a simple example using TTree (recommended).
To run it, do
  root > .x tree.C
or
  root > .x tree.C++ (using the automatic interface to teh compiler)

Rene Brun

#include "TTree.h"
#include "TFile.h"
#include "TRandom.h"
#include "TH2.h"
#include "TCanvas.h"
   
typedef struct { Float_t a,b,c,d,e,f;} BRANCH;
      

void treeFill() {
   // create a TTree with a simple structure
   TRandom r;
   BRANCH br;
   TFile f("tree.root","recreate");
   TTree *ntuple = new TTree("ntuple","demo");
   ntuple->Branch("br",&br.a,"a:b:c:d:e:f");
   
   for (Int_t i=0;i<10000;i++ ) {
      br.a = r.Rndm();
      br.b = r.Gaus(-1,0.1);
      br.c = r.Gaus( 1,0.1);
      br.d = r.Landau(1,1);
      br.e = br.c +br.d;
      br.f = i;
      ntuple->Fill();
   }
   
   ntuple->Write();
}

void treeRead() {
   // read ntuple generated above
   TFile *f = new TFile("tree.root");
   TTree *ntuple = (TTree*)f->Get("ntuple");
   TH1F *hb = new TH1F("hb","b",100,-2,0);
   TH2F *hcd = new TH2F("hcd","c vs d",40,-5,20,40,0.5,1.5);
   
   BRANCH br;
   ntuple->SetBranchAddress("br",&br.a);
      
   Int_t nentries = (Int_t)ntuple->GetEntries();
   for (Int_t i=0;i<nentries;i++) {
      ntuple->GetEntry(i);
      hb->Fill(br.b);
      hcd->Fill(br.d,br.c);
   }
   TCanvas *c1 = new TCanvas("c1","ntuple demo",600,800);
   c1->Divide(1,2);
   c1->cd(1);
   hb->Draw();
   c1->cd(2);
   hcd->Draw();
}

void tree() {
   treeFill();
   treeRead();
}




On Tue, 16 Jan 2001, David L Attanasio wrote:

> I am attempting to use root to process a large data set where each entry has
> 8 variables.  To do this, I created an ntuple using the TNtuple class and
> wrote it to a file.  I am able to read the file back into root.  However, I
> cannot figure out how to extract specific values from the TNtuple object.
> I need to access the specific values for each variable, one entry at a time.
> I have searched the ROOT website to no avail.  Any assistance you can give
> would be appreciated.  Thank you.
> 
> David Attanasio
> 



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:33 MET