From 830cf40a3bd062fa639ea77685eacd44e0ce3706 Mon Sep 17 00:00:00 2001 From: "s.zharko@gsi.de" <s.zharko@gsi.de> Date: Wed, 25 Sep 2024 14:53:06 +0200 Subject: [PATCH] CA: replaced the TrackingSetupBuilder class from KfCbm to L1; disable detectors, which are not used in a particular TrackingMode, directly in corresponding yaml-configs --- macro/L1/configs/ca_params_global.yaml | 8 ++-- macro/L1/configs/ca_params_mcbm.yaml | 2 +- macro/L1/configs/ca_params_sts.yaml | 2 +- reco/L1/CMakeLists.txt | 2 + .../CbmCaTrackingSetupBuilder.cxx} | 39 ++++++++++--------- .../CbmCaTrackingSetupBuilder.h} | 22 ++--------- reco/L1/CbmL1.cxx | 5 +-- reco/L1/qa/CbmCaInputQaSetup.cxx | 4 +- reco/L1/qa/CbmCaOutputQa.cxx | 4 +- reco/kfnew/CMakeLists.txt | 6 +-- 10 files changed, 39 insertions(+), 55 deletions(-) rename reco/{kfnew/CbmKfTrackingSetupBuilder.cxx => L1/CbmCaTrackingSetupBuilder.cxx} (76%) rename reco/{kfnew/CbmKfTrackingSetupBuilder.h => L1/CbmCaTrackingSetupBuilder.h} (85%) diff --git a/macro/L1/configs/ca_params_global.yaml b/macro/L1/configs/ca_params_global.yaml index 21ccb193a7..da809e59a7 100644 --- a/macro/L1/configs/ca_params_global.yaml +++ b/macro/L1/configs/ca_params_global.yaml @@ -20,12 +20,12 @@ ca: # interface classes). If there is no index provided, the whole detector subsystem is skept. # Examples: # 1) Turn the first and the second STS in the geometry and the full TRD detector off - # inactive_stations: [STS:0', 'STS:1', 'TRD'] + # inactive_stations: ['STS:0', 'STS:1', 'TRD'] # 2) Turn first TOF station in the geometry off - # inactive_stations: [TOF:0] + # inactive_stations: ['TOF:0'] # 3) Turn the full TOF off - # inactive_stations: [TOF] - inactive_stations: [] + # inactive_stations: ['TOF'] + inactive_stations: ['MVD', 'STS', 'MUCH', 'TOF'] # Random seed random_seed: 1 diff --git a/macro/L1/configs/ca_params_mcbm.yaml b/macro/L1/configs/ca_params_mcbm.yaml index d2ed450988..32e9d082c9 100644 --- a/macro/L1/configs/ca_params_mcbm.yaml +++ b/macro/L1/configs/ca_params_mcbm.yaml @@ -26,7 +26,7 @@ ca: # 3) Turn the full TOF off # inactive_stations: [TOF] #inactive_stations: ['MUCH'] - inactive_stations: ['MUCH'] + inactive_stations: ['MVD', 'MUCH'] # Misalignment tolerances x[cm], y[cm], t[ns] misalignment_tolerance: diff --git a/macro/L1/configs/ca_params_sts.yaml b/macro/L1/configs/ca_params_sts.yaml index a07925ea18..401dcf2adb 100644 --- a/macro/L1/configs/ca_params_sts.yaml +++ b/macro/L1/configs/ca_params_sts.yaml @@ -25,7 +25,7 @@ ca: # inactive_stations: [TOF:0] # 3) Turn the full TOF off # inactive_stations: [TOF] - inactive_stations: [] + inactive_stations: ['MUCH', 'TRD', 'TOF'] # Random seed random_seed: 1 diff --git a/reco/L1/CMakeLists.txt b/reco/L1/CMakeLists.txt index 8d8b26c1ae..4a28187d77 100644 --- a/reco/L1/CMakeLists.txt +++ b/reco/L1/CMakeLists.txt @@ -26,6 +26,7 @@ set(SRCS ########################################################################### CbmCaMCModule.cxx CbmCaTimeSliceReader.cxx + CbmCaTrackingSetupBuilder.cxx CbmL1.cxx OffLineInterface/CbmL1StsTrackFinder.cxx @@ -77,6 +78,7 @@ set(HEADERS CbmL1Track.h CbmL1Vtx.h CbmCaTimeSliceReader.h + CbmCaTrackingSetupBuilder.h L1Algo/utils/CaUvConverter.h catools/CaToolsWindowFinder.h catools/CaToolsLinkKey.h diff --git a/reco/kfnew/CbmKfTrackingSetupBuilder.cxx b/reco/L1/CbmCaTrackingSetupBuilder.cxx similarity index 76% rename from reco/kfnew/CbmKfTrackingSetupBuilder.cxx rename to reco/L1/CbmCaTrackingSetupBuilder.cxx index 25a491084b..c0c29668b7 100644 --- a/reco/kfnew/CbmKfTrackingSetupBuilder.cxx +++ b/reco/L1/CbmCaTrackingSetupBuilder.cxx @@ -7,10 +7,11 @@ /// \since 28.08.2024 /// \author Sergei Zharko <s.zharko@gsi.de> -#include "CbmKfTrackingSetupBuilder.h" +#include "CbmCaTrackingSetupBuilder.h" #include "CbmKfOriginalField.h" #include "CbmKfTarget.h" +#include "CbmL1DetectorID.h" #include "CbmMuchTrackingInterface.h" #include "CbmMvdTrackingInterface.h" #include "CbmSetup.h" @@ -25,7 +26,7 @@ #include <functional> -using cbm::kf::TrackingSetupBuilder; +using cbm::ca::TrackingSetupBuilder; using kf::tools::MaterialMapFactory; // --------------------------------------------------------------------------------------------------------------------- @@ -54,40 +55,40 @@ try { && fabs(pField->GetBx(0., 0., 0.)) < MinField< double> && fabs(pField->GetBy(0., 0., 0.)) < MinField<double> && fabs(pField->GetBz(0., 0., 0.)) < MinField<double>) { LOG(info) << "!!!!!!!!!!!!!!!!!!! A"; - fBuilder.SetFieldFunction(ZeroField(), EFieldType::Null); + fBuilder.SetFieldFunction(cbm::kf::ZeroField(), EFieldType::Null); } else { LOG(info) << "!!!!!!!!!!!!!!!!!!! B"; - fBuilder.SetFieldFunction(OriginalField(), EFieldType::Normal); + fBuilder.SetFieldFunction(cbm::kf::OriginalField(), EFieldType::Normal); } } else { LOG(info) << "!!!!!!!!!!!!!!!!!!! C"; - fBuilder.SetFieldFunction(ZeroField(), EFieldType::Null); + fBuilder.SetFieldFunction(cbm::kf::ZeroField(), EFieldType::Null); } // Tracking station property initialization - auto CollectStations = [&](const auto* pIfs, ETrackingDetID detID) -> void { + auto CollectStations = [&](const auto* pIfs, ca::EDetectorID detID) -> void { if (!pIfs) { return; } for (int iSt = 0; iSt < pIfs->GetNtrackingStations(); ++iSt) { fBuilder.AddLayer( - GeoLayer<ETrackingDetID>{detID, // ca::Tracking detector id scheme - iSt, // ca::Tracking station indexing - pIfs->GetZref(iSt), pIfs->GetZmin(iSt), pIfs->GetZmax(iSt), - std::max(std::fabs(pIfs->GetXmin(iSt)), std::fabs(pIfs->GetXmax(iSt))), - std::max(std::fabs(pIfs->GetYmin(iSt)), std::fabs(pIfs->GetYmax(iSt)))}); + GeoLayer<ca::EDetectorID>{detID, // ca::Tracking detector id scheme + iSt, // ca::Tracking station indexing + pIfs->GetZref(iSt), pIfs->GetZmin(iSt), pIfs->GetZmax(iSt), + std::max(std::fabs(pIfs->GetXmin(iSt)), std::fabs(pIfs->GetXmax(iSt))), + std::max(std::fabs(pIfs->GetYmin(iSt)), std::fabs(pIfs->GetYmax(iSt)))}); } }; - CollectStations(fbUseMvd ? CbmMvdTrackingInterface::Instance() : nullptr, ETrackingDetID::Mvd); - CollectStations(fbUseSts ? CbmStsTrackingInterface::Instance() : nullptr, ETrackingDetID::Sts); - CollectStations(fbUseMuch ? CbmMuchTrackingInterface::Instance() : nullptr, ETrackingDetID::Much); - CollectStations(fbUseTrd ? CbmTrdTrackingInterface::Instance() : nullptr, ETrackingDetID::Trd); - CollectStations(fbUseTof ? CbmTofTrackingInterface::Instance() : nullptr, ETrackingDetID::Tof); + CollectStations(fbUseMvd ? CbmMvdTrackingInterface::Instance() : nullptr, ca::EDetectorID::kMvd); + CollectStations(fbUseSts ? CbmStsTrackingInterface::Instance() : nullptr, ca::EDetectorID::kSts); + CollectStations(fbUseMuch ? CbmMuchTrackingInterface::Instance() : nullptr, ca::EDetectorID::kMuch); + CollectStations(fbUseTrd ? CbmTrdTrackingInterface::Instance() : nullptr, ca::EDetectorID::kTrd); + CollectStations(fbUseTof ? CbmTofTrackingInterface::Instance() : nullptr, ca::EDetectorID::kTof); // Retrieve target properties - const auto* pTarget = Target::Instance(); + const auto* pTarget = cbm::kf::Target::Instance(); fBuilder.SetTargetProperty(pTarget->GetX(), pTarget->GetY(), pTarget->GetZ(), pTarget->GetDz(), pTarget->GetRmax()); // Init material map creator @@ -100,11 +101,11 @@ try { // Set the initialization flags back fbInitialized = true; - LOG(info) << "kf::TrackingSetupBuilder: Tracking setup was initialized successfully"; + LOG(info) << "ca::TrackingSetupBuilder: Tracking setup was initialized successfully"; return true; } catch (const std::exception& err) { - LOG(error) << "kf::TrackingSetupBuilder: Tracking setup was not initialized. Reason: " << err.what(); + LOG(error) << "ca::TrackingSetupBuilder: Tracking setup was not initialized. Reason: " << err.what(); return false; } diff --git a/reco/kfnew/CbmKfTrackingSetupBuilder.h b/reco/L1/CbmCaTrackingSetupBuilder.h similarity index 85% rename from reco/kfnew/CbmKfTrackingSetupBuilder.h rename to reco/L1/CbmCaTrackingSetupBuilder.h index b9ee379660..4cfd16113c 100644 --- a/reco/kfnew/CbmKfTrackingSetupBuilder.h +++ b/reco/L1/CbmCaTrackingSetupBuilder.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: GPL-3.0-only Authors: Sergei Zharko [committer] */ -/// \file CbmKfTrackingSetupBuilder.h +/// \file CbmCaTrackingSetupBuilder.h /// \brief Tracking setup initializer in CBM (source) /// \since 28.08.2024 /// \author Sergei Zharko <s.zharko@gsi.de> @@ -14,24 +14,8 @@ #include <mutex> #include <tuple> -namespace cbm::kf +namespace cbm::ca { - /// \enum ETrackingDetID - /// \brief Enumeration for tracking detector subsystems - /// - // TODO: SZh 12.09.2024: For me it's unclear, if we should move this entire file to CbmL1, or move the tracking - // detector IDs declaration here. For now this enum should fully follow the definition - // of cbm::algo::ca::EDetectorID. - enum class ETrackingDetID - { - Mvd = 0, - Sts, - Much, - Trd, - Tof, - END - }; - /// \class TrackingSetupBuilder /// \brief Encapsulation of the kf::Setup initialization routines for CBM class TrackingSetupBuilder { @@ -103,4 +87,4 @@ namespace cbm::kf }; -} // namespace cbm::kf +} // namespace cbm::ca diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx index 4bc801f481..4bc93774b0 100644 --- a/reco/L1/CbmL1.cxx +++ b/reco/L1/CbmL1.cxx @@ -37,8 +37,8 @@ #include "CaHit.h" #include "CaToolsDebugger.h" #include "CaToolsField.h" +#include "CbmCaTrackingSetupBuilder.h" #include "CbmEvent.h" -#include "CbmKfTrackingSetupBuilder.h" #include "CbmMCDataObject.h" #include "CbmStsFindTracks.h" #include "CbmStsHit.h" @@ -74,7 +74,6 @@ using cbm::algo::ca::Parameters; using cbm::ca::MCModule; using cbm::ca::TimeSliceReader; using cbm::ca::tools::MaterialHelper; -using cbm::kf::TrackingSetupBuilder; ClassImp(CbmL1); @@ -497,7 +496,7 @@ try { // ** Initialize KF-setup ** // ************************* { - auto* pSetupBuilder = TrackingSetupBuilder::Instance(); + auto* pSetupBuilder = cbm::ca::TrackingSetupBuilder::Instance(); pSetupBuilder->Use(fUseMVD, fUseSTS, fUseMUCH, fUseTRD, fUseTOF); auto trackerSetup = pSetupBuilder->MakeSetup<float>(cbm::algo::kf::EFieldMode::Intrpl); TString outputFile = fSTAPDataDir + "/" + fSTAPDataPrefix + "." + TString(kSTAPSetupSuffix.data()); diff --git a/reco/L1/qa/CbmCaInputQaSetup.cxx b/reco/L1/qa/CbmCaInputQaSetup.cxx index f90eac7f93..ed1d3d2d69 100644 --- a/reco/L1/qa/CbmCaInputQaSetup.cxx +++ b/reco/L1/qa/CbmCaInputQaSetup.cxx @@ -10,7 +10,7 @@ #include "CbmCaInputQaSetup.h" #include "CaInitManager.h" -#include "CbmKfTrackingSetupBuilder.h" +#include "CbmCaTrackingSetupBuilder.h" #include "CbmMCDataManager.h" #include "FairRootManager.h" #include "TAxis.h" @@ -262,7 +262,7 @@ try { bool bMuch{manager.IsPresent(ca::EDetectorID::kMuch)}; bool bTrd{manager.IsPresent(ca::EDetectorID::kTrd)}; bool bTof{manager.IsPresent(ca::EDetectorID::kTof)}; - auto* pSetupBuilder = cbm::kf::TrackingSetupBuilder::Instance(); + auto* pSetupBuilder = cbm::ca::TrackingSetupBuilder::Instance(); pSetupBuilder->Use(bMvd, bSts, bMuch, bTrd, bTof); manager.SetGeometrySetup(pSetupBuilder->MakeSetup<ca::fvec>(cbm::algo::kf::EFieldMode::Intrpl)); fpParameters = std::make_unique<ca::Parameters<ca::fvec>>(manager.TakeParameters()); diff --git a/reco/L1/qa/CbmCaOutputQa.cxx b/reco/L1/qa/CbmCaOutputQa.cxx index fa62462616..59ed3c4d64 100644 --- a/reco/L1/qa/CbmCaOutputQa.cxx +++ b/reco/L1/qa/CbmCaOutputQa.cxx @@ -11,7 +11,7 @@ #include "CaInitManager.h" #include "CbmCaMCModule.h" -#include "CbmKfTrackingSetupBuilder.h" +#include "CbmCaTrackingSetupBuilder.h" #include "CbmQaCanvas.h" #include "FairRootManager.h" #include "Logger.h" @@ -804,7 +804,7 @@ try { bool bMuch{manager.IsPresent(ca::EDetectorID::kMuch)}; bool bTrd{manager.IsPresent(ca::EDetectorID::kTrd)}; bool bTof{manager.IsPresent(ca::EDetectorID::kTof)}; - auto* pSetupBuilder = cbm::kf::TrackingSetupBuilder::Instance(); + auto* pSetupBuilder = cbm::ca::TrackingSetupBuilder::Instance(); pSetupBuilder->Use(bMvd, bSts, bMuch, bTrd, bTof); manager.SetGeometrySetup(pSetupBuilder->MakeSetup<ca::fvec>(cbm::algo::kf::EFieldMode::Intrpl)); fpParameters = std::make_shared<ca::Parameters<ca::fvec>>(manager.TakeParameters()); diff --git a/reco/kfnew/CMakeLists.txt b/reco/kfnew/CMakeLists.txt index 98e15d274b..95833479bf 100644 --- a/reco/kfnew/CMakeLists.txt +++ b/reco/kfnew/CMakeLists.txt @@ -6,7 +6,6 @@ set(INCLUDE_DIRECTORIES set(SRCS ${CMAKE_CURRENT_SOURCE_DIR}/CbmKfTarget.cxx - ${CMAKE_CURRENT_SOURCE_DIR}/CbmKfTrackingSetupBuilder.cxx ) SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS "-O3") @@ -44,8 +43,8 @@ target_link_libraries(KfCbm ROOT::Graf ROOT::Physics fmt::fmt - PRIVATE KfTools - CbmRecoSts + KfTools + PRIVATE CbmRecoSts CbmSimSteer CbmRecoBase KFParticle @@ -73,7 +72,6 @@ install( FILES CbmKfOriginalField.h CbmKfTarget.h - CbmKfTrackingSetupBuilder.h DESTINATION include/ ) -- GitLab