From bd024209b6e2b7cef92e5703ff5dd230feee7fd7 Mon Sep 17 00:00:00 2001
From: Nikos Karastathis <n.karastathis@kit.edu>
Date: Thu, 21 Oct 2021 13:14:32 +0200
Subject: [PATCH] Fix for "noise" in radio module. Time in C8 gets updated
 correctly now.

---
 corsika/detail/framework/core/Cascade.inl | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/corsika/detail/framework/core/Cascade.inl b/corsika/detail/framework/core/Cascade.inl
index 93b8d7d68..0f4e9dae3 100644
--- a/corsika/detail/framework/core/Cascade.inl
+++ b/corsika/detail/framework/core/Cascade.inl
@@ -126,7 +126,7 @@ namespace corsika {
 
     // inform ContinuousProcesses (if applicable) that it is responsible for step-limit
     // this would become simpler if we follow the idea of Max to enumerate ALL types of
-    // processes. Then non-contunuous are included and no further logic is needed to
+    // processes. Then non-continuous are included and no further logic is needed to
     // distinguish between continuous and non-continuous limit.
     ContinuousProcessIndex limitingId;
     bool const isContinuous = continuous_max_dist < min_non_continuous;
@@ -147,11 +147,6 @@ namespace corsika {
     // move particle along the trajectory to new position
     // also update momentum/direction/time
     step.setLength(min_distance);
-    vParticle.setPosition(step.getPosition(1));
-    // assumption: tracking does not change absolute momentum (continuous physics can and
-    // will):
-    vParticle.setMomentum(step.getDirection(1) * vParticle.getMomentum().getNorm());
-    vParticle.setTime(vParticle.getTime() + step.getDuration());
 
     // apply all continuous processes on particle + track
     if (sequence_.doContinuous(vParticle, step, limitingId) ==
@@ -167,6 +162,11 @@ namespace corsika {
       }
       return;
     }
+    vParticle.setPosition(step.getPosition(1));
+    // assumption: tracking does not change absolute momentum (continuous physics can and
+    // will):
+    vParticle.setMomentum(step.getDirection(1) * vParticle.getMomentum().getNorm());
+    vParticle.setTime(vParticle.getTime() + step.getDuration());
     if (isContinuous) {
       return; // there is nothing further, step is finished
     }
@@ -232,11 +232,11 @@ namespace corsika {
 
     /*
       Create SecondaryView object on Stack. The data container
-      remains untouched and identical, and 'projectil' is identical
+      remains untouched and identical, and 'projectile' is identical
       to 'vParticle' above this line. However,
-      projectil.AddSecondaries populate the SecondaryView, which can
+      projectile.AddSecondaries populate the SecondaryView, which can
       then be used afterwards for further processing. Thus: it is
-      important to use projectle/view (and not vParticle) for Interaction,
+      important to use projectile/view (and not vParticle) for Interaction,
       and Decay!
     */
 
@@ -303,7 +303,7 @@ namespace corsika {
     if (actual_inv_length * 0.99 > initial_inv_int_length) {
       CORSIKA_LOG_WARN(
           "Interaction length decreased during step! This leads to un-physical step "
-          "length. delta_innverse_interaction_length={}",
+          "length. delta_inverse_interaction_length={}",
           1 / initial_inv_int_length - 1 / actual_inv_length);
     }
 #endif
-- 
GitLab