AliRoot Core  a565103 (a565103)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMUONTrackParam.h
Go to the documentation of this file.
1 #ifndef ALIMUONTRACKPARAM_H
2 #define ALIMUONTRACKPARAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 /*$Id$*/
7 // Revision of includes 07/05/2004
8 
16 
17 #include <TObject.h>
18 #include <TMatrixD.h>
19 
20 class AliMUONVCluster;
21 
22 class AliMUONTrackParam : public TObject
23 {
24  public:
25  AliMUONTrackParam(); // Constructor
26  virtual ~AliMUONTrackParam(); // Destructor
27 
28  AliMUONTrackParam(const AliMUONTrackParam& theMUONTrackParam);
29  AliMUONTrackParam& operator=(const AliMUONTrackParam& theMUONTrackParam);
30 
31  // Get and Set methods for data
33  Double_t GetZ() const {return fZ;}
35  void SetZ(Double_t z) {fZ = z;}
37  Double_t GetNonBendingCoor() const {return fParameters(0,0);}
39  void SetNonBendingCoor(Double_t nonBendingCoor) {fParameters(0,0) = nonBendingCoor;}
41  Double_t GetNonBendingSlope() const {return fParameters(1,0);}
43  void SetNonBendingSlope(Double_t nonBendingSlope) {fParameters(1,0) = nonBendingSlope;}
45  Double_t GetBendingCoor() const {return fParameters(2,0);}
47  void SetBendingCoor(Double_t bendingCoor) {fParameters(2,0) = bendingCoor;}
49  Double_t GetBendingSlope() const {return fParameters(3,0);}
51  void SetBendingSlope(Double_t bendingSlope) {fParameters(3,0) = bendingSlope;}
53  Double_t GetInverseBendingMomentum() const {return fParameters(4,0);}
55  void SetInverseBendingMomentum(Double_t inverseBendingMomentum) {fParameters(4,0) = inverseBendingMomentum;}
57  Double_t GetCharge() const {return TMath::Sign(1.,fParameters(4,0));}
59  void SetCharge(Double_t charge) {if (charge*fParameters(4,0) < 0.) fParameters(4,0) *= -1.;}
60 
62  const TMatrixD& GetParameters() const {return fParameters;}
64  void SetParameters(const TMatrixD& parameters) {fParameters = parameters;}
66  void AddParameters(const TMatrixD& parameters) {fParameters += parameters;}
67 
68  Double_t Px() const; // return px
69  Double_t Py() const; // return py
70  Double_t Pz() const; // return pz
71  Double_t P() const; // return total momentum
72 
74  Bool_t CovariancesExist() const {return (fCovariances) ? kTRUE : kFALSE;}
75 
76  const TMatrixD& GetCovariances() const;
77  void SetCovariances(const TMatrixD& covariances);
78  void SetCovariances(const Double_t matrix[5][5]);
79  void SetVariances(const Double_t matrix[5][5]);
80  void DeleteCovariances();
81 
82  const TMatrixD& GetPropagator() const;
83  void ResetPropagator();
84  void UpdatePropagator(const TMatrixD& propagator);
85 
86  const TMatrixD& GetExtrapParameters() const;
87  void SetExtrapParameters(const TMatrixD& parameters);
88 
89  const TMatrixD& GetExtrapCovariances() const;
90  void SetExtrapCovariances(const TMatrixD& covariances);
91 
92  const TMatrixD& GetSmoothParameters() const;
93  void SetSmoothParameters(const TMatrixD& parameters);
94 
95  const TMatrixD& GetSmoothCovariances() const;
96  void SetSmoothCovariances(const TMatrixD& covariances);
97 
100  void SetClusterPtr(AliMUONVCluster* cluster, Bool_t owner = kFALSE);
101 
103  Bool_t IsRemovable() const {return fRemovable;}
105  void SetRemovable(Bool_t removable) {fRemovable = removable;}
106 
108  Double_t GetTrackChi2() const {return fTrackChi2;}
110  void SetTrackChi2(Double_t chi2) {fTrackChi2 = chi2;}
112  Double_t GetLocalChi2() const {return fLocalChi2;}
114  void SetLocalChi2(Double_t chi2) {fLocalChi2 = chi2;}
115 
117  Bool_t IsSortable () const {return kTRUE;}
118  Int_t Compare(const TObject* trackParam) const;
119 
120  Bool_t CompatibleTrackParam(const AliMUONTrackParam &trackParam, Double_t sigma2Cut, Double_t &normChi2) const;
121 
122  virtual void Print(Option_t* opt="") const;
123 
124  virtual void Clear(Option_t* opt="");
125 
126  private:
127 
128  Double_t fZ;
129 
136  TMatrixD fParameters;
137 
144  mutable TMatrixD *fCovariances;
145 
146  mutable TMatrixD *fPropagator;
147  mutable TMatrixD *fExtrapParameters;
148  mutable TMatrixD *fExtrapCovariances;
149 
150  mutable TMatrixD *fSmoothParameters;
151  mutable TMatrixD *fSmoothCovariances;
152 
154  Bool_t fOwnCluster;
155 
156  Bool_t fRemovable;
157 
158  Double_t fTrackChi2;
159  Double_t fLocalChi2;
160 
161  ClassDef(AliMUONTrackParam, 4) // Track parameters in ALICE dimuon spectrometer
162 };
163 
164 #endif
void SetSmoothParameters(const TMatrixD &parameters)
Double_t GetLocalChi2() const
return the local chi2 of the associated cluster with respect to the track
TMatrixD * fPropagator
! Jacobian used to extrapolate the track parameters and covariances to the actual z position ...
TMatrixD * fSmoothParameters
! Track parameters obtained using smoother
const TMatrixD & GetSmoothCovariances() const
Double_t GetBendingCoor() const
return bending coordinate (cm)
void SetCharge(Double_t charge)
set the charge (assumed forward motion)
const TMatrixD & GetParameters() const
return track parameters
Bool_t CovariancesExist() const
return kTRUE if the covariance matrix exist, kFALSE if not
AliMUONVCluster * fClusterPtr
! Pointer to associated cluster if any
Double_t GetZ() const
return Z coordinate (cm)
Double_t fTrackChi2
! Chi2 of the track when the associated cluster was attached
Double_t fZ
Z coordinate (cm)
const TMatrixD & GetExtrapCovariances() const
Track parameters in ALICE dimuon spectrometer.
void SetNonBendingCoor(Double_t nonBendingCoor)
set non bending coordinate (cm)
void SetLocalChi2(Double_t chi2)
set the local chi2 of the associated cluster with respect to the track
void AddParameters(const TMatrixD &parameters)
add track parameters
Double_t fLocalChi2
! Local chi2 of the associated cluster with respect to the track
void SetExtrapParameters(const TMatrixD &parameters)
Double_t GetInverseBendingMomentum() const
return inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion) ...
Bool_t CompatibleTrackParam(const AliMUONTrackParam &trackParam, Double_t sigma2Cut, Double_t &normChi2) const
Int_t Compare(const TObject *trackParam) const
TMatrixD * fCovariances
Covariance matrix of track parameters.
void SetVariances(const Double_t matrix[5][5])
Double_t GetBendingSlope() const
return bending slope (cm ** -1)
void SetSmoothCovariances(const TMatrixD &covariances)
void SetBendingSlope(Double_t bendingSlope)
set bending slope (cm ** -1)
Double_t chi2
Definition: AnalyzeLaser.C:7
abstract base class for clusters
TMatrixD * fSmoothCovariances
! Covariance matrix obtained using smoother
Double_t Py() const
Double_t GetCharge() const
return the charge (assumed forward motion)
void SetClusterPtr(AliMUONVCluster *cluster, Bool_t owner=kFALSE)
void SetExtrapCovariances(const TMatrixD &covariances)
const TMatrixD & GetSmoothParameters() const
Bool_t IsRemovable() const
return kTRUE if the associated cluster can be removed from the track it belongs to ...
TMatrixD * fExtrapParameters
! Track parameters extrapolated to the actual z position (not filtered by Kalman) ...
Bool_t fOwnCluster
! Ownership of the associated cluster
Bool_t IsSortable() const
necessary for sorting TClonesArray of AliMUONTrackParam
TMatrixD * fExtrapCovariances
! Covariance matrix extrapolated to the actual z position (not filtered by Kalman) ...
virtual void Clear(Option_t *opt="")
Double_t P() const
void SetNonBendingSlope(Double_t nonBendingSlope)
set non bending slope (cm ** -1)
TMatrixD fParameters
Track parameters.
Double_t GetTrackChi2() const
return the chi2 of the track when the associated cluster was attached
const TMatrixD & GetExtrapParameters() const
virtual void Print(Option_t *opt="") const
Double_t Px() const
Bool_t fRemovable
! kTRUE if the associated cluster can be removed from the track it belongs to
void SetParameters(const TMatrixD &parameters)
set track parameters
void SetInverseBendingMomentum(Double_t inverseBendingMomentum)
set inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion) ...
void SetBendingCoor(Double_t bendingCoor)
set bending coordinate (cm)
Double_t GetNonBendingCoor() const
return non bending coordinate (cm)
void SetRemovable(Bool_t removable)
set the flag telling whether the associated cluster can be removed from the track it belongs to or no...
AliMUONVCluster * GetClusterPtr() const
get pointeur to associated cluster
void SetTrackChi2(Double_t chi2)
set the chi2 of the track when the associated cluster was attached
Double_t Pz() const
void UpdatePropagator(const TMatrixD &propagator)
void SetCovariances(const TMatrixD &covariances)
AliMUONTrackParam & operator=(const AliMUONTrackParam &theMUONTrackParam)
void SetZ(Double_t z)
set Z coordinate (cm)
const TMatrixD & GetCovariances() const
const TMatrixD & GetPropagator() const
Double_t GetNonBendingSlope() const
return non bending slope (cm ** -1)