CbmRoot
Loading...
Searching...
No Matches
CbmOffsetDigiTime.h
Go to the documentation of this file.
1/* Copyright (C) 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// ----- CbmOffsetDigiTime -----
8// ----- Created 13.02.2020 by P.-A. Loizeau -----
9// ----- -----
10// -----------------------------------------------------------------------------
11
12#ifndef CBMOFFSETDIGITIME_H
13#define CBMOFFSETDIGITIME_H
14
16
18#include "FairTask.h"
19
21#include "TClonesArray.h"
22
24#include <map>
25#include <set>
26#include <vector>
27
28template<class TDigi>
29class CbmOffsetDigiTime : public FairTask {
30 public:
31 CbmOffsetDigiTime(TString sDigiBranchName, TString sDigiCalBranchName = "", TString sDigiCalBranchDescr = "");
32
35
37
38
40 virtual InitStatus Init();
41
43 virtual InitStatus ReInit();
44
45
47 virtual void Exec(Option_t*);
48
50 virtual void SetParContainers();
51
53 virtual void Finish();
54
56 void SetWriteOutputFlag(Bool_t bFlagIn) { fbWriteOutput = bFlagIn; }
57 void AddOffsetPoint(UInt_t uIndexTS, Double_t dOffset) { fmOffsets[uIndexTS] = dOffset; }
58 void AddAddressToOffset(UInt_t uDigiAddress) { fsAddrToOffset.insert(uDigiAddress); }
59
60 private:
63 kTRUE;
64
66 uint64_t fulTsCounter = 0;
67
69 std::vector<TDigi> const* fvDigiIn = nullptr;
70 std::vector<TDigi>* fvDigiOut = nullptr;
71
73 TClonesArray* fArrayDigiIn = nullptr;
74 TClonesArray* fArrayDigiOut = nullptr;
75
76
78 std::map<UInt_t, Double_t> fmOffsets = {};
79 Double_t fdCurrentOffset = 0.0;
80 std::map<UInt_t, Double_t>::iterator fmitNextOffset = fmOffsets.end();
81
83 std::set<UInt_t> fsAddrToOffset = {};
84
86 TString fsDigiBranchName = "";
87 TString fsDigiBranchNameCal = "";
89
91};
92
94#include "CbmOffsetDigiTime.tmpl"
95
96#endif // CBMOFFSETDIGITIME_H
CbmRoot (+externals) headers.
TClonesArray * fArrayDigiIn
Output vector of Digis, propagated to framework for output.
virtual InitStatus ReInit()
virtual InitStatus Init()
void AddOffsetPoint(UInt_t uIndexTS, Double_t dOffset)
TClonesArray * fArrayDigiOut
Input array of Digis, recovered from framework for input.
uint64_t fulTsCounter
If ON the output vector of digi is written to disk by FairRoot, otherwise just made available for hig...
CbmOffsetDigiTime(TString sDigiBranchName, TString sDigiCalBranchName="", TString sDigiCalBranchDescr="")
std::set< UInt_t > fsAddrToOffset
List of addresses to which the offset should be applied.
std::map< UInt_t, Double_t >::iterator fmitNextOffset
Current offset in [ns].
CbmOffsetDigiTime operator=(const CbmOffsetDigiTime &)=delete
Bool_t fbWriteOutput
Control flags.
std::vector< TDigi > const * fvDigiIn
TS counter, not same as TS index!
Double_t fdCurrentOffset
Index is the first TS where the offset is valid.
TString fsDigiBranchName
Addresses for which the digi time is offset, if empty applied to all.
virtual void Exec(Option_t *)
CbmOffsetDigiTime(const CbmOffsetDigiTime &)=delete
void AddAddressToOffset(UInt_t uDigiAddress)
virtual void SetParContainers()
virtual void Finish()
std::map< UInt_t, Double_t > fmOffsets
Output array of Digis, propagated to framework for output.
void SetWriteOutputFlag(Bool_t bFlagIn)
Task settings.
std::vector< TDigi > * fvDigiOut
Input vector of Digis, recovered from framework for input.
ClassDef(CbmOffsetDigiTime, 0)