ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Event
ByteStreamCnvSvc
src
DumpFrags.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
9
10
#ifndef BYTESTREAMCNVSVC_DUMPFRAGS_H
11
#define BYTESTREAMCNVSVC_DUMPFRAGS_H
12
13
14
#include <iostream>
15
#include "
ByteStreamData/RawEvent.h
"
16
17
class
DumpFrags
18
{
19
public
:
21
static
void
dump
(
const
RawEvent
*
re
)
22
{
23
std::cout <<
" ---FullEventFragment run number = "
24
<<
re
->run_no() <<
" Size = "
<<
re
->fragment_size_word() << std::endl;
25
26
std::cout<<
" Global id "
<<
re
->global_id()<<std::endl;
27
std::cout<<
" Run type "
<<
re
->run_type()<<std::endl;
28
std::cout<<
" Lumi block "
<<
re
->lumi_block()<<std::endl;
29
std::cout<<
" level 1 id "
<<
re
->lvl1_id()<<std::endl;
30
std::cout<<
" Bunch crossing id "
<<
re
->bc_id()<<std::endl;
31
std::cout<<
" Bunch crossing time in seconds "
<<
re
->bc_time_seconds()<<std::endl;
32
std::cout<<
" Bunch crossing time nanoseconds offset "
<<
re
->bc_time_nanoseconds()<<std::endl;
33
std::cout<<
" Level 1 trigger type "
<<
re
->lvl1_trigger_type()<<std::endl;
34
35
const
OFFLINE_FRAGMENTS_NAMESPACE::DataType
* buffer ;
36
re
->lvl1_trigger_info(buffer) ;
37
uint32_t n =
re
->nlvl1_trigger_info() ;
38
std::cout <<
" Lvl1 trigger info , size = "
<<n <<std::endl;
39
40
for
(uint32_t i=0;i<n;++i) {
41
std::cout <<
" "
<< *buffer;
42
++buffer;
43
}
44
45
std::cout << std::endl;
46
47
re
->lvl2_trigger_info(buffer) ;
48
n =
re
->nlvl2_trigger_info() ;
49
std::cout <<
" Lvl2 trigger info, size = "
<<n <<std::endl;
50
51
for
(uint32_t i=0;i<n;++i) {
52
std::cout <<
" "
<< *buffer;
53
++buffer;
54
}
55
std::cout << std::endl;
56
57
re
->event_filter_info(buffer) ;
58
n =
re
->nevent_filter_info() ;
59
std::cout <<
" event filter trigger info, size = "
<<n <<std::endl;
60
61
for
(uint32_t i=0;i<n;++i) {
62
std::cout <<
" "
<< *buffer;
63
++buffer;
64
}
65
std::cout << std::endl;
66
67
// loop over all ROBs
68
auto
iter =
re
->child_iter();
69
while
(
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
fp = iter.next()) {
70
// add to the map
71
OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment
rob(fp);
72
73
std::cout <<
" ROBFragment, src ID ="
74
<< std::hex << rob.source_id()
75
<<
" size_word ="
<< rob.fragment_size_word() << std::endl;
76
77
// dump ROD
78
std::cout <<
" RODFragment, src ID ="
79
<< std::hex << rob.rod_source_id()
80
<<
" size_word ="
<< rob.rod_fragment_size_word() << std::endl;
81
std::cout <<
" RODFragment, run number ="
82
<< std::dec << rob.rod_run_no() << std::endl;
83
84
if
(rob.rod_fragment_size_word() >= rob.rod_header_size_word() + rob.rod_trailer_size_word()) {
85
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
rodPointer;
86
rob.rod_data(rodPointer);
87
for
(
size_t
i=0; i<rob.rod_ndata(); ++i)
88
{
89
if
(i%10 == 0) std::cout << std::endl <<
" "
;
90
std::cout << std::hex<< *rodPointer <<
" "
;
91
++rodPointer;
92
}
93
std::cout << std::endl <<
" Number of words in ROD = "
94
<< rob.rod_ndata() << std::endl;
95
}
else
{
96
std::cout << std::endl <<
"WARNING : ROD has unexpected data size "
97
<< rob.rod_ndata() <<
" and RODFragment size_word is too small!"
<< std::endl;
98
}
99
}
100
}
101
};
102
103
#endif
// BYTESTREAMCNVSVC_DUMPFRAGS_H
104
re
const std::regex re(r_e)
RawEvent.h
RawEvent
OFFLINE_FRAGMENTS_NAMESPACE::FullEventFragment RawEvent
data type for reading raw event
Definition
RawEvent.h:37
DumpFrags
Dump eformat fragments from FullEventFragment.
Definition
DumpFrags.h:18
DumpFrags::dump
static void dump(const RawEvent *re)
dump fragments from FullEventFragment
Definition
DumpFrags.h:21
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
const DataType * PointerType
Definition
RawEvent.h:25
OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment
eformat::ROBFragment< PointerType > ROBFragment
Definition
RawEvent.h:27
OFFLINE_FRAGMENTS_NAMESPACE::DataType
uint32_t DataType
Definition
RawEvent.h:24
Generated on
for ATLAS Offline Software by
1.17.0