ATLAS Offline Software
PatternTrackParameters.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Header file for class PatternTrackParameters
8 // (c) ATLAS Detector software
10 // Class for pattern track parameters
12 // Version 1.0 09/08/2006 I.Gavrilenko
14 
15 #ifndef PatternTrackParameters_H
16 #define PatternTrackParameters_H
17 
21 #include "TrkSurfaces/Surface.h"
23 #include "CxxUtils/CachedValue.h"
24 #include <cmath>
25 #include <iosfwd>
26 
27 class MsgStream;
28 
29 namespace Trk {
30 
31  class PlaneSurface ;
32  class StraightLineSurface;
33  class DiscSurface ;
34  class CylinderSurface ;
35  class PerigeeSurface ;
36  class ConeSurface ;
37 
38  class PatternTrackParameters final : public ParametersCommon<5, Trk::Charged>{
39  public:
46 
47  // Main methods
48  bool iscovariance () const {return m_covariance != std::nullopt ;}
49  double sinPhi () const;
50  double cosPhi () const;
51  double sinTheta () const;
52  double cosTheta () const;
53  double cotTheta () const;
54  void changeDirection () ;
55  double transverseMomentum() const;
56 
57  // Methods from ParametersCommon
58  virtual const Surface& associatedSurface () const override final;
61  double charge() const;
62  virtual bool hasSurface() const override final;
63  virtual Amg::RotationMatrix3D measurementFrame() const override final;
64  virtual PatternTrackParameters * clone() const override final;
65  constexpr virtual ParametersType type() const override final;
66  virtual SurfaceType surfaceType() const override final;
67  virtual void updateParametersHelper(const AmgVector(5) &) override final;
68 
69  // set methods
70  void setParameters (const Surface*,const double* );
71  void setCovariance ( const double*);
74 
75  // Convertors
76  std::unique_ptr<ParametersBase<5, Trk::Charged>> convert(bool) const;
78 
79  // Init methods
80  void diagonalization (double);
82 
83  // Add or remove noise
86 
87  // Print
88  std::ostream& dump(std::ostream&) const;
89  MsgStream& dump(MsgStream& ) const;
90 
91  protected:
92 
93  // Protected data
95 
97  // Comments
98  // m_surface is pointer to associated surface
99  // m_parameters[ 0] - 1 local coordinate
100  // m_parameters[ 1] - 2 local coordinate
101  // m_parameters[ 2] - Azimuthal angle
102  // m_parameters[ 3] - Polar angle
103  // m_parameters[ 4] - charge/Momentum
104  // m_covariance is the covariance matrix
106 
107 
108  // Protected methods
115 
119 
120  private:
121  std::string to_string() const;
122  };
123 
125  // Overload operator
127 
128  std::ostream& operator << (std::ostream&,const PatternTrackParameters&);
129  MsgStream& operator << (MsgStream&, const PatternTrackParameters& );
130 
131 } // end of name space Trk
132 
133 #include "TrkPatternParameters/PatternTrackParameters.icc"
134 
135 #endif // PatternTrackParameters
Trk::ParametersCommon< 5, Trk::Charged >::AmgVector
const AmgVector(DIM) &parameters() const
Access methods for the parameters.
Trk::PatternTrackParameters::localToGlobal
Amg::Vector3D localToGlobal(const PlaneSurface *) const
Definition: PatternTrackParameters.cxx:168
Trk::PatternTrackParameters::transverseMomentum
double transverseMomentum() const
Trk::PatternTrackParameters::setParametersWithCovariance
void setParametersWithCovariance(const Surface *, const double *, const double *)
Trk::ParametersCommon< 5, Trk::Charged >::m_covariance
std::optional< AmgSymMatrix(DIM)> m_covariance
charge definition for this track
Definition: ParametersCommon.h:147
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Trk::PatternTrackParameters::operator=
PatternTrackParameters & operator=(const PatternTrackParameters &)
Surface.h
Trk::PatternTrackParameters::associatedSurface
virtual const Surface & associatedSurface() const override final
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
Trk::PatternTrackParameters::updateParametersHelper
virtual void updateParametersHelper(const AmgVector(5) &) override final
Trk::PatternTrackParameters::cosTheta
double cosTheta() const
Trk::PatternTrackParameters::sinTheta
double sinTheta() const
Trk::ParametersCommon< 5, Trk::Charged >::AmgSymMatrix
const AmgSymMatrix(DIM) *covariance() const
Access method for the covariance matrix - returns nullptr if no covariance matrix is given.
PropDirection.h
Trk::SurfaceType
SurfaceType
Definition: SurfaceTypes.h:17
Trk::DiscSurface
Definition: DiscSurface.h:54
Trk::PatternTrackParameters::convert
std::unique_ptr< ParametersBase< 5, Trk::Charged > > convert(bool) const
Definition: PatternTrackParameters.cxx:26
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Trk::PatternTrackParameters::absoluteMomentum
double absoluteMomentum() const
Trk::PatternTrackParameters::setParameters
void setParameters(const Surface *, const double *)
Trk::PatternTrackParameters::PatternTrackParameters
PatternTrackParameters(PatternTrackParameters &&) noexcept=default
Trk::NoiseOnSurface
Definition: NoiseOnSurface.h:23
Trk::PatternTrackParameters::sinPhi
double sinPhi() const
Trk::PatternTrackParameters::m_surface
SurfaceUniquePtrT< const Surface > m_surface
Definition: PatternTrackParameters.h:94
Trk::PatternTrackParameters::hasSurface
virtual bool hasSurface() const override final
Trk::PatternTrackParameters::charge
double charge() const
protected
#define protected
Definition: DetDescrConditionsDict_dict_fixes.cxx:14
Trk::PatternTrackParameters::surfaceType
virtual SurfaceType surfaceType() const override final
Trk::Charged
Definition: Charged.h:27
Trk::PatternTrackParameters::calculateMomentum
Amg::Vector3D calculateMomentum(void) const
Definition: PatternTrackParameters.cxx:441
Trk::PatternTrackParameters::type
constexpr virtual ParametersType type() const override final
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Charged.h
Trk::PatternTrackParameters::production
bool production(const ParametersBase< 5, Trk::Charged > *)
Definition: PatternTrackParameters.cxx:42
Trk::PatternTrackParameters::cosPhi
double cosPhi() const
Trk::PatternTrackParameters::clone
virtual PatternTrackParameters * clone() const override final
Trk::PatternTrackParameters::removeNoise
void removeNoise(const NoiseOnSurface &, PropDirection)
Trk::PatternTrackParameters::dump
std::ostream & dump(std::ostream &) const
Definition: PatternTrackParameters.cxx:143
Trk::PatternTrackParameters::changeDirection
void changeDirection()
Definition: PatternTrackParameters.cxx:368
Trk::CylinderSurface
Definition: CylinderSurface.h:55
Trk::PatternTrackParameters::cotTheta
double cotTheta() const
Trk::PatternTrackParameters::addNoise
void addNoise(const NoiseOnSurface &, PropDirection)
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::PatternTrackParameters::setCovariance
void setCovariance(const double *)
Trk::PatternTrackParameters::measurementFrame
virtual Amg::RotationMatrix3D measurementFrame() const override final
Trk::PatternTrackParameters::calculatePosition
Amg::Vector3D calculatePosition(void) const
Definition: PatternTrackParameters.cxx:413
Trk::PatternTrackParameters::iscovariance
bool iscovariance() const
Definition: PatternTrackParameters.h:48
Trk::PatternTrackParameters::PatternTrackParameters
PatternTrackParameters()
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
CachedValue.h
Cached value with atomic update.
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
ParametersCommon.h
Trk::PatternTrackParameters::initiate
bool initiate(PatternTrackParameters &, const Amg::Vector2D &, const Amg::MatrixX &)
Definition: PatternTrackParameters.cxx:321
Trk::SurfaceUniquePtrT
std::unique_ptr< S, SurfaceDeleter< S > > SurfaceUniquePtrT
Definition: SurfaceUniquePtrT.h:32
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::PatternTrackParameters::PatternTrackParameters
PatternTrackParameters(const PatternTrackParameters &)
Trk::PlaneSurface
Definition: PlaneSurface.h:64
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
Trk::PatternTrackParameters
Definition: PatternTrackParameters.h:38
Trk::ParametersCommon
Definition: ParametersCommon.h:45
NoiseOnSurface.h
Trk::ConeSurface
Definition: ConeSurface.h:51
Trk::PatternTrackParameters::to_string
std::string to_string() const
Definition: PatternTrackParameters.cxx:105
Trk::PatternTrackParameters::position
Amg::Vector3D position() const
Definition: PatternTrackParameters.cxx:79
python.CaloScaleNoiseConfig.default
default
Definition: CaloScaleNoiseConfig.py:79
Trk::PatternTrackParameters::momentum
Amg::Vector3D momentum() const
Trk::ParametersType
ParametersType
Definition: ParametersCommon.h:29
Trk::PatternTrackParameters::diagonalization
void diagonalization(double)
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::StraightLineSurface
Definition: StraightLineSurface.h:51