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