#ifndef HPIONTRACKERTRB3UNPACKER_H
#define HPIONTRACKERTRB3UNPACKER_H
#include "hlocation.h"
#include "hldunpack.h"
class HPionTrackerTrb3Lookup;
class HPionTrackerTrb3LookupBoard;
enum ptdesign { des_none, des_cosy13, des_140115 };
struct ptheaderset
{
#if GCC_VERSION > 40700
ptdesign design = des_none;
Int_t tsref = -1;
Int_t evcnt = -1;
Int_t romode = -1;
Int_t version = -1;
Int_t boardid = -1;
#else
ptheaderset() : design(des_none), tsref(-1), evcnt(-1), romode(-1), version(-1), boardid(-1) {}
ptdesign design;
Int_t tsref;
Int_t evcnt;
Int_t romode;
Int_t version;
Int_t boardid;
#endif
};
struct ptdataset
{
#if GCC_VERSION > 40700
Int_t strip = -1;
Float_t adc = -1;
Float_t ts = -1;
Char_t pileup = -1;
Char_t overflow = -1;
#else
ptdataset() : strip(-1), adc(-1), ts(-1), pileup(-1), overflow(-1) {}
Int_t strip;
Float_t adc;
Float_t ts;
Char_t pileup;
Char_t overflow;
#endif
};
class HPionTrackerTrb3Unpacker: public HldUnpack
{
protected:
UInt_t subEvtId;
UInt_t uTrbNetAddress;
UInt_t nEvt;
Int_t debugFlag;
Bool_t quietMode;
Bool_t reportCritical;
HLocation loc;
HPionTrackerTrb3Lookup* pLookup;
HPionTrackerTrb3LookupBoard *pTrbBoard;
public:
HPionTrackerTrb3Unpacker(UInt_t id = 0);
~HPionTrackerTrb3Unpacker(void) {}
Int_t getSubEvtId(void) { return subEvtId; }
void setDebugFlag(Int_t db) {debugFlag = db;}
Int_t getDebugFlag() {return debugFlag;}
void setQuietMode(void) {quietMode = kTRUE;}
void setReportCritical(void) {reportCritical = kTRUE;}
Bool_t init(void);
Int_t execute(void);
enum ptstate { sm_wait_for_board = 1, sm_header, sm_data };
protected:
ptheaderset decodeSubevent(UInt_t h);
ptdataset decodeData_Cosy13(UInt_t d, const ptheaderset & hs);
ptdataset decodeData_140115(UInt_t d, const ptheaderset & hs);
Bool_t fillRaw(const ptdataset & ptds);
Bool_t fillRaw(Int_t, Float_t, Float_t, Char_t, Char_t);
public:
ClassDef(HPionTrackerTrb3Unpacker, 0)
};
#endif /* !HPIONTRACKERTRB3UNPACKER_H */
hpiontrackertrb3unpacker.h:1 hpiontrackertrb3unpacker.h:2 hpiontrackertrb3unpacker.h:3 hpiontrackertrb3unpacker.h:4 hpiontrackertrb3unpacker.h:5 hpiontrackertrb3unpacker.h:6 hpiontrackertrb3unpacker.h:7 hpiontrackertrb3unpacker.h:8 hpiontrackertrb3unpacker.h:9 hpiontrackertrb3unpacker.h:10 hpiontrackertrb3unpacker.h:11 hpiontrackertrb3unpacker.h:12 hpiontrackertrb3unpacker.h:13 hpiontrackertrb3unpacker.h:14 hpiontrackertrb3unpacker.h:15 hpiontrackertrb3unpacker.h:16 hpiontrackertrb3unpacker.h:17 hpiontrackertrb3unpacker.h:18 hpiontrackertrb3unpacker.h:19 hpiontrackertrb3unpacker.h:20 hpiontrackertrb3unpacker.h:21 hpiontrackertrb3unpacker.h:22 hpiontrackertrb3unpacker.h:23 hpiontrackertrb3unpacker.h:24 hpiontrackertrb3unpacker.h:25 hpiontrackertrb3unpacker.h:26 hpiontrackertrb3unpacker.h:27 hpiontrackertrb3unpacker.h:28 hpiontrackertrb3unpacker.h:29 hpiontrackertrb3unpacker.h:30 hpiontrackertrb3unpacker.h:31 hpiontrackertrb3unpacker.h:32 hpiontrackertrb3unpacker.h:33 hpiontrackertrb3unpacker.h:34 hpiontrackertrb3unpacker.h:35 hpiontrackertrb3unpacker.h:36 hpiontrackertrb3unpacker.h:37 hpiontrackertrb3unpacker.h:38 hpiontrackertrb3unpacker.h:39 hpiontrackertrb3unpacker.h:40 hpiontrackertrb3unpacker.h:41 hpiontrackertrb3unpacker.h:42 hpiontrackertrb3unpacker.h:43 hpiontrackertrb3unpacker.h:44 hpiontrackertrb3unpacker.h:45 hpiontrackertrb3unpacker.h:46 hpiontrackertrb3unpacker.h:47 hpiontrackertrb3unpacker.h:48 hpiontrackertrb3unpacker.h:49 hpiontrackertrb3unpacker.h:50 hpiontrackertrb3unpacker.h:51 hpiontrackertrb3unpacker.h:52 hpiontrackertrb3unpacker.h:53 hpiontrackertrb3unpacker.h:54 hpiontrackertrb3unpacker.h:55 hpiontrackertrb3unpacker.h:56 hpiontrackertrb3unpacker.h:57 hpiontrackertrb3unpacker.h:58 hpiontrackertrb3unpacker.h:59 hpiontrackertrb3unpacker.h:60 hpiontrackertrb3unpacker.h:61 hpiontrackertrb3unpacker.h:62 hpiontrackertrb3unpacker.h:63 hpiontrackertrb3unpacker.h:64 hpiontrackertrb3unpacker.h:65 hpiontrackertrb3unpacker.h:66 hpiontrackertrb3unpacker.h:67 hpiontrackertrb3unpacker.h:68 hpiontrackertrb3unpacker.h:69 hpiontrackertrb3unpacker.h:70 hpiontrackertrb3unpacker.h:71 hpiontrackertrb3unpacker.h:72 hpiontrackertrb3unpacker.h:73 hpiontrackertrb3unpacker.h:74 hpiontrackertrb3unpacker.h:75 hpiontrackertrb3unpacker.h:76 hpiontrackertrb3unpacker.h:77 hpiontrackertrb3unpacker.h:78 hpiontrackertrb3unpacker.h:79 hpiontrackertrb3unpacker.h:80 hpiontrackertrb3unpacker.h:81 hpiontrackertrb3unpacker.h:82 hpiontrackertrb3unpacker.h:83 hpiontrackertrb3unpacker.h:84 hpiontrackertrb3unpacker.h:85 hpiontrackertrb3unpacker.h:86 hpiontrackertrb3unpacker.h:87 hpiontrackertrb3unpacker.h:88 hpiontrackertrb3unpacker.h:89 hpiontrackertrb3unpacker.h:90 hpiontrackertrb3unpacker.h:91 hpiontrackertrb3unpacker.h:92 hpiontrackertrb3unpacker.h:93 hpiontrackertrb3unpacker.h:94