From 7f0a07bca613c077ac8864fa9ee425be51268eec Mon Sep 17 00:00:00 2001 From: Felix Weiglhofer <weiglhofer@fias.uni-frankfurt.de> Date: Tue, 4 Jul 2023 13:04:34 +0000 Subject: [PATCH] Reco: Apply Steps and Detectors flag. --- algo/base/Options.cxx | 4 ++-- algo/global/Reco.cxx | 22 ++++++++++++++-------- algo/unpack/UnpackChain.cxx | 9 +-------- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/algo/base/Options.cxx b/algo/base/Options.cxx index 9e3a72dcf4..0bdeba4501 100644 --- a/algo/base/Options.cxx +++ b/algo/base/Options.cxx @@ -69,9 +69,9 @@ Options::Options(int argc, char** argv) "write log messages to file") ("output,o", po::value(&fOutputTypes)->multitoken()->default_value({RecoData::Hit})->value_name("<types>"), "comma seperated list of reconstruction output types (hit, digi, ...)") - ("steps", po::value(&fRecoSteps)->multitoken()->default_value({Step::LocalReco})->value_name("<steps>"), + ("steps", po::value(&fRecoSteps)->multitoken()->default_value({Step::Unpack, Step::LocalReco})->value_name("<steps>"), "comma seperated list of reconstruction steps (upack, digitrigger, localreco, ...)") - ("systems,s", po::value(&fDetectors)->multitoken()->default_value({fles::Subsystem::STS})->value_name("<detectors>"), + ("systems,s", po::value(&fDetectors)->multitoken()->default_value({fles::Subsystem::STS, fles::Subsystem::TOF, fles::Subsystem::BMON})->value_name("<detectors>"), "comma seperated list of detectors to process (sts, mvd, ...)") ("num-ts,n", po::value(&fNumTimeslices)->default_value(-1)->value_name("<num>"), "Stop after <num> timeslices (-1 = all)") diff --git a/algo/global/Reco.cxx b/algo/global/Reco.cxx index dfad5dc7a5..835e25b503 100644 --- a/algo/global/Reco.cxx +++ b/algo/global/Reco.cxx @@ -27,6 +27,8 @@ void Reco::Validate(const Options& opts) for (auto detector : opts.Detectors()) { switch (detector) { case fles::Subsystem::STS: break; + case fles::Subsystem::TOF: break; + case fles::Subsystem::BMON: break; default: throw std::runtime_error(fmt::format("Unsupported system: {}", ToString(detector))); } } @@ -85,15 +87,19 @@ void Reco::Run(const fles::Timeslice& ts) xpu::set<cbm::algo::Params>(Params()); std::vector<CbmStsDigi> digis; - switch (Params().sts.unpackMode) { - case RecoParams::UnpackMode::XPU: - // digis = fUnpackXpu.Exec(ts); - throw std::runtime_error("XPU unpacker currently not implemented"); - break; - default: - case RecoParams::UnpackMode::CPU: digis = fUnpack.Run(ts).first.fData.fSts.fDigis; break; + + if (Opts().HasStep(Step::Unpack)) { + switch (Params().sts.unpackMode) { + case RecoParams::UnpackMode::XPU: + // digis = fUnpackXpu.Exec(ts); + throw std::runtime_error("XPU unpacker currently not implemented"); + break; + default: + case RecoParams::UnpackMode::CPU: digis = fUnpack.Run(ts).first.fData.fSts.fDigis; break; + } } - fStsHitFinder(digis); + + if (Opts().HasStep(Step::LocalReco) && Opts().HasDetector(fles::Subsystem::STS)) fStsHitFinder(digis); xpu::timings ts_times = xpu::pop_timer(); diff --git a/algo/unpack/UnpackChain.cxx b/algo/unpack/UnpackChain.cxx index 3132c5d775..52efc0a03d 100644 --- a/algo/unpack/UnpackChain.cxx +++ b/algo/unpack/UnpackChain.cxx @@ -7,15 +7,8 @@ using namespace cbm::algo; void UnpackChain::Init() { - // Disable walk correction for now. 2022 data crashes unpacker with hardcoded 2021 params. fUnpack.SetApplyWalkCorrection(true); - fUnpack.Init(std::vector<fles::Subsystem> { - fles::Subsystem::STS, - // fles::Subsystem::MUCH, - fles::Subsystem::TOF, fles::Subsystem::BMON, - // fles::Subsystem::TRD, - // fles::Subsystem::TRD2D, - }); + fUnpack.Init(Opts().Detectors()); } Unpack::resultType UnpackChain::Run(const fles::Timeslice& timeslice) -- GitLab