epic-drich-beam-test-analysis
ePIC dRICH beam test analysis framework
Loading...
Searching...
No Matches
alcor_spilldata_struct Struct Reference

Plain-old-data aggregate that owns all spill information for one beam spill. More...

#include <alcor_spilldata.h>

Public Member Functions

 alcor_spilldata_struct (alcor_spilldata_struct &&) noexcept=default
 
alcor_spilldata_structoperator= (alcor_spilldata_struct &&) noexcept=default
 
 alcor_spilldata_struct (const alcor_spilldata_struct &)=default
 
alcor_spilldata_structoperator= (const alcor_spilldata_struct &)=default
 
void clear ()
 Resets all members to an empty state and re-synchronises the branch-address pointers with their respective vectors.
 

Public Attributes

std::map< uint8_t, uint32_t > dead_mask
 device → dead-channel bitmask.
 
std::map< uint8_t, uint32_t > participants_mask
 device → participating-channel bitmask.
 
std::map< uint32_t, alcor_lightdata_structframe_and_lightdata
 frame_id → light-data payload.
 
std::vector< data_mask_structdead_mask_list
 Flat copy of dead_mask for TTree output.
 
std::vector< data_mask_structparticipants_mask_list
 Flat copy of participants_mask for TTree output.
 
std::vector< uint32_t > frame_reference
 Ordered list of frame IDs written to the TTree.
 
std::vector< alcor_lightdata_structlightdata_list_in_frame
 Light-data entries parallel to frame_reference.
 
std::vector< data_mask_struct > * dead_mask_list_ptr
 Stable pointer for ROOT branch address.
 
std::vector< data_mask_struct > * participants_mask_list_ptr
 Stable pointer for ROOT branch address.
 
std::vector< uint32_t > * frame_reference_ptr
 Stable pointer for ROOT branch address.
 
std::vector< alcor_lightdata_struct > * lightdata_list_in_frame_ptr
 Stable pointer for ROOT branch address.
 

Detailed Description

Plain-old-data aggregate that owns all spill information for one beam spill.

A "spill" is one burst of beam delivered to the detector. The struct holds two parallel representations of the same data:

  • Working maps (dead_mask, participants_mask, frame_and_lightdata) used during online processing where random-access by key is needed.
  • Flat vectors (*_list, frame_reference, lightdata_list_in_frame) used for ROOT TTree I/O, which requires contiguous, pointer-stable storage.
Note
The raw pointer members (*_ptr) exist solely so that ROOT's TTree::SetBranchAddress can receive a stable address even when the vectors are reallocated. They are always kept in sync with the corresponding vector via clear() and prepare_tree_fill().

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