24 #include "fwd/FourVector.h"
43 template <
class Generator>
44 const std::vector<FourVector<double> >
phsp(
const Model& M,
double initial_mass,
const MassAxes& A,
const std::vector<MassRange>& R2, Generator& g,
unsigned max_attempts)
46 static std::uniform_real_distribution<double> uniform(0, std::nextafter(1., 2.));
49 std::vector<double> m2(R2.size(), 0);
50 std::vector<FourVector<double> > P;
52 for (
unsigned n = 0; n < max_attempts && P.empty(); ++n) {
54 std::transform(R2.begin(), R2.end(), m2.begin(), [&](
const MassRange & r2) {
return r2[0] + (r2[1] - r2[0]) * uniform(g);});
std::vector< FourVector< double > > calculate_four_momenta(double initial_mass, const FinalStateParticleVector &FPSs, const MassAxes &axes, const std::vector< double > &squared_masses)
Definition: FourMomenta.cxx:218
ParticleCombinationVector specialized to contain axes for defining a phase-space coordinate.
Definition: MassAxes.h:31
const std::vector< FourVector< double > > phsp(const Model &M, double initial_mass, const MassAxes &A, const std::vector< MassRange > &R2, Generator &g, unsigned max_attempts)
Definition: PHSP.h:44
Class implementing a PWA model.
Definition: Model.h:56