12#define BOOST_TEST_MODULE MFT CA Tracking Configuration
13#define BOOST_TEST_DYN_LINK
15#include <boost/test/unit_test.hpp>
20#include <TDataMember.h>
39struct RestoreConfiguration {
40 ~RestoreConfiguration()
42 ConfigurableParam::updateFromString(
"MFTCATrackerParam.nIterations=-1;MFTCATrackerParam.startLayerMask[0]=0");
59 BOOST_CHECK_LT(async[2].TrackletMinPt, async[0].TrackletMinPt);
60 BOOST_CHECK_LT(async[2].MinTrackLength, async[0].MinTrackLength);
65 for (
const int count : {1, 2, 3}) {
69 for (
const int count : {0, -2, 4}) {
83 for (
const uint32_t
mask : {uint32_t{1} << 8, uint32_t{1} << 9, (uint32_t{1} << 8) | (uint32_t{1} << 9)}) {
87 BOOST_REQUIRE(topology.ok());
89 for (
const auto path : topology.topology->roadStartPaths) {
90 const auto edge = topology.topology->paths[
path.value()].second;
91 actual.set(topology.topology->edges[edge.value()].to.value());
100 auto* dictionary = TClass::GetClass(
typeid(
MFTParam));
101 BOOST_REQUIRE(dictionary);
102 auto* member = dictionary->GetDataMember(
"startLayerMask");
103 BOOST_REQUIRE(member);
113 std::array<SurfaceChartRange, MFTNLayers> ranges;
114 ranges.fill({0.f, 16.f});
125 for (
const auto* field : {
"minTrackLgtIter[0]",
"minPtIterLgt[0]"}) {
126 const std::string
key = std::string{
"MFTCATrackerParam."} + field;
130 BOOST_CHECK_EXCEPTION(resolve(
mode), std::invalid_argument,
131 [&
key](
const auto& error) {
return std::string{error.what()}.find(
key.substr(0,
key.find(
'['))) != std::string::npos; });
Shared CA tracking configuration for ITS and MFT.
static int initFieldFromGRP(const o2::parameters::GRPMagField *grp, bool verbose=false)
static const TrackerParamConfig< Detector > & Instance()
static void updateFromString(std::string const &)
GLsizei const GLchar *const * path
std::vector< TrackingParameters > referenceTrackingParameters(o2::detectors::DetID::ID detector, TrackingMode::Type mode)
constexpr int MaxIter
Maximum CA iterations.
constexpr std::array< SurfaceDescriptor, MFTNLayers > kMFTSurfaces
constexpr int MFTNLayers
MFT CA half-disk layer count.
bool configureIndexTableUtils(o2::itsmft::IndexTableUtilsCore &destination, const DetectorParameters ¶ms, int activeSurfaceCount, SurfaceKind kind, gsl::span< const SurfaceChartRange > chartRanges) noexcept
TraversalTopologyBuildResult deriveTraversalTopology(const DetectorConfiguration &layout, const o2::itsmft::IterationParameters ¶meters)
TrackerParamConfig< o2::detectors::DetID::MFT > MFTCATrackerParam
BOOST_AUTO_TEST_CASE(Cluster_messageable)
std::string to_string(gsl::span< T, Size > span)
BOOST_FIXTURE_TEST_CASE(ParserPassLimitsAreExplicitAndChecked, RestoreConfiguration)
BOOST_TEST_GLOBAL_FIXTURE(FieldFixture)
BOOST_CHECK_NO_THROW(algorithm::merge(target, other))
BOOST_CHECK_EQUAL(triggersD.size(), triggers.size())