]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliVParticle.h
Possibility to create trigger configuration from a custom file
[u/mrichter/AliRoot.git] / STEER / AliVParticle.h
1 #ifndef AliVParticle_H
2 #define AliVParticle_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //     base class for ESD and AOD particles
10 //     Author: Markus Oldenburg, CERN
11 //-------------------------------------------------------------------------
12
13 #include <Rtypes.h>
14 #include <TObject.h>
15
16 const Double_t kAlmost1=0.999;
17 const Double_t kAlmost0=1e-33;
18
19 const Double_t kB2C=0.299792458e-3;
20 const Double_t kAlmost0Field=1.e-13;
21
22 class AliVParticle: public TObject {
23
24 public:
25   AliVParticle() { }
26   virtual ~AliVParticle() { }
27   AliVParticle(const AliVParticle& vPart); 
28   AliVParticle& operator=(const AliVParticle& vPart);
29
30   // kinematics
31   virtual Double_t Px() const = 0;
32   virtual Double_t Py() const = 0;
33   virtual Double_t Pz() const = 0;
34   virtual Double_t Pt() const = 0;
35   virtual Double_t P() const = 0;
36   virtual Bool_t   PxPyPz(Double_t p[3]) const = 0;
37
38   virtual Double_t Xv() const = 0;
39   virtual Double_t Yv() const = 0;
40   virtual Double_t Zv() const = 0;
41   virtual Bool_t   XvYvZv(Double_t x[3]) const = 0;  
42
43   virtual Double_t OneOverPt() const = 0;
44   virtual Double_t Phi() const = 0;
45   virtual Double_t Theta() const = 0;
46
47
48   virtual Double_t E() const = 0;
49   virtual Double_t M() const = 0;
50   
51   virtual Double_t Eta() const = 0;
52   virtual Double_t Y() const = 0;
53   
54   virtual Short_t Charge() const = 0;
55
56   // PID
57   virtual const Double_t *PID() const = 0; // return PID object (to be defined, still)
58
59   // coordinate system conversions
60   Bool_t   Local2GlobalMomentum(Double_t p[3], Double_t alpha) const;
61   Bool_t   Local2GlobalPosition(Double_t r[3], Double_t alpha) const;
62   Bool_t   Global2LocalMomentum(Double_t p[3], Short_t charge, Double_t &alpha) const;
63   Bool_t   Global2LocalPosition(Double_t r[3], Double_t alpha) const;
64
65   ClassDef(AliVParticle,0)  // base class for particles
66 };
67
68 #endif