14#define BOOST_TEST_MODULE ITSMFT ITSCAConfigPreflight
15#define BOOST_TEST_MAIN
16#define BOOST_TEST_DYN_LINK
17#include <boost/test/unit_test.hpp>
22#include <boost/property_tree/ptree.hpp>
23#include <fairlogger/Logger.h>
38struct FatalToExceptionFixture {
39 FatalToExceptionFixture()
41 fair::Logger::OnFatal([]() {
throw std::runtime_error(
"fatal"); });
64 o2::conf::ConfigurableParam::setValue<bool>(
"ITSCommonCATrackerParam",
"useDiamond",
false);
73 o2::conf::ConfigurableParam::setValue<bool>(
"ITSCommonCATrackerParam",
"useDiamond",
false);
76 o2::conf::ConfigurableParam::setValue<bool>(
"ITSCommonCATrackerParam",
"useDiamond",
false);
91 for (
const auto* config : {
"ITSCATrackerParam.trackFollowerTop=1;ITSCommonCATrackerParam.useDiamond=true",
92 "ITSCommonCATrackerParam.useDiamond=true;ITSCATrackerParam.trackFollowerTop=1"}) {
93 o2::conf::ConfigurableParam::setValue<bool>(
"ITSCommonCATrackerParam",
"useDiamond",
false);
101 o2::conf::ConfigurableParam::setValue<bool>(
"ITSCommonCATrackerParam",
"useDiamond",
false);
112 o2::conf::ConfigurableParam::setValue<bool>(
"ITSCommonCATrackerParam",
"dropTFUponFailure",
false);
113 o2::conf::ConfigurableParam::setValue<int>(
"ITSVertexerParam",
"nIterations", 1);
115 ";;ITSCommonCATrackerParam.dropTFUponFailure=true;;;ITSVertexerParam.nIterations=2;;"));
118 o2::conf::ConfigurableParam::setValue<bool>(
"ITSCommonCATrackerParam",
"dropTFUponFailure",
false);
119 o2::conf::ConfigurableParam::setValue<int>(
"ITSVertexerParam",
"nIterations", 1);
124 for (
const auto* config : {
"ITSCATrackerParamNoEquals",
"=ITSCATrackerParam.x",
"ITSCATrackerParam.x="}) {
131 for (
int i = 0;
i < 5; ++
i) {
132 o2::conf::ConfigurableParam::setValue<bool>(
"ITSCommonCATrackerParam",
"useDiamond",
false);
137 o2::conf::ConfigurableParam::setValue<bool>(
"ITSCommonCATrackerParam",
"useDiamond",
false);
150 const std::array<o2::itsmft::TrackingMode::Type, 3> rejected{
152 for (
const auto mode : rejected) {
175 std::vector<ConfigParamSpec> specs{
176 {
"configKeyValues", VariantType::String,
"ITSCommonCATrackerParam.useDiamond=false;ITSVertexerParam.useTruthSeeding=false", {
"parameters"}},
177 {
"tracking-mode", VariantType::String,
"async", {
"mode"}},
178 {
"vertex-source", VariantType::String,
"truth", {
"vertices"}},
179 {
"truth-context", VariantType::String,
"custom-context.root", {
"context"}},
180 {
"disable-mc", VariantType::Bool,
true, {
"MC labels"}},
181 {
"disable-root-output", VariantType::Bool,
false, {
"output"}},
182 {
"use-geom", VariantType::Bool,
false, {
"geometry"}},
183 {
"use-full-geometry", VariantType::Bool,
true, {
"geometry alias"}}};
184 auto store = std::make_unique<ConfigParamStore>(specs, std::vector<std::unique_ptr<ParamRetriever>>{});
190 registry.override(
"configKeyValues", std::string{
"ITSCommonCATrackerParam.trackingMode=0"});
192 registry.override(
"configKeyValues", std::string{
"ITSCommonCATrackerParam.trackingMode=-1"});
195 BOOST_CHECK(resolved.vertexSource == VertexSource::Truth);
199 registry.override(
"truth-context", std::string{});
201 registry.override(
"vertex-source", std::string{
"diamond"});
203 registry.override(
"configKeyValues", std::string{
"ITSCommonCATrackerParam.nThreads=0"});
205 o2::conf::ConfigurableParam::setValue<int>(
"ITSCommonCATrackerParam",
"nThreads", 1);
Driver-level configuration and vertex-constraint preflight for the ITS common-CA tracker workflow.
static const TrackerParamConfig< Detector > & Instance()
Defining ITS Vertex explicitly as messageable.
WorkflowOptions readWorkflowOptions(const o2::framework::ConfigContext &)
void requireSupportedTrackingModeOrFatal(o2::itsmft::TrackingMode::Type mode)
void applyConfigKeyValuesOrFatal(const std::string &configKeyValues)
VertexSource resolveVertexSource(const std::string &explicitSource, bool useDiamond, bool useTruth)
BOOST_AUTO_TEST_CASE(VertexSelectionIsExplicitAndLegacyAliasesMustAgree)
BOOST_FIXTURE_TEST_CASE(LegacyNamespaceIsRejectedBeforeAnyUpdate, FatalToExceptionFixture)
BOOST_CHECK_NO_THROW(algorithm::merge(target, other))
BOOST_CHECK_EQUAL(triggersD.size(), triggers.size())