Go to the documentation of this file.00001 #ifndef TMBSCRATEEVENT_H
00002 #define TMBSCRATEEVENT_H
00003
00004 #include "TGo4EventElement.h"
00005
00006 #include "T1290Data.h"
00007
00008
00009 #include <stdint.h>
00010
00011
00012
00013
00014
00015
00016 #define MAX_1182 2
00017
00018 #define NUM_1182_CH 8
00019
00020
00021 #define MAX_1290 8
00022
00023
00024 #define MAX_965 3
00025
00026
00027 #define MAX_FPGA_TDC 4
00028
00029
00030 #define MAX_FPGA_TDC_Channel 8
00031
00032
00033 #define MAX_V965 3
00034
00035
00036 class MQDC_t: public TObject {
00037 public:
00038 enum {NumChan = 16 };
00039
00040 Int_t charge[NumChan];
00041 Int_t range[NumChan];
00042 Int_t under[NumChan];
00043 Int_t over[NumChan];
00044
00045 MQDC_t() : TObject() { Clear(); };
00046
00047 void Clear(void);
00048
00049 void Unpack(int* pdata, unsigned len, int expected_geo = 0);
00050
00051 static int FindGeo(int* pdata, int *len, int *crate);
00052
00053 ClassDef(MQDC_t, 1)
00054 };
00055
00056 struct FPGA_TDC_hit {
00057 uint32_t ch_ix;
00058 uint32_t coarse_ct;
00059 uint32_t ch_tim;
00060
00061
00062 FPGA_TDC_hit() : ch_ix(0), coarse_ct(0), ch_tim(0) {}
00063
00064
00065 FPGA_TDC_hit(const FPGA_TDC_hit& src) :
00066 ch_ix(src.ch_ix), coarse_ct(src.coarse_ct), ch_tim(src.ch_tim) {}
00067 };
00068
00069 struct QFW_Data {
00070 uint32_t counters[4];
00071 uint32_t errcnt[4];
00072 uint32_t setup;
00073
00074 QFW_Data()
00075 {
00076 for (int n=0;n<4;n++) { counters[n] = 0; errcnt[n] = 0; }
00077 setup = 0;
00078 }
00079
00080 QFW_Data(const QFW_Data& src)
00081 {
00082 for (int n=0;n<4;n++) {
00083 counters[n] = src.counters[n];
00084 errcnt[n] = src.errcnt[n];
00085 }
00086 setup = src.setup;
00087 }
00088 };
00089
00090 class TMbsCrateEvent : public TGo4EventElement {
00091
00092 public:
00093
00094 TMbsCrateEvent();
00095 TMbsCrateEvent(const char* name, Short_t id=0);
00096 virtual ~TMbsCrateEvent();
00097
00099 virtual void Clear(Option_t *t="");
00100
00101
00102 UShort_t fData1182[MAX_1182][NUM_1182_CH];
00103
00105 T1290Data fMtdc[MAX_1290];
00106
00108 MQDC_t fMqdc[MAX_965];
00109
00111 std::vector<FPGA_TDC_hit> fFPGA[MAX_FPGA_TDC];
00112
00114 QFW_Data fQFW;
00115
00116 ClassDef(TMbsCrateEvent,3)
00117 };
00118
00119 #endif //TEVENT_H
00120