Hi Thorsten,
I assume that you run in split mode.
When reading the event in this mode, the number of entries in the array
is not updated. You must do yourself:
event.GetTracks()->Clear()
before reading a new event.
I have fixed the problem in the coming 2.24/03.
Rene Brun
thorsten glebe wrote:
>
> Hello,
>
> running the Event-example from the test subdirectory of the ROOT release,
> I observed that I am not able to get always the correct number of tracks
> in the TClonesArray via the GetEntries() function.
>
> What I did was (using root 2.23.10):
>
> root [0] .x eventload.cxx
> root [1] TFile f("Event.root");
> root [2] TTree *T = (TTree*)f.Get("T");
> root [3] Event *event = new Event();
> root [4] T->SetBranchAddress("event", &event);
> root [5] T->GetEntry(0)
> root [6] event.GetTracks().GetEntries()
> (Int_t)594
> root [7] T->GetEntry(5)
> root [8] event.GetTracks().GetEntries()
> (Int_t)610
> root [9] T->GetEntry(0)
> root [10] event.GetTracks().GetEntries()
> (Int_t)610
>
> I expected to get again 594. GetLast() and GetEntriesFast() behaved better:
>
> root [11] event.GetTracks().GetLast()
> (Int_t)593
> root [12] event.GetTracks().GetEntriesFast()
> (Int_t)594
>
> So my question is: what is the correct way to retrieve the number of entries
> in a TClonesArray/TObjectArray?
>
> BTW: does anybody know how to use namespaces together with the
> ClassDef/ClassImp macros?
>
> Goodbye,
> Thorsten
>
> ----------------------------------------------------
> Dr. Thorsten Glebe <Thorsten.Glebe@mpi-hd.mpg.de>
>
> Max-Planck-Institut fuer Kernphysik
>
> Saupfercheckweg 1 Tel: 06221/516-631
> D-69117 Heidelberg Fax: 06221/516-603
> ----------------------------------------------------
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:24 MET