From f01d2fdd649ac2940a073ed69a871838b534bfd4 Mon Sep 17 00:00:00 2001 From: "s.zharko@gsi.de" <s.zharko@gsi.de> Date: Thu, 28 Mar 2024 10:20:00 +0100 Subject: [PATCH] ana-online-mcbm2022 --- algo/ca/TrackingChain.cxx | 38 ++++++++++++++++++++++++++------------ algo/ca/TrackingChain.h | 2 +- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/algo/ca/TrackingChain.cxx b/algo/ca/TrackingChain.cxx index 57ed9baa5e..4708b99553 100644 --- a/algo/ca/TrackingChain.cxx +++ b/algo/ca/TrackingChain.cxx @@ -16,9 +16,10 @@ #include "tof/Config.h" #include "yaml/Yaml.h" -#include <boost/archive/text_oarchive.hpp> +#include <boost/archive/binary_oarchive.hpp> #include <fstream> +#include <fmt/format.h> #include <unordered_map> #include <xpu/host.h> @@ -119,7 +120,7 @@ void TrackingChain::Finalize() if (fConfig.fbStoreMonitor) { auto fileName = "./" + fConfig.fsMoniOutName; std::ofstream ofs(fileName); - boost::archive::text_oarchive oa(ofs); + boost::archive::binary_oarchive oa(ofs); oa << fCaMonitor; } } @@ -198,6 +199,19 @@ TrackingChain::Output_t TrackingChain::PrepareOutput() } fCaMonitorData.StopTimer(ca::ETimer::TrackingChain); + + if constexpr (kDEBUG) { // Monitor data per TS + if (fCaFramework.GetNofThreads() == 1 && fCaFramework.GetNofThreads() == 10) { + int tsIndex = fCaMonitor.GetCounterValue(ca::ECounter::TrackingCall); + auto fileName = fmt::format("./ca_monitor_nth_{}_ts{}.dat", fCaFramework.GetNofThreads(), tsIndex); + std::ofstream ofs(fileName); + boost::archive::binary_oarchive oa(ofs); + ca::TrackingMonitor monitorPerTS; + monitorPerTS.AddMonitorData(fCaMonitorData); + oa << monitorPerTS; + } + } + fCaMonitor.AddMonitorData(fCaMonitorData); output.monitorData = fCaMonitorData; @@ -209,10 +223,10 @@ TrackingChain::Output_t TrackingChain::PrepareOutput() template<EDetectorID DetID> void TrackingChain::ReadHits(PartitionedSpan<const ca::HitTypes_t::at<DetID>> hits) { - std::ofstream out; - if constexpr (kDEBUG) { - out.open(std::string("./Debug_hits_") + ca::kDetName[DetID] + ".txt"); - } + //std::ofstream out; + //if constexpr (kDEBUG) { + // out.open(std::string("./Debug_hits_") + ca::kDetName[DetID] + ".txt"); + //} int nSt = fCaFramework.GetParameters().GetNstationsActive(); @@ -293,12 +307,12 @@ void TrackingChain::ReadHits(PartitionedSpan<const ca::HitTypes_t::at<DetID>> hi lastTime = caHit.T(); fCaDataManager.PushBackHit(caHit, dataStreamDet | dataStream); faHitExternalIndices.push_back(std::make_tuple(DetID, iPartition, iPartHit)); - if constexpr (kDEBUG) { - out << (dataStreamDet | dataStream) << " ----- " << caHit.ToString() << '\n'; - if (prevTime > caHit.T()) { - out << "TIME IS UNSORTED\n"; - } - } + //if constexpr (kDEBUG) { + // out << (dataStreamDet | dataStream) << " ----- " << caHit.ToString() << '\n'; + // if (prevTime > caHit.T()) { + // out << "TIME IS UNSORTED\n"; + // } + //} if (fNofHitKeys <= caHit.FrontKey()) { fNofHitKeys = caHit.FrontKey() + 1; diff --git a/algo/ca/TrackingChain.h b/algo/ca/TrackingChain.h index 9adc9528da..93185cc7af 100644 --- a/algo/ca/TrackingChain.h +++ b/algo/ca/TrackingChain.h @@ -117,7 +117,7 @@ namespace cbm::algo /// \note Indexing: [globalHitID], value: (DetID, partitionID, hitID) ca::Vector<std::tuple<ca::EDetectorID, uint32_t, uint32_t>> faHitExternalIndices{"faHitExternalIndices"}; - static constexpr bool kDEBUG = false; ///< Debug mode + static constexpr bool kDEBUG = true; ///< Debug mode }; -- GitLab