17#ifndef O2_MCH_TRACKPARAM_H_
18#define O2_MCH_TRACKPARAM_H_
47 Double_t
getZ()
const {
return mZ; }
61 void setBendingCoor(Double_t bendingCoor) { mParameters(2, 0) = bendingCoor; }
71 Double_t
getCharge()
const {
return TMath::Sign(1., mParameters(4, 0)); }
75 if (
charge * mParameters(4, 0) < 0.) {
76 mParameters(4, 0) *= -1.;
83 void setParameters(
const TMatrixD& parameters) { mParameters = parameters; }
85 void setParameters(
const Double_t parameters[5]) { mParameters.SetMatrixArray(parameters); }
87 void addParameters(
const TMatrixD& parameters) { mParameters += parameters; }
155 TMatrixD mParameters{5, 1};
163 mutable std::unique_ptr<TMatrixD> mCovariances{};
166 mutable std::unique_ptr<TMatrixD> mPropagator{};
168 mutable std::unique_ptr<TMatrixD> mExtrapParameters{};
170 mutable std::unique_ptr<TMatrixD> mExtrapCovariances{};
172 mutable std::unique_ptr<TMatrixD> mSmoothParameters{};
173 mutable std::unique_ptr<TMatrixD> mSmoothCovariances{};
175 const Cluster* mClusterPtr =
nullptr;
177 Bool_t mRemovable =
false;
179 Double_t mTrackChi2 = 0.;
180 Double_t mLocalChi2 = 0.;
Definition of the MCH track parameters minimal structure.
HMPID cluster implementation.
track parameters for internal use
Bool_t isRemovable() const
return true if the associated cluster can be removed from the track it belongs to
const TMatrixD & getExtrapCovariances() const
const TMatrixD & getSmoothCovariances() const
Double_t getInverseBendingMomentum() const
return inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion)
void setRemovable(Bool_t removable)
set the flag telling whether the associated cluster can be removed from the track it belongs to or no...
void setZ(Double_t z)
set Z coordinate (cm)
void setBendingSlope(Double_t bendingSlope)
set bending slope (cm ** -1)
Double_t getLocalChi2() const
return the local chi2 of the associated cluster with respect to the track
Bool_t hasCovariances() const
return kTRUE if the covariance matrix exist, kFALSE if not
TrackParam & operator=(const TrackParam &tp)
void setNonBendingSlope(Double_t nonBendingSlope)
set non bending slope (cm ** -1)
Double_t getNonBendingCoor() const
return non bending coordinate (cm)
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
Bool_t isCompatibleTrackParam(const TrackParam &trackParam, Double_t sigma2Cut, Double_t &normChi2) const
void setVariances(const Double_t covariances[15])
void setExtrapCovariances(const TMatrixD &covariances)
void setSmoothCovariances(const TMatrixD &covariances)
TrackParam & operator=(TrackParam &&)=delete
Double_t getZ() const
return Z coordinate (cm)
void addParameters(const TMatrixD ¶meters)
add track parameters
const TMatrixD & getParameters() const
return track parameters
void setInverseBendingMomentum(Double_t inverseBendingMomentum)
set inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion)
Double_t getNonBendingSlope() const
return non bending slope (cm ** -1)
void setCovariances(const TMatrixD &covariances)
void setCharge(Double_t charge)
set the charge (assumed forward motion)
const TMatrixD & getPropagator() const
const TMatrixD & getCovariances() const
const TMatrixD & getExtrapParameters() const
void setBendingCoor(Double_t bendingCoor)
set bending coordinate (cm)
void setLocalChi2(Double_t chi2)
set the local chi2 of the associated cluster with respect to the track
Double_t getBendingCoor() const
return bending coordinate (cm)
void setParameters(const Double_t parameters[5])
set track parameters from the array
void setParameters(const TMatrixD ¶meters)
set track parameters
void setClusterPtr(const Cluster *cluster)
set pointer to associated cluster
TrackParam(TrackParam &&)=delete
void updatePropagator(const TMatrixD &propagator)
Double_t getBendingSlope() const
return bending slope (cm ** -1)
const TMatrixD & getSmoothParameters() const
TrackParamStruct getTrackParamStruct() const
void setSmoothParameters(const TMatrixD ¶meters)
void setExtrapParameters(const TMatrixD ¶meters)
const Cluster * getClusterPtr() const
get pointer to associated cluster
Double_t getCharge() const
return the charge (assumed forward motion)
void setNonBendingCoor(Double_t nonBendingCoor)
set non bending coordinate (cm)
GLdouble GLdouble GLdouble z
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
cluster minimal structure
track parameters minimal structure