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, 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< 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, std::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 std::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.
|
virtual |
Destroy the Cbm Trd Unpack Task object.
Definition at line 40 of file CbmTrdUnpackFaspAlgo.cxx.
|
delete |
Copy constructor - not implemented.
|
protected |
Finalize component (e.g. copy from temp buffers)
Definition at line 239 of file CbmTrdUnpackFaspAlgo.cxx.
References fDigiBuffer, fMess, fMonitor, kMessLegacy, NFASPCH, NFASPMOD, size(), and CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::version.
|
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] | std::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 CbmTrdParSet::addParam(), fAsicSet, fDigiSet, fModuleId, fMonitor, CbmTrdParSet::GetModuleMap(), CbmTrdParSet::GetModulePar(), CbmTrdParSet::GetNrOfModules(), and CbmTrdDigi::kFASP.
|
protected |
Get message type from the FASP word.
|
delete |
Assignment operator - not implemented.
|
protected |
Definition at line 118 of file CbmTrdUnpackFaspAlgo.cxx.
References fAsicSet, fDigiBuffer, fDigiSet, fMess, fTime, CbmTrdParModAsic::GetAsicPar(), CbmTrdParFasp::GetChannel(), CbmTrdParSet::GetModulePar(), CbmTrdParFasp::GetPadAddress(), CbmTrdParModDigi::GetPadColumn(), CbmTrdParModDigi::GetPadRow(), CbmTrdParFaspChannel::HasPairingR(), CbmTrdParFaspChannel::HasPairingT(), CbmTrdParFaspChannel::IsMasked(), kMessLegacy, CbmTrdParFasp::Print(), VERBOSE, and CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::version.
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 273 of file CbmTrdUnpackFaspAlgo.cxx.
References CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::ch, CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::elink, fAsicSet, FASP_EPOCH_LENGTH, CbmTrdParSetAsic::FindModuleByEqId(), fMess, fTime, CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::getFaspIdMod(), CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::getType(), kData, kEpoch, kMess24, kMessLegacy, CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::mod, CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::print(), pushDigis(), CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::readDW(), CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::readEW(), CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::rob, CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage::type, 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().