19 edm::LogInfo(
"Pythia8Interface") <<
"Creating a SuepShower module";
27 tolerance_ = boost::math::tools::eps_tolerance<double>(128);
33 p_plus_ = (boost::math::tools::bisect(
36 p_minus_ = (boost::math::tools::bisect(
52 std::vector<Pythia8::Vec4> shower;
53 double shower_energy = 0.0;
58 shower_energy += (shower.back()).
e();
64 for (
const auto& daughter : shower) {
65 correction = correction + daughter;
67 correction = correction / shower.size();
70 for (
auto& daughter : shower) {
71 daughter = daughter - correction;
77 (boost::math::tools::bisect(
81 for (
auto& daughter : shower) {
82 daughter.px(daughter.px() *
scale);
83 daughter.py(daughter.py() *
scale);
84 daughter.pz(daughter.pz() *
scale);
110 double U, V,
X,
Y, E;
144 theta = acos(2.0 * (
fRndmPtr_->flat()) - 1.0);
147 en =
sqrt(momentum * momentum + darkmeson_mass_ * darkmeson_mass_);
150 return daughterFourMomentum;
157 double showerEnergy = 0.0;
158 for (
const auto& daughter : shower) {
const double reballanceFunction(double scale, const std::vector< Pythia8::Vec4 > &shower)
Sin< T >::type sin(const T &t)
Geom::Theta< T > theta() const
Pythia8::Rndm * fRndmPtr_
boost::math::tools::eps_tolerance< double > tolerance_
Cos< T >::type cos(const T &t)
const double fMaxwellBoltzmannPrime(double p)
const double logTestFunction(double p)
const Pythia8::Vec4 generateFourVector()
SuepShower(double mass, double temperature, Pythia8::Rndm *rndmPtr)
const double fMaxwellBoltzmann(double p)
std::vector< Pythia8::Vec4 > generateShower(double energy)