EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
JEventSourceManagedPODIO.h
Go to the documentation of this file.
1#pragma once
2
3#include <JANA/JApplicationFwd.h>
4#include <JANA/JEventSourceGeneratorT.h>
5#include <atomic>
6#include <condition_variable>
7#include <cstddef>
8#include <mutex>
9#include <string>
10
11#include "JEventSourcePODIO.h"
12
14
15public:
16 JEventSourceManagedPODIO(std::string resource_name, JApplication* app);
18
19 void Open() override;
20 void Close() override;
21 Result Emit(JEvent& event) override;
22
23 static std::string GetDescription();
24
25 void SetCurrentFile(const std::string& input_file);
26 bool IsFileProcessingComplete() const { return m_file_processing_complete.load(); }
27 std::size_t GetNeventsInFile() const { return Nevents_in_file; }
28
29 void ResetReader();
30
31private:
32 // File management for managed mode
33 std::string m_current_input_file;
34 std::atomic<bool> m_file_available{false};
35 std::atomic<bool> m_file_processing_complete{false};
36 std::atomic<bool> m_closing{false};
37
38 // Synchronization
39 std::mutex m_file_mutex;
40 std::condition_variable m_file_cv;
41};
42
43template <> double JEventSourceGeneratorT<JEventSourceManagedPODIO>::CheckOpenable(std::string);
Definition JEventSourceManagedPODIO.h:13
void SetCurrentFile(const std::string &input_file)
Definition JEventSourceManagedPODIO.cc:74
void ResetReader()
Definition JEventSourceManagedPODIO.cc:110
virtual ~JEventSourceManagedPODIO()
Definition JEventSourceManagedPODIO.cc:23
static std::string GetDescription()
Definition JEventSourceManagedPODIO.cc:70
void Open() override
Definition JEventSourceManagedPODIO.cc:25
Result Emit(JEvent &event) override
Definition JEventSourceManagedPODIO.cc:35
std::size_t GetNeventsInFile() const
Definition JEventSourceManagedPODIO.h:27
void Close() override
Definition JEventSourceManagedPODIO.cc:29
bool IsFileProcessingComplete() const
Definition JEventSourceManagedPODIO.h:26
Definition JEventSourcePODIO.h:19
std::size_t Nevents_in_file
Definition JEventSourcePODIO.h:43