corsika merge requestshttps://gitlab.iap.kit.edu/AirShowerPhysics/corsika/-/merge_requests2023-06-15T11:27:29Zhttps://gitlab.iap.kit.edu/AirShowerPhysics/corsika/-/merge_requests/510add margin for timeOfIntersection in ObservationPlane.inl2023-06-15T11:27:29ZJean-Marco Alameddineadd margin for timeOfIntersection in ObservationPlane.inlCloses #572
When using transparent observation planes, particles can still get stuck within the observation planes.
I can reliably reproduce this, for example, by simulating a 1 TeV electron-induced shower with a 0.5 MeV cut, setting a...Closes #572
When using transparent observation planes, particles can still get stuck within the observation planes.
I can reliably reproduce this, for example, by simulating a 1 TeV electron-induced shower with a 0.5 MeV cut, setting a transparent observation plane at 8.6km.
Propagation will get stuck at the step
```
[corsika:info (Cascade.inl:193)] transport particle by : 2.265925107948963e-09 m Medium transition after: 11213.166070608337 m Decay after: inf m Interaction after: 72529.29046203625 m Continuous limit: 2.265925107948963e-09 m
```
which is just above the observation plane. Propagation will eventually continue after a long time, which is probably when we have an interaction after a distance which is smaller than the given continuous limit.
This problem was originally solved with MR !450. However, the solution there assumed that tracking is numerically perfect. In the case here, I use magnetic fields and particles with very low energies. When the observation plane is marked as the limiting process, tracking doesn't set the particle exactly on the observation plane, but barely above it. Since the particle is not deleted, the observation plane is again the limiting process. However, the small remaining distance (here around a nanometer) is apparently not treated correctly by the tracking, which means that the particle is not moved at all and gets stuck.
My proposed solution is to allow a very small margin around the observation plane for which we assume that we already are inside the observation plane, and don't need to take the particle into account.
Because the stuck particles had a `timeOfIntersection` in the order of magnitude of ~1e-18s (going down to 1e-16s in some cases), I decided to go with 1e-15s for now. Do we have any kind of "numerical precision" within CORSIKA 8 which we might use as a well-motivated margin instead?https://gitlab.iap.kit.edu/AirShowerPhysics/corsika/-/merge_requests/508Fix condition for throwing error message due to negative times in Intersect.inl2023-05-05T14:44:21ZJean-Marco AlameddineFix condition for throwing error message due to negative times in Intersect.inlSee discussion in #590.
The condition makes no sense. It was written to be thrown for very-negative time steps, but is currently thrown for _all_ negative time steps.
Closes #590See discussion in #590.
The condition makes no sense. It was written to be thrown for very-negative time steps, but is currently thrown for _all_ negative time steps.
Closes #5902023 Workshop Milestonehttps://gitlab.iap.kit.edu/AirShowerPhysics/corsika/-/merge_requests/426Resolve "Cascade: Problems with Multiple Scattering (in combination with tracking)"2023-03-29T14:39:59ZMaximilian ReininghausResolve "Cascade: Problems with Multiple Scattering (in combination with tracking)"Closes #483Closes #483Nikos KarastathisNikos Karastathishttps://gitlab.iap.kit.edu/AirShowerPhysics/corsika/-/merge_requests/401New get time method at any point of the track2021-12-21T05:25:24ZNikos KarastathisNew get time method at any point of the trackIn this MR I have implemented a new .getTime(particle,u) method that gives back the time at any point in the track. This method needs a particle in order to be used because of the particle/track design.
One can get the time at the **st...In this MR I have implemented a new .getTime(particle,u) method that gives back the time at any point in the track. This method needs a particle in order to be used because of the particle/track design.
One can get the time at the **start of the track for u = 0** simply by using it like:
`track.getTime(particle,0) `
And get the time at the **end of the track for u = 1** by:
`track.getTime(particle,1) `
I need to check a couple more things before this is ready for code review.https://gitlab.iap.kit.edu/AirShowerPhysics/corsika/-/merge_requests/379Resolve "Negative distances at medium transitions with activated magnetic field"2021-06-21T19:20:18ZRalf Ulrichralf.physics@gmail.comResolve "Negative distances at medium transitions with activated magnetic field"Closes #429Closes #429ICRC-2021Ralf Ulrichralf.physics@gmail.comRalf Ulrichralf.physics@gmail.comhttps://gitlab.iap.kit.edu/AirShowerPhysics/corsika/-/merge_requests/369Resolve "Trajectories crossing observation plane"2021-06-16T12:28:16ZRalf Ulrichralf.physics@gmail.comResolve "Trajectories crossing observation plane"Closes #427Closes #427ICRC-2021https://gitlab.iap.kit.edu/AirShowerPhysics/corsika/-/merge_requests/320Draft: Resolve "Particles don't interact despite high cross-section"2021-03-02T13:09:19ZRalf Ulrichralf.physics@gmail.comDraft: Resolve "Particles don't interact despite high cross-section"Closes #387Closes #387https://gitlab.iap.kit.edu/AirShowerPhysics/corsika/-/merge_requests/305Resolve "Tracking get stuck, sometimes"2023-04-25T19:17:35ZRalf Ulrichralf.physics@gmail.comResolve "Tracking get stuck, sometimes"Closes #357Closes #357ICRC-2021Maximilian ReininghausMaximilian Reininghaushttps://gitlab.iap.kit.edu/AirShowerPhysics/corsika/-/merge_requests/271Resolve "Assumption of no continuous between two stochastic losses"2021-05-01T14:50:39ZMaximilian ReininghausResolve "Assumption of no continuous between two stochastic losses"Closes #280Closes #280ICRC-2021Maximilian ReininghausMaximilian Reininghaus