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