6 #include <TClonesArray.h>
11 #include "AliVTrack.h"
12 #include "AliESDtrack.h"
14 #include "AliTLorentzVector.h"
28 fParticleMinEta(-0.9),
33 fMinDistanceTPCSectorEdge(-1),
37 fMinMCLabelAccept(-1),
43 fSelectionModeAny(kFALSE),
46 fEmcalTrackSelection(0),
52 fClassName =
"AliVParticle";
59 fParticleMinEta(-0.9),
64 fMinDistanceTPCSectorEdge(-1),
68 fMinMCLabelAccept(-1),
74 fSelectionModeAny(kFALSE),
76 fTrackCutsPeriod(period),
77 fEmcalTrackSelection(0),
105 AliInfo(
"Using custom track cuts");
109 AliInfo(Form(
"Objects are of type %s: AOD track selection will be done.",
fLoadedClass->GetName()));
113 AliInfo(Form(
"Objects are of type %s: ESD track selection will be done.",
fLoadedClass->GetName()));
117 AliWarning(Form(
"Objects are of type %s: no track filtering will be done!!",
fLoadedClass->GetName()));
137 AliInfo(Form(
"Using track cuts %d (no data period was provided!)",
fTrackFilterType));
141 AliInfo(Form(
"Objects are of type %s: AOD track selection will be done.",
fLoadedClass->GetName()));
145 AliInfo(Form(
"Objects are of type %s: ESD track selection will be done.",
fLoadedClass->GetName()));
149 AliWarning(Form(
"Objects are of type %s: no track filtering will be done!!",
fLoadedClass->GetName()));
163 TIter nextBitmap(trackBitmaps);
166 while ((bits = static_cast<TBits*>(nextBitmap()))) {
173 if (bits->FirstSetBit() == 0) {
176 else if (bits->FirstSetBit() == 1) {
177 if ((vTrack->GetStatus()&AliVTrack::kITSrefit) != 0) {
204 AliVParticle *part = 0;
206 if (option.Contains(
"p")) {
208 if (part->P() > partMax->P()) partMax = part;
213 if (part->Pt() > partMax->Pt()) partMax = part;
243 AliDebug(2,
"Particle not accepted.");
314 AliESDtrack *track =
static_cast<AliESDtrack*
>(vp);
315 mom.SetPtEtaPhiM(track->GetConstrainedParam()->Pt(), track->GetConstrainedParam()->Eta(), track->GetConstrainedParam()->Phi(), 0.139);
318 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(), 0.139);
323 mom.SetPtEtaPhiM(0, 0, 0, 0.139);
337 AliESDtrack *track =
static_cast<AliESDtrack*
>(vp);
338 mom.SetPtEtaPhiM(track->GetConstrainedParam()->Pt(), track->GetConstrainedParam()->Eta(), track->GetConstrainedParam()->Phi(), 0.139);
341 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(), 0.139);
346 mom.SetPtEtaPhiM(0, 0, 0, 0.139);
361 AliESDtrack *track =
static_cast<AliESDtrack*
>(vp);
362 mom.SetPtEtaPhiM(track->GetConstrainedParam()->Pt(), track->GetConstrainedParam()->Eta(), track->GetConstrainedParam()->Phi(), 0.139);
365 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(), 0.139);
371 mom.SetPtEtaPhiM(0, 0, 0, 0.139);
385 AliESDtrack *track =
static_cast<AliESDtrack*
>(vp);
386 mom.SetPtEtaPhiM(track->GetConstrainedParam()->Pt(), track->GetConstrainedParam()->Eta(), track->GetConstrainedParam()->Phi(), 0.139);
389 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(), 0.139);
395 mom.SetPtEtaPhiM(0, 0, 0, 0.139);
429 AliDebug(2,
"Particle not accepted because label too small.");
436 AliDebug(2,
"MC particle not accepted because of MC bit map.");
443 AliDebug(2,
"Track not accepted because of bit map.");
465 AliTLorentzVector mom;
482 const Double_t pi = TMath::Pi();
483 const Double_t kSector = pi/9;
484 Double_t phiDist = TMath::Abs(mom.Phi() - TMath::FloorNint(mom.Phi()/kSector)*kSector);
515 if (cls.InheritsFrom(
"AliVParticle"))
fClassName = clname;
516 else AliError(Form(
"Unable to set class name %s for a AliParticleContainer, it must inherits from AliVParticle!",clname));
540 if (icut < fListOfCuts->GetEntries()) {
541 return static_cast<AliVCuts *
>(
fListOfCuts->At(icut));
Interface for virtual track selection.
ClassImp(AliAnalysisTaskTriggerRates) AliAnalysisTaskTriggerRates
Bool_t GetNextMomentum(TLorentzVector &mom, Int_t i=-1)
Double_t fParticlePtCut
default period string used to generate track cuts
AliVParticle * GetParticleWithLabel(Int_t lab) const
Int_t GetIndexFromLabel(Int_t lab) const
void SetClassName(const char *clname)
ETrackFilterType_t fTrackFilterType
virtual void SetArray(AliVEvent *event)
const TClonesArray * GetAcceptedTrackBitmaps() const
Implement virtual track selection for AOD analysis.
void SetSelectionModeAny()
Bool_t AcceptParticle(AliVParticle *vp)
TArrayC fTrackTypes
tracks filtered using fEmcalTrackSelection
TClass * fLoadedClass
reject reason bit map for the last call to an accept object function
static TString fgDefTrackCutsPeriod
AliVCuts * GetTrackCuts(Int_t icut)
AliVParticle * GetAcceptParticleWithLabel(Int_t lab)
UInt_t fRejectionReason
event vertex array
Bool_t GetAcceptMomentum(TLorentzVector &mom, Int_t i)
void SetArray(AliVEvent *event)
Declaration of class AliEmcalTrackSelectionESD.
Int_t GetNAcceptedParticles()
AliVParticle * GetLeadingParticle(const char *opt="")
AliVParticle * GetParticle(Int_t i=-1) const
Bool_t GetNextAcceptMomentum(TLorentzVector &mom, Int_t i=-1)
void AddTrackCuts(AliVCuts *cuts)
Bool_t GetMomentum(TLorentzVector &mom, Int_t i)
AliVParticle * GetNextAcceptParticle(Int_t i=-1)
Double_t fMinDistanceTPCSectorEdge
void AddTrackCuts(AliVCuts *cuts)
Implement virtual track selection for AOD analysis.
Int_t GetNumberOfCutObjects() const
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)
AliVParticle * GetNextParticle(Int_t i=-1)
TObjArray * GetAcceptedTracks(const TClonesArray *const tracks)
TObjArray * fFilteredTracks
track selection object
AliEmcalTrackSelection * fEmcalTrackSelection
void SetSelectionModeAll()
Int_t GetNEntries() const
AliVParticle * GetAcceptParticle(Int_t i=-1)
Int_t fCurrentID
TClonesArray.
Implementation of virtual track selection for ESDs.