f0c5b87d8e6d7a25a8db3d4dc2577d63302a08bc
[u/mrichter/AliRoot.git] / STEER / AliESDkink.h
1 #ifndef ALIESDKINK_H
2 #define ALIESDKINK_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: Marian Ivanov marian.ivanov@cern.ch
13 //-------------------------------------------------------------------------
14
15 #include <TObject.h>
16 #include "AliExternalTrackParam.h"
17 #include <TPDGCode.h>
18
19 class AliESDtrack;
20
21 class AliESDkink : public TObject {
22 public:
23   AliESDkink();             //constructor
24   //
25   void SetID(Int_t id){fID=id;}
26   Int_t GetID(){return fID;}
27   void SetMother(const AliExternalTrackParam & pmother); 
28   void SetDaughter(const AliExternalTrackParam & pdaughter);
29   Float_t GetTPCDensityFactor() const;
30   Float_t GetQt() const;    
31   //
32   Float_t GetR() const {return fRr;}
33   Float_t GetDistance() const {return fDist2;}
34   Int_t   GetTPCRow0() const {return fRow0;}
35   Float_t GetAngle(Int_t i) const {return fAngle[i];}
36   const Double_t *GetPosition() const   {return fXr;}
37   const Double_t *GetMotherP()  const   {return fPm;}
38   const Double_t *GetDaughterP()  const {return fPdr;}
39   void SetTPCRow0(Int_t row0){fRow0 = row0;}
40   Int_t GetLabel(Int_t i) const {return fLab[i];}
41   void SetLabel(Int_t label, Int_t pos) {fLab[pos]=label;}
42   Int_t GetIndex(Int_t i) const {return fIndex[i];}
43   void SetIndex(Int_t index, Int_t pos){fIndex[pos]=index;}
44   void SetStatus(Int_t status, Int_t pos){fStatus[pos]=status;}
45   Int_t GetStatus(Int_t pos) const {return fStatus[pos];}
46   void SetTPCncls(Int_t ncls,Int_t pos) {fTPCncls[pos]=ncls;}
47   const Int_t *GetTPCncls() const {return fTPCncls;} 
48   void  SetTPCDensity(Float_t dens, Int_t pos0,Int_t pos1){fTPCdensity[pos0][pos1]=dens;}
49   Float_t GetTPCDensity(Int_t pos0,Int_t pos1) const {return fTPCdensity[pos0][pos1];}
50   void    SetTPCDensity2(Float_t dens, Int_t pos0,Int_t pos1){fTPCdensity[pos0][pos1]=dens;}
51   Float_t GetTPCDensity2(Int_t pos0,Int_t pos1) const {return fTPCdensity[pos0][pos1];}
52   Float_t GetShapeFactor() const {return fShapeFactor;}
53   void    SetShapeFactor(Float_t factor){fShapeFactor = factor;}
54   void  SetMultiple(Int_t mult,Int_t pos){fMultiple[pos]=mult;}
55   const Int_t * GetMultiple() const {return fMultiple;}
56   //  
57   const AliExternalTrackParam& RefParamDaughter() {return fParamDaughter;}
58   const AliExternalTrackParam& RefParamMother()   {return fParamMother;}
59  protected:
60   Int_t          fID;       // kink ID
61   AliExternalTrackParam fParamDaughter;
62   AliExternalTrackParam fParamMother;
63   Double32_t       fDist1;    //info about closest distance according closest MC - linear DCA
64   Double32_t       fDist2;    //info about closest distance parabolic DCA
65   //
66   Double32_t       fPdr[3];    //momentum at vertex daughter  - according approx at DCA
67   Double32_t       fXr[3];     //rec. position according helix
68   //
69   Double32_t       fPm[3];    //momentum at the vertex mother
70   Double32_t       fAngle[3]; //three angles
71   Double32_t       fRr;       // rec position of the vertex 
72   Int_t          fLab[2];   //MC label of the partecle
73   Int_t          fIndex[2]; //reconstructed labels of the tracks
74   Char_t         fStatus[12];       //status of kink - first 4 mother (ITS,TPC,TRD,TOF)  other daughter
75   Float_t        fTPCdensity[2][2];  //tpc cluster density before and after kink
76   Float_t        fTPCdensity2[2][2];  //tpc cluster density before and after kink - after second iteration
77   Float_t        fShapeFactor;       // tpc clusters shape factor
78   Int_t          fRow0;              // critical pad row number
79   Int_t          fMultiple[2];       //how many times the track's were used
80   Int_t          fTPCncls[2];     //number of clusters for mother particle
81   ClassDef(AliESDkink,3)      // ESD V0 vertex
82 };
83
84 #endif
85
86