12#ifndef ALICEO2_EMCAL_DIGITSWRITEOUTBUFFER_H_
13#define ALICEO2_EMCAL_DIGITSWRITEOUTBUFFER_H_
16#include <unordered_map>
63 bool isLive(
double t)
const {
return ((t - mTriggerTime) < mLiveTime || (t - mTriggerTime) >= (mLiveTime + mBusyTime - mPreTriggerTime)); }
64 bool isLive()
const {
return ((mLastEventTime - mTriggerTime) < mLiveTime || (mLastEventTime - mTriggerTime) >= (mLiveTime + mBusyTime - mPreTriggerTime)); }
68 bool preTriggerCollision()
const {
return ((mLastEventTime - mTriggerTime) >= (mLiveTime + mBusyTime - mPreTriggerTime)); }
74 void addDigits(
unsigned int towerID, std::vector<LabeledDigit>& digList);
87 void setLiveTime(
unsigned int liveTime) { mLiveTime = liveTime; }
88 void setBusyTime(
unsigned int busyTime) { mBusyTime = busyTime; }
91 unsigned int getPhase()
const {
return mPhase; }
98 unsigned int mBufferSize = 15;
99 unsigned int mLiveTime = 1500;
100 unsigned int mBusyTime = 35000;
101 unsigned int mPreTriggerTime = 600;
102 unsigned long mTriggerTime = 0;
103 unsigned long mLastEventTime = 0;
104 unsigned int mPhase = 0;
105 unsigned int mSwapPhase = 0;
106 bool mFirstEvent =
true;
107 std::deque<o2::emcal::DigitTimebin> mTimedDigitsFuture;
108 std::deque<o2::emcal::DigitTimebin> mTimedDigitsPast;
std::vector< uint16_t > nsamples
Container class for Digits, MC lebels, and trigger records.
void clear()
clear the container
const std::vector< o2::emcal::Digit > & getDigits() const
Getters for the finals data vectors, digits vector, labels vector, and trigger records vector.
const o2::dataformats::MCTruthContainer< o2::emcal::MCLabel > & getMCLabels() const
const std::vector< o2::emcal::TriggerRecord > & getTriggerRecords() const
Container class for time sampled digits.
void setLiveTime(unsigned int liveTime)
Setters for the live time, busy time, pre-trigger time.
const std::vector< o2::emcal::Digit > & getDigits() const
void setSampledDigitsTime()
This function sets the right time for all digits in the buffer.
void setBufferSize(unsigned int nsamples)
Setting the buffer size.
unsigned int getPhase() const
void finish()
This is for the readout window that was interrupted by the end of the run.
void clear()
clear the container
void flush()
clear DigitsVectorStream
double getTriggerTime() const
void reserve()
Reserve space for the future container.
void forwardMarker(o2::InteractionTimeRecord record, bool trigger)
forward the marker for every 100 ns
const std::vector< o2::emcal::TriggerRecord > & getTriggerRecords() const
const o2::dataformats::MCTruthContainer< o2::emcal::MCLabel > & getMCLabels() const
void addDigits(unsigned int towerID, std::vector< LabeledDigit > &digList)
void setPreTriggerTime(unsigned int pretriggerTime)
unsigned int getBufferSize() const
double getEventTime() const
void setBusyTime(unsigned int busyTime)
bool preTriggerCollision() const
~DigitsWriteoutBuffer()=default
Destructor.
bool isLive(double t) const
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...