Re: [ROOT] Problem with filtering tree

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Aug 14 2003 - 08:28:53 MEST


Hi Ed,

I see that you have many local arrays with dimension [10]. These arrays
may have [nCand] elements. Are you sure that in some of your files/chains,
nCand is not greeater than 10.
When using TTree::MakeCode, the maximum dimension is calculated based
on the maximum dimension in the Tree used to generate the code.

Let me know

Rene Brun

Edward Chen wrote:
> 
> Hi - this is a bit of a followup to some tree-filtering problems I had a
> while back, using ROOT v3.04/02.
> 
> I have a large set of root files each with the same types of ntuples.
> These files are chained together in sets of chain files.  For example, for
> one sample, I have 14 chain files, corresponding to about 12.5 million
> events each.
> 
> I have successfully run code based on classes created via MakeSelector()
> on these chain files.
> 
> I'm now trying to filter each chain file into a single root file, using
> the following:
> 
> http://www.hep.caltech.edu/~edward/filterTree.cc
> 
> The filtering seems to work successfully for some of my chain files, but
> crashes while running in the middle of some other chain files.  Here is
> the stack trace (crash appears to occur after about 20K events):
> 
>  *** Break *** segmentation violation
>  Generating stack trace...
>  0x401ae93b in TUnixSystem::StackTrace(void) + 0x25b from
> /home/edward/root/lib/libCore.so
> 
>  0x401ad5ba in TUnixSystem::DispatchSignals(ESignals) + 0xb2 from
> /home/edward/root/lib/libCore.so
>  0x401ac763 in <unknown> from /home/edward/root/lib/libCore.so
>  0x401b01fd in <unknown> from /home/edward/root/lib/libCore.so
>  0x40c258d5 in <unknown> from /lib/i686/libpthread.so.0
>  0x40cc5848 in <unknown> from /lib/i686/libc.so.6
>  0x40acb293 in TChain::GetEntry(int, int) + 0x17 from
> /home/edward/root/lib/libTree.so
>  0x40af30a0 in <unknown> from /home/edward/root/lib/libTree.so
>  0x40596b8a in G__exec_asm + 0x8ee from /home/edward/root/lib/libCint.so
>  0x40589349 in G__exec_loop + 0x53d from /home/edward/root/lib/libCint.so
>  0x405897c5 in G__exec_for + 0x255 from /home/edward/root/lib/libCint.so
>  0x4058c6b6 in G__exec_statement + 0x2c06 from
> /home/edward/root/lib/libCint.so
>  0x4055f79c in G__interpret_func + 0x20fc from
> /home/edward/root/lib/libCint.so
>  0x40544728 in G__getfunction + 0x1bb4 from
> /home/edward/root/lib/libCint.so
>  0x4053c0c9 in G__getitem + 0x509 from /home/edward/root/lib/libCint.so
>  0x4053a863 in G__getexpr + 0x8ba3 from /home/edward/root/lib/libCint.so
>  0x405319a2 in G__calc_internal + 0x38e from
> /home/edward/root/lib/libCint.so
>  0x40592267 in G__process_cmd + 0x23eb from
> /home/edward/root/lib/libCint.so
>  0x401710ba in TCint::ProcessLine(char const *, TInterpreter::EErrorCode
> *) + 0x9a from /home/edward/root/lib/libCore.so
>  0x401711a8 in TCint::ProcessLineSynch(char const *,
> TInterpreter::EErrorCode *) + 0x48 from /home/edward/root/lib/libCore.s
> o
>  0x40107bb6 in TApplication::ProcessFile(char const *, int *) + 0x6e2 from
> /home/edward/root/lib/libCore.so
>  0x40107320 in TApplication::ProcessLine(char const *, bool, int *) +
> 0x4ec from /home/edward/root/lib/libCore.so
>  0x40bec45b in TRint::HandleTermInput(void) + 0x127 from
> /home/edward/root/lib/libRint.so
>  0x40beb780 in TTermInputHandler::Notify(void) + 0x28 from
> /home/edward/root/lib/libRint.so
>  0x40bfb853 in TTermInputHandler::ReadNotify(void) at
> /usr/src/build/85131-i386/BUILD/glibc-2.2.4/stdlib/atexit.c:33 from /h
> ome/edward/root/lib/libRint.so
>  0x401ad9af in TUnixSystem::CheckDescriptors(void) + 0x113 from
> /home/edward/root/lib/libCore.so
>  0x401ad0c2 in TUnixSystem::DispatchOneEvent(bool) + 0x112 from
> /home/edward/root/lib/libCore.so
>  0x4014a669 in TSystem::InnerLoop(void) + 0x1d from
> /home/edward/root/lib/libCore.so
>  0x4014a5fe in TSystem::Run(void) + 0x7e from
> /home/edward/root/lib/libCore.so
>  0x40107f2d in TApplication::Run(bool) + 0x31 from
> /home/edward/root/lib/libCore.so
>  0x40bebf96 in TRint::Run(bool) + 0x2ba from
> /home/edward/root/lib/libRint.so
>  0x08048802 in main + 0x52 from /home/edward/root/bin/root.exe
>  0x40cb3507 in __libc_start_main at
> /usr/src/build/40457-i686/BUILD/glibc-2.2.4/csu/../sysdeps/generic/libc-start.c:129
> from
>  /lib/i686/libc.so.6
>  0x080486d1 in __register_frame_info + 0x35 from
> /home/edward/root/bin/root.exe
> Function filterTree() busy flag cleared
> 
>  *** Break *** segmentation violation
>  Generating stack trace...
> Terminated
> 
> The problem seems to be in GetEntry() - however - my selector classes also
> use GetEntry() on these chain files with no problems.
> 
> Thanks for any help.
> 
> -Ed



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