CbmRoot
Loading...
Searching...
No Matches
cbm::algo::much::UnpackMS Class Reference

Unpack algorithm for STS. More...

#include <UnpackMS.h>

Inheritance diagram for cbm::algo::much::UnpackMS:
[legend]
Collaboration diagram for cbm::algo::much::UnpackMS:
[legend]

Classes

struct  TimeSpec
 

Public Types

using Digi_t
 
using Monitor_t
 
using Aux_t
 
using Result_t
 

Public Member Functions

 UnpackMS (const UnpackPar &pars)
 Construct with parameters.
 
 ~UnpackMS () override
 Destructor.
 
Result_t operator() (const uint8_t *msContent, const fles::MicrosliceDescriptor &msDescr, const uint64_t tTimeslice) const override
 Algorithm execution.
 

Private Member Functions

void ProcessHitMessage (const stsxyter::Message &message, const TimeSpec &time, std::vector< CbmMuchDigi > &digiVec, UnpackMonitorData &monitor) const
 Process a hit message.
 
void ProcessTsmsbMessage (const stsxyter::Message &message, TimeSpec &time) const
 Process an epoch message (TS_MSB)
 

Private Attributes

UnpackPar fParams = {}
 Parameter container.
 

Static Private Attributes

static constexpr uint64_t fkEpochsPerCycle = stsxyter::kuTsMsbNbTsBinsBinning
 
static constexpr uint64_t fkEpochLength = stsxyter::kuHitNbTsBinsBinning
 
static constexpr uint32_t fkClockCycleNom = stsxyter::kulClockCycleNom
 
static constexpr uint32_t fkClockCycleDen = stsxyter::kulClockCycleDen
 
static constexpr uint64_t fkCycleLength = (fkEpochsPerCycle * fkEpochLength * fkClockCycleNom) / fkClockCycleDen
 

Detailed Description

Unpack algorithm for STS.

Author
Pierre-Alain Loizeau p.-a..nosp@m.loiz.nosp@m.eau@g.nosp@m.si.d.nosp@m.e
Volker Friese v.fri.nosp@m.ese@.nosp@m.gsi.d.nosp@m.e
Since
25 November 2021

Definition at line 86 of file much/UnpackMS.h.

Member Typedef Documentation

◆ Aux_t

Definition at line 23 of file UnpackMSBase.h.

◆ Digi_t

Definition at line 21 of file UnpackMSBase.h.

◆ Monitor_t

Definition at line 22 of file UnpackMSBase.h.

◆ Result_t

Definition at line 25 of file UnpackMSBase.h.

Constructor & Destructor Documentation

◆ UnpackMS()

cbm::algo::much::UnpackMS::UnpackMS ( const UnpackPar & pars)

Construct with parameters.

Definition at line 20 of file much/UnpackMS.cxx.

◆ ~UnpackMS()

cbm::algo::much::UnpackMS::~UnpackMS ( )
overridedefault

Destructor.

Member Function Documentation

◆ operator()()

UnpackMS::Result_t cbm::algo::much::UnpackMS::operator() ( const uint8_t * msContent,
const fles::MicrosliceDescriptor & msDescr,
const uint64_t tTimeslice ) const
overridevirtual

◆ ProcessHitMessage()

void cbm::algo::much::UnpackMS::ProcessHitMessage ( const stsxyter::Message & message,
const TimeSpec & time,
std::vector< CbmMuchDigi > & digiVec,
UnpackMonitorData & monitor ) const
private

Process a hit message.

Parameters
messageSMX message (32-bit word)
digiVecVector to append the created digi to
monitorReference to monitor object

Referenced by operator()().

◆ ProcessTsmsbMessage()

void cbm::algo::much::UnpackMS::ProcessTsmsbMessage ( const stsxyter::Message & message,
TimeSpec & time ) const
inlineprivate

Member Data Documentation

◆ fkClockCycleDen

uint32_t cbm::algo::much::UnpackMS::fkClockCycleDen = stsxyter::kulClockCycleDen
staticconstexprprivate

Definition at line 140 of file much/UnpackMS.h.

Referenced by operator()().

◆ fkClockCycleNom

uint32_t cbm::algo::much::UnpackMS::fkClockCycleNom = stsxyter::kulClockCycleNom
staticconstexprprivate

Clock cycle nominator [ns] and denominator. The clock cycle in ns is nominator / denominator.

Definition at line 139 of file much/UnpackMS.h.

Referenced by operator()().

◆ fkCycleLength

uint64_t cbm::algo::much::UnpackMS::fkCycleLength = (fkEpochsPerCycle * fkEpochLength * fkClockCycleNom) / fkClockCycleDen
staticconstexprprivate

Epoch cycle length in ns

Definition at line 143 of file much/UnpackMS.h.

Referenced by operator()().

◆ fkEpochLength

uint64_t cbm::algo::much::UnpackMS::fkEpochLength = stsxyter::kuHitNbTsBinsBinning
staticconstexprprivate

Length of TS_MSB epoch in clock cycles

Definition at line 136 of file much/UnpackMS.h.

Referenced by operator()(), and ProcessTsmsbMessage().

◆ fkEpochsPerCycle

uint64_t cbm::algo::much::UnpackMS::fkEpochsPerCycle = stsxyter::kuTsMsbNbTsBinsBinning
staticconstexprprivate

Number of TS_MSB epochs per cycle

Definition at line 133 of file much/UnpackMS.h.

Referenced by ProcessTsmsbMessage().

◆ fParams

UnpackPar cbm::algo::much::UnpackMS::fParams = {}
private

Parameter container.

Definition at line 130 of file much/UnpackMS.h.


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