ATLAS Offline Software
FourMomentumError.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef FourMomentumError_H
6 #define FourMomentumError_H
7 
9 #include "CLHEP/Matrix/SymMatrix.h"
11 
12 template < class FourMom>
14 private:
15 
17 
18 public:
19 
20  FourMomentumError(const ErrorMatrixPxPyPzE&, const FourMom&);
21  FourMomentumError(const ErrorMatrixEEtaPhiM&, const FourMom&);
22  FourMomentumError(const ErrorMatrixPtEtaPhiM&, const FourMom&);
23  FourMomentumError(const ErrorMatrixPtCotThPhiM&, const FourMom&);
24 
25  FourMomentumError( const CLHEP::HepSymMatrix&, ParamType, const FourMom&);
26 
27  // copy constructor may not copy cached matrices
30 
31  virtual const ErrorMatrixPxPyPzE* pxPyPzEMatrix() const override;
32  virtual const ErrorMatrixEEtaPhiM* eEtaPhiMMatrix() const override;
33  virtual const ErrorMatrixPtEtaPhiM* ptEtaPhiMMatrix() const override;
34  virtual const ErrorMatrixPtCotThPhiM* ptCotThPhiMMatrix() const override;
35  virtual double pxError() const override;
36  virtual double pyError() const override;
37  virtual double pzError() const override;
38  virtual double mError() const override;
39  virtual double m2Error() const override;
40  virtual double pError() const override;
41  virtual double p2Error() const override;
42  virtual double etaError() const override;
43  virtual double rapidityError() const override;
44  virtual double phiError() const override;
45  virtual double eError() const override;
46  virtual double etError() const override;
47  virtual double ptError() const override;
48  virtual double iPtError() const override;
49  virtual double cosPhiError() const override;
50  virtual double sinPhiError() const override;
51  virtual double cosThError() const override;
52  virtual double sinThError() const override;
53  virtual double cotThError() const override;
54  virtual double tanThError() const override;
55 
56 private:
57 
58  const FourMom& m_p4;
63 
65 
67  bool computePxPyPzEMatrix() const;
68  bool computeEEtaPhiMMatrix() const;
69  bool computePtEtaPhiMMatrix() const;
70 
71  double sqr( double x) const {return x*x;}
72 };
73 
75 
76 #endif
FourMomentumError::sinPhiError
virtual double sinPhiError() const override
FourMomentumError::EEtaPhiM
@ EEtaPhiM
Definition: FourMomentumError.h:16
ErrorMatrixPtCotThPhiM
Definition: ErrorMatrixPtCotThPhiM.h:12
FourMomentumError::pyError
virtual double pyError() const override
FourMomentumError::cotThError
virtual double cotThError() const override
FourMomentumError::m2Error
virtual double m2Error() const override
FourMomentumError::cosPhiError
virtual double cosPhiError() const override
FourMomentumError::computeEEtaPhiMMatrix
bool computeEEtaPhiMMatrix() const
ErrorMatrixEEtaPhiM
Definition: ErrorMatrixEEtaPhiM.h:12
FourMomentumError::mError
virtual double mError() const override
FourMomentumError.icc
FourMomentumError::etaError
virtual double etaError() const override
CxxUtils::CachedUniquePtrT
Cached pointer with atomic update.
Definition: CachedUniquePtr.h:54
FourMomentumError::iPtError
virtual double iPtError() const override
FourMomentumError::rapidityError
virtual double rapidityError() const override
FourMomentumError::FourMomentumError
FourMomentumError(const ErrorMatrixPtCotThPhiM &, const FourMom &)
I4MomentumError.h
FourMomentumError::ptCotThPhiMMatrix
virtual const ErrorMatrixPtCotThPhiM * ptCotThPhiMMatrix() const override
Access to PtCotThPhiM error matrix, can return 0 if errors not defined.
FourMomentumError::PtEtaPhiM
@ PtEtaPhiM
Definition: FourMomentumError.h:16
x
#define x
ErrorMatrixPxPyPzE
Definition: ErrorMatrixPxPyPzE.h:12
FourMomentumError::tanThError
virtual double tanThError() const override
FourMomentumError::m_PxPyPzE
CxxUtils::CachedUniquePtr< ErrorMatrixPxPyPzE > m_PxPyPzE
Definition: FourMomentumError.h:59
FourMomentumError::sinThError
virtual double sinThError() const override
FourMomentumError::m_p4
const FourMom & m_p4
Definition: FourMomentumError.h:58
FourMomentumError::etError
virtual double etError() const override
FourMomentumError::FourMomentumError
FourMomentumError(const ErrorMatrixPtEtaPhiM &, const FourMom &)
FourMomentumError::FourMomentumError
FourMomentumError(const ErrorMatrixPxPyPzE &, const FourMom &)
FourMomentumError::cosThError
virtual double cosThError() const override
FourMomentumError::m_EEtaPhiM
CxxUtils::CachedUniquePtr< ErrorMatrixEEtaPhiM > m_EEtaPhiM
Definition: FourMomentumError.h:60
FourMomentumError::phiError
virtual double phiError() const override
I4MomentumError
Definition: I4MomentumError.h:28
FourMomentumError::pzError
virtual double pzError() const override
CachedUniquePtr.h
Cached unique_ptr with atomic update.
FourMomentumError::originalType
ParamType originalType() const
Definition: FourMomentumError.h:66
FourMomentumError::m_PtEtaPhiM
CxxUtils::CachedUniquePtr< ErrorMatrixPtEtaPhiM > m_PtEtaPhiM
Definition: FourMomentumError.h:61
FourMomentumError::ptEtaPhiMMatrix
virtual const ErrorMatrixPtEtaPhiM * ptEtaPhiMMatrix() const override
Access to PtEtaPhiM error matrix, can return 0 if errors not defined.
FourMomentumError::ParamType
ParamType
Definition: FourMomentumError.h:16
FourMomentumError::eError
virtual double eError() const override
ErrorMatrixPtEtaPhiM
Definition: ErrorMatrixPtEtaPhiM.h:12
FourMomentumError::FourMomentumError
FourMomentumError(const FourMomentumError &other)
FourMomentumError
Definition: FourMomentumError.h:13
FourMomentumError::FourMomentumError
FourMomentumError(const ErrorMatrixEEtaPhiM &, const FourMom &)
FourMomentumError::FourMomentumError
FourMomentumError(const CLHEP::HepSymMatrix &, ParamType, const FourMom &)
FourMomentumError::ptError
virtual double ptError() const override
FourMomentumError::pxError
virtual double pxError() const override
The following methods correspond 1-to-1 to the I4Momentum methods, and provide the errors on the corr...
FourMomentumError::pError
virtual double pError() const override
FourMomentumError::PxPyPzE
@ PxPyPzE
Definition: FourMomentumError.h:16
FourMomentumError::sqr
double sqr(double x) const
Definition: FourMomentumError.h:71
FourMomentumError::PtCotThPhiM
@ PtCotThPhiM
Definition: FourMomentumError.h:16
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
FourMomentumError::computePxPyPzEMatrix
bool computePxPyPzEMatrix() const
FourMomentumError::p2Error
virtual double p2Error() const override
FourMomentumError::m_originalType
ParamType m_originalType
Definition: FourMomentumError.h:64
FourMomentumError::eEtaPhiMMatrix
virtual const ErrorMatrixEEtaPhiM * eEtaPhiMMatrix() const override
Access to EEtaPhiM error matrix, can return 0 if errors not defined.
FourMomentumError::computePtEtaPhiMMatrix
bool computePtEtaPhiMMatrix() const
FourMomentumError::operator=
FourMomentumError & operator=(const FourMomentumError &other)
FourMomentumError::m_PtCotThPhiM
CxxUtils::CachedUniquePtr< ErrorMatrixPtCotThPhiM > m_PtCotThPhiM
Definition: FourMomentumError.h:62
FourMomentumError::pxPyPzEMatrix
virtual const ErrorMatrixPxPyPzE * pxPyPzEMatrix() const override
Access to PxPyPzE error matrix, can return 0 if errors not defined.