6 #include <TClonesArray.h>
11 #include "AliTLorentzVector.h"
21 fMinDistanceTPCSectorEdge(-1),
27 fClassName =
"AliVParticle";
33 fMinDistanceTPCSectorEdge(-1),
54 AliVParticle *part = 0;
56 if (option.Contains(
"p")) {
58 if (part->P() > partMax->P()) partMax = part;
63 if (part->Pt() > partMax->Pt()) partMax = part;
78 if (i < 0 || i >= this->
fClArray->GetEntriesFast())
return 0;
79 AliVParticle *vp =
static_cast<AliVParticle*
>(
fClArray->At(i));
93 AliDebug(2,
"Particle not accepted.");
134 if (mass < 0) mass = part->M();
135 mom.SetPtEtaPhiM(part->Pt(), part->Eta(), part->Phi(),
mass);
139 mom.SetPtEtaPhiM(0, 0, 0, 0);
160 if (mass < 0) mass = vp->M();
161 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(),
mass);
165 mom.SetPtEtaPhiM(0, 0, 0, 0);
179 if (mass < 0) mass = vp->M();
180 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(),
mass);
184 mom.SetPtEtaPhiM(0, 0, 0, 0);
199 if (mass < 0) mass = vp->M();
200 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(),
mass);
204 mom.SetPtEtaPhiM(0, 0, 0, 0);
218 if (mass < 0) mass = vp->M();
219 mom.SetPtEtaPhiM(vp->Pt(), vp->Eta(), vp->Phi(),
mass);
223 mom.SetPtEtaPhiM(0, 0, 0, 0);
233 if (!r)
return kFALSE;
235 AliTLorentzVector mom;
253 if (!r)
return kFALSE;
255 AliTLorentzVector mom;
307 const Double_t pi = TMath::Pi();
308 const Double_t kSector = pi/9;
309 Double_t phiDist = TMath::Abs(mom.Phi() - TMath::FloorNint(mom.Phi()/kSector)*kSector);
344 if (cls.InheritsFrom(
"AliVParticle"))
fClassName = clname;
345 else AliError(Form(
"Unable to set class name %s for a AliParticleContainer, it must inherits from AliVParticle!",clname));
351 static TString trackString;
363 return trackString.Data();
ClassImp(AliAnalysisTaskTriggerRates) AliAnalysisTaskTriggerRates
virtual AliVParticle * GetNextAcceptParticle()
virtual Bool_t ApplyKinematicCuts(const AliTLorentzVector &mom)
const char * GetTitle() const
void SetClassName(const char *clname)
UInt_t fBitMap
whether or not it is a particle level object collection
TString fClassName
name of branch
virtual Bool_t ApplyParticleCuts(const AliVParticle *vp)
Particle charge did not match.
virtual Bool_t GetNextMomentum(TLorentzVector &mom)
Container for particles within the EMCAL framework.
virtual Bool_t GetNextAcceptMomentum(TLorentzVector &mom)
UInt_t fRejectionReason
!reject reason bit map for the last call to an accept object function
virtual Bool_t GetAcceptMomentum(TLorentzVector &mom, Int_t i)
Int_t GetNAcceptedParticles()
Double_t GetMinPt() const
virtual AliVParticle * GetLeadingParticle(const char *opt="")
virtual AliVParticle * GetParticle(Int_t i=-1) const
particle not in acceptance in and/or
virtual Bool_t GetMomentum(TLorentzVector &mom, const AliVParticle *part, Double_t mass)
Base class for container structures within the EMCAL framework.
Short_t fCharge
require minimum distance to edge of TPC sector edge
Double_t fMinDistanceTPCSectorEdge
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)
Int_t fMinMCLabel
cut on particle phi
const TString & GetArrayName() const
Double_t fMassHypothesis
maximum MC label
Short_t fGeneratorIndex
select particles with charge=fCharge
virtual Bool_t ApplyKinematicCuts(const AliTLorentzVector &mom)
Int_t fMaxMCLabel
minimum MC label
TClonesArray * fClArray
if < 0 it will use a PID mass when available
Int_t GetNEntries() const
virtual AliVParticle * GetAcceptParticle(Int_t i=-1)
Int_t fCurrentID
!current ID for automatic loops
virtual Bool_t AcceptParticle(const AliVParticle *vp)
void ResetCurrentID(Int_t i=-1)
virtual AliVParticle * GetNextParticle()