Belle II Software  release-08-01-10
RawTrailer_v2.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_V2_H
10 #define RAWTRAILER_V2_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_v2 : public TObject {
34  class RawTrailer_v2 {
35  public:
37  RawTrailer_v2();
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 = 2
63  };
64 
65  enum {
66  MAGIC_WORD_TERM_TRAILER = 0x7fff0006
67  };
68 
69  enum {
70  POS_CHKSUM = 0,
71  POS_TERM_WORD = 1
72  };
73 
74  private:
76  int* m_buffer;
77 
79  // ver.2 Do not record m_buffer pointer. (Dec.19, 2014)
80  // ClassDef(RawTrailer_v2, 1);
81  };
82 
83 
85  {
86  if (m_buffer == NULL) {
87  B2FATAL("m_buffer is NULL. Exiting...");
88  }
89  }
90 
92  {
93  return m_buffer;
94  }
95 
96  inline void RawTrailer_v2::SetBuffer(int* bufin)
97  {
98  m_buffer = bufin;
99  }
100 
102  {
103  SetMagicWord();
104  }
105 
106  inline void RawTrailer_v2::SetChksum(int chksum)
107  {
108  CheckBuffer();
109  m_buffer[ POS_CHKSUM ] = chksum;
110  }
111 
113  {
114  CheckBuffer();
115  m_buffer[ POS_TERM_WORD ] = MAGIC_WORD_TERM_TRAILER;
116  }
117 
119  {
120  CheckBuffer();
121  return m_buffer[ POS_TERM_WORD ];
122  }
123 
124  inline unsigned int RawTrailer_v2::GetChksum()
125  {
126  CheckBuffer();
127  return (unsigned int)(m_buffer[ POS_CHKSUM ]);
128  }
129 
131  {
132  return RAWTRAILER_NWORDS;
133  }
134 
135 
136 
137 
139 }
140 
141 #endif
The Raw Trailer class ver.1 ( the latest version since May, 2014 ) This class defines the format of t...
Definition: RawTrailer_v2.h:34
RawTrailer_v2()
Default constructor.
int * m_buffer
do not record buffer ( RawCOPPER includes buffer of RawHeader and RawTrailer_v2 )
Definition: RawTrailer_v2.h:76
~RawTrailer_v2()
Destructor.
void CheckBuffer()
set buffer
Definition: RawTrailer_v2.h:84
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
Definition: RawTrailer_v2.h:96
void SetChksum(int chksum)
set buffer
void Initialize()
set buffer
int * GetBuffer()
set buffer
Definition: RawTrailer_v2.h:91
Abstract base class for different kinds of events.