fire v0.19.0
Framework for sImulation and Reconstruction of Events
|
A mirror event object. More...
Public Member Functions | |
MirrorObject (const std::string &path, Reader &reader) | |
Construct this mirror object and any of its (data or object) children. | |
void | copy (unsigned long int i_entry, unsigned long int n, Writer &output) |
Copy the n entries starting from i_entry. More... | |
Private Attributes | |
Reader & | reader_ |
handle to the reader we are reading from | |
std::unique_ptr< BaseData > | data_ |
handle to the atomic data type once we get down to that point | |
std::unique_ptr< BaseData > | size_member_ |
handle to the size member of this object (if it exists) | |
std::vector< std::unique_ptr< MirrorObject > > | obj_members_ |
list of sub-objects within this object | |
unsigned long int | last_entry_ {0} |
the last entry that was copied | |
A mirror event object.
This type of event object is merely present to "reflect" (pun intended) the recursive nature of the io::Data pattern without knowledge of any user classes. We need this so we can effectively copy event objects that are not accessed during processing from the input to the output file. (The choice on whether to copy or not copy these files is handled by Event).
void fire::io::h5::Reader::MirrorObject::copy | ( | unsigned long int | i_entry, |
unsigned long int | n, | ||
Writer & | output | ||
) |
Copy the n entries starting from i_entry.
if there is a member determining the size of each entry, we need to follow its lead