CbmRoot
Loading...
Searching...
No Matches
CbmDeviceUnpack Class Reference

#include <CbmDeviceUnpack.h>

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

Public Member Functions

 CbmDeviceUnpack ()
 
virtual ~CbmDeviceUnpack ()
 

Protected Member Functions

virtual void InitTask ()
 
bool ConditionalRun ()
 
bool HandleCommand (FairMQMessagePtr &, int)
 
void SetUnpackConfig (std::shared_ptr< CbmBmonUnpackConfig > config)
 Set the Bmon Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmStsUnpackConfig > config)
 Set the Sts Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmMuchUnpackConfig > config)
 Set the Much Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmTrdUnpackConfig > config)
 Set the Trd Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmTrdUnpackFaspConfig > config)
 Set the Trd2D Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmTofUnpackConfig > config)
 Set the Tof Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmRichUnpackConfig > config)
 Set the Rich Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmPsdUnpackConfig > config)
 Set the Psd Unpack Config.
 

Private Member Functions

Bool_t InitParameters (std::vector< std::pair< std::string, std::shared_ptr< FairParGenericSet > > > *reqparvec)
 Parameters management.
 
Bool_t InitContainers ()
 
bool InitHistograms ()
 
Bool_t DoUnpack (const fles::Timeslice &ts, size_t component)
 
void Finish ()
 
bool SendUnpData ()
 
bool SendHistoConfAndData ()
 
bool SendHistograms ()
 
std::shared_ptr< CbmTrdSpadicGetTrdSpadic (bool useAvgBaseline)
 Get the Trd Spadic.
 
template<typename TVecobj >
std::enable_if< std::is_same< TVecobj, std::nullptr_t >::value==true, void >::type timesort (std::vector< TVecobj > *)
 Sort a vector timewise vector type has to provide GetTime()
 
template<typename TVecobj >
std::enable_if<!std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type timesort (std::vector< TVecobj > *)
 
template<typename TVecobj >
std::enable_if< std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type timesort (std::vector< TVecobj > *vec=nullptr)
 
template<class TConfig , class TOptOutA = std::nullptr_t, class TOptOutB = std::nullptr_t>
size_t unpack (const std::uint16_t subsysid, const fles::Timeslice *ts, std::uint16_t icomp, TConfig config, std::vector< TOptOutA > *optouttargetvecA=nullptr, std::vector< TOptOutB > *optouttargetvecB=nullptr)
 Template for the unpacking call of a given algorithm.
 

Private Attributes

Bool_t fbIgnoreOverlapMs = false
 Control flags.
 
Bool_t fbComponentsAddedToList = kFALSE
 Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice.
 
bool fDoDebugPrints = false
 Flag if extended debug output is to be printed or not.
 
bool fDoPerfProf = false
 Flag if performance profiling should be activated or not.
 
bool fbOutputFullTimeSorting = false
 Flag to Enable/disable a full time sorting. If off, time sorting happens per link/FLIM source.
 
std::string fsSetupName = "mcbm_beam_2021_07_surveyed"
 User settings parameters.
 
uint32_t fuRunId = 1588
 
bool fbUnpBmon = false
 ---> for selective unpacking
 
bool fbUnpSts = true
 
bool fbUnpMuch = false
 
bool fbUnpTrd1D = true
 
bool fbUnpTrd2D = true
 
bool fbUnpTof = true
 
bool fbUnpRich = true
 
bool fbUnpPsd = true
 
std::string fsChannelNameDataInput = "ts-request"
 message queues
 
std::string fsChannelNameDataOutput = "unpts_0"
 
std::string fsChannelNameCommands = "commands"
 
std::string fsChannelNameHistosInput = "histogram-in"
 
uint32_t fuPublishFreqTs = 100
 Histograms management.
 
double_t fdMinPublishTime = 0.5
 
double_t fdMaxPublishTime = 5.0
 
uint64_t fulNumMessages = 0
 Statistics & first TS rejection.
 
uint64_t fulTsCounter = 0
 
std::chrono::system_clock::time_point fLastPublishTime = std::chrono::system_clock::now()
 
std::map< std::uint16_t, std::pair< std::string, size_t > > fNameMap = {}
 Map to store a name for the unpackers and the processed amount of digis, key = fkFlesId.
 
std::map< std::uint16_t, std::pair< double, double > > fTimeMap = {}
 Map to store the cpu and wall time, key = fkFlesId.
 
std::map< std::uint16_t, std::pair< double, double > > fDataSizeMap = {}
 Map to store the in and out data amount, key = fkFlesId.
 
std::shared_ptr< CbmBmonUnpackConfigfBmonConfig = nullptr
 Configuration of the unpackers. Provides the configured algorithm.
 
std::shared_ptr< CbmStsUnpackConfigfStsConfig = nullptr
 
std::shared_ptr< CbmMuchUnpackConfigfMuchConfig = nullptr
 
std::shared_ptr< CbmTrdUnpackFaspConfigfTrd2DConfig = nullptr
 
std::shared_ptr< CbmTrdUnpackConfigfTrd1DConfig = nullptr
 
std::shared_ptr< CbmTofUnpackConfigfTofConfig = nullptr
 
std::shared_ptr< CbmRichUnpackConfigfRichConfig = nullptr
 
std::shared_ptr< CbmPsdUnpackConfigfPsdConfig = nullptr
 
CbmTsEventHeaderfCbmTsEventHeader = nullptr
 Pointer to the Timeslice header conatining start time and index.
 
std::vector< std::string > fvsSetTimeOffs = {}
 Time offsets.
 
size_t fuNbCoreMsPerTs = 0
 TS MetaData storage: stable so should be moved somehow to parameters handling (not transmitted with each TS.
 
size_t fuNbOverMsPerTs = 0
 
Double_t fdMsSizeInNs = 0
 
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].
 
TimesliceMetaDatafTsMetaData
 Total size of all MS in a TS, [nanoseconds].
 
TObjArray fArrayHisto = {}
 Array of histograms to send to the histogram server.
 
std::vector< std::pair< std::string, std::string > > fvpsHistosFolder = {}
 Vector of string pairs with ( HistoName, FolderPath ) to send to the histogram server.
 
std::vector< std::pair< std::string, std::string > > fvpsCanvasConfig = {}
 
bool fbConfigSent = false
 Flag indicating whether the histograms and canvases configurations were already published.
 

Static Private Attributes

static constexpr std::uint16_t fkFlesBmon = static_cast<std::uint16_t>(fles::Subsystem::BMON)
 Constants.
 
static constexpr std::uint16_t fkFlesMvd = static_cast<std::uint16_t>(fles::Subsystem::MVD)
 
static constexpr std::uint16_t fkFlesSts = static_cast<std::uint16_t>(fles::Subsystem::STS)
 
static constexpr std::uint16_t fkFlesMuch = static_cast<std::uint16_t>(fles::Subsystem::MUCH)
 
static constexpr std::uint16_t fkFlesTrd = static_cast<std::uint16_t>(fles::Subsystem::TRD)
 
static constexpr std::uint16_t fkFlesTrd2D = static_cast<std::uint16_t>(fles::Subsystem::TRD2D)
 
static constexpr std::uint16_t fkFlesTof = static_cast<std::uint16_t>(fles::Subsystem::TOF)
 
static constexpr std::uint16_t fkFlesRich = static_cast<std::uint16_t>(fles::Subsystem::RICH)
 
static constexpr std::uint16_t fkFlesPsd = static_cast<std::uint16_t>(fles::Subsystem::PSD)
 

Detailed Description

Definition at line 44 of file CbmDeviceUnpack.h.

Constructor & Destructor Documentation

◆ CbmDeviceUnpack()

CbmDeviceUnpack::CbmDeviceUnpack ( )

Definition at line 58 of file CbmDeviceUnpack.cxx.

◆ ~CbmDeviceUnpack()

CbmDeviceUnpack::~CbmDeviceUnpack ( )
virtual

Member Function Documentation

◆ ConditionalRun()

bool CbmDeviceUnpack::ConditionalRun ( )
protected

First do Algo related Initialization steps if needed

First request a new TS (full one)

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)

Update only the fields changing from TS to TS

Process the Timeslice

Send digi vectors to ouput

Send histograms each 100 time slices. Should be each ~1s Use also runtime checker to trigger sending after M s if processing too slow or delay sending if processing too fast

Definition at line 706 of file CbmDeviceUnpack.cxx.

References DoUnpack(), fbConfigSent, fBmonConfig, fCbmTsEventHeader, fdMaxPublishTime, fdMinPublishTime, fdMsSizeInNs, fdTsCoreSizeInNs, fdTsFullSizeInNs, fdTsOverSizeInNs, fLastPublishTime, fMuchConfig, fPsdConfig, fRichConfig, fsChannelNameDataInput, fStsConfig, fTofConfig, fTrd1DConfig, fTrd2DConfig, fTsMetaData, fulNumMessages, fuNbCoreMsPerTs, fuNbOverMsPerTs, fuPublishFreqTs, InitContainers(), InitHistograms(), CbmTsEventHeader::Reset(), SendHistoConfAndData(), SendHistograms(), SendUnpData(), TimesliceMetaData::SetIndex(), and TimesliceMetaData::SetStartTime().

◆ DoUnpack()

◆ Finish()

void CbmDeviceUnpack::Finish ( )
private

Definition at line 1180 of file CbmDeviceUnpack.cxx.

◆ GetTrdSpadic()

std::shared_ptr< CbmTrdSpadic > CbmDeviceUnpack::GetTrdSpadic ( bool useAvgBaseline)
private

Get the Trd Spadic.

Returns
std::shared_ptr<CbmTrdSpadic>

Definition at line 1171 of file CbmDeviceUnpack.cxx.

Referenced by InitContainers().

◆ HandleCommand()

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

◆ InitContainers()

Bool_t CbmDeviceUnpack::InitContainers ( )
private

Prevent clang format single line if

Initialize the UnpackerConfigs objects and their "user options"

Enable Monitor plots

Starting to readout the U3 since 10/03/2022 Carbon run

Enable duplicates rejection, Ignores the ADC for duplicates check

Enable Monitor plots

To be replaced by a storage in a new parameter class later

Starting to use CRI Based MUCH setup with 2GEM and 1 RPC since 09/03/2022 Carbon run

First nickel runs

Starting to use GEM 2 moved to CRI 0 on 24/05/2022

Enable duplicates rejection, Ignores the ADC for duplicates check

Enable Monitor plots

Additional modules added just before the 10/03/2022 Carbon run

Setup changed multiple times between the 2022 carbon and uranium runs

Carbon runs: 2060 - 2065

Iron runs: 2150 - 2160

Uranium runs: 2176 - 2310

Nickel runs: 2335 - 2397 Gold runs: 2400 - 2497

Switch ON the -4 offset in epoch count (hack for Spring-Summer 2021)

Switch to new unpacking algo starting from first combined cosmics run in 2022

Enable full time sorting instead of time sorting per FLIM link

Load time offsets

Detector Enum Tag

Min number

Framework bound work = kept in this Device

Framework bound work = kept in this Device

Framework bound work = kept in this Device

Framework bound work = kept in this Device

Framework bound work = kept in this Device

Needed to change the Parameter file name before it is used!!!

Framework bound work = kept in this Device

Framework bound work = kept in this Device

Framework bound work = kept in this Device

Event header object

Definition at line 90 of file CbmDeviceUnpack.cxx.

References fbIgnoreOverlapMs, fBmonConfig, fbUnpBmon, fbUnpMuch, fbUnpPsd, fbUnpRich, fbUnpSts, fbUnpTof, fbUnpTrd1D, fbUnpTrd2D, fCbmTsEventHeader, fMuchConfig, fPsdConfig, fRichConfig, fsSetupName, fStsConfig, fTofConfig, fTrd1DConfig, fTrd2DConfig, fuRunId, fvsSetTimeOffs, CbmSetup::GetGeoTag(), GetTrdSpadic(), InitParameters(), CbmSetup::Instance(), kMuch, kPsd, kRich, kSts, kTof, kTrd, CbmSetup::LoadStoredSetup(), SetUnpackConfig(), and v03.

Referenced by ConditionalRun().

◆ InitHistograms()

bool CbmDeviceUnpack::InitHistograms ( )
private

Histos creation and obtain pointer on them Trigger histo creation on all associated algos

Obtain vector of pointers on each histo from the algo (+ optionally desired folder)

Obtain vector of pointers on each canvas from the algo (+ optionally desired folder)

Add pointers to each histo in the histo array Create histo config vector ===> Use an std::vector< std::pair< std::string, std::string > > with < Histo name, Folder > and send it through a separate channel using the BoostSerializer

Create canvas config vector ===> Use an std::vector< std::pair< std::string, std::string > > with < Canvas name, config > and send it through a separate channel using the BoostSerializer

Definition at line 657 of file CbmDeviceUnpack.cxx.

References fArrayHisto, first, fvpsCanvasConfig, fvpsHistosFolder, and GenerateCanvasConfigString().

Referenced by ConditionalRun().

◆ InitParameters()

Bool_t CbmDeviceUnpack::InitParameters ( std::vector< std::pair< std::string, std::shared_ptr< FairParGenericSet > > > * reqparvec)
private

Parameters management.

Potentially unsafe reasignment of raw pointer to the shared pointer?

Definition at line 606 of file CbmDeviceUnpack.cxx.

Referenced by InitContainers().

◆ InitTask()

◆ SendHistoConfAndData()

bool CbmDeviceUnpack::SendHistoConfAndData ( )
private

Prepare multiparts message and header

Serialize the vector of histo config into a single MQ message

Catch case where no histos are registered! => Add empty message

Serialize the vector of canvas config into a single MQ message

Catch case where no Canvases are registered! => Add empty message

Serialize the array of histos into a single MQ message

Send the multi-parts message to the common histogram messages queue

Reset the histograms after sending them (but do not reset the time)

Definition at line 969 of file CbmDeviceUnpack.cxx.

References fArrayHisto, fsChannelNameHistosInput, fvpsCanvasConfig, and fvpsHistosFolder.

Referenced by ConditionalRun().

◆ SendHistograms()

bool CbmDeviceUnpack::SendHistograms ( )
private

Serialize the array of histos into a single MQ message

Send message to the common histogram messages queue

Reset the histograms after sending them (but do not reset the time)

Definition at line 1029 of file CbmDeviceUnpack.cxx.

References fArrayHisto, and fsChannelNameHistosInput.

Referenced by ConditionalRun().

◆ SendUnpData()

bool CbmDeviceUnpack::SendUnpData ( )
private

Prepare serialized versions of the TS Event header

Prepare serialized versions of the TS Meta FIXME: only for TS duration and overlap, should be sent to parameter service instead as stable values in run Index and start time are already included in the TsHeader object!

Definition at line 821 of file CbmDeviceUnpack.cxx.

References fBmonConfig, fCbmTsEventHeader, fMuchConfig, fPsdConfig, fRichConfig, fsChannelNameDataOutput, fStsConfig, fTofConfig, fTrd1DConfig, fTrd2DConfig, and fTsMetaData.

Referenced by ConditionalRun().

◆ SetUnpackConfig() [1/8]

void CbmDeviceUnpack::SetUnpackConfig ( std::shared_ptr< CbmBmonUnpackConfig > config)
inlineprotected

Set the Bmon Unpack Config.

Parameters
config

Definition at line 55 of file CbmDeviceUnpack.h.

References fBmonConfig.

Referenced by InitContainers().

◆ SetUnpackConfig() [2/8]

void CbmDeviceUnpack::SetUnpackConfig ( std::shared_ptr< CbmMuchUnpackConfig > config)
inlineprotected

Set the Much Unpack Config.

Parameters
config

Definition at line 61 of file CbmDeviceUnpack.h.

References fMuchConfig.

◆ SetUnpackConfig() [3/8]

void CbmDeviceUnpack::SetUnpackConfig ( std::shared_ptr< CbmPsdUnpackConfig > config)
inlineprotected

Set the Psd Unpack Config.

Parameters
config

Definition at line 76 of file CbmDeviceUnpack.h.

References fPsdConfig.

◆ SetUnpackConfig() [4/8]

void CbmDeviceUnpack::SetUnpackConfig ( std::shared_ptr< CbmRichUnpackConfig > config)
inlineprotected

Set the Rich Unpack Config.

Parameters
config

Definition at line 73 of file CbmDeviceUnpack.h.

References fRichConfig.

◆ SetUnpackConfig() [5/8]

void CbmDeviceUnpack::SetUnpackConfig ( std::shared_ptr< CbmStsUnpackConfig > config)
inlineprotected

Set the Sts Unpack Config.

Parameters
config

Definition at line 58 of file CbmDeviceUnpack.h.

References fStsConfig.

◆ SetUnpackConfig() [6/8]

void CbmDeviceUnpack::SetUnpackConfig ( std::shared_ptr< CbmTofUnpackConfig > config)
inlineprotected

Set the Tof Unpack Config.

Parameters
config

Definition at line 70 of file CbmDeviceUnpack.h.

References fTofConfig.

◆ SetUnpackConfig() [7/8]

void CbmDeviceUnpack::SetUnpackConfig ( std::shared_ptr< CbmTrdUnpackConfig > config)
inlineprotected

Set the Trd Unpack Config.

Parameters
config

Definition at line 64 of file CbmDeviceUnpack.h.

References fTrd1DConfig.

◆ SetUnpackConfig() [8/8]

void CbmDeviceUnpack::SetUnpackConfig ( std::shared_ptr< CbmTrdUnpackFaspConfig > config)
inlineprotected

Set the Trd2D Unpack Config.

Parameters
config

Definition at line 67 of file CbmDeviceUnpack.h.

References fTrd2DConfig.

◆ timesort() [1/3]

template<typename TVecobj >
std::enable_if< std::is_same< TVecobj, std::nullptr_t >::value==true, void >::type CbmDeviceUnpack::timesort ( std::vector< TVecobj > * )
inlineprivate

Sort a vector timewise vector type has to provide GetTime()

Definition at line 188 of file CbmDeviceUnpack.h.

Referenced by DoUnpack(), and unpack().

◆ timesort() [2/3]

template<typename TVecobj >
std::enable_if<!std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type CbmDeviceUnpack::timesort ( std::vector< TVecobj > * )
inlineprivate

Definition at line 196 of file CbmDeviceUnpack.h.

◆ timesort() [3/3]

template<typename TVecobj >
std::enable_if< std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type CbmDeviceUnpack::timesort ( std::vector< TVecobj > * vec = nullptr)
inlineprivate

Definition at line 205 of file CbmDeviceUnpack.h.

◆ unpack()

template<class TConfig , class TOptOutA = std::nullptr_t, class TOptOutB = std::nullptr_t>
size_t CbmDeviceUnpack::unpack ( const std::uint16_t subsysid,
const fles::Timeslice * ts,
std::uint16_t icomp,
TConfig config,
std::vector< TOptOutA > * optouttargetvecA = nullptr,
std::vector< TOptOutB > * optouttargetvecB = nullptr )
inlineprivate

Template for the unpacking call of a given algorithm.

Template Parameters
TAlgoAlgorithm to be called
TOutputOutput element types
TOptoutputsOptional output element types
Parameters
tsTimeslice
icompComponent number
algoAlgorithm to be used for this component
outtargetvecTarget vector for the output elements
optoutputvecsTarget vectors for optional outputs
Returns
std::pair<ndigis, std::pair<cputime, walltime>>

Definition at line 226 of file CbmDeviceUnpack.h.

References fbOutputFullTimeSorting, fDataSizeMap, fDoPerfProf, fNameMap, fTimeMap, and timesort().

Referenced by DoUnpack().

Member Data Documentation

◆ fArrayHisto

TObjArray CbmDeviceUnpack::fArrayHisto = {}
private

Array of histograms to send to the histogram server.

Definition at line 165 of file CbmDeviceUnpack.h.

Referenced by InitHistograms(), SendHistoConfAndData(), and SendHistograms().

◆ fbComponentsAddedToList

Bool_t CbmDeviceUnpack::fbComponentsAddedToList = kFALSE
private

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

Definition at line 93 of file CbmDeviceUnpack.h.

◆ fbConfigSent

bool CbmDeviceUnpack::fbConfigSent = false
private

Flag indicating whether the histograms and canvases configurations were already published.

Definition at line 173 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun().

◆ fbIgnoreOverlapMs

Bool_t CbmDeviceUnpack::fbIgnoreOverlapMs = false
private

Control flags.

Definition at line 92 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().

◆ fBmonConfig

std::shared_ptr<CbmBmonUnpackConfig> CbmDeviceUnpack::fBmonConfig = nullptr
private

Configuration of the unpackers. Provides the configured algorithm.

Definition at line 140 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun(), DoUnpack(), InitContainers(), SendUnpData(), SetUnpackConfig(), and ~CbmDeviceUnpack().

◆ fbOutputFullTimeSorting

bool CbmDeviceUnpack::fbOutputFullTimeSorting = false
private

Flag to Enable/disable a full time sorting. If off, time sorting happens per link/FLIM source.

Definition at line 100 of file CbmDeviceUnpack.h.

Referenced by DoUnpack(), InitTask(), and unpack().

◆ fbUnpBmon

bool CbmDeviceUnpack::fbUnpBmon = false
private

---> for selective unpacking

Definition at line 106 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().

◆ fbUnpMuch

bool CbmDeviceUnpack::fbUnpMuch = false
private

Definition at line 108 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().

◆ fbUnpPsd

bool CbmDeviceUnpack::fbUnpPsd = true
private

Definition at line 113 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().

◆ fbUnpRich

bool CbmDeviceUnpack::fbUnpRich = true
private

Definition at line 112 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().

◆ fbUnpSts

bool CbmDeviceUnpack::fbUnpSts = true
private

Definition at line 107 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().

◆ fbUnpTof

bool CbmDeviceUnpack::fbUnpTof = true
private

Definition at line 111 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().

◆ fbUnpTrd1D

bool CbmDeviceUnpack::fbUnpTrd1D = true
private

Definition at line 109 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().

◆ fbUnpTrd2D

bool CbmDeviceUnpack::fbUnpTrd2D = true
private

Definition at line 110 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().

◆ fCbmTsEventHeader

CbmTsEventHeader* CbmDeviceUnpack::fCbmTsEventHeader = nullptr
private

Pointer to the Timeslice header conatining start time and index.

Definition at line 150 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun(), DoUnpack(), InitContainers(), and SendUnpData().

◆ fDataSizeMap

std::map<std::uint16_t, std::pair<double, double> > CbmDeviceUnpack::fDataSizeMap = {}
private

Map to store the in and out data amount, key = fkFlesId.

Definition at line 137 of file CbmDeviceUnpack.h.

Referenced by unpack().

◆ fdMaxPublishTime

double_t CbmDeviceUnpack::fdMaxPublishTime = 5.0
private

Definition at line 122 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun(), and InitTask().

◆ fdMinPublishTime

double_t CbmDeviceUnpack::fdMinPublishTime = 0.5
private

Definition at line 121 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun(), and InitTask().

◆ fdMsSizeInNs

Double_t CbmDeviceUnpack::fdMsSizeInNs = 0
private

Definition at line 158 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun().

◆ fDoDebugPrints

bool CbmDeviceUnpack::fDoDebugPrints = false
private

Flag if extended debug output is to be printed or not.

Definition at line 96 of file CbmDeviceUnpack.h.

Referenced by DoUnpack().

◆ fDoPerfProf

bool CbmDeviceUnpack::fDoPerfProf = false
private

Flag if performance profiling should be activated or not.

Definition at line 98 of file CbmDeviceUnpack.h.

Referenced by unpack().

◆ fdTsCoreSizeInNs

Double_t CbmDeviceUnpack::fdTsCoreSizeInNs = -1.0
private

Size of a single MS, [nanoseconds].

Definition at line 159 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun().

◆ fdTsFullSizeInNs

Double_t CbmDeviceUnpack::fdTsFullSizeInNs = -1.0
private

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

Definition at line 161 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun().

◆ fdTsOverSizeInNs

Double_t CbmDeviceUnpack::fdTsOverSizeInNs = -1.0
private

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

Definition at line 160 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun().

◆ fkFlesBmon

std::uint16_t CbmDeviceUnpack::fkFlesBmon = static_cast<std::uint16_t>(fles::Subsystem::BMON)
staticconstexprprivate

Constants.

Definition at line 80 of file CbmDeviceUnpack.h.

Referenced by DoUnpack().

◆ fkFlesMuch

std::uint16_t CbmDeviceUnpack::fkFlesMuch = static_cast<std::uint16_t>(fles::Subsystem::MUCH)
staticconstexprprivate

Definition at line 83 of file CbmDeviceUnpack.h.

Referenced by DoUnpack().

◆ fkFlesMvd

std::uint16_t CbmDeviceUnpack::fkFlesMvd = static_cast<std::uint16_t>(fles::Subsystem::MVD)
staticconstexprprivate

Definition at line 81 of file CbmDeviceUnpack.h.

◆ fkFlesPsd

std::uint16_t CbmDeviceUnpack::fkFlesPsd = static_cast<std::uint16_t>(fles::Subsystem::PSD)
staticconstexprprivate

Definition at line 88 of file CbmDeviceUnpack.h.

Referenced by DoUnpack().

◆ fkFlesRich

std::uint16_t CbmDeviceUnpack::fkFlesRich = static_cast<std::uint16_t>(fles::Subsystem::RICH)
staticconstexprprivate

Definition at line 87 of file CbmDeviceUnpack.h.

Referenced by DoUnpack().

◆ fkFlesSts

std::uint16_t CbmDeviceUnpack::fkFlesSts = static_cast<std::uint16_t>(fles::Subsystem::STS)
staticconstexprprivate

Definition at line 82 of file CbmDeviceUnpack.h.

Referenced by DoUnpack().

◆ fkFlesTof

std::uint16_t CbmDeviceUnpack::fkFlesTof = static_cast<std::uint16_t>(fles::Subsystem::TOF)
staticconstexprprivate

Definition at line 86 of file CbmDeviceUnpack.h.

Referenced by DoUnpack().

◆ fkFlesTrd

std::uint16_t CbmDeviceUnpack::fkFlesTrd = static_cast<std::uint16_t>(fles::Subsystem::TRD)
staticconstexprprivate

Definition at line 84 of file CbmDeviceUnpack.h.

Referenced by DoUnpack().

◆ fkFlesTrd2D

std::uint16_t CbmDeviceUnpack::fkFlesTrd2D = static_cast<std::uint16_t>(fles::Subsystem::TRD2D)
staticconstexprprivate

Definition at line 85 of file CbmDeviceUnpack.h.

Referenced by DoUnpack().

◆ fLastPublishTime

std::chrono::system_clock::time_point CbmDeviceUnpack::fLastPublishTime = std::chrono::system_clock::now()
private

Definition at line 131 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun().

◆ fMuchConfig

std::shared_ptr<CbmMuchUnpackConfig> CbmDeviceUnpack::fMuchConfig = nullptr
private

◆ fNameMap

std::map<std::uint16_t, std::pair<std::string, size_t> > CbmDeviceUnpack::fNameMap = {}
private

Map to store a name for the unpackers and the processed amount of digis, key = fkFlesId.

Definition at line 133 of file CbmDeviceUnpack.h.

Referenced by unpack().

◆ fPsdConfig

std::shared_ptr<CbmPsdUnpackConfig> CbmDeviceUnpack::fPsdConfig = nullptr
private

◆ fRichConfig

std::shared_ptr<CbmRichUnpackConfig> CbmDeviceUnpack::fRichConfig = nullptr
private

◆ fsChannelNameCommands

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

Definition at line 117 of file CbmDeviceUnpack.h.

◆ fsChannelNameDataInput

std::string CbmDeviceUnpack::fsChannelNameDataInput = "ts-request"
private

message queues

Definition at line 115 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun(), and InitTask().

◆ fsChannelNameDataOutput

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

Definition at line 116 of file CbmDeviceUnpack.h.

Referenced by InitTask(), and SendUnpData().

◆ fsChannelNameHistosInput

std::string CbmDeviceUnpack::fsChannelNameHistosInput = "histogram-in"
private

Definition at line 118 of file CbmDeviceUnpack.h.

Referenced by InitTask(), SendHistoConfAndData(), and SendHistograms().

◆ fsSetupName

std::string CbmDeviceUnpack::fsSetupName = "mcbm_beam_2021_07_surveyed"
private

User settings parameters.

Definition at line 103 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().

◆ fStsConfig

std::shared_ptr<CbmStsUnpackConfig> CbmDeviceUnpack::fStsConfig = nullptr
private

◆ fTimeMap

std::map<std::uint16_t, std::pair<double, double> > CbmDeviceUnpack::fTimeMap = {}
private

Map to store the cpu and wall time, key = fkFlesId.

Definition at line 135 of file CbmDeviceUnpack.h.

Referenced by unpack().

◆ fTofConfig

std::shared_ptr<CbmTofUnpackConfig> CbmDeviceUnpack::fTofConfig = nullptr
private

◆ fTrd1DConfig

std::shared_ptr<CbmTrdUnpackConfig> CbmDeviceUnpack::fTrd1DConfig = nullptr
private

◆ fTrd2DConfig

std::shared_ptr<CbmTrdUnpackFaspConfig> CbmDeviceUnpack::fTrd2DConfig = nullptr
private

◆ fTsMetaData

TimesliceMetaData* CbmDeviceUnpack::fTsMetaData
private

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

Definition at line 162 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun(), and SendUnpData().

◆ fulNumMessages

uint64_t CbmDeviceUnpack::fulNumMessages = 0
private

Statistics & first TS rejection.

Definition at line 129 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun().

◆ fulTsCounter

uint64_t CbmDeviceUnpack::fulTsCounter = 0
private

Definition at line 130 of file CbmDeviceUnpack.h.

Referenced by DoUnpack().

◆ fuNbCoreMsPerTs

size_t CbmDeviceUnpack::fuNbCoreMsPerTs = 0
private

TS MetaData storage: stable so should be moved somehow to parameters handling (not transmitted with each TS.

Definition at line 156 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun().

◆ fuNbOverMsPerTs

size_t CbmDeviceUnpack::fuNbOverMsPerTs = 0
private

Definition at line 157 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun().

◆ fuPublishFreqTs

uint32_t CbmDeviceUnpack::fuPublishFreqTs = 100
private

Histograms management.

Definition at line 120 of file CbmDeviceUnpack.h.

Referenced by ConditionalRun(), and InitTask().

◆ fuRunId

uint32_t CbmDeviceUnpack::fuRunId = 1588
private

Definition at line 104 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().

◆ fvpsCanvasConfig

std::vector<std::pair<std::string, std::string> > CbmDeviceUnpack::fvpsCanvasConfig = {}
private

Vector of string pairs with ( CanvasName, CanvasConfig ) to send to the histogram server Format of Can config is "NbPadX(U);NbPadY(U);ConfigPad1(s);....;ConfigPadXY(s)" Format of Pad config is "GrixX(b),GridY(b),LogX(b),LogY(b),LogZ(b),HistoName(s),DrawOptions(s)"

Definition at line 171 of file CbmDeviceUnpack.h.

Referenced by InitHistograms(), and SendHistoConfAndData().

◆ fvpsHistosFolder

std::vector<std::pair<std::string, std::string> > CbmDeviceUnpack::fvpsHistosFolder = {}
private

Vector of string pairs with ( HistoName, FolderPath ) to send to the histogram server.

Definition at line 167 of file CbmDeviceUnpack.h.

Referenced by InitHistograms(), and SendHistoConfAndData().

◆ fvsSetTimeOffs

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

Time offsets.

Definition at line 153 of file CbmDeviceUnpack.h.

Referenced by InitContainers(), and InitTask().


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