19 FormFactorLongBoxGauss::FormFactorLongBoxGauss(
const std::vector<double> P)
22 {{
"Length",
"nm",
"para_tooltip", 0, +INF, 0},
23 {
"Width",
"nm",
"para_tooltip", 0, +INF, 0},
24 {
"Height",
"nm",
"para_tooltip", 0, +INF, 0}}},
26 m_length(m_P[0]), m_width(m_P[1]), m_height(m_P[2])
31 FormFactorLongBoxGauss::FormFactorLongBoxGauss(
double length,
double width,
double height)
38 complex_t qxL2 = std::pow(m_length * q.
x(), 2) / 2.0;
39 complex_t qyWdiv2 = m_width * q.
y() / 2.0;
40 complex_t qzHdiv2 = m_height * q.
z() / 2.0;
42 return m_height * m_length * m_width *
exp_I(qzHdiv2) * std::exp(-qxL2)
51 m_height - effects.dz_bottom - effects.dz_top);
52 return createTransformedFormFactor(slicedff, rot, effects.position);
57 mP_shape = std::make_unique<Box>(m_length, m_width, m_height);
complex_t exp_I(complex_t z)
Returns exp(I*z), where I is the imaginary unit.
Defines namespace MathFunctions.
T z() const
Returns z-component in cartesian coordinate system.
T y() const
Returns y-component in cartesian coordinate system.
T x() const
Returns x-component in cartesian coordinate system.
Pure virtual interface for rotations.
Class that contains upper and lower limits of the z-coordinate for the slicing of form factors.
double sinc(double x)
sinc function: