diff --git a/COAST/COASTProcess.cc b/COAST/COASTProcess.cc index d362bc044a619e6b327c1f5dfc4d2b022ec4e19e..3f4281b4d519eced3b2381a1be7bfaf396789441 100644 --- a/COAST/COASTProcess.cc +++ b/COAST/COASTProcess.cc @@ -30,8 +30,9 @@ namespace corsika::coast { the stack from here (docontinuous) inside corisika7. In corsika8 you will be able to do that. */ - corsika::process::EProcessReturn COASTProcess::DoContinuous(Particle& p, Track& t, - Stack&) { + corsika::process::EProcessReturn COASTProcess::DoContinuous(const Particle& p, + const Track& t, + const Stack&) { using namespace corsika::units::si; auto const start = t.GetPosition(0).GetCoordinates(); auto const delta = t.GetPosition(1).GetCoordinates() - start; diff --git a/COAST/COASTProcess.h b/COAST/COASTProcess.h index 19d1db2c6ff2fc407ad91fd84b6f6e0d7144c805..686975e7f9e4adaeb192cd5f07ce92e79e8e1790 100644 --- a/COAST/COASTProcess.h +++ b/COAST/COASTProcess.h @@ -21,7 +21,8 @@ namespace corsika::coast { public: void Init(); - corsika::process::EProcessReturn DoContinuous(Particle&, Track&, Stack&); + corsika::process::EProcessReturn DoContinuous(const Particle&, const Track&, + const Stack&); corsika::units::si::LengthType MaxStepLength(Particle&, Track&) { return corsika::units::si::meter * std::numeric_limits<double>::infinity(); diff --git a/COAST/COASTStack.h b/COAST/COASTStack.h index 60659cd394d9f20971ebca3721b4e8691c036a91..936c6fa28cdd9255f53911b1153c0657fd003b38 100644 --- a/COAST/COASTStack.h +++ b/COAST/COASTStack.h @@ -53,7 +53,7 @@ namespace corsika::coast { using namespace corsika::units::si; const HEPEnergyType mass = corsika::particles::GetMass(GetPID()); const auto P = sqrt((GetEnergy() - mass) * (GetEnergy() + mass)); - const auto p = GetStackData().GetDirection(cs, GetIndex()); + const auto p = GetStackData().GetDirection(cs); return p * P; } @@ -73,7 +73,7 @@ namespace corsika::coast { corsika::geometry::Vector<corsika::units::si::dimensionless_d> GetDirection( const corsika::geometry::CoordinateSystem& cs) const { - return GetStackData().GetDirection(cs, GetIndex()); + return GetStackData().GetDirection(cs); } corsika::units::si::TimeType GetTimeInterval() const { @@ -126,7 +126,7 @@ namespace corsika::coast { return fParticle1->energy * 1_GeV; } corsika::geometry::Vector<corsika::units::si::dimensionless_d> GetDirection( - const corsika::geometry::CoordinateSystem& cs, const int) const { + const corsika::geometry::CoordinateSystem& cs) const { using namespace corsika::units::si; corsika::geometry::Point p1( cs, {fParticle1->x * 1_cm, fParticle1->y * 1_cm, fParticle1->z * 1_cm}); @@ -141,7 +141,7 @@ namespace corsika::coast { const corsika::geometry::CoordinateSystem& cs, const int) const { using namespace corsika::units::si; corsika::geometry::Vector<corsika::units::si::dimensionless_d> dir = - GetDirection(cs, 0); + GetDirection(cs); corsika::geometry::Point p1( cs, {fParticle1->x * 1_cm, fParticle1->y * 1_cm, fParticle1->z * 1_cm}); corsika::geometry::Point p2( @@ -159,12 +159,12 @@ namespace corsika::coast { } corsika::units::si::TimeType GetTime(const int) const { using namespace corsika::units::si; - return fParticle1->time * 1_ns; + return fParticle1->time * 1_s; } corsika::units::si::TimeType GetTimeInterval() const { using namespace corsika::units::si; - return (fParticle2->time - fParticle1->time) * 1_ns; + return (fParticle2->time - fParticle1->time) * 1_s; } /** diff --git a/COAST/COASTUserLib.cc b/COAST/COASTUserLib.cc index ab4c3d987c81f65dcb41e1b6a6e61f3764e15ae0..57a9ab56838441d5114bde103da516cf3d54b10c 100644 --- a/COAST/COASTUserLib.cc +++ b/COAST/COASTUserLib.cc @@ -84,14 +84,12 @@ extern "C" void track_([[maybe_unused]] const crs::CParticle& pre, int hadronicGeneration; */ gCOASTStack.SetParticle(&pre, &post); - auto particle = gCOASTStack.GetNextParticle(); - - geometry::CoordinateSystem& rootCS = + const auto particle = gCOASTStack.GetNextParticle(); + const geometry::CoordinateSystem& rootCS = geometry::RootCoordinateSystem::GetInstance().GetRootCoordinateSystem(); - geometry::Line const line(particle.GetPosition(rootCS), particle.GetVelocity(rootCS)); const TimeType time = particle.GetTimeInterval(); - geometry::Trajectory<geometry::Line> track(line, time); + const geometry::Trajectory<geometry::Line> track(line, time); gCorsikaProcess.DoContinuous(particle, track, gCOASTStack); } diff --git a/COAST/ParticleConversion.cc b/COAST/ParticleConversion.cc index 489c4dbf4b20cbe53be854a5da2cbca894540402..ddff698ae96ae6b86ec0745e260486a8620f0099 100644 --- a/COAST/ParticleConversion.cc +++ b/COAST/ParticleConversion.cc @@ -23,7 +23,7 @@ namespace corsika::coast { /** Convert particle code, and check if it does exists. Throw exeption, if not! */ - + corsika::particles::Code ConvertFromCoast(CoastCode pCode) { if (coast2corsika.count(pCode) == 0) { ostringstream err; diff --git a/COAST/ParticleConversion.h b/COAST/ParticleConversion.h index 8b7817e7b6e2b0379a66dc98074ff0046c62e10a..8c35c0ea75396b84f7b447edffc57540c7fc10f6 100644 --- a/COAST/ParticleConversion.h +++ b/COAST/ParticleConversion.h @@ -98,26 +98,26 @@ namespace corsika::coast { Tritium = 301, He3 = 302, Helium = 402, - Lithium = 603, - Beryllium = 904, - Boron = 1005, - Carbon = 1206, + Lithium = 603, + Beryllium = 904, + Boron = 1005, + Carbon = 1206, + Carbon13 = 1306, Nitrogen = 1407, Oxygen = 1608, - Neon = 2210, - Argon = 1838, + Neon = 2210, + Argon = 1838, Iron = 5628, - Xenon = 12854, - Radon = 13888, + Xenon = 12854, + Radon = 13888, }; using CoastCodeIntType = std::underlying_type<CoastCode>::type; - /** Here we convert CORSIKA7 to CORSIKA8 codes */ - + const std::map<corsika::coast::CoastCode, corsika::particles::Code> coast2corsika = { {CoastCode::Gamma, corsika::particles::Code::Gamma}, {CoastCode::Positron, corsika::particles::Code::Positron}, @@ -189,10 +189,11 @@ namespace corsika::coast { {CoastCode::Tritium, corsika::particles::Code::Tritium}, {CoastCode::He3, corsika::particles::Code::Helium3}, {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::Lithium, corsika::particles::Code::Lithium}, + {CoastCode::Beryllium, corsika::particles::Code::Beryllium}, + {CoastCode::Boron, corsika::particles::Code::Boron}, {CoastCode::Carbon, corsika::particles::Code::Carbon}, + {CoastCode::Carbon13, corsika::particles::Code::Carbon13}, {CoastCode::Nitrogen, corsika::particles::Code::Nitrogen}, {CoastCode::Oxygen, corsika::particles::Code::Oxygen}, {CoastCode::Neon, corsika::particles::Code::Neon}, @@ -201,7 +202,7 @@ namespace corsika::coast { {CoastCode::Radon, corsika::particles::Code::Radon}, {CoastCode::Iron, corsika::particles::Code::Iron}, // 5628 - //{CoastCode::, corsika::particles::Code::}, + //{CoastCode::, corsika::particles::Code::}, }; diff --git a/Framework/Particles/NuclearData.xml b/Framework/Particles/NuclearData.xml index e01f1ba6a8877ac65c58c4bac33110f3891ba047..69e76393bb9817988cf40d9dbae8beaabe8667a5 100644 --- a/Framework/Particles/NuclearData.xml +++ b/Framework/Particles/NuclearData.xml @@ -27,13 +27,16 @@ <particle id="1000060120" name="carbon" A="12" Z="6" > </particle> +<particle id="1000060120" name="carbon13" A="13" Z="6" > +</particle> + <particle id="1000070140" name="nitrogen" A="14" Z="7" > </particle> <particle id="1000080160" name="oxygen" A="16" Z="8" > </particle> -<particle id="1000180400" name="neon" A="22" Z="10" > +<particle id="1000100220" name="neon" A="22" Z="10" > </particle> <particle id="1000180400" name="argon" A="40" Z="18" > @@ -42,13 +45,13 @@ <particle id="1000280560" name="iron" A="56" Z="28" > </particle> -<particle id="1000180400" name="xenon" A="128" Z="54" > +<particle id="1000541280" name="xenon" A="128" Z="54" > </particle> -<particle id="1000180400" name="radon" A="138" Z="88" > +<particle id="1000822080" name="lead" A="208" Z="82" > </particle> -<particle id="1000280560" name="lead" A="208" Z="82" > +<particle id="1000862220" name="radon" A="222" Z="86" > </particle> </chapter>