Re: [ROOT] Bug in THbook* interface classes

From: Stanislav NESTEROV (Stanislav.Nesterov@cern.ch)
Date: Thu Aug 01 2002 - 13:30:49 MEST


     Hi Rene,
     Sorry for disturbing you again, but I don't mention TChain in the
last message at all.
    I wrote that I CAN'T READ N-TUPLE values CORRECTLY from HBOOK file
until I DRAW certain value.

		 Thanks anyway for your answer,

				Stanislav.

On Wed, 31 Jul 2002, Rene Brun wrote:

> Hi Stanislav,
>
> Sorry if I was not clear enough in my previous answer.
> We do not intend supporting THbookFile/THbookTree in Root TChain.
>
> Rene Brun
>
>
> On Wed, 31 Jul 2002, Stanislav NESTEROV wrote:
>
> >
> > 	Hello Rene,
> > 	Again I must remind you that in THbook* interface we have a
> > problem that sometimes make this classes unusable or half-functional.
> >
> >        Even if you try to read ANY value from the N-tuple you wouldn't
> > succeed. Of course while you using only "Draw" functionality everythings
> > seem to be OK.
> >       You can say that I must use ROOT-files instead, but for me it is not
> > feasible.
> >
> >      So please check THbook* for this malfunction. Thank you.
> >
> > 			Stanislav.
> >
> >
> > On Fri, 26 Jul 2002, Stanislav NESTEROV 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.
> > > On Fri, 26 Jul 2002, Rene Brun wrote:
> > > >
> > > > 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:02 MET