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

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

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