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

#include <CbmRichUnpackAlgo.h>

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

Public Member Functions

 CbmRichUnpackAlgo ()
 Create the Cbm Trd Unpack AlgoBase object.
 
virtual ~CbmRichUnpackAlgo ()
 Destroy the Cbm Trd Unpack Task object.
 
 CbmRichUnpackAlgo (const CbmRichUnpackAlgo &)=delete
 Copy constructor - not implemented.
 
CbmRichUnpackAlgooperator= (const CbmRichUnpackAlgo &)=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. To be defined in the derived classes! Return the required parameter containers together with the paths to the ascii files to.
 
void SetMonitor (std::shared_ptr< CbmRichUnpackMonitor > monitor)
 Set a predefined monitor.
 
void SetMaskedDiRICHes (std::vector< Int_t > *maskedDiRICHes)
 Set Addresses of DiRICH boards to be masked.
 
void DoTotOffsetCorrection (Bool_t activate=true)
 (De-) Activate Tot offset correction of digis
 

Protected Member Functions

void processTrbPacket (CbmRichUnpackAlgoMicrosliceReader &reader)
 
void processMbs (CbmRichUnpackAlgoMicrosliceReader &reader, bool isPrev)
 
void processHubBlock (CbmRichUnpackAlgoMicrosliceReader &reader)
 
void processCtsSubSubEvent (CbmRichUnpackAlgoMicrosliceReader &reader, uint32_t subSubEventSize, uint32_t subSubEventId)
 
void processSubSubEvent (CbmRichUnpackAlgoMicrosliceReader &reader, int nofTimeWords, uint32_t subSubEventId)
 
void processTimeDataWord (CbmRichUnpackAlgoMicrosliceReader &reader, int iTdc, uint32_t epoch, uint32_t tdcWord, uint32_t subSubEventId, std::vector< double > &raisingTime)
 
void writeOutputDigi (Int_t fpgaID, Int_t channel, Double_t time, Double_t tot)
 
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.
 
double calculateTime (uint32_t epoch, uint32_t coarse, uint32_t fine)
 
void finish ()
 Finish function for this algorithm base clase.
 
virtual void finishDerived ()
 Function that allows special calls during Finish in the derived algos.
 
std::string getLogHeader (CbmRichUnpackAlgoMicrosliceReader &reader)
 
Int_t getPixelUID (Int_t fpgaID, Int_t ch) const
 
Bool_t init ()
 Intialisation at begin of run. Special inits of the derived algos.
 
Bool_t initParSet (FairParGenericSet *parset)
 Handles the distribution of the hidden derived classes to their explicit functions.
 
Bool_t initParSet (CbmMcbm2018RichPar *parset)
 Handles the distribution of the hidden derived classes to their explicit functions.
 
bool isLog ()
 
bool setDerivedTsParameters (size_t)
 Set the Derived Ts Parameters.
 
bool checkMaskedDiRICH (Int_t subSubEventId)
 Unpack a given microslice. To be implemented in the derived unpacker algos.
 

Protected Attributes

double fMbsPrevTimeCh0 = 0.
 
double fMbsPrevTimeCh1 = 0.
 
std::map< uint32_t, double > fLastCh0ReTime
 
std::map< uint32_t, double > fPrevLastCh0ReTime
 
std::shared_ptr< CbmRichUnpackMonitorfMonitor = nullptr
 Potential (online) monitor for the unpacking process.
 
CbmMcbm2018RichPar fUnpackPar
 Parameters for the unpacking.
 
std::vector< Int_t > * fMaskedDiRICHes = nullptr
 
size_t fMsRefTime = 0
 
double fToTMin = -20.
 
double fToTMax = 100.
 
Bool_t fbDoToTCorr = true
 

Detailed Description

Definition at line 40 of file CbmRichUnpackAlgo.h.

Constructor & Destructor Documentation

◆ CbmRichUnpackAlgo() [1/2]

CbmRichUnpackAlgo::CbmRichUnpackAlgo ( )

Create the Cbm Trd Unpack AlgoBase object.

Definition at line 17 of file CbmRichUnpackAlgo.cxx.

◆ ~CbmRichUnpackAlgo()

CbmRichUnpackAlgo::~CbmRichUnpackAlgo ( )
virtual

Destroy the Cbm Trd Unpack Task object.

Definition at line 19 of file CbmRichUnpackAlgo.cxx.

◆ CbmRichUnpackAlgo() [2/2]

CbmRichUnpackAlgo::CbmRichUnpackAlgo ( const CbmRichUnpackAlgo & )
delete

Copy constructor - not implemented.

Member Function Documentation

◆ calculateTime()

double CbmRichUnpackAlgoBase::calculateTime ( uint32_t epoch,
uint32_t coarse,
uint32_t fine )
protectedinherited

◆ checkMaskedDiRICH()

bool CbmRichUnpackAlgoBase::checkMaskedDiRICH ( Int_t subSubEventId)
protectedinherited

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

Definition at line 91 of file CbmRichUnpackAlgoBase.cxx.

References CbmRichUnpackAlgoBase::fMaskedDiRICHes.

Referenced by CbmRichUnpackAlgo2022::processSubSubEvent(), and processSubSubEvent().

◆ DoTotOffsetCorrection()

void CbmRichUnpackAlgoBase::DoTotOffsetCorrection ( Bool_t activate = true)
inlineinherited

(De-) Activate Tot offset correction of digis

Parameters
activatebool to activate the Tot offset correction

Definition at line 233 of file CbmRichUnpackAlgoBase.h.

References CbmRichUnpackAlgoBase::fbDoToTCorr.

◆ finish()

void CbmRichUnpackAlgoBase::finish ( )
inlineprotectedinherited

Finish function for this algorithm base clase.

Definition at line 239 of file CbmRichUnpackAlgoBase.h.

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

◆ finishDerived()

virtual void CbmRichUnpackAlgoBase::finishDerived ( )
inlineprotectedvirtualinherited

Function that allows special calls during Finish in the derived algos.

Definition at line 254 of file CbmRichUnpackAlgoBase.h.

Referenced by CbmRichUnpackAlgoBase::finish().

◆ getLogHeader()

◆ GetParContainerRequest()

std::vector< std::pair< std::string, std::shared_ptr< FairParGenericSet > > > * CbmRichUnpackAlgoBase::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 23 of file CbmRichUnpackAlgoBase.cxx.

◆ getPixelUID()

Int_t CbmRichUnpackAlgoBase::getPixelUID ( Int_t fpgaID,
Int_t ch ) const
inlineprotectedinherited

◆ init()

Bool_t CbmRichUnpackAlgoBase::init ( )
protectedinherited

Intialisation at begin of run. Special inits of the derived algos.

Return values
Bool_tinitOk

Definition at line 55 of file CbmRichUnpackAlgoBase.cxx.

◆ initParSet() [1/2]

Bool_t CbmRichUnpackAlgoBase::initParSet ( CbmMcbm2018RichPar * parset)
protectedinherited

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

Parameters
parset
Returns
Bool_t initOk

Definition at line 70 of file CbmRichUnpackAlgoBase.cxx.

References CbmRichUnpackAlgoBase::fMonitor, CbmRichUnpackAlgoBase::fUnpackPar, and CbmMcbm2018RichPar::Print().

◆ initParSet() [2/2]

Bool_t CbmRichUnpackAlgoBase::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 58 of file CbmRichUnpackAlgoBase.cxx.

References CbmRichUnpackAlgoBase::initParSet().

Referenced by CbmRichUnpackAlgoBase::initParSet().

◆ isLog()

◆ operator=()

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

Assignment operator - not implemented.

◆ processCtsSubSubEvent()

void CbmRichUnpackAlgo::processCtsSubSubEvent ( CbmRichUnpackAlgoMicrosliceReader & reader,
uint32_t subSubEventSize,
uint32_t subSubEventId )
protected

◆ processHubBlock()

◆ processMbs()

◆ processSubSubEvent()

◆ processTimeDataWord()

◆ processTrbPacket()

◆ setDerivedTsParameters()

bool CbmRichUnpackAlgoBase::setDerivedTsParameters ( size_t )
inlineprotectedinherited

Set the Derived Ts Parameters.

In this function parameters required by the explicit algo connected to the timeslice can be set.

Parameters
itimeslice
Returns
true
false

Definition at line 299 of file CbmRichUnpackAlgoBase.h.

◆ SetMaskedDiRICHes()

void CbmRichUnpackAlgoBase::SetMaskedDiRICHes ( std::vector< Int_t > * maskedDiRICHes)
inlineinherited

Set Addresses of DiRICH boards to be masked.

Parameters
maskedDiRICHesvector of Addresses

Definition at line 230 of file CbmRichUnpackAlgoBase.h.

References CbmRichUnpackAlgoBase::fMaskedDiRICHes.

◆ SetMonitor()

void CbmRichUnpackAlgoBase::SetMonitor ( std::shared_ptr< CbmRichUnpackMonitor > monitor)
inlineinherited

Set a predefined monitor.

Parameters
monitorpredefined unpacking monitor

Definition at line 227 of file CbmRichUnpackAlgoBase.h.

References CbmRichUnpackAlgoBase::fMonitor.

◆ unpack()

bool CbmRichUnpackAlgo::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

Definition at line 22 of file CbmRichUnpackAlgo.cxx.

References CbmRichUnpackAlgoBase::fMsRefTime, CbmRichUnpackAlgoBase::getLogHeader(), CbmRichUnpackAlgoMicrosliceReader::GetOffset(), CbmRichUnpackAlgoMicrosliceReader::GetSize(), CbmRichUnpackAlgoMicrosliceReader::GetWordAsHexString(), CbmRichUnpackAlgoBase::isLog(), CbmRichUnpackAlgoMicrosliceReader::IsNextPadding(), CbmRichUnpackAlgoMicrosliceReader::NextWord(), processTrbPacket(), and CbmRichUnpackAlgoMicrosliceReader::SetData().

◆ writeOutputDigi()

void CbmRichUnpackAlgo::writeOutputDigi ( Int_t fpgaID,
Int_t channel,
Double_t time,
Double_t tot )
protected

Member Data Documentation

◆ fbDoToTCorr

Bool_t CbmRichUnpackAlgoBase::fbDoToTCorr = true
protectedinherited

◆ fLastCh0ReTime

std::map<uint32_t, double> CbmRichUnpackAlgo::fLastCh0ReTime
protected

Definition at line 93 of file CbmRichUnpackAlgo.h.

Referenced by processTimeDataWord().

◆ fMaskedDiRICHes

std::vector<Int_t>* CbmRichUnpackAlgoBase::fMaskedDiRICHes = nullptr
protectedinherited

◆ fMbsPrevTimeCh0

double CbmRichUnpackAlgo::fMbsPrevTimeCh0 = 0.
protected

Definition at line 90 of file CbmRichUnpackAlgo.h.

Referenced by processMbs(), and processTimeDataWord().

◆ fMbsPrevTimeCh1

double CbmRichUnpackAlgo::fMbsPrevTimeCh1 = 0.
protected

Definition at line 91 of file CbmRichUnpackAlgo.h.

Referenced by processMbs(), and processTimeDataWord().

◆ fMonitor

std::shared_ptr<CbmRichUnpackMonitor> CbmRichUnpackAlgoBase::fMonitor = nullptr
protectedinherited

Potential (online) monitor for the unpacking process.

Definition at line 251 of file CbmRichUnpackAlgoBase.h.

Referenced by CbmRichUnpackAlgoBase::finish(), CbmRichUnpackAlgoBase::initParSet(), CbmRichUnpackAlgoBase::SetMonitor(), and CbmRichUnpackAlgo2022::unpack().

◆ fMsRefTime

size_t CbmRichUnpackAlgoBase::fMsRefTime = 0
protectedinherited

◆ fPrevLastCh0ReTime

std::map<uint32_t, double> CbmRichUnpackAlgo::fPrevLastCh0ReTime
protected

Definition at line 94 of file CbmRichUnpackAlgo.h.

Referenced by processTimeDataWord().

◆ fToTMax

double CbmRichUnpackAlgoBase::fToTMax = 100.
protectedinherited

◆ fToTMin

double CbmRichUnpackAlgoBase::fToTMin = -20.
protectedinherited

◆ fUnpackPar

CbmMcbm2018RichPar CbmRichUnpackAlgoBase::fUnpackPar
protectedinherited

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