//and should therefore not pass the mc cuts
Int_t label0 = tracklet->GetLabel(id,0);
Int_t label1 = tracklet->GetLabel(id,1);
+ //if possible get label and mcparticle
fTrackLabel = (label0==label1)?tracklet->GetLabel(id,1):-1;
+ if (fTrackLabel>=0 && fMCevent) fMCparticle = static_cast<AliMCParticle*>(fMCevent->GetTrack(fTrackLabel));
+ //check MC cuts
if (fCutMC && !PassesMCcuts()) return kFALSE;
return kTRUE;
}
//caller is resposible for deletion
//if construction fails return NULL
AliFlowTrack* flowtrack=NULL;
+ TParticle *tmpTParticle=NULL;
+ AliMCParticle* tmpAliMCParticle=NULL;
if (fParamType==kESD_SPDtracklet)
{
- flowtrack = new AliFlowTrack();
switch (fParamMix)
{
case kPure:
+ flowtrack = new AliFlowTrack();
flowtrack->SetPhi(fTrackPhi);
flowtrack->SetEta(fTrackEta);
break;
case kTrackWithMCkine:
if (!fMCparticle) return NULL;
+ flowtrack = new AliFlowTrack();
flowtrack->SetPhi( fMCparticle->Phi() );
flowtrack->SetEta( fMCparticle->Eta() );
flowtrack->SetPt( fMCparticle->Pt() );
break;
case kTrackWithMCpt:
if (!fMCparticle) return NULL;
+ flowtrack = new AliFlowTrack();
flowtrack->SetPhi(fTrackPhi);
flowtrack->SetEta(fTrackEta);
flowtrack->SetPt(fMCparticle->Pt());
break;
+ case kTrackWithPtFromFirstMother:
+ if (!fMCparticle) return NULL;
+ flowtrack = new AliFlowTrack();
+ flowtrack->SetPhi(fTrackPhi);
+ flowtrack->SetEta(fTrackEta);
+ tmpTParticle = fMCparticle->Particle();
+ tmpAliMCParticle = static_cast<AliMCParticle*>(fMCevent->GetTrack(tmpTParticle->GetFirstMother()));
+ flowtrack->SetPt(tmpAliMCParticle->Pt());
default:
+ flowtrack = new AliFlowTrack();
flowtrack->SetPhi(fTrackPhi);
flowtrack->SetEta(fTrackEta);
}
if (!fMCparticle) return NULL;
flowtrack = new AliFlowTrack(fTrack);
flowtrack->SetPt(fMCparticle->Pt());
+ case kTrackWithPtFromFirstMother:
+ if (!fMCparticle) return NULL;
+ flowtrack = new AliFlowTrack(fTrack);
+ tmpTParticle = fMCparticle->Particle();
+ tmpAliMCParticle = static_cast<AliMCParticle*>(fMCevent->GetTrack(tmpTParticle->GetFirstMother()));
+ flowtrack->SetPt(tmpAliMCParticle->Pt());
default:
flowtrack = new AliFlowTrack(fTrack);
}
static AliFlowTrackCuts* GetStandardITSTPCTrackCuts2009(Bool_t selPrimaries=kTRUE);
enum trackParameterType { kMC, kGlobal, kESD_TPConly, kESD_SPDtracklet };
- enum trackParameterMix { kPure, kTrackWithMCkine, kTrackWithMCPID, kTrackWithMCpt };
+ enum trackParameterMix { kPure, kTrackWithMCkine, kTrackWithMCPID, kTrackWithMCpt, kTrackWithPtFromFirstMother };
//setters (interface to AliESDtrackCuts)
void SetMinNClustersTPC( Int_t a ) {fAliESDtrackCuts->SetMinNClustersTPC(a);}