Jpp
 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 62 of file JOmega2D.hh.

Constructor & Destructor Documentation

JGEOMETRY2D::JOmega2D::JOmega2D ( )
inline

Default constructor.

Definition at line 69 of file JOmega2D.hh.

69  :
70  JOmega2D_t()
71  {}
Base class for direction set.
Definition: JOmega2D.hh:30
JGEOMETRY2D::JOmega2D::JOmega2D ( const double  grid)
inline

Constructor.

Parameters
gridangular spacing [rad]

Definition at line 79 of file JOmega2D.hh.

79  :
80  JOmega2D_t()
81  {
82  configure(JAngle2D(0.0), PI, grid);
83  }
Data structure for angle in two dimensions.
Definition: JAngle2D.hh:31
static const double PI
Constants.
Definition: JConstants.hh:20
Base class for direction set.
Definition: JOmega2D.hh:30
void configure(const JAngle2D &dir, const double phiMax, const double grid)
Configure direction set.
Definition: JOmega2D.hh:110
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 94 of file JOmega2D.hh.

96  :
97  JOmega2D_t()
98  {
99  configure(dir, phiMax, grid);
100  }
Base class for direction set.
Definition: JOmega2D.hh:30
void configure(const JAngle2D &dir, const double phiMax, const double grid)
Configure direction set.
Definition: JOmega2D.hh:110

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 110 of file JOmega2D.hh.

113  {
114  clear();
115 
116  // sanity checks
117 
118  double phi_min = 0.0;
119  double phi_max = phiMax;
120 
121  if (phi_max < 0.0) phi_max = 0.0;
122  if (phi_max > PI) phi_max = PI;
123 
124  if (phi_max > phi_min) {
125 
126  const double rad = phi_max - phi_min;
127  const double bin = rad / floor(rad/grid + 0.5); // angle step size
128 
129  for (double phi = phi_min; phi < phi_max + 0.5*bin; phi += bin) {
130 
131  if (phi < 0.5*bin) {
132  push_back(dir);
133  } else if (PI - phi < 0.5*bin) {
134  push_back(dir + PI);
135  } else {
136  push_back(dir + phi);
137  push_back(dir - phi);
138  }
139  }
140  }
141  }
static const double PI
Constants.
Definition: JConstants.hh:20
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 39 of file JOmega2D.hh.

40  {
41  double dot = -1.0;
42  int index = -1;
43 
44  for (const_iterator i = this->begin(); i != this->end(); ++i) {
45 
46  const double x = dir.getDot(*i);
47 
48  if (x > dot) {
49  dot = x;
50  index = std::distance(this->begin(), i);
51  }
52  }
53 
54  return index;
55  }
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:187

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