12#ifndef ALICEO2_EMCAL_DIGITSWRITEOUTBUFFER_H_
13#define ALICEO2_EMCAL_DIGITSWRITEOUTBUFFER_H_
16#include <unordered_map>
65 return ((t - mTriggerTime) < mLiveTime || (t - mTriggerTime) >= (mLiveTime + mBusyTime - mPreTriggerTime));
69 return ((mLastEventTime - mTriggerTime) < (mLiveTime - mPreTriggerTime) || (mLastEventTime - mTriggerTime) >= (mLiveTime + mBusyTime - mPreTriggerTime));
76 return mLastEventTime == mTriggerTime;
81 bool preTriggerCollision()
const {
return ((mLastEventTime - mTriggerTime) >= (mLiveTime + mBusyTime - mPreTriggerTime)); }
87 void addDigits(
unsigned int towerID, std::vector<LabeledDigit>& digList);
111 unsigned int mBufferSize = 15;
112 unsigned int mLiveTime = 1500;
113 unsigned int mBusyTime = 35000;
114 unsigned int mPreTriggerTime = 600;
115 unsigned long mTriggerTime = 0;
116 unsigned long mLastEventTime = 0;
117 unsigned int mPhase = 0;
118 unsigned int mSwapPhase = 0;
119 bool mFirstEvent =
true;
120 std::deque<o2::emcal::DigitTimebin> mTimedDigitsFuture;
121 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
bool isCurrentEventTriggered() 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 ...