CbmRoot
Loading...
Searching...
No Matches
CbmRichUnpackAlgo2022.h
Go to the documentation of this file.
1/* Copyright (C) 2021 Goethe-University Frankfurt, Frankfurt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Pascal Raisig [committer] */
4
21#ifndef CbmRichUnpackAlgo2022_H
22#define CbmRichUnpackAlgo2022_H
23
24#include "CbmMcbm2018RichPar.h"
25#include "CbmRecoUnpackAlgo.tmpl"
26#include "CbmRichDigi.h"
28#include "Timeslice.hpp" // timeslice
29
30#include <Rtypes.h> // for types
31#include <RtypesCore.h>
32
33#include <cstddef>
34#include <cstdint>
35#include <iomanip>
36#include <memory>
37#include <utility>
38
40 public:
43
45 virtual ~CbmRichUnpackAlgo2022();
46
49
52
53
54 protected:
56
58
60
61 void processCtsSubSubEvent(CbmRichUnpackAlgoMicrosliceReader& reader, uint32_t subSubEventSize,
62 uint32_t subSubEventId);
63
64 void processSubSubEvent(CbmRichUnpackAlgoMicrosliceReader& reader, int nofTimeWords, uint32_t subSubEventId);
65
66 void processTimeDataWord(CbmRichUnpackAlgoMicrosliceReader& reader, int iTdc, uint32_t epoch, uint32_t tdcWord,
67 uint32_t subSubEventId, std::vector<double>& raisingTime);
68
72 void writeOutputDigi(Int_t fpgaID, Int_t channel, Double_t time, Double_t tot);
73
74
86 bool unpack(const fles::Timeslice* ts, std::uint16_t icomp, UInt_t imslice);
87
88 //bool checkMaskedDiRICH(Int_t subSubEventId);
89
91 //CbmMcbm2018RichPar fUnpackPar;
92
93 double fMbsPrevTimeCh0 = 0.;
94 double fMbsPrevTimeCh1 = 0.;
95
96 uint64_t fCbmTimeMS;
98
99 double fPrevLastCh0ReTime[13]; // 12 DiRICHes chnl0 + 1 CTS chnl0
101
102 private:
103 ClassDef(CbmRichUnpackAlgo2022, 2)
104};
105
106#endif // CbmRichUnpackAlgo2022_H
void processCtsSubSubEvent(CbmRichUnpackAlgoMicrosliceReader &reader, uint32_t subSubEventSize, uint32_t subSubEventId)
bool unpack(const fles::Timeslice *ts, std::uint16_t icomp, UInt_t imslice)
Unpack a given microslice. To be implemented in the derived unpacker algos.
virtual ~CbmRichUnpackAlgo2022()
Destroy the Cbm Trd Unpack Task object.
CbmRichUnpackAlgo2022(const CbmRichUnpackAlgo2022 &)=delete
Copy constructor - not implemented.
void processHubBlock(CbmRichUnpackAlgoMicrosliceReader &reader)
void processTrbPacket(CbmRichUnpackAlgoMicrosliceReader &reader)
void processTimeDataWord(CbmRichUnpackAlgoMicrosliceReader &reader, int iTdc, uint32_t epoch, uint32_t tdcWord, uint32_t subSubEventId, std::vector< double > &raisingTime)
double fMbsPrevTimeCh0
Parameters for the unpacking.
CbmRichUnpackAlgo2022()
Create the Cbm Trd Unpack AlgoBase object.
CbmRichUnpackAlgo2022 & operator=(const CbmRichUnpackAlgo2022 &)=delete
Assignment operator - not implemented.
void processCBMtime(CbmRichUnpackAlgoMicrosliceReader &reader)
void writeOutputDigi(Int_t fpgaID, Int_t channel, Double_t time, Double_t tot)
void processSubSubEvent(CbmRichUnpackAlgoMicrosliceReader &reader, int nofTimeWords, uint32_t subSubEventId)