00001 #ifndef _DAQ_BSMD_H_
00002 #define _DAQ_BSMD_H_
00003
00004
00005 #include <DAQ_READER/daq_det.h>
00006
00007 #include <DAQ_EMC/daq_emc.h>
00008
00009
00010 struct bsmd_t {
00011 short adc[BSMD_DATSIZE] ;
00012 u_char cap ;
00013 } ;
00014
00015
00016 class daq_bsmd : public daq_det {
00017 private:
00018 class daq_dta *handle_adc(int rdo) ;
00019 class daq_dta *handle_raw(int rdo) ;
00020 class daq_dta *handle_adc_non_zs(int rdo) ;
00021 class daq_dta *handle_ped_rms(int rdo, int is_ped) ;
00022
00023
00024 class daq_dta *adc ;
00025 class daq_dta *adc_non_zs ;
00026 class daq_dta *ped ;
00027 class daq_dta *rms ;
00028 class daq_dta *raw ;
00029
00030 static const char *help_string ;
00031
00032
00033
00034
00035 protected:
00036
00037
00038 public:
00039 daq_bsmd(daqReader *rts_caller=0) ;
00040 ~daq_bsmd() ;
00041
00042
00043 daq_dta *get(const char *bank="*",int c1=-1, int c2=-1, int c3=-1, void *p1=0, void *p2=0) ;
00044
00045 int get_l2(char *buff, int buff_bytes, struct daq_trg_word *trg, int prompt) ;
00046
00047 const char *GetCVS() const {
00048 static const char cvs[]="Tag $Name: $Id: built "__DATE__" "__TIME__ ; return cvs;
00049 }
00050
00051 u_char rdo_id[7] ;
00052 u_int rdo_warns[7] ;
00053
00054 unsigned int t_data ;
00055
00056
00057 } ;
00058
00059
00060 struct bsmd_desc {
00061 char *dta[BSMD_FIBERS][3] ;
00062 int bytes[BSMD_FIBERS][3] ;
00063 int endian[BSMD_FIBERS][3] ;
00064 } ;
00065
00066 extern char *bsmd_reader(char *e, struct bsmd_desc *bsmd_d) ;
00067
00068 #endif // _DAQ_BSMD_H_