ATLAS Offline Software
CurvilinearParametersT.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // CurvilinearParametersT.h, (c) ATLAS Detector software
8 
9 #ifndef TRKPARAMETERSBASE_CURVILINEARPARAMETERS_T_H
10 #define TRKPARAMETERSBASE_CURVILINEARPARAMETERS_T_H
11 
13 
18 #include <memory>
19 class MsgStream;
20 
21 namespace Trk {
46 template<int DIM, class T, class S>
47 class CurvilinearParametersT final : public ParametersBase<DIM, T>
48 {
49 public:
50  static_assert(S::staticType == SurfaceType::Plane,
51  "The surface type must be Plane");
52 
55 
59  const AmgVector(DIM + 2) & parameters,
60  std::optional<AmgSymMatrix(DIM)> covariance = std::nullopt,
61  unsigned int cIdenfier = 0);
62 
66  const Amg::Vector3D& pos,
67  double phi,
68  double theta,
69  double qOverP,
70  std::optional<AmgSymMatrix(DIM)> covariance = std::nullopt,
71  unsigned int cIdenfier = 0);
72 
76  const Amg::Vector3D& pos,
77  const Amg::Vector3D& mom,
78  double charge,
79  std::optional<AmgSymMatrix(DIM)> covariance = std::nullopt,
80  unsigned int cIdenfier = 0);
81 
84 
87 
89  CurvilinearParametersT<DIM, T, S>& operator=(
91 
93  CurvilinearParametersT<DIM, T, S>& operator=(
94  CurvilinearParametersT<DIM, T, S>&&) noexcept = default;
95 
98 
100  unsigned int cIdentifier() const;
101 
102  void setcIdentifier(unsigned int cIdentifier);
103 
105  virtual bool hasSurface() const override final;
106 
108  virtual const S& associatedSurface() const override final;
109 
111  virtual bool operator==(
112  const ParametersBase<DIM, T>& rhs) const override final;
113 
115  virtual CurvilinearParametersT<DIM, T, S>* clone() const override final;
116 
117 
119  constexpr virtual ParametersType type() const override final;
120 
122  constexpr virtual SurfaceType surfaceType() const override final;
123 
125  virtual Amg::RotationMatrix3D measurementFrame() const override final;
126 
128  virtual MsgStream& dump(MsgStream& out) const override final;
129  virtual std::ostream& dump(std::ostream& out) const override final;
130 
131 private:
132  /* Helper to factor in update of parameters*/
133  virtual void updateParametersHelper(const AmgVector(DIM) &) override final;
134 
137 
138 protected:
139  /*
140  * Add dependent names into scope
141  */
143 
144  unsigned int m_cIdentifier = 0;
145  /*
146  * friends needed for Persistency
147  */
150  friend class ::TrackParametersCnv_p2;
151  friend class ::MeasuredPerigeeCnv_p1;
152 
154  friend class MaterialEffectsEngine;
155 };
156 } // end of namespace Trk
157 
158 #include "TrkParametersBase/CurvilinearParametersT.icc"
159 #endif
Trk::ParametersCommon::AmgVector
const AmgVector(DIM) &parameters() const
Access methods for the parameters.
Trk::CurvilinearParametersT::CurvilinearParametersT
CurvilinearParametersT(const Amg::Vector3D &pos, const Amg::Vector3D &mom, double charge, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt, unsigned int cIdenfier=0)
Create CurvilinearParametersT from global parameters.
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
Trk::CurvilinearParametersT::CurvilinearParametersT
CurvilinearParametersT(const CurvilinearParametersT< DIM, T, S > &)=default
Copy Constructor.
Trk::ParametersBase::charge
double charge() const
Returns the charge.
MeasuredPerigeeCnv_p1
Definition: MeasuredPerigeeCnv_p1.h:27
SurfaceTypes.h
Trk::CurvilinearParametersT::updateParametersHelper
virtual void updateParametersHelper(const AmgVector(DIM) &) override final
contains the n parameters
TrackParametersCnv_p2
New convertor which handles all track parameters in one go - i.e.
Definition: TrackParametersCnv_p2.h:30
Trk::CurvilinearParametersT::clone
virtual CurvilinearParametersT< DIM, T, S > * clone() const override final
Virtual clone.
taskman.template
dictionary template
Definition: taskman.py:317
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
Trk::CurvilinearParametersT::curvilinearFrame
CurvilinearUVT curvilinearFrame() const
return the curvilinear frame
Trk::ParametersCommon::AmgSymMatrix
const AmgSymMatrix(DIM) *covariance() const
Access method for the covariance matrix - returns nullptr if no covariance matrix is given.
Trk::CurvilinearParametersT::measurementFrame
virtual Amg::RotationMatrix3D measurementFrame() const override final
Return the measurementFrame of the parameters.
Trk::SurfaceType
SurfaceType
Definition: SurfaceTypes.h:17
Trk::CurvilinearParametersT::CurvilinearParametersT
CurvilinearParametersT(const AmgVector(DIM+2) &parameters, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt, unsigned int cIdenfier=0)
Create CurvilinearParametersT from DIM+2 parameters.
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Trk::MaterialEffectsEngine
Definition: MaterialEffectsEngine.h:38
JetTiledMap::S
@ S
Definition: TiledEtaPhiMap.h:44
protected
#define protected
Definition: DetDescrConditionsDict_dict_fixes.cxx:14
Trk::CurvilinearParametersT::m_cIdentifier
unsigned int m_cIdentifier
the curvilinear parameters identifier
Definition: CurvilinearParametersT.h:144
Trk::CurvilinearParametersT::CurvilinearParametersT
CurvilinearParametersT()=default
default constructor only for POOL
GeoPrimitives.h
ParametersBase.h
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
Trk::CurvilinearParametersT::cIdentifier
unsigned int cIdentifier() const
the curvilinear parameters identifier
Trk::CurvilinearParametersT::type
constexpr virtual ParametersType type() const override final
Return the ParametersType enum.
Trk::theta
@ theta
Definition: ParamDefs.h:66
Trk::CurvilinearParametersT::surfaceType
constexpr virtual SurfaceType surfaceType() const override final
Return the Surface Type enum.
Trk::CurvilinearParametersT::setcIdentifier
void setcIdentifier(unsigned int cIdentifier)
TrackParametersCovarianceCnv
Definition: ParametersBase.h:22
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::CurvilinearParametersT
Definition: CurvilinearParametersT.h:48
Trk::CurvilinearParametersT::CurvilinearParametersT
CurvilinearParametersT(const Amg::Vector3D &pos, double phi, double theta, double qOverP, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt, unsigned int cIdenfier=0)
Create CurvilinearParametersT from mixed parameters: pos, local parameters.
EventPrimitives.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::CurvilinearParametersT::associatedSurface
virtual const S & associatedSurface() const override final
Access to the Surface method.
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
Trk::CurvilinearParametersT::m_surface
S m_surface
surface template
Definition: CurvilinearParametersT.h:142
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
CurvilinearUVT.h
python.Dumpers.typename
def typename(t)
Definition: Dumpers.py:194
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
Trk::CurvilinearParametersT::CurvilinearParametersT
CurvilinearParametersT(CurvilinearParametersT< DIM, T, S > &&) noexcept=default
Move Constructor.
Trk::CurvilinearUVT
Definition: CurvilinearUVT.h:45
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:67
Trk::CurvilinearParametersT::dump
virtual MsgStream & dump(MsgStream &out) const override final
Dumps relevant information about the track parameters into the ostream.
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
Trk::SurfaceType::Plane
@ Plane
Trk::phi
@ phi
Definition: ParamDefs.h:75
python.CaloScaleNoiseConfig.default
default
Definition: CaloScaleNoiseConfig.py:79
Trk::CurvilinearParametersT::hasSurface
virtual bool hasSurface() const override final
Test to see if there's a surface there.
Trk::ParametersType
ParametersType
Definition: ParametersCommon.h:29