]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliESDHLTtrack.cxx
Efficient C++ initialization of data members
[u/mrichter/AliRoot.git] / STEER / AliESDHLTtrack.cxx
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"
25 #include "AliKalmanTrack.h"
26
27 ClassImp(AliESDHLTtrack)
28
29 AliESDHLTtrack::AliESDHLTtrack() :
30   TObject(),
31   fNHits(0),
32   fMCid(0),
33   fWeight(0),
34   fFromMainVertex(kFALSE),
35   fSector(0),
36   fQ(0),
37   fTanl(0),
38   fPsi(0),
39   fPt(0),
40   fPterr(0),
41   fPsierr(0),
42   fTanlerr(0),
43   fBinX(0),
44   fBinY(0),
45   fSizeX(0),
46   fSizeY(0),
47   fPID(0)
48 {
49   // Default constructor
50   fRowRange[0] = fRowRange[1] = 0;
51   fFirstPoint[0] = fFirstPoint[1] = fFirstPoint[2] = 0;
52   fLastPoint[0] = fLastPoint[1] = fLastPoint[2] = 0;
53 }
54
55 Double_t AliESDHLTtrack::GetP() const
56 {
57   // Returns total momentum.  
58   return TMath::Abs(GetPt())*sqrt(1. + GetTgl()*GetTgl());
59 }
60
61 Double_t AliESDHLTtrack::GetPseudoRapidity() const
62 {
63   // Calculates the pseudorapidity
64   return 0.5 * TMath::Log((GetP() + GetPz()) / (GetP() - GetPz()));
65 }
66
67 Bool_t AliESDHLTtrack::UpdateTrackParams(const AliKalmanTrack *t)
68 {
69   // Updates the track parameters
70
71   fNHits = t->GetNumberOfClusters();
72   fMCid = t->GetLabel();
73
74   Double_t alpha = t->GetAlpha();
75   fSector = (UShort_t)(alpha/(2*TMath::Pi()/18));
76   Double_t x,p[5]; t->GetExternalParameters(x,p);
77   if(p[4]<=0)
78     fQ = 1;
79   else
80     fQ = -1;
81   fPt = TMath::Abs(1./p[4]);
82   fTanl = p[3];
83   fPsi = alpha + TMath::ASin(p[2]);
84
85   fFirstPoint[0] = x*TMath::Cos(alpha) - p[0]*TMath::Sin(alpha);
86   fFirstPoint[1] = x*TMath::Sin(alpha) + p[0]*TMath::Cos(alpha);
87   fFirstPoint[2] = p[1];
88
89   return kTRUE;
90 }