diff --git a/Framework/ProcessSequence/InteractionProcess.h b/Framework/ProcessSequence/InteractionProcess.h index c7ae299b11c2c05ce9c1785075e25b2c8561fed8..e70729db8d2ae7ba3149b1f42ade39d78aaf29b5 100644 --- a/Framework/ProcessSequence/InteractionProcess.h +++ b/Framework/ProcessSequence/InteractionProcess.h @@ -40,7 +40,6 @@ namespace corsika::process { const TParticle& particle) { return 1. / GetRef().GetInteractionLength(particle); } - }; } // namespace corsika::process diff --git a/Framework/ProcessSequence/ProcessSequence.h b/Framework/ProcessSequence/ProcessSequence.h index 22d9ed1f20ea8c74b5da429ef9c7680c72a29b08..b3182b7385ac0fe76daa9b29e50eeb355f5b69a4 100644 --- a/Framework/ProcessSequence/ProcessSequence.h +++ b/Framework/ProcessSequence/ProcessSequence.h @@ -61,9 +61,9 @@ namespace corsika::process { : A_(in_A) , B_(in_B) {} - template <typename Particle, typename VTNType> - EProcessReturn DoBoundaryCrossing(Particle& particle, VTNType const& from, - VTNType const& to) { + template <typename TParticle, typename TVTNType> + EProcessReturn DoBoundaryCrossing(TParticle& particle, TVTNType const& from, + TVTNType const& to) { EProcessReturn ret = EProcessReturn::eOk; if constexpr (std::is_base_of_v<BoundaryCrossingProcess<TProcess1type>, diff --git a/Framework/ProcessSequence/SwitchProcessSequence.h b/Framework/ProcessSequence/SwitchProcessSequence.h index b7e49a891d708d9eab9ba0c676b59e0b5a8421dd..537336d647ed0e32a78bc064a34d0f22625795c8 100644 --- a/Framework/ProcessSequence/SwitchProcessSequence.h +++ b/Framework/ProcessSequence/SwitchProcessSequence.h @@ -21,6 +21,7 @@ #include <cmath> #include <limits> +#include <type_traits> namespace corsika::process { @@ -60,6 +61,11 @@ namespace corsika::process { using TProcess1type = typename std::decay<TProcess1>::type; using TProcess2type = typename std::decay<TProcess2>::type; + // static_assert(std::is_base_of_v<!StackProcess<TProcess1>, TProcess1type>, "canot + // use StackProcess in SwitchProcessSequence"); + // static_assert(std::is_base_of_v<!StackProcess<TProcess2>, TProcess2type>, "canot + // use StackProcess in SwitchProcessSequence"); + static bool constexpr t1ProcSeq = is_process_sequence_v<TProcess1type>; static bool constexpr t2ProcSeq = is_process_sequence_v<TProcess2type>; @@ -74,9 +80,9 @@ namespace corsika::process { , A_(in_A) , B_(in_B) {} - template <typename Particle, typename VTNType> - EProcessReturn DoBoundaryCrossing(Particle& particle, VTNType const& from, - VTNType const& to) { + template <typename TParticle, typename TVTNType> + EProcessReturn DoBoundaryCrossing(TParticle& particle, TVTNType const& from, + TVTNType const& to) { switch (select_(particle)) { case SwitchResult::First: { diff --git a/Framework/ProcessSequence/testProcessSequence.cc b/Framework/ProcessSequence/testProcessSequence.cc index c1a47fafb441a8d41c2aa6c48064c2cd01e466f1..eb88c41985199f22a9a051bbbac70728f522fcc8 100644 --- a/Framework/ProcessSequence/testProcessSequence.cc +++ b/Framework/ProcessSequence/testProcessSequence.cc @@ -287,8 +287,8 @@ TEST_CASE("Process Sequence", "[Process Sequence]") { InverseGrammageType const tot_inv = sequence2.GetInverseInteractionLength(particle); cout << "lambda_tot=" << tot << "; lambda_tot_inv=" << tot_inv << endl; - CHECK(tot/1_g*square(1_cm) == 12); - CHECK(tot_inv*1_g/square(1_cm) == 1./12); + CHECK(tot / 1_g * square(1_cm) == 12); + CHECK(tot_inv * 1_g / square(1_cm) == 1. / 12); globalCount = 0; } @@ -306,8 +306,8 @@ TEST_CASE("Process Sequence", "[Process Sequence]") { InverseTimeType const tot_inv = sequence2.GetInverseLifetime(particle); cout << "lambda_tot=" << tot << "; lambda_tot_inv=" << tot_inv << endl; - CHECK(tot/1_s == 1); - CHECK(tot_inv*1_s == 1.); + CHECK(tot / 1_s == 1); + CHECK(tot_inv * 1_s == 1.); globalCount = 0; } @@ -315,8 +315,8 @@ TEST_CASE("Process Sequence", "[Process Sequence]") { globalCount = 0; ContinuousProcess1 cp1(0); // += 0.933 ContinuousProcess2 cp2(1); // += 0.111 - Process2 m2(2); // /= 1.1 - Process3 m3(3); // *= 1.01 + Process2 m2(2); // /= 1.1 + Process3 m3(3); // *= 1.01 auto sequence2 = sequence(cp1, m2, m3, cp2); @@ -329,13 +329,11 @@ TEST_CASE("Process Sequence", "[Process Sequence]") { // validation data double test_data[nData] = {0}; - + const int nLoop = 5; cout << "Running loop with n=" << nLoop << endl; for (int iLoop = 0; iLoop < nLoop; ++iLoop) { - for (int i=0; i<nData; ++i) { - test_data[i] += 0.933 + 0.111; - } + for (int i = 0; i < nData; ++i) { test_data[i] += 0.933 + 0.111; } sequence2.DoContinuous(particle, track); } for (int i = 0; i < nData; i++) {