ATLAS Offline Software
Loading...
Searching...
No Matches
v40_FullEventFragment.h
Go to the documentation of this file.
1//Dear emacs, this is -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5*/
6
7
18
19#ifndef OFFLINE_EFORMAT_V40_FULLEVENTFRAGMENT_H
20#define OFFLINE_EFORMAT_V40_FULLEVENTFRAGMENT_H
21
22#include <vector>
23
24#include "v40_Header.h"
25#include "v40_ROBFragment.h"
26#include "eformat/Problem.h"
27#include "eformat/blob.h"
28
29namespace offline_eformat { namespace v40 {
30
35 class FullEventFragment : public Header {
36
37 public: //interface
38
45 FullEventFragment (const uint32_t* it);
46
51
58
67 FullEventFragment (const eformat::helper::u32list& blob);
68
77 FullEventFragment (const eformat::helper::u32slice& blob);
78
82 virtual ~FullEventFragment();
83
90
96 FullEventFragment& assign (const uint32_t* it);
97
102 bool check_impl
103 (const uint16_t version=eformat::MAJOR_V40_VERSION,
104 bool exc=true) const;
105
109 bool check (const uint16_t version=eformat::MAJOR_V40_VERSION) const;
110
114 bool check_noex (const uint16_t version=eformat::MAJOR_V40_VERSION) const;
115
120 bool check_tree_impl
121 (const uint16_t version=eformat::MAJOR_V40_VERSION,
122 const uint16_t rod_version=eformat::MAJOR_V31_VERSION,
123 const bool exc=true) const;
124
128 bool check_tree (const uint16_t version=eformat::MAJOR_V40_VERSION,
129 const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const;
130
135 bool check_tree_noex (const uint16_t version=eformat::MAJOR_V40_VERSION,
136 const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const;
137
141 void problems (std::vector<eformat::FragmentProblem>& p,
142 const uint16_t version=eformat::MAJOR_V40_VERSION) const;
143
147 void problems_tree (std::vector<eformat::helper::ProblemContainer>& p,
148 const uint16_t version=eformat::MAJOR_V40_VERSION,
149 const uint16_t rod_version=eformat::MAJOR_V31_VERSION)
150 const;
151
155 void robs (std::vector<ROBFragment>& robs) const;
156
160 void robs (std::vector<ROBFragment>& good, std::vector<ROBFragment>& bad,
161 const uint16_t version=eformat::MAJOR_V40_VERSION,
162 const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const;
163
168 uint32_t bc_time_seconds() const;
169
174 uint32_t bc_time_nanoseconds() const;
175
179 uint32_t global_id() const;
180
184 uint32_t run_type() const;
185
189 uint32_t run_no() const;
190
194 uint16_t lumi_block() const;
195
199 uint32_t lvl1_id() const;
200
204 uint16_t bc_id() const;
205
209 uint8_t lvl1_trigger_type() const;
210
214 uint32_t nlvl1_trigger_info() const;
215
221 const uint32_t* lvl1_trigger_info() const;
222 inline void lvl1_trigger_info (const uint32_t*& it) const //legacy
223 { it = lvl1_trigger_info(); }
224
228 uint32_t nlvl2_trigger_info() const;
229
235 const uint32_t* lvl2_trigger_info() const;
236 inline void lvl2_trigger_info (const uint32_t*& it) const //legacy
237 { it = lvl2_trigger_info(); }
238
242 uint32_t nevent_filter_info () const;
243
249 const uint32_t* event_filter_info() const;
250 inline void event_filter_info (const uint32_t*& it) const //legacy
251 { it = event_filter_info(); }
252
256 uint32_t nstream_tag () const;
257
263 const uint32_t* stream_tag() const;
264 inline void stream_tag (const uint32_t*& it) const //legacy
265 { it = stream_tag(); }
266
270 virtual uint32_t nchildren () const;
271
280 const uint32_t* child(size_t n) const;
281 virtual inline void child (const uint32_t*& p, size_t n) const //legacy
282 { p = child(n); }
283
295 const uint32_t* child_check(size_t n) const;
296 virtual inline void child_check (const uint32_t*& p, size_t n) const
297 { p = child_check(n); } //legacy
298
309 virtual uint32_t children (const uint32_t** p, size_t max) const;
310
311 private: //representation
312
313 const uint32_t* m_start;
314
315 };
316
317}}
318
319#endif /* OFFLINE_EFORMAT_V40_FULLEVENTFRAGMENT_H */
#define max(a, b)
Definition cfImp.cxx:41
FullEventFragment()
Builds an empty, otherwise useless FullEventFragment.
void lvl2_trigger_info(const uint32_t *&it) const
bool check_tree_noex(const uint16_t version=eformat::MAJOR_V40_VERSION, const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const
Says if the Fragment, all children and all RODs are valid, without throwing exceptions.
bool check_impl(const uint16_t version=eformat::MAJOR_V40_VERSION, bool exc=true) const
Says if the the fragment is valid.
uint32_t run_type() const
Returns the run type.
bool check_noex(const uint16_t version=eformat::MAJOR_V40_VERSION) const
Says if the the fragment is valid.
uint32_t lvl1_id() const
Returns the lvl1 identifier.
uint32_t nevent_filter_info() const
Returns the number of Event Filter words.
FullEventFragment(const uint32_t *it)
To build a fragment given the containing buffer.
virtual ~FullEventFragment()
Destructor virtualisation.
const uint32_t * stream_tag() const
Returns an iterator to the first of the stream tag words.
uint16_t bc_id() const
Returns the bunch crossing identifier.
uint16_t lumi_block() const
Returns the luminosity block number.
const uint32_t * event_filter_info() const
Returns an iterator to the first of the EF info words.
uint8_t lvl1_trigger_type() const
Returns the lvl1 trigger type.
void problems(std::vector< eformat::FragmentProblem > &p, const uint16_t version=eformat::MAJOR_V40_VERSION) const
Tells which problems the current fragment has.
uint32_t bc_time_seconds() const
Returns amount of seconds since the (unix) origin, for the bunch crossing time.
const uint32_t * child(size_t n) const
Returns the nth child fragment.
void stream_tag(const uint32_t *&it) const
uint32_t run_no() const
Returns the run number.
FullEventFragment & operator=(const FullEventFragment &other)
Copy operator.
const uint32_t * lvl2_trigger_info() const
Returns an iterator to the first of the LVL2 trigger info words.
uint32_t global_id() const
Returns the global identifier.
virtual void child_check(const uint32_t *&p, size_t n) const
uint32_t nstream_tag() const
Returns the number of stream tag words.
uint32_t bc_time_nanoseconds() const
Returns amount of nanoseconds aditionally to the amount of seconds returned by bc_time_seconds,...
uint32_t nlvl1_trigger_info() const
Returns the number of lvl1 trigger info words.
void problems_tree(std::vector< eformat::helper::ProblemContainer > &p, const uint16_t version=eformat::MAJOR_V40_VERSION, const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const
Tells which problems the current fragment and all the children have.
virtual void child(const uint32_t *&p, size_t n) const
virtual uint32_t nchildren() const
Returns the number of children available.
bool check(const uint16_t version=eformat::MAJOR_V40_VERSION) const
Says if the the fragment is valid.
bool check_tree_impl(const uint16_t version=eformat::MAJOR_V40_VERSION, const uint16_t rod_version=eformat::MAJOR_V31_VERSION, const bool exc=true) const
Says if the Fragment and all children are valid.
uint32_t nlvl2_trigger_info() const
Returns the number of lvl2 trigger info words.
FullEventFragment & assign(const uint32_t *it)
Manual re-assignment.
virtual uint32_t children(const uint32_t **p, size_t max) const
Returns all the children of this fragment.
void robs(std::vector< ROBFragment > &robs) const
Retrieves a vector of all ROBs from this fragment.
void event_filter_info(const uint32_t *&it) const
const uint32_t * lvl1_trigger_info() const
Returns an iterator to the first of the LVL1 trigger info words.
void lvl1_trigger_info(const uint32_t *&it) const
const uint32_t * child_check(size_t n) const
Returns the nth child fragment.
bool check_tree(const uint16_t version=eformat::MAJOR_V40_VERSION, const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const
Says if the Fragment and all children are valid.
Header(const uint32_t *it)
To build a header given the containing buffer.
uint32_t version() const
Returns the formatting version.