17 namespace JGEOMETRY2D {}
18 namespace JPP {
using namespace JGEOMETRY2D; }
20 namespace JGEOMETRY2D {
42 for (const_iterator i = this->begin(); i != this->end(); ++i) {
44 const double x = dir.
getDot(*i);
116 double phi_min = 0.0;
117 double phi_max = phiMax;
119 if (phi_max < 0.0) phi_max = 0.0;
120 if (phi_max >
PI) phi_max =
PI;
122 if (phi_max > phi_min) {
124 const double rad = phi_max - phi_min;
125 const double bin = rad / floor(rad/grid + 0.5);
127 for (
double phi = phi_min; phi < phi_max + 0.5*bin; phi += bin) {
131 }
else if (
PI - phi < 0.5*bin) {
134 push_back(dir + phi);
135 push_back(dir - phi);
Data structure for angle in two dimensions.
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Direction set covering (part of) circle.
JOmega2D()
Default constructor.
int find(const JAngle2D &dir) const
Get index of direction closest to given direction.
static const double PI
Mathematical constants.
double getDot(const JAngle2D &angle) const
Get dot product.
Base class for direction set.
void configure(const JAngle2D &dir, const double phiMax, const double grid)
Configure direction set.
JOmega2D(const JAngle2D &dir, const double phiMax, const double grid)
Constructor.
JOmega2D(const double grid)
Constructor.