]>
Commit | Line | Data |
---|---|---|
e58333e0 | 1 | #ifndef AliParticleContainer_H |
2 | #define AliParticleContainer_H | |
3 | ||
9239b066 | 4 | // $Id$ |
e58333e0 | 5 | |
e58333e0 | 6 | class AliVEvent; |
e58333e0 | 7 | class AliVParticle; |
8 | ||
bf9072ca | 9 | #include "AliAODMCParticle.h" |
10 | ||
e58333e0 | 11 | #include "AliEmcalContainer.h" |
12 | ||
e58333e0 | 13 | class AliParticleContainer : public AliEmcalContainer { |
14 | public: | |
15 | AliParticleContainer(); | |
16 | AliParticleContainer(const char *name); | |
6421eeb0 | 17 | virtual ~AliParticleContainer(){;} |
e58333e0 | 18 | |
6504c17f | 19 | Bool_t AcceptParticle(AliVParticle *vp) ; |
ef46ebe5 | 20 | Double_t GetParticlePtCut() const { return fParticlePtCut; } |
21 | Double_t GetParticleEtaMin() const { return fParticleMinEta; } | |
22 | Double_t GetParticleEtaMax() const { return fParticleMaxEta; } | |
23 | Double_t GetParticlePhiMin() const { return fParticleMinPhi; } | |
24 | Double_t GetParticlePhiMax() const { return fParticleMaxPhi; } | |
25 | AliVParticle *GetLeadingParticle(const char* opt="") ; | |
26 | AliVParticle *GetParticle(Int_t i) const; | |
6504c17f | 27 | AliVParticle *GetAcceptParticle(Int_t i) ; |
ef46ebe5 | 28 | AliVParticle *GetParticleWithLabel(Int_t lab) const; |
6504c17f | 29 | AliVParticle *GetAcceptParticleWithLabel(Int_t lab) ; |
ef46ebe5 | 30 | AliVParticle *GetNextAcceptParticle(Int_t i=-1) ; |
31 | AliVParticle *GetNextParticle(Int_t i=-1) ; | |
6421eeb0 | 32 | void GetMomentum(TLorentzVector &mom, Int_t i) const; |
ef46ebe5 | 33 | Int_t GetNParticles() const {return GetNEntries();} |
8612dfc8 | 34 | Int_t GetNAcceptedParticles() ; |
b6f970ad | 35 | void SetClassName(const char *clname); |
37509f02 CL |
36 | void SetMCTrackBitMap(UInt_t m) { fMCTrackBitMap = m ; } |
37 | void SetMinMCLabel(Int_t s) { fMinMCLabel = s ; } | |
38 | void SetParticlePtCut(Double_t cut) { fParticlePtCut = cut ; } | |
39 | void SetParticleEtaLimits(Double_t min, Double_t max) { fParticleMaxEta = max ; fParticleMinEta = min ; } | |
40 | void SetParticlePhiLimits(Double_t min, Double_t max) { fParticleMaxPhi = max ; fParticleMinPhi = min ; } | |
dff86c2a | 41 | void SetMinDistanceTPCSectorEdge(Double_t min) { fMinDistanceTPCSectorEdge = min; } |
37509f02 | 42 | void SetTrackBitMap(UInt_t m) { fTrackBitMap = m ; } |
bf9072ca | 43 | void SetMCFlag(UInt_t m) { fMCFlag = m ; } |
44 | void SelectHIJING(Bool_t s) { if (s) fGeneratorIndex = 0; else fGeneratorIndex = -1; } | |
45 | void SetGeneratorIndex(Short_t i) { fGeneratorIndex = i ; } | |
46 | void SelectPhysicalPrimaries(Bool_t s) { if (s) fMCFlag |= AliAODMCParticle::kPhysicalPrim ; | |
47 | else fMCFlag &= ~AliAODMCParticle::kPhysicalPrim ; } | |
82aa1543 | 48 | void SetCharge(Short_t c) { fCharge = c ; } |
e58333e0 | 49 | |
50 | protected: | |
51 | Double_t fParticlePtCut; // cut on particle pt | |
52 | Double_t fParticleMinEta; // cut on particle eta | |
53 | Double_t fParticleMaxEta; // cut on particle eta | |
54 | Double_t fParticleMinPhi; // cut on particle phi | |
55 | Double_t fParticleMaxPhi; // cut on particle phi | |
dff86c2a | 56 | Double_t fMinDistanceTPCSectorEdge; // require minimum distance to edge of TPC sector edge |
e58333e0 | 57 | UInt_t fTrackBitMap; // bit map of accepted tracks (non MC) |
58 | UInt_t fMCTrackBitMap; // bit map of accepted MC tracks | |
59 | Int_t fMinMCLabel; // minimum MC label value for the tracks/clusters being considered MC particles | |
bf9072ca | 60 | UInt_t fMCFlag; // select MC particles with flags |
61 | Short_t fGeneratorIndex; // select MC particles with generator index (default = -1 = switch off selection) | |
82aa1543 | 62 | Short_t fCharge; // select particles with charge=fCharge |
e58333e0 | 63 | |
64 | private: | |
65 | AliParticleContainer(const AliParticleContainer& obj); // copy constructor | |
66 | AliParticleContainer& operator=(const AliParticleContainer& other); // assignment | |
67 | ||
dff86c2a | 68 | ClassDef(AliParticleContainer,4); |
e58333e0 | 69 | |
70 | }; | |
71 | ||
72 | #endif | |
73 |