20 : m_corner_pos(corner_pos)
23 , m_normal(width.cross(height))
27 m_solid_angle = solid_angle_value <= 0.0 ? 1.0 : solid_angle_value;
43 double length =
M_TWOPI / wavelength;
57 double length = position.mag();
68 return direction.unit() * length;
74 double length = position.mag();
75 return std::abs(position.dot(
m_normal)) / std::pow(length, 3);
82 const double alpha_f_min =
M_PI_2 - R3Util::theta(k00);
83 const double alpha_f_max =
M_PI_2 - R3Util::theta(k01);
85 return new FixedBinAxis(
"alpha_f", alpha_f_min, alpha_f_max, n);
Defines M_PI and some more mathematical constants.
Defines class FixedBinAxis.
Defines class RectangularPixel.
Axis with fixed bin size.
Abstract base class for one-dimensional axes.
A pixel in a RectangularDetector.
double solidAngle() const override
double integrationFactor(double x, double y) const override
R3 normalizeLength(R3 direction, double length) const
R3 getPosition(double x, double y) const
IAxis * createAxis(size_t n) const
R3 getK(double x, double y, double wavelength) const override
RectangularPixel * clone() const override
double calculateSolidAngle() const
RectangularPixel * createZeroSizePixel(double x, double y) const override
RectangularPixel(const R3 &corner_pos, const R3 &width, const R3 &height)