File indexing completed on 2025-08-05 08:16:15
0001 #ifndef FUN4ALLRAW_SINGLEGL1POOLINPUT_H
0002 #define FUN4ALLRAW_SINGLEGL1POOLINPUT_H
0003
0004 #include "SingleStreamingInput.h"
0005
0006 #include <cstdint>
0007 #include <list>
0008 #include <map>
0009 #include <set>
0010 #include <string>
0011 #include <vector>
0012
0013 class Gl1Packet;
0014 class PHCompositeNode;
0015
0016 class SingleGl1PoolInput : public SingleStreamingInput
0017 {
0018 public:
0019 explicit SingleGl1PoolInput(const std::string &name);
0020 ~SingleGl1PoolInput() override;
0021 void FillPool(const unsigned int) override;
0022 void CleanupUsedPackets(const uint64_t bclk) override;
0023 bool CheckPoolDepth(const uint64_t bclk) override;
0024 void ClearCurrentEvent() override;
0025 bool GetSomeMoreEvents();
0026 void Print(const std::string &what = "ALL") const override;
0027 void CreateDSTNode(PHCompositeNode *topNode) override;
0028 void SetBcoRange(const unsigned int i) { m_BcoRange = i; }
0029
0030
0031 private:
0032 unsigned int m_NumSpecialEvents{0};
0033 unsigned int m_BcoRange{0};
0034
0035
0036 std::map<unsigned int, uint64_t> m_packet_bco;
0037
0038 std::map<uint64_t, std::vector<Gl1Packet *>> m_Gl1RawHitMap;
0039 std::set<uint64_t> m_FEEBclkMap;
0040 std::set<uint64_t> m_BclkStack;
0041 };
0042
0043 #endif