ATLAS Offline Software
v40_ROBFragment.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 
19 #ifndef OFFLINE_EFORMAT_V40_ROBFRAGMENT_H
20 #define OFFLINE_EFORMAT_V40_ROBFRAGMENT_H
21 
22 #include <vector>
23 
24 #include "v40_Header.h"
25 #include "eformat/blob.h"
26 #include "eformat/Version.h"
27 #include "eformat/Problem.h"
28 
29 namespace offline_eformat { namespace v40 {
30 
35  class ROBFragment : public Header {
36 
37  public: //interface
38 
45  ROBFragment (const uint32_t* it);
46 
52  ROBFragment (const ROBFragment& other);
53 
57  ROBFragment ();
58 
67  ROBFragment (const eformat::helper::u32list& blob);
68 
77  ROBFragment (const eformat::helper::u32slice& blob);
78 
82  virtual ~ROBFragment();
83 
90 
96  ROBFragment& assign (const uint32_t* it);
97 
98 
102  bool check_rob (const uint16_t version=eformat::MAJOR_V40_VERSION) const;
103 
107  bool check_rob_noex (const uint16_t version=eformat::MAJOR_V40_VERSION) const;
108 
112  bool check_rob_impl
113  (const uint16_t version=eformat::MAJOR_V40_VERSION,
114  const bool exc = true) const;
115 
119  bool check_rod_noex
120  (const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const;
121 
125  bool check_rod
126  (const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const;
127 
132  bool check_rod_impl
133  (const uint16_t rod_version=eformat::MAJOR_V31_VERSION,
134  const bool exc = true) const;
135 
139  bool check(const uint16_t version=eformat::MAJOR_V40_VERSION,
140  const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const;
141 
145  bool check_noex (const uint16_t version=eformat::MAJOR_V40_VERSION,
146  const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const;
147 
148 
152  bool check_impl
153  (const uint16_t version=eformat::MAJOR_V40_VERSION,
154  const uint16_t rod_version=eformat::MAJOR_V31_VERSION,
155  const bool exc = true) const;
156 
160  void problems (std::vector<eformat::FragmentProblem>& p,
161  const uint16_t version=eformat::MAJOR_V40_VERSION,
162  const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const;
163 
167  void rob_problems (std::vector<eformat::FragmentProblem>& p,
168  const uint16_t version=eformat::MAJOR_V40_VERSION) const;
169 
173  void rod_problems (std::vector<eformat::FragmentProblem>& p,
174  const uint16_t version=eformat::MAJOR_V31_VERSION) const;
175 
179  uint32_t rob_source_id () const;
180 
186  const uint32_t* rod_start() const;
187  inline void rod_start (const uint32_t*& it) const //legacy
188  { it = rod_start(); }
189 
193  uint32_t rod_marker() const;
194 
199 
205 
210 
214  uint32_t rod_version() const;
215 
219  uint32_t rod_source_id() const;
220 
224  uint32_t rod_run_no() const;
225 
229  uint32_t rod_lvl1_id() const;
230 
234  uint32_t rod_bc_id() const;
235 
240 
244  uint32_t rod_detev_type() const;
245 
249  uint32_t rod_nstatus () const;
250 
257  const uint32_t* rod_status() const;
258  inline void rod_status (const uint32_t*& it) const //legacy
259  { it = rod_status(); }
260 
264  uint32_t rod_ndata () const;
265 
271  const uint32_t* rod_data() const;
272  void rod_data (const uint32_t*& it) const //legacy
273  { it = rod_data(); }
274 
280  uint32_t rod_status_position () const;
281 
285  virtual uint32_t nchildren () const;
286 
295  const uint32_t* child(size_t n) const;
296  virtual inline void child (const uint32_t*& p, size_t n) const //legacy
297  { p = child(n); }
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_ROBFRAGMENT_H */
offline_eformat::v40::ROBFragment::child
const uint32_t * child(size_t n) const
Returns the nth child fragment.
Definition: v40_ROBFragment.cxx:225
offline_eformat::v40::ROBFragment::rod_status
void rod_status(const uint32_t *&it) const
Definition: v40_ROBFragment.h:258
offline_eformat::v40::ROBFragment::rod_detev_type
uint32_t rod_detev_type() const
Returns the detector event type.
Definition: v40_ROBFragment.cxx:314
offline_eformat::v40::Header::version
uint32_t version() const
Returns the formatting version.
Definition: v40_Header.cxx:57
offline_eformat::v40::ROBFragment::ROBFragment
ROBFragment()
Builds an empty, otherwise useless ROBFragment.
Definition: v40_ROBFragment.cxx:29
offline_eformat::v40::ROBFragment
Describes how to access the contents of a subdetector fragment, as prescribed by the event format not...
Definition: v40_ROBFragment.h:35
offline_eformat::v40::ROBFragment::rod_data
void rod_data(const uint32_t *&it) const
Definition: v40_ROBFragment.h:272
offline_eformat::v40::ROBFragment::operator=
ROBFragment & operator=(const ROBFragment &other)
Assignment.
Definition: v40_ROBFragment.cxx:53
offline_eformat::v40::ROBFragment::rod_lvl1_id
uint32_t rod_lvl1_id() const
Returns the lvl1 identifier.
Definition: v40_ROBFragment.cxx:299
offline_eformat::v40::ROBFragment::check_rob_impl
bool check_rob_impl(const uint16_t version=eformat::MAJOR_V40_VERSION, const bool exc=true) const
Says if the ROB fragment is valid.
Definition: v40_ROBFragment.cxx:71
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
offline_eformat::v40::ROBFragment::rod_run_no
uint32_t rod_run_no() const
Returns the current run number.
Definition: v40_ROBFragment.cxx:294
offline_eformat::v40::ROBFragment::rod_start
void rod_start(const uint32_t *&it) const
Definition: v40_ROBFragment.h:187
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
offline_eformat::v40::ROBFragment::assign
ROBFragment & assign(const uint32_t *it)
Manual re-assignment.
Definition: v40_ROBFragment.cxx:63
skel.it
it
Definition: skel.GENtoEVGEN.py:396
offline_eformat::v40::ROBFragment::rod_start
const uint32_t * rod_start() const
Sets the given pointer to the ROD fragment start.
Definition: v40_ROBFragment.cxx:259
offline_eformat
Definition: util.h:19
offline_eformat::v40::ROBFragment::rod_problems
void rod_problems(std::vector< eformat::FragmentProblem > &p, const uint16_t version=eformat::MAJOR_V31_VERSION) const
Tells which problemS the underlying ROD fragment has.
Definition: v40_ROBFragment.cxx:194
v40_Header.h
offline_eformat::v40::ROBFragment::children
virtual uint32_t children(const uint32_t **p, size_t max) const
Returns all the children of this fragment.
Definition: v40_ROBFragment.cxx:231
offline_eformat::v40::ROBFragment::rod_lvl1_trigger_type
uint32_t rod_lvl1_trigger_type() const
Returns the lvl1 trigger type.
Definition: v40_ROBFragment.cxx:309
offline_eformat::v40::ROBFragment::check_rod_noex
bool check_rod_noex(const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const
Says if the underlying ROD fragment is valid.
Definition: v40_ROBFragment.cxx:145
offline_eformat::v40::Header
Contains the information on the Header of a fragment as described by the original note.
Definition: v40_Header.h:37
offline_eformat::v40::ROBFragment::rod_status_position
uint32_t rod_status_position() const
Returns the status block position.
Definition: v40_ROBFragment.cxx:249
offline_eformat::v40::ROBFragment::nchildren
virtual uint32_t nchildren() const
Returns the number of children available.
Definition: v40_ROBFragment.cxx:319
offline_eformat::v40::ROBFragment::rod_marker
uint32_t rod_marker() const
Returns the fragment type.
Definition: v40_ROBFragment.cxx:264
offline_eformat::v40::ROBFragment::rod_data
const uint32_t * rod_data() const
Returns a pointer to the first data word.
Definition: v40_ROBFragment.cxx:219
offline_eformat::v40::ROBFragment::rod_version
uint32_t rod_version() const
Returns the formatting version for the ROD fragment.
Definition: v40_ROBFragment.cxx:284
offline_eformat::v40::ROBFragment::rod_nstatus
uint32_t rod_nstatus() const
Returns the number of status words available.
Definition: v40_ROBFragment.cxx:239
offline_eformat::v40::ROBFragment::check
bool check(const uint16_t version=eformat::MAJOR_V40_VERSION, const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const
Says if the fragment is valid.
Definition: v40_ROBFragment.cxx:174
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
beamspotman.n
n
Definition: beamspotman.py:731
offline_eformat::v40::ROBFragment::~ROBFragment
virtual ~ROBFragment()
Destructor virtualisation.
Definition: v40_ROBFragment.cxx:48
offline_eformat::v40::ROBFragment::rod_trailer_size_word
uint32_t rod_trailer_size_word() const
Returns the size, in words, of the trailer.
Definition: v40_ROBFragment.cxx:279
offline_eformat::v40::ROBFragment::m_start
const uint32_t * m_start
my one-after-the-last word
Definition: v40_ROBFragment.h:313
offline_eformat::v40::ROBFragment::check_rod_impl
bool check_rod_impl(const uint16_t rod_version=eformat::MAJOR_V31_VERSION, const bool exc=true) const
Says if the underlying ROD fragmentis valid.
Definition: v40_ROBFragment.cxx:114
offline_eformat::v40::ROBFragment::check_noex
bool check_noex(const uint16_t version=eformat::MAJOR_V40_VERSION, const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const
Says if the fragment is valid.
Definition: v40_ROBFragment.cxx:167
offline_eformat::v40::ROBFragment::check_rob_noex
bool check_rob_noex(const uint16_t version=eformat::MAJOR_V40_VERSION) const
Says if the ROB fragment is valid.
Definition: v40_ROBFragment.cxx:102
offline_eformat::v40::ROBFragment::rod_header_size_word
uint32_t rod_header_size_word() const
Returns the size, in words, of the current header.
Definition: v40_ROBFragment.cxx:274
offline_eformat::v40::ROBFragment::check_rob
bool check_rob(const uint16_t version=eformat::MAJOR_V40_VERSION) const
Says if the ROB fragment is valid.
Definition: v40_ROBFragment.cxx:107
offline_eformat::v40::ROBFragment::problems
void problems(std::vector< eformat::FragmentProblem > &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 has.
Definition: v40_ROBFragment.cxx:206
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
offline_eformat::v40::ROBFragment::rod_status
const uint32_t * rod_status() const
Returns the status words, as an iterator to the status words available.
Definition: v40_ROBFragment.cxx:213
offline_eformat::v40::ROBFragment::rod_source_id
uint32_t rod_source_id() const
Returns the source identifier of the ROD fragment.
Definition: v40_ROBFragment.cxx:289
offline_eformat::v40::ROBFragment::check_rod
bool check_rod(const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const
Says if the underlying ROD fragment is valid.
Definition: v40_ROBFragment.cxx:150
offline_eformat::v40::ROBFragment::rob_source_id
uint32_t rob_source_id() const
Gets the source_id of the ROB fragment itself.
Definition: v40_ROBFragment.cxx:254
offline_eformat::v40::ROBFragment::check_impl
bool check_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 is valid.
Definition: v40_ROBFragment.cxx:157
offline_eformat::v40::ROBFragment::rod_fragment_size_word
uint32_t rod_fragment_size_word() const
Returns the total fragment size.
Definition: v40_ROBFragment.cxx:269
offline_eformat::v40::ROBFragment::rob_problems
void rob_problems(std::vector< eformat::FragmentProblem > &p, const uint16_t version=eformat::MAJOR_V40_VERSION) const
Tells which problemS the current ROB fragment has.
Definition: v40_ROBFragment.cxx:181
offline_eformat::v40::ROBFragment::child
virtual void child(const uint32_t *&p, size_t n) const
Definition: v40_ROBFragment.h:296
CaloCondBlobAlgs_fillNoiseFromASCII.blob
blob
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:96
offline_eformat::v40::ROBFragment::rod_bc_id
uint32_t rod_bc_id() const
Returns the bunch crossing identifier.
Definition: v40_ROBFragment.cxx:304
offline_eformat::v40::ROBFragment::rod_ndata
uint32_t rod_ndata() const
Returns the number of data words available.
Definition: v40_ROBFragment.cxx:244