CbmRoot
Loading...
Searching...
No Matches
CbmCaParametersBuilder.cxx
Go to the documentation of this file.
1/* Copyright (C) 2025 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergei Zharko [committer] */
4
9
11
12#include "CbmL1DetectorID.h"
13
15
16// ---------------------------------------------------------------------------------------------------------------------
17//
19{
20 LOG(info) << "cbm::ca::ParametersBuilder: constructor";
22 for (size_t iDet = 0; iDet < detNames.size(); ++iDet) {
23 detNames[iDet] = kDetName[iDet];
24 }
25 fBuilder.SetDetNames(detNames);
26 fBuilder.SetGeoSetupFactoryConstructor([&]() {
27 auto pFactory = std::make_unique<cbm::kf::TrackingGeoSetupFactory>(fbRequireHitPresence);
29 return pFactory;
30 }
31
32 // If the hit presence is required, one has to disable the corresponding stations. Let's do it here
33 for (auto detId : kDetIds) {
34 if (pFactory->IsInGeometry(detId) && !pFactory->HasHits(detId)) {
35 LOG(info) << "cbm::ca::ParametersBuilder: disabling " << kDetName[detId] << ", because it did not produce hits";
36 fBuilder.DisableStation(detId, -1);
37 }
38 }
39 return pFactory;
40 });
41}
Implementation of L1DetectorID enum class for CBM.
std::array< std::string, constants::size::MaxNdetectors > DetNamesArray_t
Builds parameters for CBM CA tracking.
cbm::algo::ca::ParametersBuilder fBuilder
Generic CA parameters builder.
bool fbRequireHitPresence
Hit branch requirement.
constexpr DetIdArr_t< const char * > kDetName
Names of detector subsystems.
constexpr DetIdArr_t< ca::EDetectorID > kDetIds
List of detector.