• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

beamtime/cosy-nov11/go4/TMbsCrateEvent.h (r4864/r2543)

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  * Put all definitions here and use them in processor,
00012  * since they are necessary for data structure of event
00013  */
00014 
00015 // number of LeCroy 1182 modules
00016 #define MAX_1182 2
00017 // number of channels in LeCroy 1182 modules
00018 #define NUM_1182_CH 8
00019 
00020 // number of 1290 TDC modules
00021 #define MAX_1290 8
00022 
00023 // number of 965 QDC Modules
00024 #define MAX_965 3
00025 
00026 // number of FPGA TDC modules
00027 #define MAX_FPGA_TDC 4
00028 
00029 // number of channels in FPGA TDC modules
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    // default constructor
00062    FPGA_TDC_hit() : ch_ix(0), coarse_ct(0), ch_tim(0) {}
00063 
00064    // copy constructor, used by vector to copy content
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       /* Data of 1182 QDC*/
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 

Generated on Tue Dec 10 2013 04:52:17 for ROCsoft by  doxygen 1.7.1