19#ifndef CbmTrdUnpackAlgoLegacy2020R_H
20#define CbmTrdUnpackAlgoLegacy2020R_H
26#include "Timeslice.hpp"
31#include <RtypesCore.h>
64 virtual std::vector<std::pair<std::string, std::shared_ptr<FairParGenericSet>>>*
85 bool multihit =
false);
87 const std::vector<uint8_t>
fExtractSampleIndicesVec = {4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5,
88 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0};
148 virtual bool unpack(
const fles::Timeslice* ts, uint16_t icomp, UInt_t imslice);
Software representation of the SPADIC v2.2+.
Baseclass for the TrdR unpacker algorithms.
Base class for storing raw information which comes from the Spadic v2.2 trough flib or from a tsa fil...
static Double_t GetClockCycle()
Get the Clock Cycle.
CbmTrdUnpackAlgoBaseR(std::string name)
Create the Cbm Trd Unpack AlgoBase object.
int16_t extractSample(const size_t word, const Spadic::MsMessageType msgType, uint32_t isample, bool multihit=false)
Extract the given sample from the given rda word.
size_t fMsLengthCC
Microslice length [CC]. To be overwritten in the version specific unpackers.
Spadic::MsInfoType getInfoType(const size_t msg)
Identify the InfoType of a 64bit InfoMessage word inside a Microslice.
std::vector< int32_t > * fTimeshiftsParVec
Vector containing the timeshift parameters for the correction of the micro-Slice timeshifts for a giv...
void makeDigi(CbmTrdRawMessageSpadic raw)
Create an actual digi from the raw message.
CbmTrdUnpackAlgoLegacy2020R()
Create the Cbm Trd Unpack AlgoBase object.
Spadic::MsMessageType getMessageType(const size_t msg)
Identify the message type of a 64bit word inside a Microslice.
size_t extractEpoch(const size_t word)
Extract the epoch time reference information from the epoch word.
CbmTrdUnpackAlgoLegacy2020R(const CbmTrdUnpackAlgoLegacy2020R &)=delete
Copy constructor - not implemented.
const std::vector< uint8_t > fExtractSampleIndicesVec
CbmTrdUnpackAlgoLegacy2020R & operator=(const CbmTrdUnpackAlgoLegacy2020R &)=delete
Assignment operator - not implemented.
static const uint8_t fBytesPerWord
Bytes per word stored in the microslices.
size_t fEpoch
Time of the current epoch marker.
virtual bool unpack(const fles::Timeslice *ts, uint16_t icomp, UInt_t imslice)
Unpack a given microslice.
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 pa...
uint8_t getNrOfRdaWords(uint8_t nsamples)
Get the Nr Of Rda Words required for the amount of ADC samples.
virtual CbmTrdRawMessageSpadic makeRaw(const size_t word, fles::MicrosliceDescriptor msDesc)
Create a CbmTrdRawMessageSpadic from the hit message input.
virtual bool setDerivedTsParameters(size_t itimeslice)
Set the Derived Ts Parameters.
virtual ~CbmTrdUnpackAlgoLegacy2020R()
Destroy the Cbm Trd Unpack Task object.
void finishDerived()
Additional explicit finish function of this algo implementation.