CORSIKA
@c8_version@
The framework to simulate particle cascades for astroparticle physics
UrQMD.hpp
1
/*
2
* (c) Copyright 2020 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/random/RNGManager.hpp>
14
#include <
corsika/framework/utility/CorsikaData.hpp
>
15
#include <
corsika/framework/geometry/FourVector.hpp
>
16
17
#include <boost/filesystem/path.hpp>
18
#include <boost/multi_array.hpp>
19
20
#include <array>
21
#include <utility>
22
#include <string>
23
24
namespace
corsika::urqmd
{
25
26
class
UrQMD
{
27
public
:
35
UrQMD
(boost::filesystem::path
const
path = corsika_data(
"UrQMD/UrQMD-1.3.1-xs.dat"
),
36
int
const
retryFlag = 0);
37
38
bool
isValid(Code
const
projectileId, Code
const
targetId)
const
;
39
40
CrossSectionType
getTabulatedCrossSection(Code
const
, Code
const
,
41
HEPEnergyType
const
)
const
;
42
43
CrossSectionType
getCrossSection(Code
const
projectileId, Code
const
targetId,
44
FourMomentum
const
& projP4,
45
FourMomentum
const
& targP4)
const
;
46
47
template
<
typename
TView>
48
void
doInteraction(TView&, Code
const
projectile, Code
const
targetId,
49
FourMomentum
const
& projP4,
FourMomentum
const
& targP4);
50
51
private
:
52
void
readXSFile(boost::filesystem::path);
53
54
// data members
55
default_prng_type& RNG_ =
RNGManager<>::getInstance
().
getRandomStream
(
"urqmd"
);
56
std::uniform_int_distribution<int> booleanDist_{0, 1};
57
int
iflb_;
58
boost::multi_array<CrossSectionType, 3> xs_interp_support_table_;
59
};
60
61
}
// namespace corsika::urqmd
62
63
#include <corsika/detail/modules/urqmd/UrQMD.inl>
PhysicalUnits.hpp
Import and extend the phys::units package.
corsika::urqmd::UrQMD::UrQMD
UrQMD(boost::filesystem::path const path=corsika_data("UrQMD/UrQMD-1.3.1-xs.dat"), int const retryFlag=0)
The UrQMD interaction model.
corsika::urqmd::UrQMD
Definition:
UrQMD.hpp:26
corsika::urqmd
Definition:
ParticleConversion.hpp:17
phys::units::quantity< area_d, double >
corsika::FourVector
Description of physical four-vectors.
Definition:
FourVector.hpp:51
CorsikaData.hpp
returns the full path of the file filename within the CORSIKA_DATA directory.
corsika::RNGManager
Definition:
RNGManager.hpp:26
ParticleProperties.hpp
Interface to particle properties.
FourVector.hpp
General FourVector object.
corsika::RNGManager::getRandomStream
prng_type & getRandomStream(string_type const &streamName)
corsika
modules
urqmd
UrQMD.hpp
Generated by
1.8.13