]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/AliVAODParticle.h
Merging THbtp and HBTP in one library. Comiplation on Windows/Cygwin
[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
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 18class AliTrackPoints;
19class AliClusterMap;
20
21class AliVAODParticle : public TObject {
22public:
065e0e69 23 AliVAODParticle() : TObject(){}
dd2b6810 24 virtual ~AliVAODParticle(){}
25
26 AliVAODParticle(const AliVAODParticle& in);
62411bd0 27 AliVAODParticle& operator=(const AliVAODParticle& in);
dd2b6810 28
afa8b37b 29 // kinematics
065e0e69 30 virtual Double_t Mass() const = 0;
31 virtual Double_t E() const = 0;
32 virtual Double_t P() const = 0;
33 virtual Double_t Pt() const = 0;
34 virtual Double_t Px() const = 0;
35 virtual Double_t Py() const = 0;
36 virtual Double_t Pz() const = 0;
37 virtual Double_t Phi() const = 0;
38 virtual Double_t Theta() const = 0;
39 virtual Double_t Eta() const = 0;
40 virtual Double_t Y() const = 0;
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
dd2b6810 46 virtual void SetPdgCode(Int_t pdg, Float_t prob = 1.0) = 0;
afa8b37b 47 virtual Double_t GetProbability(Int_t pdg) const = 0;
dd2b6810 48 virtual Double_t GetPidProb() const = 0;//returns probability of being particle type defined by GetPdgCode()
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)
dd2b6810 52 //sometimes 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
dd2b6810 56
57 virtual Double_t Charge() const = 0;
afa8b37b 58
59 // vertices
065e0e69 60 virtual Double_t Vx() const = 0;
61 virtual Double_t Vy() const = 0;
62 virtual Double_t Vz() const = 0;
78d7c6d3 63 virtual Double_t T() const {return 0.0;};
64
afa8b37b 65 virtual AliVAODParticle* Mother() const {return NULL;};
66 virtual Bool_t HasDecayVertex() const {return kFALSE;};
67 virtual TVector3 DecayVertex() const {return TVector3();};
68 virtual Int_t NumberOfDaughters() const {return 0;};
78d7c6d3 69 virtual AliVAODParticle* Daughter(Int_t /*index*/) const {return NULL;};
afa8b37b 70
78d7c6d3 71 virtual Int_t GetUID() const { return 0;}//returns unique ID of this track
72 //(may happen than the same track is selected
73 //twise, f.g. as a pion and as a kaon than both have the same UID)
dd2b6810 74 virtual void SetUID(Int_t /*id*/){/* *this */}
afa8b37b 75 // type information
0206ddfb 76 virtual Bool_t IsSimulated() const {return kFALSE;};
77 virtual Bool_t IsTrack() const {return kFALSE;};
78 virtual Bool_t IsCluster() const {return kFALSE;};
afa8b37b 79
80 //HBT specific
78d7c6d3 81 virtual AliTrackPoints* GetTPCTrackPoints() const {return 0x0;}
82 virtual AliTrackPoints* GetITSTrackPoints() const {return 0x0;}
afa8b37b 83 virtual AliClusterMap* GetClusterMap() const {return 0x0;}
201c7e13 84 virtual void Print(const Option_t * opt = "") const = 0;
afa8b37b 85
86 static void SetDebug(Int_t dbg=1){fgDebug=dbg;}
87 static Int_t GetDebug(){return fgDebug;}
dd2b6810 88 virtual void Clear(Option_t * /*option*/ ="");
afa8b37b 89private:
90 static Int_t fgDebug;//! debug level for all the analysis package
91
92 ClassDef(AliVAODParticle,1) // base class for AOD particles
93};
94
95#endif