ATLAS Offline Software
Loading...
Searching...
No Matches
eflowAzimuth Class Reference

eflowAzimuth represents phi and has kinematic functions which correctly deal with phi wraparound etc. More...

#include <eflowUtil.h>

Collaboration diagram for eflowAzimuth:

Public Member Functions

 eflowAzimuth (double phi)
 eflowAzimuth (const eflowAzimuth &other)
eflowAzimuthoperator= (const eflowAzimuth &other)
 ~eflowAzimuth ()
double operator() () const
double operator= (double phi)
eflowAzimuth operator+= (double deltaPhi)
eflowAzimuth operator-= (double deltaPhi)
double getAbsDifference (const eflowAzimuth &other) const
double cycle (const eflowAzimuth &other)
double cycle (double phi)

Private Member Functions

double adjustRange (double a)
void adjustRange ()

Private Attributes

double m_value

Detailed Description

eflowAzimuth represents phi and has kinematic functions which correctly deal with phi wraparound etc.

Definition at line 21 of file eflowUtil.h.

Constructor & Destructor Documentation

◆ eflowAzimuth() [1/2]

eflowAzimuth::eflowAzimuth ( double phi)
inline

Definition at line 23 of file eflowUtil.h.

23: m_value(phi) { if (phi != -999. && !std::isnan(phi)) adjustRange(); }
Scalar phi() const
phi method
void adjustRange()
Definition eflowUtil.h:75
double m_value
Definition eflowUtil.h:64

◆ eflowAzimuth() [2/2]

eflowAzimuth::eflowAzimuth ( const eflowAzimuth & other)
inline

Definition at line 24 of file eflowUtil.h.

24: m_value(other.m_value) { }

◆ ~eflowAzimuth()

eflowAzimuth::~eflowAzimuth ( )
inline

Definition at line 26 of file eflowUtil.h.

26{ }

Member Function Documentation

◆ adjustRange() [1/2]

void eflowAzimuth::adjustRange ( )
inlineprivate

Definition at line 75 of file eflowUtil.h.

75 {
76 if (m_value <= -M_PI) {
77 m_value+=(2*M_PI*std::floor(-(m_value-M_PI)/(2*M_PI)));
78 } else if (m_value > M_PI) {
79 m_value-=(2*M_PI*std::floor((m_value+M_PI)/(2*M_PI)));
80 }
81 }
#define M_PI

◆ adjustRange() [2/2]

double eflowAzimuth::adjustRange ( double a)
inlineprivate

Definition at line 66 of file eflowUtil.h.

66 {
67 if (a <= -M_PI) {
68 return a+(2*M_PI*std::floor(-(a-M_PI)/(2*M_PI)));
69 } else if (a > M_PI) {
70 return a-(2*M_PI*std::floor((a+M_PI)/(2*M_PI)));
71 } else {
72 return a;
73 }
74 }
static Double_t a

◆ cycle() [1/2]

double eflowAzimuth::cycle ( const eflowAzimuth & other)
inline

Definition at line 51 of file eflowUtil.h.

51{ return cycle(other.m_value); }
double cycle(const eflowAzimuth &other)
Definition eflowUtil.h:51

◆ cycle() [2/2]

double eflowAzimuth::cycle ( double phi)
inline

Definition at line 52 of file eflowUtil.h.

52 {
53 double plainDifference = phi-m_value;
54 if (plainDifference > M_PI) {
55 return m_value+2.0*M_PI;
56 } else if (plainDifference < -M_PI) {
57 return m_value-2.0*M_PI;
58 } else {
59 return m_value;
60 }
61 }

◆ getAbsDifference()

double eflowAzimuth::getAbsDifference ( const eflowAzimuth & other) const
inline

Definition at line 46 of file eflowUtil.h.

46 {
47 double plainAbsDifference = std::abs(m_value - other.m_value);
48 return plainAbsDifference <= M_PI ? plainAbsDifference : 2*M_PI - plainAbsDifference;
49 }

◆ operator()()

double eflowAzimuth::operator() ( ) const
inline

Definition at line 28 of file eflowUtil.h.

28{ return m_value; }

◆ operator+=()

eflowAzimuth eflowAzimuth::operator+= ( double deltaPhi)
inline

Definition at line 35 of file eflowUtil.h.

35 {
38 return *this;
39 }
Scalar deltaPhi(const MatrixBase< Derived > &vec) const

◆ operator-=()

eflowAzimuth eflowAzimuth::operator-= ( double deltaPhi)
inline

Definition at line 40 of file eflowUtil.h.

40 {
43 return *this;
44 }

◆ operator=() [1/2]

eflowAzimuth & eflowAzimuth::operator= ( const eflowAzimuth & other)
inline

Definition at line 25 of file eflowUtil.h.

25{ if (this == &other) return *this; else { m_value = other.m_value; return *this; } }

◆ operator=() [2/2]

double eflowAzimuth::operator= ( double phi)
inline

Definition at line 29 of file eflowUtil.h.

29 {
30 m_value = phi;
32 return m_value;
33 }

Member Data Documentation

◆ m_value

double eflowAzimuth::m_value
private

Definition at line 64 of file eflowUtil.h.


The documentation for this class was generated from the following file: