13#ifndef CbmMcbm2018UnpackerAlgoPsd_H
14#define CbmMcbm2018UnpackerAlgoPsd_H
48 virtual Bool_t
Init();
58 Bool_t
ProcessTs(
const fles::Timeslice& ts);
60 Bool_t
ProcessMs(
const fles::Timeslice& ts,
size_t uMsCompIdx,
size_t uMsIdx);
76 std::pair<std::vector<CbmPsdDigi>*, std::vector<CbmPsdDsp>*>
unpack(
const fles::Timeslice* ts, std::uint16_t icomp);
std::vector< Int_t > fviPsdChUId
Bool_t ProcessTs(const fles::Timeslice &ts)
UInt_t fuMsIndex
Start Time in ns of current MS from its index field in header.
UInt_t fuCurrDpbId
Current equipment ID, tells from which DPB the current MS is originating.
Bool_t ProcessMs(const fles::Timeslice &ts, size_t uMsCompIdx, size_t uMsIdx)
Double_t fdTsStopTimeCore
Time in ns of current TS from the index of the first MS first component.
UInt_t fuCurrentEquipmentId
Index of current MS within the TS.
static const Int_t kiMaxNbFlibLinks
Constants.
std::map< UInt_t, UInt_t > fGdpbIdIndexMap
Total number of GDPBs in the system.
CbmMcbm2018UnpackerAlgoPsd()
Double_t fdTimeOffsetNs
User settings: Data correction parameters.
UInt_t fuNrOfGbtx
Number of channels per GDPB.
Bool_t fbMonitorMode
Control flags.
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
CbmMcbm2018UnpackerAlgoPsd & operator=(const CbmMcbm2018UnpackerAlgoPsd &)=delete
Copy assignment operator - not implemented.
Bool_t SetDigiOutputPointer(std::vector< CbmPsdDigi > *const pVector)
static const UInt_t kuBytesPerMessage
ULong64_t fulCurrentTsIdx
UInt_t fuNrOfChannelsPerFee
Number of FEBs per GDPB.
static const UInt_t kuDetMask
CbmMcbm2018UnpackerAlgoPsd(const CbmMcbm2018UnpackerAlgoPsd &)=delete
Copy constructor - not implemented.
Bool_t ProcessTs(const fles::Timeslice &ts, size_t)
std::vector< Bool_t > fvbMaskedComponents
Output Dsp vector /* TODO CHECK The exclamation mark signals the transientness */.
UInt_t fuNrOfChannelsPerGdpb
Number of channels in each FEE.
Double_t fdMsTime
End Time in ns of current TS Core from the index of the first MS first component.
UInt_t fuCurrDpbIdx
Temp holder until Current equipment ID is properly filled in MS.
Double_t fdTsStartTime
SysId of the current MS in TS (0 to fuTotalMsNb)
Bool_t fbDebugMonitorMode
Switch ON the filling of a minimal set of histograms.
std::unique_ptr< CbmPsdDigi > MakeDigi(CbmPsdDsp dsp)
void SetDspWriteMode(Bool_t bFlagIn=kTRUE)
UInt_t fuNrOfFeePerGdpb
gDPB ID to index map
Bool_t fbDebugWriteOutput
Switch ON the filling of a additional set of histograms.
std::chrono::steady_clock::time_point ftStartTimeUnix
std::vector< CbmPsdDigi > * fPsdDigiVector
If ON the output vector of dsp debug information is written to disk.
void SetTimeOffsetNs(Double_t dOffsetIn=0.0)
Bool_t CreateHistograms()
ULong64_t fulCurrentMsIdx
Idx of the current TS.
~CbmMcbm2018UnpackerAlgoPsd()
Double_t fdStartTime
Index of the DPB from which the MS currently unpacked is coming.
size_t fuCurrentMsSysId
Idx of the current MS in TS (0 to fuTotalMsNb)
void SetMonitorMode(Bool_t bFlagIn=kTRUE)
CbmMcbm2018PsdPar * fUnpackPar
Settings from parameter file.
std::pair< std::vector< CbmPsdDigi > *, std::vector< CbmPsdDsp > * > unpack(const fles::Timeslice *ts, std::uint16_t icomp)
Bool_t ReInitContainers()
Bool_t SetDspOutputPointer(std::vector< CbmPsdDsp > *const pVector)
std::vector< CbmPsdDsp > * fPsdDspVector
Output Digi vector /* TODO CHECK The exclamation mark signals the transientness */.
Data class for PSD digital signal processing (DSP)