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