Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:17:25

0001 #ifndef FUN4ALLRAW_SINGLEZDCINPUT_H
0002 #define FUN4ALLRAW_SINGLEZDCINPUT_H
0003 
0004 #include "SinglePrdfInput.h"
0005 
0006 #include <array>
0007 #include <map>
0008 #include <set>
0009 #include <string>
0010 #include <utility>  // for pair
0011 #include <vector>
0012 
0013 class Eventiterator;
0014 class Fun4AllPrdfInputPoolManager;
0015 class Fun4AllPrdfInputTriggerManager;
0016 class Packet;
0017 
0018 class SingleZdcInput : public SinglePrdfInput
0019 {
0020  public:
0021   explicit SingleZdcInput(const std::string &name, Fun4AllPrdfInputPoolManager *inman);
0022   ~SingleZdcInput() override;
0023   void FillPool(const unsigned int nevents) override;
0024 
0025  private:
0026   int majority_eventnumber();
0027   int majority_beamclock();
0028   void adjust_eventnumber_offset(const int decided_evtno);
0029   struct PacketInfo
0030   {
0031     std::vector<Packet *> PacketVector;
0032     unsigned int EventFoundCounter = 0;
0033   };
0034   Packet **plist = nullptr;
0035   unsigned int m_NumSpecialEvents = 0;
0036   int *m_PacketEventNumberOffset = nullptr;  // packet event counters start at 0 but we start with event number 1
0037   std::map<int, std::vector<Packet *>> m_PacketMap;
0038   std::set<int> m_EvtSet;
0039   std::vector<std::pair<int, int>> m_Event;
0040   std::array<unsigned int, 100> rollover{};
0041   std::array<int, 100> previous_eventnumber{};
0042 };
0043 
0044 #endif