Re: How to extract the values of a variable in ntuple ?

From: Rene Brun (Rene.Brun@cern.ch)
Date: Sun Feb 13 2000 - 14:36:33 MET


Hi Jayoung,
If I understand correctly your question, you simply want
to store the energy deposition in an array of devices.
I assume that your array has a constant size in x and y.
In this is the case, you should not store the I and J values.
You store the two D array. Here is an example.
You can add asmany branches as you want.

To run it, do:
Root > .L array.C
Root > fillarray()
Root > readarray()

Rene Brun

//----------file array.C
void fillarray()
{
   TFile f("test.root","recreate");
   TTree T("T","a simple test with an array");
   Float_t ed[12][48];
   T.Branch("ed",ed,"ed[12][48]/F");
   //loop on some events
   for (Int_t ev=0;ev<100;ev++) {
      for (Int_t i=0;i<12;i++) {
         for (Int_t j=0;j<48;j++) {
            ed[i][j] = gRandom->Gaus(i,j);
         }
      }
      T.Fill();
   }
   T.Write();
}     
void readarray()
{
   TFile *f = new TFile("test.root");
   TTree *T = (TTree*)f->Get("T");
   Float_t ed[12][48];
   T->SetBranchAddress("ed",ed);
   //read events
   TH1F *hed = new TH1F("hed","ed values",100,-100,100);
   Int_t nevents = Int_t(T->GetEntries());
   for (Int_t ev=0;ev<nevents;ev++) {
      T->GetEntry(ev);
      for (Int_t i=0;i<12;i++) {
         for (Int_t j=0;j<48;j++) {
            hed->Fill(ed[i][j]);
         }
      }
   }
   hed->Draw();
}



On Fri, 11 Feb 2000, Jayoung Wu wrote:

> Hi,
> 
> In file1, I created a ntuple "si_en":
>    TFile *ntfile = new TFile("Science.root","RECREATE","ATIC SCIENCE NTUPLE",2);
>    TNtuple *si_en = new TNtuple("si_en","SI ENERGY","inx:iny:ed");
> 
> In file 2, I want to extract the values of ed in si_en one by one:
>   char s1[80],s2[80];
>   Int_t i,j;
>   TCanvas *can;
>   TFile *ntfile = new TFile("Science.root");
>   gStyle->SetOptStat(1);
>   TNtuple *nt;
> 
>   nt = (TNtuple*)ntfile->Get("si_en");
> 
>   for( i=0 ; i<12 ; i++ ){  
>      for( j=8 ; j<48 ; j++ ){
>   ???
> 
>        How can I extract the values of inx, iny, and ed of ntuple, si_en
>        one by one?
> ---
> Thanks,
> Jayoung
> 
> 



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:18 MET