29 throw std::invalid_argument(
"--digits-from-upstream conflicts with --clusters-from-upstream; choose one input stage");
31 if (input.
mode < TrackingMode::Unset || input.
mode > TrackingMode::Off ||
32 aliases.mode < TrackingMode::Unset || aliases.mode > TrackingMode::Off) {
33 throw std::invalid_argument(
"Invalid --tracking-mode or MFTCATrackerParam.trackingMode");
35 if (input.
nThreads <= 0 || aliases.nThreads <= 0) {
36 throw std::invalid_argument(
"--nThreads and MFTCATrackerParam.nThreads must both be > 0");
39 throw std::invalid_argument(
"--disable-tracking conflicts with --run-assessment/--run-tracks2records");
52 if (
result.tracker.mode == TrackingMode::Unset) {
53 result.tracker.mode = TrackingMode::Sync;
55 result.tracker.nThreads = aliases.nThreads;
56 result.tracker.filterIRFrames = aliases.filterIRFrames;
65 if (aliases.mode != TrackingMode::Unset && input.
mode !=
result.tracker.mode) {
66 result.diagnostics.push_back(
"MFTCATrackerParam.trackingMode=" + TrackingMode::toString(
result.tracker.mode) +
67 " overrides --tracking-mode=" + TrackingMode::toString(input.
mode));
69 if (input.
nThreads != aliases.nThreads) {
74 result.diagnostics.push_back(
"--disable-tracking: --use-irframes/MFTTrackingParam.irFramesOnly have no tracker consumer");
78 result.diagnostics.push_back(
"--cluster-rof-branch-only overrides --disable-root-output for the cluster ROF branch");
ConfigParamRegistry & options() const