]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/EMCAL/AliParticleContainer.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliParticleContainer.h
CommitLineData
e58333e0 1#ifndef AliParticleContainer_H
2#define AliParticleContainer_H
3
9239b066 4// $Id$
e58333e0 5
e58333e0 6class AliVEvent;
e58333e0 7class AliVParticle;
8
bf9072ca 9#include "AliAODMCParticle.h"
10
e58333e0 11#include "AliEmcalContainer.h"
12
e58333e0 13class 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 ; }
f7eb9904 38 void SetMinMCLabelAccept(Int_t s) { fMinMCLabelAccept= s ; }
37509f02
CL
39 void SetParticlePtCut(Double_t cut) { fParticlePtCut = cut ; }
40 void SetParticleEtaLimits(Double_t min, Double_t max) { fParticleMaxEta = max ; fParticleMinEta = min ; }
41 void SetParticlePhiLimits(Double_t min, Double_t max) { fParticleMaxPhi = max ; fParticleMinPhi = min ; }
dff86c2a 42 void SetMinDistanceTPCSectorEdge(Double_t min) { fMinDistanceTPCSectorEdge = min; }
37509f02 43 void SetTrackBitMap(UInt_t m) { fTrackBitMap = m ; }
bf9072ca 44 void SetMCFlag(UInt_t m) { fMCFlag = m ; }
45 void SelectHIJING(Bool_t s) { if (s) fGeneratorIndex = 0; else fGeneratorIndex = -1; }
46 void SetGeneratorIndex(Short_t i) { fGeneratorIndex = i ; }
47 void SelectPhysicalPrimaries(Bool_t s) { if (s) fMCFlag |= AliAODMCParticle::kPhysicalPrim ;
48 else fMCFlag &= ~AliAODMCParticle::kPhysicalPrim ; }
82aa1543 49 void SetCharge(Short_t c) { fCharge = c ; }
e58333e0 50
51 protected:
52 Double_t fParticlePtCut; // cut on particle pt
53 Double_t fParticleMinEta; // cut on particle eta
54 Double_t fParticleMaxEta; // cut on particle eta
55 Double_t fParticleMinPhi; // cut on particle phi
56 Double_t fParticleMaxPhi; // cut on particle phi
dff86c2a 57 Double_t fMinDistanceTPCSectorEdge; // require minimum distance to edge of TPC sector edge
e58333e0 58 UInt_t fTrackBitMap; // bit map of accepted tracks (non MC)
59 UInt_t fMCTrackBitMap; // bit map of accepted MC tracks
60 Int_t fMinMCLabel; // minimum MC label value for the tracks/clusters being considered MC particles
f7eb9904 61 Int_t fMinMCLabelAccept; // minimum MC label value to accept particle
bf9072ca 62 UInt_t fMCFlag; // select MC particles with flags
63 Short_t fGeneratorIndex; // select MC particles with generator index (default = -1 = switch off selection)
82aa1543 64 Short_t fCharge; // select particles with charge=fCharge
e58333e0 65
66 private:
67 AliParticleContainer(const AliParticleContainer& obj); // copy constructor
68 AliParticleContainer& operator=(const AliParticleContainer& other); // assignment
69
f7eb9904 70 ClassDef(AliParticleContainer,5);
e58333e0 71
72};
73
74#endif
75