18 SphericalPixel::SphericalPixel(
const Bin1D& alpha_bin,
const Bin1D& phi_bin)
19 : m_alpha(alpha_bin.m_lower), m_phi(phi_bin.m_lower), m_dalpha(alpha_bin.getBinSize()),
20 m_dphi(phi_bin.getBinSize())
22 auto solid_angle_value = std::abs(m_dphi * (std::sin(m_alpha + m_dalpha) - std::sin(m_alpha)));
23 m_solid_angle = solid_angle_value <= 0.0 ? 1.0 : solid_angle_value;
31 SphericalPixel* SphericalPixel::createZeroSizePixel(
double x,
double y)
const
33 double phi = m_phi + x * m_dphi;
34 double alpha = m_alpha + y * m_dalpha;
35 Bin1D alpha_bin(alpha, alpha);
36 Bin1D phi_bin(phi, phi);
40 kvector_t SphericalPixel::getK(
double x,
double y,
double wavelength)
const
42 double phi = m_phi + x * m_dphi;
43 double alpha = m_alpha + y * m_dalpha;
47 double SphericalPixel::getIntegrationFactor(
double ,
double y)
const
51 double alpha = m_alpha + y * m_dalpha;
52 return std::cos(alpha) * m_dalpha / (std::sin(m_alpha + m_dalpha) - std::sin(m_alpha));
55 double SphericalPixel::getSolidAngle()
const
BasicVector3D< double > vecOfLambdaAlphaPhi(double _lambda, double _alpha, double _phi)
Creates a vector<double> as a wavevector with given wavelength and angles.
Defines structs Bin1D, Bin1DCVector.
Defines class SphericalPixel.
A pixel in a SphericalDetector.