Go to the documentation of this file.
44 for (const_iterator i = this->begin(); i != this->end(); ++i) {
46 const double x = dir.
getDot(*i);
132 double thetaMin = theta.getLowerLimit();
133 double thetaMax = theta.getUpperLimit();
135 if (thetaMin < 0.0) { thetaMin = 0.0; }
136 if (thetaMin >
PI) { thetaMin =
PI; }
137 if (thetaMax < 0.0) { thetaMax = 0.0; }
138 if (thetaMax >
PI) { thetaMax =
PI; }
140 if (thetaMax > thetaMin) {
144 const double rad = thetaMax - thetaMin;
145 const double bin = rad / floor(rad/(1.4*grid) + 0.5);
146 const double unit = 2.0 * sqrt(1.0 - cos(grid));
148 for (
double theta = thetaMin; theta < thetaMax + 0.5*bin; theta += bin) {
152 if (theta > 0.5*bin &&
PI - theta > 0.5*bin)
153 step =
PI / floor(
PI*sin(theta)/unit + 0.5);
157 for (
double phi = 0.0; phi < 2.0*
PI - 0.5*step; phi += step) {
JOmega3D(const JAngle3D &dir)
Constructor.
void configure(const JAngle3D &dir, const JAngleRange &theta, const double grid)
Configure direction set.
JOmega3D(const JAngle3D &dir, const JAngleRange &theta, const double grid)
Constructor.
Data structure for direction in three dimensions.
JOmega3D(const double grid)
Constructor.
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
int find(const JAngle3D &dir) const
Get index of direction closest to given direction.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Data structure for angles in three dimensions.
Base class for direction set.
Auxiliary classes and methods for 3D geometrical objects and operations.
double getDot(const JAngle3D &angle) const
Get dot product.
Direction set covering (part of) solid angle.
JOmega3D()
Default constructor.