IAP GITLAB

Skip to content
Snippets Groups Projects
VerySimpleModel.h 1.29 KiB
Newer Older
Maximilian Reininghaus's avatar
Maximilian Reininghaus committed
/*
 * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu
 *
 * See file AUTHORS for a list of contributors.
 *
 * This software is distributed under the terms of the GNU General Public
 * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
 * the license.
 */

#ifndef _Physics_VerySimpleModel_h_
#define _Physics_VerySimpleModel_h_

#include <corsika/particles/ParticleProperties.h>
#include <corsika/process/InteractionProcess.h>
#include <corsika/units/PhysicalUnits.h>
#include <corsika/random/RNGManager.h>

namespace corsika::process::very_simple_model {

  class VerySimpleModel : public corsika::process::InteractionProcess<VerySimpleModel> {
    corsika::random::RNG& fRNG =
        corsika::random::RNGManager::GetInstance().GetRandomStream("VerySimpleModel");

  public:
    VerySimpleModel();

    void Init();

    template <typename TParticle>
    corsika::units::si::CrossSectionType GetCrossSection(TParticle const&,
                                                         particles::Code);

    template <typename TParticle>
    corsika::units::si::GrammageType GetInteractionLength(TParticle const&);

    template <typename TProjectile>
    corsika::process::EProcessReturn DoInteraction(TProjectile&);
  };

} // namespace corsika::process::very_simple_model

#endif