ATLAS Offline Software
v5_EventStorageRecords.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
11 #ifndef OFFLINE_EVENTSTORAGE_V5_RECORDS_H
12 #define OFFLINE_EVENTSTORAGE_V5_RECORDS_H
13 
14 #include <string>
15 #include <vector>
16 #include <stdint.h>
17 
18 // version of file format
19 #define FILE_FORMAT_VERSION_V5 0x00000005
20 
21 // markers as in DAQ-1
22 #define FILE_START_MARKER 0x1234aaaa
23 #define RUN_PARAMETERS_MARKER 0x1234bbbb
24 
25 #define EVENT_RECORD_MARKER 0x1234cccc
26 
27 #define STRING_SECTION_MARKER 0x1234aabb
28 #define FREE_STRINGS_MARKER 0x1234aabc
29 
30 #define FILE_END_MARKER 0x1234dddd
31 #define FILE_END_MARKER_LAST 0x1234eeee
32 
33 namespace offline_EventStorage_v5 {
34 
35  struct iovec_const
36  {
37  const void* iov_base;
38  size_t iov_len;
39  };
40 
42 
44  {
45  uint32_t marker; /* Start of record marker */
46  uint32_t record_size; /* Total record size */
47  uint32_t version; /* Format version number */
48  uint32_t file_number; /* File number in the sequence */
49  uint32_t date; /* Date of run start */
50  uint32_t time; /* Time of run start */
51  uint32_t sizeLimit_dataBlocks; /* Max number of data blocks in the file */
52  uint32_t sizeLimit_MB; /* Max number of data blocks in the file */
53  };
54 
56  std::string appName;
57  std::string fileNameCore;
58  };
59 
60  typedef std::vector<std::string> freeMetaDataStrings;
61 
63  uint32_t marker; /* Start of record marker */
64  uint32_t record_size; /* Total record size */
65  uint32_t run_number; /* From IS */
66  uint32_t max_events; /* From IS */
67  uint32_t rec_enable; /* From IS */
68  uint32_t trigger_type; /* From IS */
69  uint64_t detector_mask; /* From IS */
70  uint32_t beam_type; /* From IS */
71  uint32_t beam_energy; /* From IS */
72  };
73 
75  uint32_t marker; /* Start of record marker */
76  uint32_t record_size; /* Total record size */
77  uint32_t data_block_number; /* Index in the file sequence */
78  uint32_t data_block_size; /* Size of the following block of data */
79  };
80 
81  struct file_end_record {
82  uint32_t marker; /* Start of record marker */
83  uint32_t record_size; /* Total record size */
84  uint32_t date; /* Date of run end */
85  uint32_t time; /* Time of run end */
86  uint32_t events_in_file; /* Number of events recorded */
87  uint32_t data_in_file; /* Volume of data recorded */
88  uint32_t events_in_run; /* Number of events recorded */
89  uint32_t data_in_run; /* Volume of data recorded */
90  uint32_t status; /* Used to mark the last file. Other use possible in the future.*/
91  uint32_t end_marker; /* End of RUNEND marker */
92  };
93 
94  // implement patterns
97 
100  sizeof(file_start_record)/sizeof(uint32_t),
102  0,
103  0,
104  0,
105  0,
106  0
107  };
108 
120  };
121 
132  };
133 
137  0,
138  0,
139  0,
140  0,
141  0,
142  0,
143  0,
144  0
145  };
146 
150  0,
151  0,
152  0,
153  0,
154  0,
155  0,
156  0
157  };
158 
159 
162  sizeof(data_separator_record)/sizeof(uint32_t),
163  0,
164  0
165  };
166 
169  sizeof(file_end_record)/sizeof(uint32_t),
170  0,
171  0,
172  0,
173  0,
174  0,
175  0,
176  0,
178  };
179 
180  std::string string_record(void *ri, const void *pi);
181  std::string string_record(const file_name_strings& nst);
182  void reset_record(void *ri, const void *pi);
183 
184 } // for namespace
185 
186 #endif // OFFLINE_EVENTSTORAGE_V5_RECORDS_H
187 
188 
offline_EventStorage_v5::file_end_record::events_in_run
uint32_t events_in_run
Definition: v5_EventStorageRecords.h:88
offline_EventStorage_v5::file_name_strings::fileNameCore
std::string fileNameCore
Definition: v5_EventStorageRecords.h:57
offline_EventStorage_v5::data_separator_record::marker
uint32_t marker
Definition: v5_EventStorageRecords.h:75
offline_EventStorage_v5::free_strings_marker
const uint32_t free_strings_marker
Definition: v5_EventStorageRecords.h:96
offline_EventStorage_v5::freeMetaDataStrings
std::vector< std::string > freeMetaDataStrings
Definition: v5_EventStorageRecords.h:60
offline_EventStorage_v5::run_parameters_record::max_events
uint32_t max_events
Definition: v5_EventStorageRecords.h:66
offline_EventStorage_v5::internal_run_parameters_record::detector_mask_2of2
uint32_t detector_mask_2of2
Definition: v5_EventStorageRecords.h:117
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
offline_EventStorage_v5::old_internal_run_parameters_record::marker
uint32_t marker
Definition: v5_EventStorageRecords.h:123
offline_EventStorage_v5::file_start_pattern
const file_start_record file_start_pattern
Definition: v5_EventStorageRecords.h:98
FILE_END_MARKER_LAST
#define FILE_END_MARKER_LAST
Definition: v5_EventStorageRecords.h:31
offline_EventStorage_v5::file_end_record::end_marker
uint32_t end_marker
Definition: v5_EventStorageRecords.h:91
STRING_SECTION_MARKER
#define STRING_SECTION_MARKER
Definition: v5_EventStorageRecords.h:27
offline_EventStorage_v5::file_start_record::record_size
uint32_t record_size
Definition: v5_EventStorageRecords.h:46
offline_EventStorage_v5::old_internal_run_parameters_record::record_size
uint32_t record_size
Definition: v5_EventStorageRecords.h:124
offline_EventStorage_v5::run_parameters_record::run_number
uint32_t run_number
Definition: v5_EventStorageRecords.h:65
offline_EventStorage_v5::file_start_record::date
uint32_t date
Definition: v5_EventStorageRecords.h:49
offline_EventStorage_v5::iovec_const
Definition: v5_EventStorageRecords.h:36
FILE_END_MARKER
#define FILE_END_MARKER
Definition: v5_EventStorageRecords.h:30
EVENT_RECORD_MARKER
#define EVENT_RECORD_MARKER
Definition: v5_EventStorageRecords.h:25
offline_EventStorage_v5::old_internal_run_parameters_record
Definition: v5_EventStorageRecords.h:122
offline_EventStorage_v5::file_end_record
Definition: v5_EventStorageRecords.h:81
offline_EventStorage_v5::run_parameters_record::rec_enable
uint32_t rec_enable
Definition: v5_EventStorageRecords.h:67
offline_EventStorage_v5::internal_run_parameters_record::beam_type
uint32_t beam_type
Definition: v5_EventStorageRecords.h:118
offline_EventStorage_v5::old_internal_run_parameters_record::detector_mask
uint32_t detector_mask
Definition: v5_EventStorageRecords.h:129
FREE_STRINGS_MARKER
#define FREE_STRINGS_MARKER
Definition: v5_EventStorageRecords.h:28
pi
#define pi
Definition: TileMuonFitter.cxx:65
offline_EventStorage_v5::old_run_parameters_pattern
const old_internal_run_parameters_record old_run_parameters_pattern
Definition: v5_EventStorageRecords.h:147
offline_EventStorage_v5::internal_run_parameters_record::rec_enable
uint32_t rec_enable
Definition: v5_EventStorageRecords.h:114
offline_EventStorage_v5::run_parameters_record::marker
uint32_t marker
Definition: v5_EventStorageRecords.h:63
offline_EventStorage_v5::old_internal_run_parameters_record::run_number
uint32_t run_number
Definition: v5_EventStorageRecords.h:125
offline_EventStorage_v5::file_start_record::marker
uint32_t marker
Definition: v5_EventStorageRecords.h:45
offline_EventStorage_v5::file_name_strings_marker
const uint32_t file_name_strings_marker
Definition: v5_EventStorageRecords.h:95
offline_EventStorage_v5::file_name_strings
Definition: v5_EventStorageRecords.h:55
offline_EventStorage_v5::run_parameters_record::beam_energy
uint32_t beam_energy
Definition: v5_EventStorageRecords.h:71
offline_EventStorage_v5::data_separator_record::record_size
uint32_t record_size
Definition: v5_EventStorageRecords.h:76
offline_EventStorage_v5::run_parameters_pattern
const internal_run_parameters_record run_parameters_pattern
Definition: v5_EventStorageRecords.h:134
offline_EventStorage_v5::old_internal_run_parameters_record::trigger_type
uint32_t trigger_type
Definition: v5_EventStorageRecords.h:128
offline_EventStorage_v5::old_internal_run_parameters_record::beam_type
uint32_t beam_type
Definition: v5_EventStorageRecords.h:130
FILE_START_MARKER
#define FILE_START_MARKER
Definition: v5_EventStorageRecords.h:22
offline_EventStorage_v5::old_internal_run_parameters_record::max_events
uint32_t max_events
Definition: v5_EventStorageRecords.h:126
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
offline_EventStorage_v5::file_end_pattern
const file_end_record file_end_pattern
Definition: v5_EventStorageRecords.h:167
offline_EventStorage_v5::file_end_record::data_in_run
uint32_t data_in_run
Definition: v5_EventStorageRecords.h:89
offline_EventStorage_v5::file_end_record::status
uint32_t status
Definition: v5_EventStorageRecords.h:90
offline_EventStorage_v5::file_start_record::version
uint32_t version
Definition: v5_EventStorageRecords.h:47
offline_EventStorage_v5::internal_run_parameters_record::detector_mask_1of2
uint32_t detector_mask_1of2
Definition: v5_EventStorageRecords.h:116
offline_EventStorage_v5::file_name_strings::appName
std::string appName
Definition: v5_EventStorageRecords.h:56
offline_EventStorage_v5::internal_run_parameters_record::marker
uint32_t marker
Definition: v5_EventStorageRecords.h:110
offline_EventStorage_v5::ZLIB
@ ZLIB
Definition: v5_EventStorageRecords.h:41
offline_EventStorage_v5
Definition: ByteStreamDataWriterV5.h:15
offline_EventStorage_v5::run_parameters_record::record_size
uint32_t record_size
Definition: v5_EventStorageRecords.h:64
offline_EventStorage_v5::internal_run_parameters_record::max_events
uint32_t max_events
Definition: v5_EventStorageRecords.h:113
offline_EventStorage_v5::old_internal_run_parameters_record::rec_enable
uint32_t rec_enable
Definition: v5_EventStorageRecords.h:127
offline_EventStorage_v5::file_start_record::sizeLimit_dataBlocks
uint32_t sizeLimit_dataBlocks
Definition: v5_EventStorageRecords.h:51
offline_EventStorage_v5::data_separator_record
Definition: v5_EventStorageRecords.h:74
offline_EventStorage_v5::run_parameters_record::beam_type
uint32_t beam_type
Definition: v5_EventStorageRecords.h:70
offline_EventStorage_v5::run_parameters_record::detector_mask
uint64_t detector_mask
Definition: v5_EventStorageRecords.h:69
offline_EventStorage_v5::internal_run_parameters_record::run_number
uint32_t run_number
Definition: v5_EventStorageRecords.h:112
offline_EventStorage_v5::RESERVED
@ RESERVED
Definition: v5_EventStorageRecords.h:41
offline_EventStorage_v5::internal_run_parameters_record::record_size
uint32_t record_size
Definition: v5_EventStorageRecords.h:111
offline_EventStorage_v5::iovec_const::iov_len
size_t iov_len
Definition: v5_EventStorageRecords.h:38
offline_EventStorage_v5::file_end_record::date
uint32_t date
Definition: v5_EventStorageRecords.h:84
offline_EventStorage_v5::data_separator_pattern
const data_separator_record data_separator_pattern
Definition: v5_EventStorageRecords.h:160
offline_EventStorage_v5::CompressionType
CompressionType
Definition: v5_EventStorageRecords.h:41
offline_EventStorage_v5::file_end_record::data_in_file
uint32_t data_in_file
Definition: v5_EventStorageRecords.h:87
offline_EventStorage_v5::data_separator_record::data_block_size
uint32_t data_block_size
Definition: v5_EventStorageRecords.h:78
offline_EventStorage_v5::file_start_record::sizeLimit_MB
uint32_t sizeLimit_MB
Definition: v5_EventStorageRecords.h:52
offline_EventStorage_v5::file_start_record
Definition: v5_EventStorageRecords.h:44
offline_EventStorage_v5::file_start_record::file_number
uint32_t file_number
Definition: v5_EventStorageRecords.h:48
RUN_PARAMETERS_MARKER
#define RUN_PARAMETERS_MARKER
Definition: v5_EventStorageRecords.h:23
offline_EventStorage_v5::internal_run_parameters_record::beam_energy
uint32_t beam_energy
Definition: v5_EventStorageRecords.h:119
offline_EventStorage_v5::run_parameters_record::trigger_type
uint32_t trigger_type
Definition: v5_EventStorageRecords.h:68
offline_EventStorage_v5::run_parameters_record
Definition: v5_EventStorageRecords.h:62
offline_EventStorage_v5::file_start_record::time
uint32_t time
Definition: v5_EventStorageRecords.h:50
FILE_FORMAT_VERSION_V5
#define FILE_FORMAT_VERSION_V5
metadata records for EventStorage library
Definition: v5_EventStorageRecords.h:19
offline_EventStorage_v5::NONE
@ NONE
Definition: v5_EventStorageRecords.h:41
offline_EventStorage_v5::file_end_record::events_in_file
uint32_t events_in_file
Definition: v5_EventStorageRecords.h:86
offline_EventStorage_v5::reset_record
void reset_record(void *ri, const void *pi)
Definition: v5_EventStorageRecords.cxx:56
offline_EventStorage_v5::file_end_record::record_size
uint32_t record_size
Definition: v5_EventStorageRecords.h:83
offline_EventStorage_v5::old_internal_run_parameters_record::beam_energy
uint32_t beam_energy
Definition: v5_EventStorageRecords.h:131
offline_EventStorage_v5::UNKNOWN
@ UNKNOWN
Definition: v5_EventStorageRecords.h:41
offline_EventStorage_v5::internal_run_parameters_record
Definition: v5_EventStorageRecords.h:109
offline_EventStorage_v5::data_separator_record::data_block_number
uint32_t data_block_number
Definition: v5_EventStorageRecords.h:77
offline_EventStorage_v5::string_record
std::string string_record(void *ri, const void *pi)
Definition: v5_EventStorageRecords.cxx:13
offline_EventStorage_v5::iovec_const::iov_base
const void * iov_base
Definition: v5_EventStorageRecords.h:37
offline_EventStorage_v5::internal_run_parameters_record::trigger_type
uint32_t trigger_type
Definition: v5_EventStorageRecords.h:115
offline_EventStorage_v5::file_end_record::time
uint32_t time
Definition: v5_EventStorageRecords.h:85
offline_EventStorage_v5::file_end_record::marker
uint32_t marker
Definition: v5_EventStorageRecords.h:82