#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