Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
IOPool
Streamer
src
FRDEventMessage.cc
Go to the documentation of this file.
1
12
#include "
IOPool/Streamer/interface/FRDEventMessage.h
"
13
#include "
FWCore/Utilities/interface/Exception.h
"
14
18
FRDEventMsgView::FRDEventMsgView
(
void
*
buf
)
19
: buf_((
uint8
*)buf),
20
payload_(nullptr),
21
size_(0),
22
version_(0),
23
flags_(0),
24
run_(0),
25
lumi_(0),
26
event_
(0),
27
eventSize_(0),
28
paddingSize_(0),
29
adler32_(0),
30
crc32c_(0) {
31
uint32
* bufPtr =
static_cast<
uint32
*
>
(
buf
);
32
33
// In version one of the format, there was no version number in the data,
34
// and the run number (32-bit) appeared first.
35
// This format is no longer supported
36
version_
= *(
uint16
*)bufPtr;
37
38
if
(version_ < 2 || version_ > 6) {
39
throw
cms::Exception
(
"FRDEventMsgView"
) <<
"FRD version "
<<
version_
<<
" is not supported"
;
40
}
41
42
// Version 6 repurposes unused high 16-bits of 32-bit version
43
// assuming we no longer need version 1 support
44
flags_
= *((
uint16
*)bufPtr + 1);
45
46
if
(
version_
< 6 &&
flags_
) {
47
throw
cms::Exception
(
"FRDEventMsgView"
) <<
"FRD flags can not be used in version "
<<
version_
;
48
}
49
50
size_
=
sizeof
(
uint32
);
51
++bufPtr;
52
53
// run number
54
run_
= *bufPtr;
55
size_
+=
sizeof
(
uint32
);
56
++bufPtr;
57
58
// lumi number
59
if
(
version_
>= 2) {
60
lumi_
= *bufPtr;
61
size_
+=
sizeof
(
uint32
);
62
++bufPtr;
63
}
64
65
// event number
66
if
(
version_
== 4) {
67
uint64
eventLow = *bufPtr;
68
size_
+=
sizeof
(
uint32
);
69
++bufPtr;
70
71
uint64
eventHigh = *bufPtr;
72
size_
+=
sizeof
(
uint32
);
73
++bufPtr;
74
75
event_
= (eventHigh << 32) | eventLow;
76
77
}
else
{
78
event_
= *bufPtr;
79
size_
+=
sizeof
(
uint32
);
80
++bufPtr;
81
}
82
83
if
(
version_
>= 3) {
84
// event size
85
eventSize_
= *bufPtr;
86
size_
+=
sizeof
(
uint32
) +
eventSize_
;
87
++bufPtr;
88
89
if
(
version_
>= 5) {
90
crc32c_
= *bufPtr;
91
size_
+=
sizeof
(
uint32
);
92
++bufPtr;
93
}
else
{
94
// padding size up to V4
95
paddingSize_
= *bufPtr;
96
size_
+=
sizeof
(
uint32
) +
paddingSize_
;
97
++bufPtr;
98
99
adler32_
= *bufPtr;
100
size_
+=
sizeof
(
uint32
);
101
++bufPtr;
102
}
103
}
else
{
104
for
(
int
idx = 0; idx < 1024; idx++) {
105
size_
+=
sizeof
(
uint32
);
// FED N size
106
size_
+= *bufPtr;
// FED N data
107
eventSize_
+= *bufPtr;
108
++bufPtr;
109
}
110
}
111
112
payload_
= (
void
*)bufPtr;
113
}
FRDEventMsgView::lumi_
uint32 lumi_
Definition:
FRDEventMessage.h:164
FRDEventMsgView::crc32c_
uint32 crc32c_
Definition:
FRDEventMessage.h:169
FRDEventMsgView::adler32_
uint32 adler32_
Definition:
FRDEventMessage.h:168
Exception
Definition:
hltDiff.cc:245
FRDEventMsgView::flags_
uint16 flags_
Definition:
FRDEventMessage.h:162
FRDEventMsgView::FRDEventMsgView
FRDEventMsgView(void *buf)
Definition:
FRDEventMessage.cc:18
visDQMUpload.buf
tuple buf
Definition:
visDQMUpload.py:153
FRDEventMsgView::eventSize_
uint32 eventSize_
Definition:
FRDEventMessage.h:166
FRDEventMsgView::paddingSize_
uint32 paddingSize_
Definition:
FRDEventMessage.h:167
FRDEventMsgView::payload_
void * payload_
Definition:
FRDEventMessage.h:159
uint16
unsigned short uint16
Definition:
MsgTools.h:12
uint32
unsigned int uint32
Definition:
MsgTools.h:13
Exception.h
FRDEventMsgView::run_
uint32 run_
Definition:
FRDEventMessage.h:163
FRDEventMsgView::event_
uint64 event_
Definition:
FRDEventMessage.h:165
uint64
unsigned long long uint64
Definition:
MsgTools.h:14
uint8
unsigned char uint8
Definition:
MsgTools.h:11
event_
void event_()
FRDEventMsgView::version_
uint16 version_
Definition:
FRDEventMessage.h:161
FRDEventMsgView::size_
uint32 size_
Definition:
FRDEventMessage.h:160
FRDEventMessage.h
Generated for CMSSW Reference Manual by
1.8.5