57 std::map<unsigned int, std::list<LabeledDigit>> outputList;
59 for (
auto& digitsTimeBin : digitlist) {
61 for (
auto& [tower, digitsList] : *digitsTimeBin.mDigitMap) {
63 if (digitsList.size() == 0) {
69 for (
auto& ld : digitsList) {
73 for (
auto ld1 = digitsList.begin(); ld1 != digitsList.end(); ++ld1) {
75 if (digIndex == digIndex1) {
80 if (ld.canAdd(*ld1)) {
82 digitsList.erase(ld1--);
87 if (mSimulateNoiseDigits) {
91 if (mRemoveDigitsBelowThreshold && (ld.getAmplitude() < (mSimParam->
getDigitThreshold() * constants::EMCAL_ADCENERGY))) {
94 if (ld.getAmplitude() < 0) {
97 if ((ld.getTimeStamp() >= mSimParam->
getLiveTime()) || (ld.getTimeStamp() < 0)) {
101 outputList[tower].push_back(ld);
107 unsigned int numberOfNewDigits = 0;
108 for (
const auto& [tower, outdiglist] : outputList) {
109 for (
const auto& d : outdiglist) {
112 Digit digit = d.getDigit();
113 std::vector<MCLabel> labels = d.getLabels();
114 mDigits.push_back(digit);
118 for (
const auto&
label : labels) {
124 mTriggerRecords.emplace_back(record,
o2::trigger::PhT, mStartIndex, numberOfNewDigits);
125 mStartIndex = mDigits.size();
127 LOG(info) <<
"Trigger Orbit " << record.
orbit <<
", BC " << record.
bc <<
": have " << numberOfNewDigits <<
" digits (" << mStartIndex <<
" total)";
void fill(std::deque< o2::emcal::DigitTimebin > &digitlist, o2::InteractionRecord record)
Fill all the containers, digits, labels, and trigger records.