From cd6fbba275868017990549f60ee689a6302e5693 Mon Sep 17 00:00:00 2001 From: Felix Riehn <felix@matilda> Date: Fri, 12 Jun 2020 13:06:04 +0100 Subject: [PATCH] added summary --- Processes/OnShellCheck/OnShellCheck.cc | 3 +++ Processes/OnShellCheck/OnShellCheck.h | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/Processes/OnShellCheck/OnShellCheck.cc b/Processes/OnShellCheck/OnShellCheck.cc index a5662e434..133af10c6 100644 --- a/Processes/OnShellCheck/OnShellCheck.cc +++ b/Processes/OnShellCheck/OnShellCheck.cc @@ -46,6 +46,9 @@ namespace corsika::process { const HEPEnergyType e_shifted = sqrt(p_original.GetSquaredNorm() + m_corsika * m_corsika); auto const e_shift_relative = (e_shifted / e_original - 1); + count_ = count_ + 1; + average_shift_ += abs(e_shift_relative); + if (abs(e_shift_relative) > max_shift_) max_shift_ = abs(e_shift_relative); /* For now we warn if the necessary shift is larger than 1%. we could promote this to an error. diff --git a/Processes/OnShellCheck/OnShellCheck.h b/Processes/OnShellCheck/OnShellCheck.h index f9a047324..f1c588be0 100644 --- a/Processes/OnShellCheck/OnShellCheck.h +++ b/Processes/OnShellCheck/OnShellCheck.h @@ -19,12 +19,24 @@ namespace corsika::process { namespace on_shell_check { class OnShellCheck : public process::SecondariesProcess<OnShellCheck> { + double average_shift_ = 0; + double max_shift_ = 0; + double count_ = 0; public: OnShellCheck(const double vMassTolerance, const double vEnergyTolerance) : mass_tolerance_(vMassTolerance) , energy_tolerance_(vEnergyTolerance) {} + ~OnShellCheck() { + std::cout << "OnShellCheck: summary" << std::endl + << " particles shifted: " << int(count_) << std::endl; + if (count_) + std::cout << " average energy shift (%): " << average_shift_ / count_ * 100. + << std::endl + << " max. energy shift (%): " << max_shift_ * 100. << std::endl; + }; + EProcessReturn DoSecondaries(corsika::setup::StackView&); void Init(); -- GitLab