New base class AliPIDResponse
[u/mrichter/AliRoot.git] / STEER / AliVTrack.h
1 #ifndef AliVTrack_H
2 #define AliVTrack_H
3 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 //-------------------------------------------------------------------------
8 //     base class for ESD and AOD tracks
9 //     Author: A. Dainese
10 //-------------------------------------------------------------------------
11
12 #include <TBits.h>
13
14 #include "AliVParticle.h"
15
16 class AliVVertex;
17 class AliExternalTrackParam;
18
19 class AliVTrack: public AliVParticle {
20
21 public:
22   AliVTrack() { }
23   virtual ~AliVTrack() { }
24   AliVTrack(const AliVTrack& vTrack); 
25   AliVTrack& operator=(const AliVTrack& vTrack);
26
27   virtual Int_t    GetID() const = 0;
28   virtual UChar_t  GetITSClusterMap() const = 0;
29   virtual Float_t  GetTPCClusterInfo(Int_t /*nNeighbours*/, Int_t /*type*/, Int_t /*row0*/=0, Int_t /*row1*/=159) const {return 0.;}
30   virtual UShort_t GetTPCNcls() const { return 0;}
31   virtual UShort_t GetTPCNclsF() const { return 0;}
32   
33   //pid info
34   virtual Double_t  GetITSsignal()       const {return 0.;}
35   virtual Double_t  GetTPCsignal()       const {return 0.;}
36   virtual UShort_t  GetTPCsignalN()      const {return 0 ;}
37   virtual Double_t  GetTPCmomentum()     const {return 0.;}
38   virtual Double_t  GetTOFsignal()       const {return 0.;}
39   
40   virtual ULong_t  GetStatus() const = 0;
41   virtual Bool_t   GetXYZ(Double_t *p) const = 0;
42   virtual Double_t GetBz() const;
43   virtual void     GetBxByBz(Double_t b[3]) const;
44   virtual Bool_t   GetCovarianceXYZPxPyPz(Double_t cv[21]) const = 0;
45   virtual Bool_t   PropagateToDCA(const AliVVertex *vtx,Double_t b,Double_t maxd,Double_t dz[2],Double_t covar[3]) = 0;
46   virtual const    AliExternalTrackParam * GetOuterParam() const { return NULL; }
47   virtual Int_t    GetNcls(Int_t /*idet*/) const { return 0; }
48   virtual Bool_t   GetPxPyPz(Double_t */*p*/) const { return kFALSE; }
49   virtual void     SetID(Short_t /*id*/) {;}
50
51
52   ClassDef(AliVTrack,1)  // base class for tracks
53 };
54
55 #endif