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<std::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, std::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.
std::uint8_t getNrOfRdaWords(std::uint8_t nsamples)
Get the Nr Of Rda Words required for the amount of ADC samples.
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.
virtual bool unpack(const fles::Timeslice *ts, std::uint16_t icomp, UInt_t imslice)
Unpack a given microslice.
void makeDigi(CbmTrdRawMessageSpadic raw)
Create an actual digi from the raw message.
CbmTrdUnpackAlgoLegacy2020R()
Create the Cbm Trd Unpack AlgoBase object.
std::vector< std::int32_t > * fTimeshiftsParVec
Vector containing the timeshift parameters for the correction of the µSlice timeshifts for a given ts...
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.
CbmTrdUnpackAlgoLegacy2020R & operator=(const CbmTrdUnpackAlgoLegacy2020R &)=delete
Assignment operator - not implemented.
static const std::uint8_t fBytesPerWord
Bytes per word stored in the microslices.
size_t fEpoch
Time of the current epoch marker.
std::int16_t extractSample(const size_t word, const Spadic::MsMessageType msgType, std::uint32_t isample, bool multihit=false)
Extract the given sample from the given rda word.
const std::vector< std::uint8_t > fExtractSampleIndicesVec
virtual CbmTrdRawMessageSpadic makeRaw(const size_t word, fles::MicrosliceDescriptor msDesc)
Create a CbmTrdRawMessageSpadic from the hit message input.
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...
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.