CORSIKA
@c8_version@
The framework to simulate particle cascades for astroparticle physics
InteractionModel.hpp
1
/*
2
* (c) Copyright 2022 CORSIKA Project, corsika-project@lists.kit.edu
3
*
4
* This software is distributed under the terms of the GNU General Public
5
* Licence version 3 (GPL Version 3). See file LICENSE for a full version of
6
* the license.
7
*/
8
9
#pragma once
10
11
#include <
corsika/framework/core/ParticleProperties.hpp
>
12
#include <
corsika/framework/core/PhysicalUnits.hpp
>
13
#include <
corsika/framework/geometry/FourVector.hpp
>
14
#include <corsika/modules/sibyll/HadronInteractionModel.hpp>
15
#include <corsika/modules/sibyll/NuclearInteractionModel.hpp>
16
17
namespace
corsika::sibyll
{
24
class
InteractionModel
{
25
public
:
26
using
nuclear_model_type
=
NuclearInteractionModel<HadronInteractionModel>
;
27
28
template
<
typename
TEnvironment>
29
InteractionModel
(TEnvironment
const
&);
30
31
CrossSectionType
getCrossSection(Code, Code,
FourMomentum
const
&,
32
FourMomentum
const
&)
const
;
33
34
template
<
typename
TSecondaries>
35
void
doInteraction(TSecondaries&, Code, Code,
FourMomentum
const
&,
36
FourMomentum
const
&);
37
38
HadronInteractionModel
& getHadronInteractionModel();
39
HadronInteractionModel
const
& getHadronInteractionModel()
const
;
40
nuclear_model_type
& getNuclearInteractionModel();
41
nuclear_model_type
const
& getNuclearInteractionModel()
const
;
42
43
private
:
44
HadronInteractionModel
hadronSibyll_;
45
nuclear_model_type
nuclearSibyll_;
46
};
47
}
// namespace corsika::sibyll
48
49
#include <corsika/detail/modules/sibyll/InteractionModel.inl>
corsika::sibyll::InteractionModel
This class combines sibyll::HadronInteractionModel, which can only handle hadron projectiles, and sibyll::NuclearInteractionModel, which can handle only nucleus projectile, into a single process.
Definition:
InteractionModel.hpp:24
corsika::sibyll
Definition:
Decay.hpp:17
PhysicalUnits.hpp
Import and extend the phys::units package.
corsika::sibyll::NuclearInteractionModel< HadronInteractionModel >
corsika::sibyll::HadronInteractionModel
Provides the SIBYLL hadron-nucleus interaction model.
Definition:
HadronInteractionModel.hpp:26
phys::units::quantity< area_d, double >
corsika::FourVector
Description of physical four-vectors.
Definition:
FourVector.hpp:51
ParticleProperties.hpp
Interface to particle properties.
FourVector.hpp
General FourVector object.
corsika
modules
sibyll
InteractionModel.hpp
Generated by
1.8.13