CbmRoot
|
Singleton buffer class for CBM raw data. More...
#include <CbmTbDaqBuffer.h>
Public Types | |
typedef std::pair< boost::any, ECbmModuleId > | Data |
Public Member Functions | |
~CbmTbDaqBuffer () | |
Data | GetNextData (Double_t time) |
Int_t | GetSize () const |
Double_t | GetTimeFirst () const |
Double_t | GetTimeLast () const |
void | PrintStatus () const |
template<class Digi > | |
void | InsertData (Digi *digi) |
Static Public Member Functions | |
static CbmTbDaqBuffer * | Instance () |
Private Member Functions | |
CbmTbDaqBuffer () | |
CbmTbDaqBuffer (const CbmTbDaqBuffer &) | |
CbmTbDaqBuffer & | operator= (const CbmTbDaqBuffer &) |
void | InsertData (boost::any digi, Double_t time, ECbmModuleId systemID) |
Private Attributes | |
std::multimap< Double_t, Data > | fData |
Static Private Attributes | |
static CbmTbDaqBuffer * | fgInstance = nullptr |
Singleton buffer class for CBM raw data.
The CbmTbDaqBuffer stores and sorts (w.r.t. time) CBM raw data (currently: boost::any) transiently. Data can be send to the buffer by the method InsertData. They can be retrieved by GetNextData, which delivers a time-ordered sequence of raw data objects.
There is only one buffer stream, irrespective of the detector system.
The buffer handles objects only by pointer, i.e. the data have to be instantiated by the sending task (digitiser) and deleted by the receiving class (CbmDaq).
Definition at line 39 of file CbmTbDaqBuffer.h.
std::pair<boost::any, ECbmModuleId> CbmTbDaqBuffer::Data |
Definition at line 41 of file CbmTbDaqBuffer.h.
CbmTbDaqBuffer::~CbmTbDaqBuffer | ( | ) |
Destructor
Definition at line 32 of file CbmTbDaqBuffer.cxx.
|
private |
Default constructor Declared private to prevent instantiation.
Definition at line 27 of file CbmTbDaqBuffer.cxx.
Referenced by Instance().
|
private |
Copy constructor. Defined private to prevent usage.
CbmTbDaqBuffer::Data CbmTbDaqBuffer::GetNextData | ( | Double_t | time | ) |
Pointer to next raw data object up to given time
time | maximal time [ns] |
A NULL pointer will be returned if no further data can be released. This does not mean that the buffer is empty.
Definition at line 52 of file CbmTbDaqBuffer.cxx.
References fData, and kNotExist.
Referenced by CbmDeviceUnpackTofCri::BuildTint(), and CbmDeviceUnpackTofMcbm2018::BuildTint().
|
inline |
Current buffer size
Definition at line 61 of file CbmTbDaqBuffer.h.
References fData.
Referenced by CbmDeviceUnpackTofCri::BuildTint(), CbmDeviceUnpackTofMcbm2018::BuildTint(), CbmDeviceUnpackTofCri::DoUnpack(), CbmDeviceUnpackTofMcbm2018::DoUnpack(), CbmDeviceUnpackTofStar2018::FillHitInfo(), GetTimeFirst(), GetTimeLast(), and PrintStatus().
Double_t CbmTbDaqBuffer::GetTimeFirst | ( | ) | const |
Get first digi time
Definition at line 35 of file CbmTbDaqBuffer.cxx.
References fData, and GetSize().
Referenced by CbmDeviceUnpackTofCri::BuildTint(), CbmDeviceUnpackTofMcbm2018::BuildTint(), CbmDeviceUnpackTofCri::DoUnpack(), CbmDeviceUnpackTofMcbm2018::DoUnpack(), CbmDeviceUnpackTofStar2018::FillHitInfo(), and PrintStatus().
Double_t CbmTbDaqBuffer::GetTimeLast | ( | ) | const |
Get last digi time
Definition at line 43 of file CbmTbDaqBuffer.cxx.
References fData, and GetSize().
Referenced by CbmDeviceUnpackTofCri::BuildTint(), CbmDeviceUnpackTofMcbm2018::BuildTint(), CbmDeviceUnpackTofCri::DoUnpack(), CbmDeviceUnpackTofMcbm2018::DoUnpack(), CbmDeviceUnpackTofStar2018::FillHitInfo(), and PrintStatus().
|
inlineprivate |
Insert data into the buffer
digi | pointer to data object to be inserted |
Definition at line 113 of file CbmTbDaqBuffer.h.
References fData.
|
inline |
Insert digi of any type into the buffer
Definition at line 80 of file CbmTbDaqBuffer.h.
References InsertData().
Referenced by CbmDeviceUnpackTofCri::DoUnpack(), CbmDeviceUnpackTofMcbm2018::DoUnpack(), CbmDeviceUnpackTofStar2018::FillHitInfo(), CbmDeviceUnpackTofStar2018::FillStarTrigInfo(), and InsertData().
|
static |
Access to singleton instance
Definition at line 73 of file CbmTbDaqBuffer.cxx.
References CbmTbDaqBuffer(), and fgInstance.
|
private |
Assignment operator. Defined private to prevent usage.
void CbmTbDaqBuffer::PrintStatus | ( | ) | const |
Print buffer status
Definition at line 81 of file CbmTbDaqBuffer.cxx.
References GetSize(), GetTimeFirst(), GetTimeLast(), and size().
|
private |
Buffer management
Definition at line 89 of file CbmTbDaqBuffer.h.
Referenced by GetNextData(), GetSize(), GetTimeFirst(), GetTimeLast(), and InsertData().
|
staticprivate |
Pointer to singleton instance
Definition at line 93 of file CbmTbDaqBuffer.h.
Referenced by Instance().