12#ifndef ALICEO2_TOF_WINDOWFILLER_H_
13#define ALICEO2_TOF_WINDOWFILLER_H_
64 template <
typename VROF,
typename VPAT>
70 for (
const auto crow :
row) {
74 for (
const auto dia :
pattern) {
147 void fillDigitsInStrip(std::vector<Strip>* strips,
int channel,
int tdc,
int tot, uint64_t nbc, UInt_t istrip, uint32_t triggerorbit = 0, uint16_t triggerbunch = 0);
153 void insertDigitInFuture(Int_t channel, Int_t tdc, Int_t tot, uint64_t
bc, Int_t
label = 0, uint32_t triggerorbit = 0, uint16_t triggerbunch = 0)
Definition of the TOF cluster.
Diagnostic class for TOF.
TOF digit implementation.
static constexpr Float_t DEADTIMETDC
Single channel TDC dead time (ps)
static constexpr int NCHANNELS
static constexpr int BC_IN_WINDOW
static void setNOrbitInTF(uint32_t norb)
void addCrateHeaderData(unsigned long orbit, int crate, int32_t bc, uint32_t eventCounter)
std::vector< uint64_t > mErrors
void fillDigitsInStrip(std::vector< Strip > *strips, int channel, int tdc, int tot, uint64_t nbc, UInt_t istrip, uint32_t triggerorbit=0, uint16_t triggerbunch=0)
int mIcurrentReadoutWindow
std::vector< uint8_t > & getPatterns()
std::vector< CrateHeaderData > mCrateHeaderData
void setContinuous(bool value=true)
uint64_t mReadoutWindowCurrent
Diagnostic & getDiagnosticFrequency()
void checkIfReuseFutureDigits()
std::vector< Strip > mStrips[MAXWINDOWS]
static const int MAXWINDOWS
void addCount(int channel)
std::vector< PatternData > mCratePatterns
InteractionTimeRecord mEventTime
bool isContinuous() const
void setReadoutWindowData(const VROF &row, const VPAT &pattern)
bool isMergable(Digit digit1, Digit digit2)
std::vector< Strip > * mStripsCurrent
void checkIfReuseFutureDigitsRO()
int mChannelCounts[o2::tof::Geo::NCHANNELS]
void resizeVectorFutureDigit(int size)
std::vector< Strip > * mStripsNext[MAXWINDOWS - 1]
void flushOutputContainer(std::vector< Digit > &digits)
void addPattern(const uint32_t val, int icrate, int orbit, int bc)
std::vector< Digit > * getDigitPerTimeFrame()
std::vector< ReadoutWindowData > mReadoutWindowDataFiltered
DigitHeader & getDigitHeader()
void setNOrbitInTF(uint32_t norb)
void setEventTime(InteractionTimeRecord value)
ClassDefNV(WindowFiller, 2)
std::vector< uint8_t > mPatterns
Diagnostic mDiagnosticFrequency
std::vector< Digit > mDigitsPerTimeFrame
void maskNoiseRate(int val)
void insertDigitInFuture(Int_t channel, Int_t tdc, Int_t tot, uint64_t bc, Int_t label=0, uint32_t triggerorbit=0, uint16_t triggerbunch=0)
std::vector< Digit > mFutureDigits
void fillDiagnosticFrequency()
std::vector< ReadoutWindowData > mReadoutWindowData
void setCurrentReadoutWindow(uint64_t value)
uint64_t getCurrentReadoutWindow() const
void setFirstIR(const o2::InteractionRecord &ir)
void fillOutputContainer(std::vector< Digit > &digits)
std::vector< ReadoutWindowData > * getReadoutWindowDataFiltered()
std::vector< ReadoutWindowData > * getReadoutWindowData()
InteractionRecord mFirstIR
GLsizei const GLfloat * value
GLuint GLsizei const GLchar * label
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
PatternData(uint32_t patt=0, int icr=0, unsigned long rw=0)
o2::InteractionRecord ir(0, 0)
std::vector< Digit > digits
std::array< uint16_t, 5 > pattern