11#ifndef CbmMcbm2018UnpackerAlgoRich2020_H
12#define CbmMcbm2018UnpackerAlgoRich2020_H
33#define FALLINGEDGEID 0
65 virtual Bool_t
Init();
84 virtual Bool_t
ProcessTs(
const fles::Timeslice& ts);
86 virtual Bool_t
ProcessTs(
const fles::Timeslice& ts,
size_t component);
88 virtual Bool_t
ProcessMs(
const fles::Timeslice& ts,
size_t uMsCompIdx,
size_t uMsIdx);
90 Bool_t
DebugMs(
const fles::Timeslice& ts,
size_t uMsCompIdx,
size_t uMsIdx);
100 Int_t
Debug(
const uint8_t* ptr,
const size_t size);
151 void WriteOutputDigi(Int_t fpgaID, Int_t channel, Double_t time, Double_t tot, uint64_t MSidx);
167 return ((fpgaID << 16) | (ch & 0x00FF));
331 TH1D*
GetTotH1(Int_t fpgaID, Int_t channel);
static constexpr size_t size()
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
TH1D * GetTotH1(Int_t fpgaID, Int_t channel)
Int_t ProcessCTSsubevent(size_t const size, uint8_t const *const ptr)
TrbNetState fTrbState
flag for an error in the datastream
std::map< Int_t, TH2D * > fhTot2dMap
std::vector< Int_t > fTDCAlignmentErrorPositions
Bool_t fbDoToTCorr
User setting: kTRUE activates ToT correction from Parameterfile.
CbmMcbm2018RichPar * fUnpackPar
Double_t fPrevLastCTSch2_fe_time
Int_t fTdcWordCorrectionGlobalCnt
virtual Bool_t InitContainers()
virtual Bool_t ReInitContainers()
void ProcessFallingEdge(Int_t subSubEvId, Int_t channel, Double_t time)
std::vector< CbmMcbmRichEdge > fFallingEdgesBuf
Exclude from ROOT dictionnary due to missing empty constructor!!
std::vector< TH2D * > fhTDCre_corrected1
Int_t ProcessTRBevent(size_t const size, uint8_t const *const ptr)
void SetMonitorMode(Bool_t bFlagIn=kTRUE)
Int_t ProcessTRBsubsubevent(size_t const size, uint8_t const *const ptr, Int_t const hubOffset, size_t const hubSize)
Double_t fLastCTSch2_re_time
std::vector< TH2D * > fhTDCre_corrected2
Double_t fLastCTSch0_re_time
Bool_t fRawDataMode
Switch ON the filling of a additional set of histograms.
virtual ~CbmMcbm2018UnpackerAlgoRich2020()
TH2D * GetTotH2(Int_t fpgaID)
void ProcessTimestampWord(Int_t tdcData)
Bool_t DebugMs(const fles::Timeslice &ts, size_t uMsCompIdx, size_t uMsIdx)
CbmMcbm2018UnpackerAlgoRich2020()
void ProcessMicroslice(size_t const size, uint8_t const *const ptr)
Double_t fdTimeOffsetNs
User settings: Data correction parameters.
std::vector< CbmMcbmRichEdge > fRisingEdgesBuf
Int_t ProcessTRBeventHeader(size_t const size, uint8_t const *const ptr)
Double_t fPrevLastCTSch0_re_time
Double_t fLastCTSch2_fe_time
void ErrorMsg(uint16_t errbits, RichErrorType type, uint16_t tdcAddr=0)
Int_t ProcessTRBsubevent(size_t const size, uint8_t const *const ptr)
void findTDCAlignmentError(uint8_t const *const ptr, size_t const size)
void SetVectCapInc(Double_t dIncFact)
Double_t fPrevLastCTSch2_re_time
void DoTotCorr(Bool_t bDoToTCorr=kTRUE)
void ProcessRisingEdge(Int_t subSubEvId, Int_t channel, Double_t time)
virtual Bool_t ProcessMs(const fles::Timeslice &ts, size_t uMsCompIdx, size_t uMsIdx)
void SetTimeOffsetNs(Double_t dOffsetIn=0.0)
Int_t GetPixelUID(Int_t fpgaID, Int_t ch) const
std::map< uint16_t, uint16_t > fMapFEE
Int_t ProcessSKIPsubevent(size_t const size, uint8_t const *const ptr)
Int_t ProcessTDCword(uint8_t const *const ptr, Int_t const word, size_t const size)
std::array< unsigned int, 33 > fChnlMsgCnt
Bool_t fbDebugMonitorMode
Switch ON the filling of a minimal set of histograms.
void SetRawDataMode(Bool_t bDebug=kFALSE)
std::map< Int_t, std::map< Int_t, TH1D * > > fhTotMap
virtual TList * GetParList()
virtual Bool_t ProcessTs(const fles::Timeslice &ts)
ClassDef(CbmMcbm2018UnpackerAlgoRich2020, 1)
void WriteOutputDigi(Int_t fpgaID, Int_t channel, Double_t time, Double_t tot, uint64_t MSidx)
Double_t fdCapacityIncFactor
Bool_t CreateHistograms()
Exclude from ROOT dictionnary due to missing empty constructor!!
std::vector< TCanvas * > fcTot2d
TArrayD fPrevLastCh0_re_time
Bool_t fbMonitorMode
Control flags.
Int_t fTdcWordCorrectionCnt