AliAODParticle -> AliVAODParticle; AliAODStdParticle -> AliAODParticle
[u/mrichter/AliRoot.git] / ANALYSIS / AliVAODParticle.h
CommitLineData
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
20class AliTrackPoints;
21class AliClusterMap;
22
23class AliVAODParticle : public TObject {
24public:
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();};
41
42 // PID
43 virtual Double_t Charge() const = 0;
44 virtual Double_t GetProbability(Int_t pdg) const = 0;
45 virtual Int_t GetMostProbable() const = 0;
46
47 virtual Int_t GetPdgCode() const = 0;//We need to assume some PID (f.e. energy calculation)
48 //sotimes one track can apear in analysis twise (e.g. ones as pion ones as kaon)
49
50 // vertices
51 virtual TVector3 ProductionVertex() const = 0;
52 virtual Double_t Vx() const {return ProductionVertex().X();};
53 virtual Double_t Vy() const {return ProductionVertex().Y();};
54 virtual Double_t Vz() const {return ProductionVertex().Z();};
55 virtual AliVAODParticle* Mother() const {return NULL;};
56 virtual Bool_t HasDecayVertex() const {return kFALSE;};
57 virtual TVector3 DecayVertex() const {return TVector3();};
58 virtual Int_t NumberOfDaughters() const {return 0;};
59 virtual AliVAODParticle* Daughter(Int_t /*index*/) const {return NULL;};
60
61
62 // type information
63 virtual Bool_t IsSimulated() {return kFALSE;};
64 virtual Bool_t IsTrack() {return kFALSE;};
65 virtual Bool_t IsCluster() {return kFALSE;};
66
67 //HBT specific
68 virtual AliTrackPoints* GetTrackPoints() const {return 0x0;}
69 virtual AliClusterMap* GetClusterMap() const {return 0x0;}
70 virtual void Print() const = 0;
71
72 static void SetDebug(Int_t dbg=1){fgDebug=dbg;}
73 static Int_t GetDebug(){return fgDebug;}
74
75private:
76 static Int_t fgDebug;//! debug level for all the analysis package
77
78 ClassDef(AliVAODParticle,1) // base class for AOD particles
79};
80
81#endif