CbmRoot
|
#include <CbmDeviceMcbmUnpack.h>
Public Member Functions | |
CbmDeviceMcbmUnpack () | |
virtual | ~CbmDeviceMcbmUnpack () |
Protected Member Functions | |
virtual void | InitTask () |
bool | HandleData (FairMQMessagePtr &, int) |
bool | HandleCommand (FairMQMessagePtr &, int) |
Private Member Functions | |
Bool_t | InitParameters (TList *fParCList) |
Parameters management. | |
bool | IsChannelNameAllowed (std::string channelName) |
Bool_t | InitContainers () |
Bool_t | DoUnpack (const fles::Timeslice &ts, size_t component) |
void | Finish () |
bool | SendUnpData () |
Private Attributes | |
Bool_t | fbIgnoreOverlapMs = false |
Control flags. | |
Bool_t | fbComponentsAddedToList = kFALSE |
Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice. | |
std::string | fsChannelNameDataInput = "fullts" |
User settings parameters. | |
std::string | fsChannelNameDataOutput = "unpts_0" |
std::string | fsChannelNameCommands = "commands" |
UInt_t | fuDigiMaskedIdBmon = 0x00005006 |
UInt_t | fuDigiMaskId = 0x0001FFFF |
std::vector< std::string > | fsAllowedChannels = {fsChannelNameDataInput} |
List of MQ channels names. | |
uint64_t | fulNumMessages = 0 |
Statistics & first TS rejection. | |
uint64_t | fulTsCounter = 0 |
CbmMcbm2018UnpackerAlgoSts * | fUnpAlgoSts = nullptr |
Processing algos. | |
CbmMcbm2018UnpackerAlgoMuch * | fUnpAlgoMuch = nullptr |
CbmMcbm2018UnpackerAlgoTrdR * | fUnpAlgoTrd = nullptr |
CbmMcbm2018UnpackerAlgoTof * | fUnpAlgoTof = nullptr |
CbmMcbm2018UnpackerAlgoRich * | fUnpAlgoRich = nullptr |
CbmMcbm2018UnpackerAlgoPsd * | fUnpAlgoPsd = nullptr |
std::vector< std::string > | fvsSetTimeOffs = {} |
Time offsets. | |
size_t | fuNbCoreMsPerTs = 0 |
TS MetaData storage. | |
size_t | fuNbOverMsPerTs = 0 |
Double_t | fdMsSizeInNs = 1280000 |
Double_t | fdTsCoreSizeInNs = -1.0 |
Size of a single MS, [nanoseconds]. | |
Double_t | fdTsOverSizeInNs = -1.0 |
Total size of the core MS in a TS, [nanoseconds]. | |
Double_t | fdTsFullSizeInNs = -1.0 |
Total size of the overlap MS in a TS, [nanoseconds]. | |
TimesliceMetaData * | fTsMetaData |
Total size of all MS in a TS, [nanoseconds]. | |
Static Private Attributes | |
static const uint16_t | kusSysIdSts = 0x10 |
Constants. | |
static const uint16_t | kusSysIdMuch = 0x50 |
static const uint16_t | kusSysIdTrd = 0x40 |
static const uint16_t | kusSysIdTof = 0x60 |
static const uint16_t | kusSysIdBmon = 0x90 |
static const uint16_t | kusSysIdRich = 0x30 |
static const uint16_t | kusSysIdPsd = 0x80 |
Definition at line 36 of file CbmDeviceMcbmUnpack.h.
CbmDeviceMcbmUnpack::CbmDeviceMcbmUnpack | ( | ) |
Definition at line 54 of file CbmDeviceMcbmUnpack.cxx.
References fUnpAlgoMuch, fUnpAlgoPsd, fUnpAlgoRich, fUnpAlgoSts, fUnpAlgoTof, and fUnpAlgoTrd.
|
virtual |
Definition at line 425 of file CbmDeviceMcbmUnpack.cxx.
References fUnpAlgoMuch, fUnpAlgoPsd, fUnpAlgoRich, fUnpAlgoSts, fUnpAlgoTof, and fUnpAlgoTrd.
|
private |
Definition at line 436 of file CbmDeviceMcbmUnpack.cxx.
References CbmMcbm2018UnpackerAlgoMuch::AddMsComponentToList(), CbmMcbm2018UnpackerAlgoPsd::AddMsComponentToList(), CbmMcbm2018UnpackerAlgoRich::AddMsComponentToList(), CbmMcbm2018UnpackerAlgoSts::AddMsComponentToList(), CbmMcbm2018UnpackerAlgoTof::AddMsComponentToList(), CbmMcbm2018UnpackerAlgoTrdR::AddMsComponentToList(), fbComponentsAddedToList, fulTsCounter, fUnpAlgoMuch, fUnpAlgoPsd, fUnpAlgoRich, fUnpAlgoSts, fUnpAlgoTof, fUnpAlgoTrd, kusSysIdBmon, kusSysIdMuch, kusSysIdPsd, kusSysIdRich, kusSysIdSts, kusSysIdTof, kusSysIdTrd, CbmMcbm2018UnpackerAlgoMuch::ProcessTs(), CbmMcbm2018UnpackerAlgoPsd::ProcessTs(), CbmMcbm2018UnpackerAlgoRich::ProcessTs(), CbmMcbm2018UnpackerAlgoSts::ProcessTs(), CbmMcbm2018UnpackerAlgoTof::ProcessTs(), and CbmMcbm2018UnpackerAlgoTrdR::ProcessTs().
Referenced by HandleData().
|
private |
Definition at line 513 of file CbmDeviceMcbmUnpack.cxx.
|
protected |
|
protected |
Create an empty TS and fill it with the incoming message
On first TS, extract the TS parameters from header (by definition stable over time)
Process the Timeslice
Send digi vectors to ouput
Clear the digis vectors in case it was filled
Clear the digis vectors in case it was filled
Definition at line 241 of file CbmDeviceMcbmUnpack.cxx.
References CbmStar2019Algo< T >::ClearErrorVector(), CbmStar2019Algo< T >::ClearVector(), DoUnpack(), fdMsSizeInNs, fdTsCoreSizeInNs, fdTsFullSizeInNs, fdTsOverSizeInNs, fTsMetaData, fulNumMessages, fuNbCoreMsPerTs, fuNbOverMsPerTs, fUnpAlgoMuch, fUnpAlgoPsd, fUnpAlgoRich, fUnpAlgoSts, fUnpAlgoTof, fUnpAlgoTrd, and SendUnpData().
Referenced by InitTask().
|
private |
Need to add accessors for all options
Load time offsets
Detector Enum Tag
Min number
Starting from first run on Tuesday 28/04/2020, STS uses bin sorter FW
Starting from first run on Monday 04/05/2020, MUCH uses bin sorter FW
Special case for TRD vector initialization Get address of vector from algo in a kind of loopback ^^'
Definition at line 120 of file CbmDeviceMcbmUnpack.cxx.
References fbIgnoreOverlapMs, fUnpAlgoMuch, fUnpAlgoPsd, fUnpAlgoRich, fUnpAlgoSts, fUnpAlgoTof, fUnpAlgoTrd, fvsSetTimeOffs, CbmMcbm2018UnpackerAlgoMuch::GetParList(), CbmMcbm2018UnpackerAlgoPsd::GetParList(), CbmMcbm2018UnpackerAlgoRich::GetParList(), CbmMcbm2018UnpackerAlgoSts::GetParList(), CbmMcbm2018UnpackerAlgoTof::GetParList(), CbmMcbm2018UnpackerAlgoTrdR::GetParList(), CbmStar2019Algo< T >::GetVector(), CbmMcbm2018UnpackerAlgoMuch::InitContainers(), CbmMcbm2018UnpackerAlgoPsd::InitContainers(), CbmMcbm2018UnpackerAlgoRich::InitContainers(), CbmMcbm2018UnpackerAlgoSts::InitContainers(), CbmMcbm2018UnpackerAlgoTof::InitContainers(), CbmMcbm2018UnpackerAlgoTrdR::InitContainers(), InitParameters(), CbmMcbm2018UnpackerAlgoMuch::SetBinningFwFlag(), CbmMcbm2018UnpackerAlgoSts::SetBinningFwFlag(), CbmMcbm2018UnpackerAlgoTrdR::SetDigiOutputPointer(), CbmStar2019Algo< T >::SetIgnoreOverlapMs(), CbmMcbm2018UnpackerAlgoMuch::SetTimeOffsetNs(), CbmMcbm2018UnpackerAlgoPsd::SetTimeOffsetNs(), CbmMcbm2018UnpackerAlgoRich::SetTimeOffsetNs(), CbmMcbm2018UnpackerAlgoSts::SetTimeOffsetNs(), CbmMcbm2018UnpackerAlgoTof::SetTimeOffsetNs(), and CbmMcbm2018UnpackerAlgoTrdR::SetTimeOffsetNs().
Referenced by InitTask().
|
private |
Parameters management.
Definition at line 201 of file CbmDeviceMcbmUnpack.cxx.
Referenced by InitContainers().
|
protectedvirtual |
Read options from executable
TODO: option to set fuDigiMaskedIdBmon !!!!
Definition at line 64 of file CbmDeviceMcbmUnpack.cxx.
References fbIgnoreOverlapMs, fsAllowedChannels, fsChannelNameDataInput, fsChannelNameDataOutput, fvsSetTimeOffs, HandleData(), InitContainers(), and IsChannelNameAllowed().
|
private |
Definition at line 102 of file CbmDeviceMcbmUnpack.cxx.
References fsAllowedChannels, and pos.
Referenced by InitTask().
|
private |
Prepare serialized versions of the TS Meta
Split TOF vector in TOF and Bmon
Insert data in Bmon output container
Insert data in TOF output container
Definition at line 297 of file CbmDeviceMcbmUnpack.cxx.
References fsChannelNameDataOutput, fTsMetaData, fuDigiMaskedIdBmon, fuDigiMaskId, fUnpAlgoMuch, fUnpAlgoPsd, fUnpAlgoRich, fUnpAlgoSts, fUnpAlgoTof, fUnpAlgoTrd, and CbmStar2019Algo< T >::GetVector().
Referenced by HandleData().
|
private |
Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice.
Definition at line 58 of file CbmDeviceMcbmUnpack.h.
Referenced by DoUnpack().
|
private |
Control flags.
Definition at line 57 of file CbmDeviceMcbmUnpack.h.
Referenced by InitContainers(), and InitTask().
|
private |
Definition at line 92 of file CbmDeviceMcbmUnpack.h.
Referenced by HandleData().
|
private |
Size of a single MS, [nanoseconds].
Definition at line 93 of file CbmDeviceMcbmUnpack.h.
Referenced by HandleData().
|
private |
Total size of the overlap MS in a TS, [nanoseconds].
Definition at line 95 of file CbmDeviceMcbmUnpack.h.
Referenced by HandleData().
|
private |
Total size of the core MS in a TS, [nanoseconds].
Definition at line 94 of file CbmDeviceMcbmUnpack.h.
Referenced by HandleData().
|
private |
List of MQ channels names.
Definition at line 68 of file CbmDeviceMcbmUnpack.h.
Referenced by InitTask(), and IsChannelNameAllowed().
|
private |
Definition at line 63 of file CbmDeviceMcbmUnpack.h.
|
private |
User settings parameters.
Definition at line 61 of file CbmDeviceMcbmUnpack.h.
Referenced by InitTask().
|
private |
Definition at line 62 of file CbmDeviceMcbmUnpack.h.
Referenced by InitTask(), and SendUnpData().
|
private |
Total size of all MS in a TS, [nanoseconds].
Definition at line 96 of file CbmDeviceMcbmUnpack.h.
Referenced by HandleData(), and SendUnpData().
|
private |
Definition at line 64 of file CbmDeviceMcbmUnpack.h.
Referenced by SendUnpData().
|
private |
Definition at line 65 of file CbmDeviceMcbmUnpack.h.
Referenced by SendUnpData().
|
private |
Statistics & first TS rejection.
Definition at line 75 of file CbmDeviceMcbmUnpack.h.
Referenced by HandleData().
|
private |
Definition at line 76 of file CbmDeviceMcbmUnpack.h.
Referenced by DoUnpack().
|
private |
TS MetaData storage.
Definition at line 90 of file CbmDeviceMcbmUnpack.h.
Referenced by HandleData().
|
private |
Definition at line 91 of file CbmDeviceMcbmUnpack.h.
Referenced by HandleData().
|
private |
Definition at line 80 of file CbmDeviceMcbmUnpack.h.
Referenced by CbmDeviceMcbmUnpack(), DoUnpack(), HandleData(), InitContainers(), SendUnpData(), and ~CbmDeviceMcbmUnpack().
|
private |
Definition at line 84 of file CbmDeviceMcbmUnpack.h.
Referenced by CbmDeviceMcbmUnpack(), DoUnpack(), HandleData(), InitContainers(), SendUnpData(), and ~CbmDeviceMcbmUnpack().
|
private |
Definition at line 83 of file CbmDeviceMcbmUnpack.h.
Referenced by CbmDeviceMcbmUnpack(), DoUnpack(), HandleData(), InitContainers(), SendUnpData(), and ~CbmDeviceMcbmUnpack().
|
private |
Processing algos.
Definition at line 79 of file CbmDeviceMcbmUnpack.h.
Referenced by CbmDeviceMcbmUnpack(), DoUnpack(), HandleData(), InitContainers(), SendUnpData(), and ~CbmDeviceMcbmUnpack().
|
private |
Definition at line 82 of file CbmDeviceMcbmUnpack.h.
Referenced by CbmDeviceMcbmUnpack(), DoUnpack(), HandleData(), InitContainers(), SendUnpData(), and ~CbmDeviceMcbmUnpack().
|
private |
Definition at line 81 of file CbmDeviceMcbmUnpack.h.
Referenced by CbmDeviceMcbmUnpack(), DoUnpack(), HandleData(), InitContainers(), SendUnpData(), and ~CbmDeviceMcbmUnpack().
|
private |
Time offsets.
Definition at line 87 of file CbmDeviceMcbmUnpack.h.
Referenced by InitContainers(), and InitTask().
|
staticprivate |
Definition at line 52 of file CbmDeviceMcbmUnpack.h.
Referenced by DoUnpack().
|
staticprivate |
Definition at line 49 of file CbmDeviceMcbmUnpack.h.
Referenced by DoUnpack().
|
staticprivate |
Definition at line 54 of file CbmDeviceMcbmUnpack.h.
Referenced by DoUnpack().
|
staticprivate |
Definition at line 53 of file CbmDeviceMcbmUnpack.h.
Referenced by DoUnpack().
|
staticprivate |
|
staticprivate |
Definition at line 51 of file CbmDeviceMcbmUnpack.h.
Referenced by DoUnpack().
|
staticprivate |
Definition at line 50 of file CbmDeviceMcbmUnpack.h.
Referenced by DoUnpack().