Go to the documentation of this file.
3 #ifndef EICD_Direction_H
4 #define EICD_Direction_H
19 Direction(
double th,
double ph) :
theta{
static_cast<float>(th)},
phi{
static_cast<float>(ph)} {}
21 :
theta{
static_cast<float>(acos(z/std::hypot(x,y,z)))}
22 ,
phi{
static_cast<float>(atan2(y,x))} {}
24 operator std::pair<float, float>()
const {
return {
theta,
phi};}
25 float eta()
const {
return -log(tan(0.5*
theta));}
33 o << value.
theta <<
" ";
34 o << value.
phi <<
" ";
std::ostream & operator<<(std::ostream &o, const ConstBasicParticle &value)
Definition: BasicParticle.cc:102
Direction(double th, double ph)
Definition: Direction.h:19
Definition: BasicParticle.cc:13
float theta
[rad, 0->pi]
Definition: Direction.h:15
Direction()
Definition: Direction.h:18
Direction subtract(const Direction &rhs) const
Definition: Direction.h:27
float eta() const
Definition: Direction.h:25
Direction(double x, double y, double z)
Definition: Direction.h:20
Direction add(const Direction &rhs) const
Definition: Direction.h:26
float phi
[rad, -pi->pi]
Definition: Direction.h:16
Direction(const VectorType &v)
Definition: Direction.h:23
Definition: Direction.h:13