Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:20:57

0001 #ifndef __GL1MANAGER_H__
0002 #define __GL1MANAGER_H__
0003 
0004 
0005 #include <iostream>
0006 #include <string>
0007 #include <vector>
0008 #include <deque>
0009 #include <cstdint>
0010 
0011 enum GL1ManagerReturnCodes
0012 {
0013   GL1Manager_MATCH = 0,
0014   GL1Manager_MISMATCH = 1,
0015   GL1Manager_INITIALIZING = 2
0016 };
0017 
0018 
0019 
0020 
0021 //#include <Event/eventReceiverClient.h>
0022 
0023 class eventReceiverClient;
0024 class Packet;
0025 
0026 
0027 class GL1Manager
0028 {
0029  public:
0030 
0031   GL1Manager (const char * /*hostname*/, const int /*history*/ = 6, const int /*maxdiscrepancy*/ = 3); // for eventReceiverclient
0032   ~GL1Manager();
0033 
0034   void Reset();
0035 
0036   int getClockSync(const int /*evtnr*/, Packet * /*p*/);
0037 
0038   int getDelta () const {return event_delta;};
0039   void setDelta (const int d ) {event_delta = d;};
0040   void setVerbosity (const int d ) {verbosity = d;};
0041 
0042   int checkPacket (Packet * /*p*/) const;
0043   uint32_t getPacketClockDifference (Packet * /*p*/) const;
0044 
0045   Packet * getGL1Packet();
0046 
0047  protected:
0048 
0049   // the generic function
0050   int ClockSync(const int evtnr, Packet * p);
0051   Packet * fetchGL1Packet(const int /*evtnr*/);
0052   int findDelta();
0053   
0054   Packet *pgl1;
0055 
0056   std::string _hostname;
0057 
0058   int eventMatch;
0059   int packetRequested;
0060 
0061   eventReceiverClient *erc;
0062   uint32_t desireddiff;
0063   uint32_t previousdiff;
0064   uint32_t clockdiff;
0065   long long gl1_clock;
0066 
0067   unsigned int history_length;
0068   int max_discrepancy;
0069   int init_done;
0070 
0071   std::deque<long long> previous_GL1clocks;
0072   std::deque<uint32_t> previous_packetclocks;
0073 
0074   std::deque<uint32_t> diff_gl1clocks;
0075   std::deque<uint32_t> diff_packetclocks;
0076 
0077   int event_delta;
0078   int _broken;
0079   int verbosity;
0080 };
0081 
0082 #endif
0083