From 678b2296c649b8d62eb47df340af5cba930bdc8e Mon Sep 17 00:00:00 2001 From: Felix Weiglhofer <weiglhofer@fias.uni-frankfurt.de> Date: Fri, 26 Apr 2024 21:53:29 +0000 Subject: [PATCH] online: Remove TOF hitfinder and calibrate chains. --- algo/CMakeLists.txt | 2 -- algo/detectors/tof/CalibratorChain.cxx | 24 ----------------- algo/detectors/tof/CalibratorChain.h | 36 -------------------------- algo/detectors/tof/HitfinderChain.cxx | 23 ---------------- algo/detectors/tof/HitfinderChain.h | 36 -------------------------- algo/global/Reco.cxx | 25 +++++++++++------- algo/global/Reco.h | 8 +++--- 7 files changed, 19 insertions(+), 135 deletions(-) delete mode 100644 algo/detectors/tof/CalibratorChain.cxx delete mode 100644 algo/detectors/tof/CalibratorChain.h delete mode 100644 algo/detectors/tof/HitfinderChain.cxx delete mode 100644 algo/detectors/tof/HitfinderChain.h diff --git a/algo/CMakeLists.txt b/algo/CMakeLists.txt index 181d7caa6e..7da25ea04a 100644 --- a/algo/CMakeLists.txt +++ b/algo/CMakeLists.txt @@ -111,8 +111,6 @@ set(SRCS detectors/tof/UnpackMS.cxx detectors/tof/Hitfind.cxx detectors/tof/TrackingInterface.cxx - detectors/tof/HitfinderChain.cxx - detectors/tof/CalibratorChain.cxx detectors/tof/config/ReadoutPars_mCBM2022.cxx detectors/tof/config/ReadoutPars_mCBM2024.cxx detectors/bmon/ReadoutConfig.cxx diff --git a/algo/detectors/tof/CalibratorChain.cxx b/algo/detectors/tof/CalibratorChain.cxx deleted file mode 100644 index d0dafc0d76..0000000000 --- a/algo/detectors/tof/CalibratorChain.cxx +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (C) 2023 Facility for Antiproton and Ion Research in Europe, Darmstadt - SPDX-License-Identifier: GPL-3.0-only - Authors: Dominik Smith [committer], Felix Weiglhofer */ -#include "CalibratorChain.h" - -#include "yaml/Yaml.h" - -using namespace cbm::algo; -using namespace cbm::algo::tof; - -void CalibratorChain::Init() -{ - auto setup = yaml::ReadFromFile<CalibrateSetup>(Opts().ParamsDir() / "TofCalibratePar.yaml"); - fCalibrate = std::make_unique<Calibrate>(setup); -} - -CalibratorChain::ReturnType CalibratorChain::Run(gsl::span<CbmTofDigi> digis) -{ - auto ret = (*fCalibrate)(digis); - - auto nUnknownRPC = std::get<1>(ret).fDigiCalibUnknownRPC; - if (nUnknownRPC > 0) L_(error) << "TOF Digis with unknown RPCs: " << nUnknownRPC; - return ret; -} diff --git a/algo/detectors/tof/CalibratorChain.h b/algo/detectors/tof/CalibratorChain.h deleted file mode 100644 index cca46ababc..0000000000 --- a/algo/detectors/tof/CalibratorChain.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 2023 Facility for Antiproton and Ion Research in Europe, Darmstadt - SPDX-License-Identifier: GPL-3.0-only - Authors: Dominik Smith [committer], Felix Weiglhofer */ -#pragma once - -#include "Calibrate.h" -#include "CalibrateSetup.h" -#include "CbmTofDigi.h" -#include "SubChain.h" - -#include <gsl/span> -#include <memory> - -namespace cbm::algo::tof -{ - - class CalibratorChain : public SubChain { - - public: - using ReturnType = Calibrate::resultType; - - CalibratorChain() = default; - ~CalibratorChain() = default; - - void Init(); - - /** - * @brief Apply calibration to digis - */ - ReturnType Run(gsl::span<CbmTofDigi> digis); - - private: - std::unique_ptr<Calibrate> fCalibrate; - }; - -} // namespace cbm::algo::tof diff --git a/algo/detectors/tof/HitfinderChain.cxx b/algo/detectors/tof/HitfinderChain.cxx deleted file mode 100644 index 3911a6d8c6..0000000000 --- a/algo/detectors/tof/HitfinderChain.cxx +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (C) 2023 FIAS Frankfurt Institute for Advanced Studies, Frankfurt / Main - SPDX-License-Identifier: GPL-3.0-only - Authors: Felix Weiglhofer [committer] */ -#include "HitfinderChain.h" - -#include "yaml/Yaml.h" - -using namespace cbm::algo; -using namespace cbm::algo::tof; - -void HitfinderChain::Init() -{ - auto setup = yaml::ReadFromFile<HitfindSetup>(Opts().ParamsDir() / "TofHitfinderPar.yaml"); - fHitfind = std::make_unique<Hitfind>(setup); -} - -HitfinderChain::ReturnType HitfinderChain::Run(gsl::span<CbmTofDigi> digis) -{ - auto ret = (*fHitfind)(digis); - - L_(info) << "TS contains " << std::get<0>(ret).NElements() << " TOF Hits"; - return ret; -} diff --git a/algo/detectors/tof/HitfinderChain.h b/algo/detectors/tof/HitfinderChain.h deleted file mode 100644 index fc88cd29f6..0000000000 --- a/algo/detectors/tof/HitfinderChain.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 2023 FIAS Frankfurt Institute for Advanced Studies, Frankfurt / Main - SPDX-License-Identifier: GPL-3.0-only - Authors: Felix Weiglhofer [committer] */ -#pragma once - -#include "CbmTofDigi.h" -#include "Hitfind.h" -#include "HitfindSetup.h" -#include "SubChain.h" - -#include <gsl/span> -#include <memory> - -namespace cbm::algo::tof -{ - - class HitfinderChain : public SubChain { - - public: - using ReturnType = Hitfind::resultType; - - HitfinderChain() = default; - ~HitfinderChain() = default; - - void Init(); - - /** - * @brief Run the hitfinder and apply time calibration to digis - */ - ReturnType Run(gsl::span<CbmTofDigi> digis); - - private: - std::unique_ptr<Hitfind> fHitfind; - }; - -} // namespace cbm::algo::tof diff --git a/algo/global/Reco.cxx b/algo/global/Reco.cxx index 10c2635d93..2e0c5b0995 100644 --- a/algo/global/Reco.cxx +++ b/algo/global/Reco.cxx @@ -20,8 +20,8 @@ #include "sts/ChannelMaskSet.h" #include "sts/HitfinderChain.h" #include "sts/Unpack.h" -#include "tof/CalibratorChain.h" -#include "tof/HitfinderChain.h" +#include "tof/Calibrate.h" +#include "tof/Hitfind.h" #include "tof/Unpack.h" #include "tof/config/ReadoutPars.h" #include "trd/Hitfind.h" @@ -182,13 +182,11 @@ void Reco::Init(const Options& opts) // TOF Hitfinder if (Opts().Has(fles::Subsystem::TOF) && Opts().Has(Step::LocalReco)) { - fTofCalibrator = std::make_unique<tof::CalibratorChain>(); - fTofCalibrator->SetContext(&fContext); - fTofCalibrator->Init(); + auto calibSetup = yaml::ReadFromFile<tof::CalibrateSetup>(opts.ParamsDir() / "TofCalibratePar.yaml"); + fTofCalibrator = std::make_unique<tof::Calibrate>(calibSetup); - fTofHitFinder = std::make_unique<tof::HitfinderChain>(); - fTofHitFinder->SetContext(&fContext); - fTofHitFinder->Init(); + auto hitfindSetup = yaml::ReadFromFile<tof::HitfindSetup>(opts.ParamsDir() / "TofHitfinderPar.yaml"); + fTofHitFinder = std::make_unique<tof::Hitfind>(hitfindSetup); } if (Opts().Has(fles::Subsystem::TRD) && Opts().Has(Step::LocalReco)) { @@ -282,12 +280,19 @@ RecoResults Reco::Run(const fles::Timeslice& ts) PartitionedVector<tof::Hit> tofHits; if (Opts().Has(Step::LocalReco) && Opts().Has(fles::Subsystem::TOF)) { - auto [caldigis, calmonitor] = fTofCalibrator->Run(digis.fTof); - auto [hits, hitmonitor, digiindices] = fTofHitFinder->Run(caldigis); + auto [caldigis, calmonitor] = (*fTofCalibrator)(digis.fTof); + auto nUnknownRPC = calmonitor.fDigiCalibUnknownRPC; + if (nUnknownRPC > 0) { + L_(error) << "TOF Digis with unknown RPCs: " << nUnknownRPC; + } + + auto [hits, hitmonitor, digiindices] = (*fTofHitFinder)(caldigis); tofHits = std::move(hits); QueueTofCalibMetrics(calmonitor); QueueTofRecoMetrics(hitmonitor); } + L_(info) << "TS contains " << tofHits.NElements() << " TOF Hits"; + PartitionedVector<trd::Hit> trdHits; if (fTrdHitfind) { diff --git a/algo/global/Reco.h b/algo/global/Reco.h index 7f104732a0..cce762d696 100644 --- a/algo/global/Reco.h +++ b/algo/global/Reco.h @@ -50,9 +50,9 @@ namespace cbm::algo namespace tof { class Unpack; - class CalibratorChain; + class Calibrate; struct CalibrateMonitorData; - class HitfinderChain; + class Hitfind; struct HitfindMonitorData; } @@ -132,8 +132,8 @@ namespace cbm::algo // TOF std::unique_ptr<tof::Unpack> fTofUnpack; - std::unique_ptr<tof::HitfinderChain> fTofHitFinder; - std::unique_ptr<tof::CalibratorChain> fTofCalibrator; + std::unique_ptr<tof::Calibrate> fTofCalibrator; + std::unique_ptr<tof::Hitfind> fTofHitFinder; // TRD std::unique_ptr<trd::Unpack> fTrdUnpack; -- GitLab