5#ifndef FourMomentumError_H
6#define FourMomentumError_H
9#include "CLHEP/Matrix/SymMatrix.h"
12template <
class FourMom>
38 virtual double mError()
const override;
40 virtual double pError()
const override;
45 virtual double eError()
const override;
71 double sqr(
double x)
const {
return x*
x;}
Cached unique_ptr with atomic update.
virtual const ErrorMatrixPtCotThPhiM * ptCotThPhiMMatrix() const override
Access to PtCotThPhiM error matrix, can return 0 if errors not defined.
FourMomentumError(const ErrorMatrixPtEtaPhiM &, const FourMom &)
FourMomentumError(const ErrorMatrixPtCotThPhiM &, const FourMom &)
virtual double sinPhiError() const override
FourMomentumError(const CLHEP::HepSymMatrix &, ParamType, const FourMom &)
virtual double etaError() const override
virtual double p2Error() const override
virtual const ErrorMatrixPxPyPzE * pxPyPzEMatrix() const override
Access to PxPyPzE error matrix, can return 0 if errors not defined.
ParamType originalType() const
virtual double cosThError() const override
FourMomentumError(const ErrorMatrixEEtaPhiM &, const FourMom &)
const P4ImplEEtaPhiM & m_p4
FourMomentumError(const ErrorMatrixPxPyPzE &, const FourMom &)
CxxUtils::CachedUniquePtr< ErrorMatrixEEtaPhiM > m_EEtaPhiM
virtual double pzError() const override
virtual double pxError() const override
The following methods correspond 1-to-1 to the I4Momentum methods, and provide the errors on the corr...
virtual double ptError() const override
virtual const ErrorMatrixEEtaPhiM * eEtaPhiMMatrix() const override
Access to EEtaPhiM error matrix, can return 0 if errors not defined.
virtual double cotThError() const override
virtual double iPtError() const override
virtual double mError() const override
virtual double etError() const override
CxxUtils::CachedUniquePtr< ErrorMatrixPtEtaPhiM > m_PtEtaPhiM
bool computePxPyPzEMatrix() const
FourMomentumError(const FourMomentumError &other)
virtual double pyError() const override
virtual double phiError() const override
FourMomentumError & operator=(const FourMomentumError &other)
virtual double pError() const override
double sqr(double x) const
virtual double sinThError() const override
virtual double m2Error() const override
virtual double tanThError() const override
virtual double rapidityError() const override
bool computePtEtaPhiMMatrix() const
CxxUtils::CachedUniquePtr< ErrorMatrixPxPyPzE > m_PxPyPzE
CxxUtils::CachedUniquePtr< ErrorMatrixPtCotThPhiM > m_PtCotThPhiM
bool computeEEtaPhiMMatrix() const
virtual double cosPhiError() const override
virtual double eError() const override
virtual const ErrorMatrixPtEtaPhiM * ptEtaPhiMMatrix() const override
Access to PtEtaPhiM error matrix, can return 0 if errors not defined.
CachedUniquePtrT< const T > CachedUniquePtr