/* * (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