Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SingleZdcInput.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file SingleZdcInput.h
1 #ifndef FUN4ALLRAW_SINGLEZDCINPUT_H
2 #define FUN4ALLRAW_SINGLEZDCINPUT_H
3 
4 #include "SinglePrdfInput.h"
5 
6 #include <array>
7 #include <map>
8 #include <set>
9 #include <string>
10 #include <utility> // for pair
11 #include <vector>
12 
13 class Eventiterator;
15 class Packet;
16 
18 {
19  public:
21  ~SingleZdcInput() override;
22  void FillPool(const unsigned int nevents) override;
23 
24  private:
26  int majority_beamclock();
27  void adjust_eventnumber_offset(const int decided_evtno);
28  struct PacketInfo
29  {
30  std::vector<Packet *> PacketVector;
31  unsigned int EventFoundCounter = 0;
32  };
33  Packet **plist = nullptr;
34  unsigned int m_NumSpecialEvents = 0;
35  int *m_PacketEventNumberOffset = nullptr; // packet event counters start at 0 but we start with event number 1
36  std::map<int, std::vector<Packet *>> m_PacketMap;
37  std::set<int> m_EvtSet;
38  std::vector<std::pair<int, int>> m_Event;
39  std::array<unsigned int,100> rollover;
40  std::array<int,100> previous_eventnumber;
41 };
42 
43 #endif