ATLAS Offline Software
|
Describes how to access the contents of a subdetector fragment, as prescribed by the event format note. More...
#include <v40_ROBFragment.h>
Public Member Functions | |
ROBFragment (const uint32_t *it) | |
To build a fragment given the containing buffer. More... | |
ROBFragment (const ROBFragment &other) | |
Copy constructor. More... | |
ROBFragment () | |
Builds an empty, otherwise useless ROBFragment. More... | |
ROBFragment (const eformat::helper::u32list &blob) | |
Constructor that only works with T=<real pointer>. More... | |
ROBFragment (const eformat::helper::u32slice &blob) | |
Constructor that only works with T=<real pointer>. More... | |
virtual | ~ROBFragment () |
Destructor virtualisation. More... | |
ROBFragment & | operator= (const ROBFragment &other) |
Assignment. More... | |
ROBFragment & | assign (const uint32_t *it) |
Manual re-assignment. More... | |
bool | check_rob (const uint16_t version=eformat::MAJOR_V40_VERSION) const |
Says if the ROB fragment is valid. More... | |
bool | check_rob_noex (const uint16_t version=eformat::MAJOR_V40_VERSION) const |
Says if the ROB fragment is valid. More... | |
bool | check_rob_impl (const uint16_t version=eformat::MAJOR_V40_VERSION, const bool exc=true) const |
Says if the ROB fragment is valid. More... | |
bool | check_rod_noex (const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const |
Says if the underlying ROD fragment is valid. More... | |
bool | check_rod (const uint16_t rod_version=eformat::MAJOR_V31_VERSION) const |
Says if the underlying ROD fragment is valid. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
uint32_t | rob_source_id () const |
Gets the source_id of the ROB fragment itself. More... | |
const uint32_t * | rod_start () const |
Sets the given pointer to the ROD fragment start. More... | |
void | rod_start (const uint32_t *&it) const |
uint32_t | rod_marker () const |
Returns the fragment type. More... | |
uint32_t | rod_fragment_size_word () const |
Returns the total fragment size. More... | |
uint32_t | rod_header_size_word () const |
Returns the size, in words, of the current header. More... | |
uint32_t | rod_trailer_size_word () const |
Returns the size, in words, of the trailer. More... | |
uint32_t | rod_version () const |
Returns the formatting version for the ROD fragment. More... | |
uint32_t | rod_source_id () const |
Returns the source identifier of the ROD fragment. More... | |
uint32_t | rod_run_no () const |
Returns the current run number. More... | |
uint32_t | rod_lvl1_id () const |
Returns the lvl1 identifier. More... | |
uint32_t | rod_bc_id () const |
Returns the bunch crossing identifier. More... | |
uint32_t | rod_lvl1_trigger_type () const |
Returns the lvl1 trigger type. More... | |
uint32_t | rod_detev_type () const |
Returns the detector event type. More... | |
uint32_t | rod_nstatus () const |
Returns the number of status words available. More... | |
const uint32_t * | rod_status () const |
Returns the status words, as an iterator to the status words available. More... | |
void | rod_status (const uint32_t *&it) const |
uint32_t | rod_ndata () const |
Returns the number of data words available. More... | |
const uint32_t * | rod_data () const |
Returns a pointer to the first data word. More... | |
void | rod_data (const uint32_t *&it) const |
uint32_t | rod_status_position () const |
Returns the status block position. More... | |
virtual uint32_t | nchildren () const |
Returns the number of children available. More... | |
const uint32_t * | child (size_t n) const |
Returns the nth child fragment. More... | |
virtual void | child (const uint32_t *&p, size_t n) const |
virtual uint32_t | children (const uint32_t **p, size_t max) const |
Returns all the children of this fragment. More... | |
void | throws (bool b) |
If you set this parameter, objects of this type will throw exceptions. More... | |
bool | throws () const |
Says if we are supposed to throw exceptions or not. More... | |
uint32_t | marker () const |
Returns the fragment type. More... | |
uint32_t | fragment_size_word () const |
Returns the size, in words, of the current fragment. More... | |
uint32_t | header_size_word () const |
Returns the size, in words, of the current header. More... | |
uint32_t | version () const |
Returns the formatting version. More... | |
uint32_t | source_id () const |
Returns the full source identifier. More... | |
uint32_t | nstatus () const |
Returns the number of status words available. More... | |
const uint32_t * | start () const |
Sets the pointer to my start. More... | |
void | start (const uint32_t *&it) const |
const uint32_t * | payload () const |
Sets the pointer to where the payload starts. More... | |
void | payload (const uint32_t *&it) const |
const uint32_t * | end () const |
Sets the pointer to one-past my end position. More... | |
void | end (const uint32_t *&it) const |
uint32_t | payload_size_word (void) const |
Returns the payload size. More... | |
const uint32_t * | status () const |
Returns the status words, as an iterator to the status words available. More... | |
void | status (const uint32_t *&it) const |
uint32_t | checksum_type () const |
Returns the check-sum type entry. More... | |
uint32_t | nspecific () const |
Returns the number of specific words available in the specific header part. More... | |
const uint32_t * | specific_header () const |
Returns an iterator to the start of the specific header part. More... | |
void | specific_header (const uint32_t *&it) const |
uint32_t | checksum_value (void) const |
Access the check sum value of this fragment, if any. More... | |
uint32_t | eval_checksum (void) const |
Evaluates the current (supposed) checksum for this fragment, taking into consideration the current setting for the checksum type. More... | |
bool | checksum (void) const |
This will actually re-calculate the checksum and verify that the payload of the current fragment matches that. More... | |
Private Attributes | |
const uint32_t * | m_start |
my one-after-the-last word More... | |
const uint32_t * | m_top |
< representation More... | |
Describes how to access the contents of a subdetector fragment, as prescribed by the event format note.
Definition at line 35 of file v40_ROBFragment.h.
offline_eformat::v40::ROBFragment::ROBFragment | ( | const uint32_t * | it | ) |
To build a fragment given the containing buffer.
I need to know where the fragment starts in order to do that.
it | The exact position where this fragment should start. |
Definition at line 16 of file v40_ROBFragment.cxx.
offline_eformat::v40::ROBFragment::ROBFragment | ( | const ROBFragment & | other | ) |
offline_eformat::v40::ROBFragment::ROBFragment | ( | ) |
Builds an empty, otherwise useless ROBFragment.
Definition at line 29 of file v40_ROBFragment.cxx.
offline_eformat::v40::ROBFragment::ROBFragment | ( | const eformat::helper::u32list & | blob | ) |
Constructor that only works with T=<real pointer>.
This constructor is pretty much like the one with the pointer, but it will fetch the pointer from the u32 blob. It is only used in the python bindings.
blob | The blob which contains the block of data this fragment is in. |
Definition at line 34 of file v40_ROBFragment.cxx.
offline_eformat::v40::ROBFragment::ROBFragment | ( | const eformat::helper::u32slice & | blob | ) |
Constructor that only works with T=<real pointer>.
This constructor is pretty much like the one with the pointer, but it will fetch the pointer from the u32 blob. It is only used in the python bindings.
blob | The blob which contains the block of data this fragment is in. |
Definition at line 41 of file v40_ROBFragment.cxx.
|
virtual |
offline_eformat::v40::ROBFragment & offline_eformat::v40::ROBFragment::assign | ( | const uint32_t * | it | ) |
Manual re-assignment.
it | The position pointing the first word of this fragment |
Definition at line 63 of file v40_ROBFragment.cxx.
bool offline_eformat::v40::ROBFragment::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.
This method will throw exceptions.
Definition at line 174 of file v40_ROBFragment.cxx.
bool offline_eformat::v40::ROBFragment::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.
Exception behaviour is controllable.
Definition at line 157 of file v40_ROBFragment.cxx.
bool offline_eformat::v40::ROBFragment::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.
This method does not throw exceptions.
Definition at line 167 of file v40_ROBFragment.cxx.
bool offline_eformat::v40::ROBFragment::check_rob | ( | const uint16_t | version = eformat::MAJOR_V40_VERSION | ) | const |
Says if the ROB fragment is valid.
This method will throw exceptions.
Definition at line 107 of file v40_ROBFragment.cxx.
bool offline_eformat::v40::ROBFragment::check_rob_impl | ( | const uint16_t | version = eformat::MAJOR_V40_VERSION , |
const bool | exc = true |
||
) | const |
Says if the ROB fragment is valid.
Exception behaviour is controllable.
Definition at line 71 of file v40_ROBFragment.cxx.
bool offline_eformat::v40::ROBFragment::check_rob_noex | ( | const uint16_t | version = eformat::MAJOR_V40_VERSION | ) | const |
Says if the ROB fragment is valid.
Does not throw exceptions.
Definition at line 102 of file v40_ROBFragment.cxx.
bool offline_eformat::v40::ROBFragment::check_rod | ( | const uint16_t | rod_version = eformat::MAJOR_V31_VERSION | ) | const |
Says if the underlying ROD fragment is valid.
Throws exceptions.
Definition at line 150 of file v40_ROBFragment.cxx.
bool offline_eformat::v40::ROBFragment::check_rod_impl | ( | const uint16_t | rod_version = eformat::MAJOR_V31_VERSION , |
const bool | exc = true |
||
) | const |
Says if the underlying ROD fragmentis valid.
Exception behaviour is controllable.
Definition at line 114 of file v40_ROBFragment.cxx.
bool offline_eformat::v40::ROBFragment::check_rod_noex | ( | const uint16_t | rod_version = eformat::MAJOR_V31_VERSION | ) | const |
Says if the underlying ROD fragment is valid.
Does not throw exceptions.
Definition at line 145 of file v40_ROBFragment.cxx.
|
inherited |
This will actually re-calculate the checksum and verify that the payload of the current fragment matches that.
Only works with contiguous memory templates.
Definition at line 128 of file v40_Header.cxx.
|
inherited |
Returns the check-sum type entry.
Definition at line 97 of file v40_Header.cxx.
|
inherited |
Access the check sum value of this fragment, if any.
Understand that if, checksum_type() resolves to eformat::NO_CHECKSUM, the returned value will have no meaning.
Definition at line 112 of file v40_Header.cxx.
|
inlinevirtual |
Definition at line 296 of file v40_ROBFragment.h.
const uint32_t * offline_eformat::v40::ROBFragment::child | ( | size_t | n | ) | const |
Returns the nth child fragment.
If the nth fragment doesn't exist, the behaviour is undefined.
p | A preallocated pointer you should provide. |
n | The fragment position, starting at zero, of the child fragment you would like to get. |
Definition at line 225 of file v40_ROBFragment.cxx.
|
virtual |
Returns all the children of this fragment.
The input to this method is a valid set of iterators to existing, pre-allocated pointers
p | A pointer to a set of preallocated TPointer's to set to the position of the children of this fragment. |
max | The maximum number of children, p can point to. |
Definition at line 231 of file v40_ROBFragment.cxx.
|
inherited |
Sets the pointer to one-past my end position.
it | The pointer to set |
Definition at line 82 of file v40_Header.cxx.
|
inlineinherited |
Definition at line 144 of file v40_Header.h.
|
inherited |
Evaluates the current (supposed) checksum for this fragment, taking into consideration the current setting for the checksum type.
Please note this value may be different from the actual checksum_value() if for any reason the fragment is corrupted.
Definition at line 123 of file v40_Header.cxx.
|
inherited |
Returns the size, in words, of the current fragment.
Definition at line 47 of file v40_Header.cxx.
|
inherited |
Returns the size, in words, of the current header.
That does include the specific part of the header.
Definition at line 52 of file v40_Header.cxx.
|
inherited |
Returns the fragment type.
Definition at line 42 of file v40_Header.cxx.
|
virtual |
Returns the number of children available.
Definition at line 319 of file v40_ROBFragment.cxx.
|
inherited |
Returns the number of specific words available in the specific header part.
Definition at line 102 of file v40_Header.cxx.
|
inherited |
Returns the number of status words available.
Definition at line 67 of file v40_Header.cxx.
offline_eformat::v40::ROBFragment & offline_eformat::v40::ROBFragment::operator= | ( | const ROBFragment & | other | ) |
Assignment.
other | The fragment to be copied |
Definition at line 52 of file v40_ROBFragment.cxx.
|
inherited |
Sets the pointer to where the payload starts.
it | The pointer to set |
Definition at line 77 of file v40_Header.cxx.
|
inlineinherited |
Definition at line 136 of file v40_Header.h.
|
inherited |
Returns the payload size.
Definition at line 87 of file v40_Header.cxx.
void offline_eformat::v40::ROBFragment::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 at line 205 of file v40_ROBFragment.cxx.
void offline_eformat::v40::ROBFragment::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 at line 180 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rob_source_id | ( | ) | const |
Gets the source_id of the ROB fragment itself.
Definition at line 254 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_bc_id | ( | ) | const |
Returns the bunch crossing identifier.
Definition at line 304 of file v40_ROBFragment.cxx.
const uint32_t * offline_eformat::v40::ROBFragment::rod_data | ( | ) | const |
Returns a pointer to the first data word.
it | An updateable iterator you should provide. |
Definition at line 219 of file v40_ROBFragment.cxx.
|
inline |
Definition at line 272 of file v40_ROBFragment.h.
uint32_t offline_eformat::v40::ROBFragment::rod_detev_type | ( | ) | const |
Returns the detector event type.
Definition at line 314 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_fragment_size_word | ( | ) | const |
Returns the total fragment size.
Definition at line 269 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_header_size_word | ( | ) | const |
Returns the size, in words, of the current header.
That does not include the trailer.
Definition at line 274 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_lvl1_id | ( | ) | const |
Returns the lvl1 identifier.
Definition at line 299 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_lvl1_trigger_type | ( | ) | const |
Returns the lvl1 trigger type.
Definition at line 309 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_marker | ( | ) | const |
Returns the fragment type.
Definition at line 264 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_ndata | ( | ) | const |
Returns the number of data words available.
Definition at line 244 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_nstatus | ( | ) | const |
Returns the number of status words available.
Definition at line 239 of file v40_ROBFragment.cxx.
void offline_eformat::v40::ROBFragment::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 at line 193 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_run_no | ( | ) | const |
Returns the current run number.
Definition at line 294 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_source_id | ( | ) | const |
Returns the source identifier of the ROD fragment.
Definition at line 289 of file v40_ROBFragment.cxx.
const uint32_t * offline_eformat::v40::ROBFragment::rod_start | ( | ) | const |
Sets the given pointer to the ROD fragment start.
it | The pointer to be set to the ROD fragment start |
Definition at line 259 of file v40_ROBFragment.cxx.
|
inline |
Definition at line 187 of file v40_ROBFragment.h.
const uint32_t * offline_eformat::v40::ROBFragment::rod_status | ( | ) | const |
Returns the status words, as an iterator to the status words available.
it | An updateable iterator you should provide. |
Definition at line 213 of file v40_ROBFragment.cxx.
|
inline |
Definition at line 258 of file v40_ROBFragment.h.
uint32_t offline_eformat::v40::ROBFragment::rod_status_position | ( | ) | const |
Returns the status block position.
A value of zero
indicates that the status block preceeds the data block. A value of one
means the contrary.
Definition at line 249 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_trailer_size_word | ( | ) | const |
Returns the size, in words, of the trailer.
Definition at line 279 of file v40_ROBFragment.cxx.
uint32_t offline_eformat::v40::ROBFragment::rod_version | ( | ) | const |
Returns the formatting version for the ROD fragment.
Definition at line 284 of file v40_ROBFragment.cxx.
|
inherited |
Returns the full source identifier.
Definition at line 62 of file v40_Header.cxx.
|
inherited |
Returns an iterator to the start of the specific header part.
it | An updateable iterator you should provide. |
Definition at line 107 of file v40_Header.cxx.
|
inlineinherited |
Definition at line 176 of file v40_Header.h.
|
inherited |
Sets the pointer to my start.
it | The pointer to set |
Definition at line 72 of file v40_Header.cxx.
|
inlineinherited |
Definition at line 128 of file v40_Header.h.
|
inherited |
Returns the status words, as an iterator to the status words available.
it | An updateable iterator you should provide. |
Definition at line 92 of file v40_Header.cxx.
|
inlineinherited |
Definition at line 157 of file v40_Header.h.
|
inherited |
Says if we are supposed to throw exceptions or not.
|
inherited |
If you set this parameter, objects of this type will throw exceptions.
The default behavior is to throw.
|
inherited |
Returns the formatting version.
Definition at line 57 of file v40_Header.cxx.
|
private |
my one-after-the-last word
Definition at line 313 of file v40_ROBFragment.h.
|
privateinherited |