- // Remapping track reference
- // Called at finish primary
- //
- if (!fTrackReferences) return;
- for (Int_t i=0;i<fTrackReferences->GetEntries();i++){
- AliTrackReference * ref = dynamic_cast<AliTrackReference*>(fTrackReferences->UncheckedAt(i));
- if (ref) {
- Int_t newID = map[ref->GetTrack()];
- if (newID>=0) ref->SetTrack(newID);
- else {
- //ref->SetTrack(-1);
- ref->SetBit(kNotDeleted,kFALSE);
- fTrackReferences->RemoveAt(i);
- }
- }
- }
- fTrackReferences->Compress();
-
-}
-
-
-//_______________________________________________________________________
-AliTrackReference* AliModule::FirstTrackReference(Int_t track)
-{
- //
- // Initialise the hit iterator
- // Return the address of the first hit for track
- // If track>=0 the track is read from disk
- // while if track<0 the first hit of the current
- // track is returned
- //
- if(track>=0)
- {
- if (fRunLoader == 0x0)
- AliFatal("AliRunLoader not initialized. Can not proceed");
- fRunLoader->GetAliRun()->GetMCApp()->ResetTrackReferences();
- fRunLoader->TreeTR()->GetEvent(track);
- }
- //
- fMaxIterTrackRef = fTrackReferences->GetEntriesFast();
- fCurrentIterTrackRef = 0;
- if(fMaxIterTrackRef) return dynamic_cast<AliTrackReference*>(fTrackReferences->UncheckedAt(0));
- else return 0;
-}
-
-//_______________________________________________________________________
-AliTrackReference* AliModule::NextTrackReference()
-{
- //
- // Return the next hit for the current track
- //
- if(fMaxIterTrackRef) {
- if(++fCurrentIterTrackRef<fMaxIterTrackRef)
- return dynamic_cast<AliTrackReference*>(fTrackReferences->UncheckedAt(fCurrentIterTrackRef));
- else
- return 0;
- } else {
- AliWarning("Iterator called without calling FistTrackReference before");
- return 0;
- }