15 #ifndef BORNAGAIN_CORE_COMPUTATION_DEPTHPROBEELEMENT_H
16 #define BORNAGAIN_CORE_COMPUTATION_DEPTHPROBEELEMENT_H
35 double getWavelength()
const {
return m_wavelength; }
36 double getAlphaI()
const {
return m_alpha_i; }
39 template <
typename T>
void setIntensities(T&& intensities)
42 std::is_assignable<std::valarray<double>,
typename std::decay<T>::type>::value,
43 "Error in DepthProbeElement::setIntensities: wrong type of input data.");
44 m_intensities = std::forward<T>(intensities);
47 const std::valarray<double>& getIntensities()
const {
return m_intensities; }
49 void setZPositions(
const IAxis* z_positions) { m_z_positions = z_positions; }
50 const IAxis* getZPositions()
const {
return m_z_positions; }
52 size_t size()
const {
return m_intensities.size(); }
56 bool isCalculated()
const {
return m_calculation_flag; }
61 double m_wavelength, m_alpha_i;
62 std::valarray<double> m_intensities;
63 const IAxis* m_z_positions;
64 bool m_calculation_flag;
Defines basic vectors in R^3 and C^3.
void setCalculationFlag(bool calculation_flag)
Set calculation flag (if it's false, zero intensity is assigned to the element)
Interface for one-dimensional axes.