diff --git a/Framework/Core/src/AODReaderHelpers.cxx b/Framework/Core/src/AODReaderHelpers.cxx index 08ee85bdaf448..7799a60b9b2ce 100644 --- a/Framework/Core/src/AODReaderHelpers.cxx +++ b/Framework/Core/src/AODReaderHelpers.cxx @@ -98,10 +98,11 @@ enum AODTypeMask : uint64_t { Calo = 1 << 3, Muon = 1 << 4, VZero = 1 << 5, - Collisions = 1 << 6, - Timeframe = 1 << 7, - DZeroFlagged = 1 << 8, - Unknown = 1 << 9 + Zdc = 1 << 6, + Collisions = 1 << 7, + Timeframe = 1 << 8, + DZeroFlagged = 1 << 9, + Unknown = 1 << 10 }; uint64_t getMask(header::DataDescription description) @@ -119,6 +120,8 @@ uint64_t getMask(header::DataDescription description) return AODTypeMask::Muon; } else if (description == header::DataDescription{"VZERO"}) { return AODTypeMask::VZero; + } else if (description == header::DataDescription{"ZDC"}) { + return AODTypeMask::Zdc; } else if (description == header::DataDescription{"COLLISION"}) { return AODTypeMask::Collisions; } else if (description == header::DataDescription{"TIMEFRAME"}) { @@ -254,6 +257,8 @@ AlgorithmSpec AODReaderHelpers::run2ESDConverterCallback() writer = outputs.make(Output{"AOD", "MUON"}, batch->schema()); } else if (meta["description"] == "VZERO" && (readMask & AODTypeMask::VZero)) { writer = outputs.make(Output{"AOD", "VZERO"}, batch->schema()); + } else if (meta["description"] == "ZDC" && (readMask & AODTypeMask::Zdc)) { + writer = outputs.make(Output{"AOD", "ZDC"}, batch->schema()); } else if (meta["description"] == "COLLISION" && (readMask & AODTypeMask::Collisions)) { writer = outputs.make(Output{"AOD", "COLLISION"}, batch->schema()); } else if (meta["description"] == "TIMEFRAME" && (readMask & AODTypeMask::Timeframe)) { @@ -370,7 +375,13 @@ AlgorithmSpec AODReaderHelpers::rootFileReaderCallback() if (readMask & AODTypeMask::VZero) { std::unique_ptr vzReader = std::make_unique("O2vzero", infile.get()); auto& vzBuilder = outputs.make(Output{"AOD", "VZERO"}); - RootTableBuilderHelpers::convertASoA(vzBuilder, *vzReader); + RootTableBuilderHelpers::convertASoA(vzBuilder, *vzReader); + } + + if (readMask & AODTypeMask::Zdc) { + std::unique_ptr zdcReader = std::make_unique("O2zdc", infile.get()); + auto& zdcBuilder = outputs.make(Output{"AOD", "ZDC"}); + RootTableBuilderHelpers::convertASoA(zdcBuilder, *zdcReader); } // Candidates as described by Gianmichele example