StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ssdReader.h
1 #ifndef _SSD_READER_H_
2 #define _SSD_READER_H_
3 
4 #include <sys/types.h>
5 
6 /*
7  SSD has 10 ladders, 16 modules, 2 sides, 768 strips each 8bits wide
8 
9  However! The DAQ maps the data as:
10  40 pseudo-rows
11  64 pseudo-pads
12  192 pseudo-timebins (strips)
13 
14  The pseudo-rows are constructed as
15  ReceiverBoard[0..3] * 10 + Mezzanine[0..1] * 5 + ASIC[0..5]
16 
17 
18 */
19 namespace OLDEVP {
20 struct ssd_t {
21  ssd_t();
22  void reset();
23  int check();
24 
25  int fenceA;
26  int channels ;
27  int mode ; // 0 normal, 1 pedestals/RMSs
28  int max_channels ;
29 
30  // how many valid strips in this hybrid
31  u_char counts[40][64] ;
32 
33  // Up to 192 valid strips (count is in counts)
34  // strip is overloaded with RMS data if mode==1
35  u_char strip[40][64][192];
36 
37  // Up to 192 valid adcs (same count as above...)
38  // overloaded with PED data if mode==1
39  u_char adc[40][64][192];
40 
41  // To facilitate decoding in raw events
42  // this points to raw data of ONE mezzanine
43  // this raw data is 6*64*512 bytes long
44  // There are only 2 mezzanines/RB
45  u_char *raw[4][2] ;
46  int fenceZ;
47 
48 };
49 
50 extern struct ssd_t ssd ;
51 
52 extern int ssdReader(char *mem) ;
53 }
54 #endif