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

#include <CbmTrdUnpackAlgoR.h>

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

Public Member Functions

 CbmTrdUnpackAlgoR ()
 Create the Cbm Trd Unpack AlgoBase object.
 
virtual ~CbmTrdUnpackAlgoR ()
 Destroy the Cbm Trd Unpack Task object.
 
 CbmTrdUnpackAlgoR (const CbmTrdUnpackAlgoR &)=delete
 Copy constructor - not implemented.
 
CbmTrdUnpackAlgoRoperator= (const CbmTrdUnpackAlgoR &)=delete
 Assignment operator - not implemented.
 
virtual std::vector< std::pair< std::string, std::shared_ptr< FairParGenericSet > > > * GetParContainerRequest (std::string geoTag, std::uint32_t runId)
 Get the requested parameter containers. Return the required parameter containers together with the paths to the ascii files to.
 
void SetMonitor (std::shared_ptr< CbmTrdUnpackMonitor > monitor)
 Set a predefined monitor.
 
void SetRawToDigiMethod (std::shared_ptr< CbmTrdRawToDigiBaseR > value)
 Set the Raw To Digi Method.
 
void SetSpadicObject (std::shared_ptr< CbmTrdSpadic > value)
 Set the Spadic Object.
 
void SetElinkTimeOffsetMap (std::map< std::uint32_t, std::vector< std::int32_t > > map)
 Register a time offeset to be substracted from the digis which come from a specific CRI.
 
std::int32_t GetElinkTimeOffset (std::uint32_t criid, std::uint8_t elinkid)
 Get the time offeset to be substracted from the digis which come from a specific CRI.
 

Protected Member Functions

Spadic::MsInfoType digestBufInfoFlags (const std::uint32_t frame, std::uint16_t criId, std::uint8_t crobId, std::uint16_t elinkId)
 Digest the aditional flags stored in the 4 "cccc" bits of the EPO messages.
 
void digestInfoMsg (const std::uint32_t frame, std::uint16_t criId, std::uint8_t crobId, std::uint16_t elinkId)
 Digest a info message run all default information forwarding from the msg.
 
void digestMsFlags (const std::uint16_t flags, std::uint16_t criId, std::uint8_t crobId)
 Digest the flags of the currently unpacked µSlice.
 
std::int16_t extractSample (size_t *adcbuffer, size_t *nadcbits)
 Extract all adc samples from a given adcbuffer container.
 
std::float_t extractAvgSample (size_t *adcbuffer, size_t *nadcbits)
 Extract the baseline average sample from a given adcbuffer. Depending on the Spadic settings sample-0 is a plain sample or the averaged baseline calculation. The latter is not a 9 bit signed integer, but a 9 bit floating point number 7 digits before the point and 2 afterwards.
 
void finishDerived ()
 Additional explicit finish function of this algo implementation.
 
Spadic::MsInfoType getInfoType (const std::uint32_t frame, std::uint16_t criId, std::uint8_t crobId, std::uint16_t elinkId)
 Identify the InfoType of a 64bit InfoMessage word inside a Microslice.
 
Spadic::MsMessageType getMessageType (const std::uint32_t frame)
 Identify the message type of a given 32bit frame inside a Microslice.
 
std::uint8_t getTsMsb (const std::uint32_t frame)
 Get the ts_msb information from the TS_MSB(kEPO) frame. We take the first of the 3 The 3 redundant TS_MSB sets are already compared at the FPGA level.
 
virtual CbmTrdRawMessageSpadic makeRaw (const std::uint32_t frame, std::uint16_t criId, std::uint8_t crobId, std::uint16_t elinkId, std::uint8_t istream)
 Create a CbmTrdRawMessageSpadic from the hit message input.
 
void makeDigi (CbmTrdRawMessageSpadic raw)
 Create an actual digi from the raw message.
 
void makeDigi (Spadic::FexWord< 0x10 > fw, std::uint32_t criid)
 Create an actual digi from the fex message.
 
bool setDerivedTsParameters (size_t)
 Up to now we do not need this function for this algorithm.
 
bool unpack (const fles::Timeslice *ts, std::uint16_t icomp, UInt_t imslice)
 Unpack a given microslice.
 
bool unpackRaw (const fles::MicrosliceDescriptor msdesc, const size_t *mscontent)
 
template<std::uint8_t sys_ver>
bool unpackFex (const fles::MicrosliceDescriptor msdesc, const size_t *mscontent)
 
void digestOutput (std::unique_ptr< CbmTrdDigi > digi, CbmTrdRawMessageSpadic raw)
 Handle the output created by the explicit algorithms. E.g. write to output vectors.
 
void finish ()
 Finish function for this algorithm base clase.
 
virtual std::uint32_t getAsicAddress (std::uint32_t criid, std::uint32_t crobid, std::uint32_t elinkid)
 Get the Asic Address (CbmAddress scheme) for the given hardware Ids.
 
std::uint32_t getChannelId (std::uint32_t asicaddress, std::uint32_t elinkid, std::uint32_t elinkchannelid)
 Get the Channel Id (CbmAddress scheme) for the given hardware Ids.
 
virtual Bool_t init ()
 Additional initialisation function for all BaseR derived algorithms.
 
Bool_t initParSet (FairParGenericSet *parset)
 Handles the distribution of the hidden derived classes to their explicit functions.
 
Bool_t initParSet (CbmTrdParSetAsic *parset)
 Transfer parameters from ParSetAsic container to members.
 
Bool_t initParSet (CbmTrdParSetDigi *parset)
 Transfer parameters from ParSetDigi container to members.
 
Bool_t initParSet (CbmMcbm2020TrdTshiftPar *parset)
 Transfer parameters from CbmMcbm2020TrdTshiftPar container to members.
 

Protected Attributes

std::vector< std::uint8_t > fNrTsMsbVec = {}
 Counter for the ts_msb used to reconstruct the time.
 
size_t fNrNonMajorTsMsb = 0
 Counter for the ts_msb used to reconstruct the time.
 
size_t fNrElinkMis = 0
 Number of SOM to RDA/EOM mismatches.
 
size_t fNrCorruptEom = 0
 Number of corrupted EOM frames.
 
size_t fMsStartTimeRel = 0
 Start time of the current µSlice relative to the Timeslice start time in ns.
 
size_t fMsStartTimeRelCC = 0
 Start time of the current µSlice relative to the Timeslice start time in Spadic CC.
 
std::shared_ptr< CbmTrdUnpackMonitorfMonitor = nullptr
 Potential (online) monitor for the unpacking process.
 
std::shared_ptr< CbmTrdSpadicfSpadic = nullptr
 Spadic software reprensentation object.
 
std::shared_ptr< CbmTrdRawToDigiBaseRfRTDMethod = nullptr
 raw to digi extraction method, set in the task
 
std::map< size_t, Int_t > fSpadicAddressMap = {}
 Map to retrieve asic address from CriId/CrobId/ElinkId (see CbmTrdHardwareSetupR)
 
std::map< Int_t, std::vector< Int_t > > fAsicChannelMap = {}
 Map to retrieve module channelId from asicAddress and asicChannel.
 
std::map< size_t, std::vector< Int_t > > fTimeshiftsMap = {}
 Map containing the timeshift parameters for the correction of the µSlice timeshifts. The keys are the tsIdx, if no key is found, the shifts of the previous tsIdx are used again.
 
Bool_t fIsFirstChannelsElinkEven = kFALSE
 Define if the first 16 channels (00..15) are found on the even (set true) or odd (false) eLinkId. Default for mCbm2020 is false thus, initialized as false.
 
size_t fNrWildRda = 0
 Number of rda frames outside of a SOM frame range.
 
size_t fNrWildEom = 0
 Number of eom frames outside of a SOM frame range.
 
size_t fNrMissingEom = 0
 Number of missing EOM frames to finish a SOM frame.
 
size_t fNrWildNul = 0
 Number of wild null words, should only appear at the end of a µSlice.
 
size_t fNrUnknownWords = 0
 Number of unknown words.
 
size_t fTsMsbLengthCC = fTsMsbLength / CbmTrdSpadic::GetClockCycle()
 length of one ts_msb in [cc]
 
std::map< std::uint32_t, std::vector< std::int32_t > > fElinkTimeOffsetMap
 Map to store time offsets for each CRI&Elink combination.
 

Static Protected Attributes

static const std::uint8_t fBytesPerWord = 8
 Bytes per spadic frame stored in the microslices.
 
static const std::uint8_t fStreamsPerWord = 2
 Number of streams per word For the msg format used from 2021 ongoing we have 2 parallel streams per word. All data from eLinks 0..20 go to one stream and 21..41 to the other.
 
static constexpr std::uint16_t fTsMsbLength = 16000
 length of one ts_msb in [ns]
 

Detailed Description

Definition at line 38 of file CbmTrdUnpackAlgoR.h.

Constructor & Destructor Documentation

◆ CbmTrdUnpackAlgoR() [1/2]

CbmTrdUnpackAlgoR::CbmTrdUnpackAlgoR ( )

Create the Cbm Trd Unpack AlgoBase object.

Definition at line 23 of file CbmTrdUnpackAlgoR.cxx.

◆ ~CbmTrdUnpackAlgoR()

CbmTrdUnpackAlgoR::~CbmTrdUnpackAlgoR ( )
virtual

Destroy the Cbm Trd Unpack Task object.

Definition at line 25 of file CbmTrdUnpackAlgoR.cxx.

◆ CbmTrdUnpackAlgoR() [2/2]

CbmTrdUnpackAlgoR::CbmTrdUnpackAlgoR ( const CbmTrdUnpackAlgoR & )
delete

Copy constructor - not implemented.

Member Function Documentation

◆ digestBufInfoFlags()

Spadic::MsInfoType CbmTrdUnpackAlgoR::digestBufInfoFlags ( const std::uint32_t frame,
std::uint16_t criId,
std::uint8_t crobId,
std::uint16_t elinkId )
protected

Digest the aditional flags stored in the 4 "cccc" bits of the EPO messages.

Parameters
frame
criIdid of the cri that send the µSlice
criobIdid of the crob that send the µSlice (currently not used set to 0 062021 PR)
elinkIdid of the elink from which the info message frame came
Returns
Spadic::MsInfoType

Definition at line 58 of file CbmTrdUnpackAlgoR.cxx.

References CbmTrdUnpackAlgoBaseR::fMonitor, CbmTrdUnpackAlgoBaseR::getAsicAddress(), Spadic::kChannelBuf, Spadic::kChannelBufM, and Spadic::kOrdFifoBuf.

Referenced by getInfoType().

◆ digestInfoMsg()

void CbmTrdUnpackAlgoR::digestInfoMsg ( const std::uint32_t frame,
std::uint16_t criId,
std::uint8_t crobId,
std::uint16_t elinkId )
protected

Digest a info message run all default information forwarding from the msg.

Parameters
frame
criIdid of the cri that send the µSlice
criobIdid of the crob that send the µSlice (currently not used set to 0 062021 PR)
elinkIdid of the elink from which the info message frame came

Save info message if needed.

Definition at line 76 of file CbmTrdUnpackAlgoR.cxx.

References CbmTrdUnpackAlgoBaseR::fMonitor, CbmTrdUnpackAlgoBaseR::getAsicAddress(), and getInfoType().

Referenced by unpackRaw().

◆ digestMsFlags()

void CbmTrdUnpackAlgoR::digestMsFlags ( const std::uint16_t flags,
std::uint16_t criId,
std::uint8_t crobId )
protected

Digest the flags of the currently unpacked µSlice.

Parameters
flagsflags stored in the µSlice descriptor
criIdid of the cri that send the µSlice
criobIdid of the crob that send the µSlice (currently not used set to 0 062021 PR)

Definition at line 95 of file CbmTrdUnpackAlgoR.cxx.

References CbmTrdUnpackAlgoBaseR::fMonitor, and CbmTrdUnpackAlgoBaseR::getAsicAddress().

Referenced by unpack().

◆ digestOutput()

void CbmTrdUnpackAlgoBaseR::digestOutput ( std::unique_ptr< CbmTrdDigi > digi,
CbmTrdRawMessageSpadic raw )
protectedinherited

Handle the output created by the explicit algorithms. E.g. write to output vectors.

Parameters
digi
raw

Definition at line 25 of file CbmTrdUnpackAlgoBaseR.cxx.

References CbmTrdUnpackAlgoBaseR::fMonitor.

Referenced by CbmTrdUnpackAlgoLegacy2020R::makeDigi(), and makeDigi().

◆ extractAvgSample()

std::float_t CbmTrdUnpackAlgoR::extractAvgSample ( size_t * adcbuffer,
size_t * nadcbits )
protected

Extract the baseline average sample from a given adcbuffer. Depending on the Spadic settings sample-0 is a plain sample or the averaged baseline calculation. The latter is not a 9 bit signed integer, but a 9 bit floating point number 7 digits before the point and 2 afterwards.

Parameters
[in]adcbuffer
[in,out]nadcbits
Returns
std::float_t

Definition at line 127 of file CbmTrdUnpackAlgoR.cxx.

Referenced by unpackRaw().

◆ extractSample()

std::int16_t CbmTrdUnpackAlgoR::extractSample ( size_t * adcbuffer,
size_t * nadcbits )
protected

Extract all adc samples from a given adcbuffer container.

Extract one adc sample from a given adcbuffer

Parameters
[in]adcbuffer
[in,out]nadcbits
Returns
std::int16_t

Definition at line 155 of file CbmTrdUnpackAlgoR.cxx.

Referenced by unpackRaw().

◆ finish()

void CbmTrdUnpackAlgoBaseR::finish ( )
inlineprotectedinherited

Finish function for this algorithm base clase.

Definition at line 103 of file CbmTrdUnpackAlgoBaseR.h.

References CbmTrdUnpackAlgoBaseR::finishDerived(), and CbmTrdUnpackAlgoBaseR::fMonitor.

◆ finishDerived()

void CbmTrdUnpackAlgoR::finishDerived ( )
protectedvirtual

◆ getAsicAddress()

std::uint32_t CbmTrdUnpackAlgoBaseR::getAsicAddress ( std::uint32_t criid,
std::uint32_t crobid,
std::uint32_t elinkid )
protectedvirtualinherited

Get the Asic Address (CbmAddress scheme) for the given hardware Ids.

Parameters
criid
crobid
elinkid
Returns
std::uint32_t

Definition at line 43 of file CbmTrdUnpackAlgoBaseR.cxx.

References CbmTrdUnpackAlgoBaseR::fSpadicAddressMap, CbmTrdParAsic::kCriIdPosition, and CbmTrdParAsic::kCrobIdPosition.

Referenced by digestBufInfoFlags(), digestInfoMsg(), digestMsFlags(), makeDigi(), and makeDigi().

◆ getChannelId()

std::uint32_t CbmTrdUnpackAlgoBaseR::getChannelId ( std::uint32_t asicaddress,
std::uint32_t elinkid,
std::uint32_t elinkchannelid )
protectedinherited

Get the Channel Id (CbmAddress scheme) for the given hardware Ids.

Parameters
asicaddress
elinkid
elinkchannelid
Returns
std::uint32_t

Definition at line 60 of file CbmTrdUnpackAlgoBaseR.cxx.

References CbmTrdUnpackAlgoBaseR::fAsicChannelMap, CbmTrdUnpackAlgoBaseR::fIsFirstChannelsElinkEven, and CbmTrdSpadic::GetNrChannels().

Referenced by makeDigi(), and makeDigi().

◆ GetElinkTimeOffset()

std::int32_t CbmTrdUnpackAlgoBaseR::GetElinkTimeOffset ( std::uint32_t criid,
std::uint8_t elinkid )
inlineinherited

Get the time offeset to be substracted from the digis which come from a specific CRI.

Parameters
criid

Definition at line 88 of file CbmTrdUnpackAlgoBaseR.h.

References CbmTrdUnpackAlgoBaseR::fElinkTimeOffsetMap.

Referenced by makeDigi(), and makeDigi().

◆ getInfoType()

Spadic::MsInfoType CbmTrdUnpackAlgoR::getInfoType ( const std::uint32_t frame,
std::uint16_t criId,
std::uint8_t crobId,
std::uint16_t elinkId )
protected

Identify the InfoType of a 64bit InfoMessage word inside a Microslice.

Definition at line 185 of file CbmTrdUnpackAlgoR.cxx.

References digestBufInfoFlags(), Spadic::kBOM, Spadic::kBUF, Spadic::kMIS, Spadic::kMSB, and Spadic::kUNU.

Referenced by digestInfoMsg().

◆ getMessageType()

Spadic::MsMessageType CbmTrdUnpackAlgoR::getMessageType ( const std::uint32_t frame)
protected

Identify the message type of a given 32bit frame inside a Microslice.

Definition at line 225 of file CbmTrdUnpackAlgoR.cxx.

References Spadic::kEOM, Spadic::kEPO, Spadic::kINF, Spadic::kNUL, Spadic::kRDA, Spadic::kSOM, and Spadic::kUNK.

Referenced by unpackRaw().

◆ GetParContainerRequest()

std::vector< std::pair< std::string, std::shared_ptr< FairParGenericSet > > > * CbmTrdUnpackAlgoR::GetParContainerRequest ( std::string geoTag,
std::uint32_t runId )
virtual

Get the requested parameter containers. Return the required parameter containers together with the paths to the ascii files to.

Parameters
[in]std::stringgeoTag as used in CbmSetup
[in]std::uint32_trunId for runwise defined parameters
Returns
fParContVec

Definition at line 30 of file CbmTrdUnpackAlgoR.cxx.

References CbmTrdUnpackAlgoBaseR::fMonitor.

◆ getTsMsb()

std::uint8_t CbmTrdUnpackAlgoR::getTsMsb ( const std::uint32_t frame)
protected

Get the ts_msb information from the TS_MSB(kEPO) frame. We take the first of the 3 The 3 redundant TS_MSB sets are already compared at the FPGA level.

Parameters
frame
Returns
ts_msb value

Definition at line 259 of file CbmTrdUnpackAlgoR.cxx.

References fNrNonMajorTsMsb.

Referenced by unpackRaw().

◆ init()

Bool_t CbmTrdUnpackAlgoBaseR::init ( )
protectedvirtualinherited

Additional initialisation function for all BaseR derived algorithms.

Returns
Bool_t initOk

Definition at line 145 of file CbmTrdUnpackAlgoBaseR.cxx.

References CbmTrdUnpackAlgoBaseR::fMonitor, CbmTrdUnpackAlgoBaseR::fRTDMethod, and CbmTrdUnpackAlgoBaseR::fSpadic.

◆ initParSet() [1/4]

Bool_t CbmTrdUnpackAlgoBaseR::initParSet ( CbmMcbm2020TrdTshiftPar * parset)
protectedinherited

Transfer parameters from CbmMcbm2020TrdTshiftPar container to members.

These are mCBM 2020 specific parameters needed to correct in run timeshifts.

Parameters
parset
Returns
Bool_t initOk

Definition at line 134 of file CbmTrdUnpackAlgoBaseR.cxx.

References CbmTrdUnpackAlgoBaseR::fTimeshiftsMap, and CbmMcbm2020TrdTshiftPar::GetTimeshiftsMap().

◆ initParSet() [2/4]

Bool_t CbmTrdUnpackAlgoBaseR::initParSet ( CbmTrdParSetAsic * parset)
protectedinherited

Transfer parameters from ParSetAsic container to members.

Currently we mainly transfer here the addressing, other parameters are yet to come.

Parameters
parset
Returns
Bool_t initOk

Definition at line 91 of file CbmTrdUnpackAlgoBaseR.cxx.

References CbmTrdHardwareSetupR::CreateAsicChannelMap(), CbmTrdHardwareSetupR::CreateHwToSwAsicAddressTranslatorMap(), CbmTrdUnpackAlgoBaseR::fAsicChannelMap, and CbmTrdUnpackAlgoBaseR::fSpadicAddressMap.

◆ initParSet() [3/4]

Bool_t CbmTrdUnpackAlgoBaseR::initParSet ( CbmTrdParSetDigi * parset)
protectedinherited

Transfer parameters from ParSetDigi container to members.

The monitor needs this to extract module informations, e.g. ncols and nrows.

Parameters
parset
Returns
Bool_t initOk

Definition at line 115 of file CbmTrdUnpackAlgoBaseR.cxx.

References CbmTrdUnpackAlgoBaseR::fMonitor.

◆ initParSet() [4/4]

Bool_t CbmTrdUnpackAlgoBaseR::initParSet ( FairParGenericSet * parset)
protectedinherited

Handles the distribution of the hidden derived classes to their explicit functions.

Parameters
parset
Returns
Bool_t initOk

Definition at line 73 of file CbmTrdUnpackAlgoBaseR.cxx.

References CbmTrdUnpackAlgoBaseR::initParSet().

Referenced by CbmTrdUnpackAlgoBaseR::initParSet().

◆ makeDigi() [1/2]

◆ makeDigi() [2/2]

void CbmTrdUnpackAlgoR::makeDigi ( Spadic::FexWord< 0x10 > fw,
std::uint32_t criid )
protected

◆ makeRaw()

CbmTrdRawMessageSpadic CbmTrdUnpackAlgoR::makeRaw ( const std::uint32_t frame,
std::uint16_t criId,
std::uint8_t crobId,
std::uint16_t elinkId,
std::uint8_t istream )
protectedvirtual

Create a CbmTrdRawMessageSpadic from the hit message input.

Parameters
word
criIdid of the cri that send the µSlice
criobIdid of the crob that send the µSlice (currently not used set to 0 062021 PR)
istream
Returns
CbmTrdRawMessageSpadic
Todo
Check if we can get rid of the future obsolete microslice stuff.

Definition at line 359 of file CbmTrdUnpackAlgoR.cxx.

References fMsStartTimeRelCC, fNrTsMsbVec, and CbmTrdUnpackAlgoBaseR::fTsMsbLengthCC.

Referenced by unpackRaw().

◆ operator=()

CbmTrdUnpackAlgoR & CbmTrdUnpackAlgoR::operator= ( const CbmTrdUnpackAlgoR & )
delete

Assignment operator - not implemented.

◆ setDerivedTsParameters()

bool CbmTrdUnpackAlgoR::setDerivedTsParameters ( size_t )
inlineprotected

Up to now we do not need this function for this algorithm.

Definition at line 169 of file CbmTrdUnpackAlgoR.h.

◆ SetElinkTimeOffsetMap()

void CbmTrdUnpackAlgoBaseR::SetElinkTimeOffsetMap ( std::map< std::uint32_t, std::vector< std::int32_t > > map)
inlineinherited

Register a time offeset to be substracted from the digis which come from a specific CRI.

Parameters
map

Definition at line 81 of file CbmTrdUnpackAlgoBaseR.h.

References CbmTrdUnpackAlgoBaseR::fElinkTimeOffsetMap.

◆ SetMonitor()

void CbmTrdUnpackAlgoBaseR::SetMonitor ( std::shared_ptr< CbmTrdUnpackMonitor > monitor)
inlineinherited

Set a predefined monitor.

Parameters
monitorpredefined unpacking monitor

Definition at line 60 of file CbmTrdUnpackAlgoBaseR.h.

References CbmTrdUnpackAlgoBaseR::fMonitor.

◆ SetRawToDigiMethod()

void CbmTrdUnpackAlgoBaseR::SetRawToDigiMethod ( std::shared_ptr< CbmTrdRawToDigiBaseR > value)
inlineinherited

Set the Raw To Digi Method.

Parameters
value

Definition at line 67 of file CbmTrdUnpackAlgoBaseR.h.

References CbmTrdUnpackAlgoBaseR::fRTDMethod.

◆ SetSpadicObject()

void CbmTrdUnpackAlgoBaseR::SetSpadicObject ( std::shared_ptr< CbmTrdSpadic > value)
inlineinherited

Set the Spadic Object.

Parameters
value

Definition at line 74 of file CbmTrdUnpackAlgoBaseR.h.

References CbmTrdUnpackAlgoBaseR::fSpadic.

◆ unpack()

bool CbmTrdUnpackAlgoR::unpack ( const fles::Timeslice * ts,
std::uint16_t icomp,
UInt_t imslice )
protected

Unpack a given microslice.

Parameters
tstimeslice pointer
icompindex to the component to be unpacked
imsliceindex of the microslice to be unpacked
Returns
true
false
Remarks
The content of the µslice can only be accessed via the timeslice. Hence, we need to pass the pointer to the full timeslice

Definition at line 381 of file CbmTrdUnpackAlgoR.cxx.

References digestMsFlags(), CbmTrdUnpackAlgoBaseR::fMonitor, fMsStartTimeRel, fMsStartTimeRelCC, CbmTrdUnpackAlgoBaseR::fSpadic, unpackFex(), and unpackRaw().

◆ unpackFex()

template<std::uint8_t sys_ver>
template bool CbmTrdUnpackAlgoR::unpackFex< 0x10 > ( const fles::MicrosliceDescriptor msdesc,
const size_t * mscontent )
protected

Definition at line 610 of file CbmTrdUnpackAlgoR.cxx.

References Spadic::BytesPerWord(), and makeDigi().

Referenced by unpack().

◆ unpackRaw()

Member Data Documentation

◆ fAsicChannelMap

std::map<Int_t, std::vector<Int_t> > CbmTrdUnpackAlgoBaseR::fAsicChannelMap = {}
protectedinherited

Map to retrieve module channelId from asicAddress and asicChannel.

Definition at line 196 of file CbmTrdUnpackAlgoBaseR.h.

Referenced by CbmTrdUnpackAlgoBaseR::getChannelId(), CbmTrdUnpackAlgoBaseR::initParSet(), and CbmTrdUnpackAlgoLegacy2020R::makeDigi().

◆ fBytesPerWord

const std::uint8_t CbmTrdUnpackAlgoR::fBytesPerWord = 8
staticprotected

Bytes per spadic frame stored in the microslices.

Definition at line 211 of file CbmTrdUnpackAlgoR.h.

Referenced by unpackRaw().

◆ fElinkTimeOffsetMap

std::map<std::uint32_t, std::vector<std::int32_t> > CbmTrdUnpackAlgoBaseR::fElinkTimeOffsetMap
protectedinherited

Map to store time offsets for each CRI&Elink combination.

Definition at line 227 of file CbmTrdUnpackAlgoBaseR.h.

Referenced by CbmTrdUnpackAlgoBaseR::GetElinkTimeOffset(), and CbmTrdUnpackAlgoBaseR::SetElinkTimeOffsetMap().

◆ fIsFirstChannelsElinkEven

Bool_t CbmTrdUnpackAlgoBaseR::fIsFirstChannelsElinkEven = kFALSE
protectedinherited

Define if the first 16 channels (00..15) are found on the even (set true) or odd (false) eLinkId. Default for mCbm2020 is false thus, initialized as false.

Definition at line 203 of file CbmTrdUnpackAlgoBaseR.h.

Referenced by CbmTrdUnpackAlgoBaseR::getChannelId(), and CbmTrdUnpackAlgoLegacy2020R::makeDigi().

◆ fMonitor

◆ fMsStartTimeRel

size_t CbmTrdUnpackAlgoR::fMsStartTimeRel = 0
protected

Start time of the current µSlice relative to the Timeslice start time in ns.

Definition at line 204 of file CbmTrdUnpackAlgoR.h.

Referenced by makeDigi(), and unpack().

◆ fMsStartTimeRelCC

size_t CbmTrdUnpackAlgoR::fMsStartTimeRelCC = 0
protected

Start time of the current µSlice relative to the Timeslice start time in Spadic CC.

Definition at line 207 of file CbmTrdUnpackAlgoR.h.

Referenced by makeRaw(), and unpack().

◆ fNrCorruptEom

size_t CbmTrdUnpackAlgoR::fNrCorruptEom = 0
protected

Number of corrupted EOM frames.

Definition at line 201 of file CbmTrdUnpackAlgoR.h.

Referenced by finishDerived(), and unpackRaw().

◆ fNrElinkMis

size_t CbmTrdUnpackAlgoR::fNrElinkMis = 0
protected

Number of SOM to RDA/EOM mismatches.

Definition at line 198 of file CbmTrdUnpackAlgoR.h.

Referenced by finishDerived(), and unpackRaw().

◆ fNrMissingEom

size_t CbmTrdUnpackAlgoBaseR::fNrMissingEom = 0
protectedinherited

Number of missing EOM frames to finish a SOM frame.

Definition at line 212 of file CbmTrdUnpackAlgoBaseR.h.

Referenced by finishDerived(), and unpackRaw().

◆ fNrNonMajorTsMsb

size_t CbmTrdUnpackAlgoR::fNrNonMajorTsMsb = 0
protected

Counter for the ts_msb used to reconstruct the time.

Definition at line 195 of file CbmTrdUnpackAlgoR.h.

Referenced by finishDerived(), and getTsMsb().

◆ fNrTsMsbVec

std::vector<std::uint8_t> CbmTrdUnpackAlgoR::fNrTsMsbVec = {}
protected

Counter for the ts_msb used to reconstruct the time.

Definition at line 192 of file CbmTrdUnpackAlgoR.h.

Referenced by makeRaw(), and unpackRaw().

◆ fNrUnknownWords

size_t CbmTrdUnpackAlgoBaseR::fNrUnknownWords = 0
protectedinherited

◆ fNrWildEom

size_t CbmTrdUnpackAlgoBaseR::fNrWildEom = 0
protectedinherited

Number of eom frames outside of a SOM frame range.

Definition at line 209 of file CbmTrdUnpackAlgoBaseR.h.

Referenced by finishDerived(), and unpackRaw().

◆ fNrWildNul

size_t CbmTrdUnpackAlgoBaseR::fNrWildNul = 0
protectedinherited

Number of wild null words, should only appear at the end of a µSlice.

Definition at line 215 of file CbmTrdUnpackAlgoBaseR.h.

Referenced by finishDerived(), and unpackRaw().

◆ fNrWildRda

size_t CbmTrdUnpackAlgoBaseR::fNrWildRda = 0
protectedinherited

Number of rda frames outside of a SOM frame range.

Definition at line 206 of file CbmTrdUnpackAlgoBaseR.h.

Referenced by CbmTrdUnpackAlgoLegacy2020R::finishDerived(), finishDerived(), CbmTrdUnpackAlgoLegacy2020R::unpack(), and unpackRaw().

◆ fRTDMethod

std::shared_ptr<CbmTrdRawToDigiBaseR> CbmTrdUnpackAlgoBaseR::fRTDMethod = nullptr
protectedinherited

raw to digi extraction method, set in the task

Definition at line 190 of file CbmTrdUnpackAlgoBaseR.h.

Referenced by CbmTrdUnpackAlgoBaseR::init(), CbmTrdUnpackAlgoLegacy2020R::makeDigi(), makeDigi(), and CbmTrdUnpackAlgoBaseR::SetRawToDigiMethod().

◆ fSpadic

std::shared_ptr<CbmTrdSpadic> CbmTrdUnpackAlgoBaseR::fSpadic = nullptr
protectedinherited

◆ fSpadicAddressMap

std::map<size_t, Int_t> CbmTrdUnpackAlgoBaseR::fSpadicAddressMap = {}
protectedinherited

Map to retrieve asic address from CriId/CrobId/ElinkId (see CbmTrdHardwareSetupR)

Definition at line 193 of file CbmTrdUnpackAlgoBaseR.h.

Referenced by CbmTrdUnpackAlgoBaseR::getAsicAddress(), CbmTrdUnpackAlgoBaseR::initParSet(), and CbmTrdUnpackAlgoLegacy2020R::makeDigi().

◆ fStreamsPerWord

const std::uint8_t CbmTrdUnpackAlgoR::fStreamsPerWord = 2
staticprotected

Number of streams per word For the msg format used from 2021 ongoing we have 2 parallel streams per word. All data from eLinks 0..20 go to one stream and 21..41 to the other.

Definition at line 214 of file CbmTrdUnpackAlgoR.h.

Referenced by unpackRaw().

◆ fTimeshiftsMap

std::map<size_t, std::vector<Int_t> > CbmTrdUnpackAlgoBaseR::fTimeshiftsMap = {}
protectedinherited

Map containing the timeshift parameters for the correction of the µSlice timeshifts. The keys are the tsIdx, if no key is found, the shifts of the previous tsIdx are used again.

Definition at line 199 of file CbmTrdUnpackAlgoBaseR.h.

Referenced by CbmTrdUnpackAlgoBaseR::initParSet(), and CbmTrdUnpackAlgoLegacy2020R::setDerivedTsParameters().

◆ fTsMsbLength

std::uint16_t CbmTrdUnpackAlgoBaseR::fTsMsbLength = 16000
staticconstexprprotectedinherited

length of one ts_msb in [ns]

Definition at line 221 of file CbmTrdUnpackAlgoBaseR.h.

◆ fTsMsbLengthCC

size_t CbmTrdUnpackAlgoBaseR::fTsMsbLengthCC = fTsMsbLength / CbmTrdSpadic::GetClockCycle()
protectedinherited

length of one ts_msb in [cc]

Definition at line 224 of file CbmTrdUnpackAlgoBaseR.h.

Referenced by makeRaw().


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