#ifndef AliParticleContainer_H
#define AliParticleContainer_H
-//
-// container with name, TClonesArray and cuts for particles
-//
+// $Id$
class AliVEvent;
class AliVParticle;
+#include "AliAODMCParticle.h"
+
#include "AliEmcalContainer.h"
class AliParticleContainer : public AliEmcalContainer {
AliParticleContainer(const char *name);
virtual ~AliParticleContainer(){;}
- void SetParticlePtCut(Double_t cut) { fParticlePtCut = cut ; }
- void SetParticleEtaLimits(Double_t min, Double_t max) { fParticleMaxEta = max ; fParticleMinEta = min ; }
- void SetParticlePhiLimits(Double_t min, Double_t max) { fParticleMaxPhi = max ; fParticleMinPhi = min ; }
- void SetTrackBitMap(UInt_t m) { fTrackBitMap = m ; }
- void SetMCTrackBitMap(UInt_t m) { fMCTrackBitMap = m ; }
- void SetMinMCLabel(Int_t s) { fMinMCLabel = s ; }
-
+ Bool_t AcceptParticle(AliVParticle *vp) const;
Double_t GetParticlePtCut() const { return fParticlePtCut; }
Double_t GetParticleEtaMin() const { return fParticleMinEta; }
Double_t GetParticleEtaMax() const { return fParticleMaxEta; }
AliVParticle *GetNextAcceptParticle(Int_t i=-1) ;
AliVParticle *GetNextParticle(Int_t i=-1) ;
void GetMomentum(TLorentzVector &mom, Int_t i) const;
- Bool_t AcceptParticle(AliVParticle *vp) const;
Int_t GetNParticles() const {return GetNEntries();}
+ Int_t GetNAcceptedParticles() ;
void SetClassName(const char *clname);
+ void SetMCTrackBitMap(UInt_t m) { fMCTrackBitMap = m ; }
+ void SetMinMCLabel(Int_t s) { fMinMCLabel = s ; }
+ void SetParticlePtCut(Double_t cut) { fParticlePtCut = cut ; }
+ void SetParticleEtaLimits(Double_t min, Double_t max) { fParticleMaxEta = max ; fParticleMinEta = min ; }
+ void SetParticlePhiLimits(Double_t min, Double_t max) { fParticleMaxPhi = max ; fParticleMinPhi = min ; }
+ void SetTrackBitMap(UInt_t m) { fTrackBitMap = m ; }
+ void SetMCFlag(UInt_t m) { fMCFlag = m ; }
+ void SelectHIJING(Bool_t s) { if (s) fGeneratorIndex = 0; else fGeneratorIndex = -1; }
+ void SetGeneratorIndex(Short_t i) { fGeneratorIndex = i ; }
+ void SelectPhysicalPrimaries(Bool_t s) { if (s) fMCFlag |= AliAODMCParticle::kPhysicalPrim ;
+ else fMCFlag &= ~AliAODMCParticle::kPhysicalPrim ; }
protected:
Double_t fParticlePtCut; // cut on particle pt
UInt_t fTrackBitMap; // bit map of accepted tracks (non MC)
UInt_t fMCTrackBitMap; // bit map of accepted MC tracks
Int_t fMinMCLabel; // minimum MC label value for the tracks/clusters being considered MC particles
+ UInt_t fMCFlag; // select MC particles with flags
+ Short_t fGeneratorIndex; // select MC particles with generator index (default = -1 = switch off selection)
private:
AliParticleContainer(const AliParticleContainer& obj); // copy constructor
AliParticleContainer& operator=(const AliParticleContainer& other); // assignment
- ClassDef(AliParticleContainer,1);
+ ClassDef(AliParticleContainer,2);
};