AliRoot Core  ee782a0 (ee782a0)
AliMFTTrackParam.h
Go to the documentation of this file.
1 #ifndef AliMFTTrackParam_H
2 #define AliMFTTrackParam_H
3 
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice */
6 
15 
16 #include "TObject.h"
17 #include <TMatrixD.h>
18 #include <TMath.h>
19 
20 //=============================================================================================
21 
22 class AliMFTTrackParam : public TObject {
23 
24 public:
25 
27  virtual ~AliMFTTrackParam();
28  AliMFTTrackParam(const AliMFTTrackParam& theMFTTrackParam);
29 
31  void SetClusterPos(Double_t x, Double_t y, Double_t z) {fX = x;fY = y;fZ = z;}
33  Double_t GetClusterX() const {return fX;}
35  Double_t GetClusterY() const {return fY;}
36 
38  Double_t GetZ() const {return fZ;}
40  void SetZ(Double_t z) {fZ = z;}
42  Double_t GetX() const {return fParameters(0,0);}
44  void SetX(Double_t val) {fParameters(0,0) = val;}
46  Double_t GetY() const {return fParameters(1,0);}
48  void SetY(Double_t val) {fParameters(1,0) = val;}
50  Double_t GetSlopeX() const {return fParameters(2,0);}
52  void SetSlopeX(Double_t val) {fParameters(2,0) = val;}
54  Double_t GetSlopeY() const {return fParameters(3,0);}
56  void SetSlopeY(Double_t val) {fParameters(3,0) = val;}
58  Double_t GetInverseTransverseMomentum() const {return fParameters(4,0);}
60  void SetInverseTransverseMomentum(Double_t val) {fParameters(4,0) = val;}
62  Double_t GetCharge() const {return TMath::Sign(1.,fParameters(4,0));}
64  void SetCharge(Double_t charge) {if (charge*fParameters(4,0) < 0.) fParameters(4,0) *= -1.;}
66  Double_t GetTheta() const {return TMath::ATan(TMath::Sqrt(fParameters(2,0)*fParameters(2,0) + fParameters(3,0)*fParameters(3,0)));}
68  Double_t GetPhi() const {return TMath::ATan2(fParameters(3,0),fParameters(2,0)) ;}
69 
70 
72  const TMatrixD& GetParameters() const {return fParameters;}
74  void SetParameters(const TMatrixD& parameters) {fParameters = parameters;}
76  void AddParameters(const TMatrixD& parameters) {fParameters += parameters;}
78  Bool_t CovariancesExist() const {return (fCovariances) ? kTRUE : kFALSE;}
79 
81  Double_t GetTrackChi2() const {return fTrackChi2;}
83  void SetTrackChi2(Double_t chi2) {fTrackChi2 = chi2;}
85  Double_t GetLocalChi2() const {return fLocalChi2;}
87  void SetLocalChi2(Double_t chi2) {fLocalChi2 = chi2;}
88 
89  const TMatrixD& GetCovariances() const;
90  void SetCovariances(const TMatrixD& covariances);
91  void SetCovariances(const Double_t matrix[5][5]);
92  void SetVariances(const Double_t matrix[5][5]);
93  void DeleteCovariances();
94 
95 
96  const TMatrixD& GetPropagator() const;
97  void ResetPropagator();
98  void UpdatePropagator(const TMatrixD& propagator);
99 
100  virtual void Print(Option_t* opt="") const;
101 
103  Double_t P() const;
104 
105 
106 protected:
111 
114 
122 
123  Double_t fX;
124  Double_t fY;
125  Double_t fZ;
126 
127  Double_t fTrackChi2;
128  Double_t fLocalChi2;
129 
131  ClassDef(AliMFTTrackParam,1);
133 };
134 
135 //=============================================================================================
136 
137 #endif
Double_t GetCharge() const
return the charge (assumed forward motion)
Double_t GetSlopeY() const
return Y slope
const TMatrixD & GetParameters() const
return track parameters
Bool_t CovariancesExist() const
return kTRUE if the covariance matrix exist, kFALSE if not
Double_t GetPhi() const
return Azimuthal angle phi
void SetZ(Double_t z)
set Z coordinate (cm)
Double_t GetClusterX() const
return cluster X coordinate (cm)
Double_t fY
Cluster Y coordinate (cm)
virtual ~AliMFTTrackParam()
TMatrixD * fSmoothParameters
! Track parameters obtained using smoother
void SetLocalChi2(Double_t chi2)
set the local chi2 of the associated cluster with respect to the track
const TMatrixD & GetCovariances() const
Double_t fZ
Cluster Z coordinate (cm)
TMatrixD * fExtrapParameters
! Track parameters extrapolated to the actual z position (not filtered by Kalman) ...
void SetInverseTransverseMomentum(Double_t val)
set Inverse Momentum
void AddParameters(const TMatrixD &parameters)
add track parameters
void SetCovariances(const TMatrixD &covariances)
TMatrixD * fCovariances
Covariance matrix of track parameters.
void SetX(Double_t val)
set X coordinate (cm)
Double_t GetInverseTransverseMomentum() const
return Inverse Momentum
Double_t fTrackChi2
Chi2 of the track when the associated cluster was attached.
Double_t GetTheta() const
return Polar angle theta
void SetTrackChi2(Double_t chi2)
set the chi2 of the track when the associated cluster was attached
Double_t GetTrackChi2() const
return the chi2 of the track when the associated cluster was attached
const TMatrixD & GetPropagator() const
Double_t chi2
Definition: AnalyzeLaser.C:7
virtual void Print(Option_t *opt="") const
Double_t fX
Cluster X coordinate (cm)
Double_t GetSlopeX() const
return X slope
Double_t GetClusterY() const
return cluster Y coordinate (cm)
Double_t GetZ() const
return Z coordinate (cm)
void SetSlopeY(Double_t val)
set Y slope
Double_t P() const
return total momentum
Double_t fLocalChi2
Local chi2 of the associated cluster with respect to the track.
void SetY(Double_t val)
set Y coordinate (cm)
void UpdatePropagator(const TMatrixD &propagator)
TMatrixD * fPropagator
Jacobian used to extrapolate the track parameters and covariances to the actual z position...
void SetCharge(Double_t charge)
set the charge (assumed forward motion)
Double_t GetX() const
return X coordinate (cm)
Class holding the parameter of a MFT Standalone Track.
Double_t GetY() const
return Y coordinate (cm)
TMatrixD fParameters
Track parameters.
void SetVariances(const Double_t matrix[5][5])
TMatrixD * fExtrapCovariances
! Covariance matrix extrapolated to the actual z position (not filtered by Kalman) ...
TMatrixD * fSmoothCovariances
! Covariance matrix obtained using smoother
void SetParameters(const TMatrixD &parameters)
set track parameters
Double_t GetLocalChi2() const
return the local chi2 of the associated cluster with respect to the track
void SetSlopeX(Double_t val)
set X slope
class TMatrixT< Double_t > TMatrixD
void SetClusterPos(Double_t x, Double_t y, Double_t z)
set Cluster coordinates (cm)