31 #include <Riostream.h>
34 using std::setprecision;
48 fExtrapParameters(0x0),
49 fExtrapCovariances(0x0),
50 fSmoothParameters(0x0),
51 fSmoothCovariances(0x0),
64 : TObject(theMUONTrackParam),
65 fZ(theMUONTrackParam.fZ),
66 fParameters(theMUONTrackParam.fParameters),
69 fExtrapParameters(0x0),
70 fExtrapCovariances(0x0),
71 fSmoothParameters(0x0),
72 fSmoothCovariances(0x0),
74 fOwnCluster(theMUONTrackParam.fOwnCluster),
75 fRemovable(theMUONTrackParam.fRemovable),
76 fTrackChi2(theMUONTrackParam.fTrackChi2),
77 fLocalChi2(theMUONTrackParam.fLocalChi2)
95 if (
this == &theMUONTrackParam)
99 TObject::operator=(theMUONTrackParam);
101 fZ = theMUONTrackParam.
fZ;
241 }
else return FLT_MAX;
277 for (Int_t i=0; i<5; i++) (*
fCovariances)(i,i) = matrix[i][i];
423 AliError(
"Covariance matrix must exist for at least one set of parameters");
427 Double_t maxChi2 = 5. * sigma2Cut * sigma2Cut;
430 if (
fZ != trackParam.
fZ)
431 AliWarning(Form(
"Parameters are given at different Z position (%e : %e): results are meaningless",
fZ, trackParam.
fZ));
437 TMatrixD weight(5,5);
442 if (weight.Determinant() == 0) {
443 AliError(
"Cannot compute the compatibility chi2");
449 TMatrixD tmp(deltaParam, TMatrixD::kTransposeMult, weight);
450 TMatrixD mChi2(tmp, TMatrixD::kMult, deltaParam);
456 if (chi2 > maxChi2)
return kFALSE;
469 if ( sopt.Contains(
"FULL") ) {
470 cout <<
"<AliMUONTrackParam> Bending P=" << setw(5) << setprecision(3) << 1./
fParameters(4,0) <<
471 ", NonBendSlope=" << setw(5) << setprecision(3) <<
fParameters(1,0)*180./TMath::Pi() <<
472 ", BendSlope=" << setw(5) << setprecision(3) <<
fParameters(3,0)*180./TMath::Pi() <<
473 ", (x,y,z)_IP=(" << setw(5) << setprecision(3) <<
fParameters(0,0) <<
474 "," << setw(5) << setprecision(3) <<
fParameters(2,0) <<
475 "," << setw(5) << setprecision(3) <<
fZ <<
476 ") cm, (px,py,pz)=(" << setw(5) << setprecision(3) <<
Px() <<
477 "," << setw(5) << setprecision(3) <<
Py() <<
478 "," << setw(5) << setprecision(3) <<
Pz() <<
") GeV/c"
482 cout <<
"<AliMUONTrackParam>" << endl;
void SetSmoothParameters(const TMatrixD ¶meters)
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
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.
Double_t fLocalChi2
! Local chi2 of the associated cluster with respect to the track
void SetExtrapParameters(const TMatrixD ¶meters)
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])
virtual ~AliMUONTrackParam()
void SetSmoothCovariances(const TMatrixD &covariances)
abstract base class for clusters
TMatrixD * fSmoothCovariances
! Covariance matrix obtained using smoother
void SetClusterPtr(AliMUONVCluster *cluster, Bool_t owner=kFALSE)
void SetExtrapCovariances(const TMatrixD &covariances)
const TMatrixD & GetSmoothParameters() const
TMatrixD * fExtrapParameters
! Track parameters extrapolated to the actual z position (not filtered by Kalman) ...
Bool_t fOwnCluster
! Ownership of the associated cluster
TMatrixD * fExtrapCovariances
! Covariance matrix extrapolated to the actual z position (not filtered by Kalman) ...
virtual void Clear(Option_t *opt="")
TMatrixD fParameters
Track parameters.
const TMatrixD & GetExtrapParameters() const
virtual void Print(Option_t *opt="") const
Bool_t fRemovable
! kTRUE if the associated cluster can be removed from the track it belongs to
void UpdatePropagator(const TMatrixD &propagator)
void SetCovariances(const TMatrixD &covariances)
AliMUONTrackParam & operator=(const AliMUONTrackParam &theMUONTrackParam)
const TMatrixD & GetCovariances() const
const TMatrixD & GetPropagator() const