fMaxTrackPhi(10),
fTrackEfficiency(1),
fIncludeNoITS(kTRUE),
+ fUseNegativeLabels(kTRUE),
+ fIsMC(kFALSE),
fTracksIn(0),
fTracksOut(0)
{
fMaxTrackPhi(10),
fTrackEfficiency(1),
fIncludeNoITS(kTRUE),
+ fUseNegativeLabels(kTRUE),
+ fIsMC(kFALSE),
fTracksIn(0),
fTracksOut(0)
{
continue;
Bool_t isEmc = kFALSE;
- Int_t label = -1;
+ Int_t type = -1;
if (esdMode) {
- if (fESDtrackCuts) {
- AliESDtrack *esdtrack = static_cast<AliESDtrack*>(track);
- if (!fESDtrackCuts->AcceptTrack(esdtrack))
- continue;
- }
- label = track->GetLabel();
- if (!fIncludeNoITS && (label==2))
+ AliESDtrack *esdtrack = static_cast<AliESDtrack*>(track);
+ if (fESDtrackCuts && !fESDtrackCuts->AcceptTrack(esdtrack))
+ continue;
+ type = esdtrack->GetTRDNchamberdEdx();
+ if (!fIncludeNoITS && (type==2))
continue;
isEmc = track->IsEMCAL();
} else {
AliAODTrack *aodtrack = static_cast<AliAODTrack*>(track);
if (fAODfilterBits[0] < 0) {
if (aodtrack->IsHybridGlobalConstrainedGlobal())
- label = 3;
+ type = 3;
else /*not a good track*/
continue;
}
else {
if (aodtrack->TestFilterBit(fAODfilterBits[0])) {
- label = 0;
+ type = 0;
}
else if (aodtrack->TestFilterBit(fAODfilterBits[1])) {
if ((aodtrack->GetStatus()&AliESDtrack::kITSrefit)==0) {
if (fIncludeNoITS)
- label = 2;
+ type = 2;
else
continue;
}
else {
- label = 1;
+ type = 1;
}
}
else {/*not a good track*/
continue;
}
+ Int_t label = 0;
+ if (fIsMC) {
+ if (fUseNegativeLabels)
+ label = track->GetLabel();
+ else
+ label = TMath::Abs(track->GetLabel());
+
+ if (label == 0) {
+ AliWarning(Form("Track %d with label==0", iTracks));
+ label = 99999;
+ }
+ }
+
/*AliPicoTrack *picotrack =*/ new ((*fTracksOut)[nacc]) AliPicoTrack(track->Pt(),
- track->Eta(),
- track->Phi(),
- track->Charge(),
- label,
- track->GetTrackEtaOnEMCal(),
- track->GetTrackPhiOnEMCal(),
- isEmc);
+ track->Eta(),
+ track->Phi(),
+ track->Charge(),
+ label,
+ type,
+ track->GetTrackEtaOnEMCal(),
+ track->GetTrackPhiOnEMCal(),
+ isEmc);
++nacc;
}
}