30 #include <boost/program_options.hpp>
43 desc, ActsExamples::OutputFormat::Root | ActsExamples::OutputFormat::Obj);
60 auto contextDecorators =
geometry.second;
62 for (
const auto& cdr : contextDecorators) {
68 auto randomNumberSvc =
69 std::make_shared<ActsExamples::RandomNumbers>(randomNumberSvcCfg);
77 bool rootOutput = vm[
"output-root"].template as<bool>();
78 bool objOutput = vm[
"output-obj"].template as<bool>();
80 auto setupPropagator = [&](
auto&&
stepper) {
81 using Stepper = std::decay_t<decltype(stepper)>;
84 navCfg.resolveMaterial = vm[
"prop-resolve-material"].template as<bool>();
85 navCfg.resolvePassive = vm[
"prop-resolve-passive"].template as<bool>();
86 navCfg.resolveSensitive = vm[
"prop-resolve-sensitive"].template as<bool>();
93 pAlgConfig.randomNumberSvc = randomNumberSvc;
94 pAlgConfig.sterileLogger = not rootOutput and not objOutput;
96 pAlgConfig.propagatorImpl =
97 std::make_shared<ActsExamples::ConcretePropagator<Propagator>>(
100 sequencer.
addAlgorithm(std::make_shared<ActsExamples::PropagationAlgorithm>(
105 if (vm[
"prop-stepper"].
template as<int>() == 0) {
107 }
else if (vm[
"prop-stepper"].
template as<int>() == 1) {
109 }
else if (vm[
"prop-stepper"].
template as<int>() == 2) {
116 auto psCollection = vm[
"prop-step-collection"].as<
std::string>();
121 pstepWriterRootConfig.
collection = psCollection;
125 std::make_shared<ActsExamples::RootPropagationStepsWriter>(
126 pstepWriterRootConfig));
131 using ObjPropagationStepsWriter =
136 pstepWriterObjConfig.collection = psCollection;
137 pstepWriterObjConfig.outputDir =
outputDir;
139 std::make_shared<ObjPropagationStepsWriter>(pstepWriterObjConfig));
142 return sequencer.
run();