IAP GITLAB

Skip to content
Snippets Groups Projects
Cascade.cc 864 B
Newer Older


namespace cascade;

ralfulrich's avatar
ralfulrich committed
template <typename Sequence, typename Trajectory>
void Cascade::Cascade() {
ralfulrich's avatar
ralfulrich committed
}
ralfulrich's avatar
ralfulrich committed
template <typename Sequence, typename Trajectory>
void Cascade::Init() {
ralfulrich's avatar
ralfulrich committed
  fStack.Init();
  fProcesseList.Init();
}
ralfulrich's avatar
ralfulrich committed
template <typename Sequence, typename Trajectory>
void Cascade::Run() {
ralfulrich's avatar
ralfulrich committed
  if (!fStack.IsEmpty()) {
    if (!fStack.IsEmpty()) {
      Particle& p = fStack.GetNextParticle();
      Step(p);
    }
    // do cascade equations, which can put new particles on Stack,
    // thus, the double loop
    // DoCascadeEquations(); //
ralfulrich's avatar
ralfulrich committed
template <typename Sequence, typename Trajectory>
void Cascade::Step(Particle& particle) {
ralfulrich's avatar
ralfulrich committed
  double nextStep = fProcesseList.MinStepLength(particle);
  Trajectory trajectory = fProcesseList.Transport(particle, nextStep);
  sequence.DoContinuous(particle, trajectory);
  sequence.DoDiscrete(particle);
}