Skip to content
Snippets Groups Projects
Commit 39ee4258 authored by Frank Winklmeier's avatar Frank Winklmeier
Browse files

Merge branch 'DistanceSolution_default_move_inline_to_icc' into 'master'

Distance Solution : Move inline methods to .icc , default ctor,dtor,copy,move

See merge request atlas/athena!39259
parents 0efd188e 61f83985
No related branches found
No related tags found
No related merge requests found
...@@ -9,9 +9,7 @@ ...@@ -9,9 +9,7 @@
#ifndef TRKSURFACES_DISTANCESOLUTION_H #ifndef TRKSURFACES_DISTANCESOLUTION_H
#define TRKSURFACES_DISTANCESOLUTION_H #define TRKSURFACES_DISTANCESOLUTION_H
// STD #include <cmath>
#include <iostream>
#include <math.h>
namespace Trk { namespace Trk {
...@@ -26,14 +24,19 @@ namespace Trk { ...@@ -26,14 +24,19 @@ namespace Trk {
class DistanceSolution class DistanceSolution
{ {
public: public:
/**Default Constructor*/ DistanceSolution() = default;
DistanceSolution(); DistanceSolution(const DistanceSolution&) = default;
DistanceSolution(DistanceSolution&&) = default;
/**Constructor*/ DistanceSolution& operator=(const DistanceSolution&) = default;
DistanceSolution(int num, double current = 0., bool signedDist = false, double first = 0., double second = 0.); DistanceSolution& operator=(DistanceSolution&&) = default;
~DistanceSolution() = default;
/**Destructor*/
virtual ~DistanceSolution() = default; /**Constructor*/
DistanceSolution(int num,
double current = 0.,
bool signedDist = false,
double first = 0.,
double second = 0.);
// methods to access solutions // methods to access solutions
/** Number of intersection solutions*/ /** Number of intersection solutions*/
...@@ -42,7 +45,8 @@ public: ...@@ -42,7 +45,8 @@ public:
/** Distance to first intersection solution along direction*/ /** Distance to first intersection solution along direction*/
double first() const; double first() const;
/** Distance to second intersection solution along direction (for a cylinder surface)*/ /** Distance to second intersection solution along direction (for a cylinder
* surface)*/
double second() const; double second() const;
/** Absolute Distance to closest solution */ /** Absolute Distance to closest solution */
...@@ -51,14 +55,15 @@ public: ...@@ -51,14 +55,15 @@ public:
/** Distance to point of closest approach along direction*/ /** Distance to point of closest approach along direction*/
double toPointOfClosestApproach() const; double toPointOfClosestApproach() const;
/** Current distance to surface (spatial), signed (along/opposite to surface normal) if input argument true (absolute /** Current distance to surface (spatial), signed (along/opposite to surface
* value by default)*/ * normal) if input argument true (absolute value by default)*/
double currentDistance(bool signedDist = false) const; double currentDistance(bool signedDist = false) const;
/** This method indicates availability of signed current distance (false for Perigee and StraighLineSurface) */ /** This method indicates availability of signed current distance (false for
* Perigee and StraighLineSurface) */
bool signedDistance() const; bool signedDistance() const;
protected: private:
int m_num; int m_num;
double m_first; double m_first;
double m_second; double m_second;
...@@ -66,54 +71,7 @@ protected: ...@@ -66,54 +71,7 @@ protected:
bool m_signedDist; bool m_signedDist;
}; };
inline int
DistanceSolution::numberOfSolutions() const
{
return m_num;
}
inline double
DistanceSolution::first() const
{
return m_first;
}
inline double
DistanceSolution::second() const
{
return m_second;
}
inline double
DistanceSolution::absClosest() const
{
if (m_num > 1)
return (m_first * m_first < m_second * m_second) ? fabs(m_first) : fabs(m_second);
else
return fabs(m_first);
}
inline double
DistanceSolution::toPointOfClosestApproach() const
{
return m_first;
}
inline double
DistanceSolution::currentDistance(bool signedDist) const
{
if (signedDist)
return m_current;
else
return fabs(m_current);
}
inline bool
DistanceSolution::signedDistance() const
{
return m_signedDist;
}
} // end of namespace } // end of namespace
#include "TrkSurfaces/DistanceSolution.icc"
#endif // TRKSURFACES_DISTANCESOLUTION_H #endif // TRKSURFACES_DISTANCESOLUTION_H
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
*/
namespace Trk {
inline DistanceSolution::DistanceSolution(int num,
double current,
bool signedDist,
double first,
double second)
: m_num(num)
, m_first(first)
, m_second(second)
, m_current(current)
, m_signedDist(signedDist)
{}
inline int
DistanceSolution::numberOfSolutions() const
{
return m_num;
}
inline double
DistanceSolution::first() const
{
return m_first;
}
inline double
DistanceSolution::second() const
{
return m_second;
}
inline double
DistanceSolution::absClosest() const
{
if (m_num > 1) {
return (m_first * m_first < m_second * m_second) ? std::abs(m_first)
: std::abs(m_second);
} else {
return std::abs(m_first);
}
}
inline double
DistanceSolution::toPointOfClosestApproach() const
{
return m_first;
}
inline double
DistanceSolution::currentDistance(bool signedDist) const
{
if (signedDist) {
return m_current;
} else {
return std::abs(m_current);
}
}
inline bool
DistanceSolution::signedDistance() const
{
return m_signedDist;
}
} // end of namespace
/*
Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
*/
///////////////////////////////////////////////////////////////////
// DistanceSolution.cxx, (c) ATLAS Detector Software
///////////////////////////////////////////////////////////////////
// Trk
#include "TrkSurfaces/DistanceSolution.h"
// default constructor
Trk::DistanceSolution::DistanceSolution()
: m_num()
, m_first()
, m_second()
, m_current()
, m_signedDist()
{}
// constructor
Trk::DistanceSolution::DistanceSolution(int num, double current, bool signedDist, double first, double second)
: m_num(num)
, m_first(first)
, m_second(second)
, m_current(current)
, m_signedDist(signedDist)
{}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment