From f7175af2e17b05c9bf7c97062daec26f95053848 Mon Sep 17 00:00:00 2001 From: Andre Schmidt <schmidt-a@iklx288.ikp.kit.edu> Date: Wed, 12 Aug 2020 18:58:29 +0200 Subject: [PATCH] few updates --- Framework/Cascade/Cascade.h | 8 +++++--- Processes/TrackingLine/TrackingLine.h | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Framework/Cascade/Cascade.h b/Framework/Cascade/Cascade.h index 9a0ce7243..90df44a82 100644 --- a/Framework/Cascade/Cascade.h +++ b/Framework/Cascade/Cascade.h @@ -260,15 +260,17 @@ namespace corsika::cascade { // Second Movement position = position + directionAfter * min_distance / 2; auto distance = position - vParticle.GetPosition(); - //distance.norm() != min_distance for distance_interact, distance_decay if q != 0 + //distance.norm() != min_distance if q != 0 //small error can be neglected + if (distance.norm() != 0_m) { velocity = distance.normalized() * velocity.norm(); + } //no velocity update for very small steps // here the particle is actually moved along the trajectory to new position: // std::visit(setup::ParticleUpdate<Particle>{vParticle}, step); - vParticle.SetMomentum(directionAfter.normalized() * vParticle.GetMomentum().GetNorm()); + vParticle.SetMomentum(directionAfter.normalized() * vParticle.GetMomentum().norm()); geometry::Line line(vParticle.GetPosition(), velocity); - geometry::Trajectory<geometry::Line> stepNew(line, distance.norm() / velocity.GetNorm()); + geometry::Trajectory<geometry::Line> stepNew(line, distance.norm() / velocity.norm()); vParticle.SetPosition(position); vParticle.SetTime(vParticle.GetTime() + distance.norm() / units::constants::c); std::cout << "New Position: " << vParticle.GetPosition().GetCoordinates() << std::endl; diff --git a/Processes/TrackingLine/TrackingLine.h b/Processes/TrackingLine/TrackingLine.h index c16dd44b1..fd89415ab 100644 --- a/Processes/TrackingLine/TrackingLine.h +++ b/Processes/TrackingLine/TrackingLine.h @@ -121,6 +121,7 @@ namespace corsika::process { std::cout << "no intersection (1)!" << std::endl; // what to do when this happens? (very unlikely) } + delete [] solutions; // First Movement // assuming magnetic field does not change during movement @@ -181,6 +182,7 @@ namespace corsika::process { std::cout << "no intersection (2)!" << std::endl; // what to do when this happens? (very unlikely) } + delete [] solutions; // First Movement // assuming magnetic field does not change during movement -- GitLab