#include "AliPicoTrack.h"
#include "AliVTrack.h"
#include "AliAODMCParticle.h"
+#include "AliNamedArrayI.h"
ClassImp(AliEmcalPicoTrackMaker)
fTracksIn(0),
fTracksOut(0),
fMCParticles(0),
+ fMCParticlesMap(0),
fInit(kFALSE)
{
// Constructor.
fTracksIn(0),
fTracksOut(0),
fMCParticles(0),
+ fMCParticlesMap(0),
fInit(kFALSE)
{
// Constructor.
AliError(Form("%s: Collection %s does not contain AliVParticle objects!", GetName(), fMCParticlesName.Data()));
fMCParticles = 0;
}
+
+ TString mapName(fMCParticlesName);
+ mapName += "_Map";
+ fMCParticlesMap = dynamic_cast<AliNamedArrayI*>(InputEvent()->FindListObject(mapName));
}
fInit = kTRUE;
AliVParticle* AliEmcalPicoTrackMaker::GetMCParticle(Int_t label)
{
if (!fMCParticles) return 0;
- AliVParticle *part = static_cast<AliVParticle*>(fMCParticles->At(label));
+ Int_t index = label;
+ if (fMCParticlesMap) index = fMCParticlesMap->At(label);
+ if (index < 0 || index >= fMCParticles->GetEntriesFast()) return 0;
+ AliVParticle *part = static_cast<AliVParticle*>(fMCParticles->At(index));
return part;
}
class TClonesArray;
class AliVParticle;
+class AliNamedArrayI;
#include "AliAnalysisTaskSE.h"
Bool_t fCopyMCFlag; // copy MC flag
TClonesArray *fTracksIn; //!track array in
TClonesArray *fTracksOut; //!track array out
- TClonesArray *fMCParticles; //!MC particle array, used by IsHIJINGParticle
+ TClonesArray *fMCParticles; //!MC particle array
+ AliNamedArrayI *fMCParticlesMap; //!MC particle map
Bool_t fInit; //!true = task initialized
private: