Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-31 09:09:09

0001 // Copyright 2024, Jefferson Science Associates, LLC.
0002 // Subject to the terms in the LICENSE file found in the top-level directory.
0003 
0004 #pragma once
0005 
0006 #include <JANA/Topology/JArrow.h>
0007 
0008 class JEventPool;
0009 class JEventSource;
0010 class JEventUnfolder;
0011 class JEventFolder;
0012 class JEventProcessor;
0013 class JEvent;
0014 
0015 
0016 class JMapArrow : public JArrow {
0017 
0018 public:
0019     enum PortIndex {EVENT_IN=0, EVENT_OUT=1};
0020 
0021 private:
0022     bool m_parallel_source = false;
0023     std::vector<JEventUnfolder*> m_unfolders;
0024     std::vector<JEventFolder*> m_folders;
0025     std::vector<JEventProcessor*> m_procs;
0026 
0027 public:
0028     JMapArrow(std::string name, JEventLevel level);
0029 
0030     void SetParallelSource(bool is_parallel);
0031     void AddUnfolder(JEventUnfolder* unfolder);
0032     void AddFolder(JEventFolder* folder);
0033     void AddProcessor(JEventProcessor* proc);
0034 
0035     void Fire(JEvent* input, OutputData& outputs, size_t& output_count, JArrow::FireResult& status);
0036 
0037     void Initialize() final;
0038     void Finalize() final;
0039 };
0040