00001
00002
00003
00004 #ifndef FROOT_TFndSCCRaw
00005 #define FROOT_TFndSCCRaw
00006
00008
00009
00010
00012
00013
00014
00015
00016 #include "TFndSlowCntSilRecode.h"
00017
00018
00019
00020
00021 class TFndSCCRaw: public TObject
00022 {
00023 protected:
00024
00025 UInt_t fEvCounter;
00026
00027 UInt_t fGlobalHdr[K_SCC_HDR_SIZE/4];
00028 UInt_t fGlobalEvent[K_N_SLOWS * K_SLOW_SOCK_LEN];
00029
00030 UInt_t fSingleRawData[K_N_SLOWS][K_SLOW_SOCK_LEN];
00031
00032 Int_t fDataReady[K_N_SLOWS];
00033
00034 TString fMsgPart[K_N_SLOWS];
00035 UInt_t fMiscArray[K_N_SLOWS][K_MISC_MAX_SIZE];
00036 TDatime fDatime[K_N_SLOWS];
00037
00038 TFndSlowCntSilRecode *fSilRecode;
00039
00040 private:
00041 void StoreMessagePart(Int_t slow_det);
00042 void StoreMiscPart(Int_t slow_det);
00043
00044 protected:
00045 Bool_t IsDataReady(const Int_t &slow_det);
00046
00047 public:
00048 TFndSCCRaw();
00049 ~TFndSCCRaw();
00050
00051 TFndSlowCntSilRecode *GetSilRecode() { return fSilRecode; }
00052
00053 void SetSingleRawData(Int_t slow_det,UInt_t *DataArray,Int_t part = 0);
00054 TString GetMessagePart(Int_t slow_det);
00055 UInt_t GetMiscInfo(Int_t slow_det,Int_t num);
00056
00057 Int_t GetChannelData(Int_t slow_det,Int_t ch,Bool_t &power,UInt_t &voltage,UInt_t ¤t,Bool_t &trip);
00058 static void DecodeDataElement(UInt_t entry,Bool_t &power,UInt_t &voltage,UInt_t ¤t,Bool_t &trip);
00059
00060 static TString GetChannelName(Int_t slow_det,Int_t ch);
00061
00062 void PrintHeader(Int_t slow_det);
00063 void PrintBuffer(Int_t slow_det);
00064
00065
00066 void PrintGlobalHeader();
00067
00068 private:
00069 Int_t BuildGlobalHeader(TString &message);
00070 public:
00071 Int_t BuildGlobalEvent(TString &message);
00072
00073 ClassDef(TFndSCCRaw,1)
00074 };
00075
00076 #endif // FROOT_TFndSCCRaw