CbmRoot
Loading...
Searching...
No Matches
CbmMcbm2018UnpackerTaskMuch.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// ----- CbmMcbm2018UnpackerTaskMuch -----
8// ----- Created 02.02.2019 by P.-A. Loizeau -----
9// ----- -----
10// -----------------------------------------------------------------------------
11
12#ifndef CbmMcbm2018UnpackerTaskMuch_H
13#define CbmMcbm2018UnpackerTaskMuch_H
14
15#include "CbmErrorMessage.h"
16#include "CbmMcbmUnpack.h"
17#include "CbmMuchBeamTimeDigi.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 CbmMcbm2018UnpackerTaskMuch(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
61 void EnableAsicType(Int_t fiFlag = 0);
62
64 void SetBinningFwFlag(Bool_t bEnable = kTRUE);
65
67 void SetWriteOutputFlag(Bool_t bFlagIn) { fbWriteOutput = bFlagIn; }
68 //Masking Noisy Channels
69 void MaskNoisyChannel(UInt_t uFeb, UInt_t uChan, Bool_t bMasked = kTRUE);
71 void SetAdcCut(UInt_t uAdc);
72
73private:
78
80 std::vector<MuchFebChanMask> fvChanMasks;
81
83 uint64_t fulTsCounter;
84
86 std::vector<CbmMuchBeamTimeDigi>* fpvDigiMuch = nullptr;
87 std::vector<CbmErrorMessage>* fpvErrorMuch = nullptr;
88
91
93};
94
95#endif
virtual Bool_t DoUnpack(const fles::Timeslice &ts, size_t component)
void MaskNoisyChannel(UInt_t uFeb, UInt_t uChan, Bool_t bMasked=kTRUE)
Bool_t fbDebugMonitorMode
Switch ON the filling of a minimal set of histograms.
void SetTimeOffsetNsAsic(UInt_t uAsicIdx, Double_t dOffsetIn=0.0)
CbmMcbm2018UnpackerTaskMuch(const CbmMcbm2018UnpackerTaskMuch &)=delete
std::vector< CbmMuchBeamTimeDigi > * fpvDigiMuch
Output vectors.
CbmMcbm2018UnpackerTaskMuch operator=(const CbmMcbm2018UnpackerTaskMuch &)=delete
void SetBinningFwFlag(Bool_t bEnable=kTRUE)
=> Quick and dirty hack for binning FW!!!
Bool_t fbWriteOutput
Switch ON the filling of a additional set of histograms.
void SetMonitorMode(Bool_t bFlagIn=kTRUE)
CbmMcbm2018UnpackerAlgoMuch * fUnpackerAlgo
Processing algo.
void SetWriteOutputFlag(Bool_t bFlagIn)
Task settings.
std::vector< CbmErrorMessage > * fpvErrorMuch
void SetTimeOffsetNs(Double_t dOffsetIn=0.0)
uint64_t fulTsCounter
Statistics & first TS rejection.
std::vector< MuchFebChanMask > fvChanMasks
If ON the output TClonesArray of digi is written to disk.
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
Temp until we change from CbmMcbmUnpack to something else.
void SetIgnoreOverlapMs(Bool_t bFlagIn=kTRUE)