diff --git a/Framework/Cascade/Cascade.h b/Framework/Cascade/Cascade.h index e1b44a3dc308720e7c370cc1500ab7056cc9d172..24f86db66270095fb1fcd7115d227f8ba7a8635a 100644 --- a/Framework/Cascade/Cascade.h +++ b/Framework/Cascade/Cascade.h @@ -18,6 +18,7 @@ #include <corsika/random/UniformRealDistribution.h> #include <corsika/setup/SetupTrajectory.h> #include <corsika/units/PhysicalUnits.h> +#include <corsika/environment/Environment.h> #include <type_traits> @@ -57,6 +58,7 @@ namespace corsika::cascade { void Step(Particle& particle) { using namespace corsika::units::si; + // determine geometric tracking corsika::setup::Trajectory step = fTracking.GetTrack(particle); @@ -67,6 +69,7 @@ namespace corsika::cascade { // sample random exponential step length in grammage std::exponential_distribution expDist((1_m * 1_m / 1_g) / total_inv_lambda); GrammageType const next_interact = (1_g / (1_m * 1_m)) * expDist(fRNG); + std::cout << "total_inv_lambda=" << total_inv_lambda << ", next_interact=" << next_interact << std::endl; @@ -155,7 +158,12 @@ namespace corsika::cascade { Stack& fStack; corsika::environment::Environment const& fEnvironment; corsika::random::RNG& fRNG = +<<<<<<< HEAD corsika::random::RNGManager::GetInstance().GetRandomStream("cascade"); +======= + corsika::random::RNGManager::GetInstance().GetRandomStream("cascade"); + +>>>>>>> e9023467d9ae486f2436418f2004da612ebd02a7 }; } // namespace corsika::cascade diff --git a/Framework/Geometry/Line.h b/Framework/Geometry/Line.h index 1b45f535a9c01acaa0084a42ca3b532360fa9b59..5abf841ecd38c260d17c3c8bf1008ba9f87dead5 100644 --- a/Framework/Geometry/Line.h +++ b/Framework/Geometry/Line.h @@ -31,6 +31,8 @@ namespace corsika::geometry { , v0(pV0) {} Point GetPosition(corsika::units::si::TimeType t) const { return r0 + v0 * t; } + + Point PositionFromArclength(corsika::units::si::LengthType l) const { return r0 + v0.normalized() * l; } Point PositionFromArclength(corsika::units::si::LengthType l) const { return r0 + v0.normalized() * l; diff --git a/Framework/ProcessSequence/ProcessSequence.h b/Framework/ProcessSequence/ProcessSequence.h index acf8a02f1c557d6b9977a5811c266c144d940908..30a9c09afad4d72ac194afa28d7012afb6520aaa 100644 --- a/Framework/ProcessSequence/ProcessSequence.h +++ b/Framework/ProcessSequence/ProcessSequence.h @@ -225,6 +225,7 @@ namespace corsika::process { EProcessReturn SelectInteraction( Particle& p, Stack& s, corsika::units::si::InverseGrammageType lambda_select, corsika::units::si::InverseGrammageType& lambda_inv_count) const { + if constexpr (is_process_sequence<T1>::value) { // if A is a process sequence --> check inside const EProcessReturn ret = diff --git a/Framework/Units/PhysicalUnits.h b/Framework/Units/PhysicalUnits.h index 95af0e3d264e35a48a5e0e79d9370a619ea78e4e..03029541311ccbbe259a2f49901e96ac76a4cdb9 100644 --- a/Framework/Units/PhysicalUnits.h +++ b/Framework/Units/PhysicalUnits.h @@ -60,7 +60,6 @@ namespace corsika::units::si { phys::units::quantity<phys::units::dimensions<0, 0, -1>, double>; using InverseGrammageType = phys::units::quantity<phys::units::dimensions<2, -1, 0>, double>; - } // end namespace corsika::units::si /** diff --git a/Processes/TrackingLine/TrackingLine.h b/Processes/TrackingLine/TrackingLine.h index fab03f0f0fc0993b79796e37c476ec0f01f8a423..157751ea73ab261b083857a68cd2c2444469a583 100644 --- a/Processes/TrackingLine/TrackingLine.h +++ b/Processes/TrackingLine/TrackingLine.h @@ -76,7 +76,6 @@ namespace corsika::process { auto GetTrack(Particle const& p) { using namespace corsika::units::si; - geometry::Vector<SpeedType::dimension_type> const velocity = p.GetMomentum() / p.GetEnergy() * corsika::units::si::constants::cSquared;