66 rngWrapper->
setSeed(name(), ctx);
67 CLHEP::HepRandomEngine *rngEngine = rngWrapper->
getEngine(ctx);
76 double etaMin = etaRange.at(0);
77 double etaMax = etaRange.at(1);
78 double eta = rngEngine->flat() * std::abs(etaMax - etaMin) + etaMin;
81 double ptMin = ptRange.at(0) * 1_GeV;
82 double ptMax = ptRange.at(1) * 1_GeV;
84 double pt = rngEngine->flat() * std::abs(ptMax - ptMin) + ptMin;
86 Acts::Vector3 momentum(pt * std::cos(
phi), pt * std::sin(
phi),
89 double theta = Acts::VectorHelpers::theta(momentum);
91 double charge = rngEngine->flat() > 0.5 ? -1 : 1;
93 double qop =
charge / momentum.norm();
95 std::shared_ptr<Acts::PerigeeSurface> surface =
96 Acts::Surface::makeShared<Acts::PerigeeSurface>(
97 Acts::Vector3(0, 0, 0));
102 Acts::BoundVector pars;
105 std::optional<Acts::BoundSquareMatrix> cov = std::nullopt;
108 PropagationOutput output;
112 Acts::GenericBoundTrackParameters startParameters(std::move(surface), std::move(pars), std::move(cov), Acts::ParticleHypothesis::pion());
114 if(output.first.size() == 0) {
123 track.first.first = Acts::Vector3::Zero();
124 track.first.second = momentum;
125 track.second = std::move(output.second);
133 return StatusCode::SUCCESS;