Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
oncsSub_idmvtxv3.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file oncsSub_idmvtxv3.h
1 #ifndef __ONCSSUB_IDMVTXV3_H__
2 #define __ONCSSUB_IDMVTXV3_H__
3 
4 #include "oncsSubevent.h"
5 
7 #include "mvtx_decoder/GBTLink.h"
8 
10 
11 #include <map>
12 #include <set>
13 #include <vector>
14 #include <bitset>
15 #include <stdint.h>
16 #include <unordered_map>
17 
18 #ifndef __CINT__
20 #else
21 class oncsSub_idmvtxv3 : public oncsSubevent_w4 {
22 #endif
23 
24  public:
27 
28  int iValue(const int ,const char * what) final;
29  int iValue(const int, const int, const char* what) final;
30  int iValue(const int, const int, const int, const char* what) final;
31 
32  long long int lValue(const int, const int, const char* what) final;
33 
34  void dump(OSTREAM &os = COUT) final;
35 
36  protected:
37 
38  int decode();
40 
41 
42  struct dumpEntry
43  {
44  int entry = -1;
45  };
46 
47  void loadInput(mvtx::PayLoadCont& buf);
48  void setupLinks(mvtx::PayLoadCont&);
49 
50  static size_t mEventId;
51  static std::unordered_map<uint32_t, dumpEntry> mSubId2Buffers; // link sub_id to data buffer in the pool mapping
52  static std::vector< mvtx::PayLoadCont > mBuffers;
53  static std::unordered_map<uint16_t, dumpEntry> mFeeId2LinkID; // link fee_id to GBTLinks
54  static std::vector<mvtx::GBTLink> mGBTLinks;
55 
56  std::set<uint16_t> feeid_set;
57  uint8_t *payload;
58  unsigned int payload_position;
59 
60  };
61 
62 #endif /* __ONCSSUB_IDMVTXV3_H__ */