diff --git a/Steer/include/Steer/MCKinematicsReader.h b/Steer/include/Steer/MCKinematicsReader.h index e83099b65818b..03b3709423b1c 100644 --- a/Steer/include/Steer/MCKinematicsReader.h +++ b/Steer/include/Steer/MCKinematicsReader.h @@ -35,6 +35,9 @@ class MCKinematicsReader /// default constructor MCKinematicsReader() = default; + /// destructor + ~MCKinematicsReader(); + /// constructor taking a name and mode (either kDigiContext or kMCKine) /// In case of "context", the name is the filename of the digitization context. /// In case of MCKine mode, the name is the "prefix" referencing a single simulation production. @@ -114,8 +117,8 @@ class MCKinematicsReader std::vector mInputChains; // a vector of tracks foreach source and each collision - mutable std::vector>> mTracks; // the in-memory track container - mutable std::vector> mHeaders; // the in-memory header container + mutable std::vector>> mTracks; // the in-memory track container + mutable std::vector> mHeaders; // the in-memory header container mutable std::vector>> mIndexedTrackRefs; // the in-memory track ref container bool mInitialized = false; // whether initialized diff --git a/Steer/src/MCKinematicsReader.cxx b/Steer/src/MCKinematicsReader.cxx index 09a1d258b4b64..3f0b39cee693e 100644 --- a/Steer/src/MCKinematicsReader.cxx +++ b/Steer/src/MCKinematicsReader.cxx @@ -18,6 +18,18 @@ using namespace o2::steer; +MCKinematicsReader::~MCKinematicsReader() +{ + for (auto chain : mInputChains) { + delete chain; + } + mInputChains.clear(); + + if (mDigitizationContext) { + delete mDigitizationContext; + } +} + void MCKinematicsReader::initIndexedTrackRefs(std::vector& refs, o2::dataformats::MCTruthContainer& indexedrefs) const { // sort trackrefs according to track index then according to track length