CbmRoot
Loading...
Searching...
No Matches
CbmMcbm2018UnpackerTaskSts.h
Go to the documentation of this file.
1/* Copyright (C) 2019-2020 Facility for Antiproton and Ion Research in Europe, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Pierre-Alain Loizeau [committer] */
4
5// -----------------------------------------------------------------------------
6// ----- -----
7// ----- CbmMcbm2018UnpackerTaskSts -----
8// ----- Created 26.01.2019 by P.-A. Loizeau -----
9// ----- -----
10// -----------------------------------------------------------------------------
11
12#ifndef CbmMcbm2018UnpackerTaskSts_H
13#define CbmMcbm2018UnpackerTaskSts_H
14
15#include "CbmErrorMessage.h"
16#include "CbmMcbmUnpack.h"
17#include "CbmStsDigi.h"
18
19#include "Timeslice.hpp"
20
22//class TClonesArray;
23
25 UInt_t uFeb;
26 UInt_t uChan;
27 Bool_t bMasked;
28};
29
31public:
32 CbmMcbm2018UnpackerTaskSts(UInt_t uNbSdpb = 1);
33
36
38
39 virtual Bool_t Init();
40 virtual Bool_t DoUnpack(const fles::Timeslice& ts, size_t component);
41 virtual void Reset();
42
43 virtual void Finish();
44
45 void SetParContainers();
46
47 Bool_t InitContainers();
48
49 Bool_t ReInitContainers();
50
52 void AddMsComponentToList(size_t component, UShort_t usDetectorId);
53 void SetNbMsInTs(size_t /*uCoreMsNb*/, size_t /*uOverlapMsNb*/) {};
54
55 inline void SetMonitorMode(Bool_t bFlagIn = kTRUE) { fbMonitorMode = bFlagIn; }
56 void SetIgnoreOverlapMs(Bool_t bFlagIn = kTRUE);
57
58 void SetTimeOffsetNs(Double_t dOffsetIn = 0.0);
59 void SetTimeOffsetNsAsic(UInt_t uAsicIdx, Double_t dOffsetIn = 0.0);
60 void MaskNoisyChannel(UInt_t uFeb, UInt_t uChan, Bool_t bMasked = kTRUE);
61 void SetAdcCut(UInt_t uAdc);
62
64 void SetBinningFwFlag(Bool_t bEnable = kTRUE);
65
67 void SetWriteOutputFlag(Bool_t bFlagIn) { fbWriteOutput = bFlagIn; }
68 void SeparatePulserOutput(Bool_t bFlagIn);
69
70private:
75 Bool_t fbPulserOutput = kTRUE;
76
78 std::vector<FebChanMask> fvChanMasks;
79
81 uint64_t fulTsCounter;
82
84 std::vector<CbmStsDigi>* fpvDigiSts = nullptr;
85 std::vector<CbmStsDigi>* fpvPulserDigiSts = nullptr;
86 std::vector<CbmErrorMessage>* fpvErrorSts = nullptr;
87
90
91
93};
94
95#endif
Bool_t fbWriteOutput
Switch ON the filling of a additional set of histograms.
CbmMcbm2018UnpackerTaskSts(const CbmMcbm2018UnpackerTaskSts &)=delete
void SetTimeOffsetNs(Double_t dOffsetIn=0.0)
void MaskNoisyChannel(UInt_t uFeb, UInt_t uChan, Bool_t bMasked=kTRUE)
uint64_t fulTsCounter
Statistics & first TS rejection.
Bool_t fbPulserOutput
If ON the output TClonesArray of digi is written to disk.
Bool_t fbDebugMonitorMode
Switch ON the filling of a minimal set of histograms.
void SetBinningFwFlag(Bool_t bEnable=kTRUE)
=> Quick and dirty hack for binning FW!!!
CbmMcbm2018UnpackerAlgoSts * fUnpackerAlgo
Processing algo.
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
Temp until we change from CbmMcbmUnpack to something else.
std::vector< CbmStsDigi > * fpvDigiSts
Output vectors.
virtual Bool_t DoUnpack(const fles::Timeslice &ts, size_t component)
CbmMcbm2018UnpackerTaskSts operator=(const CbmMcbm2018UnpackerTaskSts &)=delete
void SetMonitorMode(Bool_t bFlagIn=kTRUE)
void SetWriteOutputFlag(Bool_t bFlagIn)
Task settings.
std::vector< CbmStsDigi > * fpvPulserDigiSts
std::vector< CbmErrorMessage > * fpvErrorSts
std::vector< FebChanMask > fvChanMasks
If ON a separate output vector of digi is used for the pulser.
void SetTimeOffsetNsAsic(UInt_t uAsicIdx, Double_t dOffsetIn=0.0)
void SetIgnoreOverlapMs(Bool_t bFlagIn=kTRUE)