fTmpTreeTR(0),
fTmpFileTR(0),
fNprimaries(-1),
- fNparticles(-1)
+ fNparticles(-1)
{
// Copy constructor
}
fStack->GetEvent();
fNparticles = fStack->GetNtrack();
fNprimaries = fStack->GetNprimary();
- AliInfo(Form("AliMCEvent: Number of particles: %5d (all) %5d (primaries)\n",
- fNparticles, fNprimaries));
+ Int_t iev = fHeader->GetEvent();
+ Int_t ievr = fHeader->GetEventNrInRun();
+
+ AliInfo(Form("AliMCEvent# %5d %5d: Number of particles: %5d (all) %5d (primaries)\n",
+ iev, ievr, fNparticles, fNprimaries));
// This is a cache for the TParticles converted to MCParticles on user request
if (fMCParticleMap) {
fMCParticleMap->Clear();
- if (fNparticles>0) fMCParticleMap->Expand(fNparticles);}
+ fMCParticles->Delete();
+ if (fNparticles>0) fMCParticleMap->Expand(fNparticles);
+ }
else
fMCParticleMap = new TRefArray(fNparticles);
-
}
void AliMCEvent::ConnectTreeTR (TTree* tree)
void AliMCEvent::Clean()
{
// Clean-up before new trees are connected
-
if (fHeader) {
delete fHeader;
fHeader = 0;
}
-
- delete fStack;
+
+ delete fStack; fStack = 0;
// Clear TR
if (fTRBuffer) {
- fTRBuffer->Clear();
+ fTRBuffer->Delete();
delete fTRBuffer;
fTRBuffer = 0;
}
void AliMCEvent::FinishEvent()
{
- // Clean-up after event
- fStack->Reset(0);
- fMCParticles->Clear();
- fTrackReferences->Clear();
+ // Clean-up after event
+ //
+ fStack->Reset(0);
+ fMCParticles->Delete();
+ fMCParticleMap->Clear();
+ if (fTRBuffer)
+ fTRBuffer->Delete();
+ fTrackReferences->Delete();
}
} // hits
} // branches
fTmpTreeTR->Fill();
- fTRBuffer->Clear();
+ fTRBuffer->Delete();
ifills++;
} // daughters
} // has hits
} // entries
it++;
fTmpTreeTR->Fill();
- fTRBuffer->Clear();
+ fTRBuffer->Delete();
ifills++;
} // tracks
// Check
TClonesArray *trefs = 0;
Int_t ntref = 0;
TRefArray *rarray = 0;
-
// Out of range check
if (i < 0 || i >= fNparticles) {
AliWarning(Form("AliMCEvent::GetEntry: Index out of range"));
}
-
//
// First check of the MC Particle has been already cached
if(!fMCParticleMap->At(i)) {
nen++;
} // loop over track references for entry i
} // if TreeTR available
-
Int_t nentries = fMCParticles->GetEntriesFast();
- new ((*fMCParticles)[nentries]) AliMCParticle(particle, rarray);
+ new ((*fMCParticles)[nentries]) AliMCParticle(particle, rarray, i);
mcParticle = dynamic_cast<AliMCParticle*>((*fMCParticles)[nentries]);
fMCParticleMap->AddAt(mcParticle, i);
} else {
mcParticle = dynamic_cast<AliMCParticle*>(fMCParticleMap->At(i));
}
-
return mcParticle;
}