Re: [ROOT] How to get data from a ntuple?

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue May 09 2000 - 19:58:37 MEST


Hi Zhou,
You can do the following:

{
   Float_t x1,y1,u1,v1;
   Float_t x2,y2,u2,v2;
   TFile *file1 = new TFile("file1.root");
   TTree *t1 = (TTree*)file1->Get(name_of_tree1);
   t1->SetBranchAddress("x1",&x1);
   t1->SetBranchAddress("y1",&y1);
   t1->SetBranchAddress("u1",&u1);
   t1->SetBranchAddress("v1",&v1);
   TFile *file2 = new TFile("file2.root");
   TTree *t2 = (TTree*)file2->Get(name_of_tree2);
   t2->SetBranchAddress("x2",&x2);
   t2->SetBranchAddress("y2",&y2);
   t2->SetBranchAddress("u2",&u2);
   t2->SetBranchAddress("v2",&v2);

   TFile *newfile = new TFile("newfile.root","recreate");
   TTree *t = new TTree("t");
   t->Branch("x1",&x1,32000);
   t->Branch("y1",&y1,32000);
   t->Branch("u1",&u1,32000);
   t->Branch("v1",&v1,32000);
   t->Branch("x2",&x2,32000);
   t->Branch("y2",&y2,32000);
   t->Branch("u2",&u2,32000);
   t->Branch("v2",&v2,32000);

   Int_t nentries = Int_t(t1->GetEntries());
   for (Int_t i=0;i<nentries;i++) {
      t1->GetEntry(i);
      t2->GetEntry(i);
      t->Fill();
   }
   t->Write();
}

On Tue, 9 May 2000, Zhou Zhang wrote:

> Hi rooters,
> 
>   I have two ntuples n1, n2 which have the float variable list
> (x1,y1,u1,v1) and (x2,y2,u2,v2) seperately. I need to get the data of
> (x1,y1) and (x2,y2) from these two ntuples and put them together into
> a new ntuple.  I tried to use following piece of macro but failed:
> 
> TBranch* bx1 = n1->GetBranch("x1");
> TLeaf*  lx1 = bx1->GetLeaf("x1");
> Float_t fx1 = lx1->GetValue(0);//first entry
> the value of fx1 is not what I expected.
> 
> who could tell me how to do it? 
> 
> 	Thanks a lot,
> 
> zhou
> 



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