Skip to content
Snippets Groups Projects
Commit b862c1c4 authored by Sergei Zharko's avatar Sergei Zharko
Browse files

beamtime: update of CbmOnlineParWrite with CA tracking

parent 3a8c9844
No related branches found
No related tags found
1 merge request!2029beamtime2025_02:
Pipeline #32980 passed
......@@ -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";
......
......@@ -187,6 +187,8 @@ try {
bool bUseTRD = pSetupBuilder->HasHits(ca::EDetectorID::kTrd);
bool bUseTOF = pSetupBuilder->HasHits(ca::EDetectorID::kTof);
LOG(info) << "!!!!!!! " << bUseSTS;
// *****************************
// ** **
// ** GEOMETRY INITIALIZATION **
......
......@@ -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);
......
......@@ -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
};
......
......@@ -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();
......
......@@ -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();
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment