Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-05-12 09:14:01

0001 
0002 // Copyright 2020, Jefferson Science Associates, LLC.
0003 // Subject to the terms in the LICENSE file found in the top-level directory.
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         // Produce and acquire the track data
0034         auto td = event->GetSingle<JTestTrackData>();
0035 
0036         // Produce and acquire the track aux data
0037         auto tad = event->Get<JTestTrackAuxilliaryData>();
0038 
0039         LOG_INFO(GetLogger()) << "Exited region jtest:plotter:par for event# " << event->GetEventNumber();
0040 
0041         // Everything that happens after here is in a critical section
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         // Read the track data
0047         m_bench_utils.read_memory(td->buffer);
0048 
0049         // Consume CPU
0050         m_bench_utils.consume_cpu_ms(*m_cputime_ms + tad.at(0)->something, *m_cputime_spread);
0051 
0052         // Write the histogram data
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 // JTestEventProcessorLegacy_h
0063