EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
oncsSub_idmvtxv0.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file oncsSub_idmvtxv0.h
1 #ifndef __ONCSSUB_IDMVTXV0_H__
2 #define __ONCSSUB_IDMVTXV0_H__
3 
4 #include "oncsSubevent.h"
5 #include <vector>
6 
7 #ifndef __CINT__
9 #else
10 class oncsSub_idmvtxv0 : public oncsSubevent_w4 {
11 #endif
12 
13 #define MAXRUID 1
14 #define RUHEADER 0xE0
15 #define RUTRAILER 0xF0
16 #define MAXRUCHN 28
17 #define MAXCHIPID 9
18 public:
21 
22  //ichip, what -> event or chip info
23  //ichip, region, row -> hit mask (indicates pixels with hits in given 32-pix block)
24  //ichip, row -> row map (indicates 32-pix blocks with hits in given row)
25  int iValue(const int ich, const char *what);
26  //int iValue(const int RU, const int chip, const char *);
27  int iValue(const int chip, const int region, const int row);
28  int iValue(const int chip, const int row);
29 
30  void dump ( OSTREAM& os = COUT) ;
31  void gdump ( const int how=EVT_HEXADECIMAL, OSTREAM& os = COUT) const; // add this to override the generic gdump
32 
33 protected:
34  int *mvtx_decode ();
35 
38  int _bad_ruid;
44  int _chip_id[MAXRUCHN+1];
45  int _highest_region[MAXRUCHN+1];
46  int _unexpected_bytes[MAXRUCHN+1];
47  int _bunchcounter[MAXRUCHN+1];
48  bool _header_found[MAXRUCHN+1];
49  bool _trailer_found[MAXRUCHN+1];
50  int _readout_flags[MAXRUCHN+1];
51 
52  // this is one "row" of 32 pixels
53  unsigned int chip_row[MAXRUCHN+1][512][32];
54  unsigned int chip_rowmap[MAXRUCHN+1][512];
55 
56  int decode_thebit(int the_row, int encoder_id, int address) const; //helper function to decode the column number
57  void print_stuff(OSTREAM& out, unsigned int data, int width, int shift, bool blank = false) const;
58 };
59 
60 
61 
62 #endif /* __ONCSSUB_IDMVTXV0_H__ */