Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-06-01 07:06:54

0001 // Copyright 2022, David Lawrence
0002 // Subject to the terms in the LICENSE file found in the top-level directory.
0003 //
0004 
0005 #pragma once
0006 
0007 #include <JANA/JApplication.h>
0008 #include <JANA/JEvent.h>
0009 #include <JANA/JEventSource.h>
0010 #include <JANA/JEventSourceGeneratorT.h>
0011 #include <podio/ROOTFrameReader.h>
0012 #include <stddef.h>
0013 #include <memory>
0014 #include <set>
0015 #include <string>
0016 
0017 class JEventSourcePODIO : public JEventSource {
0018 
0019 public:
0020     JEventSourcePODIO(std::string resource_name, JApplication* app);
0021 
0022     virtual ~JEventSourcePODIO();
0023 
0024     void Open() override;
0025 
0026     void Close() override;
0027 
0028     void GetEvent(std::shared_ptr<JEvent>) override;
0029 
0030     static std::string GetDescription();
0031 
0032     void PrintCollectionTypeTable(void);
0033 
0034 protected:
0035     podio::ROOTFrameReader m_reader;
0036     size_t Nevents_in_file = 0;
0037     size_t Nevents_read = 0;
0038 
0039     std::string m_include_collections_str;
0040     std::string m_exclude_collections_str;
0041     std::set<std::string> m_INPUT_INCLUDE_COLLECTIONS;
0042     std::set<std::string> m_INPUT_EXCLUDE_COLLECTIONS;
0043     bool m_run_forever=false;
0044 
0045 };
0046 
0047 template <>
0048 double JEventSourceGeneratorT<JEventSourcePODIO>::CheckOpenable(std::string);