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