Preparation to use ITS tracking in HLT (C.Cheshkov)
[u/mrichter/AliRoot.git] / STEER / AliESDHLTtrack.cxx
CommitLineData
482070f2 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16//-----------------------------------------------------------------
17// Implementation of the ESD HLT track class
18// ESD = Event Summary Data
19// HLT = High Level Trigger
20// This is the class to deal with during the phisical analysis of data
21//-----------------------------------------------------------------
22
23#include "TMath.h"
24#include "AliESDHLTtrack.h"
e819460c 25#include "AliKalmanTrack.h"
482070f2 26
27ClassImp(AliESDHLTtrack)
28
29AliESDHLTtrack::AliESDHLTtrack() : TObject()
30{
31 fNHits = 0;
32 fMCid = 0;
33 fWeight = 0;
34 fFromMainVertex = kFALSE;
35 fRowRange[0] = fRowRange[1] = 0;
36 fSector = 0;
37 fFirstPoint[0] = fFirstPoint[1] = fFirstPoint[2] = 0;
38 fLastPoint[0] = fLastPoint[1] = fLastPoint[2] = 0;
39 fQ = 0;
40 fTanl = 0;
41 fPsi = 0;
42 fPt = 0;
43 fPterr = 0;
44 fPsierr = 0;
45 fTanlerr = 0;
46 fBinX = 0;
47 fBinY = 0;
48 fSizeX = 0;
49 fSizeY = 0;
8bbc564d 50 fPID = 0;
482070f2 51}
52
53Double_t AliESDHLTtrack::GetP() const
54{
55 // Returns total momentum.
56 return TMath::Abs(GetPt())*sqrt(1. + GetTgl()*GetTgl());
57}
58
59Double_t AliESDHLTtrack::GetPseudoRapidity() const
60{
61 return 0.5 * TMath::Log((GetP() + GetPz()) / (GetP() - GetPz()));
62}
e819460c 63
64Bool_t AliESDHLTtrack::UpdateTrackParams(const AliKalmanTrack *t)
65{
66 // Updates the track parameters
67
68 fNHits = t->GetNumberOfClusters();
69 fMCid = t->GetLabel();
70
71 Double_t alpha = t->GetAlpha();
72 fSector = (UShort_t)(alpha/(2*TMath::Pi()/18));
73 Double_t x,p[5]; t->GetExternalParameters(x,p);
74 if(p[4]<=0)
75 fQ = 1;
76 else
77 fQ = -1;
78 fPt = TMath::Abs(1./p[4]);
79 fTanl = p[3];
80 fPsi = alpha + TMath::ASin(p[2]);
81
82 fFirstPoint[0] = x*TMath::Cos(alpha) - p[0]*TMath::Sin(alpha);
83 fFirstPoint[1] = x*TMath::Sin(alpha) + p[0]*TMath::Cos(alpha);
84 fFirstPoint[2] = p[1];
85
86 return kTRUE;
87}