File indexing completed on 2025-05-12 09:14:01
0001
0002
0003
0004
0005 #ifndef JTestEventProcessorLegacy_h
0006 #define JTestEventProcessorLegacy_h
0007
0008 #include <JANA/JEventProcessor.h>
0009 #include <JANA/Utils/JBenchUtils.h>
0010 #include "JTestDataObjects.h"
0011
0012 class JTestPlotterLegacy : public JEventProcessor {
0013
0014 Parameter<size_t> m_cputime_ms {this, "cputime_ms", 0, "Time spent during plotting" };
0015 Parameter<size_t> m_write_bytes {this, "bytes", 1000, "Bytes written during plotting"};
0016 Parameter<double> m_cputime_spread {this, "cputime_spread", 0.25, "Spread of time spent during plotting"};
0017 Parameter<double> m_write_spread {this, "bytes_spread", 0.25, "Spread of bytes written during plotting"};
0018 JBenchUtils m_bench_utils = JBenchUtils();
0019
0020 public:
0021
0022 JTestPlotterLegacy() {
0023 SetPrefix("jtest:plotter");
0024 SetTypeName(NAME_OF_THIS);
0025 }
0026
0027 void Process(const std::shared_ptr<const JEvent>& event) override {
0028
0029 LOG_INFO(GetLogger()) << "Entering region jtest:plotter:par for event# " << event->GetEventNumber();
0030
0031 m_bench_utils.set_seed(event->GetEventNumber(), typeid(*this).name());
0032
0033
0034 auto td = event->GetSingle<JTestTrackData>();
0035
0036
0037 auto tad = event->Get<JTestTrackAuxilliaryData>();
0038
0039 LOG_INFO(GetLogger()) << "Exited region jtest:plotter:par for event# " << event->GetEventNumber();
0040
0041
0042 std::lock_guard<std::mutex> lock(m_mutex);
0043
0044 LOG_INFO(GetLogger()) << "Entering region jtest:plotter:seq for event# " << event->GetEventNumber();
0045
0046
0047 m_bench_utils.read_memory(td->buffer);
0048
0049
0050 m_bench_utils.consume_cpu_ms(*m_cputime_ms + tad.at(0)->something, *m_cputime_spread);
0051
0052
0053 auto hd = new JTestHistogramData;
0054 m_bench_utils.write_memory(hd->buffer, *m_write_bytes, *m_write_spread);
0055 event->Insert(hd);
0056
0057 LOG_INFO(GetLogger()) << "Exited region jtest:plotter:seq for event# " << event->GetEventNumber();
0058 }
0059
0060 };
0061
0062 #endif
0063