diff --git a/algo/CMakeLists.txt b/algo/CMakeLists.txt
index 9de6731fcd03d154c9fe2b33b246accd127cb65e..3790983c8a3d1fee99bd2a0c885ca2b8f89aa3a3 100644
--- a/algo/CMakeLists.txt
+++ b/algo/CMakeLists.txt
@@ -238,6 +238,7 @@ install(
     global/RecoResultsOutputArchive.h
     global/StorableRecoResults.h
     ca/TrackingChain.h
+    ca/TrackingChainConfig.h
     # NOTE: SZh 20.11.2023:
     #       The ca/qa directory depends on the online qa classes, so for now it has to be a part of the Algo library.
     ca/qa/CaQaBuilder.h
diff --git a/algo/ca/TrackingChain.cxx b/algo/ca/TrackingChain.cxx
index a16a285ef205c7e51df9dd23289d0b6c58ba087c..58d90696c7c5db4d26f3c7fec028f5ca33c87dde 100644
--- a/algo/ca/TrackingChain.cxx
+++ b/algo/ca/TrackingChain.cxx
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
+/* Copyright (C) 2023-2024 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Sergei Zharko [committer] */
 
@@ -13,6 +13,8 @@
 #include "CaHit.h"
 #include "CaInitManager.h"
 #include "CaParameters.h"
+#include "TrackingChainConfig.h"
+#include "config/Yaml.h"
 #include "tof/Config.h"
 
 #include <fstream>
@@ -40,10 +42,11 @@ TrackingChain::TrackingChain(std::shared_ptr<HistogramSender> histoSender) : fQa
 //
 void TrackingChain::Init()
 {
+  // ------ Read tracking chain parameters from the config
+  auto config = config::ReadFromFile<TrackingChainConfig>(Opts().ParamsDir() / "CaConfig.yaml");
+
   // ------ Read parameters from binary
-  std::string paramFileBase = "mcbm_beam_2022_05_23_nickel.ca.par";  // TODO: Get the setup name from Opts()
-  auto paramFile            = Opts().ParamsDir();
-  paramFile /= paramFileBase;
+  auto paramFile = Opts().ParamsDir() / config.fsParName;
   L_(info) << "Tracking Chain: reading CA parameters file " << GNb << paramFile.string() << CL << '\n';
   auto manager = InitManager{};
   manager.ReadParametersObject(paramFile.string());
@@ -52,6 +55,7 @@ void TrackingChain::Init()
 
   // ------ Initialize CA framework
   fCaMonitor.Reset();
+  fCaFramework.SetNofThreads(config.fNofThreads);
   fCaFramework.Init(ca::Framework::TrackingMode::kMcbm);
   fCaFramework.ReceiveParameters(std::move(parameters));
 
diff --git a/algo/ca/TrackingChain.h b/algo/ca/TrackingChain.h
index 782a6c67a88617c255858be345f92baf6a24acf9..694ed96be230008a4c12c7c6435a32b227ad66f4 100644
--- a/algo/ca/TrackingChain.h
+++ b/algo/ca/TrackingChain.h
@@ -23,7 +23,6 @@
 #include "TrackingDefs.h"
 #include "sts/Hit.h"
 #include "tof/Hit.h"
-
 #include <memory>
 #include <vector>
 
diff --git a/algo/ca/TrackingChainConfig.h b/algo/ca/TrackingChainConfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..bf765e927aa5a307e047e61ad94d1d9954941a3f
--- /dev/null
+++ b/algo/ca/TrackingChainConfig.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2024 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
+   SPDX-License-Identifier: GPL-3.0-only
+   Authors: Sergei Zharko [committer] */
+
+/// \file   TrackingChainConfig.h
+/// \date   18.02.2024
+/// \brief  A configuration reader for the TrackingChain class
+/// \author Sergei Zharko <s.zharko@gsi.de>
+
+#pragma once
+
+#include "config/Property.h"
+
+#include <string>
+#include <tuple>
+
+namespace cbm::algo
+{
+  /// \struct TrackingChainConfig
+  /// \brief Configuration reader for the TrackingChain class
+  struct TrackingChainConfig {
+    int fNofThreads;        ///< Number of threads for tracking
+    std::string fsParName;  ///< Tracking parameter file name
+
+    static constexpr auto Properties =
+      std::make_tuple(config::Property(&TrackingChainConfig::fNofThreads, "NofThreads", "Number of threads"),
+                      config::Property(&TrackingChainConfig::fsParName, "ParName", "CA parameters input"));
+  };
+}  // namespace cbm::algo
diff --git a/algo/ca/core/tracking/CaFramework.h b/algo/ca/core/tracking/CaFramework.h
index 40943de475ca7acab36411dd0e4684b0ca12f1b6..2aa292e237a636179a2d61f508bf062b5e58b254 100644
--- a/algo/ca/core/tracking/CaFramework.h
+++ b/algo/ca/core/tracking/CaFramework.h
@@ -197,7 +197,7 @@ namespace cbm::algo::ca
     // const CbmL1MCTrack* GetMcTrackForWindowHit(int iHit) const;
 
     /// \brief Sets number of threads
-    void SetNofThtreads(int nThreads)
+    void SetNofThreads(int nThreads)
     {
       fNofThreads = nThreads;
       assert(nThreads > 0);