CbmRoot
CbmMcbm2018RawConverterGdpb Class Reference

#include <CbmMcbm2018RawConverterGdpb.h>

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

Public Member Functions

 CbmMcbm2018RawConverterGdpb (UInt_t uNbGdpb=1)
 
 CbmMcbm2018RawConverterGdpb (const CbmMcbm2018RawConverterGdpb &)=delete
 
CbmMcbm2018RawConverterGdpb operator= (const CbmMcbm2018RawConverterGdpb &)=delete
 
virtual ~CbmMcbm2018RawConverterGdpb ()
 
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...
 
CbmMcbm2018TofParfUnpackPar
 
UInt_t fuNrOfDpbs
 
std::map< UInt_t, UInt_t > fDpbIdIndexMap
 Total number of gDPBs 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< gdpbv100::Message > * > fvGdpbMessages
 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 = 8
 

Detailed Description

Definition at line 24 of file CbmMcbm2018RawConverterGdpb.h.

Constructor & Destructor Documentation

◆ CbmMcbm2018RawConverterGdpb() [1/2]

CbmMcbm2018RawConverterGdpb::CbmMcbm2018RawConverterGdpb ( UInt_t  uNbGdpb = 1)

Definition at line 23 of file CbmMcbm2018RawConverterGdpb.cxx.

◆ CbmMcbm2018RawConverterGdpb() [2/2]

CbmMcbm2018RawConverterGdpb::CbmMcbm2018RawConverterGdpb ( const CbmMcbm2018RawConverterGdpb )
delete

◆ ~CbmMcbm2018RawConverterGdpb()

CbmMcbm2018RawConverterGdpb::~CbmMcbm2018RawConverterGdpb ( )
virtual

Definition at line 48 of file CbmMcbm2018RawConverterGdpb.cxx.

Member Function Documentation

◆ AddMsComponentToList()

void CbmMcbm2018RawConverterGdpb::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 CbmMcbm2018RawConverterGdpb.cxx.

References fvMsComponentsList.

◆ DoUnpack()

Bool_t CbmMcbm2018RawConverterGdpb::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 gDPB ID was declared in parameter file and stop there if not

Try to get it from the second message in buffer (first is epoch cycle without gDPB ID) TODO!!!!

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

Catch the Epoch cycle block which is always the first 64b of the MS

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 CbmMcbm2018RawConverterGdpb.cxx.

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

◆ Finish()

void CbmMcbm2018RawConverterGdpb::Finish ( )
virtual

Implements CbmMcbmUnpack.

Definition at line 269 of file CbmMcbm2018RawConverterGdpb.cxx.

◆ Init()

Bool_t CbmMcbm2018RawConverterGdpb::Init ( )
virtual

Implements CbmMcbmUnpack.

Definition at line 50 of file CbmMcbm2018RawConverterGdpb.cxx.

◆ InitContainers()

Bool_t CbmMcbm2018RawConverterGdpb::InitContainers ( )
virtual

Control flags

Initialize and register output arrays with the FairRoot IO manager

Reimplemented from CbmMcbmUnpack.

Definition at line 83 of file CbmMcbm2018RawConverterGdpb.cxx.

References fDpbIdIndexMap, fUnpackPar, fuNrOfDpbs, fvGdpbMessages, CbmMcbm2018TofPar::GetGdpbId(), and CbmMcbm2018TofPar::GetNrOfGdpbs().

◆ operator=()

CbmMcbm2018RawConverterGdpb CbmMcbm2018RawConverterGdpb::operator= ( const CbmMcbm2018RawConverterGdpb )
delete

◆ ReInitContainers()

Bool_t CbmMcbm2018RawConverterGdpb::ReInitContainers ( )
virtual

Reimplemented from CbmMcbmUnpack.

Definition at line 123 of file CbmMcbm2018RawConverterGdpb.cxx.

◆ Reset()

void CbmMcbm2018RawConverterGdpb::Reset ( )
virtual

Implements CbmMcbmUnpack.

Definition at line 264 of file CbmMcbm2018RawConverterGdpb.cxx.

References fuNrOfDpbs, and fvGdpbMessages.

◆ SetIgnoreOverlapMs()

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

Definition at line 50 of file CbmMcbm2018RawConverterGdpb.h.

References fbIgnoreOverlapMs.

◆ SetNbMsInTs()

void CbmMcbm2018RawConverterGdpb::SetNbMsInTs ( size_t  ,
size_t   
)
inlinevirtual

Implements CbmMcbmUnpack.

Definition at line 48 of file CbmMcbm2018RawConverterGdpb.h.

◆ SetParContainers()

void CbmMcbm2018RawConverterGdpb::SetParContainers ( )
virtual

Implements CbmMcbmUnpack.

Definition at line 57 of file CbmMcbm2018RawConverterGdpb.cxx.

References fParCList, and fUnpackPar.

Member Data Documentation

◆ fbIgnoreOverlapMs

Bool_t CbmMcbm2018RawConverterGdpb::fbIgnoreOverlapMs
private

Definition at line 76 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack(), and SetIgnoreOverlapMs().

◆ fdMsSizeInNs

Double_t CbmMcbm2018RawConverterGdpb::fdMsSizeInNs
private

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

Definition at line 77 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fdMsTime

Double_t CbmMcbm2018RawConverterGdpb::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 CbmMcbm2018RawConverterGdpb.h.

◆ fDpbIdIndexMap

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

Total number of gDPBs to convert.

Definition at line 61 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack(), and InitContainers().

◆ fdTsCoreSizeInNs

Double_t CbmMcbm2018RawConverterGdpb::fdTsCoreSizeInNs
private

Size of a single MS, [nanoseconds].

Definition at line 79 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fdTsFullSizeInNs

Double_t CbmMcbm2018RawConverterGdpb::fdTsFullSizeInNs
private

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

Definition at line 81 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fdTsStartTime

Double_t CbmMcbm2018RawConverterGdpb::fdTsStartTime
private

Definition at line 88 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fdTsStopTimeCore

Double_t CbmMcbm2018RawConverterGdpb::fdTsStopTimeCore
private

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

Definition at line 90 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fParCList

TList* CbmMcbm2018RawConverterGdpb::fParCList
private

Settings from parameter file.

Definition at line 56 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by SetParContainers().

◆ fuCurrDpbId

UInt_t CbmMcbm2018RawConverterGdpb::fuCurrDpbId
private

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

Definition at line 98 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fuCurrDpbIdx

UInt_t CbmMcbm2018RawConverterGdpb::fuCurrDpbIdx
private

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

Definition at line 100 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fuCurrentEquipmentId

UInt_t CbmMcbm2018RawConverterGdpb::fuCurrentEquipmentId
private

Index of current MS within the TS Current data properties

Definition at line 96 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fulCurrentMsIdx

ULong64_t CbmMcbm2018RawConverterGdpb::fulCurrentMsIdx
private

Definition at line 86 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fulCurrentTsIdx

ULong64_t CbmMcbm2018RawConverterGdpb::fulCurrentTsIdx
private

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

Running indices TS/MS info

Definition at line 85 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fuMsIndex

UInt_t CbmMcbm2018RawConverterGdpb::fuMsIndex
private

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

Definition at line 93 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fuNbCoreMsPerTs

size_t CbmMcbm2018RawConverterGdpb::fuNbCoreMsPerTs
private

Definition at line 72 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fuNbMsLoop

size_t CbmMcbm2018RawConverterGdpb::fuNbMsLoop
private

Definition at line 74 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fuNbOverMsPerTs

size_t CbmMcbm2018RawConverterGdpb::fuNbOverMsPerTs
private

Definition at line 73 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fUnpackPar

CbmMcbm2018TofPar* CbmMcbm2018RawConverterGdpb::fUnpackPar
private

Definition at line 57 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by InitContainers(), and SetParContainers().

◆ fuNrOfDpbs

UInt_t CbmMcbm2018RawConverterGdpb::fuNrOfDpbs
private

Readout chain dimensions and mapping

Definition at line 59 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by InitContainers(), and Reset().

◆ fvbMaskedComponents

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

Control flags.

Definition at line 68 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().

◆ fvGdpbMessages

std::vector<std::vector<gdpbv100::Message>*> CbmMcbm2018RawConverterGdpb::fvGdpbMessages
private

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

Output vector

Definition at line 104 of file CbmMcbm2018RawConverterGdpb.h.

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

◆ fvMsComponentsList

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

Parameters related to FLES containers.

Definition at line 71 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by AddMsComponentToList(), and DoUnpack().

◆ kiMaxNbFlibLinks

const Int_t CbmMcbm2018RawConverterGdpb::kiMaxNbFlibLinks = 32
staticprivate

Map of DPB Identifier to DPB index.

Constants

Definition at line 64 of file CbmMcbm2018RawConverterGdpb.h.

◆ kuBytesPerMessage

const UInt_t CbmMcbm2018RawConverterGdpb::kuBytesPerMessage = 8
staticprivate

Definition at line 65 of file CbmMcbm2018RawConverterGdpb.h.

Referenced by DoUnpack().


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