RNGManager::seedAll(void) not seeding correctly
See RNGManager.inl
:
inline void RNGManager::seedAll(void) {
std::random_device rd;
std::seed_seq sseq{rd(), rd(), rd(), rd(), rd(), rd()};
for (auto& entry : rngs_) {
std::vector<std::uint32_t> seeds(1);
sseq.generate(seeds.begin(), seeds.end());
std::uint32_t seed = seeds[0];
CORSIKA_LOG_TRACE("Random seed stream {} seed {}", entry.first, seed);
entry.second.seed(seed);
}
}
The seed fed to the RNGs is in fact uninitialized memory. Also, all streams get the same seed value.