]>
Commit | Line | Data |
---|---|---|
afa8b37b | 1 | #ifndef ALIVAODPARTICLE_H |
2 | #define ALIVAODPARTICLE_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
0206ddfb | 8 | //*********************************************************** |
9 | // Class AliVAODParticle | |
afa8b37b | 10 | // base class for AOD particles |
0206ddfb | 11 | // Author: Piotr.Skowronski@cern.ch |
12 | //*********************************************************** | |
afa8b37b | 13 | |
14 | #include <TObject.h> | |
0206ddfb | 15 | //#include <TLorentzVector.h> |
afa8b37b | 16 | #include <TVector3.h> |
17 | ||
afa8b37b | 18 | class AliTrackPoints; |
19 | class AliClusterMap; | |
20 | ||
21 | class AliVAODParticle : public TObject { | |
22 | public: | |
065e0e69 | 23 | AliVAODParticle() : TObject(){} |
dd2b6810 | 24 | virtual ~AliVAODParticle(){} |
25 | ||
26 | AliVAODParticle(const AliVAODParticle& in); | |
27 | virtual AliVAODParticle& operator=(const AliVAODParticle& in); | |
28 | ||
29 | ||
afa8b37b | 30 | // kinematics |
065e0e69 | 31 | virtual Double_t Mass() const = 0; |
32 | virtual Double_t E() const = 0; | |
33 | virtual Double_t P() const = 0; | |
34 | virtual Double_t Pt() const = 0; | |
35 | virtual Double_t Px() const = 0; | |
36 | virtual Double_t Py() const = 0; | |
37 | virtual Double_t Pz() const = 0; | |
38 | virtual Double_t Phi() const = 0; | |
39 | virtual Double_t Theta() const = 0; | |
40 | virtual Double_t Eta() const = 0; | |
41 | virtual Double_t Y() const = 0; | |
78d7c6d3 | 42 | |
43 | virtual void SetMomentum(Double_t/*px*/,Double_t/*py*/,Double_t/*pz*/,Double_t/*E*/) = 0; | |
44 | virtual void SetProductionVertex(Double_t /*vx*/, Double_t /*vy*/, Double_t /*vz*/, Double_t /*t*/) = 0; | |
afa8b37b | 45 | |
46 | // PID | |
dd2b6810 | 47 | virtual void SetPdgCode(Int_t pdg, Float_t prob = 1.0) = 0; |
afa8b37b | 48 | virtual Double_t GetProbability(Int_t pdg) const = 0; |
dd2b6810 | 49 | virtual Double_t GetPidProb() const = 0;//returns probability of being particle type defined by GetPdgCode() |
afa8b37b | 50 | virtual Int_t GetMostProbable() const = 0; |
51 | ||
52 | virtual Int_t GetPdgCode() const = 0;//We need to assume some PID (f.e. energy calculation) | |
dd2b6810 | 53 | //sometimes one track can apear in analysis twise (e.g. ones as pion ones as kaon) |
78d7c6d3 | 54 | virtual Int_t GetNumberOfPids() const = 0; //returns number of non zero PID probabilities |
55 | virtual Int_t GetNthPid (Int_t idx) const = 0;//These two methods are made to be able to | |
56 | virtual Float_t GetNthPidProb (Int_t idx) const = 0;//copy pid information i.e. in copy ctors | |
dd2b6810 | 57 | |
58 | virtual Double_t Charge() const = 0; | |
afa8b37b | 59 | |
60 | // vertices | |
065e0e69 | 61 | virtual Double_t Vx() const = 0; |
62 | virtual Double_t Vy() const = 0; | |
63 | virtual Double_t Vz() const = 0; | |
78d7c6d3 | 64 | virtual Double_t T() const {return 0.0;}; |
65 | ||
afa8b37b | 66 | virtual AliVAODParticle* Mother() const {return NULL;}; |
67 | virtual Bool_t HasDecayVertex() const {return kFALSE;}; | |
68 | virtual TVector3 DecayVertex() const {return TVector3();}; | |
69 | virtual Int_t NumberOfDaughters() const {return 0;}; | |
78d7c6d3 | 70 | virtual AliVAODParticle* Daughter(Int_t /*index*/) const {return NULL;}; |
afa8b37b | 71 | |
78d7c6d3 | 72 | virtual Int_t GetUID() const { return 0;}//returns unique ID of this track |
73 | //(may happen than the same track is selected | |
74 | //twise, f.g. as a pion and as a kaon than both have the same UID) | |
dd2b6810 | 75 | virtual void SetUID(Int_t /*id*/){/* *this */} |
afa8b37b | 76 | // type information |
0206ddfb | 77 | virtual Bool_t IsSimulated() const {return kFALSE;}; |
78 | virtual Bool_t IsTrack() const {return kFALSE;}; | |
79 | virtual Bool_t IsCluster() const {return kFALSE;}; | |
afa8b37b | 80 | |
81 | //HBT specific | |
78d7c6d3 | 82 | virtual AliTrackPoints* GetTPCTrackPoints() const {return 0x0;} |
83 | virtual AliTrackPoints* GetITSTrackPoints() const {return 0x0;} | |
afa8b37b | 84 | virtual AliClusterMap* GetClusterMap() const {return 0x0;} |
201c7e13 | 85 | virtual void Print(const Option_t * opt = "") const = 0; |
afa8b37b | 86 | |
87 | static void SetDebug(Int_t dbg=1){fgDebug=dbg;} | |
88 | static Int_t GetDebug(){return fgDebug;} | |
dd2b6810 | 89 | virtual void Clear(Option_t * /*option*/ =""); |
afa8b37b | 90 | private: |
91 | static Int_t fgDebug;//! debug level for all the analysis package | |
92 | ||
93 | ClassDef(AliVAODParticle,1) // base class for AOD particles | |
94 | }; | |
95 | ||
96 | #endif |