38 using namespace Acts::UnitLiterals;
39 using namespace ActsExamples;
42 int argc,
char* argv[],
43 const std::shared_ptr<ActsExamples::IBaseDetector>&
detector) {
54 detector->addOptions(desc);
71 auto rnd = std::make_shared<const ActsExamples::RandomNumbers>(
74 if (vm[
"fit-directed-navigation"].as<bool>()) {
75 throw std::runtime_error(
76 "Directed navigation not supported anymore in the examples binaries."
77 "Please refer to the RefittingAlgorithm in the python bindings.");
84 for (
const auto& cdr :
geometry.second) {
97 simHitReaderCfg.outputSimHits);
104 particleSelectorCfg.
inputParticles = particleReader.outputParticles;
106 digiCfg.outputMeasurementParticlesMap;
109 particleSelectorCfg.
ptMin = 500._MeV;
111 std::make_shared<TruthSeedSelector>(particleSelectorCfg,
logLevel));
117 auto particleSmearingCfg =
127 digiCfg.outputMeasurementParticlesMap;
130 std::make_shared<TruthTrackFinder>(trackFinderCfg,
logLevel));
133 const double reverseFilteringMomThreshold = 0.0;
139 particleSmearingCfg.outputTrackParameters;
141 fitter.
pickTrack = vm[
"fit-pick-track"].as<
int>();
144 vm[
"fit-multiple-scattering-correction"].as<bool>(),
145 vm[
"fit-energy-loss-correction"].as<bool>(), reverseFilteringMomThreshold,
147 vm[
"fit-ftob-nonlinear-correction"].as<bool>()));
149 std::make_shared<TrackFittingAlgorithm>(fitter,
logLevel));
153 tracksToTrajCfg.outputTrajectories =
"trajectories";
155 (std::make_shared<TracksToTrajectories>(tracksToTrajCfg,
logLevel)));
161 trackStatesWriter.
inputSimHits = simHitReaderCfg.outputSimHits;
163 digiCfg.outputMeasurementParticlesMap;
165 digiCfg.outputMeasurementSimHitsMap;
167 sequencer.
addWriter(std::make_shared<RootTrajectoryStatesWriter>(
175 digiCfg.outputMeasurementParticlesMap;
177 sequencer.
addWriter(std::make_shared<RootTrajectorySummaryWriter>(
186 digiCfg.outputMeasurementParticlesMap;
189 std::make_shared<TrackFinderPerformanceWriter>(perfFinder,
logLevel));
195 digiCfg.outputMeasurementParticlesMap;
198 std::make_shared<TrackFitterPerformanceWriter>(perfFitter,
logLevel));
200 return sequencer.
run();