ROOT logo
#ifndef ALIESDKINK_H
#define ALIESDKINK_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

//-------------------------------------------------------------------------
//                          ESD V0 Vertex Class
//          This class is part of the Event Summary Data set of classes
//    Origin: Marian Ivanov marian.ivanov@cern.ch
//-------------------------------------------------------------------------

#include <TObject.h>
#include "AliExternalTrackParam.h"
#include <TPDGCode.h>

class AliESDtrack;

class AliESDkink : public TObject {
public:
  AliESDkink();             //constructor
  AliESDkink(const AliESDkink &source);             //constructor
  AliESDkink& operator=(const AliESDkink &source);
  virtual void Copy(TObject &obj) const;
  //
  void SetID(Short_t id){fID=id;}
  Short_t GetID(){return fID;}
  void SetMother(const AliExternalTrackParam & pmother); 
  void SetDaughter(const AliExternalTrackParam & pdaughter);
  Double_t GetTPCDensityFactor() const;
  Float_t GetQt() const;    
  //
  Double_t GetR() const {return fRr;}
  Double_t GetDistance() const {return fDist2;}
  UChar_t   GetTPCRow0() const {return fRow0;}
  Double_t GetAngle(Int_t i) const {return fAngle[i];}
  const Double_t *GetPosition() const   {return fXr;}
  const Double_t *GetMotherP()  const   {return fPm;}
  const Double_t *GetDaughterP()  const {return fPdr;}
  void SetTPCRow0(Int_t row0){fRow0 = row0;}
  Int_t GetLabel(Int_t i) const {return fLab[i];}
  void SetLabel(Int_t label, Int_t pos) {fLab[pos]=label;}
  Int_t GetIndex(Int_t i) const {return fIndex[i];}
  void SetIndex(Int_t index, Int_t pos){fIndex[pos]=index;}
  void SetStatus(Char_t status, Int_t pos){fStatus[pos]=status;}
  Char_t GetStatus(Int_t pos) const {return fStatus[pos];}
  void SetTPCncls(UChar_t ncls,Int_t pos) {fTPCncls[pos]=ncls;}
  const UChar_t *GetTPCncls() const {return fTPCncls;} 
  void  SetTPCDensity(Float_t dens, Int_t pos0,Int_t pos1){fTPCdensity[pos0][pos1]=dens;}
  Double_t GetTPCDensity(Int_t pos0,Int_t pos1) const {return fTPCdensity[pos0][pos1];}
  Double_t GetShapeFactor() const {return fShapeFactor;}
  void    SetShapeFactor(Float_t factor){fShapeFactor = factor;}
  void  SetMultiple(UChar_t mult,Int_t pos){fMultiple[pos]=mult;}
  const UChar_t * GetMultiple() const {return fMultiple;}
  //  
  const AliExternalTrackParam& RefParamDaughter() {return fParamDaughter;}
  const AliExternalTrackParam& RefParamMother()   {return fParamMother;}
 protected:

  AliExternalTrackParam fParamDaughter;
  AliExternalTrackParam fParamMother;

  Double32_t       fDist1;    //info about closest distance according closest MC - linear DCA
  Double32_t       fDist2;    //info about closest distance parabolic DCA
  //
  Double32_t       fPdr[3];    //momentum at vertex daughter  - according approx at DCA
  Double32_t       fXr[3];     //rec. position according helix
  //
  Double32_t       fPm[3];    //momentum at the vertex mother
  Double32_t       fRr;       // rec position of the vertex 

  Double32_t       fShapeFactor;       // tpc clusters shape factor
  Double32_t       fTPCdensity[2][2];  //[0,1,16]tpc cluster density before and after kink
  Double32_t       fAngle[3]; //[-2*pi,2*pi,16]three angles

  Int_t            fLab[2];   //MC label of the partecle
  Int_t            fIndex[2]; //reconstructed labels of the tracks

  Short_t          fID;       // kink ID

  UChar_t          fRow0;              // critical pad row number
  UChar_t          fMultiple[2];       //how many times the track's were used
  UChar_t          fTPCncls[2];     //number of clusters for mother particle

  Char_t           fStatus[12];       //status of kink - first 4 mother (ITS,TPC,TRD,TOF)  other daughter


  ClassDef(AliESDkink, 5)      // ESD V0 vertex
};

#endif


 AliESDkink.h:1
 AliESDkink.h:2
 AliESDkink.h:3
 AliESDkink.h:4
 AliESDkink.h:5
 AliESDkink.h:6
 AliESDkink.h:7
 AliESDkink.h:8
 AliESDkink.h:9
 AliESDkink.h:10
 AliESDkink.h:11
 AliESDkink.h:12
 AliESDkink.h:13
 AliESDkink.h:14
 AliESDkink.h:15
 AliESDkink.h:16
 AliESDkink.h:17
 AliESDkink.h:18
 AliESDkink.h:19
 AliESDkink.h:20
 AliESDkink.h:21
 AliESDkink.h:22
 AliESDkink.h:23
 AliESDkink.h:24
 AliESDkink.h:25
 AliESDkink.h:26
 AliESDkink.h:27
 AliESDkink.h:28
 AliESDkink.h:29
 AliESDkink.h:30
 AliESDkink.h:31
 AliESDkink.h:32
 AliESDkink.h:33
 AliESDkink.h:34
 AliESDkink.h:35
 AliESDkink.h:36
 AliESDkink.h:37
 AliESDkink.h:38
 AliESDkink.h:39
 AliESDkink.h:40
 AliESDkink.h:41
 AliESDkink.h:42
 AliESDkink.h:43
 AliESDkink.h:44
 AliESDkink.h:45
 AliESDkink.h:46
 AliESDkink.h:47
 AliESDkink.h:48
 AliESDkink.h:49
 AliESDkink.h:50
 AliESDkink.h:51
 AliESDkink.h:52
 AliESDkink.h:53
 AliESDkink.h:54
 AliESDkink.h:55
 AliESDkink.h:56
 AliESDkink.h:57
 AliESDkink.h:58
 AliESDkink.h:59
 AliESDkink.h:60
 AliESDkink.h:61
 AliESDkink.h:62
 AliESDkink.h:63
 AliESDkink.h:64
 AliESDkink.h:65
 AliESDkink.h:66
 AliESDkink.h:67
 AliESDkink.h:68
 AliESDkink.h:69
 AliESDkink.h:70
 AliESDkink.h:71
 AliESDkink.h:72
 AliESDkink.h:73
 AliESDkink.h:74
 AliESDkink.h:75
 AliESDkink.h:76
 AliESDkink.h:77
 AliESDkink.h:78
 AliESDkink.h:79
 AliESDkink.h:80
 AliESDkink.h:81
 AliESDkink.h:82
 AliESDkink.h:83
 AliESDkink.h:84
 AliESDkink.h:85
 AliESDkink.h:86
 AliESDkink.h:87
 AliESDkink.h:88
 AliESDkink.h:89
 AliESDkink.h:90
 AliESDkink.h:91
 AliESDkink.h:92
 AliESDkink.h:93
 AliESDkink.h:94
 AliESDkink.h:95