Constructor.
25 :
26 m_n(n),
27 m_tau(tau),
28 m_g(g) {
29
30 std::transform(shaperType.begin(), shaperType.end(),
31 shaperType.begin(), toupper);
32 if (shaperType == "UNIPOLAR") {
33 m_type = ShaperType::Unipolar;
34 m_tp = m_n * m_tau;
35 m_prefactor =
exp(m_n);
36 m_transfer_func_sq = (
exp(2 * m_n) /
pow(2 * m_n, 2 * m_n)) * m_tp *
37 ROOT::Math::tgamma(2 * m_n);
38 } else if (shaperType == "BIPOLAR") {
39 m_type = ShaperType::Bipolar;
40 const double r = m_n -
sqrt(m_n);
41 m_tp = r * m_tau;
42 m_prefactor =
exp(r) /
sqrt(m_n);
43 m_transfer_func_sq = (
exp(2 * r) /
pow(2 * r, 2 * m_n)) * r * m_tp *
44 ROOT::Math::tgamma(2 * m_n - 1);
45 } else {
46 std::cerr << m_className << ": Unknown shaper type.\n";
47 }
48}
DoubleAc pow(const DoubleAc &f, double p)
DoubleAc exp(const DoubleAc &f)
DoubleAc sqrt(const DoubleAc &f)