CbmRoot
CbmDeviceMcbmUnpack Class Reference

#include <CbmDeviceMcbmUnpack.h>

Inheritance diagram for CbmDeviceMcbmUnpack:
[legend]
Collaboration diagram for CbmDeviceMcbmUnpack:
[legend]

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. More...
 
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
 Control flags. More...
 
Bool_t fbComponentsAddedToList = kFALSE
 Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice. More...
 
std::string fsChannelNameDataInput = "fullts"
 User settings parameters. More...
 
std::string fsChannelNameDataOutput = "unpts_0"
 
std::string fsChannelNameCommands = "commands"
 
UInt_t fuDigiMaskedIdT0 = 0x00005006
 
UInt_t fuDigiMaskId = 0x0001FFFF
 
std::vector< std::string > fsAllowedChannels = {fsChannelNameDataInput}
 List of MQ channels names. More...
 
uint64_t fulNumMessages = 0
 Statistics & first TS rejection. More...
 
uint64_t fulTsCounter = 0
 
CbmMcbm2018UnpackerAlgoStsfUnpAlgoSts = nullptr
 Processing algos. More...
 
CbmMcbm2018UnpackerAlgoMuchfUnpAlgoMuch = nullptr
 
CbmMcbm2018UnpackerAlgoTrdRfUnpAlgoTrd = nullptr
 
CbmMcbm2018UnpackerAlgoToffUnpAlgoTof = nullptr
 
CbmMcbm2018UnpackerAlgoRichfUnpAlgoRich = nullptr
 
CbmMcbm2018UnpackerAlgoPsdfUnpAlgoPsd = nullptr
 
std::vector< std::string > fvsSetTimeOffs = {}
 Time offsets. More...
 
size_t fuNbCoreMsPerTs = 0
 TS MetaData storage. More...
 
size_t fuNbOverMsPerTs = 0
 
Double_t fdMsSizeInNs = 1280000
 
Double_t fdTsCoreSizeInNs
 Size of a single MS, [nanoseconds]. More...
 
Double_t fdTsOverSizeInNs
 Total size of the core MS in a TS, [nanoseconds]. More...
 
Double_t fdTsFullSizeInNs
 Total size of the overlap MS in a TS, [nanoseconds]. More...
 
TimesliceMetaDatafTsMetaData
 Total size of all MS in a TS, [nanoseconds]. More...
 

Static Private Attributes

static const uint16_t kusSysIdSts = 0x10
 Constants. More...
 
static const uint16_t kusSysIdMuch = 0x50
 
static const uint16_t kusSysIdTrd = 0x40
 
static const uint16_t kusSysIdTof = 0x60
 
static const uint16_t kusSysIdT0 = 0x90
 
static const uint16_t kusSysIdRich = 0x30
 
static const uint16_t kusSysIdPsd = 0x80
 

Detailed Description

Definition at line 31 of file CbmDeviceMcbmUnpack.h.

Constructor & Destructor Documentation

◆ CbmDeviceMcbmUnpack()

CbmDeviceMcbmUnpack::CbmDeviceMcbmUnpack ( )

Definition at line 50 of file CbmDeviceMcbmUnpack.cxx.

◆ ~CbmDeviceMcbmUnpack()

CbmDeviceMcbmUnpack::~CbmDeviceMcbmUnpack ( )
virtual

Definition at line 428 of file CbmDeviceMcbmUnpack.cxx.

Member Function Documentation

◆ DoUnpack()

Bool_t CbmDeviceMcbmUnpack::DoUnpack ( const fles::Timeslice &  ts,
size_t  component 
)
private

Definition at line 438 of file CbmDeviceMcbmUnpack.cxx.

◆ Finish()

void CbmDeviceMcbmUnpack::Finish ( )
private

Definition at line 522 of file CbmDeviceMcbmUnpack.cxx.

◆ HandleCommand()

bool CbmDeviceMcbmUnpack::HandleCommand ( FairMQMessagePtr &  ,
int   
)
protected

◆ HandleData()

bool CbmDeviceMcbmUnpack::HandleData ( FairMQMessagePtr &  msg,
int   
)
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 243 of file CbmDeviceMcbmUnpack.cxx.

Referenced by InitTask().

◆ InitContainers()

Bool_t CbmDeviceMcbmUnpack::InitContainers ( )
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 117 of file CbmDeviceMcbmUnpack.cxx.

◆ InitParameters()

Bool_t CbmDeviceMcbmUnpack::InitParameters ( TList *  fParCList)
private

Parameters management.

Definition at line 202 of file CbmDeviceMcbmUnpack.cxx.

◆ InitTask()

void CbmDeviceMcbmUnpack::InitTask ( )
protectedvirtual

Read options from executable

TODO: option to set fuDigiMaskedIdT0 !!!!

Definition at line 59 of file CbmDeviceMcbmUnpack.cxx.

References HandleData().

◆ IsChannelNameAllowed()

bool CbmDeviceMcbmUnpack::IsChannelNameAllowed ( std::string  channelName)
private

Definition at line 96 of file CbmDeviceMcbmUnpack.cxx.

References pos.

◆ SendUnpData()

bool CbmDeviceMcbmUnpack::SendUnpData ( )
private

Prepare serialized versions of the TS Meta

Split TOF vector in TOF and T0

Insert data in T0 output container

Insert data in TOF output container

Definition at line 302 of file CbmDeviceMcbmUnpack.cxx.

Member Data Documentation

◆ fbComponentsAddedToList

Bool_t CbmDeviceMcbmUnpack::fbComponentsAddedToList = kFALSE
private

Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice.

Definition at line 54 of file CbmDeviceMcbmUnpack.h.

◆ fbIgnoreOverlapMs

Bool_t CbmDeviceMcbmUnpack::fbIgnoreOverlapMs
private
Initial value:
=
false

Control flags.

Definition at line 52 of file CbmDeviceMcbmUnpack.h.

◆ fdMsSizeInNs

Double_t CbmDeviceMcbmUnpack::fdMsSizeInNs = 1280000
private

Definition at line 88 of file CbmDeviceMcbmUnpack.h.

◆ fdTsCoreSizeInNs

Double_t CbmDeviceMcbmUnpack::fdTsCoreSizeInNs
private
Initial value:
=
-1.0

Size of a single MS, [nanoseconds].

Definition at line 89 of file CbmDeviceMcbmUnpack.h.

◆ fdTsFullSizeInNs

Double_t CbmDeviceMcbmUnpack::fdTsFullSizeInNs
private
Initial value:
=
-1.0

Total size of the overlap MS in a TS, [nanoseconds].

Definition at line 93 of file CbmDeviceMcbmUnpack.h.

◆ fdTsOverSizeInNs

Double_t CbmDeviceMcbmUnpack::fdTsOverSizeInNs
private
Initial value:
=
-1.0

Total size of the core MS in a TS, [nanoseconds].

Definition at line 91 of file CbmDeviceMcbmUnpack.h.

◆ fsAllowedChannels

std::vector<std::string> CbmDeviceMcbmUnpack::fsAllowedChannels = {fsChannelNameDataInput}
private

List of MQ channels names.

Definition at line 64 of file CbmDeviceMcbmUnpack.h.

◆ fsChannelNameCommands

std::string CbmDeviceMcbmUnpack::fsChannelNameCommands = "commands"
private

Definition at line 59 of file CbmDeviceMcbmUnpack.h.

◆ fsChannelNameDataInput

std::string CbmDeviceMcbmUnpack::fsChannelNameDataInput = "fullts"
private

User settings parameters.

Definition at line 57 of file CbmDeviceMcbmUnpack.h.

◆ fsChannelNameDataOutput

std::string CbmDeviceMcbmUnpack::fsChannelNameDataOutput = "unpts_0"
private

Definition at line 58 of file CbmDeviceMcbmUnpack.h.

◆ fTsMetaData

TimesliceMetaData* CbmDeviceMcbmUnpack::fTsMetaData
private

Total size of all MS in a TS, [nanoseconds].

Definition at line 95 of file CbmDeviceMcbmUnpack.h.

◆ fuDigiMaskedIdT0

UInt_t CbmDeviceMcbmUnpack::fuDigiMaskedIdT0 = 0x00005006
private

Definition at line 60 of file CbmDeviceMcbmUnpack.h.

◆ fuDigiMaskId

UInt_t CbmDeviceMcbmUnpack::fuDigiMaskId = 0x0001FFFF
private

Definition at line 61 of file CbmDeviceMcbmUnpack.h.

◆ fulNumMessages

uint64_t CbmDeviceMcbmUnpack::fulNumMessages = 0
private

Statistics & first TS rejection.

Definition at line 71 of file CbmDeviceMcbmUnpack.h.

◆ fulTsCounter

uint64_t CbmDeviceMcbmUnpack::fulTsCounter = 0
private

Definition at line 72 of file CbmDeviceMcbmUnpack.h.

◆ fuNbCoreMsPerTs

size_t CbmDeviceMcbmUnpack::fuNbCoreMsPerTs = 0
private

TS MetaData storage.

Definition at line 86 of file CbmDeviceMcbmUnpack.h.

◆ fuNbOverMsPerTs

size_t CbmDeviceMcbmUnpack::fuNbOverMsPerTs = 0
private

Definition at line 87 of file CbmDeviceMcbmUnpack.h.

◆ fUnpAlgoMuch

CbmMcbm2018UnpackerAlgoMuch* CbmDeviceMcbmUnpack::fUnpAlgoMuch = nullptr
private

Definition at line 76 of file CbmDeviceMcbmUnpack.h.

◆ fUnpAlgoPsd

CbmMcbm2018UnpackerAlgoPsd* CbmDeviceMcbmUnpack::fUnpAlgoPsd = nullptr
private

Definition at line 80 of file CbmDeviceMcbmUnpack.h.

◆ fUnpAlgoRich

CbmMcbm2018UnpackerAlgoRich* CbmDeviceMcbmUnpack::fUnpAlgoRich = nullptr
private

Definition at line 79 of file CbmDeviceMcbmUnpack.h.

◆ fUnpAlgoSts

CbmMcbm2018UnpackerAlgoSts* CbmDeviceMcbmUnpack::fUnpAlgoSts = nullptr
private

Processing algos.

Definition at line 75 of file CbmDeviceMcbmUnpack.h.

◆ fUnpAlgoTof

CbmMcbm2018UnpackerAlgoTof* CbmDeviceMcbmUnpack::fUnpAlgoTof = nullptr
private

Definition at line 78 of file CbmDeviceMcbmUnpack.h.

◆ fUnpAlgoTrd

CbmMcbm2018UnpackerAlgoTrdR* CbmDeviceMcbmUnpack::fUnpAlgoTrd = nullptr
private

Definition at line 77 of file CbmDeviceMcbmUnpack.h.

◆ fvsSetTimeOffs

std::vector<std::string> CbmDeviceMcbmUnpack::fvsSetTimeOffs = {}
private

Time offsets.

Definition at line 83 of file CbmDeviceMcbmUnpack.h.

◆ kusSysIdMuch

const uint16_t CbmDeviceMcbmUnpack::kusSysIdMuch = 0x50
staticprivate

Definition at line 44 of file CbmDeviceMcbmUnpack.h.

◆ kusSysIdPsd

const uint16_t CbmDeviceMcbmUnpack::kusSysIdPsd = 0x80
staticprivate

Definition at line 49 of file CbmDeviceMcbmUnpack.h.

◆ kusSysIdRich

const uint16_t CbmDeviceMcbmUnpack::kusSysIdRich = 0x30
staticprivate

Definition at line 48 of file CbmDeviceMcbmUnpack.h.

◆ kusSysIdSts

const uint16_t CbmDeviceMcbmUnpack::kusSysIdSts = 0x10
staticprivate

Constants.

Definition at line 43 of file CbmDeviceMcbmUnpack.h.

◆ kusSysIdT0

const uint16_t CbmDeviceMcbmUnpack::kusSysIdT0 = 0x90
staticprivate

Definition at line 47 of file CbmDeviceMcbmUnpack.h.

◆ kusSysIdTof

const uint16_t CbmDeviceMcbmUnpack::kusSysIdTof = 0x60
staticprivate

Definition at line 46 of file CbmDeviceMcbmUnpack.h.

◆ kusSysIdTrd

const uint16_t CbmDeviceMcbmUnpack::kusSysIdTrd = 0x40
staticprivate

Definition at line 45 of file CbmDeviceMcbmUnpack.h.


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