On Fri, 26 Jul 2002, Rene Brun wrote:
Hi Rene,
You are not completely right. This is the part of my N-tuple
root [5] tt2->Print()
******************************************************************************
*Tree :h94 : /l3/l3data/99/ggntp/cc01jurg.ntp
*Entries : 78412 : Total = 1613614 bytes File Size = 0 *
* : : Tree compression factor = 1.00
******************************************************************************
*Br 32 :Itrg2 : Itrg2/I
*Entries : 78412 : Total Size= 12394 bytes File Size = 0 *
*Baskets : 0 : Basket Size= 8000 bytes Compression= 1.00
*............................................................................*
*Br 33 :Itrg3 : Itrg3/I
*Entries : 78412 : Total Size= 12394 bytes File Size = 0 *
*Baskets : 0 : Basket Size= 8000 bytes Compression= 1.00
*............................................................................*
*Br 34 :Ntrk : Ntrk/I
*Entries : 78412 : Total Size= 12388 bytes File Size = 0 *
*Baskets : 0 : Basket Size= 8000 bytes Compression= 1.00
*............................................................................*
As you can see "Ntrk" variable is integer. And it is one.
I wrote to you that if I issue somthing like
tree->Draw("Ntrk","","goff")
then every branch reading is Ok.
Best regards,
Stanislav.
>
> Hi Stanislas,
>
> It is likely that your branch "Ntrk" contains more variables than just
> an integer. In your case, you overwrite your program by reading
> the branch variables behind the variable "Int_t nt".
> If you have more variables, you should define a C struct or a class
> or use MakeClass such that all variables in the branch are read
> correctly into the struct.
>
> Rene Brun
>
>
> On Fri, 26 Jul 2002, Stanislav NESTEROV wrote:
>
> >
> > Hello Fons,
> >
> > Recently I've tried to read some N-tuples via
> > THbookFile+THbookTree+THbookBranch classes but it was not so easy.
> >
> > While I was using only "Draw" functionality all seem to be OK, but when
> > I've tried to do some readings of certain branches of N-tuple I've
> > got into a big trouble: I can not do this at ALL:
> >
> > So from the beginning:
> >
> >
> > __________________________________________________________________
> > Content of my N-tuple:
> >
> > ===> Directory : //lun10
> > 94 (N) Gamma Gamma Ntuple
> > 9001 (1) NTRK
> > 9002 (1) E?BGO!
> > 9003 (1) E?HCAL!
> > 9004 (1) E?BGO+HCAL!
> > 9011 (1) NTRK
> > 9012 (1) E?BGO!
> > 9013 (1) E?HCAL!
> > 9014 (1) E?BGO+HCAL!
> > 9015 (1) InTEC and OuterTEC TRG
> > 9099 (1) number of events.
> >
> > root [0] gSystem->Load("libHbook.so");
> > root [1] THbookFile f("/l3/l3data/99/ggntp/cc01jurg.ntp");
> > root [2] tt2=(THbookTree*)f.Get(94)
> > (class THbookTree*)0x86fca48
> > root [3] Int_t nt
> > root [4] tt2->SetBranchAddress("Ntrk",&nt)
> > root [5] bran = (THbookBranch*)tt2->GetBranch("Ntrk")
> > (class THbookBranch*)0x87b4468
> > root [6] bran->GetEntry(30) //!!!!!!!!!!!!!!!!
> > ***** ERROR in HNBUFF : Buffer structure not initialized. : ID= 94
> > ***** ERROR in HGNTF : Cannot find Ntuple buffer structure : ID= 94
> > (Int_t)0
> > ________________________________________________________________________
> >
> >
> > BUT if I Drawing exatly the same variable ( here "Ntrk") via
> >
> > tt2->Draw("Ntrk")
> >
> > before getting any entry from this branch then everything is allright.
> >
> > So I found in procedure THBookFile::InitLeaves(...) that in case
> > of empty `TreeFormula* ' argument this procedure just quits. Very strange
> > solution I think.
> >
> > In any case N-tuple initialization (for branches) is failed and one can
> > only obtain some result if call procedures that using
> > TTreePlayer::InitLoop with some related formula.
> >
> > May be the best solution is slightly change the
> > THbookTree::InitLeaves()? I really don't know. Or just throw out from
> > THbookFile::GetEntryBranch call of HGNTF subrouting (in such specific
> > cases)?
> >
> > Best regards
> > Stanislav.
> >
>
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:01 MET