-// $Id$
//
// Task to filter Esd tracks and propagate to Emcal surface.
//
fIncludeNoITS(kTRUE),
fDoPropagation(kFALSE),
fDist(440),
- fTrackEfficiency(1),
+ fTrackEfficiency(0),
+ fIsMC(kFALSE),
fEsdEv(0),
fTracks(0)
{
fIncludeNoITS(kTRUE),
fDoPropagation(kFALSE),
fDist(440),
- fTrackEfficiency(1),
+ fTrackEfficiency(0),
+ fIsMC(kFALSE),
fEsdEv(0),
fTracks(0)
{
if (!etrack)
continue;
- if (fTrackEfficiency < 1) {
- Double_t r = gRandom->Rndm();
- if (fTrackEfficiency < r)
- continue;
- }
-
if (!fEsdTrackCuts->AcceptTrack(etrack))
continue;
delete ntrack;
continue;
}
+
+ if (fTrackEfficiency) {
+ Double_t r = gRandom->Rndm();
+ if (fTrackEfficiency->Eval(ntrack->Pt()) < r)
+ continue;
+ }
+
if (fDoPropagation)
AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(ntrack,fDist);
new ((*fTracks)[ntrnew++]) AliESDtrack(*ntrack);
AliESDtrack *etrack = fEsdEv->GetTrack(i);
if (!etrack)
continue;
- if (fTrackEfficiency < 1) {
+
+ if ((fEsdTrackCuts!=0) && !fEsdTrackCuts->AcceptTrack(etrack))
+ continue;
+
+ if (fTrackEfficiency) {
Double_t r = gRandom->Rndm();
- if (fTrackEfficiency < r)
+ if (fTrackEfficiency->Eval(etrack->Pt()) < r)
continue;
}
- if ((fEsdTrackCuts!=0) && !fEsdTrackCuts->AcceptTrack(etrack))
- continue;
+
AliESDtrack *ntrack = new ((*fTracks)[ntrnew++]) AliESDtrack(*etrack);
if (fDoPropagation)
AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(ntrack,fDist);
if (!etrack)
continue;
- if (fTrackEfficiency < 1) {
- Double_t r = gRandom->Rndm();
- if (fTrackEfficiency < r)
- continue;
- }
-
if (fEsdTrackCuts->AcceptTrack(etrack)) {
+ if (fTrackEfficiency) {
+ Double_t r = gRandom->Rndm();
+ if (fTrackEfficiency->Eval(etrack->Pt()) < r)
+ continue;
+ }
AliESDtrack *newTrack = new ((*fTracks)[ntrnew]) AliESDtrack(*etrack);
if (fDoPropagation)
AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(newTrack,fDist);
newTrack->SetBit(BIT(22),0);
newTrack->SetBit(BIT(23),0);
+ if (!fMCEvent) newTrack->SetLabel(0);
++ntrnew;
} else if (fHybridTrackCuts->AcceptTrack(etrack)) {
if (!etrack->GetConstrainedParam())
UInt_t status = etrack->GetStatus();
if (!fIncludeNoITS && ((status&AliESDtrack::kITSrefit)==0))
continue;
+
+ if (fTrackEfficiency) {
+ Double_t r = gRandom->Rndm();
+ if (fTrackEfficiency->Eval(etrack->Pt()) < r)
+ continue;
+ }
AliESDtrack *newTrack = new ((*fTracks)[ntrnew]) AliESDtrack(*etrack);
if (fDoPropagation)
AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(newTrack,fDist);
newTrack->SetBit(BIT(22),1); //type 1
newTrack->SetBit(BIT(23),0);
}
+ if (!fMCEvent) newTrack->SetLabel(0);
++ntrnew;
}
}