7 #include <TClonesArray.h>
11 #include "AliAODTrack.h"
21 fParticleMinEta(-0.9),
26 fMinDistanceTPCSectorEdge(-1),
30 fMinMCLabelAccept(-1),
34 fFilterHybridTracks(kFALSE)
38 fClassName =
"AliVParticle";
45 fParticleMinEta(-0.9),
50 fMinDistanceTPCSectorEdge(-1),
54 fMinMCLabelAccept(-1),
58 fFilterHybridTracks(kFALSE)
73 AliWarning(
"Only class type AliAODTrack can be filtered for hybrid tracks. This functionality will be disabled.");
89 AliVParticle *part = 0;
91 if (option.Contains(
"p")) {
93 if (part->P() > partMax->P()) partMax = part;
98 if (part->Pt() > partMax->Pt()) partMax = part;
112 if(i<0 || i>=
fClArray->GetEntriesFast())
return 0;
113 AliVParticle *vp =
static_cast<AliVParticle*
>(
fClArray->At(i));
128 AliDebug(2,
"Particle not accepted.");
192 if(vp) mom.SetPtEtaPhiM(vp->Pt(),vp->Eta(),vp->Phi(),0.139);
208 AliAODTrack* aodTrack =
static_cast<AliAODTrack*
>(vp);
209 if (!aodTrack->IsHybridGlobalConstrainedGlobal()) {
221 Double_t tpi = TMath::TwoPi();
223 if(phi>tpi) phi-=tpi;
232 const Double_t pi = TMath::Pi();
233 const Double_t kSector = pi/9;
234 Double_t phiDist = TMath::Abs(vp->Phi() - TMath::FloorNint(vp->Phi()/kSector)*kSector);
242 AliDebug(2,
"Particle not accepted because label too small.");
249 AliDebug(2,
"MC particle not accepted because of MC bit map.");
256 AliDebug(2,
"Track not accepted because of bit map.");
301 if (cls.InheritsFrom(
"AliVParticle"))
fClassName = clname;
302 else AliError(Form(
"Unable to set class name %s for a AliParticleContainer, it must inherits from AliVParticle!",clname));
AliVParticle * GetParticleWithLabel(Int_t lab) const
ClassImp(AliParticleContainer) AliParticleContainer
Int_t GetIndexFromLabel(Int_t lab) const
void SetClassName(const char *clname)
virtual void SetArray(AliVEvent *event)
Bool_t AcceptParticle(AliVParticle *vp)
AliVParticle * GetAcceptParticleWithLabel(Int_t lab)
UInt_t fRejectionReason
event vertex array
void SetArray(AliVEvent *event)
AliVParticle * GetParticle(Int_t i) const
Int_t GetNAcceptedParticles()
AliVParticle * GetAcceptParticle(Int_t i)
AliVParticle * GetLeadingParticle(const char *opt="")
void GetMomentum(TLorentzVector &mom, Int_t i) const
AliVParticle * GetNextAcceptParticle(Int_t i=-1)
Bool_t fFilterHybridTracks
Double_t fMinDistanceTPCSectorEdge
AliVParticle * GetNextParticle(Int_t i=-1)
Int_t GetNEntries() const
Int_t fCurrentID
TClonesArray.