22#ifndef CbmTrdUnpackFaspAlgo_H
23#define CbmTrdUnpackFaspAlgo_H
25#include "CbmRecoUnpackAlgo.tmpl"
30#include "Timeslice.hpp"
33#include <RtypesCore.h>
116 CbmTrdFaspMessage(uint8_t
rob, uint8_t asic, uint8_t c, uint8_t typ, uint8_t t, uint16_t d, uint8_t l);
119 virtual void print()
const;
120 virtual void readDW(uint32_t w);
121 virtual void readEW(uint32_t w);
139 virtual void readDW(uint32_t w);
140 virtual void readEW(uint32_t w);
153 virtual std::vector<std::pair<std::string, std::shared_ptr<FairParGenericSet>>>*
165 bool pushDigis(std::vector<CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage> messages,
const uint16_t mod_id);
184 virtual Bool_t
init() {
return kTRUE; }
206 bool unpack(
const fles::Timeslice* ts, std::uint16_t icomp, UInt_t imslice);
218 std::map<uint16_t, std::pair<uint16_t, uint16_t>>*
fCompMap =
nullptr;
222 std::shared_ptr<CbmTrdUnpackFaspMonitor>
fMonitor =
nullptr;
Monitor class for the unpacker algorithms (CbmTrdUnpackFasp) of FASP data.
Describe TRD module ASIC settings (electronic gain, delays, etc)
virtual void readEW(uint32_t w)
virtual eMessageType getType(uint32_t w) const
virtual void readDW(uint32_t w)
Data structure for unpacking the FASP word.
uint8_t elink
optical link for read-out unit (up or down, starting with v2024)
eMessageVersion version
format version
virtual int getFaspIdMod() const
uint8_t tlab
time of the digi inside the epoch
uint8_t type
message type 0 = data, 1 = epoch
virtual void print() const
uint8_t rob
Read-Out unit id in the module.
virtual eMessageType getType(uint32_t w) const
uint32_t mod
full module address according to CbmTrdAddress
virtual void readDW(uint32_t w)
virtual ~CbmTrdFaspMessage()=default
virtual void readEW(uint32_t w)
uint8_t fasp
FASP id in the module.
uint32_t epoch
epoch id (not used for the moment)
CbmTrdFaspMessage(const CbmTrdFaspMessage &)=default
uint8_t ch
ch id in the FASP
CbmTrdFaspMessage()=default
std::array< std::vector< CbmTrdDigi >, NFASPMOD *NFASPCH > fDigiBuffer
CbmTrdUnpackFaspAlgo(const CbmTrdUnpackFaspAlgo &)=delete
Copy constructor - not implemented.
CbmTrdParSetAsic fAsicSet
uint32_t ResetTimeslice()
Check and assure there are no data left-overs.
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 pa...
static const std::uint8_t fBytesPerWord
Bytes per FASP frame stored in the microslices (32 bits words)
bool unpack(const fles::Timeslice *ts, std::uint16_t icomp, UInt_t imslice)
Unpack a given microslice.
std::map< uint16_t, std::pair< uint16_t, uint16_t > > * fCompMap
eMessageLength
Bytes per FASP frame stored in the microslices (32 bits words)
@ kMess24
unpacker version for 2-board FASPRO+GETS HW
@ kMessNoDef
unpacker version for 1-board FASPRO HW first used 18.06.24 (mCBM)
eMessageType mess_type(uint32_t wd)
Get message type from the FASP word.
void SetMonitor(std::shared_ptr< CbmTrdUnpackFaspMonitor > monitor)
Set a predefined monitor.
CbmTrdUnpackFaspAlgo()
Create the Cbm Trd Unpack AlgoBase object.
std::vector< uint16_t > fModuleId
CbmTrdFaspMessage * fMess
void finish()
Finish function for this algorithm base clase.
Bool_t initParSet(FairParGenericSet *parset)
Handles the distribution of the hidden derived classes to their explicit functions.
CbmTrdUnpackFaspAlgo & operator=(const CbmTrdUnpackFaspAlgo &)=delete
Assignment operator - not implemented.
void FinalizeComponent()
Finalize component (e.g. copy from temp buffers)
std::shared_ptr< CbmTrdUnpackFaspMonitor > fMonitor
Potential (online) monitor for the unpacking process.
bool pushDigis(std::vector< CbmTrdUnpackFaspAlgo::CbmTrdFaspMessage > messages, const uint16_t mod_id)
virtual const CbmTrdParSetAsic * GetAsicPar() const
CbmTrdParSetDigi * fDigiSet
virtual Bool_t init()
Additional initialisation function for all BaseR derived algorithms.
virtual ~CbmTrdUnpackFaspAlgo()
Destroy the Cbm Trd Unpack Task object.
ULong64_t fTime
Time offset for digi wrt the TS start, expressed in 80 MHz clks. It contains: