BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
eformat::write::SubDetectorFragment Class Reference

forward More...

#include <SubDetectorFragment.h>

Public Member Functions

 SubDetectorFragment (uint32_t source_id)
 SubDetectorFragment (uint32_t *sd)
 SubDetectorFragment (eformat::write::node_t *sd)
 SubDetectorFragment ()
 SubDetectorFragment (const SubDetectorFragment &other)
virtual ~SubDetectorFragment ()
SubDetectorFragmentoperator= (const SubDetectorFragment &other)
void status (uint32_t n, const uint32_t *status)
uint32_t nstatus (void) const
const uint32_t * status (void) const
void minor_version (uint16_t v)
uint16_t minor_version (void) const
void source_id (uint32_t s)
uint32_t source_id (void) const
uint32_t meta_size_word (void) const
uint32_t size_word (void) const
void append (eformat::write::ROSFragment *ros)
const ROSFragmentfirst_child (void) const
void size_change (uint32_t o, uint32_t n)
const FullEventFragmentparent (void) const
void parent (eformat::write::FullEventFragment *fe)
const SubDetectorFragmentnext (void) const
void next (const SubDetectorFragment *n)
uint32_t page_count (void) const
const eformat::write::node_tbind (void)
 SubDetectorFragment (uint32_t source_id)
 SubDetectorFragment (uint32_t *sd)
 SubDetectorFragment (eformat::write::node_t *sd)
 SubDetectorFragment ()
 SubDetectorFragment (const SubDetectorFragment &other)
virtual ~SubDetectorFragment ()
SubDetectorFragmentoperator= (const SubDetectorFragment &other)
void status (uint32_t n, const uint32_t *status)
uint32_t nstatus (void) const
const uint32_t * status (void) const
void minor_version (uint16_t v)
uint16_t minor_version (void) const
void source_id (uint32_t s)
uint32_t source_id (void) const
uint32_t meta_size_word (void) const
uint32_t size_word (void) const
void append (eformat::write::ROSFragment *ros)
const ROSFragmentfirst_child (void) const
void size_change (uint32_t o, uint32_t n)
const FullEventFragmentparent (void) const
void parent (eformat::write::FullEventFragment *fe)
const SubDetectorFragmentnext (void) const
void next (const SubDetectorFragment *n)
uint32_t page_count (void) const
const eformat::write::node_tbind (void)
 SubDetectorFragment (uint32_t source_id)
 SubDetectorFragment (uint32_t *sd)
 SubDetectorFragment (eformat::write::node_t *sd)
 SubDetectorFragment ()
 SubDetectorFragment (const SubDetectorFragment &other)
virtual ~SubDetectorFragment ()
SubDetectorFragmentoperator= (const SubDetectorFragment &other)
void status (uint32_t n, const uint32_t *status)
uint32_t nstatus (void) const
const uint32_t * status (void) const
void minor_version (uint16_t v)
uint16_t minor_version (void) const
void source_id (uint32_t s)
uint32_t source_id (void) const
uint32_t meta_size_word (void) const
uint32_t size_word (void) const
void append (eformat::write::ROSFragment *ros)
const ROSFragmentfirst_child (void) const
void size_change (uint32_t o, uint32_t n)
const FullEventFragmentparent (void) const
void parent (eformat::write::FullEventFragment *fe)
const SubDetectorFragmentnext (void) const
void next (const SubDetectorFragment *n)
uint32_t page_count (void) const
const eformat::write::node_tbind (void)

Detailed Description

forward

Defines a helper class to aid the creation of SubDetector fragments.

Definition at line 27 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

Constructor & Destructor Documentation

◆ SubDetectorFragment() [1/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( uint32_t source_id)

Builds a new SubDetector fragment from scratch

Parameters
source_idThe source identifier to be using for this SubDetector

Definition at line 19 of file SubDetectorFragment.cxx.

20 : m_parent( 0 ), m_child( 0 ), m_last( 0 ), m_next( 0 ), m_extra_count( 0 ) {
21 m_header[0] = eformat::SUB_DETECTOR; // marker
22 m_header[1] = 8; // this header size + status size
23 m_header[2] = 8; // this header size + status size
24 m_header[3] = eformat::DEFAULT_VERSION; // format version
25 m_header[4] = source_id;
26 m_header[5] = 1; // number of status
27 m_header[6] = 0; // number of fragment specific
28
29 // now initialize pages
30 set( m_node[0], m_header, 6, &m_node[1] );
31 set( m_node[1], &eformat::DEFAULT_STATUS, 1, &m_node[2] );
32 set( m_node[2], &m_header[6], 1, 0 );
33 ERS_DEBUG_3( "%s Source Id. = 0x%x.", "Built (write) subdetector from scratch, with",
35}
#define ERS_DEBUG_3(...)
void set(node_t &i, const uint32_t *b, size_t l, node_t *n=0)
Definition node.cxx:16

Referenced by next(), next(), operator=(), and SubDetectorFragment().

◆ SubDetectorFragment() [2/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( uint32_t * sd)

Builds a new SubDetector fragment from an existing SubDetector fragment in contiguous memory.

Parameters
sdThe existing SubDetector fragment

Definition at line 55 of file SubDetectorFragment.cxx.

56 : m_parent( 0 ), m_child( 0 ), m_last( 0 ), m_next( 0 ), m_extra_count( 0 ) {
57 // now initialize pages
58 set( m_node[0], sd, 6, &m_node[1] );
59 set( m_node[1], &sd[6], sd[5], &m_node[2] );
60 set( m_node[2], &sd[6 + sd[5]], 1, &m_extra );
61 eformat::write::set( m_extra, &sd[7 + sd[5]], sd[1] - sd[2], 0 );
62 ++m_extra_count;
63 ERS_DEBUG_3( "%s Source Id. = 0x%x.",
64 "Built (write) subdetector from contiguous memory, with", source_id() );
65}

◆ SubDetectorFragment() [3/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( eformat::write::node_t * sd)

Builds a new SubDetector fragment from an existing SubDetector fragment in non-contiguous memory. The top-level fragment header is expected to be on a contiguous area of memory, together with the first word of the first child fragment (i.e. the ROS header marker). The following data can be spread around.

Parameters
sdThe existing SubDetector fragment, as a list of nodes, pre-concatenated by the caller.

Definition at line 67 of file SubDetectorFragment.cxx.

68 : m_parent( 0 ), m_child( 0 ), m_last( 0 ), m_next( 0 ), m_extra_count( 0 ) {
69 // now initialize pages
70 set( m_node[0], sd->base, 6, &m_node[1] );
71 set( m_node[1], &sd->base[6], sd->base[5], &m_node[2] );
72 set( m_node[2], &sd->base[6 + sd->base[5]], 1, &m_extra );
73 eformat::write::set( m_extra, &sd->base[7 + sd->base[5]], sd->size_word - sd->base[2],
74 sd->next );
75 m_extra_count += eformat::write::count( m_extra );
76 ERS_DEBUG_3( "%s Source Id. = 0x%x.", "Built (write) subdetector from paged memory, with",
77 source_id() );
78}
uint32_t count(const node_t &list)
Definition node.cxx:38
uint32_t * base
The base address for this page.
size_t size_word
The size, in 4-byte words for this page.

◆ SubDetectorFragment() [4/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( )

Builds a new empty SubDetectorFragment, otherwise invalid. This is useful for array builds and standard containers.

Definition at line 37 of file SubDetectorFragment.cxx.

38 : m_parent( 0 ), m_child( 0 ), m_last( 0 ), m_next( 0 ), m_extra_count( 0 ) {
39 m_header[0] = eformat::SUB_DETECTOR; // marker
40 m_header[1] = 8; // this header size + status size
41 m_header[2] = 8; // this header size + status size
42 m_header[3] = eformat::DEFAULT_VERSION; // format version
43 m_header[4] = 0; // source identifier
44 m_header[5] = 1; // number of status
45 m_header[6] = 0; // number of fragment specific
46
47 // now initialize pages
48 set( m_node[0], m_header, 6, &m_node[1] );
49 set( m_node[1], &eformat::DEFAULT_STATUS, 1, &m_node[2] );
50 set( m_node[2], &m_header[6], 1, 0 );
51 ERS_DEBUG_3( "%s Source Id. = 0x%x.", "Built empty (write) subdetector from scratch, with",
53}

◆ SubDetectorFragment() [5/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( const SubDetectorFragment & other)

Copy constructor. This will only copy the meta data, not the fragment relationships and block-data (children, parent and status block) contained in the to-be-copied fragment. If you wish this fragment has the same parents, and children of the copied fragment, you have to do this operation manually, after copying. If you wish to make a copy of the status as well, do it manually and then assign it to this fragment using the status() method.

Parameters
otherThe other fragment to take the meta data from.

Definition at line 80 of file SubDetectorFragment.cxx.

82 : m_parent( 0 ), m_child( 0 ), m_last( 0 ), m_next( 0 ), m_extra_count( 0 ) {
83 *this = other;
84 ERS_DEBUG_3( "%s Source Id. = 0x%x.", "Built (write) subdetector from copy, with",
85 source_id() );
86}
Index other(Index i, Index j)

◆ ~SubDetectorFragment() [1/3]

virtual eformat::write::SubDetectorFragment::~SubDetectorFragment ( )
inlinevirtual

Base destructor

Definition at line 80 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

80{}

◆ SubDetectorFragment() [6/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( uint32_t source_id)

Builds a new SubDetector fragment from scratch

Parameters
source_idThe source identifier to be using for this SubDetector

◆ SubDetectorFragment() [7/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( uint32_t * sd)

Builds a new SubDetector fragment from an existing SubDetector fragment in contiguous memory.

Parameters
sdThe existing SubDetector fragment

◆ SubDetectorFragment() [8/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( eformat::write::node_t * sd)

Builds a new SubDetector fragment from an existing SubDetector fragment in non-contiguous memory. The top-level fragment header is expected to be on a contiguous area of memory, together with the first word of the first child fragment (i.e. the ROS header marker). The following data can be spread around.

Parameters
sdThe existing SubDetector fragment, as a list of nodes, pre-concatenated by the caller.

◆ SubDetectorFragment() [9/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( )

Builds a new empty SubDetectorFragment, otherwise invalid. This is useful for array builds and standard containers.

◆ SubDetectorFragment() [10/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( const SubDetectorFragment & other)

Copy constructor. This will only copy the meta data, not the fragment relationships and block-data (children, parent and status block) contained in the to-be-copied fragment. If you wish this fragment has the same parents, and children of the copied fragment, you have to do this operation manually, after copying. If you wish to make a copy of the status as well, do it manually and then assign it to this fragment using the status() method.

Parameters
otherThe other fragment to take the meta data from.

◆ ~SubDetectorFragment() [2/3]

virtual eformat::write::SubDetectorFragment::~SubDetectorFragment ( )
inlinevirtual

Base destructor

Definition at line 80 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

80{}

◆ SubDetectorFragment() [11/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( uint32_t source_id)

Builds a new SubDetector fragment from scratch

Parameters
source_idThe source identifier to be using for this SubDetector

◆ SubDetectorFragment() [12/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( uint32_t * sd)

Builds a new SubDetector fragment from an existing SubDetector fragment in contiguous memory.

Parameters
sdThe existing SubDetector fragment

◆ SubDetectorFragment() [13/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( eformat::write::node_t * sd)

Builds a new SubDetector fragment from an existing SubDetector fragment in non-contiguous memory. The top-level fragment header is expected to be on a contiguous area of memory, together with the first word of the first child fragment (i.e. the ROS header marker). The following data can be spread around.

Parameters
sdThe existing SubDetector fragment, as a list of nodes, pre-concatenated by the caller.

◆ SubDetectorFragment() [14/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( )

Builds a new empty SubDetectorFragment, otherwise invalid. This is useful for array builds and standard containers.

◆ SubDetectorFragment() [15/15]

eformat::write::SubDetectorFragment::SubDetectorFragment ( const SubDetectorFragment & other)

Copy constructor. This will only copy the meta data, not the fragment relationships and block-data (children, parent and status block) contained in the to-be-copied fragment. If you wish this fragment has the same parents, and children of the copied fragment, you have to do this operation manually, after copying. If you wish to make a copy of the status as well, do it manually and then assign it to this fragment using the status() method.

Parameters
otherThe other fragment to take the meta data from.

◆ ~SubDetectorFragment() [3/3]

virtual eformat::write::SubDetectorFragment::~SubDetectorFragment ( )
inlinevirtual

Base destructor

Definition at line 80 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

80{}

Member Function Documentation

◆ append() [1/3]

void eformat::write::SubDetectorFragment::append ( eformat::write::ROSFragment * ros)

Appends a new ROS fragment to this SubDetector fragment.

Warning
This will change the page structure of the last ROS fragment inserted here, in order to concatenate the ROS fragments together. Please note that this operation is not compatible with multiple threads of operation, if you would like to share eformat::write::ROSFragment's between threads. A better strategy would be create, for every thread of operation, a proper ROSFragment instead.
Parameters
rosThe ROS fragment to be appended to myself

Definition at line 121 of file SubDetectorFragment.cxx.

121 {
122 ERS_DEBUG_3( "%s Source Id. = 0x%x to subdetector with Source Id. = 0x%x",
123 "Appending ros fragment with", ros->source_id(), source_id() );
124 ros->parent( this );
125 uint32_t old_size = m_node[0].base[1];
126 m_node[0].base[1] += ros->size_word();
127
128 // adjust `m_last' and `m_child' to point to the new last ROB
129 if ( m_last ) m_last->next( ros );
130 else m_child = ros;
131 m_last = ros;
132
133 // propagate changes to my parent
134 if ( m_parent ) m_parent->size_change( old_size, m_node[0].base[1] );
135}
void size_change(uint32_t o, uint32_t n)

Referenced by Builder::append2event(), eformat::old::convert(), and main().

◆ append() [2/3]

void eformat::write::SubDetectorFragment::append ( eformat::write::ROSFragment * ros)

Appends a new ROS fragment to this SubDetector fragment.

Warning
This will change the page structure of the last ROS fragment inserted here, in order to concatenate the ROS fragments together. Please note that this operation is not compatible with multiple threads of operation, if you would like to share eformat::write::ROSFragment's between threads. A better strategy would be create, for every thread of operation, a proper ROSFragment instead.
Parameters
rosThe ROS fragment to be appended to myself

◆ append() [3/3]

void eformat::write::SubDetectorFragment::append ( eformat::write::ROSFragment * ros)

Appends a new ROS fragment to this SubDetector fragment.

Warning
This will change the page structure of the last ROS fragment inserted here, in order to concatenate the ROS fragments together. Please note that this operation is not compatible with multiple threads of operation, if you would like to share eformat::write::ROSFragment's between threads. A better strategy would be create, for every thread of operation, a proper ROSFragment instead.
Parameters
rosThe ROS fragment to be appended to myself

◆ bind() [1/3]

const eformat::write::node_t * eformat::write::SubDetectorFragment::bind ( void )

Returns the first node of a list of nodes that represent the fragment you have constructed. To make use of it, just browse the list as defined in node.h

Definition at line 144 of file SubDetectorFragment.cxx.

144 {
145 // the header is already concatenated by construction
146 eformat::write::node_t* last = &m_node[2];
147 if ( m_extra_count )
148 {
149 last = &m_extra;
150 while ( last->next ) last = last->next;
151 }
152 for ( ROSFragment* curr = m_child; curr; curr = const_cast<ROSFragment*>( curr->next() ) )
153 {
154 last->next = const_cast<eformat::write::node_t*>( curr->bind() );
155 while ( last->next ) last = last->next; // advance until end
156 }
157 return m_node;
158}
struct eformat::write::node_t node_t

◆ bind() [2/3]

const eformat::write::node_t * eformat::write::SubDetectorFragment::bind ( void )

Returns the first node of a list of nodes that represent the fragment you have constructed. To make use of it, just browse the list as defined in node.h

◆ bind() [3/3]

const eformat::write::node_t * eformat::write::SubDetectorFragment::bind ( void )

Returns the first node of a list of nodes that represent the fragment you have constructed. To make use of it, just browse the list as defined in node.h

◆ first_child() [1/3]

const ROSFragment * eformat::write::SubDetectorFragment::first_child ( void ) const
inline

This returns the first child of this fragment. The system operates as a concatenated list of fragments. From this child you can get to the next.

Definition at line 173 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

173{ return m_child; }

Referenced by RawDataCnvSvc::commitOutput().

◆ first_child() [2/3]

const ROSFragment * eformat::write::SubDetectorFragment::first_child ( void ) const
inline

This returns the first child of this fragment. The system operates as a concatenated list of fragments. From this child you can get to the next.

Definition at line 173 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

173{ return m_child; }

◆ first_child() [3/3]

const ROSFragment * eformat::write::SubDetectorFragment::first_child ( void ) const
inline

This returns the first child of this fragment. The system operates as a concatenated list of fragments. From this child you can get to the next.

Definition at line 173 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

173{ return m_child; }

◆ meta_size_word() [1/3]

uint32_t eformat::write::SubDetectorFragment::meta_size_word ( void ) const
inline

Returns the total size for the meta data (everything that does not encompass the contents of the m_data pointer in the private representation of this class) in the fragment, in words

Definition at line 146 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

146{ return m_node[0].base[2]; }

◆ meta_size_word() [2/3]

uint32_t eformat::write::SubDetectorFragment::meta_size_word ( void ) const
inline

Returns the total size for the meta data (everything that does not encompass the contents of the m_data pointer in the private representation of this class) in the fragment, in words

Definition at line 146 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

146{ return m_node[0].base[2]; }

◆ meta_size_word() [3/3]

uint32_t eformat::write::SubDetectorFragment::meta_size_word ( void ) const
inline

Returns the total size for the meta data (everything that does not encompass the contents of the m_data pointer in the private representation of this class) in the fragment, in words

Definition at line 146 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

146{ return m_node[0].base[2]; }

◆ minor_version() [1/6]

void eformat::write::SubDetectorFragment::minor_version ( uint16_t v)
inline

Changes the minor version number of the fragment

Parameters
sThe new minor version for this header

Definition at line 120 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

120 {
121 m_node[0].base[3] = eformat::DEFAULT_VERSION | v;
122 }
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition KarLud.h:35

Referenced by eformat::old::convert().

◆ minor_version() [2/6]

void eformat::write::SubDetectorFragment::minor_version ( uint16_t v)
inline

Changes the minor version number of the fragment

Parameters
sThe new minor version for this header

Definition at line 120 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

120 {
121 m_node[0].base[3] = eformat::DEFAULT_VERSION | v;
122 }

◆ minor_version() [3/6]

void eformat::write::SubDetectorFragment::minor_version ( uint16_t v)
inline

Changes the minor version number of the fragment

Parameters
sThe new minor version for this header

Definition at line 120 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

120 {
121 m_node[0].base[3] = eformat::DEFAULT_VERSION | v;
122 }

◆ minor_version() [4/6]

uint16_t eformat::write::SubDetectorFragment::minor_version ( void ) const
inline

Returns the minor version number of the fragment

Definition at line 127 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

127{ return 0xffff & m_node[0].base[3]; }

◆ minor_version() [5/6]

uint16_t eformat::write::SubDetectorFragment::minor_version ( void ) const
inline

Returns the minor version number of the fragment

Definition at line 127 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

127{ return 0xffff & m_node[0].base[3]; }

◆ minor_version() [6/6]

uint16_t eformat::write::SubDetectorFragment::minor_version ( void ) const
inline

Returns the minor version number of the fragment

Definition at line 127 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

127{ return 0xffff & m_node[0].base[3]; }

◆ next() [1/6]

void eformat::write::SubDetectorFragment::next ( const SubDetectorFragment * n)
inline

Sets the next sibling

Parameters
nThe sibling following this fragment

Definition at line 206 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

206{ m_next = n; }
const Int_t n

◆ next() [2/6]

void eformat::write::SubDetectorFragment::next ( const SubDetectorFragment * n)
inline

Sets the next sibling

Parameters
nThe sibling following this fragment

Definition at line 206 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

206{ m_next = n; }

◆ next() [3/6]

void eformat::write::SubDetectorFragment::next ( const SubDetectorFragment * n)
inline

Sets the next sibling

Parameters
nThe sibling following this fragment

Definition at line 206 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

206{ m_next = n; }

◆ next() [4/6]

const SubDetectorFragment * eformat::write::SubDetectorFragment::next ( void ) const
inline

Returns the next sibling

Definition at line 199 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

199{ return m_next; }

Referenced by RawDataCnvSvc::commitOutput(), and eformat::write::FullEventFragment::page_count().

◆ next() [5/6]

const SubDetectorFragment * eformat::write::SubDetectorFragment::next ( void ) const
inline

Returns the next sibling

Definition at line 199 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

199{ return m_next; }

◆ next() [6/6]

const SubDetectorFragment * eformat::write::SubDetectorFragment::next ( void ) const
inline

Returns the next sibling

Definition at line 199 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

199{ return m_next; }

◆ nstatus() [1/3]

uint32_t eformat::write::SubDetectorFragment::nstatus ( void ) const
inline

Returns the number of status wors in this fragment

Definition at line 108 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

108{ return m_node[0].base[5]; }

◆ nstatus() [2/3]

uint32_t eformat::write::SubDetectorFragment::nstatus ( void ) const
inline

Returns the number of status wors in this fragment

Definition at line 108 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

108{ return m_node[0].base[5]; }

◆ nstatus() [3/3]

uint32_t eformat::write::SubDetectorFragment::nstatus ( void ) const
inline

Returns the number of status wors in this fragment

Definition at line 108 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

108{ return m_node[0].base[5]; }

◆ operator=() [1/3]

eformat::write::SubDetectorFragment & eformat::write::SubDetectorFragment::operator= ( const SubDetectorFragment & other)

Assigment operator. This will only copy the meta data, not the fragment relationships and block-data (children and parent and status block) contained in the to-be-copied fragment. If you wish this fragment has the same parents, and children of the copied fragment, you have to do this operation manually, after copying. If you wish to make a copy of the status as well, do it manually and then assign it to this fragment using the status() method.

Parameters
otherThe other fragment to take the meta data from.

Definition at line 88 of file SubDetectorFragment.cxx.

89 {
90 memcpy( reinterpret_cast<void*>( m_header ),
91 reinterpret_cast<const void*>( other.m_node[0].base ), 6 * sizeof( uint32_t ) );
92 m_header[6] = other.m_node[2].base[0];
93
94 // now initialize pages
95 set( m_node[0], m_header, 6, &m_node[1] );
96 set( m_node[1], other.m_node[1].base, other.m_node[1].size_word, &m_node[2] );
97 set( m_node[2], &m_header[6], 1, 0 );
98 ERS_DEBUG_3( "%s Source Id. = 0x%x.", "Copied (write) subdetector with",
100 return *this;
101}

◆ operator=() [2/3]

SubDetectorFragment & eformat::write::SubDetectorFragment::operator= ( const SubDetectorFragment & other)

Assigment operator. This will only copy the meta data, not the fragment relationships and block-data (children and parent and status block) contained in the to-be-copied fragment. If you wish this fragment has the same parents, and children of the copied fragment, you have to do this operation manually, after copying. If you wish to make a copy of the status as well, do it manually and then assign it to this fragment using the status() method.

Parameters
otherThe other fragment to take the meta data from.

◆ operator=() [3/3]

SubDetectorFragment & eformat::write::SubDetectorFragment::operator= ( const SubDetectorFragment & other)

Assigment operator. This will only copy the meta data, not the fragment relationships and block-data (children and parent and status block) contained in the to-be-copied fragment. If you wish this fragment has the same parents, and children of the copied fragment, you have to do this operation manually, after copying. If you wish to make a copy of the status as well, do it manually and then assign it to this fragment using the status() method.

Parameters
otherThe other fragment to take the meta data from.

◆ page_count() [1/3]

uint32_t eformat::write::SubDetectorFragment::page_count ( void ) const

Returns the total number of (raw memory) pages this fragment is composed of.

Warning
This operation navigates at a potentially large list of child page nodes (for a full ATLAS event this should be bigger than 2,000 pages when built from scratch). If you don't do your bookkeeping, avoid calling this too often.

Definition at line 137 of file SubDetectorFragment.cxx.

137 {
138 uint32_t retval = 3 + m_extra_count;
139 for ( const ROSFragment* curr = m_child; curr; curr = curr->next() )
140 retval += curr->page_count();
141 return retval;
142}

Referenced by eformat::write::FullEventFragment::page_count().

◆ page_count() [2/3]

uint32_t eformat::write::SubDetectorFragment::page_count ( void ) const

Returns the total number of (raw memory) pages this fragment is composed of.

Warning
This operation navigates at a potentially large list of child page nodes (for a full ATLAS event this should be bigger than 2,000 pages when built from scratch). If you don't do your bookkeeping, avoid calling this too often.

◆ page_count() [3/3]

uint32_t eformat::write::SubDetectorFragment::page_count ( void ) const

Returns the total number of (raw memory) pages this fragment is composed of.

Warning
This operation navigates at a potentially large list of child page nodes (for a full ATLAS event this should be bigger than 2,000 pages when built from scratch). If you don't do your bookkeeping, avoid calling this too often.

◆ parent() [1/6]

void eformat::write::SubDetectorFragment::parent ( eformat::write::FullEventFragment * fe)
inline

This sets the parent fragment

Parameters
feThe FullEventFragment parent fragment of this SubDetector

Definition at line 194 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

194{ m_parent = fe; }

◆ parent() [2/6]

void eformat::write::SubDetectorFragment::parent ( eformat::write::FullEventFragment * fe)
inline

This sets the parent fragment

Parameters
feThe FullEventFragment parent fragment of this SubDetector

Definition at line 194 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

194{ m_parent = fe; }

◆ parent() [3/6]

void eformat::write::SubDetectorFragment::parent ( eformat::write::FullEventFragment * fe)
inline

This sets the parent fragment

Parameters
feThe FullEventFragment parent fragment of this SubDetector

Definition at line 194 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

194{ m_parent = fe; }

◆ parent() [4/6]

const FullEventFragment * eformat::write::SubDetectorFragment::parent ( void ) const
inline

This returns the parent fragment

Definition at line 187 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

187{ return m_parent; }

Referenced by eformat::write::FullEventFragment::append().

◆ parent() [5/6]

const FullEventFragment * eformat::write::SubDetectorFragment::parent ( void ) const
inline

This returns the parent fragment

Definition at line 187 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

187{ return m_parent; }

◆ parent() [6/6]

const FullEventFragment * eformat::write::SubDetectorFragment::parent ( void ) const
inline

This returns the parent fragment

Definition at line 187 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

187{ return m_parent; }

◆ size_change() [1/3]

void eformat::write::SubDetectorFragment::size_change ( uint32_t o,
uint32_t n )

This method is used by children of this fragment to notify fragment size changes.

Parameters
oThe old size, in 32-bit words
nThe new size, in 32-bit words

Definition at line 114 of file SubDetectorFragment.cxx.

114 {
115 uint32_t old_size = m_node[0].base[1];
116 m_node[0].base[1] -= o;
117 m_node[0].base[1] += n;
118 if ( m_parent ) m_parent->size_change( old_size, m_node[0].base[1] );
119}

◆ size_change() [2/3]

void eformat::write::SubDetectorFragment::size_change ( uint32_t o,
uint32_t n )

This method is used by children of this fragment to notify fragment size changes.

Parameters
oThe old size, in 32-bit words
nThe new size, in 32-bit words

◆ size_change() [3/3]

void eformat::write::SubDetectorFragment::size_change ( uint32_t o,
uint32_t n )

This method is used by children of this fragment to notify fragment size changes.

Parameters
oThe old size, in 32-bit words
nThe new size, in 32-bit words

◆ size_word() [1/3]

uint32_t eformat::write::SubDetectorFragment::size_word ( void ) const
inline

Returns the total size for this fragment, in words

Definition at line 151 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

151{ return m_node[0].base[1]; }

Referenced by eformat::write::FullEventFragment::append().

◆ size_word() [2/3]

uint32_t eformat::write::SubDetectorFragment::size_word ( void ) const
inline

Returns the total size for this fragment, in words

Definition at line 151 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

151{ return m_node[0].base[1]; }

◆ size_word() [3/3]

uint32_t eformat::write::SubDetectorFragment::size_word ( void ) const
inline

Returns the total size for this fragment, in words

Definition at line 151 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

151{ return m_node[0].base[1]; }

◆ source_id() [1/6]

void eformat::write::SubDetectorFragment::source_id ( uint32_t s)
inline

Changes the source identifier for this fragment

Parameters
sThe new value to set

Definition at line 134 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

134{ m_node[0].base[4] = s; }
XmlRpcServer s

Referenced by eformat::write::FullEventFragment::append(), append(), operator=(), SubDetectorFragment(), and SubDetectorFragment().

◆ source_id() [2/6]

void eformat::write::SubDetectorFragment::source_id ( uint32_t s)
inline

Changes the source identifier for this fragment

Parameters
sThe new value to set

Definition at line 134 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

134{ m_node[0].base[4] = s; }

◆ source_id() [3/6]

void eformat::write::SubDetectorFragment::source_id ( uint32_t s)
inline

Changes the source identifier for this fragment

Parameters
sThe new value to set

Definition at line 134 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

134{ m_node[0].base[4] = s; }

◆ source_id() [4/6]

uint32_t eformat::write::SubDetectorFragment::source_id ( void ) const
inline

Returns the source identifier of this fragment

Definition at line 139 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

139{ return m_node[0].base[4]; }

Referenced by SubDetectorFragment(), SubDetectorFragment(), and SubDetectorFragment().

◆ source_id() [5/6]

uint32_t eformat::write::SubDetectorFragment::source_id ( void ) const
inline

Returns the source identifier of this fragment

Definition at line 139 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

139{ return m_node[0].base[4]; }

◆ source_id() [6/6]

uint32_t eformat::write::SubDetectorFragment::source_id ( void ) const
inline

Returns the source identifier of this fragment

Definition at line 139 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

139{ return m_node[0].base[4]; }

◆ status() [1/6]

void eformat::write::SubDetectorFragment::status ( uint32_t n,
const uint32_t * status )

Changes the number of status words and the status words themselves from the fragment

Parameters
nHow many status words the underlying SubDetectorFragment fragment supposed to have.
statusA pointer to n pre-allocated words

Definition at line 103 of file SubDetectorFragment.cxx.

103 {
104 if ( m_parent )
105 m_parent->size_change( m_node[0].base[1], m_node[0].base[1] - m_node[0].base[5] + n );
106 m_node[0].base[1] -= m_node[0].base[5]; // remove count from previous status
107 m_node[0].base[2] -= m_node[0].base[5]; // remove count from previous status
108 m_node[1].size_word = m_node[0].base[5] = n; // set new values
109 m_node[0].base[1] += n;
110 m_node[0].base[2] += n;
111 m_node[1].base = const_cast<uint32_t*>( status );
112}
void status(uint32_t n, const uint32_t *status)

Referenced by Builder::append2event(), eformat::old::convert(), and status().

◆ status() [2/6]

void eformat::write::SubDetectorFragment::status ( uint32_t n,
const uint32_t * status )

Changes the number of status words and the status words themselves from the fragment

Parameters
nHow many status words the underlying SubDetectorFragment fragment supposed to have.
statusA pointer to n pre-allocated words

◆ status() [3/6]

void eformat::write::SubDetectorFragment::status ( uint32_t n,
const uint32_t * status )

Changes the number of status words and the status words themselves from the fragment

Parameters
nHow many status words the underlying SubDetectorFragment fragment supposed to have.
statusA pointer to n pre-allocated words

◆ status() [4/6]

const uint32_t * eformat::write::SubDetectorFragment::status ( void ) const
inline

Returns a pointer to the first status word to be used by this fragment

Definition at line 113 of file Event/eformat/include/eformat/write/SubDetectorFragment.h.

113{ return m_node[1].base; }

◆ status() [5/6]

const uint32_t * eformat::write::SubDetectorFragment::status ( void ) const
inline

Returns a pointer to the first status word to be used by this fragment

Definition at line 113 of file InstallArea/x86_64-el9-gcc13-dbg/include/eformat/write/SubDetectorFragment.h.

113{ return m_node[1].base; }

◆ status() [6/6]

const uint32_t * eformat::write::SubDetectorFragment::status ( void ) const
inline

Returns a pointer to the first status word to be used by this fragment

Definition at line 113 of file InstallArea/x86_64-el9-gcc13-opt/include/eformat/write/SubDetectorFragment.h.

113{ return m_node[1].base; }

The documentation for this class was generated from the following files: