CbmRoot
CbmMcbm2018RawConverterSdpb Class Reference

#include <CbmMcbm2018RawConverterSdpb.h>

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

Public Member Functions

 CbmMcbm2018RawConverterSdpb (UInt_t uNbSdpb=1)
 
 CbmMcbm2018RawConverterSdpb (const CbmMcbm2018RawConverterSdpb &)=delete
 
CbmMcbm2018RawConverterSdpb operator= (const CbmMcbm2018RawConverterSdpb &)=delete
 
virtual ~CbmMcbm2018RawConverterSdpb ()
 
virtual Bool_t Init ()
 
virtual Bool_t DoUnpack (const fles::Timeslice &ts, size_t component)
 
virtual void Reset ()
 
virtual void Finish ()
 
void SetParContainers ()
 
Bool_t InitContainers ()
 
Bool_t ReInitContainers ()
 
void AddMsComponentToList (size_t component, UShort_t usDetectorId)
 Temp until we change from CbmMcbmUnpack to something else. More...
 
void SetNbMsInTs (size_t, size_t)
 
void SetIgnoreOverlapMs (Bool_t bFlagIn=kTRUE)
 

Private Attributes

TList * fParCList
 Settings from parameter file. More...
 
CbmMcbm2018StsParfUnpackPar
 
UInt_t fuNrOfDpbs
 
std::map< UInt_t, UInt_t > fDpbIdIndexMap
 Total number of sDPBs to convert. More...
 
std::vector< Bool_t > fvbMaskedComponents
 Control flags. More...
 
std::vector< size_t > fvMsComponentsList
 Parameters related to FLES containers. More...
 
size_t fuNbCoreMsPerTs
 
size_t fuNbOverMsPerTs
 
size_t fuNbMsLoop
 
Bool_t fbIgnoreOverlapMs
 
Double_t fdMsSizeInNs
 /‍** Ignore Overlap Ms: all fuNbOverMsPerTs MS at the end of timeslice **‍/ More...
 
Double_t fdTsCoreSizeInNs
 Size of a single MS, [nanoseconds]. More...
 
Double_t fdTsFullSizeInNs
 Total size of the core MS in a TS, [nanoseconds]. More...
 
ULong64_t fulCurrentTsIdx
 Total size of the core MS in a TS, [nanoseconds]. More...
 
ULong64_t fulCurrentMsIdx
 
Double_t fdTsStartTime
 
Double_t fdTsStopTimeCore
 Time in ns of current TS from the index of the first MS first component. More...
 
Double_t fdMsTime
 End Time in ns of current TS Core from the index of the first MS first component. More...
 
UInt_t fuMsIndex
 Start Time in ns of current MS from its index field in header. More...
 
UInt_t fuCurrentEquipmentId
 
UInt_t fuCurrDpbId
 Current equipment ID, tells from which DPB the current MS is originating. More...
 
UInt_t fuCurrDpbIdx
 Temp holder until Current equipment ID is properly filled in MS. More...
 
std::vector< std::vector< stsxyter::Message > * > fvSdpbMessages
 Index of the DPB from which the MS currently unpacked is coming. More...
 

Static Private Attributes

static const Int_t kiMaxNbFlibLinks = 32
 Map of DPB Identifier to DPB index. More...
 
static const UInt_t kuBytesPerMessage = 4
 

Detailed Description

Definition at line 24 of file CbmMcbm2018RawConverterSdpb.h.

Constructor & Destructor Documentation

◆ CbmMcbm2018RawConverterSdpb() [1/2]

CbmMcbm2018RawConverterSdpb::CbmMcbm2018RawConverterSdpb ( UInt_t  uNbSdpb = 1)

Definition at line 23 of file CbmMcbm2018RawConverterSdpb.cxx.

◆ CbmMcbm2018RawConverterSdpb() [2/2]

CbmMcbm2018RawConverterSdpb::CbmMcbm2018RawConverterSdpb ( const CbmMcbm2018RawConverterSdpb )
delete

◆ ~CbmMcbm2018RawConverterSdpb()

CbmMcbm2018RawConverterSdpb::~CbmMcbm2018RawConverterSdpb ( )
virtual

Definition at line 48 of file CbmMcbm2018RawConverterSdpb.cxx.

Member Function Documentation

◆ AddMsComponentToList()

void CbmMcbm2018RawConverterSdpb::AddMsComponentToList ( size_t  component,
UShort_t  usDetectorId 
)
virtual

Temp until we change from CbmMcbmUnpack to something else.

Check for duplicates and ignore if it is the case

Add to list

Implements CbmMcbmUnpack.

Definition at line 129 of file CbmMcbm2018RawConverterSdpb.cxx.

References fvMsComponentsList.

◆ DoUnpack()

Bool_t CbmMcbm2018RawConverterSdpb::DoUnpack ( const fles::Timeslice &  ts,
size_t  component 
)
virtual

Ignore First TS as first MS is typically corrupt

On first TS, extract the TS parameters from header (by definition stable over time)

Ignore overlap ms if flag set by user

Compute time of TS core end

Loop over registered components

Loop over core microslices (and overlap ones if chosen)

Check if this sDPB ID was declared in parameter file and stop there if not

If first TS being analyzed, we are probably detecting STS/MUCH boards with same sysid => Do not report the MS as bad, just ignore it

If not integer number of message in input buffer, print warning/error

Compute the number of complete messages in the input microslice buffer

Prepare variables for the loop on contents

Fill message

Store the message in the output vector ==> This message is not context free and needs previous ones to be interpreted!!!

Implements CbmMcbmUnpack.

Definition at line 143 of file CbmMcbm2018RawConverterSdpb.cxx.

References fbIgnoreOverlapMs, fdMsSizeInNs, fDpbIdIndexMap, fdTsCoreSizeInNs, fdTsFullSizeInNs, fdTsStartTime, fdTsStopTimeCore, FormatMsHeaderPrintout(), fuCurrDpbId, fuCurrDpbIdx, fuCurrentEquipmentId, fulCurrentMsIdx, fulCurrentTsIdx, fuMsIndex, fuNbCoreMsPerTs, fuNbMsLoop, fuNbOverMsPerTs, fvbMaskedComponents, fvMsComponentsList, fvSdpbMessages, and kuBytesPerMessage.

◆ Finish()

void CbmMcbm2018RawConverterSdpb::Finish ( )
virtual

Implements CbmMcbmUnpack.

Definition at line 266 of file CbmMcbm2018RawConverterSdpb.cxx.

◆ Init()

Bool_t CbmMcbm2018RawConverterSdpb::Init ( )
virtual

Implements CbmMcbmUnpack.

Definition at line 50 of file CbmMcbm2018RawConverterSdpb.cxx.

◆ InitContainers()

Bool_t CbmMcbm2018RawConverterSdpb::InitContainers ( )
virtual

Control flags

Initialize and register output arrays with the FairRoot IO manager

Reimplemented from CbmMcbmUnpack.

Definition at line 83 of file CbmMcbm2018RawConverterSdpb.cxx.

References fDpbIdIndexMap, fUnpackPar, fuNrOfDpbs, fvSdpbMessages, CbmMcbm2018StsPar::GetDpbId(), and CbmMcbm2018StsPar::GetNrOfDpbs().

◆ operator=()

CbmMcbm2018RawConverterSdpb CbmMcbm2018RawConverterSdpb::operator= ( const CbmMcbm2018RawConverterSdpb )
delete

◆ ReInitContainers()

Bool_t CbmMcbm2018RawConverterSdpb::ReInitContainers ( )
virtual

Reimplemented from CbmMcbmUnpack.

Definition at line 123 of file CbmMcbm2018RawConverterSdpb.cxx.

◆ Reset()

void CbmMcbm2018RawConverterSdpb::Reset ( )
virtual

Implements CbmMcbmUnpack.

Definition at line 261 of file CbmMcbm2018RawConverterSdpb.cxx.

References fuNrOfDpbs, and fvSdpbMessages.

◆ SetIgnoreOverlapMs()

void CbmMcbm2018RawConverterSdpb::SetIgnoreOverlapMs ( Bool_t  bFlagIn = kTRUE)
inline

Definition at line 50 of file CbmMcbm2018RawConverterSdpb.h.

References fbIgnoreOverlapMs.

◆ SetNbMsInTs()

void CbmMcbm2018RawConverterSdpb::SetNbMsInTs ( size_t  ,
size_t   
)
inlinevirtual

Implements CbmMcbmUnpack.

Definition at line 48 of file CbmMcbm2018RawConverterSdpb.h.

◆ SetParContainers()

void CbmMcbm2018RawConverterSdpb::SetParContainers ( )
virtual

Implements CbmMcbmUnpack.

Definition at line 57 of file CbmMcbm2018RawConverterSdpb.cxx.

References fParCList, and fUnpackPar.

Member Data Documentation

◆ fbIgnoreOverlapMs

Bool_t CbmMcbm2018RawConverterSdpb::fbIgnoreOverlapMs
private

Definition at line 76 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack(), and SetIgnoreOverlapMs().

◆ fdMsSizeInNs

Double_t CbmMcbm2018RawConverterSdpb::fdMsSizeInNs
private

/‍** Ignore Overlap Ms: all fuNbOverMsPerTs MS at the end of timeslice **‍/

Definition at line 77 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fdMsTime

Double_t CbmMcbm2018RawConverterSdpb::fdMsTime
private

End Time in ns of current TS Core from the index of the first MS first component.

Definition at line 92 of file CbmMcbm2018RawConverterSdpb.h.

◆ fDpbIdIndexMap

std::map<UInt_t, UInt_t> CbmMcbm2018RawConverterSdpb::fDpbIdIndexMap
private

Total number of sDPBs to convert.

Definition at line 61 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack(), and InitContainers().

◆ fdTsCoreSizeInNs

Double_t CbmMcbm2018RawConverterSdpb::fdTsCoreSizeInNs
private

Size of a single MS, [nanoseconds].

Definition at line 79 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fdTsFullSizeInNs

Double_t CbmMcbm2018RawConverterSdpb::fdTsFullSizeInNs
private

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

Definition at line 81 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fdTsStartTime

Double_t CbmMcbm2018RawConverterSdpb::fdTsStartTime
private

Definition at line 88 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fdTsStopTimeCore

Double_t CbmMcbm2018RawConverterSdpb::fdTsStopTimeCore
private

Time in ns of current TS from the index of the first MS first component.

Definition at line 90 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fParCList

TList* CbmMcbm2018RawConverterSdpb::fParCList
private

Settings from parameter file.

Definition at line 56 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by SetParContainers().

◆ fuCurrDpbId

UInt_t CbmMcbm2018RawConverterSdpb::fuCurrDpbId
private

Current equipment ID, tells from which DPB the current MS is originating.

Definition at line 98 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fuCurrDpbIdx

UInt_t CbmMcbm2018RawConverterSdpb::fuCurrDpbIdx
private

Temp holder until Current equipment ID is properly filled in MS.

Definition at line 100 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fuCurrentEquipmentId

UInt_t CbmMcbm2018RawConverterSdpb::fuCurrentEquipmentId
private

Index of current MS within the TS Current data properties

Definition at line 96 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fulCurrentMsIdx

ULong64_t CbmMcbm2018RawConverterSdpb::fulCurrentMsIdx
private

Definition at line 86 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fulCurrentTsIdx

ULong64_t CbmMcbm2018RawConverterSdpb::fulCurrentTsIdx
private

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

Running indices TS/MS info

Definition at line 85 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fuMsIndex

UInt_t CbmMcbm2018RawConverterSdpb::fuMsIndex
private

Start Time in ns of current MS from its index field in header.

Definition at line 93 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fuNbCoreMsPerTs

size_t CbmMcbm2018RawConverterSdpb::fuNbCoreMsPerTs
private

Definition at line 72 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fuNbMsLoop

size_t CbmMcbm2018RawConverterSdpb::fuNbMsLoop
private

Definition at line 74 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fuNbOverMsPerTs

size_t CbmMcbm2018RawConverterSdpb::fuNbOverMsPerTs
private

Definition at line 73 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fUnpackPar

CbmMcbm2018StsPar* CbmMcbm2018RawConverterSdpb::fUnpackPar
private

Definition at line 57 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by InitContainers(), and SetParContainers().

◆ fuNrOfDpbs

UInt_t CbmMcbm2018RawConverterSdpb::fuNrOfDpbs
private

Readout chain dimensions and mapping

Definition at line 59 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by InitContainers(), and Reset().

◆ fvbMaskedComponents

std::vector<Bool_t> CbmMcbm2018RawConverterSdpb::fvbMaskedComponents
private

Control flags.

Definition at line 68 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().

◆ fvMsComponentsList

std::vector<size_t> CbmMcbm2018RawConverterSdpb::fvMsComponentsList
private

Parameters related to FLES containers.

Definition at line 71 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by AddMsComponentToList(), and DoUnpack().

◆ fvSdpbMessages

std::vector<std::vector<stsxyter::Message>*> CbmMcbm2018RawConverterSdpb::fvSdpbMessages
private

Index of the DPB from which the MS currently unpacked is coming.

Output vector

Definition at line 104 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack(), InitContainers(), and Reset().

◆ kiMaxNbFlibLinks

const Int_t CbmMcbm2018RawConverterSdpb::kiMaxNbFlibLinks = 32
staticprivate

Map of DPB Identifier to DPB index.

Constants

Definition at line 64 of file CbmMcbm2018RawConverterSdpb.h.

◆ kuBytesPerMessage

const UInt_t CbmMcbm2018RawConverterSdpb::kuBytesPerMessage = 4
staticprivate

Definition at line 65 of file CbmMcbm2018RawConverterSdpb.h.

Referenced by DoUnpack().


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