Reported by Carla Gobel:

This is my understanding: (suppose we have the decay D-> R 2, with R -> 1 3)

There is indeed a problem when the mass of the resonance m_R is below the 13 threshold (m_1+m_3) since the triangle function gets negative (so is good to have that protection), but there is not such a problem when m_R is above the upper limit (mD – m_2); the “decay momenta” q(m_R) can still be calculated (lambda is positive).

It is true that above the upper limit you cannot calculate what it would be the “decay momentum” of the bachelor 2, calculated at m_R, in the D frame because lambda(m_D^2, m_R^2,m_2^2) is negative. But there is no *need* to calculate this quantity (you would need this, for instance, to calculate the normalized barrier factor in the vertex D -> R m_3, but you don’t need to normalize it since it just multiplies the amplitude). Explicitly:A = F_D(J) * F_R(J) * BW (s13, m_0, gamma_R) * f_theta

The form factors F_D and F_R are not normalized as factors in the amplitude (they don’t need to, since any normalization there can be absorbed, so just don’t divide them by their value at q(m_R)). In the mass dependent width gamma_R the decay momentum calculated at m_R is needed (both in the normalized F_R(m13)/F_R(m_R) and in the factor [q/q(m_R)]^2J+1) but the quantity q(m_R) is is well defined for any value m_R > (m_1+m_3) (does not matter if m_R > (m_D – m_2))

From inspection of the code it does indeed seem unnecessary to explicitly normalise the two Blatt-Weisskopf factors that multiply the amplitude.

Should modify the code to remove it and check that behaviour is unchanged for both generation and fitting using the various examples.