Re: [ROOT] problem with event class in the dictionary

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Mar 04 2003 - 22:01:43 MET


Hi Jan,

Your Tree contains more than just the two branches for which you set the 
addresses. If the Tree has been created with something like
  MyClass *obj;
  tree.Branch("top","MyClass,&obj);

in the reading program you have to do:
  MyClass *obj=0;
  tree.SetBranchAddress("top",&obj);

you cannot set the addresses of the sub branches only if you call
t1.GetEntry to read all branches.

Rene Brun

On Tue, 4 
Mar 
2003, Jan Musinsky wrote:

> 
>   Hallo,
> please help me with the event class in the dictionary.
> I use root files create with classes ( I dont know how )
> 
> My program:
> {
> 
>   f_input = TFile::Open("run100.root");
>   TTree *t1 = (TTree*)f_input->Get("t1");
> 
>   const UShort_t MaxValues=10;
>   UShort_t NumValues=0;
>   UShort_t Values[MaxValues]={0};
> 
>   t1.SetBranchAddress("fbranch_NumValues",&NumValues);
>   t1.SetBranchAddress("fXXX.fbranch_Values",Values);
> 
>   for (UInt_t i=0; i < t1.GetEntries(); i++)
>   {
>     t1.GetEntry(i);
>     for (UShort_t j=0; j < NumValues; j++)
>       {
>  cout << Values[j] << endl;
>       }
>   }
> 
> }
> 
> In ROOT ver 3.03.09:
> Warning in <TClass::TClass>: no dictionary for class XXXX1 is available
> Warning in <TClass::TClass>: no dictionary for class XXXX2 is available
> 
> but all working.
> 
> Now I use ROOT ver 3.05.02,
> after command line  t1.GetEntry(i);
> 
>  *** Break *** segmentation violation
>  Generating stack trace...
>  0x401927c4 in TUnixSystem::StackTrace() + 0x36c from
> /cern/root/lib/libCore.so
>  0x4019141e in TUnixSystem::DispatchSignals(ESignals) + 0x7a from
> /cern/root/lib/libCore.so
>  0x4019062f in <unknown> from /cern/root/lib/libCore.so
>  0x40193fa7 in <unknown> from /cern/root/lib/libCore.so
>  0x40c2447e in <unknown> from /lib/i686/libpthread.so.0
>  0x42028c48 in <unknown> from /cern/root/bin/root.exe
>  0x40ad8003 in TBranchObject::GetEntry(int, int) + 0x9f from
> /cern/root/lib/libTree.so
>  0x40aecc19 in TTree::GetEntry(int, int) + 0x8b from
> /cern/root/lib/libTree.so
>  0x40ada384 in TChain::GetEntry(int, int) + 0x42 from
> /cern/root/lib/libTree.so
>  0x40b185d1 in <unknown> from /cern/root/lib/libTree.so
>  0x4054afa1 in G__call_cppfunc + 0x25d from /cern/root/lib/libCint.so
>  0x4053b992 in G__interpret_func + 0x6dc from /cern/root/lib/libCint.so
>  0x40524688 in G__getfunction + 0x10e4 from /cern/root/lib/libCint.so
>  0x405a16dc in G__getstructmem + 0x77c from /cern/root/lib/libCint.so
>  0x4059b88a in G__getvariable + 0x4be from /cern/root/lib/libCint.so
>  0x4051e521 in G__getitem + 0x46b from /cern/root/lib/libCint.so
>  0x4051d291 in G__getexpr + 0x72e7 from /cern/root/lib/libCint.so
>  0x4055ea4f in G__exec_function + 0x129 from /cern/root/lib/libCint.so
>  0x40564e8c in G__exec_statement + 0x2270 from /cern/root/lib/libCint.so
>  0x4056231c in G__exec_loop + 0x23e from /cern/root/lib/libCint.so
>  0x4056296b in G__exec_for + 0x141 from /cern/root/lib/libCint.so
>  0x40564bea in G__exec_statement + 0x1fce from /cern/root/lib/libCint.so
>  0x40561c48 in G__exec_if + 0x158 from /cern/root/lib/libCint.so
>  0x40564a25 in G__exec_statement + 0x1e09 from /cern/root/lib/libCint.so
>  0x4053d02a in G__interpret_func + 0x1d74 from /cern/root/lib/libCint.so
>  0x40524d2b in G__getfunction + 0x1787 from /cern/root/lib/libCint.so
>  0x4051e551 in G__getitem + 0x49b from /cern/root/lib/libCint.so
>  0x4051d291 in G__getexpr + 0x72e7 from /cern/root/lib/libCint.so
>  0x4055ea4f in G__exec_function + 0x129 from /cern/root/lib/libCint.so
>  0x40564e8c in G__exec_statement + 0x2270 from /cern/root/lib/libCint.so
>  0x40507948 in G__exec_tempfile_core + 0x2a2 from /cern/root/lib/libCint.so
>  0x40507b22 in G__exec_tempfile + 0x22 from /cern/root/lib/libCint.so
>  0x4056c287 in G__process_cmd + 0x40d7 from /cern/root/lib/libCint.so
>  0x4014c695 in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) +
> 0x9b from /cern/root/lib/libCore.so
>  0x4014c784 in TCint::ProcessLineSynch(char const*,
> TInterpreter::EErrorCode*) + 0x46 from /cern/root/lib/libCore.so
>  0x400d7c92 in TApplication::ProcessFile(char const*, int*) + 0x81a from
> /cern/root/lib/libCore.so
>  0x400d7401 in TApplication::ProcessLine(char const*, bool, int*) + 0x4ff
> from /cern/root/lib/libCore.so
>  0x40bf1b94 in TRint::HandleTermInput() + 0x11c from
> /cern/root/lib/libRint.so
>  0x40bf0b86 in TTermInputHandler::Notify() + 0x24 from
> /cern/root/lib/libRint.so 0x40bf2336 in TTermInputHandler::ReadNotify() +
> 0x12 from /cern/root/lib/libRint.so
>  0x4019178b in TUnixSystem::CheckDescriptors() + 0xed from
> /cern/root/lib/libCore.so
>  0x40190f5b in TUnixSystem::DispatchOneEvent(bool) + 0x101 from
> /cern/root/lib/libCore.so
>  0x401215c9 in TSystem::InnerLoop() + 0x1b from /cern/root/lib/libCore.so
>  0x40121562 in TSystem::Run() + 0x78 from /cern/root/lib/libCore.so
>  0x400d7eb1 in TApplication::Run(bool) + 0x2d from /cern/root/lib/libCore.so
>  0x40bf1768 in TRint::Run(bool) + 0x2e4 from /cern/root/lib/libRint.so
>  0x08048782 in main + 0x6e from /cern/root/bin/root.exe
>  0x420158d4 in __libc_start_main + 0xa4 from /cern/root/bin/root.exe
>  0x08048685 in _Unwind_Resume + 0x31 from /cern/root/bin/root.exe
> Root > Function tables() busy flag cleared
> 
> 
> Please help me, how working in new version ROOT,
> Thanks
>    Jan
> 
> 
> 



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET