From 7cc9174b86c490f355342691c3eba41c7b81e1ef Mon Sep 17 00:00:00 2001 From: Maximilian Reininghaus <maximilian.reininghaus@tu-dortmund.de> Date: Sat, 16 Feb 2019 14:27:54 +0100 Subject: [PATCH] union of all NuclearCompositions of the Universe --- Documentation/Examples/cascade_example.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Documentation/Examples/cascade_example.cc b/Documentation/Examples/cascade_example.cc index f9d1e95a8..1b40607c2 100644 --- a/Documentation/Examples/cascade_example.cc +++ b/Documentation/Examples/cascade_example.cc @@ -245,6 +245,22 @@ int main() { universe.AddChild(std::move(theMedium)); + auto const allElementsInUniverse = std::invoke([&]() { + std::set<particles::Code> allElementsInUniverse; + auto collectElements = [&](auto& vtn) { + if (auto const mp = vtn.GetModelPropertiesPtr(); + mp != nullptr) { // do not query Universe it self, it has no ModelProperties + auto const& comp = mp->GetNuclearComposition().GetComponents(); + std::for_each(comp.cbegin(), comp.cend(), + [&](particles::Code c) { allElementsInUniverse.insert(c); }); + } + }; + universe.walk(collectElements); + return allElementsInUniverse; + }); + + for (auto elem : allElementsInUniverse) { std::cout << elem << std::endl; } + const CoordinateSystem& rootCS = env.GetCoordinateSystem(); // setup processes, decays and interactions -- GitLab