19 InterferenceFunctionTwin::InterferenceFunctionTwin(
const kvector_t& direction, 
double mean_distance,
 
   24     setName(
"InterferenceTwin");
 
   25     if (m_direction.mag2() <= 0.0 || m_distance < 0.0 || m_std_dev < 0.0)
 
   26         throw std::runtime_error(
 
   27             "InterferenceFunctionTwin::validateParameters: mean distance, standard deviation and " 
   28             "length of direction vector should be positive");
 
   29     registerVector(
"Direction", &m_direction, 
"");
 
   30     registerParameter(
"Mean", &m_distance).setUnit(
"nm").setNonnegative();
 
   31     registerParameter(
"StdDev", &m_std_dev).setUnit(
"nm").setNonnegative();
 
   37     ret->setPositionVariance(m_position_var);
 
   41 kvector_t InterferenceFunctionTwin::direction()
 const 
   46 double InterferenceFunctionTwin::meanDistance()
 const 
   51 double InterferenceFunctionTwin::stdDev()
 const 
   56 double InterferenceFunctionTwin::iff_without_dw(
const kvector_t q)
 const 
   58     double q_proj = q.
dot(m_direction.
unit());
 
   60            + std::exp(-q_proj * q_proj * m_std_dev * m_std_dev / 2.0)
 
   61                  * std::cos(q_proj * m_distance);
 
Defines class InterferenceFunctionTwin.
 
Defines class RealParameter.
 
auto dot(const BasicVector3D< U > &v) const
Returns dot product of vectors (antilinear in the first [=self] argument).
 
BasicVector3D< T > unit() const
Returns unit vector in direction of this. Throws for null vector.
 
Pure virtual base class of interference functions.
 
Interference function for two particles at a mean distance and given standard deviation from each oth...
 
InterferenceFunctionTwin * clone() const override final
Returns a clone of this ISample object.