CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
corsika::tracking_leapfrog_curved::Tracking Class Reference

The class tracking_leapfrog_curved::Tracking is based on the Bachelor thesis of Andre Schmidt (KIT). More...

#include <TrackingLeapFrogCurved.hpp>

Inheritance diagram for corsika::tracking_leapfrog_curved::Tracking:

Public Member Functions

template<typename TParticle >
auto getTrack (TParticle const &particle)
 

Protected Member Functions

template<typename TParticle >
auto getLinearTrajectory (TParticle &particle)
 Use internally stored class tracking_line::Tracking to perform a straight line tracking, if no magnetic bendig was detected.
 
- Protected Member Functions inherited from corsika::Intersect< Tracking >
auto nextIntersect (TParticle const &particle, TimeType const step_limit=std::numeric_limits< TimeType::value_type >::infinity() *second) const
 Determines next intersection with any of the geometry volumes.
 

Protected Attributes

tracking_line::Tracking straightTracking_
 

Detailed Description

The class tracking_leapfrog_curved::Tracking is based on the Bachelor thesis of Andre Schmidt (KIT).

It implements a two-step leap-frog algorithm, but with analytically exact geometric intersections between leap-frog steps and geometric volumes (spheres, planes).

Note that leap-frog times and length always reflect the actual properties of the final step. The internal steplength is slightly shorter, because the second halve steps of the algorithm is slightly longer than the first one (in principle violating |v|=const).

Definition at line 48 of file TrackingLeapFrogCurved.hpp.

Member Function Documentation

◆ intersect() [1/3]

template<typename TParticle >
static Intersections corsika::tracking_leapfrog_curved::Tracking::intersect ( TParticle const &  particle,
Sphere const &  sphere 
)
static

find intersection of Sphere with Track

Returns intersection of particle assuming a curved leap-frog step, with a sphere. Entry and exit times are calculated, where the velocity is constant and the steplength is the geometric steplength of the leap-frog.

Parameters
particleCurrent particle state
sphereSphere object

◆ intersect() [2/3]

template<typename TParticle , typename TBaseNodeType >
static Intersections corsika::tracking_leapfrog_curved::Tracking::intersect ( TParticle const &  particle,
TBaseNodeType const &  node 
)
static

find intersection of any Volume node with particle

The intersection time(s) of a particle, assuming a curved leap-frog step, are calculated for any volume type.

◆ intersect() [3/3]

template<typename TParticle >
static Intersections corsika::tracking_leapfrog_curved::Tracking::intersect ( TParticle const &  particle,
Plane const &  plane 
)
static

find intersection of Plane with Track

Intersection times of particle are caculated with a plane, assuming a curved leap frog trajectory. The intersection time is assuming constant velocity (no change) along the geometric leap-frog step.

Template Parameters
TParticleType of particle object on stack.
Parameters
particleParticle initial state.
planePlane.
Returns
Intersections in time units.

The documentation for this class was generated from the following file: