Christian, Which version of Root are you using? see : http://root.cern.ch/root/roottalk/RoottalkRules.html In case you use 3.05/07 with a chain referencing remote files, upgrade your version of Root. Rene Brun Christian Vogel wrote: > > Hi roottalk, > > I tried to make a really primitive analysis in root using a TSelector > (and two derived classes) because I wanted to encapsulate stuff I have > to do several times in a intermediate class... And I want to iterate > over several files in a TChain. My selector-hierarchy looks like: > > TSelector > | > +-- GsiSelector (load stuff from branches, later: do cuts, prepare > | intermediate values...) > | > +-- gsi_calc_pedestals > | > +-- other stuff > > Now in principle, I think it works, but it seems to call Notify() at > strange locations. Possibly it's doing strange things which also slow > everything down quite a lot. If I run the code[*] it does the following: > > GsiSelector() - constructor is called (fine) > GsiCalcPedestals() - constructor is called (fine) > Begin() is called (fine), this saves the TTree* in fTree member variable > Notify() is called (fine) > Notify() is called AGAIN. WHY? <--------- > > ---> for all Events in the first file > | ProcessCut/ProcessFill is called for events (fine) > | | > +---+ > > Notify() is called (fine), new file > Notify() is called AGAIN. WHY? <------ > > ProcessCut/ProcessFile for first event in second file > > Now, Notify() is called for EVERY EVENT in the second file. > Things get very, very, very slow. > > Have I done something completely wrong and/or stupid? > > Chris > > [*] you can have a look here: > http://pi2.physik.uni-erlangen.de/~vogel/gsi_analysis_root/ > > -- > There are three types of people in the world; those who can count, > and those who can't.
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:17 MET