IAP GITLAB

Skip to content
Snippets Groups Projects
Commit 57db412e authored by ralfulrich's avatar ralfulrich
Browse files

added a few more nuclei

parent 3deda857
No related branches found
No related tags found
No related merge requests found
...@@ -43,9 +43,10 @@ target_link_libraries ( ...@@ -43,9 +43,10 @@ target_link_libraries (
target_include_directories ( target_include_directories (
COAST COAST
PUBLIC PUBLIC
$ENV{COAST_DIR}/include
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
$<INSTALL_INTERFACE:include/include> $<INSTALL_INTERFACE:include/include>
SYSTEM
$ENV{COAST_DIR}/include
) )
install ( install (
......
...@@ -52,8 +52,8 @@ namespace corsika::coast { ...@@ -52,8 +52,8 @@ namespace corsika::coast {
MomentumVector GetMomentum(const corsika::geometry::CoordinateSystem& cs) const { MomentumVector GetMomentum(const corsika::geometry::CoordinateSystem& cs) const {
using namespace corsika::units::si; using namespace corsika::units::si;
const HEPEnergyType mass = corsika::particles::GetMass(GetPID()); const HEPEnergyType mass = corsika::particles::GetMass(GetPID());
auto P = sqrt((GetEnergy() - mass) * (GetEnergy() + mass)); const auto P = sqrt((GetEnergy() - mass) * (GetEnergy() + mass));
auto p = GetStackData().GetDirection(cs, GetIndex()); const auto p = GetStackData().GetDirection(cs, GetIndex());
return p * P; return p * P;
} }
...@@ -129,9 +129,9 @@ namespace corsika::coast { ...@@ -129,9 +129,9 @@ namespace corsika::coast {
const corsika::geometry::CoordinateSystem& cs, const int) const { const corsika::geometry::CoordinateSystem& cs, const int) const {
using namespace corsika::units::si; using namespace corsika::units::si;
corsika::geometry::Point p1( corsika::geometry::Point p1(
cs, {fParticle1->x * 1_cm, fParticle1->y * 1_cm, fParticle1->y * 1_cm}); cs, {fParticle1->x * 1_cm, fParticle1->y * 1_cm, fParticle1->z * 1_cm});
corsika::geometry::Point p2( corsika::geometry::Point p2(
cs, {fParticle2->x * 1_cm, fParticle2->y * 1_cm, fParticle2->y * 1_cm}); cs, {fParticle2->x * 1_cm, fParticle2->y * 1_cm, fParticle2->z * 1_cm});
const corsika::geometry::Vector D = p2 - p1; const corsika::geometry::Vector D = p2 - p1;
const auto magD = D.norm(); const auto magD = D.norm();
const corsika::geometry::Vector dir = D / magD; const corsika::geometry::Vector dir = D / magD;
...@@ -143,12 +143,12 @@ namespace corsika::coast { ...@@ -143,12 +143,12 @@ namespace corsika::coast {
corsika::geometry::Vector<corsika::units::si::dimensionless_d> dir = corsika::geometry::Vector<corsika::units::si::dimensionless_d> dir =
GetDirection(cs, 0); GetDirection(cs, 0);
corsika::geometry::Point p1( corsika::geometry::Point p1(
cs, {fParticle1->x * 1_cm, fParticle1->y * 1_cm, fParticle1->y * 1_cm}); cs, {fParticle1->x * 1_cm, fParticle1->y * 1_cm, fParticle1->z * 1_cm});
corsika::geometry::Point p2( corsika::geometry::Point p2(
cs, {fParticle2->x * 1_cm, fParticle2->y * 1_cm, fParticle2->y * 1_cm}); cs, {fParticle2->x * 1_cm, fParticle2->y * 1_cm, fParticle2->z * 1_cm});
const corsika::geometry::Vector D = p2 - p1; const corsika::geometry::Vector D = p2 - p1;
const LengthType magD = D.norm(); const LengthType magD = D.norm();
const TimeType deltaT = (fParticle2->time - fParticle1->time) * 1_ns; const TimeType deltaT = GetTimeInterval();
return dir * magD / deltaT; return dir * magD / deltaT;
} }
corsika::geometry::Point GetPosition(const corsika::geometry::CoordinateSystem& cs, corsika::geometry::Point GetPosition(const corsika::geometry::CoordinateSystem& cs,
......
...@@ -20,6 +20,10 @@ using namespace std; ...@@ -20,6 +20,10 @@ using namespace std;
namespace corsika::coast { namespace corsika::coast {
/**
Convert particle code, and check if it does exists. Throw exeption, if not!
*/
corsika::particles::Code ConvertFromCoast(CoastCode pCode) { corsika::particles::Code ConvertFromCoast(CoastCode pCode) {
if (coast2corsika.count(pCode) == 0) { if (coast2corsika.count(pCode) == 0) {
ostringstream err; ostringstream err;
...@@ -30,7 +34,5 @@ namespace corsika::coast { ...@@ -30,7 +34,5 @@ namespace corsika::coast {
} }
return coast2corsika.find(pCode)->second; return coast2corsika.find(pCode)->second;
} }
// process::sibyll::Sibyll2Corsika = {
// {PID::E_MINUS, InternalParticleCode::Electron},
//};
} // namespace corsika::coast } // namespace corsika::coast
...@@ -20,6 +20,9 @@ ...@@ -20,6 +20,9 @@
namespace corsika::coast { namespace corsika::coast {
/**
Here we define the original CORSIKA particle codes, see corsika manual
*/
enum class CoastCode : int16_t { enum class CoastCode : int16_t {
Gamma = 1, Gamma = 1,
Positron = 2, Positron = 2,
...@@ -90,14 +93,31 @@ namespace corsika::coast { ...@@ -90,14 +93,31 @@ namespace corsika::coast {
Code95 = 95, Code95 = 95,
Code96 = 96, Code96 = 96,
ProtonNucleus = 101,
Deuterium = 201,
Tritium = 301,
He3 = 302,
Helium = 402, Helium = 402,
Carbon = 612, Lithium = 603,
Nitrogen = 714, Beryllium = 904,
Oxygen = 816, Boron = 1005,
Carbon = 1206,
Nitrogen = 1407,
Oxygen = 1608,
Neon = 2210,
Argon = 1838,
Iron = 5628, Iron = 5628,
Xenon = 12854,
Radon = 13888,
}; };
using CoastCodeIntType = std::underlying_type<CoastCode>::type; using CoastCodeIntType = std::underlying_type<CoastCode>::type;
/**
Here we convert CORSIKA7 to CORSIKA8 codes
*/
const std::map<corsika::coast::CoastCode, corsika::particles::Code> coast2corsika = { const std::map<corsika::coast::CoastCode, corsika::particles::Code> coast2corsika = {
{CoastCode::Gamma, corsika::particles::Code::Gamma}, {CoastCode::Gamma, corsika::particles::Code::Gamma},
{CoastCode::Positron, corsika::particles::Code::Positron}, {CoastCode::Positron, corsika::particles::Code::Positron},
...@@ -164,13 +184,24 @@ namespace corsika::coast { ...@@ -164,13 +184,24 @@ namespace corsika::coast {
{CoastCode::Code95, corsika::particles::Code::Unknown}, {CoastCode::Code95, corsika::particles::Code::Unknown},
{CoastCode::Code96, corsika::particles::Code::Unknown}, {CoastCode::Code96, corsika::particles::Code::Unknown},
{CoastCode::ProtonNucleus, corsika::particles::Code::Proton}, // 101
{CoastCode::Deuterium, corsika::particles::Code::Deuterium},
{CoastCode::Tritium, corsika::particles::Code::Tritium},
{CoastCode::He3, corsika::particles::Code::Helium3},
{CoastCode::Helium, corsika::particles::Code::Helium}, // 402 {CoastCode::Helium, corsika::particles::Code::Helium}, // 402
{CoastCode::Lithium, corsika::particles::Code::Lithium},
{CoastCode::Beryllium, corsika::particles::Code::Beryllium},
{CoastCode::Boron, corsika::particles::Code::Boron},
{CoastCode::Carbon, corsika::particles::Code::Carbon}, {CoastCode::Carbon, corsika::particles::Code::Carbon},
{CoastCode::Nitrogen, corsika::particles::Code::Nitrogen}, {CoastCode::Nitrogen, corsika::particles::Code::Nitrogen},
{CoastCode::Oxygen, corsika::particles::Code::Oxygen}, {CoastCode::Oxygen, corsika::particles::Code::Oxygen},
{CoastCode::Neon, corsika::particles::Code::Neon},
{CoastCode::Argon, corsika::particles::Code::Argon},
{CoastCode::Xenon, corsika::particles::Code::Xenon},
{CoastCode::Radon, corsika::particles::Code::Radon},
{CoastCode::Iron, corsika::particles::Code::Iron}, // 5628 {CoastCode::Iron, corsika::particles::Code::Iron}, // 5628
//{CoastCode::, corsika::particles::Code::} //{CoastCode::, corsika::particles::Code::},
}; };
......
...@@ -12,6 +12,18 @@ ...@@ -12,6 +12,18 @@
<particle id="1000020040" name="helium" A="4" Z="2" > <particle id="1000020040" name="helium" A="4" Z="2" >
</particle> </particle>
<particle id="1000020030" name="helium3" A="3" Z="2" >
</particle>
<particle id="1000020030" name="lithium" A="6" Z="3" >
</particle>
<particle id="1000020030" name="beryllium" A="9" Z="4" >
</particle>
<particle id="1000020030" name="boron" A="10" Z="5" >
</particle>
<particle id="1000060120" name="carbon" A="12" Z="6" > <particle id="1000060120" name="carbon" A="12" Z="6" >
</particle> </particle>
...@@ -21,10 +33,22 @@ ...@@ -21,10 +33,22 @@
<particle id="1000080160" name="oxygen" A="16" Z="8" > <particle id="1000080160" name="oxygen" A="16" Z="8" >
</particle> </particle>
<particle id="1000180400" name="neon" A="22" Z="10" >
</particle>
<particle id="1000180400" name="argon" A="40" Z="18" > <particle id="1000180400" name="argon" A="40" Z="18" >
</particle> </particle>
<particle id="1000280560" name="iron" A="56" Z="28" > <particle id="1000280560" name="iron" A="56" Z="28" >
</particle> </particle>
<particle id="1000180400" name="xenon" A="128" Z="54" >
</particle>
<particle id="1000180400" name="radon" A="138" Z="88" >
</particle>
<particle id="1000280560" name="lead" A="208" Z="82" >
</particle>
</chapter> </chapter>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment