Jpp  18.0.0-rc.2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
JGEOMETRY2D::JOmega2D Class Reference

Direction set covering (part of) circle. More...

#include <JOmega2D.hh>

Inheritance diagram for JGEOMETRY2D::JOmega2D:
JGEOMETRY2D::JOmega2D_t std::vector< JAngle2D >

Public Member Functions

 JOmega2D ()
 Default constructor. More...
 
 JOmega2D (const double grid)
 Constructor. More...
 
 JOmega2D (const JAngle2D &dir, const double phiMax, const double grid)
 Constructor. More...
 
void configure (const JAngle2D &dir, const double phiMax, const double grid)
 Configure direction set. More...
 
int find (const JAngle2D &dir) const
 Get index of direction closest to given direction. More...
 

Detailed Description

Direction set covering (part of) circle.

Definition at line 60 of file JOmega2D.hh.

Constructor & Destructor Documentation

JGEOMETRY2D::JOmega2D::JOmega2D ( )
inline

Default constructor.

Definition at line 67 of file JOmega2D.hh.

67  :
68  JOmega2D_t()
69  {}
Base class for direction set.
Definition: JOmega2D.hh:28
JGEOMETRY2D::JOmega2D::JOmega2D ( const double  grid)
inline

Constructor.

Parameters
gridangular spacing [rad]

Definition at line 77 of file JOmega2D.hh.

77  :
78  JOmega2D_t()
79  {
80  configure(JAngle2D(0.0), PI, grid);
81  }
Data structure for angle in two dimensions.
Definition: JAngle2D.hh:33
static const double PI
Mathematical constants.
Base class for direction set.
Definition: JOmega2D.hh:28
void configure(const JAngle2D &dir, const double phiMax, const double grid)
Configure direction set.
Definition: JOmega2D.hh:108
JGEOMETRY2D::JOmega2D::JOmega2D ( const JAngle2D dir,
const double  phiMax,
const double  grid 
)
inline

Constructor.

Parameters
dirprincipal direction
phiMaxmaximal angle [rad]
gridangular spacing [rad]

Definition at line 92 of file JOmega2D.hh.

94  :
95  JOmega2D_t()
96  {
97  configure(dir, phiMax, grid);
98  }
Base class for direction set.
Definition: JOmega2D.hh:28
void configure(const JAngle2D &dir, const double phiMax, const double grid)
Configure direction set.
Definition: JOmega2D.hh:108

Member Function Documentation

void JGEOMETRY2D::JOmega2D::configure ( const JAngle2D dir,
const double  phiMax,
const double  grid 
)
inline

Configure direction set.

Parameters
dirprincipal direction
phiMaxmaximal angle [rad]
gridangular spacing [rad]

Definition at line 108 of file JOmega2D.hh.

111  {
112  clear();
113 
114  // sanity checks
115 
116  double phi_min = 0.0;
117  double phi_max = phiMax;
118 
119  if (phi_max < 0.0) phi_max = 0.0;
120  if (phi_max > PI) phi_max = PI;
121 
122  if (phi_max > phi_min) {
123 
124  const double rad = phi_max - phi_min;
125  const double bin = rad / floor(rad/grid + 0.5); // angle step size
126 
127  for (double phi = phi_min; phi < phi_max + 0.5*bin; phi += bin) {
128 
129  if (phi < 0.5*bin) {
130  push_back(dir);
131  } else if (PI - phi < 0.5*bin) {
132  push_back(dir + PI);
133  } else {
134  push_back(dir + phi);
135  push_back(dir - phi);
136  }
137  }
138  }
139  }
static const double PI
Mathematical constants.
int JGEOMETRY2D::JOmega2D_t::find ( const JAngle2D dir) const
inlineinherited

Get index of direction closest to given direction.

Parameters
dirdirection
Returns
index (-1 if error)

Definition at line 37 of file JOmega2D.hh.

38  {
39  double dot = -1.0;
40  int index = -1;
41 
42  for (const_iterator i = this->begin(); i != this->end(); ++i) {
43 
44  const double x = dir.getDot(*i);
45 
46  if (x > dot) {
47  dot = x;
48  index = std::distance(this->begin(), i);
49  }
50  }
51 
52  return index;
53  }
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
double getDot(const JAngle2D &angle) const
Get dot product.
Definition: JAngle2D.hh:189

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