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