Updated version of the V0 and cascade classes (Boris, Renaud)
[u/mrichter/AliRoot.git] / STEER / AliESDv0.h
1 #ifndef ALIESDV0_H
2 #define ALIESDV0_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 //-------------------------------------------------------------------------
10 //                          ESD V0 Vertex Class
11 //          This class is part of the Event Summary Data set of classes
12 //    Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch 
13 //-------------------------------------------------------------------------
14
15 #include <TObject.h>
16 #include <TPDGCode.h>
17
18 class AliExternalTrackParam;
19
20 class AliESDv0 : public TObject {
21 public:
22   AliESDv0();
23   AliESDv0(const AliExternalTrackParam &t1, Int_t i1,
24            const AliExternalTrackParam &t2, Int_t i2);
25
26   AliESDv0(const AliESDv0&);
27   virtual ~AliESDv0();
28   AliESDv0& operator=(const AliESDv0&);
29
30   Double_t ChangeMassHypothesis(Int_t code=kK0Short); 
31
32   Int_t    GetPdgCode() const {return fPdgCode;}
33   Double_t GetEffMass() const {return fEffMass;}
34   Double_t GetChi2V0() const {return fChi2V0;}
35   void     GetPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const;
36   void     GetNPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const;
37   void     GetPPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const;
38   void     GetXYZ(Double_t &x, Double_t &y, Double_t &z) const;
39   Double_t GetD(Double_t x0=0.,Double_t y0=0.,Double_t z0=0.) const;
40   Int_t    GetNindex() const {return fNidx;}
41   Int_t    GetPindex() const {return fPidx;}
42   void     SetESDindexes(Int_t ip, Int_t im){fNidx=ip;fPidx=im;}
43   void     SetDcaV0Daughters(Double_t rDcaV0Daughters=0.);
44   Double_t GetDcaV0Daughters() {return fDcaV0Daughters;}
45   Double_t GetV0CosineOfPointingAngle(Double_t&, Double_t&, Double_t&) const;
46
47 protected: 
48   Int_t    fPdgCode;        // reconstructed V0's type (PDG code)
49   Double_t fEffMass;        // reconstructed V0's effective mass
50   Double_t fDcaV0Daughters; // dca between V0's daughters
51   Double_t fChi2V0;         // V0's chi2 value
52   Double_t fPos[3];         // V0's position (global)
53   Double_t fPosCov[6];      // covariance matrix of the vertex position
54
55   Int_t    fNidx;           // index of the negative daughter
56   Double_t fNmom[3];        // momentum of the negative daughter (global)
57   Double_t fNmomCov[6];     // covariance matrix of the negative daughter mom.
58
59   Int_t    fPidx;           // index of the positive daughter
60   Double_t fPmom[3];        // momentum of the positive daughter (global)
61   Double_t fPmomCov[6];     // covariance matrix of the positive daughter mom.
62
63   ClassDef(AliESDv0,1)      // ESD V0 vertex
64 };
65
66 inline 
67 void AliESDv0::GetNPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const {
68 px=fNmom[0]; py=fNmom[1]; pz=fNmom[2];
69 }
70
71 inline 
72 void AliESDv0::GetPPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const {
73 px=fPmom[0]; py=fPmom[1]; pz=fPmom[2];
74 }
75
76 inline
77 void AliESDv0::SetDcaV0Daughters(Double_t rDcaV0Daughters){
78   fDcaV0Daughters=rDcaV0Daughters;
79 }
80
81 #endif