]>
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 | ||
8 | ///////////////////////////////////////////////////////////// | |
9 | // | |
10 | // base class for AOD particles | |
11 | // | |
12 | ///////////////////////////////////////////////////////////// | |
13 | ||
14 | #include <TObject.h> | |
15 | #include <TLorentzVector.h> | |
16 | #include <TVector3.h> | |
17 | ||
18 | #include "AliAnalysis.h" | |
19 | ||
20 | class AliTrackPoints; | |
21 | class AliClusterMap; | |
22 | ||
23 | class AliVAODParticle : public TObject { | |
24 | public: | |
25 | AliVAODParticle(){} | |
26 | virtual ~AliVAODParticle(){} | |
27 | // kinematics | |
28 | virtual TLorentzVector FourMomentum() const = 0; | |
29 | virtual TVector3 Momentum() const {return FourMomentum().Vect();}; | |
30 | virtual Double_t Mass() const {return FourMomentum().M();}; | |
31 | virtual Double_t E() const {return FourMomentum().E();}; | |
32 | virtual Double_t P() const {return FourMomentum().P();}; | |
33 | virtual Double_t Pt() const {return FourMomentum().Pt();}; | |
34 | virtual Double_t Px() const {return FourMomentum().Px();}; | |
35 | virtual Double_t Py() const {return FourMomentum().Py();}; | |
36 | virtual Double_t Pz() const {return FourMomentum().Pz();}; | |
37 | virtual Double_t Phi() const {return FourMomentum().Phi();}; | |
38 | virtual Double_t Theta() const {return FourMomentum().Theta();}; | |
39 | virtual Double_t Eta() const {return FourMomentum().Eta();}; | |
40 | virtual Double_t Y() const {return FourMomentum().Rapidity();}; | |
78d7c6d3 | 41 | |
42 | virtual void SetMomentum(Double_t/*px*/,Double_t/*py*/,Double_t/*pz*/,Double_t/*E*/) = 0; | |
43 | virtual void SetProductionVertex(Double_t /*vx*/, Double_t /*vy*/, Double_t /*vz*/, Double_t /*t*/) = 0; | |
afa8b37b | 44 | |
45 | // PID | |
46 | virtual Double_t Charge() const = 0; | |
47 | virtual Double_t GetProbability(Int_t pdg) const = 0; | |
78d7c6d3 | 48 | virtual Double_t GetPidProb() const = 0; |
afa8b37b | 49 | virtual Int_t GetMostProbable() const = 0; |
50 | ||
51 | virtual Int_t GetPdgCode() const = 0;//We need to assume some PID (f.e. energy calculation) | |
52 | //sotimes one track can apear in analysis twise (e.g. ones as pion ones as kaon) | |
78d7c6d3 | 53 | virtual Int_t GetNumberOfPids() const = 0; //returns number of non zero PID probabilities |
54 | virtual Int_t GetNthPid (Int_t idx) const = 0;//These two methods are made to be able to | |
55 | virtual Float_t GetNthPidProb (Int_t idx) const = 0;//copy pid information i.e. in copy ctors | |
afa8b37b | 56 | |
57 | // vertices | |
58 | virtual TVector3 ProductionVertex() const = 0; | |
59 | virtual Double_t Vx() const {return ProductionVertex().X();}; | |
60 | virtual Double_t Vy() const {return ProductionVertex().Y();}; | |
61 | virtual Double_t Vz() const {return ProductionVertex().Z();}; | |
78d7c6d3 | 62 | virtual Double_t T() const {return 0.0;}; |
63 | ||
afa8b37b | 64 | virtual AliVAODParticle* Mother() const {return NULL;}; |
65 | virtual Bool_t HasDecayVertex() const {return kFALSE;}; | |
66 | virtual TVector3 DecayVertex() const {return TVector3();}; | |
67 | virtual Int_t NumberOfDaughters() const {return 0;}; | |
78d7c6d3 | 68 | virtual AliVAODParticle* Daughter(Int_t /*index*/) const {return NULL;}; |
afa8b37b | 69 | |
78d7c6d3 | 70 | virtual Int_t GetUID() const { return 0;}//returns unique ID of this track |
71 | //(may happen than the same track is selected | |
72 | //twise, f.g. as a pion and as a kaon than both have the same UID) | |
73 | ||
afa8b37b | 74 | // type information |
75 | virtual Bool_t IsSimulated() {return kFALSE;}; | |
76 | virtual Bool_t IsTrack() {return kFALSE;}; | |
77 | virtual Bool_t IsCluster() {return kFALSE;}; | |
78 | ||
79 | //HBT specific | |
78d7c6d3 | 80 | virtual AliTrackPoints* GetTPCTrackPoints() const {return 0x0;} |
81 | virtual AliTrackPoints* GetITSTrackPoints() const {return 0x0;} | |
afa8b37b | 82 | virtual AliClusterMap* GetClusterMap() const {return 0x0;} |
83 | virtual void Print() const = 0; | |
84 | ||
85 | static void SetDebug(Int_t dbg=1){fgDebug=dbg;} | |
86 | static Int_t GetDebug(){return fgDebug;} | |
87 | ||
88 | private: | |
89 | static Int_t fgDebug;//! debug level for all the analysis package | |
90 | ||
91 | ClassDef(AliVAODParticle,1) // base class for AOD particles | |
92 | }; | |
93 | ||
94 | #endif |