diff --git a/Documentation/Examples/vertical_EAS.cc b/Documentation/Examples/vertical_EAS.cc index 7a5b43fed06fabcf4c7cf8cb5e7cfb9f067ab0f9..77c02ada96cb9dfc1a6acbec239334b3cbf59762 100644 --- a/Documentation/Examples/vertical_EAS.cc +++ b/Documentation/Examples/vertical_EAS.cc @@ -243,6 +243,8 @@ int main(int argc, char** argv) { << "relative difference (%): " << (Efinal / E0 - 1) * 100 << endl; cout << "total dEdX energy (GeV): " << eLoss.GetTotal() / 1_GeV << endl << "relative difference (%): " << eLoss.GetTotal() / E0 * 100 << endl; + + observationLevel.print(); auto const hists = sibyllCounted.GetHistogram() + sibyllNucCounted.GetHistogram() + urqmdCounted.GetHistogram(); diff --git a/Processes/OnShellCheck/testOnShellCheck.cc b/Processes/OnShellCheck/testOnShellCheck.cc index cfc7d159b5a7884a56dd45e19ee8c8c42f35901d..0d45b1e2946d814d47039d11f74249ace3282526 100644 --- a/Processes/OnShellCheck/testOnShellCheck.cc +++ b/Processes/OnShellCheck/testOnShellCheck.cc @@ -37,11 +37,10 @@ TEST_CASE("OnShellCheck", "[processes]") { // two energies const HEPEnergyType E = 10_GeV; // list of arbitrary particles - std::array<particles::Code, 4> particleList = { - particles::Code::PiPlus, particles::Code::PiMinus, particles::Code::Helium, - particles::Code::Gamma}; + std::array const particleList{particles::Code::PiPlus, particles::Code::PiMinus, + particles::Code::Helium, particles::Code::Gamma}; - std::array<double, 4> mass_shifts = {1.1, 1.001, 1.0, 1.0}; + std::array const mass_shifts{1.1, 1.001, 1.0, 1.0}; SECTION("check particle masses") { @@ -57,7 +56,7 @@ TEST_CASE("OnShellCheck", "[processes]") { corsika::stack::MomentumVector(rootCS, {0_GeV, 0_GeV, 0_GeV}), geometry::Point(rootCS, 0_m, 0_m, 0_m), 0_ns}); // view on secondary particles - corsika::stack::SecondaryView view(particle); + setup::StackView view{particle}; // ref. to primary particle through the secondary view. // only this way the secondary view is populated auto projectile = view.GetProjectile(); diff --git a/Processes/ParticleCut/testParticleCut.cc b/Processes/ParticleCut/testParticleCut.cc index cdf3887a775150efadee6f0e1cd3a3ea14bcee6d..03432fc031fbcc37808a26347c6379e383950691 100644 --- a/Processes/ParticleCut/testParticleCut.cc +++ b/Processes/ParticleCut/testParticleCut.cc @@ -55,7 +55,7 @@ TEST_CASE("ParticleCut", "[processes]") { corsika::stack::MomentumVector(rootCS, {0_GeV, 0_GeV, 0_GeV}), geometry::Point(rootCS, 0_m, 0_m, 0_m), 0_ns}); // view on secondary particles - corsika::stack::SecondaryView view(particle); + setup::StackView view{particle}; // ref. to primary particle through the secondary view. // only this way the secondary view is populated auto projectile = view.GetProjectile(); @@ -85,7 +85,7 @@ TEST_CASE("ParticleCut", "[processes]") { corsika::stack::MomentumVector(rootCS, {0_GeV, 0_GeV, 0_GeV}), geometry::Point(rootCS, 0_m, 0_m, 0_m), 0_ns}); // view on secondary particles - corsika::stack::SecondaryView view(particle); + setup::StackView view{particle}; // ref. to primary particle through the secondary view. // only this way the secondary view is populated auto projectile = view.GetProjectile(); diff --git a/Processes/Pythia/testPythia8.cc b/Processes/Pythia/testPythia8.cc index 4b1da6d837551d1bba4aded4d0c43cd8f315f1ca..6a8ae279badbbb7336357fefb208f926d55b4748 100644 --- a/Processes/Pythia/testPythia8.cc +++ b/Processes/Pythia/testPythia8.cc @@ -130,7 +130,7 @@ TEST_CASE("pythia process") { random::RNGManager::GetInstance().RegisterRandomStream("pythia"); - corsika::stack::SecondaryView view(particle); + setup::StackView view(particle); process::pythia::Decay model; @@ -179,7 +179,7 @@ TEST_CASE("pythia process") { corsika::stack::MomentumVector, geometry::Point, units::si::TimeType>{ particles::Code::PiPlus, E0, plab, pos, 0_ns}); particle.SetNode(nodePtr); - corsika::stack::SecondaryView view(particle); + setup::StackView view(particle); process::pythia::Interaction model; diff --git a/Processes/QGSJetII/testQGSJetII.cc b/Processes/QGSJetII/testQGSJetII.cc index 0e6fddae9a60a4eba9eb3344454e8961bce8bef5..8f036bafcc22433660cdc0d4952154becc2bdda1 100644 --- a/Processes/QGSJetII/testQGSJetII.cc +++ b/Processes/QGSJetII/testQGSJetII.cc @@ -133,7 +133,7 @@ TEST_CASE("QgsjetIIInterface", "[processes]") { particles::Code::Proton, E0, plab, pos, 0_ns}); particle.SetNode(nodePtr); - corsika::stack::SecondaryView view(particle); + setup::StackView view(particle); auto projectile = view.GetProjectile(); auto const projectileMomentum = projectile.GetMomentum(); diff --git a/Processes/UrQMD/testUrQMD.cc b/Processes/UrQMD/testUrQMD.cc index f7d36c891dc07b942186213a794184598cc12506..71cdd8068864a3c4eda760696374f9b61e193634 100644 --- a/Processes/UrQMD/testUrQMD.cc +++ b/Processes/UrQMD/testUrQMD.cc @@ -95,8 +95,7 @@ auto setupStack(int vA, int vZ, HEPEnergyType vMomentum, TNodeType* vNodePtr, particle.SetNode(vNodePtr); return std::make_tuple( - std::move(stack), - std::make_unique<decltype(corsika::stack::SecondaryView(particle))>(particle)); + std::move(stack), std::make_unique<decltype(setup::StackView{particle})>(particle)); } template <typename TNodeType> @@ -117,8 +116,7 @@ auto setupStack(particles::Code vProjectileType, HEPEnergyType vMomentum, particle.SetNode(vNodePtr); return std::make_tuple( - std::move(stack), - std::make_unique<decltype(corsika::stack::SecondaryView(particle))>(particle)); + std::move(stack), std::make_unique<decltype(setup::StackView{particle})>(particle)); } TEST_CASE("UrQMD") { diff --git a/Setup/SetupStack.h b/Setup/SetupStack.h index 39117d4df122f06590cff087751a1b8a0467d693..b4ab5118db39d7ae23fe278a1730f447f477dceb 100644 --- a/Setup/SetupStack.h +++ b/Setup/SetupStack.h @@ -9,6 +9,7 @@ #pragma once #include <corsika/history/HistoryStackExtension.h> +#include <corsika/history/HistorySecondaryView.hpp> #include <corsika/stack/CombinedStack.h> #include <corsika/stack/node/GeometryNodeStackExtension.h> #include <corsika/stack/nuclear_extension/NuclearStackExtension.h> @@ -152,7 +153,7 @@ namespace corsika::setup { // corsika::setup::detail::StackWithGeometryInterface>; corsika::setup::detail::StackWithHistoryInterface>; #elif defined(__GNUC__) || defined(__GNUG__) - using StackView = corsika::stack::MakeView<corsika::setup::Stack>::type; + using StackView = corsika::history::HistorySecondaryView<corsika::stack::MakeView<corsika::setup::Stack>::type>; #endif } // namespace corsika::setup diff --git a/Stack/History/HistoryObservationPlane.cc b/Stack/History/HistoryObservationPlane.cc index f65ce899377193f9468ba34098ec7efa4a82b7fd..218c5445f53085b423bf0241f241c809f431c770 100644 --- a/Stack/History/HistoryObservationPlane.cc +++ b/Stack/History/HistoryObservationPlane.cc @@ -8,7 +8,10 @@ #include <corsika/history/HistoryObservationPlane.hpp> +#include <boost/histogram/ostream.hpp> + #include <fstream> +#include <iostream> using namespace corsika::units::si; using namespace corsika::history; @@ -72,3 +75,5 @@ void HistoryObservationPlane::fillHistoryHistogram( } histogram_(intCounter); } + +void HistoryObservationPlane::print() { std::cout << histogram_ << std::endl; } diff --git a/Stack/History/HistoryObservationPlane.hpp b/Stack/History/HistoryObservationPlane.hpp index 99a6b424f4bcae8ce3c9d3f207352c3fcbf558bd..019d5e1ee24895b87606a6ef0fcc4fb188999e1c 100644 --- a/Stack/History/HistoryObservationPlane.hpp +++ b/Stack/History/HistoryObservationPlane.hpp @@ -55,6 +55,8 @@ namespace corsika::history { corsika::setup::Stack::ParticleType const& vParticle, corsika::setup::Trajectory const& vTrajectory); + void print(); + private: void fillHistoryHistogram(setup::Stack::ParticleType const&);