Belle II Software  release-08-01-10
RawTrailer_latest.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #ifndef RAWTRAILER_LATEST_H
10 #define RAWTRAILER_LATEST_H
11 
12 #include <stdio.h>
13 
14 #include <rawdata/switch_basf2_standalone.h>
15 
16 //#define TRAILER_SIZE 16
17 /* #define POS_CHKSUM 0 */
18 /* #define POS_TERM_WORD 1 */
19 /* #define RAWCOPPER_TRAILER_SIZE 2 */
20 /* #define MAGIC_WORD_TERM_TRAILER 0x7fff0006 */
21 
22 namespace Belle2 {
33  // class RawTrailer_latest : public TObject {
35  public:
38 
41 
43  void CheckBuffer();
44 
45  int* GetBuffer();
46 
47  void SetBuffer(int* bufin);
48 
49  void Initialize();
50 
51  void SetChksum(int chksum);
52 
53  void SetMagicWord();
54 
55  int GetTrlNwords();
56 
57  unsigned int GetChksum();
58 
59  int GetMagicWord();
60 
61  enum {
62  RAWTRAILER_NWORDS = 4
63  };
64 
65  enum {
66  MAGIC_WORD_TERM_TRAILER = 0x7fff0006
67  };
68 
69  enum {
70  POS_ERROR_BIT_CH1 = 0,
71  POS_ERROR_CH2 = 1,
72  POS_CHKSUM = 2,
73  POS_TERM_WORD = 3
74  };
75 
76  private:
78  int* m_buffer;
79 
81  // ver.2 Do not record m_buffer pointer. (Dec.19, 2014)
82  // ClassDef(RawTrailer_latest, 1);
83  };
84 
85 
87  {
88  if (m_buffer == NULL) {
89  B2FATAL("m_buffer is NULL. Exiting...");
90  }
91  }
92 
94  {
95  return m_buffer;
96  }
97 
98  inline void RawTrailer_latest::SetBuffer(int* bufin)
99  {
100  m_buffer = bufin;
101  }
102 
104  {
105  SetMagicWord();
106  }
107 
108  inline void RawTrailer_latest::SetChksum(int chksum)
109  {
110  CheckBuffer();
111  m_buffer[ POS_CHKSUM ] = chksum;
112  }
113 
115  {
116  CheckBuffer();
117  m_buffer[ POS_TERM_WORD ] = MAGIC_WORD_TERM_TRAILER;
118  }
119 
121  {
122  CheckBuffer();
123  return m_buffer[ POS_TERM_WORD ];
124  }
125 
126  inline unsigned int RawTrailer_latest::GetChksum()
127  {
128  CheckBuffer();
129  return (unsigned int)(m_buffer[ POS_CHKSUM ]);
130  }
131 
133  {
134  return RAWTRAILER_NWORDS;
135  }
136 
137 
138 
139 
141 }
142 
143 #endif
The Raw Trailer class ver.1 ( the latest version since May, 2014 ) This class defines the format of t...
int * m_buffer
do not record buffer ( RawCOPPER includes buffer of RawHeader and RawTrailer_latest )
RawTrailer_latest()
Default constructor.
void CheckBuffer()
set buffer
int GetTrlNwords()
Set magic word.
int GetMagicWord()
initialize header
unsigned int GetChksum()
Set # of trailer words.
void SetMagicWord()
initialize header
void SetBuffer(int *bufin)
return buffer
void SetChksum(int chksum)
set buffer
int * GetBuffer()
set buffer
Abstract base class for different kinds of events.