ATLAS Offline Software
ParametersT.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // ParametersT.h, (c) ATLAS Detector software
8 
9 #ifndef TRKPARAMETERSBASE_PARAMETERS_T_H
10 #define TRKPARAMETERSBASE_PARAMETERS_T_H
11 
18 namespace Trk {
19 class MaterialEffectsEngine;
20 
45 template<int DIM, class T, class S>
46 class ParametersT final
47  : public ParametersBase<DIM, T>
48  , public SurfaceUniqHolderImpl<S>
49 {
50 public:
51  static_assert(
52  (S::staticType == SurfaceType::Cone ||
53  S::staticType == SurfaceType::Cylinder ||
54  S::staticType == SurfaceType::Disc ||
55  S::staticType == SurfaceType::Perigee ||
56  S::staticType == SurfaceType::Plane || S::staticType == SurfaceType::Line),
57  "The surface type must be one of Cone, Cylinder, Disc, Perigee, Plane, "
58  "Line");
59 
63  ParametersT() = default;
64 
66  ParametersT(double loc1,
67  double loc2,
68  double phi,
69  double theta,
70  double qop,
71  const S& surface,
72  std::optional<AmgSymMatrix(DIM)> covariance = std::nullopt);
73 
76  const S& surface,
77  std::optional<AmgSymMatrix(DIM)> covariance = std::nullopt);
78 
81  ParametersT(const Amg::Vector3D& position,
82  const Amg::Vector3D& momentum,
83  double charge,
84  const S& surface,
85  std::optional<AmgSymMatrix(DIM)> covariance = std::nullopt);
86 
89  ParametersT(const Amg::Vector3D& position,
90  double phi,
91  double theta,
92  double qop,
93  const S& surface,
94  std::optional<AmgSymMatrix(DIM)> covariance = std::nullopt);
95 
97  ParametersT(const ParametersT<DIM, T, S>& rhs) = default;
98 
100  ParametersT(ParametersT<DIM, T, S>&& rhs) noexcept = default;
101 
104 
107 
108  //** Destructor */
109  virtual ~ParametersT() = default;
110 
112  virtual bool hasSurface() const override final;
113 
115  virtual const S& associatedSurface() const override final;
116 
118  virtual bool operator==(
119  const ParametersBase<DIM, T>& rhs) const override final;
120 
121  // Needed to avoid ambiguities with c++20.
122  bool operator==(const ParametersT &rhs) const;
123 
125  virtual ParametersT<DIM, T, S>* clone() const override final;
126 
128  constexpr virtual ParametersType type() const override final;
129 
131  constexpr virtual SurfaceType surfaceType() const override final;
132 
134  virtual Amg::RotationMatrix3D measurementFrame() const override final;
135 
137  virtual MsgStream& dump(MsgStream& out) const override final;
138  virtual std::ostream& dump(std::ostream& out) const override final;
139 
140 private:
141  /* Helper to factor in update of parameters*/
142  virtual void updateParametersHelper(const AmgVector(DIM) &) override final;
143 
144 protected:
149  const S* surface,
150  std::optional<AmgSymMatrix(DIM)> covariance = std::nullopt);
151  /*
152  * friends needed for Persistency
153  */
156  friend class ::TrackParametersCnv_p2;
157  friend class ::MeasuredPerigeeCnv_p1;
158  template<class SURFACE_CNV, class ATA_SURFACE>
159  friend class ::AtaSurfaceCnv_p1;
160 
162  friend class MaterialEffectsEngine;
163 };
164 } // end of namespace Trk
165 
166 #include "TrkParametersBase/ParametersT.icc"
167 #endif // TRKTRACKPARAMETERS_H
168 
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
Trk::ParametersT::type
constexpr virtual ParametersType type() const override final
Return the ParametersType enum.
MeasuredPerigeeCnv_p1
Definition: MeasuredPerigeeCnv_p1.h:27
Trk::ParametersT::measurementFrame
virtual Amg::RotationMatrix3D measurementFrame() const override final
Return the measurementFrame of the parameters.
SurfaceTypes.h
SurfaceUniquePtrT.h
Handle conditional ownership of surfaces.
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
TrackParametersCnv_p2
New convertor which handles all track parameters in one go - i.e.
Definition: TrackParametersCnv_p2.h:30
Trk::ParametersT::~ParametersT
virtual ~ParametersT()=default
taskman.template
dictionary template
Definition: taskman.py:317
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
Trk::loc2
@ loc2
generic first and second local coordinate
Definition: ParamDefs.h:41
Trk::ParametersT::ParametersT
ParametersT(double loc1, double loc2, double phi, double theta, double qop, const S &surface, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt)
Constructor with local arguments - uses global <-> local for parameters.
Trk::SurfaceType
SurfaceType
Definition: SurfaceTypes.h:17
EL::Detail::ManagerStep::final
@ final
Trk::ParametersT::ParametersT
ParametersT(const Amg::Vector3D &position, double phi, double theta, double qop, const S &surface, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt)
Constructor with mixed arguments 1 - uses global <-> local for parameters.
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Trk::ParametersT::surfaceType
constexpr virtual SurfaceType surfaceType() const override final
Return the Surface Type enum.
Trk::MaterialEffectsEngine
Definition: MaterialEffectsEngine.h:38
JetTiledMap::S
@ S
Definition: TiledEtaPhiMap.h:44
Trk::ParametersT::hasSurface
virtual bool hasSurface() const override final
Test to see if there's a surface there.
protected
#define protected
Definition: DetDescrConditionsDict_dict_fixes.cxx:14
Trk::ParametersT::ParametersT
ParametersT(ParametersT< DIM, T, S > &&rhs) noexcept=default
Move constructor.
Trk::AmgSymMatrix
AmgSymMatrix(5) &GXFTrackState
Definition: GXFTrackState.h:156
Trk::ParametersT::associatedSurface
virtual const S & associatedSurface() const override final
Access to the Surface method.
GeoPrimitives.h
ParametersBase.h
Trk::ParametersT::updateParametersHelper
virtual void updateParametersHelper(const AmgVector(DIM) &) override final
ParticleGun_EoverP_Config.momentum
momentum
Definition: ParticleGun_EoverP_Config.py:63
Trk::theta
@ theta
Definition: ParamDefs.h:72
AmgVector
AmgVector(4) T2BSTrackFilterTool
Definition: T2BSTrackFilterTool.cxx:114
AtaSurfaceCnv_p1
Definition: ParametersBase.h:26
TrackParametersCovarianceCnv
Definition: ParametersBase.h:22
SurfaceHolderImpl.h
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::SurfaceType::Cone
@ Cone
Trk::ParametersT::operator=
ParametersT< DIM, T, S > & operator=(ParametersT< DIM, T, S > &&rhs) noexcept=default
Move assignment operator.
Trk::ParametersT::ParametersT
ParametersT(const AmgVector(DIM) &parameters, const S &surface, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt)
Constructor with parameters - extract position and momentum.
EventPrimitives.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::SurfaceType::Perigee
@ Perigee
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
Trk::ParametersT::ParametersT
ParametersT(const Amg::Vector3D &position, const Amg::Vector3D &momentum, double charge, const S &surface, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt)
Constructor with global arguments - uses global <-> local for parameters.
charge
double charge(const T &p)
Definition: AtlasPID.h:494
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.Dumpers.typename
def typename(t)
Definition: Dumpers.py:194
Trk::ParametersT::dump
virtual MsgStream & dump(MsgStream &out) const override final
Dumps relevant information about the track parameters into the ostream.
Trk::ParametersT::ParametersT
ParametersT(const ParametersT< DIM, T, S > &rhs)=default
Copy constructor.
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
Trk::ParametersT::ParametersT
ParametersT()=default
default constructor ONLY for POOL
Trk::SurfaceType::Disc
@ Disc
Trk::SurfaceType::Cylinder
@ Cylinder
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
Trk::SurfaceType::Plane
@ Plane
Trk::phi
@ phi
Definition: ParamDefs.h:81
Trk::ParametersT::operator=
ParametersT< DIM, T, S > & operator=(const ParametersT< DIM, T, S > &rhs)=default
Assignment operator.
Trk::SurfaceType::Line
@ Line
Trk::ParametersType
ParametersType
Definition: ParametersCommon.h:29
Trk::loc1
@ loc1
Definition: ParamDefs.h:40
Trk::ParametersT::clone
virtual ParametersT< DIM, T, S > * clone() const override final
Virtual clone.