diff --git a/algo/global/ParFiles.cxx b/algo/global/ParFiles.cxx index bc67f0843f7175230cad28c2eba662475741b9e5..ac2c3b410accd1415bc4de89811785442eb9aca1 100644 --- a/algo/global/ParFiles.cxx +++ b/algo/global/ParFiles.cxx @@ -95,8 +95,8 @@ ParFiles::ParFiles(uint32_t runId) case Setup::mCBM2025_02: bmon.readout = "mcbm2025_02/BmonReadout_mcbm2025.yaml"; - bmon.calibrate = "mcbm2025_05/BmonCalibratePar.yaml"; - bmon.hitfinder = "mcbm2025_05/BmonHitfinderPar.yaml"; + bmon.calibrate = "mcbm2025_02/BmonCalibratePar.yaml"; + bmon.hitfinder = "mcbm2025_02/BmonHitfinderPar.yaml"; sts.readout = "mcbm2025_02/StsReadout_mcbm2025.yaml"; sts.chanMask = "mcbm2025_02/StsChannelMaskSet_mcbm2025.yaml"; diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx index 37d8c61be311f8cded2cfbb5e4d7149d53cdf7e4..8337f7ac782fa043a6920883d91bb4e0517bae4b 100644 --- a/reco/L1/CbmL1.cxx +++ b/reco/L1/CbmL1.cxx @@ -187,6 +187,8 @@ try { bool bUseTRD = pSetupBuilder->HasHits(ca::EDetectorID::kTrd); bool bUseTOF = pSetupBuilder->HasHits(ca::EDetectorID::kTof); + LOG(info) << "!!!!!!! " << bUseSTS; + // ***************************** // ** ** // ** GEOMETRY INITIALIZATION ** diff --git a/reco/kfnew/CbmKfTrackingSetupBuilder.cxx b/reco/kfnew/CbmKfTrackingSetupBuilder.cxx index 338a86b63d4ca0ad6974f03ae248b3e5fa91af45..022026db05957d008974d954ff26f6b854970250 100644 --- a/reco/kfnew/CbmKfTrackingSetupBuilder.cxx +++ b/reco/kfnew/CbmKfTrackingSetupBuilder.cxx @@ -41,9 +41,15 @@ void TrackingSetupBuilder::CheckDetectorPresence() auto Check = [&](EDetectorID detID) { auto modId = cbm::algo::ca::ToCbmModuleId(detID); fvbDetInGeometry[detID] = CbmSetup::Instance()->IsActive(modId); - fvbDetHasHits[detID] = fvbDetInGeometry[detID] && FairRootManager::Instance()->GetObject(kDetHitBrName[detID]); - LOG(info) << fmt::format("\t{:6} in geometry: {:5}, has hits: {:5}", ToString(modId), fvbDetInGeometry[detID], - fvbDetHasHits[detID]); + if (!fbIgnoreHitPresence) { + fvbDetHasHits[detID] = fvbDetInGeometry[detID] && FairRootManager::Instance()->GetObject(kDetHitBrName[detID]); + LOG(info) << fmt::format("\t{:6} in geometry: {:5}, has hits: {:5}", ToString(modId), fvbDetInGeometry[detID], + fvbDetHasHits[detID]); + } + else { + fvbDetHasHits[detID] = fvbDetInGeometry[detID]; + LOG(info) << fmt::format("\t{:6} in geometry: {:5}", ToString(modId), fvbDetInGeometry[detID]); + } }; Check(EDetectorID::kMvd); diff --git a/reco/kfnew/CbmKfTrackingSetupBuilder.h b/reco/kfnew/CbmKfTrackingSetupBuilder.h index 0965882ccee4f8d054aa14a3a938a949010f3779..cae4c1ba4dbd58aff6dedb35acd8dbc05c1254de 100644 --- a/reco/kfnew/CbmKfTrackingSetupBuilder.h +++ b/reco/kfnew/CbmKfTrackingSetupBuilder.h @@ -48,6 +48,14 @@ namespace cbm::kf /// \brief Checks, if a tracking detector has hits bool HasHits(cbm::algo::ca::EDetectorID detID) const { return fvbDetHasHits[detID]; } + /// \brief Sets hits ignoring (DEBUG FLAG) + void SetIgnoreHitPresence(bool ok = true) + { + fbIgnoreHitPresence = ok; + fbInitialized = false; + CheckDetectorPresence(); + } + // Disable copy and move TrackingSetupBuilder(const TrackingSetupBuilder&) = delete; TrackingSetupBuilder(TrackingSetupBuilder&&) = delete; @@ -111,7 +119,8 @@ namespace cbm::kf /// \brief Checks, if the setup was already initialized /// \note Each call of the setup initializer resets the setup builder, so the initialization is called /// in the next MakeSetup call - bool fbInitialized{false}; ///< Check, if the setup builder initialized + bool fbInitialized{false}; ///< Check, if the setup builder initialized + bool fbIgnoreHitPresence{false}; ///< Ignores hit presence, when active subsystems are determined }; diff --git a/reco/steer/CbmOnlineParWrite.cxx b/reco/steer/CbmOnlineParWrite.cxx index 658ee50dd66212dcab7b996b671a8f7a306770db..5ce40e2c3458eb0d31afa619d6976ccc99e6616c 100644 --- a/reco/steer/CbmOnlineParWrite.cxx +++ b/reco/steer/CbmOnlineParWrite.cxx @@ -4,6 +4,8 @@ #include "CbmOnlineParWrite.h" +#include "CbmKfTrackingSetupBuilder.h" +#include "CbmL1.h" #include "CbmMcbmUtils.h" #include "CbmSetup.h" #include "CbmSinkDummy.h" @@ -19,6 +21,7 @@ #include "CbmTaskTofClusterizerParWrite.h" #include "CbmTaskTrdHitFinderParWrite.h" #include "CbmTaskTrdUnpackParWrite.h" +#include "CbmTrackingDetectorInterfaceInit.h" #include "CbmTrdParSetAsic.h" #include "CbmTrdParSetDigi.h" @@ -251,7 +254,8 @@ void CbmOnlineParWrite::AddSts() sensorParSet->SetParSensor(stsAddress10, sensor6cm); sensorParSet->SetParSensor(stsAddress11, sensor6cm); } - else if (fConfig.setupType == Setup::mCBM2024_03 || fConfig.setupType == Setup::mCBM2024_05 || fConfig.setupType == Setup::mCBM2025_02) { + else if (fConfig.setupType == Setup::mCBM2024_03 || fConfig.setupType == Setup::mCBM2024_05 + || fConfig.setupType == Setup::mCBM2025_02) { uint32_t addr01 = 0x10008012; uint32_t addr02 = 0x10018012; uint32_t addr03 = 0x10008412; @@ -314,6 +318,24 @@ void CbmOnlineParWrite::AddSts() fRun->AddTask(recoSts); } +void CbmOnlineParWrite::AddCa() +{ + + auto* pSetupBuilder{cbm::kf::TrackingSetupBuilder::Instance()}; + pSetupBuilder->SetIgnoreHitPresence(); + + // Tracking detector interfaces initialization + fRun->AddTask(new CbmTrackingDetectorInterfaceInit{}); + + // Tracking initialization class + auto* pCa = new CbmL1(); + pCa->SetMcbmMode(); + pCa->SetInitMode(CbmL1::EInitMode::Param); + pCa->SetParameterFilename(Form("./%s.ca.par", fGeoSetupTag.Data())); + fRun->AddTask(pCa); +} + + void CbmOnlineParWrite::Run(const Config& config) { // Copied and adjusted from macro/beamtime/mcbm2022/trd_hitfinder_run.C @@ -351,6 +373,7 @@ void CbmOnlineParWrite::Run(const Config& config) } LOG(info) << "Using geometry setup: " << geoSetupTag; + fGeoSetupTag = geoSetupTag; TString geoFile = fSrcDir + "/macro/run/data/" + geoSetupTag + ".geo.root"; fSetup = CbmSetup::Instance(); @@ -406,6 +429,7 @@ void CbmOnlineParWrite::Run(const Config& config) // ----- Add detectors ------------------------------------------------ AddDetectors(); + AddCa(); // ----- Parameter database -------------------------------------------- FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); diff --git a/reco/steer/CbmOnlineParWrite.h b/reco/steer/CbmOnlineParWrite.h index 194d5dd944a304973d2a3c63b2aa55fabc4eea05..35ab63d0743424cf183f1a4f045a548372f7ad1e 100644 --- a/reco/steer/CbmOnlineParWrite.h +++ b/reco/steer/CbmOnlineParWrite.h @@ -35,6 +35,7 @@ class CbmOnlineParWrite { private: Config fConfig; TString fSrcDir = ""; // CbmRoot Source directory + TString fGeoSetupTag = ""; // Geometry setup tag CbmSetup* fSetup = nullptr; // Global Geometry setup FairRunAna* fRun = nullptr; // FairRunAna object TList* fParList = nullptr; // List of parameter files, opened with FairRuntimeDb @@ -44,4 +45,5 @@ class CbmOnlineParWrite { void AddTrd(); void AddTof(); void AddSts(); + void AddCa(); };