diff --git a/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Chip.h b/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Chip.h index 13a830ee16b26..ccd9f02fb32aa 100644 --- a/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Chip.h +++ b/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Chip.h @@ -76,7 +76,7 @@ class Chip /// reset points container o2::iotof::LabeledDigit* findDigit(ULong64_t key); - void addDigit(UShort_t row, UShort_t col, Int_t charge, double time); + void addDigit(UShort_t row, UShort_t col, Int_t charge, double time, o2::MCCompLabel label); protected: Int_t mChipIndex = -1; ///< Chip ID diff --git a/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Chip.cxx b/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Chip.cxx index 3b737d35ac359..c4e43019b83f3 100644 --- a/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Chip.cxx +++ b/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Chip.cxx @@ -32,8 +32,8 @@ Chip::Chip(Int_t index) { } //_______________________________________________________________________ -void Chip::addDigit(UShort_t row, UShort_t col, Int_t charge, double time) +void Chip::addDigit(UShort_t row, UShort_t col, Int_t charge, double time, o2::MCCompLabel label) { ULong64_t key = Digit::getOrderingKey(mChipIndex, row, col); - mDigits.emplace(std::make_pair(key, LabeledDigit(mChipIndex, row, col, charge, time))); + mDigits.emplace(std::make_pair(key, LabeledDigit(mChipIndex, row, col, charge, time, label))); } diff --git a/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Digitizer.cxx b/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Digitizer.cxx index 9e11e8e981ad4..754eb2e76f123 100644 --- a/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Digitizer.cxx +++ b/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Digitizer.cxx @@ -242,7 +242,7 @@ void Digitizer::registerDigits(Chip& chip, uint32_t roFrame, float timeInitROF, o2::iotof::LabeledDigit* existingDigit = chip.findDigit(key); if (!existingDigit) { // No existing digit, create a new one - chip.addDigit(row, col, nElectrons, timeInitROF); // Last one should really just be time + chip.addDigit(row, col, nElectrons, timeInitROF, label); // Last one should really just be time } else { // Digit already exists, update charge and labels const int storedCharge = existingDigit->getCharge(); diff --git a/Steer/DigitizerWorkflow/src/IOTOFDigitizerSpec.cxx b/Steer/DigitizerWorkflow/src/IOTOFDigitizerSpec.cxx index 11dd371c1de04..4611ec4e0af11 100644 --- a/Steer/DigitizerWorkflow/src/IOTOFDigitizerSpec.cxx +++ b/Steer/DigitizerWorkflow/src/IOTOFDigitizerSpec.cxx @@ -139,10 +139,9 @@ class IOTOFDPLDigitizerTask : o2::base::BaseDPLDigitizer pc.outputs().snapshot(Output{mOrigin, "DIGITSROF", 0}, mROFRecords); if (mWithMCTruth) { auto& sharedlabels = pc.outputs().make>(Output{mOrigin, "DIGITSMCTR", 0}); - mLabelsAccum.flatten_to(sharedlabels); + mLabels.flatten_to(sharedlabels); // free space of existing label containers mLabels.clear_andfreememory(); - mLabelsAccum.clear_andfreememory(); // write dummy MC2ROF vector to keep writer/readers backward compatible // NOTE: Steer/DigitizerWorkflow/src/ITSMFTDigitizerSpec.cxx also uses dummy MC2ROF @@ -172,7 +171,6 @@ class IOTOFDPLDigitizerTask : o2::base::BaseDPLDigitizer std::vector mHits{}; std::vector* mHitsP{&mHits}; o2::dataformats::MCTruthContainer mLabels{}; - o2::dataformats::MCTruthContainer mLabelsAccum{}; std::vector mSimChains{}; o2::parameters::GRPObject::ROMode mROMode = o2::parameters::GRPObject::PRESENT; // readout mode };