Re: [ROOT] tree

From: Mariusz Sapinski (Mariusz.Sapinski@gamum2.in2p3.fr)
Date: Mon Sep 30 2002 - 22:22:53 MEST


 Hello Rene,
 thank you, in fact i had a bug in makefile.
 Just another small question: RunHeader should be filled only once, while 
Event should be filled every event. tree->Fill() fills all branches at the 
same time. I tried branch->Fill() but it seems not to work correctly. Is 
there any way to fill branches independently?

   A+,

           Mariusz



On Mon, 30 Sep 2002, Rene Brun wrote:

> Hi Mariusz,
> 
> You forgot to generate/link the dictionary.
> You can see an example in the $ROOTSYS/test/Makefile
> or simply in the few lines below;
> 
> g++ -g -Wall -fPIC -I$ROOTSYS/include -c MainEvent.cxx
> rootcint -f EventDict.cxx -c Event.h EventLinkDef.h
> g++ -g -Wall -fPIC -I$ROOTSYS/include -c EventDict.cxx 
> g++ -g -Wall -fPIC -I$ROOTSYS/include -c Event.cxx
> g++ -shared -O Event.o EventDict.o -o  libEvent.so
> g++ -o Event MainEvent.o Event.o EventDict.o -L$ROOTSYS/lib \
>     -lCore -lCint -lTree -lHist -lMatrix -lPhysics -lGraf -lm -ldl 
> 
> Rene Brun
> 
> On Mon, 30 Sep 2002, Mariusz Sapinski wrote:
> 
> > 
> >  Hello Rooters,
> > 
> >  I'd like to create a tree with RunHeader (one per run, ie. one per root 
> > file) and with Events. I've created 2 classes: RunHeader and Event, both 
> > following the example in $ROOTSYS/tests/. For both of them i can produce 
> > dictionary and shared library. But when i link whole program i get the 
> > message:
> >  RunHeader.o: In function `RunHeader::Dictionary(void)':
> > RunHeader.o(.text+0x32): undefined reference to `RunHeader::Class_Name(void)'
> > RunHeader.o: In function `operator>>(TBuffer &, RunHeader const *&)':
> > RunHeader.o(.text+0x6d): undefined reference to `operator>>(TBuffer &, 
> > RunHeader *&)'
> > RunHeader.o(.gnu.linkonce.d.__vt_9RunHeader+0xc0): undefined reference to 
> > `RunHeader::ShowMembers(TMemberInspector &, char *)'
> > RunHeader.o(.gnu.linkonce.d.__vt_9RunHeader+0xc4): undefined reference to 
> > `RunHeader::Streamer(TBuffer &)'
> > RunHeader.o: In function `RunHeader::StreamerNVirtual(TBuffer &)':
> > RunHeader.o(.RunHeader::gnu.linkonce.t.StreamerNVirtual(TBuffer &)+0x1d): 
> > undefined reference to `RunHeader::Streamer(TBuffer &)'
> > collect2: ld returned 1 exit status
> > 
> >  So in principle i got 2 questions.
> > 1. Is my approach correct (to have 2 classes, both heritaging from 
> > TObject)
> > 2. if(1 == 'yes') { printf("where is the source of my problem?\n"); }
> > 
> >  Thanks in advance (i always get an answer here so i can safely thank in 
> > advance),
> > 
> >         Mariusz
> > 
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:12 MET