11 #include <boost/program_options.hpp>
34 template <
typename simulator_t>
36 const Variables& variables, simulator_t&& simulator) {
37 using namespace Acts::UnitLiterals;
44 Config cfg(std::forward<simulator_t>(simulator));
47 const auto pmin = variables[
"fatras-pmin-gev"].as<
double>() * 1
_GeV;
48 cfg.simulator.selectCharged.template get<PMin>().valMin = pmin;
49 cfg.simulator.selectNeutral.template get<PMin>().valMin = pmin;
50 cfg.simulator.charged.physics =
54 if (not variables[
"fatras-em-scattering"].as<bool>()) {
55 cfg.simulator.charged.physics
56 .template disable<ActsFatras::detail::StandardScattering>();
58 if (not variables[
"fatras-em-ionisation"].as<bool>()) {
59 cfg.simulator.charged.physics
60 .template disable<ActsFatras::detail::StandardBetheBloch>();
62 if (not variables[
"fatras-em-radiation"].as<bool>()) {
63 cfg.simulator.charged.physics
64 .template disable<ActsFatras::detail::StandardBetheHeitler>();
68 const std::string
hits = variables[
"fatras-hits"].as<std::string>();
69 if (
hits ==
"sensitive") {
70 ACTS_DEBUG(
"Configure hits on sensitive surfaces");
71 cfg.simulator.charged.selectHitSurface.sensitive =
true;
72 cfg.simulator.charged.selectHitSurface.material =
false;
73 cfg.simulator.charged.selectHitSurface.passive =
false;
74 }
else if (
hits ==
"material") {
75 ACTS_DEBUG(
"Configure hits on material surfaces");
76 cfg.simulator.charged.selectHitSurface.sensitive =
false;
77 cfg.simulator.charged.selectHitSurface.material =
true;
78 cfg.simulator.charged.selectHitSurface.passive =
false;
79 }
else if (
hits ==
"all") {
81 cfg.simulator.charged.selectHitSurface.sensitive =
false;
82 cfg.simulator.charged.selectHitSurface.material =
false;
84 cfg.simulator.charged.selectHitSurface.passive =
true;
88 cfg.simulator.charged.selectHitSurface.sensitive =
false;
89 cfg.simulator.charged.selectHitSurface.material =
false;
90 cfg.simulator.charged.selectHitSurface.passive =
false;