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

#include <CbmStsUnpackAlgoLegacy.h>

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

Public Member Functions

 CbmStsUnpackAlgoLegacy ()
 
 ~CbmStsUnpackAlgoLegacy ()
 
 CbmStsUnpackAlgoLegacy (const CbmStsUnpackAlgoLegacy &)=delete
 Copy constructor - not implemented.
 
CbmStsUnpackAlgoLegacyoperator= (const CbmStsUnpackAlgoLegacy &)=delete
 Assignment operator - not implemented.
 
virtual bool init ()
 
virtual void reset ()
 
bool InitParameters ()
 
void SetTimeOffsetNs (double dOffsetIn=0.0)
 
virtual void MaskNoisyChannel (const uint32_t uFeb, const uint32_t uChan, const bool bMasked=true)
 Mask a Noisy Channel.
 
void SetMonitor (std::shared_ptr< CbmStsUnpackMonitor > monitor)
 Set a predefined monitor.
 
void SetMinAdcCut (uint32_t value)
 Set the minimum adc cut value.
 
void SetMinAdcCut (uint32_t febid, uint32_t value)
 
void SetAsicTimeOffsetVec (std::vector< double > value)
 Set the time offset per Asic.
 
void SetWalkMap (const std::map< uint32_t, CbmStsParModule > &mapIn)
 Enable/Disable time-walk correction.
 
void SetDuplicatesRejection (bool bIn=true, bool bDiffAdc=true)
 Enable/Disable the duplicate digis rejection, without or with same ADC checks.
 
void SetFwBinning (bool useFwBinning)
 Enable/Disable firmware binning (switch only supported by older implementations)
 
virtual std::vector< std::pair< std::string, std::shared_ptr< FairParGenericSet > > > * GetParContainerRequest (std::string geoTag, std::uint32_t runId)
 Get the requested parameter containers. To be defined in the derived classes! Return the required parameter containers together with the paths to the ascii files to.
 

Protected Member Functions

bool unpack (const fles::Timeslice *ts, std::uint16_t icomp, UInt_t imslice)
 Unpack a given microslice. To be implemented in the derived unpacker algos.
 
virtual void finish ()
 Finish function for this algorithm base clase.
 

Protected Attributes

std::shared_ptr< CbmStsUnpackMonitorfMonitor = nullptr
 Potential (online) monitor for the unpacking process.
 
uint32_t fdAdcCut = 0
 Minimum adc cut to store a hit.
 
std::map< uint32_t, uint32_t > fdAdcCut_perFeb
 Minimum adc cut per Feb to store a hit.
 
std::vector< double > fvdTimeOffsetNsAsics = {}
 Time offsets per Asic???
 
bool fbUseTimeWalkCorrection = false
 Enable/Disable time-walk correction.
 
std::map< uint32_t, std::vector< std::vector< double > > > fWalkLookup = {}
 Per-ASIC's sensors Time-Walk correction mapping.
 
bool fbRejectDuplicateDigis = false
 Enables the rejection of duplicate digis.
 
bool fbDupliWithoutAdc = true
 If rejecting duplicate digis, enables rejection even if ADC differs.
 
bool fbUseFwBinning = true
 Enables firmware binning (some implementations ignore this)
 

Private Member Functions

void InitDpbIdIndexMap ()
 Map of DPB Identifier to DPB index.
 
bool initParSet (FairParGenericSet *parset)
 ADC offset in e-, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].
 
bool initParSet (CbmMcbm2018StsPar *parset)
 Initialize the parameters from CbmMcbm2018StsPar.
 
void InitInternalStatus ()
 
void InitTempVectors (std::vector< int32_t > *viModuleType, std::vector< int32_t > *viModAddress, std::vector< std::vector< std::vector< int32_t > > > *viFebModuleIdx, std::vector< std::vector< bool > > *vbCrobActiveFlag, std::vector< std::vector< std::vector< int32_t > > > *viFebModuleSide)
 
void PrintActiveCrobs (const std::vector< std::vector< bool > > &vbCrobActiveFlag)
 
void PrintAddressMaps (const std::vector< std::vector< std::vector< int32_t > > > &viFebModuleIdx, const std::vector< std::vector< std::vector< int32_t > > > &viFebModuleSide)
 
void AddHitsToDigiVect (std::vector< stsxyter::FinalHit > *vmHitsIn, std::vector< CbmStsDigi > *vDigiVectOut)
 Add the hits to the output buffer as Digis.
 
uint64_t GetFullTimeStamp (const uint16_t usRawTs)
 Get full time stamp from raw time stamp.
 
void ProcessHitInfo (const stsxyter::Message &mess)
 TS MSB cycle of last hit message for each channel, [ AsicIdx ][ Chan ].
 
void ProcessTsMsbInfo (const stsxyter::Message &mess, uint32_t uMessIdx=0, uint32_t uMsIdx=0)
 
void ProcessEpochInfo (const stsxyter::Message &mess)
 
void ProcessStatusInfo (const stsxyter::Message &mess, uint32_t uIdx)
 
void ProcessErrorInfo (const stsxyter::Message &mess)
 
void RefreshTsMsbFields (const size_t uMsIdx)
 
void LoopMsMessages (const uint8_t *msContent, const uint32_t uSize, const size_t uMsIdx)
 

Private Attributes

std::vector< bool > fvbMaskedComponents
 Control flags.
 
CbmMcbm2018StsParfUnpackPar
 Settings from parameter file.
 
uint32_t fuNbFebs
 
std::map< uint32_t, uint32_t > fDpbIdIndexMap
 Number of FEBs with StsXyter ASICs.
 
std::vector< std::vector< std::vector< int32_t > > > fviFebType
 
std::vector< bool > fvbFebPulser
 FEB type, [ NbDpb ][ NbCrobPerDpb ][ NbFebsPerCrob ], 0 = A, 1 = B, -1 if inactive.
 
std::vector< int32_t > fviFebAddress
 Pulser flag for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].
 
std::vector< int32_t > fviFebSide
 STS address for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].
 
std::vector< double > fvdFebAdcGain
 Module side for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].
 
std::vector< double > fvdFebAdcOffs
 ADC gain in e-/b, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].
 
double fdTimeOffsetNs
 User settings: Data correction parameters.
 
bool fbUseChannelMask
 
std::vector< std::vector< bool > > fvvbMaskedChannels
 
uint64_t fulCurrentMsIdx
 Vector of channel masks, [ NbFeb ][ NbCHanInFeb ], used only if fbUseChannelMask is true.
 
uint32_t fuCurrDpbIdx
 Current data properties.
 
std::vector< uint64_t > fvulCurrentTsMsb
 
std::vector< uint32_t > fvuCurrentTsMsbCycle
 Current TS MSB for each DPB.
 
double fdStartTime
 
double fdStartTimeMsSz
 
std::chrono::steady_clock::time_point ftStartTimeUnix
 
std::vector< stsxyter::FinalHitfvmHitsInMs
 Hits time-sorting.
 
std::vector< std::vector< uint16_t > > fvvusLastTsChan
 
std::vector< std::vector< uint16_t > > fvvusLastAdcChan
 TS of last hit message for each channel, [ AsicIdx ][ Chan ].
 
std::vector< std::vector< uint32_t > > fvvuLastTsMsbChan
 ADC of last hit message for each channel, [ AsicIdx ][ Chan ].
 
std::vector< std::vector< uint16_t > > fvvusLastTsMsbCycleChan
 TS MSB of last hit message for each channel, [ AsicIdx ][ Chan ].
 

Static Private Attributes

static const uint32_t kuMaxTsMsbDiffDuplicates = 8
 All hits (time in bins, ADC in bins, asic, channel) in last MS, sorted with "<" operator.
 

Detailed Description

Definition at line 25 of file CbmStsUnpackAlgoLegacy.h.

Constructor & Destructor Documentation

◆ CbmStsUnpackAlgoLegacy() [1/2]

CbmStsUnpackAlgoLegacy::CbmStsUnpackAlgoLegacy ( )

Definition at line 29 of file CbmStsUnpackAlgoLegacy.cxx.

◆ ~CbmStsUnpackAlgoLegacy()

CbmStsUnpackAlgoLegacy::~CbmStsUnpackAlgoLegacy ( )

Clear buffers

Definition at line 59 of file CbmStsUnpackAlgoLegacy.cxx.

References fUnpackPar, and fvmHitsInMs.

◆ CbmStsUnpackAlgoLegacy() [2/2]

CbmStsUnpackAlgoLegacy::CbmStsUnpackAlgoLegacy ( const CbmStsUnpackAlgoLegacy & )
delete

Copy constructor - not implemented.

Member Function Documentation

◆ AddHitsToDigiVect()

void CbmStsUnpackAlgoLegacy::AddHitsToDigiVect ( std::vector< stsxyter::FinalHit > * vmHitsIn,
std::vector< CbmStsDigi > * vDigiVectOut )
private

Add the hits to the output buffer as Digis.

FIXME: see issue #1549 N side: 0-1023 => 0-1023 P side: 0-1023 => 2047-1024

Catch the pulser digis and either save them to their own output or drop them

Definition at line 340 of file CbmStsUnpackAlgoLegacy.cxx.

References fdTimeOffsetNs, fUnpackPar, fvbFebPulser, fvdFebAdcGain, fvdFebAdcOffs, CbmStsUnpackAlgoBase::fvdTimeOffsetNsAsics, fviFebAddress, fviFebSide, CbmMcbm2018StsPar::GetNbAsicsPerFeb(), CbmMcbm2018StsPar::GetNbChanPerAsic(), CbmMcbm2018StsPar::GetNbChanPerFeb(), and stsxyter::kdClockCycleNs.

Referenced by unpack().

◆ finish()

virtual void CbmStsUnpackAlgoBase::finish ( )
inlineprotectedvirtualinherited

Finish function for this algorithm base clase.

Definition at line 108 of file CbmStsUnpackAlgoBase.h.

References CbmStsUnpackAlgoBase::fMonitor.

◆ GetFullTimeStamp()

uint64_t CbmStsUnpackAlgoLegacy::GetFullTimeStamp ( const uint16_t usRawTs)
private

◆ GetParContainerRequest()

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

Get the requested parameter containers. To be defined in the derived classes! 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 13 of file CbmStsUnpackAlgoBase.cxx.

◆ init()

bool CbmStsUnpackAlgoLegacy::init ( )
virtual

Definition at line 67 of file CbmStsUnpackAlgoLegacy.cxx.

◆ InitDpbIdIndexMap()

void CbmStsUnpackAlgoLegacy::InitDpbIdIndexMap ( )
private

Map of DPB Identifier to DPB index.

Definition at line 225 of file CbmStsUnpackAlgoLegacy.cxx.

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

Referenced by InitParameters().

◆ InitInternalStatus()

◆ InitParameters()

bool CbmStsUnpackAlgoLegacy::InitParameters ( )

! FIXME: 1) Geometry is using front/back while we are using P/N !!!! => Assuming that front facing modules have connectors on right side +> Volker warns that the front side should be electrons one so N 2) No accessor/setter to change only the side field of an STS address => hardcode the shift +> The bit is unused in the current scheme: the side is encoded in the Digi channel

! FIXME: 1) Geometry is using front/back while we are using P/N !!!! => Assuming that front facing modules have connectors on right side +> Volker warns that the front side should be electrons one so N 2) No accessor/setter to change only the side field of an STS address => hardcode the shift +> The bit is unused in the current scheme: the side is encoded in the Digi channel

Definition at line 102 of file CbmStsUnpackAlgoLegacy.cxx.

References fuNbFebs, fUnpackPar, fvbFebPulser, fvdFebAdcGain, fvdFebAdcOffs, CbmStsUnpackAlgoBase::fvdTimeOffsetNsAsics, fviFebAddress, fviFebSide, fviFebType, CbmMcbm2018StsPar::GetFebAdcGain(), CbmMcbm2018StsPar::GetFebAdcOffset(), CbmMcbm2018StsPar::GetNbCrobsPerDpb(), CbmMcbm2018StsPar::GetNbFebsPerCrob(), CbmMcbm2018StsPar::GetNbOfModules(), CbmMcbm2018StsPar::GetNrOfAsics(), CbmMcbm2018StsPar::GetNrOfDpbs(), CbmMcbm2018StsPar::GetNrOfFebs(), InitDpbIdIndexMap(), InitInternalStatus(), InitTempVectors(), CbmMcbm2018StsPar::IsFebPulser(), PrintActiveCrobs(), and PrintAddressMaps().

Referenced by initParSet().

◆ initParSet() [1/2]

Bool_t CbmStsUnpackAlgoLegacy::initParSet ( CbmMcbm2018StsPar * parset)
private

Initialize the parameters from CbmMcbm2018StsPar.

Parameters
parset
Returns
bool initOk

Definition at line 91 of file CbmStsUnpackAlgoLegacy.cxx.

References CbmStsUnpackAlgoBase::fMonitor, fUnpackPar, and InitParameters().

◆ initParSet() [2/2]

Bool_t CbmStsUnpackAlgoLegacy::initParSet ( FairParGenericSet * parset)
private

ADC offset in e-, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].

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

Parameters
parset
Returns
bool initOk

Definition at line 78 of file CbmStsUnpackAlgoLegacy.cxx.

References initParSet().

Referenced by initParSet().

◆ InitTempVectors()

void CbmStsUnpackAlgoLegacy::InitTempVectors ( std::vector< int32_t > * viModuleType,
std::vector< int32_t > * viModAddress,
std::vector< std::vector< std::vector< int32_t > > > * viFebModuleIdx,
std::vector< std::vector< bool > > * vbCrobActiveFlag,
std::vector< std::vector< std::vector< int32_t > > > * viFebModuleSide )
private

◆ LoopMsMessages()

void CbmStsUnpackAlgoLegacy::LoopMsMessages ( const uint8_t * msContent,
const uint32_t uSize,
const size_t uMsIdx )
private

◆ MaskNoisyChannel()

void CbmStsUnpackAlgoLegacy::MaskNoisyChannel ( const uint32_t uFeb,
const uint32_t uChan,
const bool bMasked = true )
virtual

Mask a Noisy Channel.

Parameters
uFeb
uChan
bMasked

Reimplemented from CbmStsUnpackAlgoBase.

Definition at line 784 of file CbmStsUnpackAlgoLegacy.cxx.

References fbUseChannelMask, fuNbFebs, fUnpackPar, fvvbMaskedChannels, and CbmMcbm2018StsPar::GetNbChanPerFeb().

◆ operator=()

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

Assignment operator - not implemented.

◆ PrintActiveCrobs()

void CbmStsUnpackAlgoLegacy::PrintActiveCrobs ( const std::vector< std::vector< bool > > & vbCrobActiveFlag)
private

◆ PrintAddressMaps()

void CbmStsUnpackAlgoLegacy::PrintAddressMaps ( const std::vector< std::vector< std::vector< int32_t > > > & viFebModuleIdx,
const std::vector< std::vector< std::vector< int32_t > > > & viFebModuleSide )
private

◆ ProcessEpochInfo()

void CbmStsUnpackAlgoLegacy::ProcessEpochInfo ( const stsxyter::Message & mess)
private

Definition at line 706 of file CbmStsUnpackAlgoLegacy.cxx.

Referenced by LoopMsMessages().

◆ ProcessErrorInfo()

void CbmStsUnpackAlgoLegacy::ProcessErrorInfo ( const stsxyter::Message & mess)
private

◆ ProcessHitInfo()

void CbmStsUnpackAlgoLegacy::ProcessHitInfo ( const stsxyter::Message & mess)
private

TS MSB cycle of last hit message for each channel, [ AsicIdx ][ Chan ].

Duplicate hits rejection

FIXME: add plots to check what is done in this rejection

Store hit for output only if it is mapped to a module!!!

Store only if masking is disabled or if channeld is not masked 2D vector is safe as always right size if masking enabled

If EM flag ON, store a corresponding error message with the next flag after all other possible status flags set

Definition at line 567 of file CbmStsUnpackAlgoLegacy.cxx.

References CbmMcbm2018StsPar::ElinkIdxToAsicIdx(), CbmMcbm2018StsPar::ElinkIdxToFebIdx(), CbmStsUnpackAlgoBase::fbDupliWithoutAdc, CbmStsUnpackAlgoBase::fbRejectDuplicateDigis, fbUseChannelMask, CbmStsUnpackAlgoBase::fbUseFwBinning, CbmStsUnpackAlgoBase::fdAdcCut, fdStartTime, CbmStsUnpackAlgoBase::fMonitor, fuCurrDpbIdx, fUnpackPar, fvdFebAdcGain, fvdFebAdcOffs, fviFebAddress, fviFebType, fvmHitsInMs, fvuCurrentTsMsbCycle, fvulCurrentTsMsb, fvvbMaskedChannels, fvvuLastTsMsbChan, fvvusLastAdcChan, fvvusLastTsChan, fvvusLastTsMsbCycleChan, GetFullTimeStamp(), stsxyter::Message::GetHitAdc(), stsxyter::Message::GetHitChannel(), stsxyter::Message::GetHitTimeBinning(), stsxyter::Message::GetHitTimeFull(), stsxyter::Message::GetLinkIndex(), stsxyter::Message::GetLinkIndexHitBinning(), CbmMcbm2018StsPar::GetNbAsicsPerCrob(), CbmMcbm2018StsPar::GetNbAsicsPerFeb(), CbmMcbm2018StsPar::GetNbChanPerAsic(), CbmMcbm2018StsPar::GetNbCrobsPerDpb(), CbmMcbm2018StsPar::GetNbElinkPerCrob(), stsxyter::Message::IsHitMissedEvts(), stsxyter::kdClockCycleNs, kSts, kuMaxTsMsbDiffDuplicates, and stsxyter::kusLenStatStatus.

Referenced by LoopMsMessages().

◆ ProcessStatusInfo()

◆ ProcessTsMsbInfo()

void CbmStsUnpackAlgoLegacy::ProcessTsMsbInfo ( const stsxyter::Message & mess,
uint32_t uMessIdx = 0,
uint32_t uMsIdx = 0 )
private

Case where we reach a normal cycle edge

First TS_MSB in MS may jump if TS dropped by DAQ

case with cycle et edge of 2 MS

Msg 1 and 2 will be same TS_MSB if data in 1st bin

New FW introduced TS_MSB suppression + large TS_MSB => warning only if value not increasing

Catch case where previous MS ended up on a TS MSB cycle as it is then already updated from the MS index

Definition at line 655 of file CbmStsUnpackAlgoLegacy.cxx.

References CbmStsUnpackAlgoBase::fbUseFwBinning, CbmStsUnpackAlgoBase::fMonitor, fuCurrDpbIdx, fulCurrentMsIdx, fvuCurrentTsMsbCycle, fvulCurrentTsMsb, stsxyter::Message::GetTsMsbVal(), and stsxyter::Message::GetTsMsbValBinning().

Referenced by LoopMsMessages().

◆ RefreshTsMsbFields()

void CbmStsUnpackAlgoLegacy::RefreshTsMsbFields ( const size_t uMsIdx)
private

◆ reset()

void CbmStsUnpackAlgoLegacy::reset ( )
virtual

Definition at line 74 of file CbmStsUnpackAlgoLegacy.cxx.

◆ SetAsicTimeOffsetVec()

void CbmStsUnpackAlgoBase::SetAsicTimeOffsetVec ( std::vector< double > value)
inlineinherited

Set the time offset per Asic.

Definition at line 65 of file CbmStsUnpackAlgoBase.h.

References CbmStsUnpackAlgoBase::fvdTimeOffsetNsAsics.

◆ SetDuplicatesRejection()

void CbmStsUnpackAlgoBase::SetDuplicatesRejection ( bool bIn = true,
bool bDiffAdc = true )
inlineinherited

Enable/Disable the duplicate digis rejection, without or with same ADC checks.

Definition at line 71 of file CbmStsUnpackAlgoBase.h.

References CbmStsUnpackAlgoBase::fbDupliWithoutAdc, and CbmStsUnpackAlgoBase::fbRejectDuplicateDigis.

◆ SetFwBinning()

void CbmStsUnpackAlgoBase::SetFwBinning ( bool useFwBinning)
inlineinherited

Enable/Disable firmware binning (switch only supported by older implementations)

Definition at line 78 of file CbmStsUnpackAlgoBase.h.

References CbmStsUnpackAlgoBase::fbUseFwBinning.

◆ SetMinAdcCut() [1/2]

void CbmStsUnpackAlgoBase::SetMinAdcCut ( uint32_t febid,
uint32_t value )
inlineinherited

Definition at line 62 of file CbmStsUnpackAlgoBase.h.

References CbmStsUnpackAlgoBase::fdAdcCut_perFeb.

◆ SetMinAdcCut() [2/2]

void CbmStsUnpackAlgoBase::SetMinAdcCut ( uint32_t value)
inlineinherited

Set the minimum adc cut value.

Parameters
[in]value

Definition at line 60 of file CbmStsUnpackAlgoBase.h.

References CbmStsUnpackAlgoBase::fdAdcCut.

◆ SetMonitor()

void CbmStsUnpackAlgoBase::SetMonitor ( std::shared_ptr< CbmStsUnpackMonitor > monitor)
inlineinherited

Set a predefined monitor.

Parameters
monitorpredefined unpacking monitor

Definition at line 57 of file CbmStsUnpackAlgoBase.h.

References CbmStsUnpackAlgoBase::fMonitor.

◆ SetTimeOffsetNs()

void CbmStsUnpackAlgoLegacy::SetTimeOffsetNs ( double dOffsetIn = 0.0)
inline

Definition at line 43 of file CbmStsUnpackAlgoLegacy.h.

References fdTimeOffsetNs.

◆ SetWalkMap()

void CbmStsUnpackAlgoBase::SetWalkMap ( const std::map< uint32_t, CbmStsParModule > & mapIn)
inherited

Enable/Disable time-walk correction.

Definition at line 26 of file CbmStsUnpackAlgoBase.cxx.

References CbmStsUnpackAlgoBase::fbUseTimeWalkCorrection, and CbmStsUnpackAlgoBase::fWalkLookup.

◆ unpack()

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

Unpack a given microslice. To be implemented in the derived unpacker algos.

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

Ignore First TS as first MS is typically corrupt

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

Clear the buffer of hits

Definition at line 378 of file CbmStsUnpackAlgoLegacy.cxx.

References AddHitsToDigiVect(), fDpbIdIndexMap, fdStartTimeMsSz, CbmStsUnpackAlgoBase::fMonitor, fuCurrDpbIdx, fulCurrentMsIdx, fvbMaskedComponents, fvmHitsInMs, LoopMsMessages(), and RefreshTsMsbFields().

Member Data Documentation

◆ fbDupliWithoutAdc

bool CbmStsUnpackAlgoBase::fbDupliWithoutAdc = true
protectedinherited

If rejecting duplicate digis, enables rejection even if ADC differs.

Definition at line 137 of file CbmStsUnpackAlgoBase.h.

Referenced by ProcessHitInfo(), CbmStsUnpackAlgo::processHitInfo(), and CbmStsUnpackAlgoBase::SetDuplicatesRejection().

◆ fbRejectDuplicateDigis

bool CbmStsUnpackAlgoBase::fbRejectDuplicateDigis = false
protectedinherited

Enables the rejection of duplicate digis.

Definition at line 134 of file CbmStsUnpackAlgoBase.h.

Referenced by ProcessHitInfo(), CbmStsUnpackAlgo::processHitInfo(), and CbmStsUnpackAlgoBase::SetDuplicatesRejection().

◆ fbUseChannelMask

bool CbmStsUnpackAlgoLegacy::fbUseChannelMask
private

Definition at line 113 of file CbmStsUnpackAlgoLegacy.h.

Referenced by MaskNoisyChannel(), and ProcessHitInfo().

◆ fbUseFwBinning

bool CbmStsUnpackAlgoBase::fbUseFwBinning = true
protectedinherited

Enables firmware binning (some implementations ignore this)

Definition at line 140 of file CbmStsUnpackAlgoBase.h.

Referenced by GetFullTimeStamp(), CbmStsUnpackAlgo::init(), ProcessHitInfo(), ProcessTsMsbInfo(), RefreshTsMsbFields(), and CbmStsUnpackAlgoBase::SetFwBinning().

◆ fbUseTimeWalkCorrection

bool CbmStsUnpackAlgoBase::fbUseTimeWalkCorrection = false
protectedinherited

Enable/Disable time-walk correction.

Definition at line 128 of file CbmStsUnpackAlgoBase.h.

Referenced by CbmStsUnpackAlgo::processHitInfo(), and CbmStsUnpackAlgoBase::SetWalkMap().

◆ fdAdcCut

uint32_t CbmStsUnpackAlgoBase::fdAdcCut = 0
protectedinherited

Minimum adc cut to store a hit.

Definition at line 119 of file CbmStsUnpackAlgoBase.h.

Referenced by CbmStsUnpackAlgo::initParSet(), ProcessHitInfo(), and CbmStsUnpackAlgoBase::SetMinAdcCut().

◆ fdAdcCut_perFeb

std::map<uint32_t, uint32_t> CbmStsUnpackAlgoBase::fdAdcCut_perFeb
protectedinherited

Minimum adc cut per Feb to store a hit.

Definition at line 122 of file CbmStsUnpackAlgoBase.h.

Referenced by CbmStsUnpackAlgo::initParSet(), and CbmStsUnpackAlgoBase::SetMinAdcCut().

◆ fDpbIdIndexMap

std::map<uint32_t, uint32_t> CbmStsUnpackAlgoLegacy::fDpbIdIndexMap
private

Number of FEBs with StsXyter ASICs.

Definition at line 68 of file CbmStsUnpackAlgoLegacy.h.

Referenced by InitDpbIdIndexMap(), and unpack().

◆ fdStartTime

double CbmStsUnpackAlgoLegacy::fdStartTime
private

Current TS MSB cycle for DPB Starting state book-keeping

Definition at line 127 of file CbmStsUnpackAlgoLegacy.h.

Referenced by ProcessHitInfo().

◆ fdStartTimeMsSz

double CbmStsUnpackAlgoLegacy::fdStartTimeMsSz
private

Time of first valid hit (TS_MSB available), used as reference for evolution plots

Definition at line 128 of file CbmStsUnpackAlgoLegacy.h.

Referenced by unpack().

◆ fdTimeOffsetNs

double CbmStsUnpackAlgoLegacy::fdTimeOffsetNs
private

User settings: Data correction parameters.

Definition at line 112 of file CbmStsUnpackAlgoLegacy.h.

Referenced by AddHitsToDigiVect(), and SetTimeOffsetNs().

◆ fMonitor

◆ ftStartTimeUnix

std::chrono::steady_clock::time_point CbmStsUnpackAlgoLegacy::ftStartTimeUnix
private

Time of first microslice, used as reference for evolution plots

Definition at line 130 of file CbmStsUnpackAlgoLegacy.h.

◆ fuCurrDpbIdx

uint32_t CbmStsUnpackAlgoLegacy::fuCurrDpbIdx
private

◆ fulCurrentMsIdx

uint64_t CbmStsUnpackAlgoLegacy::fulCurrentMsIdx
private

Vector of channel masks, [ NbFeb ][ NbCHanInFeb ], used only if fbUseChannelMask is true.

Running indices TS/MS info

Definition at line 119 of file CbmStsUnpackAlgoLegacy.h.

Referenced by ProcessErrorInfo(), ProcessStatusInfo(), ProcessTsMsbInfo(), RefreshTsMsbFields(), and unpack().

◆ fuNbFebs

uint32_t CbmStsUnpackAlgoLegacy::fuNbFebs
private

Readout chain dimensions and mapping

Definition at line 67 of file CbmStsUnpackAlgoLegacy.h.

Referenced by InitParameters(), and MaskNoisyChannel().

◆ fUnpackPar

◆ fvbFebPulser

std::vector<bool> CbmStsUnpackAlgoLegacy::fvbFebPulser
private

FEB type, [ NbDpb ][ NbCrobPerDpb ][ NbFebsPerCrob ], 0 = A, 1 = B, -1 if inactive.

Definition at line 73 of file CbmStsUnpackAlgoLegacy.h.

Referenced by AddHitsToDigiVect(), and InitParameters().

◆ fvbMaskedComponents

std::vector<bool> CbmStsUnpackAlgoLegacy::fvbMaskedComponents
private

Control flags.

Definition at line 62 of file CbmStsUnpackAlgoLegacy.h.

Referenced by unpack().

◆ fvdFebAdcGain

std::vector<double> CbmStsUnpackAlgoLegacy::fvdFebAdcGain
private

Module side for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].

Definition at line 76 of file CbmStsUnpackAlgoLegacy.h.

Referenced by AddHitsToDigiVect(), InitParameters(), PrintAddressMaps(), and ProcessHitInfo().

◆ fvdFebAdcOffs

std::vector<double> CbmStsUnpackAlgoLegacy::fvdFebAdcOffs
private

ADC gain in e-/b, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].

Definition at line 77 of file CbmStsUnpackAlgoLegacy.h.

Referenced by AddHitsToDigiVect(), InitParameters(), PrintAddressMaps(), and ProcessHitInfo().

◆ fvdTimeOffsetNsAsics

std::vector<double> CbmStsUnpackAlgoBase::fvdTimeOffsetNsAsics = {}
protectedinherited

◆ fviFebAddress

std::vector<int32_t> CbmStsUnpackAlgoLegacy::fviFebAddress
private

Pulser flag for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].

Definition at line 74 of file CbmStsUnpackAlgoLegacy.h.

Referenced by AddHitsToDigiVect(), InitParameters(), PrintAddressMaps(), and ProcessHitInfo().

◆ fviFebSide

std::vector<int32_t> CbmStsUnpackAlgoLegacy::fviFebSide
private

STS address for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].

Definition at line 75 of file CbmStsUnpackAlgoLegacy.h.

Referenced by AddHitsToDigiVect(), and InitParameters().

◆ fviFebType

std::vector<std::vector<std::vector<int32_t> > > CbmStsUnpackAlgoLegacy::fviFebType
private

◆ fvmHitsInMs

std::vector<stsxyter::FinalHit> CbmStsUnpackAlgoLegacy::fvmHitsInMs
private

Hits time-sorting.

Time of run Start from UNIX system, used as reference for long evolution plots against reception time

Definition at line 134 of file CbmStsUnpackAlgoLegacy.h.

Referenced by ProcessHitInfo(), unpack(), and ~CbmStsUnpackAlgoLegacy().

◆ fvuCurrentTsMsbCycle

std::vector<uint32_t> CbmStsUnpackAlgoLegacy::fvuCurrentTsMsbCycle
private

Current TS MSB for each DPB.

Definition at line 125 of file CbmStsUnpackAlgoLegacy.h.

Referenced by GetFullTimeStamp(), InitInternalStatus(), ProcessHitInfo(), ProcessTsMsbInfo(), and RefreshTsMsbFields().

◆ fvulCurrentTsMsb

std::vector<uint64_t> CbmStsUnpackAlgoLegacy::fvulCurrentTsMsb
private

Index of the DPB from which the MS currently unpacked is coming Data format control

Definition at line 124 of file CbmStsUnpackAlgoLegacy.h.

Referenced by GetFullTimeStamp(), InitInternalStatus(), ProcessHitInfo(), ProcessTsMsbInfo(), and RefreshTsMsbFields().

◆ fvvbMaskedChannels

std::vector<std::vector<bool> > CbmStsUnpackAlgoLegacy::fvvbMaskedChannels
private

Definition at line 115 of file CbmStsUnpackAlgoLegacy.h.

Referenced by MaskNoisyChannel(), and ProcessHitInfo().

◆ fvvuLastTsMsbChan

std::vector<std::vector<uint32_t> > CbmStsUnpackAlgoLegacy::fvvuLastTsMsbChan
private

ADC of last hit message for each channel, [ AsicIdx ][ Chan ].

Definition at line 142 of file CbmStsUnpackAlgoLegacy.h.

Referenced by InitInternalStatus(), and ProcessHitInfo().

◆ fvvusLastAdcChan

std::vector<std::vector<uint16_t> > CbmStsUnpackAlgoLegacy::fvvusLastAdcChan
private

TS of last hit message for each channel, [ AsicIdx ][ Chan ].

Definition at line 140 of file CbmStsUnpackAlgoLegacy.h.

Referenced by InitInternalStatus(), and ProcessHitInfo().

◆ fvvusLastTsChan

std::vector<std::vector<uint16_t> > CbmStsUnpackAlgoLegacy::fvvusLastTsChan
private

Definition at line 138 of file CbmStsUnpackAlgoLegacy.h.

Referenced by InitInternalStatus(), and ProcessHitInfo().

◆ fvvusLastTsMsbCycleChan

std::vector<std::vector<uint16_t> > CbmStsUnpackAlgoLegacy::fvvusLastTsMsbCycleChan
private

TS MSB of last hit message for each channel, [ AsicIdx ][ Chan ].

Definition at line 144 of file CbmStsUnpackAlgoLegacy.h.

Referenced by InitInternalStatus(), and ProcessHitInfo().

◆ fWalkLookup

std::map<uint32_t, std::vector<std::vector<double> > > CbmStsUnpackAlgoBase::fWalkLookup = {}
protectedinherited

Per-ASIC's sensors Time-Walk correction mapping.

Definition at line 131 of file CbmStsUnpackAlgoBase.h.

Referenced by CbmStsUnpackAlgo::processHitInfo(), and CbmStsUnpackAlgoBase::SetWalkMap().

◆ kuMaxTsMsbDiffDuplicates

const uint32_t CbmStsUnpackAlgoLegacy::kuMaxTsMsbDiffDuplicates = 8
staticprivate

All hits (time in bins, ADC in bins, asic, channel) in last MS, sorted with "<" operator.

Duplicate hits suppression

Definition at line 137 of file CbmStsUnpackAlgoLegacy.h.

Referenced by ProcessHitInfo().


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