/
CodaDecoder.h
63 lines (44 loc) · 1.46 KB
/
CodaDecoder.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#ifndef CodaDecoder_
#define CodaDecoder_
/////////////////////////////////////////////////////////////////////
//
// CodaDecoder
//
// Object Oriented version of decoder
// Sept, 2014 R. Michaels
//
/////////////////////////////////////////////////////////////////////
#include "THaEvData.h"
namespace Decoder {
class CodaDecoder : public THaEvData {
// public interface is SAME as before
public:
CodaDecoder();
~CodaDecoder();
virtual Int_t LoadEvent(const UInt_t* evbuffer);
virtual Int_t LoadFromMultiBlock();
virtual Int_t Init();
virtual Int_t GetNslots() const { return fNSlotUsed; };
virtual Int_t GetPrescaleFactor(Int_t trigger) const;
virtual Int_t LoadIfFlagData(const UInt_t *p);
virtual void SetRunTime(ULong64_t tloc);
Int_t FindRocs(const UInt_t *evbuffer);
Int_t roc_decode( Int_t roc, const UInt_t* evbuffer, Int_t ipt, Int_t istop );
Int_t bank_decode( Int_t roc, const UInt_t* evbuffer, Int_t ipt, Int_t istop );
Int_t nroc;
Int_t *irn;
protected:
Int_t synchflag,datascan;
Bool_t buffmode,synchmiss,synchextra;
Int_t *fbfound;
Int_t psfact[MAX_PSFACT];
void CompareRocs();
void ChkFbSlot( Int_t roc, const UInt_t* evbuffer, Int_t ipt, Int_t istop );
void ChkFbSlots();
int init_slotdata(const THaCrateMap *map);
Int_t prescale_decode(const UInt_t* evbuffer);
void dump(const UInt_t* evbuffer) const;
ClassDef(CodaDecoder,0) // Decoder for CODA event buffer
};
}
#endif