[ROOT] Problems creating a TTree.... (fwd II)

From: Antonio Sidoti tel. +39+0461 88 1525 (sidoti@science.unitn.it)
Date: Wed May 29 2002 - 23:23:11 MEST


Hi,
I've solved the problem by doing :

tree->Branch("nc",&nc,"nc/I");
tree->Branch("vars",patn.vars,"var[20][nc]/F");
tree->Branch("cpat",patn.pat,"pat[nc]/F");
tree->Branch("epat",&patn.evt,"evt/F");
(as reported in the manual:-))

However I am interested to know why the original guess gives wrong
results...

tree->Branch("nc",&nc,"nc/I");
tree->Branch("Comb",&patn,"var[20][nc]/F:cpat[nc]/F:evt/F");
(and tried some other combinations)

Any suggestions?
Thanks
Cheers,
Antonio



---------- Forwarded message ----------
Date: Wed, 29 May 2002 17:33:04 +0200 (MET DST)
From: Antonio Sidoti tel. +39+0461 88 1525 <sidoti@science.unitn.it>
To: roottalk@pcroot.cern.ch
Subject: Problems creating a TTree....

Dear Rooters,
I really do not understand what's going on while I create and write a
TTree.

Cf the snipped pippo.C and pippo.h below. The problem is that
whhen I open the root file I've created, the branches do not contain what
it  was supposed to be inserted (To check that I fill
some histos  with the BB_* variables and draw them)

Thanks alot,
Cheers,
Antonio
P.S. Using 3.02/07

Here are the pippo.C and pippo.h (the usual stuff
generated by MakeClass):

// pippo.h
typedef struct {
  Float_t vars[20][3000];
  Float_t pat[3000];
  Float_t evt;
} PAT;
class Myanal {
   public :
   ...
};

//----------- pippo.C
#include "pippo.h"
#include "TH2.h"
#include "TStyle.h"
#include "TCanvas.h"

void MyAnal::Loop()
{
  PAT patn;
  TH1F *h_pat   = new TH1F("h_pat","pat",50,0,1);
  TFile f1("pip.root","RECREATE");

  TTree *tree = new TTree("tree", "xxxx");
  Int_t nc;
  tree->Branch("nc",&nc,"nc/I");
  tree->Branch("Comb",&patn,"var[20][nc]/F:cpat[nc]/F:evt/F");
  (...)
  for (Int_t jentry=0; jentry<nentries;jentry++) {
     Int_t ientry = LoadTree(jentry);
     nb = fChain->GetEntry(jentry);
     if(BB_nc==0) continue;
     nc = BB_nc;

     for(Int_t it = 0; it<BB_nc;++it){
        patn.vars[0][it] = BB_v1[it];
        patn.vars[1][it] = BB_v2[it]; // etc...

        patn.cpat[it] = BB_p[it];
        }
     patn.evt = BB_a;
     h_pat->Fill(BB_a);
     tree->Fill();
     }
  tree->Write();
}



_______________________________________________________________________________
	     a n t o n i o   	      s i d o t i

	     e-mail	              sidoti@science.unitn.it
	                              sidoti@fnal.gov
	     www   		      http://higgs.tn.infn.it/~sidoti/
_______________________________________________________________________________
		"Il meglio e` nemico del buono"



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:54 MET