6 #include <TClonesArray.h>
11 #include "AliESDtrack.h"
13 #include "AliTLorentzVector.h"
27 fSelectionModeAny(kFALSE),
30 fEmcalTrackSelection(0),
36 fClassName =
"AliVTrack";
37 fMassHypothesis = 0.139;
45 fSelectionModeAny(kFALSE),
47 fTrackCutsPeriod(period),
48 fEmcalTrackSelection(0),
77 AliInfo(
"Using custom track cuts");
81 AliInfo(Form(
"Objects are of type %s: AOD track selection will be done.",
fLoadedClass->GetName()));
85 AliInfo(Form(
"Objects are of type %s: ESD track selection will be done.",
fLoadedClass->GetName()));
89 AliWarning(Form(
"Objects are of type %s: no track filtering will be done!!",
fLoadedClass->GetName()));
109 AliInfo(Form(
"Using track cuts %d (no data period was provided!)",
fTrackFilterType));
113 AliInfo(Form(
"Objects are of type %s: AOD track selection will be done.",
fLoadedClass->GetName()));
117 AliInfo(Form(
"Objects are of type %s: ESD track selection will be done.",
fLoadedClass->GetName()));
121 AliWarning(Form(
"Objects are of type %s: no track filtering will be done!!",
fLoadedClass->GetName()));
135 TIter nextBitmap(trackBitmaps);
138 while ((bits = static_cast<TBits*>(nextBitmap()))) {
145 if (bits->FirstSetBit() == 0) {
148 else if (bits->FirstSetBit() == 1) {
149 if ((vTrack->GetStatus()&AliVTrack::kITSrefit) != 0) {
186 AliDebug(2,
"Track not accepted.");
232 if (mass < 0) mass = part->M();
233 mom.SetPtEtaPhiM(part->Pt(), part->Eta(), part->Phi(),
mass);
237 mom.SetPtEtaPhiM(0, 0, 0, 0);
258 if (mass < 0) mass = vp->M();
262 AliESDtrack *track =
static_cast<AliESDtrack*
>(vp);
263 mom.SetPtEtaPhiM(track->GetConstrainedParam()->Pt(), track->GetConstrainedParam()->Eta(), track->GetConstrainedParam()->Phi(),
mass);
266 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(),
mass);
271 mom.SetPtEtaPhiM(0, 0, 0, 0);
285 if (mass < 0) mass = vp->M();
289 AliESDtrack *track =
static_cast<AliESDtrack*
>(vp);
290 mom.SetPtEtaPhiM(track->GetConstrainedParam()->Pt(), track->GetConstrainedParam()->Eta(), track->GetConstrainedParam()->Phi(),
mass);
293 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(),
mass);
298 mom.SetPtEtaPhiM(0, 0, 0, 0);
313 if (mass < 0) mass = vp->M();
317 AliESDtrack *track =
static_cast<AliESDtrack*
>(vp);
318 mom.SetPtEtaPhiM(track->GetConstrainedParam()->Pt(), track->GetConstrainedParam()->Eta(), track->GetConstrainedParam()->Phi(),
mass);
321 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(),
mass);
327 mom.SetPtEtaPhiM(0, 0, 0, 0);
341 if (mass < 0) mass = vp->M();
345 AliESDtrack *track =
static_cast<AliESDtrack*
>(vp);
346 mom.SetPtEtaPhiM(track->GetConstrainedParam()->Pt(), track->GetConstrainedParam()->Eta(), track->GetConstrainedParam()->Phi(),
mass);
349 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(),
mass);
355 mom.SetPtEtaPhiM(0, 0, 0, 0);
365 if (!r)
return kFALSE;
367 AliTLorentzVector mom;
385 if (!r)
return kFALSE;
387 AliTLorentzVector mom;
407 if (cls.InheritsFrom(
"AliVTrack"))
fClassName = clname;
408 else AliError(Form(
"Unable to set class name %s for a AliTrackContainer, it must inherits from AliVTrack!",clname));
432 if (icut < fListOfCuts->GetEntries()) {
433 return static_cast<AliVCuts *
>(
fListOfCuts->At(icut));
441 static TString trackString;
453 return trackString.Data();
Interface for virtual track selection.
virtual Bool_t GetNextAcceptMomentum(TLorentzVector &mom, Int_t i=-1)
ClassImp(AliAnalysisTaskTriggerRates) AliAnalysisTaskTriggerRates
TObjArray * fFilteredTracks
track selection object
void SetClassName(const char *clname)
virtual Bool_t ApplyTrackCuts(const AliVTrack *vp)
static TString fgDefTrackCutsPeriod
virtual Bool_t AcceptTrack(const AliVTrack *vp)
virtual Bool_t GetNextMomentum(TLorentzVector &mom, Int_t i=-1)
virtual void SetArray(AliVEvent *event)
const TClonesArray * GetAcceptedTrackBitmaps() const
Implement virtual track selection for AOD analysis.
virtual Bool_t ApplyParticleCuts(const AliVParticle *vp)
virtual AliVTrack * GetNextAcceptTrack(Int_t i=-1)
void SetSelectionModeAny()
AliVCuts * GetTrackCuts(Int_t icut)
AliEmcalTrackSelection * fEmcalTrackSelection
TClass * fLoadedClass
reject reason bit map for the last call to an accept object function
ETrackFilterType_t fTrackFilterType
default period string used to generate track cuts
void SetArray(AliVEvent *event)
Declaration of class AliEmcalTrackSelectionESD.
Double_t GetMinPt() const
Int_t GetNumberOfCutObjects() const
TArrayC fTrackTypes
tracks filtered using fEmcalTrackSelection
void AddTrackCuts(AliVCuts *cuts)
Implement virtual track selection for AOD analysis.
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
const TString & GetArrayName() const
virtual AliVTrack * GetTrack(Int_t i=-1) const
TObjArray * GetAcceptedTracks(const TClonesArray *const tracks)
virtual Bool_t GetMomentum(TLorentzVector &mom, const AliVTrack *part, Double_t mass)
virtual Bool_t GetAcceptMomentum(TLorentzVector &mom, Int_t i)
virtual Bool_t ApplyKinematicCuts(const AliTLorentzVector &mom)
void AddTrackCuts(AliVCuts *cuts)
void SetSelectionModeAll()
const char * GetTitle() const
virtual AliVTrack * GetAcceptTrack(Int_t i=-1)
Int_t GetNEntries() const
Int_t fCurrentID
TClonesArray.
Implementation of virtual track selection for ESDs.
virtual AliVTrack * GetNextTrack(Int_t i=-1)