131 m_RNGEngine->setSeed(name(), ctx);
132 CLHEP::HepRandomEngine *LRAEngine(m_RNGEngine->getEngine(ctx));
137 auto Comparison = [](
const auto &LHS,
const auto &RHS)
140 auto [lx, ly, lz, i] = LHS;
141 auto [rx, ry,
rz, t] = RHS;
147 auto GetCoordinate = [](
const auto Axis,
const auto Bin,
const auto V)
149 return(Axis->GetBinLowEdge(Bin) + (V * Axis->GetBinWidth(Bin)));
153 auto [xBin, yBin, zBin, Integral] = *(std::lower_bound(
m_Integral.cbegin(),
155 std::make_tuple(0, 0, 0, CLHEP::RandFlat::shoot(LRAEngine)),
159 CLHEP::HepLorentzVector *vertexPosition =
new CLHEP::HepLorentzVector(GetCoordinate(
m_xAxis, xBin, CLHEP::RandFlat::shoot(LRAEngine)),
160 GetCoordinate(
m_yAxis, yBin, CLHEP::RandFlat::shoot(LRAEngine)),
161 GetCoordinate(
m_zAxis, zBin, CLHEP::RandFlat::shoot(LRAEngine)),
171 return(vertexPosition);