|
CbmRoot
|
#include <CbmTrdUnpackFaspAlgo.h>
Classes | |
| class | CbmTrdFaspMessage |
| Data structure for unpacking the FASP word. More... | |
| class | CbmTrdFaspMessage24 |
Public Types | |
| enum class | eMessageLength : int { kMessCh = 4 , kMessType = 1 , kMessTlab = 7 , kMessData = 14 , kMessFasp = 6 , kMessEpoch = 21 } |
| Bytes per FASP frame stored in the microslices (32 bits words) More... | |
| enum | eMessageType { kData = 0 , kEpoch = 1 , kNone } |
| enum class | eMessageVersion : int { kMessLegacy = 2 , kMess24 = 3 , kMessNoDef } |
Public Member Functions | |
| CbmTrdUnpackFaspAlgo () | |
| Create the Cbm Trd Unpack AlgoBase object. | |
| virtual | ~CbmTrdUnpackFaspAlgo () |
| Destroy the Cbm Trd Unpack Task object. | |
| CbmTrdUnpackFaspAlgo (const CbmTrdUnpackFaspAlgo &)=delete | |
| Copy constructor - not implemented. | |
| CbmTrdUnpackFaspAlgo & | operator= (const CbmTrdUnpackFaspAlgo &)=delete |
| Assignment operator - not implemented. | |
| virtual const CbmTrdParSetAsic * | GetAsicPar () const |
| virtual std::vector< std::pair< std::string, std::shared_ptr< FairParGenericSet > > > * | GetParContainerRequest (std::string geoTag, 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< CbmTrdUnpackFaspMonitor > monitor) |
| Set a predefined monitor. | |
| uint32_t | ResetTimeslice () |
| Check and assure there are no data left-overs. | |
Protected Member Functions | |
| eMessageType | mess_type (uint32_t wd) |
| Get message type from the FASP word. | |
| bool | pushDigis (std::vector< CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage > messages, const uint16_t mod_id) |
| void | finish () |
| Finish function for this algorithm base clase. | |
| 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 | unpack (const fles::Timeslice *ts, uint16_t icomp, UInt_t imslice) |
| Unpack a given microslice. | |
| void | FinalizeComponent () |
| Finalize component (e.g. copy from temp buffers) | |
Protected Attributes | |
| ULong64_t | fTime = 0 |
| Time offset for digi wrt the TS start, expressed in 80 MHz clks. It contains: | |
Static Protected Attributes | |
| static const uint8_t | fBytesPerWord = 4 |
| Bytes per FASP frame stored in the microslices (32 bits words) | |
Private Attributes | |
| std::map< uint16_t, std::pair< uint16_t, uint16_t > > * | fCompMap = nullptr |
| std::array< std::vector< CbmTrdDigi >, NFASPMOD *NFASPCH > | fDigiBuffer |
| std::shared_ptr< CbmTrdUnpackFaspMonitor > | fMonitor = nullptr |
| Potential (online) monitor for the unpacking process. | |
| std::vector< uint16_t > | fModuleId = {} |
| CbmTrdParSetAsic | fAsicSet |
| CbmTrdParSetDigi * | fDigiSet = nullptr |
| CbmTrdFaspMessage * | fMess = nullptr |
Definition at line 45 of file CbmTrdUnpackFaspAlgo.h.
|
strong |
Bytes per FASP frame stored in the microslices (32 bits words)
| Enumerator | |
|---|---|
| kMessCh | |
| kMessType | |
| kMessTlab | |
| kMessData | |
| kMessFasp | |
| kMessEpoch | |
Definition at line 76 of file CbmTrdUnpackFaspAlgo.h.
| Enumerator | |
|---|---|
| kData | |
| kEpoch | |
| kNone | |
Definition at line 85 of file CbmTrdUnpackFaspAlgo.h.
|
strong |
| Enumerator | |
|---|---|
| kMessLegacy | |
| kMess24 | unpacker version for 2-board FASPRO+GETS HW |
| kMessNoDef | unpacker version for 1-board FASPRO HW first used 18.06.24 (mCBM) default unpacker version |
Definition at line 91 of file CbmTrdUnpackFaspAlgo.h.
| CbmTrdUnpackFaspAlgo::CbmTrdUnpackFaspAlgo | ( | ) |
Create the Cbm Trd Unpack AlgoBase object.
Definition at line 37 of file CbmTrdUnpackFaspAlgo.cxx.
Referenced by CbmTrdUnpackFaspAlgo(), and operator=().
|
virtual |
Destroy the Cbm Trd Unpack Task object.
Definition at line 40 of file CbmTrdUnpackFaspAlgo.cxx.
|
delete |
Copy constructor - not implemented.
References CbmTrdUnpackFaspAlgo().
|
protected |
Finalize component (e.g. copy from temp buffers)
Convert global time from clk temporary representation to the finale version in [ns] Correct the time with the system time offset which is derived in calibration.
Definition at line 239 of file CbmTrdUnpackFaspAlgo.cxx.
References fDigiBuffer, fMess, fMonitor, kMessLegacy, NFASPCH, NFASPMOD, and size().
|
inlineprotected |
Finish function for this algorithm base clase.
Definition at line 174 of file CbmTrdUnpackFaspAlgo.h.
References fMonitor.
|
inlinevirtual |
Access the asic parameter list, read-only
Definition at line 143 of file CbmTrdUnpackFaspAlgo.h.
References fAsicSet.
|
virtual |
Get the requested parameter containers. Return the required parameter containers together with the paths to the ascii files to.
| [in] | std::string | geoTag as used in CbmSetup |
| [in] | uint32_t | runId for runwise defined parameters |
Definition at line 90 of file CbmTrdUnpackFaspAlgo.cxx.
|
inlineprotectedvirtual |
Additional initialisation function for all BaseR derived algorithms.
Definition at line 184 of file CbmTrdUnpackFaspAlgo.h.
|
protected |
Handles the distribution of the hidden derived classes to their explicit functions.
| parset |
Definition at line 43 of file CbmTrdUnpackFaspAlgo.cxx.
References fAsicSet, fDigiSet, fModuleId, fMonitor, CbmTrdParSet::GetModulePar(), CbmTrdParSet::GetNrOfModules(), and CbmTrdDigi::kFASP.
|
protected |
Get message type from the FASP word.
|
delete |
Assignment operator - not implemented.
References CbmTrdUnpackFaspAlgo().
|
protected |
Definition at line 118 of file CbmTrdUnpackFaspAlgo.cxx.
References fAsicSet, fDigiBuffer, fDigiSet, fMess, fTime, CbmTrdParModAsic::GetAsicPar(), CbmTrdParFasp::GetChannel(), CbmTrdParFasp::GetPadAddress(), CbmTrdParModDigi::GetPadColumn(), CbmTrdParModDigi::GetPadRow(), CbmTrdParFaspChannel::HasPairingR(), CbmTrdParFaspChannel::HasPairingT(), CbmTrdParFaspChannel::IsMasked(), kMessLegacy, CbmTrdParFasp::Print(), and VERBOSE.
Referenced by unpack().
| uint32_t CbmTrdUnpackFaspAlgo::ResetTimeslice | ( | ) |
Check and assure there are no data left-overs.
PAL 03/08/2022: clear internal buffer at latest between two timeslices (TS are self contained!) D.Smith: As of 27.4.2023 only loops over pads of a single component.
Definition at line 221 of file CbmTrdUnpackFaspAlgo.cxx.
References fDigiBuffer, NFASPCH, NFASPMOD, and size().
|
inline |
Set a predefined monitor.
| monitor | predefined unpacking monitor |
Definition at line 157 of file CbmTrdUnpackFaspAlgo.h.
References fMonitor.
|
protected |
Unpack a given microslice.
| ts | timeslice pointer |
| icomp | index to the component to be unpacked |
| imslice | index of the microslice to be unpacked |
Definition at line 278 of file CbmTrdUnpackFaspAlgo.cxx.
References fAsicSet, FASP_EPOCH_LENGTH, fMess, fTime, kData, kEpoch, kMess24, kMessLegacy, pushDigis(), and VERBOSE.
|
private |
list of modules for which there is are calibration parameters
Definition at line 224 of file CbmTrdUnpackFaspAlgo.h.
Referenced by GetAsicPar(), initParSet(), pushDigis(), and unpack().
|
staticprotected |
Bytes per FASP frame stored in the microslices (32 bits words)
Definition at line 215 of file CbmTrdUnpackFaspAlgo.h.
|
private |
Definition at line 218 of file CbmTrdUnpackFaspAlgo.h.
|
private |
Map eq_id -> (mod_id, crob_id)
Definition at line 219 of file CbmTrdUnpackFaspAlgo.h.
Referenced by FinalizeComponent(), pushDigis(), and ResetTimeslice().
|
private |
Definition at line 225 of file CbmTrdUnpackFaspAlgo.h.
Referenced by initParSet(), and pushDigis().
|
private |
Definition at line 226 of file CbmTrdUnpackFaspAlgo.h.
Referenced by FinalizeComponent(), pushDigis(), and unpack().
|
private |
Definition at line 223 of file CbmTrdUnpackFaspAlgo.h.
Referenced by initParSet().
|
private |
Potential (online) monitor for the unpacking process.
Buffered digi for each pad in CROB component
Definition at line 222 of file CbmTrdUnpackFaspAlgo.h.
Referenced by FinalizeComponent(), finish(), initParSet(), and SetMonitor().
|
protected |
Time offset for digi wrt the TS start, expressed in 80 MHz clks. It contains:
Definition at line 171 of file CbmTrdUnpackFaspAlgo.h.
Referenced by pushDigis(), and unpack().