diff --git a/macro/L1/configs/ca_params_global.yaml b/macro/L1/configs/ca_params_global.yaml index 21ccb193a7e5a7df3deea7b8007ea62d507277a3..da809e59a76b58361bfba29a7269d358f43029e3 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 d2ed450988e006c8dc866f3817a099999342ae91..32e9d082c929a0d4997ac121252f2117f91d6f2c 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 a07925ea189790a1f21cf731ced1f3f917aaa28d..401dcf2adbee259dfd4d519571fd696817cd5c2b 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 8d8b26c1ae462cf45a9dbc16a4691ab66e0a59eb..4a28187d77cbae4a4d4cd6fbfe91c3f6bd82cd9f 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 25a491084b544541f103d36f82c616f960da36a1..c0c29668b7475f9a5a41a7fb87e409ffea4051c0 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 b9ee379660e20c8615bc24ee4d8fd8a9d206fa75..4cfd16113ce20e0451395cb42740a496601927e2 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 4bc801f48148ea6db3445ebac759e03d5d99d677..4bc93774b0893c6642b76f07b934a7bf6d1f0bb1 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 f90eac7f93a5058de9fd256c815e08de6368e1fa..ed1d3d2d69a543bc11830fc72388a5f4e94f7ee3 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 fa624626167aa71f2c17099dbccb0f86b5ac6131..59ed3c4d64ef12494ca9031d57518ce96b3a930e 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 98e15d274ba0589da563d42f72a04b0f1946ca0a..95833479bf322ef0926b3479872a43d2ef610029 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/ )