68  for (
int ientry = 0; ientry < digList.size(); ientry++) {
 
   69    auto& buffEntry = mTimedDigitsFuture[ientry];
 
   70    auto& dig = digList.at(ientry);
 
   72    auto towerEntry = buffEntry.mDigitMap->find(towerID);
 
   73    if (towerEntry == buffEntry.mDigitMap->end()) {
 
   74      towerEntry = buffEntry.mDigitMap->insert(std::pair<
int, std::list<o2::emcal::LabeledDigit>>(towerID, std::list<o2::emcal::LabeledDigit>())).first;
 
   76    towerEntry->second.push_back(dig);
 
 
   87  unsigned long eventTime = record.
getTimeNS();
 
   90  int sampleDifference = (eventTime - mTriggerTime) / 100 - (mLastEventTime - mTriggerTime) / 100;
 
   92  for (
int idel = 0; idel < sampleDifference; idel++) {
 
   95    if (!mTimedDigitsFuture.front().mRecordMode) {
 
  101    mTimedDigitsPast.push_back(mTimedDigitsFuture.front());
 
  102    mTimedDigitsFuture.pop_front();
 
  105    if (mTimedDigitsPast.size() > mBufferSize) {
 
  106      mTimedDigitsPast.pop_front();
 
  110    if (mTimedDigitsPast.back().mEndWindow) {
 
  114      for (
auto& digitTimebin : mTimedDigitsPast) {
 
  115        if (digitTimebin.mTriggerColl) {
 
  116          triggerNode = digitTimebin;
 
  128  if (trigger && ((eventTime - mTriggerTime) >= (mLiveTime + mBusyTime) || mFirstEvent)) {
 
  129    LOG(
debug) << 
"Trigger received and accepted";
 
  130    mTriggerTime = eventTime;
 
  131    mTimedDigitsFuture.front().mTriggerColl = 
true;
 
  132    mTimedDigitsFuture.front().mInterRecord = record;
 
  133    mTimedDigitsFuture[(mLiveTime / 100) - 1].mEndWindow = 
true;
 
  135    long timeStamp = (eventTime / 100) * 100; 
 
  136    for (
auto& iNode : mTimedDigitsFuture) {
 
  137      long diff = (timeStamp - eventTime);
 
  138      if (TMath::Abs(diff) > mLiveTime) {
 
  141      iNode.mRecordMode = 
true;
 
  147  if ((eventTime - mTriggerTime) >= (mLiveTime + mBusyTime - mPreTriggerTime) || mFirstEvent) {
 
  148    LOG(
debug) << 
"Pre-trigger collision";
 
  149    long timeStamp = (eventTime / 100) * 100; 
 
  150    for (
auto& iNode : mTimedDigitsFuture) {
 
  151      long diff = (timeStamp - eventTime);
 
  152      if (TMath::Abs(diff) > mLiveTime) {
 
  155      iNode.mRecordMode = 
true;
 
  160  mLastEventTime = eventTime;
 
  162  mPhase = (record.
bc + mSwapPhase) % 4;
 
 
  172  for (
unsigned int ibin = 0; ibin < mBufferSize; ibin++) {
 
  174    if (!mTimedDigitsFuture.front().mRecordMode || mTimedDigitsFuture.front().mDigitMap->empty()) {
 
  178    mTimedDigitsPast.push_back(mTimedDigitsFuture.front());
 
  179    mTimedDigitsFuture.pop_front();
 
  181    if (mTimedDigitsPast.size() > mBufferSize) {
 
  182      mTimedDigitsPast.pop_front();
 
  185    if (mTimedDigitsPast.back().mEndWindow) {
 
  189      for (
auto& digitTimebin : mTimedDigitsPast) {
 
  190        if (digitTimebin.mTriggerColl) {
 
  191          triggerNode = digitTimebin;
 
 
void fill(std::deque< o2::emcal::DigitTimebin > &digitlist, o2::InteractionRecord record)
Fill all the containers, digits, labels, and trigger records.