diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ba7c0f9242ac697378101681271151ac56a4306..9287a561ac8697932c1e8bb26143ad0725e26d2e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,7 +140,7 @@ add_subdirectory (tests/modules) #+++++++++++++++++++++++++++++++ # examples # -#add_subdirectory (examples) +add_subdirectory (examples) # #+++++++++++++++++++++++++++++++ # diff --git a/corsika/detail/framework/core/Cascade.inl b/corsika/detail/framework/core/Cascade.inl index 1f784caa6e04944b273e49eafba6d929f7588401..7dba8399ec77bc72bf4bad4b80bd27770500b9d1 100644 --- a/corsika/detail/framework/core/Cascade.inl +++ b/corsika/detail/framework/core/Cascade.inl @@ -151,9 +151,9 @@ namespace corsika { step.LimitEndTo(min_distance); // apply all continuous processes on particle + track - process::EProcessReturn status = fProcessSequence.DoContinuous(vParticle, step); + corsika::EProcessReturn status = fProcessSequence.DoContinuous(vParticle, step); - if (status == process::EProcessReturn::eParticleAbsorbed) { + if (status == corsika::EProcessReturn::eParticleAbsorbed) { std::cout << "Cascade: delete absorbed particle " << vParticle.GetPID() << " " << vParticle.GetEnergy() / 1_GeV << "GeV" << std::endl; vParticle.Delete(); @@ -232,7 +232,7 @@ namespace corsika { units::si::InverseTimeType const actual_decay_time = fProcessSequence.GetTotalInverseLifetime(particle); - random::UniformRealDistribution<units::si::InverseTimeType> uniDist( + corsika::UniformRealDistribution<units::si::InverseTimeType> uniDist( actual_decay_time); const auto sample_process = uniDist(fRNG); units::si::InverseTimeType inv_decay_count = units::si::InverseTimeType::zero(); @@ -241,7 +241,7 @@ namespace corsika { } template <typename TTracking, typename TProcessList, typename TStack, typename TStackView> - auto Cascade<TTracking, TProcessList, TStack, TStackView >::interaction(particle_type& particle, + auto Cascade<TTracking, TProcessList, TStack, TStackView >::interaction(Particle& particle, decltype(std::declval<TStackView>().GetProjectile()) projectile) { std::cout << "collide" << std::endl; @@ -249,7 +249,7 @@ namespace corsika { units::si::InverseGrammageType const current_inv_length = fProcessSequence.GetTotalInverseInteractionLength(particle); - random::UniformRealDistribution<units::si::InverseGrammageType> uniDist( + corsika::UniformRealDistribution<units::si::InverseGrammageType> uniDist( current_inv_length); const auto sample_process = uniDist(fRNG); auto inv_lambda_count = units::si::InverseGrammageType::zero(); diff --git a/corsika/detail/modules/energy_loss/EnergyLoss.inl b/corsika/detail/modules/energy_loss/EnergyLoss.inl new file mode 100644 index 0000000000000000000000000000000000000000..c4e883086e104bd88ef7373edf3fbcfc9387503c --- /dev/null +++ b/corsika/detail/modules/energy_loss/EnergyLoss.inl @@ -0,0 +1,283 @@ +/* + * (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. + */ + +#pragma once + +#include <corsika/modules/energy_loss/EnergyLoss.hpp> + +#include <corsika/framework/core/ParticleProperties.hpp> + +#include <corsika/setup/SetupStack.hpp> +#include <corsika/setup/SetupTrajectory.hpp> + +#include <corsika/framework/geometry/Line.hpp> + +#include <cmath> +#include <fstream> +#include <iostream> +#include <limits> + +using SetupParticle = corsika::setup::Stack::ParticleType; +using SetupTrack = corsika::setup::Trajectory; + +namespace corsika::energy_loss { + + auto elab2plab = [](corsika::units::si::HEPEnergyType Elab, + corsika::units::si::HEPMassType m) { + return sqrt((Elab - m) * (Elab + m)); + }; + + /** + * PDG2018, passage of particles through matter + * + * Note, that \f$I_{\mathrm{eff}}\f$ of composite media a determined from \f$ \ln I = + * \sum_i a_i \ln(I_i) \f$ where \f$ a_i \f$ is the fraction of the electron population + * (\f$\sim Z_i\f$) of the \f$i\f$-th element. This can also be used for shell + * corrections or density effects. + * + * The \f$I_{\mathrm{eff}}\f$ of compounds is not better than a few percent, if not + * measured explicitly. + * + * For shell correction, see Sec 6 of https://www.nap.edu/read/20066/chapter/8#115 + * + */ + corsika::units::si::HEPEnergyType EnergyLoss::BetheBloch( + SetupParticle const& p, corsika::units::si::GrammageType const dX) { + + using namespace corsika::units::si; + + // all these are material constants and have to come through Environment + // right now: values for nitrogen_D + // 7 nitrogen_gas 82.0 0.49976 D E 0.0011653 0.0 1.7378 4.1323 0.15349 3.2125 10.54 + auto Ieff = 82.0_eV; + [[maybe_unused]] auto Zmat = 7; + auto ZoverA = 0.49976_mol / 1_g; + const double x0 = 1.7378; + const double x1 = 4.1323; + const double Cbar = 10.54; + const double delta0 = 0.0; + const double aa = 0.15349; + const double sk = 3.2125; + // end of material constants + + // this is the Bethe-Bloch coefficiet 4pi N_A r_e^2 m_e c^2 + auto constexpr K = 0.307075_MeV / 1_mol * square(1_cm); + HEPEnergyType const E = p.GetEnergy(); + HEPMassType const m = p.GetMass(); + double const gamma = E / m; + int const Z = p.GetChargeNumber(); + int const Z2 = Z * Z; + HEPMassType constexpr me = corsika::Electron::GetMass(); + auto const m2 = m * m; + auto constexpr me2 = me * me; + double const gamma2 = gamma * gamma; + + double const beta2 = (gamma2 - 1) / gamma2; // 1-1/gamma2 (1-1/gamma)*(1+1/gamma); + // (gamma_2-1)/gamma_2 = (1-1/gamma2); + double constexpr c2 = 1; // HEP convention here c=c2=1 + std::cout << "BetheBloch beta2=" << beta2 << " gamma2=" << gamma2 << std::endl; + [[maybe_unused]] double const eta2 = beta2 / (1 - beta2); + HEPMassType const Wmax = + 2 * me * c2 * beta2 * gamma2 / (1 + 2 * gamma * me / m + me2 / m2); + // approx, but <<1% HEPMassType const Wmax = 2*me*c2*beta2*gamma2; for HEAVY + // PARTICLES Wmax ~ 2me v2 for non-relativistic particles + std::cout << "BetheBloch Wmax=" << Wmax << std::endl; + + // Sternheimer parameterization, density corrections towards high energies + // NOTE/TODO: when Cbar is 0 it needs to be approximated from parameterization -> + // MISSING + std::cout << "BetheBloch p.GetMomentum().GetNorm()/m=" << p.GetMomentum().GetNorm() / m + << std::endl; + double const x = log10(p.GetMomentum().GetNorm() / m); + double delta = 0; + if (x >= x1) { + delta = 2 * (log(10)) * x - Cbar; + } else if (x < x1 && x >= x0) { + delta = 2 * (log(10)) * x - Cbar + aa * pow((x1 - x), sk); + } else if (x < x0) { // and IF conductor (otherwise, this is 0) + delta = delta0 * pow(100, 2 * (x - x0)); + } + std::cout << "BetheBloch delta=" << delta << std::endl; + + // with further low energies correction, accurary ~1% down to beta~0.05 (1MeV for p) + + // shell correction, <~100MeV + // need more clarity about formulas and units + const double Cadj = 0; + /* + // https://www.nap.edu/read/20066/chapter/8#104 + HEPEnergyType Iadj = 12_eV * Z + 7_eV; // Iadj<163eV + if (Iadj>=163_eV) + Iadj = 9.76_eV * Z + 58.8_eV * pow(Z, -0.19); // Iadj>=163eV + double const Cadj = (0.422377/eta2 + 0.0304043/(eta2*eta2) - + 0.00038106/(eta2*eta2*eta2)) * 1e-6 * Iadj*Iadj + (3.858019/eta2 - + 0.1667989/(eta2*eta2) + 0.00157955/(eta2*eta2*eta2)) * 1e-9 * Iadj*Iadj*Iadj; + */ + + // Barkas correction O(Z3) higher-order Born approximation + // see Appl. Phys. 85 (1999) 1249 + // double A = 1; + // if (p.GetPID() == corsika::Code::Nucleus) A = p.GetNuclearA(); + // double const Erel = (p.GetEnergy()-p.GetMass()) / A / 1_keV; + // double const Llow = 0.01 * Erel; + // double const Lhigh = 1.5/pow(Erel, 0.4) + 45000./Zmat * pow(Erel, 1.6); + // double const barkas = Z * Llow*Lhigh/(Llow+Lhigh); // RU, I think the Z was + // missing... + double const barkas = 1; // does not work yet + + // Bloch correction for O(Z4) higher-order Born approximation + // see Appl. Phys. 85 (1999) 1249 + const double alpha = 1. / 137.035999173; + double const y2 = Z * Z * alpha * alpha / beta2; + double const bloch = -y2 * (1.202 - y2 * (1.042 - 0.855 * y2 + 0.343 * y2 * y2)); + + // std::cout << "BetheBloch Erel=" << Erel << " barkas=" << barkas << " bloch=" << bloch << + // std::endl; + + double const aux = 2 * me * c2 * beta2 * gamma2 * Wmax / (Ieff * Ieff); + return -K * Z2 * ZoverA / beta2 * + (0.5 * log(aux) - beta2 - Cadj / Z - delta / 2 + barkas + bloch) * dX; + } + + // radiation losses according to PDG 2018, ch. 33 ref. [5] + corsika::units::si::HEPEnergyType EnergyLoss::RadiationLosses(SetupParticle const& vP, + corsika::units::si::GrammageType const vDX) { + using namespace corsika::units::si; + // simple-minded hard-coded value for b(E) inspired by data from + // http://pdg.lbl.gov/2018/AtomicNuclearProperties/ for N and O. + auto constexpr b = 3.0 * 1e-6 * square(1_cm) / 1_g; + return -vP.GetEnergy() * b * vDX; + } + + corsika::units::si::HEPEnergyType EnergyLoss::TotalEnergyLoss(SetupParticle const& vP, + corsika::units::si::GrammageType const vDX) { + return BetheBloch(vP, vDX) + RadiationLosses(vP, vDX); + } + + corsika::EProcessReturn EnergyLoss::DoContinuous(SetupParticle& p, + SetupTrack const& t) { + using namespace corsika::units::si; + if (p.GetChargeNumber() == 0) return corsika::EProcessReturn::eOk; + + GrammageType const dX = + p.GetNode()->GetModelProperties().IntegratedGrammage(t, t.GetLength()); + std::cout << "EnergyLoss " << p.GetPID() << ", z=" << p.GetChargeNumber() + << ", dX=" << dX / 1_g * square(1_cm) << "g/cm2" << std::endl; + HEPEnergyType dE = TotalEnergyLoss(p, dX); + auto E = p.GetEnergy(); + const auto Ekin = E - p.GetMass(); + auto Enew = E + dE; + std::cout << "EnergyLoss dE=" << dE / 1_MeV << "MeV, " + << " E=" << E / 1_GeV << "GeV, Ekin=" << Ekin / 1_GeV + << ", Enew=" << Enew / 1_GeV << "GeV" << std::endl; + auto status = corsika::EProcessReturn::eOk; + if (-dE > Ekin) { + dE = -Ekin; + Enew = p.GetMass(); + status = corsika::EProcessReturn::eParticleAbsorbed; + } + p.SetEnergy(Enew); + MomentumUpdate(p, Enew); + EnergyLossTot_ += dE; + FillProfile(p, t, dE); + return status; + } + + corsika::units::si::LengthType EnergyLoss::MaxStepLength( + SetupParticle const& vParticle, SetupTrack const& vTrack) const { + using namespace corsika::units::si; + if (vParticle.GetChargeNumber() == 0) { + return units::si::meter * std::numeric_limits<double>::infinity(); + } + + auto constexpr dX = 1_g / square(1_cm); + auto const dE = -TotalEnergyLoss(vParticle, dX); // dE > 0 + //~ auto const Ekin = vParticle.GetEnergy() - vParticle.GetMass(); + auto const maxLoss = 0.01 * vParticle.GetEnergy(); + auto const maxGrammage = maxLoss / dE * dX; + + return vParticle.GetNode()->GetModelProperties().ArclengthFromGrammage(vTrack, + maxGrammage) * + 1.0001; // to make sure particle gets absorbed when DoContinuous() is called + } + + void EnergyLoss::MomentumUpdate(corsika::setup::Stack::ParticleType& vP, + corsika::units::si::HEPEnergyType Enew) { + using namespace corsika::units::si; + HEPMomentumType Pnew = elab2plab(Enew, vP.GetMass()); + auto pnew = vP.GetMomentum(); + vP.SetMomentum(pnew * Pnew / pnew.GetNorm()); + } + + void EnergyLoss::FillProfile(SetupParticle const& vP, SetupTrack const& vTrack, + const corsika::units::si::HEPEnergyType dE) { + + using namespace corsika::units::si; + + auto const toStart = vTrack.GetPosition(0) - InjectionPoint_; + auto const toEnd = vTrack.GetPosition(1) - InjectionPoint_; + + auto const v1 = (toStart * 1_Hz).dot(ShowerAxisDirection_); + auto const v2 = (toEnd * 1_Hz).dot(ShowerAxisDirection_); + corsika::Line const lineToStartBin(InjectionPoint_, ShowerAxisDirection_ * v1); + corsika::Line const lineToEndBin(InjectionPoint_, ShowerAxisDirection_ * v2); + + SetupTrack const trajToStartBin(lineToStartBin, 1_s); + SetupTrack const trajToEndBin(lineToEndBin, 1_s); + + GrammageType const grammageStart = + vP.GetNode()->GetModelProperties().IntegratedGrammage(trajToStartBin, + trajToStartBin.GetLength()); + GrammageType const grammageEnd = + vP.GetNode()->GetModelProperties().IntegratedGrammage(trajToEndBin, + trajToEndBin.GetLength()); + + const int binStart = grammageStart / dX_; + const int binEnd = grammageEnd / dX_; + + std::cout << "energy deposit of " << -dE << " between " << grammageStart << " and " + << grammageEnd << std::endl; + + auto energyCount = HEPEnergyType::zero(); + + auto fill = [&](int bin, GrammageType weight) { + const auto dX = grammageEnd - grammageStart; + if (dX > dX_threshold_) { + auto const increment = -dE * weight / (grammageEnd - grammageStart); + Profile_[bin] += increment; + energyCount += increment; + + std::cout << "filling bin " << bin << " with weight " << weight << ": " + << increment << std::endl; + } + }; + + // fill longitudinal profile + fill(binStart, (1 + binStart) * dX_ - grammageStart); + fill(binEnd, grammageEnd - binEnd * dX_); + + if (binStart == binEnd) { fill(binStart, -dX_); } + + for (int bin = binStart + 1; bin < binEnd; ++bin) { fill(bin, dX_); } + + std::cout << "total energy added to histogram: " << energyCount << std::endl; + } + + void EnergyLoss::PrintProfile() const { + using namespace corsika::units::si; + std::ofstream file("EnergyLossProfile.dat"); + std::cout << "# EnergyLoss PrintProfile X-bin [g/cm2] dE/dX [GeV/g/cm2] " << std::endl; + double const deltaX = dX_ / 1_g * square(1_cm); + for (auto v : Profile_) { + file << v.first * deltaX << " " << v.second / (deltaX * 1_GeV) << std::endl; + } + } + +} // namespace corsika::energy_loss diff --git a/corsika/detail/modules/track_writer/TrackWriter.inl b/corsika/detail/modules/track_writer/TrackWriter.inl new file mode 100644 index 0000000000000000000000000000000000000000..82e3688388e5b440a12cbbd0e65428d371161aad --- /dev/null +++ b/corsika/detail/modules/track_writer/TrackWriter.inl @@ -0,0 +1,60 @@ +/* + * (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. + */ + +#pragma once + +#include <corsika/modules/track_writer/TrackWriter.hpp> + +#include <corsika/framework/core/ParticleProperties.hpp> + +#include <corsika/setup/SetupStack.hpp> +#include <corsika/setup/SetupTrajectory.hpp> + +#include <iomanip> +#include <limits> + +namespace corsika::track_writer { + + void TrackWriter::Init() { + using namespace std::string_literals; + + fFile.open(fFilename); + fFile << "# PID, E / eV, start coordinates / m, displacement vector to end / m "s + << '\n'; + } + + template <typename TParticle, typename TTrack> + corsika::EProcessReturn TrackWriter::DoContinuous(const TParticle& vP, + const TTrack& vT) { + using namespace units::si; + auto const start = vT.GetPosition(0).GetCoordinates(); + auto const delta = vT.GetPosition(1).GetCoordinates() - start; + auto const pdg = static_cast<int>(corsika::GetPDG(vP.GetPID())); + + // clang-format off + fFile << std::setw(7) << pdg + << std::setw(width) << std::scientific << std::setprecision(precision) << vP.GetEnergy() / 1_eV + << std::setw(width) << std::scientific << std::setprecision(precision) << start[0] / 1_m + << std::setw(width) << std::scientific << std::setprecision(precision) << start[1] / 1_m + << std::setw(width) << std::scientific << std::setprecision(precision) << start[2] / 1_m + << std::setw(width) << std::scientific << std::setprecision(precision) << delta[0] / 1_m + << std::setw(width) << std::scientific << std::setprecision(precision) << delta[1] / 1_m + << std::setw(width) << std::scientific << std::setprecision(precision) << delta[2] / 1_m << '\n'; + // clang-format on + + return corsika::EProcessReturn::eOk; + } + + template <typename TParticle, typename TTrack> + units::si::LengthType TrackWriter::MaxStepLength(const TParticle&, const TTrack&) { + return units::si::meter * std::numeric_limits<double>::infinity(); + } + +} // namespace corsika::track_writer diff --git a/corsika/framework/core/Cascade.hpp b/corsika/framework/core/Cascade.hpp index 0a7bf3d7bcb3e4d1754f484595b9575f6328dd3d..b6990bda4f85c43696b4adccef64d5a71d5786c2 100644 --- a/corsika/framework/core/Cascade.hpp +++ b/corsika/framework/core/Cascade.hpp @@ -12,9 +12,6 @@ #include <cmath> #include <limits> -//FIXME: importing what from BOOST ? -#include <boost/type_index.hpp> - #include <corsika/media/Environment.hpp> #include <corsika/setup/SetupStack.hpp> #include <corsika/setup/SetupTrajectory.hpp> @@ -25,11 +22,6 @@ #include <corsika/framework/stack/SecondaryView.hpp> #include <corsika/framework/core/PhysicalUnits.hpp> -//FIXME: importing what from BOOST ? -//using boost::typeindex::type_id_with_cvr; - -#include <fstream> - /** * The cascade namespace assembles all objects needed to simulate full particles cascades. */ @@ -58,7 +50,7 @@ namespace corsika { * */ template <typename TTracking, typename TProcessList, typename TStack, - typename TStackView = corsika::StackView> + typename TStackView = corsika::setup::StackView> class Cascade { @@ -109,7 +101,7 @@ namespace corsika { auto decay(Particle& particle, decltype(std::declval<TStackView>().GetProjectile()) projectile); - auto interaction(particle_type& particle, decltype(std::declval<TStackView>().GetProjectile()) projectile) ; + auto interaction(Particle& particle, decltype(std::declval<TStackView>().GetProjectile()) projectile) ; corsika::Environment<MediumInterface> const& fEnvironment; TTracking& fTracking; diff --git a/corsika/modules/energy_loss/EnergyLoss.hpp b/corsika/modules/energy_loss/EnergyLoss.hpp new file mode 100644 index 0000000000000000000000000000000000000000..126bbd47e99c2f29ad32717d05af3e9b46d2c3af --- /dev/null +++ b/corsika/modules/energy_loss/EnergyLoss.hpp @@ -0,0 +1,79 @@ +/* + * (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. + */ + +#pragma once + +#include <corsika/framework/geometry/Point.hpp> +#include <corsika/framework/geometry/Vector.hpp> +#include <corsika/framework/sequence/ContinuousProcess.hpp> +#include <corsika/framework/core/PhysicalUnits.hpp> + +#include <corsika/setup/SetupStack.hpp> +#include <corsika/setup/SetupTrajectory.hpp> + +#include <map> + +namespace corsika::energy_loss { + + class EnergyLoss : public corsika::ContinuousProcess<EnergyLoss> { + + using MeVgcm2 = decltype(1e6 * units::si::electronvolt / units::si::gram * + units::si::square(1e-2 * units::si::meter)); + + void MomentumUpdate(setup::Stack::ParticleType&, units::si::HEPEnergyType Enew); + + public: + template <typename TDim> + EnergyLoss(corsika::Point const& injectionPoint, + corsika::Vector<TDim> const& direction) + : InjectionPoint_(injectionPoint) + , ShowerAxisDirection_(direction.normalized()) {} + + EnergyLoss(setup::Trajectory const& trajectory) + : EnergyLoss(trajectory.GetPosition(0), trajectory.GetV0()){}; + + void Init() {} + corsika::EProcessReturn DoContinuous(setup::Stack::ParticleType&, + setup::Trajectory const&); + units::si::LengthType MaxStepLength(setup::Stack::ParticleType const&, + setup::Trajectory const&) const; + units::si::HEPEnergyType GetTotal() const { return EnergyLossTot_; } + void PrintProfile() const; + static units::si::HEPEnergyType BetheBloch(setup::Stack::ParticleType const&, + const units::si::GrammageType); + static units::si::HEPEnergyType RadiationLosses(setup::Stack::ParticleType const&, + const units::si::GrammageType); + static units::si::HEPEnergyType TotalEnergyLoss(setup::Stack::ParticleType const&, + const units::si::GrammageType); + + private: + void FillProfile(setup::Stack::ParticleType const&, setup::Trajectory const&, + units::si::HEPEnergyType); + // void FillProfileAbsorbed(setup::Stack::ParticleType const&, setup::Trajectory + // const&); + + units::si::HEPEnergyType EnergyLossTot_ = units::si::HEPEnergyType::zero(); + units::si::GrammageType const dX_ = std::invoke([]() { + using namespace units::si; + return 10_g / square(1_cm); + }); // profile binning + std::map<int, units::si::HEPEnergyType> Profile_; // longitudinal profile + corsika::Point const InjectionPoint_; + corsika::Vector<units::si::dimensionless_d> const ShowerAxisDirection_; + }; + + const units::si::GrammageType dX_threshold_ = std::invoke([]() { + using namespace units::si; + return 0.0001_g / square(1_cm); + }); + +} // namespace corsika::energy_loss + +#include <corsika/detail/modules/energy_loss/EnergyLoss.inl> diff --git a/corsika/modules/energy_loss/Properties8.dat b/corsika/modules/energy_loss/Properties8.dat new file mode 100644 index 0000000000000000000000000000000000000000..377c3df7748acf71795e02277fbf6cb8c1905943 --- /dev/null +++ b/corsika/modules/energy_loss/Properties8.dat @@ -0,0 +1,2907 @@ +# RU Mo 18. Feb 14:07:40 CET 2019 +# Data table obtained from: http://pdg.lbl.gov/2018/AtomicNuclearProperties/properties8.dat +# see also: http://pdg.lbl.gov/2018/AtomicNuclearProperties/expert.html + 1 Hydro 3 1.0080000000 7 0.99212 8.3748E-05 8.3755E-05 D 1 1 4 E +H hydrogen_gas +hydrogen gas (H%2#) + 19.2 9.5835 1.8639 3.2718 0.14092 5.7273 0.00 + 1 1.000000 1.000000 +Boiling point -252.87 20.267 K +Melting point -259.34 13.82 K +Index of ref (n-1)*E6 132.0 http://www.kayelaby.npl.co.uk/ +Note: The mass of atomic <SUP>1</SUP>H is 1.007 276 522 6 (13) u (mass of the proton less binding energy of 13.61 eV = 1.461E-09 u). +---------------------------------------------------------------------------- + 2 Heliu 6 4.0026020000 2 0.49967 1.6632E-04 1.6632E-04 G 1 1 2 E +He helium_gas_He +helium gas (He) + 41.8 11.1393 2.2017 3.6122 0.13443 5.8347 0.00 + 2 1.000000 1.000000 +Boiling point -268.93 +Index of ref (n-1)*E6 35.0 http://www.kayelaby.npl.co.uk/ +---------------------------------------------------------------------------- + 3 Lithi 2 6.9400000000 2 0.43221 5.3400E-01 5.3400E-01 S 1 1 2 E +Li lithium_Li +lithium (Li) + 40.0 3.1221 0.1304 1.6397 0.95136 2.4993 0.14 + 3 1.000000 1.000000 +melting point 180.5 +boiling point 1342. +---------------------------------------------------------------------------- + 4 Beryl 7 9.0121831000 5 0.44384 1.8480E+00 1.8480E+00 S 1 1 2 E +Be beryllium_Be +beryllium (Be) + 63.7 2.7847 0.0592 1.6922 0.80392 2.4339 0.14 + 4 1.000000 1.000000 +melting point 1287. +boiling point 2471. +---------------------------------------------------------------------------- + 5 Boron 2 10.8100000000 7 0.46249 2.3700E+00 2.3700E+00 S 1 1 0 E +B boron_B +boron (B) + 76.0 2.8477 0.0305 1.9688 0.56224 2.4512 0.14 + 5 1.000000 1.000000 +---------------------------------------------------------------------------- + 6 Carbo 4 12.0107000000 8 0.49955 2.0000E+00 2.0000E+00 S 1 1 0 E +C carbon_amorphous_C +carbon (amorphous) (C) + 78.0 2.9925 -0.0351 2.4860 0.20240 3.0036 0.10 + 6 1.000000 1.000000 +---------------------------------------------------------------------------- + 7 Nitro 3 14.0070000000 2 0.49976 1.1653E-03 1.1653E-03 D 1 1 3 E +N nitrogen_gas +nitrogen gas (N%2#) + 82.0 10.5400 1.7378 4.1323 0.15349 3.2125 0.00 + 7 1.000000 1.000000 +Melting point (C) -210.00 +Boiling point (C) -195.86 +Index of ref (n-1)*E6 298.0 http://www.kayelaby.npl.co.uk/ +---------------------------------------------------------------------------- + 8 Oxyge 3 15.9990000000 3 0.50002 1.3315E-03 1.3315E-03 D 1 1 3 E +O oxygen_gas +oxygen gas (O%2#) + 95.0 10.7004 1.7541 4.3213 0.11778 3.2913 0.00 + 8 1.000000 1.000000 +Melting point (C) -218.79 +Boiling point (C) -182.95 +Index of ref (n-1)*E6 271.0 http://www.kayelaby.npl.co.uk/ +---------------------------------------------------------------------------- + 9 Fluor 9 18.9984031630 6 0.47372 1.5803E-03 1.5803E-03 D 1 1 3 E +F fluorine_gas +fluorine gas (F%2#) + 115.0 10.9653 1.8433 4.4096 0.11083 3.2962 0.00 + 9 1.000000 1.000000 +Melting point -219.62 +Boiling point -188.12 +Index ref (n-1) 195. +---------------------------------------------------------------------------- + 10 Neon 4 20.1797000000 6 0.49555 8.3851E-04 8.3851E-04 G 1 1 3 E +Ne neon_gas_Ne +neon gas (Ne) + 137.0 11.9041 2.0735 4.6421 0.08064 3.5771 0.00 + 10 1.000000 1.000000 +Boiling point -246.08 +Melting point -248.59 +Index ref 67.1 +---------------------------------------------------------------------------- + 11 Sodiu 8 22.9897692800 2 0.47847 9.7100E-01 9.7100E-01 S 1 1 0 E +Na sodium_Na +sodium (Na) + 149.0 5.0526 0.2880 3.1962 0.07772 3.6452 0.08 + 11 1.000000 1.000000 +---------------------------------------------------------------------------- + 12 Magne 3 24.3050000000 6 0.49373 1.7400E+00 1.7400E+00 S 1 1 0 E +Mg magnesium_Mg +magnesium (Mg) + 156.0 4.5297 0.1499 3.0668 0.08163 3.6166 0.08 + 12 1.000000 1.000000 +---------------------------------------------------------------------------- + 13 Alumi 7 26.9815385000 7 0.48181 2.6989E+00 2.6989E+00 S 1 1 2 E +Al aluminum_Al +aluminum (Al) + 166.0 4.2395 0.1708 3.0127 0.08024 3.6345 0.12 + 13 1.000000 1.000000 +melti 660.32 Aluminum +boili 2519. Aluminum +---------------------------------------------------------------------------- + 14 Silic 4 28.0855000000 3 0.49848 2.3300E+00 2.3290E+00 S 1 1 3 E +Si silicon_Si +silicon (Si) + 173.0 4.4351 0.2014 2.8715 0.14921 3.2546 0.14 + 14 1.000000 1.000000 +Index of ref 3.95 +Melting point 1414. +Boiling point 3265. +---------------------------------------------------------------------------- + 15 Phosp 9 30.9737619980 5 0.48428 2.2000E+00 2.2000E+00 S 1 1 0 E +P phosphorus_P +phosphorus (P) + 173.0 4.5214 0.1696 2.7815 0.23610 2.9158 0.14 + 15 1.000000 1.000000 +---------------------------------------------------------------------------- + 16 Sulfu 3 32.0650000000 5 0.49899 2.0000E+00 2.0000E+00 S 1 1 0 E +S sulfur_S +sulfur (S) + 180.0 4.6659 0.1580 2.7159 0.33992 2.6456 0.14 + 16 1.000000 1.000000 +---------------------------------------------------------------------------- + 17 Chlor 3 35.4530000000 2 0.47951 2.9947E-03 2.9800E-03 D 1 1 3 E +Cl chlorine_gas +chlorine gas (Cl%2#) + 174.0 11.1421 1.5555 4.2994 0.19849 2.9702 0.00 + 17 1.000000 1.000000 +Melting point -101.5 +Boiling point -34.04 +Index of ref (n-1)*E6 773.0 http://www.kayelaby.npl.co.uk/ +---------------------------------------------------------------------------- + 18 Argon 3 39.9480000000 1 0.45059 1.6620E-03 1.6620E-03 G 1 1 3 E +Ar argon_gas_Ar +argon gas (Ar) + 188.0 11.9480 1.7635 4.4855 0.19714 2.9618 0.00 + 18 1.000000 1.000000 +Boiling point -185.89 +Melting point -189.3442 +Index of ref (n-1)*E6 281.0 http://www.kayelaby.npl.co.uk/ +---------------------------------------------------------------------------- + 19 Potas 4 39.0983000000 1 0.48595 8.6200E-01 8.6200E-01 S 1 1 0 E +K potassium_K +potassium (K) + 190.0 5.6423 0.3851 3.1724 0.19827 2.9233 0.10 + 19 1.000000 1.000000 +---------------------------------------------------------------------------- + 20 Calci 3 40.0780000000 4 0.49903 1.5500E+00 1.5500E+00 S 1 1 0 E +Ca calcium_Ca +calcium (Ca) + 191.0 5.0396 0.3228 3.1191 0.15643 3.0745 0.14 + 20 1.000000 1.000000 +---------------------------------------------------------------------------- + 21 Scand 6 44.9559080000 5 0.46712 2.9890E+00 2.9890E+00 S 1 1 0 E +Sc scandium_Sc +scandium (Sc) + 216.0 4.6949 0.1640 3.0593 0.15754 3.0517 0.10 + 21 1.000000 1.000000 +---------------------------------------------------------------------------- + 22 Titan 3 47.8670000000 1 0.45961 4.5400E+00 4.5400E+00 S 1 1 2 E +Ti titanium_Ti +titanium (Ti) + 233.0 4.4450 0.0957 3.0386 0.15662 3.0302 0.12 + 22 1.000000 1.000000 +melti 1668. Titanium +boili 3287. Titanium +---------------------------------------------------------------------------- + 23 Vanad 4 50.9415000000 1 0.45150 6.1100E+00 6.1100E+00 S 1 1 0 E +V vanadium_V +vanadium (V) + 245.0 4.2659 0.0691 3.0322 0.15436 3.0163 0.14 + 23 1.000000 1.000000 +---------------------------------------------------------------------------- + 24 Chrom 4 51.9961000000 6 0.46157 7.1800E+00 7.1800E+00 S 1 1 0 E +Cr chromium_Cr +chromium (Cr) + 257.0 4.1781 0.0340 3.0451 0.15419 2.9896 0.14 + 24 1.000000 1.000000 +---------------------------------------------------------------------------- + 25 Manga 6 54.9380440000 3 0.45506 7.4400E+00 7.4400E+00 S 1 1 0 E +Mn manganese_Mn +manganese (Mn) + 272.0 4.2702 0.0447 3.1074 0.14973 2.9796 0.14 + 25 1.000000 1.000000 +---------------------------------------------------------------------------- + 26 Iron 3 55.8450000000 2 0.46557 7.8740E+00 7.8740E+00 S 1 1 2 E +Fe iron_Fe +iron (Fe) + 286.0 4.2911 -0.0012 3.1531 0.14680 2.9632 0.12 + 26 1.000000 1.000000 +Melting point C 1538. +Boiling point C 2861. +---------------------------------------------------------------------------- + 27 Cobal 6 58.9331940000 4 0.45815 8.9000E+00 8.9000E+00 S 1 1 0 E +Co cobalt_Co +cobalt (Co) + 297.0 4.2601 -0.0187 3.1790 0.14474 2.9502 0.12 + 27 1.000000 1.000000 +---------------------------------------------------------------------------- + 28 Nicke 4 58.6934000000 4 0.47706 8.9020E+00 8.9020E+00 S 1 1 0 E +Ni nickel_Ni +nickel (Ni) + 311.0 4.3115 -0.0566 3.1851 0.16496 2.8430 0.10 + 28 1.000000 1.000000 +---------------------------------------------------------------------------- + 29 Coppe 3 63.5460000000 3 0.45636 8.9600E+00 8.9600E+00 S 1 1 2 E +Cu copper_Cu +copper (Cu) + 322.0 4.4190 -0.0254 3.2792 0.14339 2.9044 0.08 + 29 1.000000 1.000000 +melti 1084.62 Copper +boili 2562. Copper +---------------------------------------------------------------------------- + 30 Zinc 2 65.3800000000 2 0.45886 7.1330E+00 7.1330E+00 S 1 1 0 E +Zn zinc_Zn +zinc (Zn) + 330.0 4.6906 0.0049 3.3668 0.14714 2.8652 0.08 + 30 1.000000 1.000000 +---------------------------------------------------------------------------- + 31 Galli 3 69.7230000000 1 0.44462 5.9040E+00 5.9040E+00 S 1 1 0 E +Ga gallium_Ga +gallium (Ga) + 334.0 4.9353 0.2267 3.5434 0.09440 3.1314 0.14 + 31 1.000000 1.000000 +---------------------------------------------------------------------------- + 32 Germa 3 72.6300000000 1 0.44053 5.3230E+00 5.3230E+00 S 1 1 2 E +Ge germanium_Ge +germanium (Ge) + 350.0 5.1411 0.3376 3.6096 0.07188 3.3306 0.14 + 32 1.000000 1.000000 +melti 938.25 Germanium +boili 2833. Germanium +---------------------------------------------------------------------------- + 33 Arsen 6 74.9215950000 6 0.44046 5.7300E+00 5.7300E+00 S 1 1 0 E +As arsenic_As +arsenic (As) + 347.0 5.0510 0.1767 3.5702 0.06633 3.4176 0.08 + 33 1.000000 1.000000 +---------------------------------------------------------------------------- + 34 Selen 3 78.9710000000 8 0.43060 4.5000E+00 4.5000E+00 S 1 1 0 E +Se selenium_Se +selenium (Se) + 348.0 5.3210 0.2258 3.6264 0.06568 3.4317 0.10 + 34 1.000000 1.000000 +---------------------------------------------------------------------------- + 35 Bromi 3 79.9040000000 1 0.43803 7.0722E-03 7.0722E-03 D 1 1 2 E +Br bromine_gas +bromine gas (Br%2#) + 343.0 11.7307 1.5262 4.9899 0.06335 3.4670 0.00 + 35 1.000000 1.000000 +melting point -7.2 +boiling point 58.78 +---------------------------------------------------------------------------- + 36 Krypt 3 83.7980000000 2 0.42960 3.4783E-03 3.4856E-03 G 1 1 2 E +Kr krypton_gas_Kr +krypton gas (Kr) + 352.0 12.5115 1.7158 5.0748 0.07446 3.4051 0.00 + 36 1.000000 1.000000 +melting point -157.36 +boiling point -153.22 +---------------------------------------------------------------------------- + 37 Rubid 4 85.4678000000 3 0.43291 1.5320E+00 1.5320E+00 S 1 1 0 E +Rb rubidium_Rb +rubidium (Rb) + 363.0 6.4776 0.5737 3.7995 0.07261 3.4177 0.14 + 37 1.000000 1.000000 +---------------------------------------------------------------------------- + 38 Stron 2 87.6200000000 1 0.43369 2.5400E+00 2.5400E+00 S 1 1 0 E +Sr strontium_Sr +strontium (Sr) + 366.0 5.9867 0.4585 3.6778 0.07165 3.4435 0.14 + 38 1.000000 1.000000 +---------------------------------------------------------------------------- + 39 Yttri 5 88.9058400000 2 0.43867 4.4690E+00 4.4690E+00 S 1 1 0 E +Y yttrium_Y +yttrium (Y) + 379.0 5.4801 0.3608 3.5542 0.07138 3.4585 0.14 + 39 1.000000 1.000000 +---------------------------------------------------------------------------- + 40 Zirco 3 91.2240000000 2 0.43848 6.5060E+00 6.5060E+00 S 1 1 0 E +Zr zirconium_Zr +zirconium (Zr) + 393.0 5.1774 0.2957 3.4890 0.07177 3.4533 0.14 + 40 1.000000 1.000000 +---------------------------------------------------------------------------- + 41 Niobi 5 92.9063700000 2 0.44130 8.5700E+00 8.5700E+00 S 1 1 0 E +Nb niobium_Nb +niobium (Nb) + 417.0 5.0141 0.1785 3.2201 0.13883 3.0930 0.14 + 41 1.000000 1.000000 +---------------------------------------------------------------------------- + 42 Molyb 2 95.9500000000 1 0.43768 1.0220E+01 1.0220E+01 S 1 1 0 E +Mo molybdenum_Mo +molybdenum (Mo) + 424.0 4.8793 0.2267 3.2784 0.10525 3.2549 0.14 + 42 1.000000 1.000000 +---------------------------------------------------------------------------- + 43 Techn 5 97.9072200000 3 0.43919 1.1500E+01 1.1500E+01 S 1 1 3 R +Tc technetium_Tc +technetium (Tc) + 428.0 4.7769 0.0949 3.1253 0.16572 2.9738 0.14 + 43 1.000000 1.000000 +melting 2157. +boiling 4265. +Note: Since there are no stable isotopes, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 44 Ruthe 2 101.0700000000 2 0.43534 1.2410E+01 1.2410E+01 S 1 1 0 E +Ru ruthenium_Ru +ruthenium (Ru) + 441.0 4.7694 0.0599 3.0834 0.19342 2.8707 0.14 + 44 1.000000 1.000000 +---------------------------------------------------------------------------- + 45 Rhodi 5 102.9055000000 2 0.43729 1.2410E+01 1.2410E+01 S 1 1 0 E +Rh rhodium_Rh +rhodium (Rh) + 449.0 4.8008 0.0576 3.1069 0.19205 2.8633 0.14 + 45 1.000000 1.000000 +---------------------------------------------------------------------------- + 46 Palla 2 106.4200000000 1 0.43225 1.2020E+01 1.2020E+01 S 1 1 0 E +Pd palladium_Pd +palladium (Pd) + 470.0 4.9358 0.0563 3.0555 0.24178 2.7239 0.14 + 46 1.000000 1.000000 +---------------------------------------------------------------------------- + 47 Silve 4 107.8682000000 2 0.43572 1.0500E+01 1.0500E+01 S 1 1 0 E +Ag silver_Ag +silver (Ag) + 470.0 5.0630 0.0657 3.1074 0.24585 2.6899 0.14 + 47 1.000000 1.000000 +---------------------------------------------------------------------------- + 48 Cadmi 3 112.4140000000 4 0.42700 8.6500E+00 8.6500E+00 S 1 1 0 E +Cd cadmium_Cd +cadmium (Cd) + 469.0 5.2727 0.1281 3.1667 0.24609 2.6772 0.14 + 48 1.000000 1.000000 +---------------------------------------------------------------------------- + 49 Indiu 3 114.8180000000 3 0.42676 7.3100E+00 7.3100E+00 S 1 1 0 E +In indium_In +indium (In) + 488.0 5.5211 0.2406 3.2032 0.23879 2.7144 0.14 + 49 1.000000 1.000000 +---------------------------------------------------------------------------- + 50 Tin 3 118.7100000000 7 0.42119 7.3100E+00 7.3100E+00 S 1 1 2 E +Sn tin_Sn +tin (Sn) + 488.0 5.5340 0.2879 3.2959 0.18689 2.8576 0.14 + 50 1.000000 1.000000 +melti 231.93 Tin +boili 2602. Tin +---------------------------------------------------------------------------- + 51 Antim 3 121.7600000000 1 0.41886 6.6910E+00 6.6910E+00 S 1 1 0 E +Sb antimony_Sb +antimony (Sb) + 487.0 5.6241 0.3189 3.3489 0.16652 2.9319 0.14 + 51 1.000000 1.000000 +---------------------------------------------------------------------------- + 52 Tellu 2 127.6000000000 3 0.40752 6.2400E+00 6.2400E+00 S 1 1 0 E +Te tellurium_Te +tellurium (Te) + 485.0 5.7131 0.3296 3.4418 0.13815 3.0354 0.14 + 52 1.000000 1.000000 +---------------------------------------------------------------------------- + 53 Iodin 5 126.9044700000 3 0.41764 4.9300E+00 4.9300E+00 S 1 1 2 E +I iodine_I +iodine (I) + 491.0 5.9488 0.0549 3.2596 0.23766 2.7276 0.00 + 53 1.000000 1.000000 +melting point 113.7 +boiling point 184.4 +---------------------------------------------------------------------------- + 54 Xenon 3 131.2930000000 6 0.41129 5.4854E-03 5.4830E-03 G 1 1 3 E +Xe xenon_gas_Xe +xenon gas (Xe) + 482.0 12.7281 1.5630 4.7371 0.23314 2.7414 0.00 + 54 1.000000 1.000000 +Index ref 701. +Melting point -111.75 +Boiling point -108.0 +---------------------------------------------------------------------------- + 55 Caesi 8 132.9054519600 6 0.41383 1.8730E+00 1.8730E+00 S 1 1 0 E +Cs caesium_Cs +caesium (Cs) + 488.0 6.9135 0.5473 3.5914 0.18233 2.8866 0.14 + 55 1.000000 1.000000 +---------------------------------------------------------------------------- + 56 Bariu 3 137.3270000000 7 0.40779 3.5000E+00 3.5000E+00 S 1 1 0 E +Ba barium_Ba +barium (Ba) + 491.0 6.3153 0.4190 3.4547 0.18268 2.8906 0.14 + 56 1.000000 1.000000 +---------------------------------------------------------------------------- + 57 Lanth 5 138.9054700000 7 0.41035 6.1540E+00 6.1450E+00 S 1 1 0 E +La lanthanum_La +lanthanum (La) + 501.0 5.7850 0.3161 3.3293 0.18591 2.8828 0.14 + 57 1.000000 1.000000 +---------------------------------------------------------------------------- + 58 Ceriu 3 140.1160000000 1 0.41394 6.6570E+00 6.7700E+00 S 1 1 0 E +Ce cerium_Ce +cerium (Ce) + 523.0 5.7837 0.2713 3.3432 0.18885 2.8592 0.14 + 58 1.000000 1.000000 +---------------------------------------------------------------------------- + 59 Prase 5 140.9076600000 2 0.41871 6.7100E+00 6.7730E+00 S 1 1 0 E +Pr praseodymium_Pr +praseodymium (Pr) + 535.0 5.8096 0.2333 3.2773 0.23265 2.7331 0.14 + 59 1.000000 1.000000 +---------------------------------------------------------------------------- + 60 Neody 3 144.2420000000 3 0.41597 6.9000E+00 7.0080E+00 S 1 1 0 E +Nd neodymium_Nd +neodymium (Nd) + 546.0 5.8290 0.1984 3.3063 0.23530 2.7050 0.14 + 60 1.000000 1.000000 +---------------------------------------------------------------------------- + 61 Prome 5 144.9127500000 3 0.42094 7.2200E+00 7.2640E+00 S 1 1 1 R +Pm promethium_Pm +promethium (Pm) + 560.0 5.8224 0.1627 3.3199 0.24280 2.6674 0.14 + 61 1.000000 1.000000 +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 62 Samar 2 150.3600000000 2 0.41234 7.4600E+00 7.5200E+00 S 1 1 0 E +Sm samarium_Sm +samarium (Sm) + 574.0 5.8597 0.1520 3.3460 0.24698 2.6403 0.14 + 62 1.000000 1.000000 +---------------------------------------------------------------------------- + 63 Europ 3 151.9640000000 1 0.41457 5.2430E+00 5.2440E+00 S 1 1 0 E +Eu europium_Eu +europium (Eu) + 580.0 6.2278 0.1888 3.4633 0.24448 2.6245 0.14 + 63 1.000000 1.000000 +---------------------------------------------------------------------------- + 64 Gadol 2 157.2500000000 3 0.40700 7.9004E+00 7.9010E+00 S 1 1 0 E +Gd gadolinium_Gd +gadolinium (Gd) + 591.0 5.8738 0.1058 3.3932 0.25109 2.5977 0.14 + 64 1.000000 1.000000 +---------------------------------------------------------------------------- + 65 Terbi 5 158.9253500000 2 0.40900 8.2290E+00 8.2300E+00 S 1 1 0 E +Tb terbium_Tb +terbium (Tb) + 614.0 5.9045 0.0947 3.4224 0.24453 2.6056 0.14 + 65 1.000000 1.000000 +---------------------------------------------------------------------------- + 66 Dyspr 3 162.5000000000 1 0.40615 8.5500E+00 8.5510E+00 S 1 1 0 E +Dy dysprosium_Dy +dysprosium (Dy) + 628.0 5.9183 0.0822 3.4474 0.24665 2.5849 0.14 + 66 1.000000 1.000000 +---------------------------------------------------------------------------- + 67 Holmi 5 164.9303300000 2 0.40623 8.7950E+00 8.7950E+00 S 1 1 0 E +Ho holmium_Ho +holmium (Ho) + 650.0 5.9587 0.0761 3.4782 0.24638 2.5726 0.14 + 67 1.000000 1.000000 +---------------------------------------------------------------------------- + 68 Erbiu 3 167.2590000000 3 0.40656 9.0660E+00 9.0260E+00 S 1 1 0 E +Er erbium_Er +erbium (Er) + 658.0 5.9521 0.0648 3.4922 0.24823 2.5573 0.14 + 68 1.000000 1.000000 +---------------------------------------------------------------------------- + 69 Thuli 5 168.9342200000 2 0.40844 9.3210E+00 9.3210E+00 S 1 1 0 E +Tm thulium_Tm +thulium (Tm) + 674.0 5.9677 0.0812 3.5085 0.24889 2.5469 0.14 + 69 1.000000 1.000000 +---------------------------------------------------------------------------- + 70 Ytter 3 173.0540000000 5 0.40450 6.7300E+00 6.9030E+00 S 1 1 0 E +Yb ytterbium_Yb +ytterbium (Yb) + 684.0 6.3325 0.1199 3.6246 0.25295 2.5141 0.14 + 70 1.000000 1.000000 +---------------------------------------------------------------------------- + 71 Lutet 4 174.9668000000 1 0.40579 9.8400E+00 9.8410E+00 S 1 1 0 E +Lu lutetium_Lu +lutetium (Lu) + 694.0 5.9785 0.1560 3.5218 0.24033 2.5643 0.14 + 71 1.000000 1.000000 +---------------------------------------------------------------------------- + 72 Hafni 2 178.4900000000 2 0.40338 1.3310E+01 1.3310E+01 S 1 1 0 E +Hf hafnium_Hf +hafnium (Hf) + 705.0 5.7139 0.1965 3.4337 0.22918 2.6155 0.14 + 72 1.000000 1.000000 +---------------------------------------------------------------------------- + 73 Tanta 5 180.9478800000 2 0.40343 1.6654E+01 1.6654E+01 S 1 1 0 E +Ta tantalum_Ta +tantalum (Ta) + 718.0 5.5262 0.2117 3.4805 0.17798 2.7623 0.14 + 73 1.000000 1.000000 +---------------------------------------------------------------------------- + 74 Tungs 2 183.8400000000 1 0.40252 1.9300E+01 1.9300E+01 S 1 1 2 E +W tungsten_W +tungsten (W) + 727.0 5.4059 0.2167 3.4960 0.15509 2.8447 0.14 + 74 1.000000 1.000000 +melti 3422. Tungsten +boili 5555. Tungsten +---------------------------------------------------------------------------- + 75 Rheni 3 186.2070000000 1 0.40278 2.1020E+01 2.1020E+01 S 1 1 0 E +Re rhenium_Re +rhenium (Re) + 736.0 5.3445 0.0559 3.4845 0.15184 2.8627 0.08 + 75 1.000000 1.000000 +---------------------------------------------------------------------------- + 76 Osmiu 2 190.2300000000 3 0.39952 2.2570E+01 2.2570E+01 S 1 1 0 E +Os osmium_Os +osmium (Os) + 746.0 5.3083 0.0891 3.5414 0.12751 2.9608 0.10 + 76 1.000000 1.000000 +---------------------------------------------------------------------------- + 77 Iridi 3 192.2170000000 3 0.40059 2.2420E+01 2.2420E+01 S 1 1 0 E +Ir iridium_Ir +iridium (Ir) + 757.0 5.3418 0.0819 3.5480 0.12690 2.9658 0.10 + 77 1.000000 1.000000 +---------------------------------------------------------------------------- + 78 Plati 3 195.0840000000 9 0.39983 2.1450E+01 2.1450E+01 S 1 1 2 E +Pt platinum_Pt +platinum (Pt) + 790.0 5.4732 0.1484 3.6212 0.11128 3.0417 0.12 + 78 1.000000 1.000000 +melti 1768.4 Platinum +boili 3825. Platinum +---------------------------------------------------------------------------- + 79 Gold 6 196.9665690000 5 0.40108 1.9320E+01 1.9320E+01 S 1 1 2 E +Au gold_Au +gold (Au) + 790.0 5.5747 0.2021 3.6979 0.09756 3.1101 0.14 + 79 1.000000 1.000000 +melti 1064.18 Gold +boili 2856. Gold +---------------------------------------------------------------------------- + 80 Mercu 3 200.5920000000 2 0.39882 1.3546E+01 1.3546E+01 L 1 1 0 E +Hg mercury_Hg +mercury (Hg) + 800.0 5.9605 0.2756 3.7275 0.11014 3.0519 0.14 + 80 1.000000 1.000000 +---------------------------------------------------------------------------- + 81 Thall 2 204.3800000000 2 0.39631 1.1720E+01 1.1720E+01 S 1 1 0 E +Tl thallium_Tl +thallium (Tl) + 810.0 6.1365 0.3491 3.8044 0.09455 3.1450 0.14 + 81 1.000000 1.000000 +---------------------------------------------------------------------------- + 82 Lead 1 207.2000000000 1 0.39575 1.1350E+01 1.1350E+01 S 1 1 2 E +Pb lead_Pb +lead (Pb) + 823.0 6.2018 0.3776 3.8073 0.09359 3.1608 0.14 + 82 1.000000 1.000000 +melti 327.46 Lead +boili 1749. Lead +---------------------------------------------------------------------------- + 83 Bismu 5 208.9804000000 1 0.39717 9.7470E+00 9.7470E+00 S 1 1 0 E +Bi bismuth_Bi +bismuth (Bi) + 823.0 6.3505 0.4152 3.8248 0.09410 3.1671 0.14 + 83 1.000000 1.000000 +---------------------------------------------------------------------------- + 84 Polon 5 208.9824300000 2 0.40195 9.3200E+00 9.3200E+00 S 1 1 1 R +Po polonium_Po +polonium (Po) + 830.0 6.4003 0.4267 3.8293 0.09282 3.1830 0.14 + 84 1.000000 1.000000 +Note: Since there are no stable isotopes, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 85 H-liq 3 1.0080000000 7 0.99212 6.0000E-02 7.0800E-02 L 1 1 3 E +H liquid_hydrogen +liquid hydrogen (H%2#) + 21.8 3.2632 0.4759 1.9215 0.13483 5.6249 0.00 + 1 1.000000 1.000000 +Melting point -259.34 Rubber Bible +Boiling point -252.87 Rubber Bible +Index of ref 1.112 +---------------------------------------------------------------------------- + 86 Radon 5 222.0175800000 2 0.38736 9.0662E-03 9.0662E-03 G 1 1 3 R +Rn radon_Rn +radon (Rn) + 794.0 13.2839 1.5368 4.9889 0.20798 2.7409 0.00 + 86 1.000000 1.000000 +Melting point -71. +Boiling point -61.7 +Note: Since there are no stable isotopes, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 87 C (gr 4 12.0107000000 8 0.49955 1.7000E+00 2.2100E+00 S 1 1 2 E +C carbon_graphite_C +carbon (graphite) (C) + 78.0 3.1550 0.0480 2.5387 0.20762 2.9532 0.14 + 6 1.000000 1.000000 +Sublimation point 3825.0 +Note: Density may vary 2.09 to 2.23 +---------------------------------------------------------------------------- + 88 Radiu 5 226.0254100000 2 0.38934 5.0000E+00 5.0000E+00 S 1 1 1 R +Ra radium_Ra +radium (Ra) + 826.0 7.0452 0.5991 3.9428 0.08804 3.2454 0.14 + 88 1.000000 1.000000 +Note: Since there are no stable isotopes, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 89 Actin 5 227.0277500000 2 0.39202 1.0070E+01 1.0070E+01 S 1 1 1 R +Ac actinium_Ac +actinium (Ac) + 841.0 6.3742 0.4559 3.7966 0.08567 3.2683 0.14 + 89 1.000000 1.000000 +Note: Since there are no stable isotopes, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 90 Thori 4 232.0377000000 4 0.38787 1.1720E+01 1.1720E+01 S 1 1 3 R +Th thorium_Th +thorium (Th) + 847.0 6.2473 0.4202 3.7681 0.08655 3.2610 0.14 + 90 1.000000 1.000000 +melting 1135. +boiling 4131. +Note: There is a well-defined terrestrial aboundance for thorium even though it is radioactive. +---------------------------------------------------------------------------- + 91 Prota 5 231.0358800000 2 0.39388 1.5370E+01 1.5370E+01 S 1 1 2 R +Pa protactinium_Pa +protactinium (Pa) + 878.0 6.0327 0.3144 3.5079 0.14770 2.9845 0.14 + 91 1.000000 1.000000 +melting 1572. +Note: There is a well-defined terrestrial aboundance for protactinium even though it is radioactive. +---------------------------------------------------------------------------- + 92 Urani 5 238.0289100000 3 0.38651 1.8950E+01 1.8950E+01 S 1 1 3 R +U uranium_U +uranium (U) + 890.0 5.8694 0.2260 3.3721 0.19677 2.8171 0.14 + 92 1.000000 1.000000 +melti 1135. Uranium +boili 4131. Uranium +Note: There is a well-defined terrestrial aboundance for uranium even though it is radioactive. +---------------------------------------------------------------------------- + 93 Neptu 5 237.0481700000 2 0.39233 2.0250E+01 2.0250E+01 S 1 1 1 R +Np neptunium_Np +neptunium (Np) + 902.0 5.8149 0.1869 3.3690 0.19741 2.8082 0.14 + 93 1.000000 1.000000 +Note: Since there are no stable isotopes, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 94 Pluto 5 244.0642000000 4 0.38514 1.9840E+01 1.9840E+01 S 1 1 1 R +Pu plutonium_Pu +plutonium (Pu) + 921.0 5.8748 0.1557 3.3981 0.20419 2.7679 0.14 + 94 1.000000 1.000000 +Note: Since there are no stable isotopes, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 95 Ameri 5 243.0613800000 2 0.39085 1.3670E+01 1.3670E+01 S 1 1 1 R +Am americium_Am +americium (Am) + 934.0 6.2813 0.2274 3.5021 0.20308 2.7615 0.14 + 95 1.000000 1.000000 +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 96 Curiu 5 247.0703500000 3 0.38855 1.3510E+01 1.3510E+01 S 1 1 2 R +Cm curium_Cm +curium (Cm) + 939.0 6.3097 0.2484 3.5160 0.20257 2.7579 0.14 + 96 1.000000 1.000000 +Melting 1345. +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 97 Berke 5 247.0703100000 4 0.39260 0.9860E+00 0.9860E+01 S 1 1 2 R +Bk berkelium_Bk +berkelium (Bk) + 952.0 6.2912 0.5509 3.0000 0.25556 3.0000 0.00 + 97 1.000000 1.000000 +Melting point 986. +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 98 Carbo 4 12.0107000000 8 0.49955 2.2650E+00 2.2650E+00 S 1 1 0 R +C carbon_compact_C +carbon (compact) (C) + 78.0 2.8680 -0.0178 2.3415 0.26142 2.8697 0.12 + 6 1.000000 1.000000 +---------------------------------------------------------------------------- + 99 A-150 5 -1.0000000000 0.54903 1.1270E+00 1.1270E+00 S 6 1 0 B + a-150_tissue-equivalent_plastic +A-150 tissue-equivalent plastic + 65.1 3.1100 0.1329 2.6234 0.10783 3.4442 0.00 + 1 1.000000 0.101327 + 6 0.642279 0.775501 + 7 0.024897 0.035057 + 8 0.032527 0.052316 + 9 0.009122 0.017422 + 20 0.004561 0.018378 +---------------------------------------------------------------------------- + 100 Aceto 5 -1.0000000000 0.55097 7.8990E-01 7.8990E-01 L 3 6 1 O + acetone +acetone (CH%3#COCH%3#) + 64.2 3.4341 0.2197 2.6928 0.11100 3.4047 0.00 + 1 6.000000 0.104122 + 6 3.000201 0.620405 + 8 1.000043 0.275473 +Index of ref 1.36 +---------------------------------------------------------------------------- + 101 Acety 5 -1.0000000000 0.53768 1.0967E-03 1.0967E-03 G 2 2 0 O + acetylene_CHCH +acetylene (CHCH) + 58.2 9.8419 1.6017 4.0074 0.12167 3.4277 0.00 + 1 2.000000 0.077418 + 6 2.000135 0.922582 +---------------------------------------------------------------------------- + 102 Adeni 5 -1.0000000000 0.51903 1.3500E+00 1.3500E+00 S 3 5 0 O + adenine +adenine (C%5#H%5#N%5#) + 71.4 3.1724 0.1295 2.4219 0.20908 3.0271 0.00 + 1 5.000000 0.037294 + 6 5.000354 0.444430 + 7 5.000218 0.518275 +---------------------------------------------------------------------------- + 103 Adip- 5 -1.0000000000 0.55947 9.2000E-01 9.2000E-01 S 13 1 0 B + adipose_tissue_ICRP +adipose tissue (ICRP) + 63.2 3.2367 0.1827 2.6530 0.10278 3.4817 0.00 + 1 1.000000 0.119477 + 6 0.447595 0.637240 + 7 0.004800 0.007970 + 8 0.122506 0.232333 + 11 0.000183 0.000500 + 12 0.000007 0.000020 + 15 0.000044 0.000160 + 16 0.000192 0.000730 + 17 0.000283 0.001190 + 19 0.000069 0.000320 + 20 0.000004 0.000020 + 26 0.000003 0.000020 + 30 0.000003 0.000020 +---------------------------------------------------------------------------- + 104 Air 5 -1.0000000000 0.49919 1.2048E-03 1.2048E-03 G 4 0 2 M + air_dry_1_atm +air (dry, 1 atm) + 85.7 10.5961 1.7418 4.2759 0.10914 3.3994 0.00 + 6 0.000124 0.000124 + 7 0.755267 0.755267 + 8 0.231871 0.231781 + 18 0.012827 0.012827 +Boiling point -194.35 +Index of ref 288.6 http://emtoolbox.nist.gov/ +---------------------------------------------------------------------------- + 105 Alani 5 -1.0000000000 0.53976 1.4200E+00 1.4200E+00 S 4 7 0 O + alanine +alanine (C%3#H%7#NO%2#) + 71.9 3.0965 0.1354 2.6336 0.11484 3.3526 0.00 + 1 7.000000 0.079190 + 6 3.000178 0.404439 + 7 1.000032 0.157213 + 8 2.000071 0.359159 +---------------------------------------------------------------------------- + 106 Al2O3 5 -1.0000000000 0.49038 3.9700E+00 3.9700E+00 S 2 3 3 I + aluminum_oxide_sapphire +aluminum oxide (sapphire, Al%2#O%3#) + 145.2 3.5682 0.0402 2.8665 0.08500 3.5458 0.00 + 8 3.000000 0.470749 + 13 2.000002 0.529251 +Index of refraction 1.77 +Melting point 2054. +Boiling point 3000. approximate +---------------------------------------------------------------------------- + 107 Amber 5 -1.0000000000 0.55179 1.1000E+00 1.1000E+00 S 3 16 0 O + amber +amber (C%10#H%16#O) + 63.2 3.0701 0.1335 2.5610 0.11934 3.4098 0.00 + 1 16.000000 0.105930 + 6 10.000679 0.788973 + 8 1.000042 0.105096 +---------------------------------------------------------------------------- + 108 Ammon 5 -1.0000000000 0.59719 8.2602E-04 8.2602E-04 G 2 3 1 I + ammonia +ammonia (NH%3#) + 53.7 9.8763 1.6822 4.1158 0.08315 3.6464 0.00 + 1 3.000000 0.177547 + 7 1.000038 0.822453 +Index of ref (n-1)*E6 376.0 http://www.kayelaby.npl.co.uk/ +---------------------------------------------------------------------------- + 109 Anili 5 -1.0000000000 0.53699 1.0235E+00 1.0235E+00 L 3 7 0 O + aniline +aniline (C%6#H%5#NH%2#) + 66.2 3.2622 0.1618 2.5805 0.13134 3.3434 0.00 + 1 7.000000 0.075759 + 6 6.000400 0.773838 + 7 1.000041 0.150403 +---------------------------------------------------------------------------- + 110 Anthr 5 -1.0000000000 0.52740 1.2830E+00 1.2830E+00 S 2 10 0 O + anthracene +anthracene (C%14#H%10#) + 69.5 3.1514 0.1146 2.5213 0.14677 3.2831 0.00 + 1 10.000000 0.056550 + 6 14.000793 0.943450 +---------------------------------------------------------------------------- + 111 B-100 5 -1.0000000000 0.52740 1.4500E+00 1.4500E+00 S 6 1 0 B + b-100_Bone-equivalent_plastic +b-100 Bone-equivalent plastic + 85.9 3.4528 0.1252 3.0420 0.05268 3.7365 0.00 + 1 1.000000 0.065471 + 6 0.688251 0.536945 + 7 0.023631 0.021500 + 8 0.030873 0.032085 + 9 0.135660 0.167411 + 20 0.067833 0.176589 +---------------------------------------------------------------------------- + 112 Bakel 5 -1.0000000000 0.52792 1.2500E+00 1.2500E+00 S 3 38 0 P + bakelite +bakelite [(C%43#H%38#O%7#)%n#] + 72.4 3.2582 0.1471 2.6055 0.12713 3.3470 0.00 + 1 38.000000 0.057441 + 6 43.003166 0.774591 + 8 7.000340 0.167968 +---------------------------------------------------------------------------- + 113 Ba-F2 5 -1.0000000000 0.42207 4.8900E+00 4.8930E+00 S 2 2 3 I + barium_fluoride +barium fluoride (BaF%2#) + 375.9 5.4122 -0.0098 3.3871 0.15991 2.8867 0.00 + 9 2.000000 0.216720 + 56 1.000021 0.783280 +Melting point (C) 1368. +Boiling point (C) 2260. +Index of ref 1.4744 CRC2006 10-246 +---------------------------------------------------------------------------- + 114 Ba-SO 5 -1.0000000000 0.44561 4.5000E+00 4.5000E+00 S 3 4 0 I + barium_sulfate +barium sulfate BaSO%4# + 285.7 4.8923 -0.0128 3.4069 0.11747 3.0427 0.00 + 8 4.000000 0.274212 + 16 0.999811 0.137368 + 56 1.000020 0.588420 +---------------------------------------------------------------------------- + 115 Benze 5 -1.0000000000 0.53769 8.7865E-01 8.7865E-01 L 2 6 0 O + benzene +benzene C%6#H%6# + 63.4 3.3269 0.1710 2.5091 0.16519 3.2174 0.00 + 1 6.000000 0.077418 + 6 6.000406 0.922582 +---------------------------------------------------------------------------- + 116 Be-O 5 -1.0000000000 0.47979 3.0100E+00 3.0100E+00 S 2 1 0 I + beryllium_oxide_BeO +beryllium oxide (BeO) + 93.2 2.9801 0.0241 2.5846 0.10755 3.4927 0.00 + 4 1.000000 0.360320 + 8 1.000002 0.639680 +---------------------------------------------------------------------------- + 117 BGO 5 -1.0000000000 0.42065 7.1300E+00 7.1300E+00 S 3 12 3 I + bismuth_germanate_BGO +bismuth germanate (BGO) [(Bi%2#O%3#)%2#(GeO%2#)%3#] + 534.1 5.7409 0.0456 3.7816 0.09569 3.0781 0.00 + 8 12.000000 0.154126 + 32 2.999188 0.174820 + 83 4.000009 0.671054 +Melting point 1044. CRC2006 +Index of refraction 2.15 +Note: Evalite structure; less common is Bi{12}GeO{20} +---------------------------------------------------------------------------- + 118 Blood 5 -1.0000000000 0.54995 1.0600E+00 1.0600E+00 L 14 1 0 B + blood_ICRP +blood (ICRP) + 75.2 3.4581 0.2239 2.8017 0.08492 3.5406 0.00 + 1 1.000000 0.101866 + 6 0.082399 0.100020 + 7 0.020939 0.029640 + 8 0.469656 0.759414 + 11 0.000796 0.001850 + 12 0.000016 0.000040 + 14 0.000011 0.000030 + 15 0.000112 0.000350 + 16 0.000571 0.001850 + 17 0.000776 0.002780 + 19 0.000413 0.001630 + 20 0.000015 0.000060 + 26 0.000082 0.000460 + 30 0.000002 0.000010 +---------------------------------------------------------------------------- + 119 Bonec 5 -1.0000000000 0.53010 1.8500E+00 1.8500E+00 S 8 1 0 B + compact_bone_ICRU +compact bone (ICRU) + 91.9 3.3390 0.0944 3.0201 0.05822 3.6419 0.00 + 1 1.000000 0.063984 + 6 0.364619 0.278000 + 7 0.030366 0.027000 + 8 0.403702 0.410016 + 12 0.001296 0.002000 + 15 0.035601 0.070000 + 16 0.000983 0.002000 + 20 0.057780 0.147000 +---------------------------------------------------------------------------- + 120 Bonec 5 -1.0000000000 0.52130 1.8500E+00 1.8500E+00 S 9 1 0 B + cortical_bone_ICRP +cortical bone (ICRP) + 106.4 3.6488 0.1161 3.0919 0.06198 3.5919 0.00 + 1 1.000000 0.047234 + 6 0.256430 0.144330 + 7 0.063972 0.041990 + 8 0.594983 0.446096 + 12 0.001932 0.002200 + 15 0.072319 0.104970 + 16 0.002096 0.003150 + 20 0.111776 0.209930 + 30 0.000033 0.000100 +---------------------------------------------------------------------------- + 121 B4-C 5 -1.0000000000 0.47059 2.5200E+00 2.5200E+00 S 2 4 0 I + boron_carbide +boron carbide (B%4#C) + 84.7 2.9859 0.0093 2.1006 0.37087 2.8076 0.00 + 5 4.000000 0.782610 + 6 1.000119 0.217390 +---------------------------------------------------------------------------- + 122 B2-O3 5 -1.0000000000 0.49839 1.8120E+00 1.8120E+00 S 2 2 0 I + boron_oxide +boron oxide (B%2#O%3#) + 99.6 3.6027 0.1843 2.7379 0.11548 3.3832 0.00 + 5 2.000000 0.310551 + 8 3.000277 0.689449 +---------------------------------------------------------------------------- + 123 Brain 5 -1.0000000000 0.55423 1.0300E+00 1.0300E+00 S 13 1 0 B + brain_ICRP +brain (ICRP) + 73.3 3.4279 0.2206 2.8021 0.08255 3.5585 0.00 + 1 1.000000 0.110667 + 6 0.095108 0.125420 + 7 0.008635 0.013280 + 8 0.419958 0.737723 + 11 0.000729 0.001840 + 12 0.000056 0.000150 + 15 0.001041 0.003540 + 16 0.000503 0.001770 + 17 0.000606 0.002360 + 19 0.000722 0.003100 + 20 0.000020 0.000090 + 26 0.000008 0.000050 + 30 0.000001 0.000010 +---------------------------------------------------------------------------- + 124 Butan 5 -1.0000000000 0.59497 2.4934E-03 2.4890E-03 G 2 10 2 O + butane +butane (C%4#H%10#) + 48.3 8.5633 1.3788 3.7524 0.10852 3.4884 0.00 + 1 10.000000 0.173408 + 6 4.000262 0.826592 +Boiling point -0.5 +Melting point -138.2 +---------------------------------------------------------------------------- + 125 Butyl 5 -1.0000000000 0.56663 8.0980E-01 8.0980E-01 L 3 10 0 O + n-butyl_alcohol +n-butyl alcohol (C%4#H%9#OH) + 59.9 3.2425 0.1937 2.6439 0.10081 3.5139 0.00 + 1 10.000000 0.135978 + 6 4.000252 0.648171 + 8 1.000038 0.215851 +---------------------------------------------------------------------------- + 126 C-552 5 -1.0000000000 0.49969 1.7600E+00 1.7600E+00 S 5 1 0 B + C-552_air-equivalent_plastic +C-552 air-equivalent plastic + 86.8 3.3338 0.1510 2.7083 0.10492 3.4344 0.00 + 1 1.000000 0.024680 + 6 1.705640 0.501610 + 8 0.011556 0.004527 + 9 1.000047 0.465209 + 14 0.005777 0.003973 +---------------------------------------------------------------------------- + 127 Cd-Te 5 -1.0000000000 0.41665 6.2000E+00 6.2000E+00 S 2 1 0 I + cadmium_telluride_CdTe +cadmium telluride (CdTe) + 539.3 5.9096 0.0438 3.2836 0.24840 2.6665 0.00 + 48 1.000000 0.468355 + 52 1.000011 0.531645 +---------------------------------------------------------------------------- + 128 Cd-W- 5 -1.0000000000 0.42747 7.9000E+00 7.9000E+00 S 3 4 0 I + cadmium_tungstate +cadmium tungstate (CdWO%4#) + 468.3 5.3594 0.0123 3.5941 0.12861 2.9150 0.00 + 8 4.000000 0.177644 + 48 0.999992 0.312027 + 74 1.000054 0.510329 +---------------------------------------------------------------------------- + 129 Ca-C- 5 -1.0000000000 0.49955 2.8000E+00 2.8000E+00 S 3 1 0 I + calcium_carbonate +calcium carbonate (CaCO%3#) + 136.4 3.7738 0.0492 3.0549 0.08301 3.4120 0.00 + 6 1.000000 0.120003 + 8 2.999923 0.479554 + 20 1.000025 0.400443 +---------------------------------------------------------------------------- + 130 Ca-F2 5 -1.0000000000 0.49670 3.1800E+00 3.1800E+00 S 2 2 1 I + calcium_fluoride +calcium fluoride (CaF%2#) + 166.0 4.0653 0.0676 3.1683 0.06942 3.5263 0.00 + 9 2.000000 0.486659 + 20 1.000051 0.513341 +Index of ref 1.434 +---------------------------------------------------------------------------- + 131 Ca-O 5 -1.0000000000 0.49929 3.3000E+00 3.3000E+00 S 2 1 0 I + calcium_oxide_CaO +calcium oxide (CaO) + 176.1 4.1209 -0.0172 3.0171 0.12128 3.1936 0.00 + 8 1.000000 0.285299 + 20 1.000050 0.714701 +---------------------------------------------------------------------------- + 132 Ca-S- 5 -1.0000000000 0.49950 2.9600E+00 2.9600E+00 S 3 4 0 I + calcium_sulfate +calcium sulfate (CaSO%4#) + 152.3 3.9388 0.0587 3.1229 0.07708 3.4495 0.00 + 8 4.000000 0.470095 + 16 0.999813 0.235497 + 20 1.000050 0.294408 +---------------------------------------------------------------------------- + 133 Ca-W- 5 -1.0000000000 0.43761 6.0620E+00 6.0620E+00 S 3 4 0 I + calcium_tungstate +calcium tungstate (CaWO%4#) + 395.0 5.2603 0.0323 3.8932 0.06210 3.2649 0.00 + 8 4.000000 0.222270 + 20 1.000051 0.139202 + 74 1.000054 0.638529 +---------------------------------------------------------------------------- + 134 C-O2 5 -1.0000000000 0.49989 1.8421E-03 1.8421E-03 G 2 2 2 I + carbon_dioxide_gas +carbon dioxide gas (CO%2#) + 85.0 10.1537 1.6294 4.1825 0.11768 3.3227 0.00 + 6 2.000000 0.272916 + 8 3.999910 0.727084 +Index of ref (n-1)*E6 449.0 http://www.kayelaby.npl.co.uk/ +Sublimation point -78.4 194.7 K +---------------------------------------------------------------------------- + 135 C-Cl4 5 -1.0000000000 0.49107 1.5940E+00 1.5940E+00 L 2 1 0 O + carbon_tetrachloride +carbon tetrachloride (CCl%4#) + 166.3 4.7712 0.1773 2.9165 0.19018 3.0116 0.00 + 6 1.000000 0.078083 + 17 3.999948 0.921917 +---------------------------------------------------------------------------- + 136 Cello 5 -1.0000000000 0.53040 1.4200E+00 1.4200E+00 S 3 10 0 P + cellulose +cellulose [(C%6#H%10#O%5#)%n#] + 77.6 3.2647 0.1580 2.6778 0.11151 3.3810 0.00 + 1 10.000000 0.062162 + 6 6.000342 0.444462 + 8 5.000161 0.493376 +---------------------------------------------------------------------------- + 137 Cella 5 -1.0000000000 0.53279 1.2000E+00 1.2000E+00 S 3 22 0 P + cellulose_acetate_butyrate +cellulose acetate butyrate [(C%15#H%22#O%8#)%n#] + 74.6 3.3497 0.1794 2.6809 0.11444 3.3738 0.00 + 1 22.000000 0.067125 + 6 15.001071 0.545403 + 8 8.000363 0.387472 +---------------------------------------------------------------------------- + 138 Celln 5 -1.0000000000 0.51424 1.4900E+00 1.4900E+00 S 4 7 0 P + cellulose_nitrate +cellulose nitrate [(C%12#H%14#O%4#(ONO%2#)%6#)%n#] + 87.0 3.4762 0.1897 2.7253 0.11813 3.3237 0.00 + 1 7.000000 0.029216 + 6 5.454903 0.271296 + 7 2.090979 0.121276 + 8 8.727611 0.578212 +---------------------------------------------------------------------------- + 139 Cersu 5 -1.0000000000 0.55279 1.0300E+00 1.0300E+00 L 5 1 0 B + ceric_sulfate_dosimeter_solution +ceric sulfate dosimeter solution + 76.7 3.5212 0.2363 2.8769 0.07666 3.5607 0.00 + 1 1.000000 0.107596 + 7 0.000535 0.000800 + 8 0.512308 0.874976 + 16 0.004273 0.014627 + 58 0.000134 0.002001 +---------------------------------------------------------------------------- + 140 Cs-F 5 -1.0000000000 0.42132 4.1150E+00 4.1150E+00 S 2 1 0 I + cesium_fluoride_CsF +cesium fluoride (CsF) + 440.7 5.9046 0.0084 3.3374 0.22052 2.7280 0.00 + 9 1.000000 0.125069 + 55 0.999996 0.874931 +---------------------------------------------------------------------------- + 141 Cs-I 5 -1.0000000000 0.41569 4.5100E+00 4.5100E+00 S 2 1 3 I + cesium_iodide_CsI +cesium iodide (CsI) + 553.1 6.2807 0.0395 3.3353 0.25381 2.6657 0.00 + 53 1.000000 0.488451 + 55 1.000001 0.511549 +melti 621. Caesium iodide +boili 1280. Caesium iodide +Index 1.7873 CRC2006 10-147 +---------------------------------------------------------------------------- + 142 Chlor 5 -1.0000000000 0.51529 1.1058E+00 1.1058E+00 L 3 5 0 O + chlorobenzene +chlorobenzene C%6#H%5#Cl + 89.1 3.8201 0.1714 2.9272 0.09856 3.3797 0.00 + 1 5.000000 0.044772 + 6 6.000428 0.640254 + 17 1.000054 0.314974 +---------------------------------------------------------------------------- + 143 Chlor 5 -1.0000000000 0.48585 1.4832E+00 1.4832E+00 L 3 1 0 O + chloroform +chloroform (CHCl%3#) + 156.0 4.7055 0.1786 2.9581 0.16959 3.0627 0.00 + 1 1.000000 0.008443 + 6 1.000054 0.100613 + 17 3.000123 0.890944 +---------------------------------------------------------------------------- + 144 Concr 5 -1.0000000000 0.50274 2.3000E+00 2.3000E+00 S 10 1 2 M + shielding_concrete +shielding concrete + 135.2 3.9464 0.1301 3.0466 0.07515 3.5467 0.00 + 1 1.000000 0.010000 + 6 0.008392 0.001000 + 8 3.333301 0.529107 + 11 0.070149 0.016000 + 12 0.008294 0.002000 + 13 0.126534 0.033872 + 14 1.209510 0.337021 + 19 0.033514 0.013000 + 20 0.110658 0.044000 + 26 0.025268 0.014000 +Note: Standard shielding blocks, typical composition O%2# 0.52, Si 0.325, Ca 0.06, Na 0.015, Fe 0.02, Al 0.04 + plus reinforcing iron bars, from CERN-LRL-RHEL Shielding exp., UCRA-17841. +---------------------------------------------------------------------------- + 145 Cyclo 5 -1.0000000000 0.57034 7.7900E-01 7.7900E-01 L 2 12 0 O + cyclohexane +cyclohexane (C%6#H%12#) + 56.4 3.1544 0.1728 2.5549 0.12035 3.4278 0.00 + 1 12.000000 0.143711 + 6 6.000369 0.856289 +---------------------------------------------------------------------------- + 146 Dichl 5 -1.0000000000 0.50339 1.3048E+00 1.3048E+00 L 3 4 0 O + 12-dichlorobenzene +1,2-dichlorobenzene (C%6#H%4#Cl%2#) + 106.5 4.0348 0.1587 2.8276 0.16010 3.0836 0.00 + 1 4.000000 0.027425 + 6 6.000428 0.490233 + 17 2.000110 0.482342 +---------------------------------------------------------------------------- + 147 Dichl 5 -1.0000000000 0.51744 1.2199E+00 1.2199E+00 L 4 8 0 O + dichlorodiethyl_ether +dichlorodiethyl ether C%4#Cl%2#H%8#O + 103.3 4.0135 0.1773 3.1586 0.06799 3.5250 0.00 + 1 8.000000 0.056381 + 6 4.000257 0.335942 + 8 1.000040 0.111874 + 17 2.000096 0.495802 +---------------------------------------------------------------------------- + 148 Dichl 5 -1.0000000000 0.50526 1.2351E+00 1.2351E+00 L 3 4 0 O + 12-dichloroethane +1,2-dichloroethane C%2#H%4#C%12# + 111.9 4.1849 0.1375 2.9529 0.13383 3.1675 0.00 + 1 4.000000 0.040740 + 6 2.000126 0.242746 + 17 2.000090 0.716515 +---------------------------------------------------------------------------- + 149 Dieth 5 -1.0000000000 0.56663 7.1378E-01 7.1378E-01 L 3 10 0 O + diethyl_ether +diethyl ether [(CH%3#CH%2#)%2#O] + 60.0 3.3721 0.2231 2.6745 0.10550 3.4586 0.00 + 1 10.000000 0.135978 + 6 4.000252 0.648171 + 8 1.000038 0.215851 +---------------------------------------------------------------------------- + 150 Dimet 5 -1.0000000000 0.54724 9.4870E-01 9.4870E-01 S 4 7 0 O + mn-dimethyl_formamide +mn-dimethyl formamide (C%3#H%6#NOH) + 66.6 3.3311 0.1977 2.6686 0.11470 3.3710 0.00 + 1 7.000000 0.096523 + 6 3.000196 0.492965 + 7 1.000039 0.191625 + 8 1.000042 0.218887 +---------------------------------------------------------------------------- + 151 Dimet 5 -1.0000000000 0.53757 1.1014E+00 1.1014E+00 S 4 6 0 O + dimethyl_sulfoxide +dimethyl sulfoxide (CH%3#)%2#SO + 98.6 3.9844 0.2021 3.1263 0.06619 3.5708 0.00 + 1 6.000000 0.077403 + 6 2.000130 0.307467 + 8 1.000037 0.204782 + 16 0.999852 0.410348 +---------------------------------------------------------------------------- + 152 Ethan 5 -1.0000000000 0.59861 1.2532E-03 1.2630E-03 G 2 6 4 O + ethane +ethane (C%2#H%6#) + 45.4 9.1043 1.5107 3.8743 0.09627 3.6095 0.00 + 1 6.000000 0.201115 + 6 2.000126 0.798885 +Boiling point -88.6 +Triple point -89.88 +Melting point -182.79 +Note: Density of liquid at - 88.6 C is 0.5645 +---------------------------------------------------------------------------- + 153 Ethan 5 -1.0000000000 0.56437 7.8930E-01 7.8930E-01 L 3 6 3 O + ethanol +ethanol (C%2#H%5#OH) + 62.9 3.3699 0.2218 2.7052 0.09878 3.4834 0.00 + 1 6.000000 0.131269 + 6 2.000130 0.521438 + 8 1.000040 0.347294 +Index of refraction 1.36 +Melting point -114.14 +Boiling point 78.29 +---------------------------------------------------------------------------- + 154 Ethyl 5 -1.0000000000 0.54405 1.1300E+00 1.1300E+00 S 3 22 0 P + ethyl_cellulose +ethyl cellulose ([C%12#H%22#O5)%n#] + 69.3 3.2415 0.1683 2.6527 0.11077 3.4098 0.00 + 1 22.000000 0.090027 + 6 12.000718 0.585182 + 8 5.000172 0.324791 +---------------------------------------------------------------------------- + 155 Ethyl 5 -1.0000000000 0.57034 1.1750E-03 1.1750E-03 G 2 4 0 O + ethylene +ethylene (C%2#H%4#) + 50.7 9.4380 1.5528 3.9327 0.10636 3.5387 0.00 + 1 4.000000 0.143711 + 6 2.000123 0.856289 +---------------------------------------------------------------------------- + 156 Eye-l 5 -1.0000000000 0.54977 1.1000E+00 1.1000E+00 S 4 1 0 B + eye_lens_ICRP +eye lens (ICRP) + 73.3 3.3720 0.2070 2.7446 0.09690 3.4550 0.00 + 1 1.000000 0.099269 + 6 0.163759 0.193710 + 7 0.038616 0.053270 + 8 0.414887 0.653751 +---------------------------------------------------------------------------- + 157 Fe2-O 5 -1.0000000000 0.47592 5.2000E+00 5.2000E+00 S 2 3 0 I + ferric_oxide +ferric oxide (Fe%2#O%3#) + 227.3 4.2245 -0.0074 3.2573 0.10478 3.1313 0.00 + 8 3.000000 0.300567 + 26 2.000071 0.699433 +---------------------------------------------------------------------------- + 158 Fe-B 5 -1.0000000000 0.46507 7.1500E+00 7.1500E+00 S 2 1 0 I + ferroboride_FeB +ferroboride (FeB) + 261.0 4.2057 -0.0988 3.1749 0.12911 3.0240 0.00 + 5 1.000000 0.162174 + 26 1.000125 0.837826 +---------------------------------------------------------------------------- + 159 Fe-O 5 -1.0000000000 0.47323 5.7000E+00 5.7000E+00 S 2 1 0 I + ferrous_oxide_FeO +ferrous oxide (FeO) + 248.6 4.3175 -0.0279 3.2002 0.12959 3.0168 0.00 + 8 1.000000 0.222689 + 26 1.000036 0.777311 +---------------------------------------------------------------------------- + 160 Fe-su 5 -1.0000000000 0.55329 1.0240E+00 1.0240E+00 L 7 1 0 B + ferrous_sulfate_dosimeter_solution +ferrous sulfate dosimeter solution + 76.4 3.5183 0.2378 2.8254 0.08759 3.4923 0.00 + 1 1.000000 0.108259 + 7 0.000018 0.000027 + 8 0.511300 0.878636 + 11 0.000009 0.000022 + 16 0.003765 0.012968 + 17 0.000009 0.000034 + 26 0.000009 0.000054 +---------------------------------------------------------------------------- + 161 Freon 5 -1.0000000000 0.47969 1.1200E+00 1.1200E+00 G 3 1 0 O + Freon-12 +Freon-12 (CF%2#Cl%2#) + 143.0 4.8251 0.3035 3.2659 0.07978 3.4626 0.00 + 6 1.000000 0.099335 + 9 1.999954 0.314247 + 17 1.999972 0.586418 +---------------------------------------------------------------------------- + 162 Freon 5 -1.0000000000 0.44901 1.8000E+00 1.8000E+00 G 3 1 0 O + Freon-12B2 +Freon-12B2 (CF%2#Br%2#) + 284.9 5.7976 0.3406 3.7956 0.05144 3.5565 0.00 + 6 1.000000 0.057245 + 9 1.999966 0.181096 + 35 1.999967 0.761659 +---------------------------------------------------------------------------- + 163 Freon 5 -1.0000000000 0.47966 9.5000E-01 9.5000E-01 G 3 1 0 O + Freon-13 +Freon-13 (CF%3#Cl) + 126.6 4.7483 0.3659 3.2337 0.07238 3.5551 0.00 + 6 1.000000 0.114983 + 9 2.999918 0.545622 + 17 0.999982 0.339396 +---------------------------------------------------------------------------- + 164 Freon 5 -1.0000000000 0.45665 1.5000E+00 1.5000E+00 G 3 1 0 O + Freon-13b1 +Freon-13b1 (CF%3#Br) + 210.5 5.3555 0.3522 3.7554 0.03925 3.7194 0.00 + 6 1.000000 0.080659 + 9 2.999939 0.382749 + 35 0.999980 0.536592 +---------------------------------------------------------------------------- + 165 Freon 5 -1.0000000000 0.43997 1.8000E+00 1.8000E+00 G 3 1 0 O + Freon-13i1 +Freon-13i1 (CF%3#I) + 293.5 5.8774 0.2847 3.7280 0.09112 3.1658 0.00 + 6 1.000000 0.061309 + 9 2.999898 0.290924 + 53 0.999968 0.647767 +---------------------------------------------------------------------------- + 166 Gd2-O 5 -1.0000000000 0.42266 7.4400E+00 7.4400E+00 S 3 2 0 I + gadolinium_oxysulfide +gadolinium oxysulfide (Gd%2#O%2#S) + 493.3 5.5347 -0.1774 3.4045 0.22161 2.6300 0.00 + 8 2.000000 0.084528 + 16 0.999817 0.084690 + 64 1.999998 0.830782 +---------------------------------------------------------------------------- + 167 Ga-As 5 -1.0000000000 0.44247 5.3100E+00 5.3100E+00 S 2 1 0 I + gallium_arsenide_GaAs +gallium arsenide (GaAs) + 384.9 5.3299 0.1764 3.6420 0.07152 3.3356 0.00 + 31 1.000000 0.482019 + 33 1.000043 0.517981 +---------------------------------------------------------------------------- + 168 Photo 5 -1.0000000000 0.53973 1.2914E+00 1.2914E+00 S 5 1 0 M + gel_in_photographic_emulsion +gel in photographic emulsion + 74.8 3.2687 0.1709 2.7058 0.10102 3.4418 0.00 + 1 1.000000 0.081180 + 6 0.430104 0.416060 + 7 0.098607 0.111240 + 8 0.295390 0.380640 + 16 0.004213 0.010880 +---------------------------------------------------------------------------- + 169 Pyrex 5 -1.0000000000 0.49707 2.2300E+00 2.2300E+00 S 6 1 0 M + borosilicate_glass_Pyrex_Corning_7740 +borosilicate glass (Pyrex Corning 7740) + 134.0 3.9708 0.1479 2.9933 0.08270 3.5224 0.00 + 5 1.000000 0.040061 + 8 9.100880 0.539564 + 11 0.330918 0.028191 + 13 0.116461 0.011644 + 14 3.624571 0.377220 + 19 0.022922 0.003321 +---------------------------------------------------------------------------- + 170 Lead 5 -1.0000000000 0.42101 6.2200E+00 6.2200E+00 S 5 1 0 M + lead_glass +lead glass + 526.4 5.8476 0.0614 3.8146 0.09544 3.0740 0.00 + 8 1.000000 0.156453 + 14 0.294445 0.080866 + 22 0.017288 0.008092 + 33 0.003618 0.002651 + 82 0.371118 0.751938 +---------------------------------------------------------------------------- + 171 Glass 5 -1.0000000000 0.49731 2.4000E+00 2.4000E+00 S 4 1 0 M + plate_glass +plate glass + 145.4 4.0602 0.1237 3.0649 0.07678 3.5381 0.00 + 8 1.000000 0.459800 + 11 0.145969 0.096441 + 14 0.416971 0.336553 + 20 0.093077 0.107205 +---------------------------------------------------------------------------- + 172 Gluco 5 -1.0000000000 0.53499 1.5400E+00 1.5400E+00 S 3 14 0 O + glucose_dextrose_monohydrate +glucose (dextrose monohydrate) (C%6#H%12#O%6#.H%2#O)) + 77.2 3.1649 0.1411 2.6700 0.10783 3.3946 0.00 + 1 14.000000 0.071204 + 6 6.000342 0.363652 + 8 7.000253 0.565144 +---------------------------------------------------------------------------- + 173 Gluta 5 -1.0000000000 0.53371 1.4600E+00 1.4600E+00 S 4 10 0 O + glutamine +glutamine (C%5#H%10#N%2#O%3#) + 73.3 3.1167 0.1347 2.6301 0.11931 3.3254 0.00 + 1 10.000000 0.068965 + 6 5.000360 0.410926 + 7 2.000082 0.191681 + 8 3.000137 0.328427 +---------------------------------------------------------------------------- + 174 Glyce 5 -1.0000000000 0.54292 1.2613E+00 1.2613E+00 L 3 8 0 O + glycerol +glycerol (C%3#H%5#(OH)%3#) + 72.6 3.2267 0.1653 2.6862 0.10168 3.4481 0.00 + 1 8.000000 0.087554 + 6 3.000185 0.391262 + 8 3.000108 0.521185 +---------------------------------------------------------------------------- + 175 Guani 5 -1.0000000000 0.51612 1.5800E+00 1.5800E+00 S 4 5 0 O + guanine +guanine (C%5#H%5#N%5#O) + 75.0 3.1171 0.1163 2.4296 0.20530 3.0186 0.00 + 1 5.000000 0.033346 + 6 5.000329 0.397380 + 7 5.000189 0.463407 + 8 1.000041 0.105867 +---------------------------------------------------------------------------- + 176 Gypsu 5 -1.0000000000 0.51113 2.3200E+00 2.3200E+00 S 4 4 0 I + gypsum_plaster_of_Paris +gypsum (plaster of Paris, CaSO%4#$\cdot$H%2#O) + 129.7 3.8382 0.0995 3.1206 0.06949 3.5134 0.00 + 1 4.000000 0.023416 + 8 6.000387 0.557572 + 16 0.999889 0.186215 + 20 1.000123 0.232797 +---------------------------------------------------------------------------- + 177 Hepta 5 -1.0000000000 0.57992 6.8376E-01 6.8376E-01 L 2 16 0 O + n-heptane +n-heptane (C%7#H%16#) + 54.4 3.1978 0.1928 2.5706 0.11255 3.4885 0.00 + 1 16.000000 0.160937 + 6 7.000435 0.839063 +---------------------------------------------------------------------------- + 178 Hexan 5 -1.0000000000 0.59020 6.6030E-01 6.6030E-01 L 2 14 0 O + n-hexane +n-hexane C%6#H%14# + 54.0 3.2156 0.1984 2.5757 0.11085 3.5027 0.00 + 1 14.000000 0.163741 + 6 6.000366 0.836259 +---------------------------------------------------------------------------- + 179 Kapto 5 -1.0000000000 0.51264 1.4200E+00 1.4200E+00 S 4 10 0 P + polyimide_film +polyimide film [(C%22#H%10#N%2#O%5#)%n#] + 79.6 3.3497 0.1509 2.5631 0.15972 3.1921 0.00 + 1 10.000000 0.026362 + 6 22.001366 0.691133 + 7 2.000071 0.073270 + 8 5.000195 0.209235 +---------------------------------------------------------------------------- + 180 La-O- 5 -1.0000000000 0.42599 6.2800E+00 6.2800E+00 S 3 1 0 I + lanthanum_oxybromide_LaOBr +lanthanum oxybromide (LaOBr) + 439.7 5.4666 -0.0350 3.3288 0.17830 2.8457 0.00 + 8 1.000000 0.068138 + 35 1.000000 0.340294 + 57 0.999999 0.591568 +---------------------------------------------------------------------------- + 181 La2-O 5 -1.0000000000 0.42706 5.8600E+00 5.8600E+00 S 3 2 0 I + lanthanum_oxysulfide +lanthanum oxysulfide La%2#O%2#S + 421.2 5.4470 -0.0906 3.2664 0.21501 2.7298 0.00 + 8 2.000000 0.093600 + 16 0.999802 0.093778 + 57 1.999986 0.812622 +---------------------------------------------------------------------------- + 182 Pb-O 5 -1.0000000000 0.40323 9.5300E+00 9.5300E+00 S 2 1 0 I + lead_oxide_PbO +lead oxide (PbO) + 766.7 6.2162 0.0356 3.5456 0.19645 2.7299 0.00 + 8 1.000000 0.071682 + 82 1.000001 0.928318 +---------------------------------------------------------------------------- + 183 Li-N- 5 -1.0000000000 0.52257 1.1780E+00 1.1780E+00 S 3 2 0 I + lithium_amide +lithium amide (LiNH%2#) + 55.5 2.7961 0.0198 2.5152 0.08740 3.7534 0.00 + 1 2.000000 0.087783 + 3 1.000036 0.302262 + 7 1.000035 0.609955 +---------------------------------------------------------------------------- + 184 LI2-C 5 -1.0000000000 0.49720 2.1100E+00 2.1100E+00 S 3 2 0 I + lithium_carbonate +lithium carbonate (Li%2#C-O%3#) + 87.9 3.2029 0.0551 2.6598 0.09936 3.5417 0.00 + 3 2.000000 0.187871 + 6 1.000025 0.162550 + 8 2.999995 0.649579 +---------------------------------------------------------------------------- + 185 Li-F 5 -1.0000000000 0.46262 2.6350E+00 2.6350E+00 S 2 1 3 I + lithium_fluoride_LiF +lithium fluoride (LiF) + 94.0 3.1667 0.0171 2.7049 0.07593 3.7478 0.00 + 3 1.000000 0.267585 + 9 1.000001 0.732415 +melti 848.2 Lithium flouride +boili 1673. Lithium flouride +Index of ref 1.392 old RPP value +---------------------------------------------------------------------------- + 186 Li-H 5 -1.0000000000 0.50321 8.2000E-01 8.2000E-01 S 2 1 1 I + lithium_hydride_LiH +lithium hydride (LiH) + 36.5 2.3580 -0.0988 1.4515 0.90567 2.5849 0.00 + 1 1.000000 0.126797 + 3 1.000043 0.873203 +Melting point 692 +---------------------------------------------------------------------------- + 187 Li-I 5 -1.0000000000 0.41939 3.4940E+00 3.4940E+00 S 2 1 0 I + lithium_iodide_LiI +lithium iodide (LiI) + 485.1 6.2671 0.0892 3.3702 0.23274 2.7146 0.00 + 3 1.000000 0.051858 + 53 1.000006 0.948142 +---------------------------------------------------------------------------- + 188 Li2-O 5 -1.0000000000 0.46952 2.0130E+00 2.0130E+00 S 2 2 0 I + lithium_oxide +lithium oxide Li%2#O + 73.6 2.9340 -0.0511 2.5874 0.08035 3.7878 0.00 + 3 2.000000 0.464570 + 8 1.000000 0.535430 +---------------------------------------------------------------------------- + 189 Li2-B 5 -1.0000000000 0.48487 2.4400E+00 2.4400E+00 S 3 2 0 I + lithium_tetraborate +lithium tetraborate Li%2#B%4#O%7# + 94.6 3.2093 0.0737 2.6502 0.11075 3.4389 0.00 + 3 2.000000 0.082085 + 5 3.999624 0.255680 + 8 6.999978 0.662235 +---------------------------------------------------------------------------- + 190 Lung 5 -1.0000000000 0.54965 1.0500E+00 1.0500E+00 S 13 1 0 B + lung_ICRP +lung (ICRP) + 75.3 3.4708 0.2261 2.8001 0.08588 3.5353 0.00 + 1 1.000000 0.101278 + 6 0.084775 0.102310 + 7 0.020357 0.028650 + 8 0.470926 0.757072 + 11 0.000797 0.001840 + 12 0.000299 0.000730 + 15 0.000257 0.000800 + 16 0.000698 0.002250 + 17 0.000747 0.002660 + 19 0.000494 0.001940 + 20 0.000022 0.000090 + 26 0.000066 0.000370 + 30 0.000002 0.000010 +---------------------------------------------------------------------------- + 191 M3-wa 5 -1.0000000000 0.55512 1.0500E+00 1.0500E+00 S 5 1 0 B + M3_WAX +M3 WAX + 67.9 3.2540 0.1523 2.7529 0.07864 3.6412 0.00 + 1 1.000000 0.114318 + 6 0.481436 0.655823 + 8 0.050800 0.092183 + 12 0.048898 0.134792 + 20 0.000634 0.002883 +---------------------------------------------------------------------------- + 192 Mg-C- 5 -1.0000000000 0.49814 2.9580E+00 2.9580E+00 S 3 1 0 I + magnesium_carbonate +magnesium carbonate MgCO%3# + 118.0 3.4319 0.0860 2.7997 0.09219 3.5003 0.00 + 6 1.000000 0.142455 + 8 2.999932 0.569278 + 12 0.999977 0.288267 +---------------------------------------------------------------------------- + 193 Mg-F2 5 -1.0000000000 0.48153 3.0000E+00 3.0000E+00 S 2 2 0 I + magnesium_fluoride +magnesium fluoride MgF%2# + 134.3 3.7105 0.1369 2.8630 0.07934 3.6485 0.00 + 9 2.000000 0.609883 + 12 1.000000 0.390117 +---------------------------------------------------------------------------- + 194 Mg-O 5 -1.0000000000 0.49622 3.5800E+00 3.5800E+00 S 2 1 0 I + magnesium_oxide_MgO +magnesium oxide MgO + 143.8 3.6404 0.0575 2.8580 0.08313 3.5968 0.00 + 8 1.000000 0.396964 + 12 1.000000 0.603036 +---------------------------------------------------------------------------- + 195 Mg-B4 5 -1.0000000000 0.49014 2.5300E+00 2.5300E+00 S 3 4 0 I + magnesium_tetraborate +magnesium tetraborate MgB%4#O%7# + 108.3 3.4328 0.1147 2.7635 0.09703 3.4893 0.00 + 5 4.000000 0.240837 + 8 7.000634 0.623790 + 12 1.000090 0.135373 +---------------------------------------------------------------------------- + 196 Hg-I2 5 -1.0000000000 0.40933 6.3600E+00 6.3600E+00 S 2 2 0 I + mercuric_iodide +mercuric iodide HgI%2# + 684.5 6.3787 0.1040 3.4728 0.21513 2.7264 0.00 + 53 2.000000 0.558560 + 80 0.999999 0.441440 +---------------------------------------------------------------------------- + 197 Metha 5 -1.0000000000 0.62334 6.6715E-04 6.6715E-04 G 2 4 3 O + methane +methane (CH%4#) + 41.7 9.5243 1.6263 3.9716 0.09253 3.6257 0.00 + 1 4.000000 0.251306 + 6 1.000064 0.748694 +Boiling point -161.48 +Melting point -182.47 +Index of ref (n-1)*E6 444.0 http://www.kayelaby.npl.co.uk/ +---------------------------------------------------------------------------- + 198 Metha 5 -1.0000000000 0.56176 7.9140E-01 7.9140E-01 L 3 4 0 O + methanol +methanol (CH%3#OH) + 67.6 3.5160 0.2529 2.7639 0.08970 3.5477 0.00 + 1 4.000000 0.125822 + 6 1.000068 0.374852 + 8 1.000043 0.499326 +---------------------------------------------------------------------------- + 199 mix-D 5 -1.0000000000 0.56479 9.9000E-01 9.9000E-01 S 5 1 0 B + mix_D_wax +mix D wax + 60.9 3.0780 0.1371 2.7145 0.07490 3.6823 0.00 + 1 1.000000 0.134040 + 6 0.487068 0.777960 + 8 0.016459 0.035020 + 12 0.011941 0.038594 + 22 0.002260 0.014386 +---------------------------------------------------------------------------- + 200 MS20 5 -1.0000000000 0.53886 1.0000E+00 1.0000E+00 S 6 1 0 B + ms20_tissue_substitute +ms20 tissue substitute + 75.1 3.5341 0.1997 2.8033 0.08294 3.6061 0.00 + 1 1.000000 0.081192 + 6 0.603046 0.583442 + 7 0.015774 0.017798 + 8 0.144617 0.186381 + 12 0.066547 0.130287 + 17 0.000315 0.000900 +---------------------------------------------------------------------------- + 201 Skelm 5 -1.0000000000 0.54938 1.0400E+00 1.0400E+00 S 13 1 0 B + skeletal_muscle_ICRP +skeletal muscle (ICRP) + 75.3 3.4809 0.2282 2.7999 0.08636 3.5330 0.00 + 1 1.000000 0.100637 + 6 0.089918 0.107830 + 7 0.019793 0.027680 + 8 0.472487 0.754773 + 11 0.000327 0.000750 + 12 0.000078 0.000190 + 15 0.000582 0.001800 + 16 0.000753 0.002410 + 17 0.000223 0.000790 + 19 0.000774 0.003020 + 20 0.000007 0.000030 + 26 0.000007 0.000040 + 30 0.000008 0.000050 +---------------------------------------------------------------------------- + 202 Strim 5 -1.0000000000 0.55005 1.0400E+00 1.0400E+00 S 9 1 0 B + striated_muscle_ICRU +striated muscle (ICRU) + 74.7 3.4636 0.2249 2.8032 0.08507 3.5383 0.00 + 1 1.000000 0.101997 + 6 0.101201 0.123000 + 7 0.024693 0.035000 + 8 0.450270 0.729003 + 11 0.000344 0.000800 + 12 0.000081 0.000200 + 15 0.000638 0.002000 + 16 0.001541 0.005000 + 19 0.001264 0.005000 +---------------------------------------------------------------------------- + 203 Eqvmu 5 -1.0000000000 0.54828 1.1100E+00 1.1100E+00 L 4 1 0 B + muscle-equivalent_liquid_with_sucrose +muscle-equivalent liquid with sucrose + 74.3 3.3910 0.2098 2.7550 0.09481 3.4699 0.00 + 1 1.000000 0.098234 + 6 0.133452 0.156214 + 7 0.025970 0.035451 + 8 0.455395 0.710100 +---------------------------------------------------------------------------- + 204 Eqvmu 5 -1.0000000000 0.55014 1.0700E+00 1.0700E+00 L 4 1 0 B + muscle-equivalent_liquid_without_sucrose +muscle-equivalent liquid without sucrose + 74.2 3.4216 0.2187 2.7680 0.09143 3.4982 0.00 + 1 1.000000 0.101969 + 6 0.098807 0.120058 + 7 0.025018 0.035451 + 8 0.458746 0.742522 +---------------------------------------------------------------------------- + 205 Napht 5 -1.0000000000 0.53053 1.1450E+00 1.1450E+00 S 2 8 0 O + naphtalene +naphtalene (C%10#H%8#) + 68.4 3.2274 0.1374 2.5429 0.14766 3.2654 0.00 + 1 8.000000 0.062909 + 6 10.000584 0.937091 +---------------------------------------------------------------------------- + 206 Nitro 5 -1.0000000000 0.51986 1.1987E+00 1.1987E+00 L 4 5 0 O + nitrobenzene +nitrobenzene (C%6#H%5#NO%2#) + 75.8 3.4073 0.1777 2.6630 0.12727 3.3091 0.00 + 1 5.000000 0.040935 + 6 6.000329 0.585374 + 7 1.000028 0.113773 + 8 2.000058 0.259918 +---------------------------------------------------------------------------- + 207 N2-O 5 -1.0000000000 0.49985 1.8309E-03 1.8309E-03 G 2 2 0 I + nitrous_oxide +nitrous oxide (N%2#O) + 84.9 10.1575 1.6477 4.1565 0.11992 3.3318 0.00 + 7 2.000000 0.636483 + 8 1.000003 0.363517 +---------------------------------------------------------------------------- + 208 Elvam 5 -1.0000000000 0.55063 1.0800E+00 1.0800E+00 S 4 1 0 P + Nylon_du_Pont_Elvamide_8062M +Nylon du Pont Elvamide 8062M + 64.3 3.1250 0.1503 2.6004 0.11513 3.4044 0.00 + 1 1.000000 0.103509 + 6 0.525704 0.648415 + 7 0.069199 0.099536 + 8 0.090405 0.148539 +---------------------------------------------------------------------------- + 209 Nylon 5 -1.0000000000 0.54790 1.1400E+00 1.1800E+00 S 4 11 0 P + Nylon_type_6_6-6 +Nylon (type 6, 6/6) [(CH(CH%2#)%5#NO)%n#] + 63.9 3.0634 0.1336 2.5834 0.11818 3.3826 0.00 + 1 11.000000 0.097976 + 6 6.000405 0.636856 + 7 1.000040 0.123779 + 8 1.000045 0.141389 +---------------------------------------------------------------------------- + 210 Nylon 5 -1.0000000000 0.55236 1.1400E+00 1.1400E+00 S 4 15 0 P + Nylon_type_6-10 +Nylon type 6/10 [(CH(CH%2#)%7#NO)%n#] + 63.2 3.0333 0.1304 2.5681 0.11852 3.3912 0.00 + 1 15.000000 0.107062 + 6 8.000514 0.680449 + 7 1.000039 0.099189 + 8 1.000039 0.113300 +---------------------------------------------------------------------------- + 211 Rilsa 5 -1.0000000000 0.55649 1.4250E+00 1.4250E+00 S 4 21 0 P + Nylon_type_11_Rilsan +Nylon type 11 Rilsan ([C%11#H%21#ON)%n#], [(CH(CH%2#)%10#NO)%n#]) + 61.6 2.7514 0.0678 2.4281 0.14868 3.2576 0.00 + 1 21.000000 0.115476 + 6 11.000696 0.720819 + 7 1.000035 0.076417 + 8 1.000042 0.087289 +---------------------------------------------------------------------------- + 212 Octan 5 -1.0000000000 0.57778 7.0260E-01 7.0260E-01 L 2 18 2 O + octane +octane (C%8#H%18#) + 54.7 3.1834 0.1882 2.5664 0.11387 3.4776 0.00 + 1 18.000000 0.158821 + 6 8.000541 0.841179 +Boiling point 125.6 +Melting point -58.7 +---------------------------------------------------------------------------- + 213 Paraf 5 -1.0000000000 0.57275 9.3000E-01 9.3000E-01 S 2 52 0 O + paraffin +paraffin (CH%3#(CH%2#)%n\approx23#CH%3#) + 55.9 2.9551 0.1289 2.5084 0.12087 3.4288 0.00 + 1 52.000000 0.148605 + 6 25.001575 0.851395 +---------------------------------------------------------------------------- + 214 Penta 5 -1.0000000000 0.58212 6.2620E-01 6.2620E-01 L 2 12 1 O + n-pentane +n-pentane (C%5#H%12#) + 53.6 3.2504 0.2086 2.5855 0.10809 3.5265 0.00 + 1 12.000000 0.167635 + 6 5.000308 0.832365 +Index of ref (n-1)*E6 1711.0 http://www.kayelaby.npl.co.uk/ +---------------------------------------------------------------------------- + 215 Photo 5 -1.0000000000 0.45453 3.8150E+00 3.8150E+00 S 8 1 0 M + photographic_emulsion +photographic emulsion + 331.0 5.3319 0.1009 3.4866 0.12399 3.0094 0.00 + 1 1.000000 0.014100 + 6 0.430082 0.072261 + 7 0.098602 0.019320 + 8 0.295338 0.066101 + 16 0.004213 0.001890 + 35 0.312321 0.349103 + 47 0.314193 0.474105 + 53 0.001757 0.003120 +---------------------------------------------------------------------------- + 216 Plast 5 -1.0000000000 0.54141 1.0320E+00 1.0320E+00 S 2 10 1 P + polyvinyltoluene +polyvinyltoluene [(2-CH%3#C%6#H%4#CHCH%2#)%n#] + 64.7 3.1997 0.1464 2.4855 0.16101 3.2393 0.00 + 1 10.000000 0.085000 + 6 9.033760 0.915000 +Index of refraction 1.58 +---------------------------------------------------------------------------- + 217 Pu-O2 5 -1.0000000000 0.40583 1.1460E+01 1.1460E+01 S 2 2 0 I + plutonium_dioxide +plutonium dioxide (PuO%2#) + 746.5 5.9719 -0.2311 3.5554 0.20594 2.6522 0.00 + 8 2.000000 0.118055 + 94 0.979460 0.881945 +---------------------------------------------------------------------------- + 218 Pacry 5 -1.0000000000 0.52767 1.1700E+00 1.1700E+00 S 3 3 0 P + polyacrylonitrile +polyacrylonitrile [(C%3#H%3#N)%n#] + 69.6 3.2459 0.1504 2.5159 0.16275 3.1975 0.00 + 1 3.000000 0.056983 + 6 3.000184 0.679056 + 7 1.000034 0.263962 +---------------------------------------------------------------------------- + 219 Lexan 5 -1.0000000000 0.52697 1.2000E+00 1.2000E+00 S 3 14 0 P + polycarbonate_Lexan +polycarbonate (Lexan, [OC%6#H%4#C(CH%3#)%2#C%6#H%4#OCO)%n#]) + 73.1 3.3201 0.1606 2.6225 0.12860 3.3288 0.00 + 1 14.000000 0.055491 + 6 16.001127 0.755751 + 8 3.000142 0.188758 +---------------------------------------------------------------------------- + 220 Pchlo 5 -1.0000000000 0.52518 1.3000E+00 1.3000E+00 S 3 18 0 P + polychlorostyrene +polychlorostyrene [(C%17#H%18#C%l2#)%n#] + 81.7 3.4659 0.1238 2.9241 0.07530 3.5441 0.00 + 1 18.000000 0.061869 + 6 17.001129 0.696325 + 17 2.000101 0.241806 +---------------------------------------------------------------------------- + 221 Polye 5 -1.0000000000 0.57034 9.4000E-01 8.9000E-01 S 2 2 0 P + polyethylene +polyethylene [(CH%2#CH%2#)%n#] + 57.4 3.0016 0.1370 2.5177 0.12108 3.4292 0.00 + 1 2.000000 0.143711 + 6 1.000062 0.856289 +---------------------------------------------------------------------------- + 222 Poly 5 -1.0000000000 0.52037 1.4000E+00 1.4000E+00 S 3 4 0 P + polyethylene_terephthalate_Mylar +polyethylene terephthalate (Mylar) [(C%10#H%8#O%4#)%n#] + 78.7 3.3262 0.1562 2.6507 0.12679 3.3076 0.00 + 1 4.000000 0.041959 + 6 5.000266 0.625017 + 8 2.000059 0.333025 +---------------------------------------------------------------------------- + 223 Acryl 5 -1.0000000000 0.53937 1.1900E+00 1.1900E+00 S 3 8 1 P + polymethylmethacrylate_acrylic +polymethylmethacrylate (acrylic, [(CH%2#C(CH%3#)(COOCH%3#))%n#] + 74.0 3.3297 0.1824 2.6681 0.11433 3.3836 0.00 + 1 8.000000 0.080538 + 6 5.000308 0.599848 + 8 2.000073 0.319614 +Index of refraction 1.49 +---------------------------------------------------------------------------- + 224 Polyo 5 -1.0000000000 0.53287 1.4250E+00 1.4250E+00 S 3 2 0 P + polyoxymethylene +polyoxymethylene [(CH%2#O)%n#] + 77.4 3.2514 0.1584 2.6838 0.10808 3.4002 0.00 + 1 2.000000 0.067135 + 6 1.000059 0.400017 + 8 1.000035 0.532848 +---------------------------------------------------------------------------- + 225 Polyp 5 -1.0000000000 0.55998 9.4000E-01 9.0500E-01 S 2 3 2 P + polypropylene +polypropylene [(CH(CH%3#)CH%2#)%n#] + 57.4 3.0016 0.1370 2.5177 0.12108 3.4292 0.00 + 1 2.000000 0.143711 + 6 1.000062 0.856289 +Note: Chem formula wrong in Sternheimer. <i>I</i> and density effect constants + for polyethylene, scaled with density, were used for these calculations. +---------------------------------------------------------------------------- + 226 Polys 5 -1.0000000000 0.53768 1.0600E+00 1.0600E+00 S 2 8 1 P + polystyrene +polystyrene [(C%6#H%5#CHCH%2#)%n#] + 68.7 3.2999 0.1647 2.5031 0.16454 3.2224 0.00 + 1 8.000000 0.077418 + 6 8.000541 0.922582 +Index of ref 1.59 +---------------------------------------------------------------------------- + 227 Teflo 5 -1.0000000000 0.47992 2.2000E+00 2.2000E+00 S 2 1 0 P + polytetrafluoroethylene_Teflon +polytetrafluoroethylene (Teflon, [(CF%2#CF%2#)%n#]) + 99.1 3.4161 0.1648 2.7404 0.10606 3.4046 0.00 + 6 1.000000 0.240183 + 9 1.999945 0.759817 +---------------------------------------------------------------------------- + 228 KEL-F 5 -1.0000000000 0.48081 2.1000E+00 2.1000E+00 S 3 2 0 P + polytrifluorochloroethylene +polytrifluorochloroethylene [(C%2#F%3#Cl)%n#] + 120.7 3.8551 0.1714 3.0265 0.07727 3.5085 0.00 + 6 2.000000 0.206250 + 9 2.999925 0.489354 + 17 0.999983 0.304395 +---------------------------------------------------------------------------- + 229 Pviny 5 -1.0000000000 0.53432 1.1900E+00 1.1900E+00 S 3 6 0 P + polyvinylacetate +polyvinylacetate [(CH%2#CHOCOCH%3#)%n#] + 73.7 3.3309 0.1769 2.6747 0.11442 3.3762 0.00 + 1 6.000000 0.070245 + 6 4.000256 0.558066 + 8 2.000076 0.371689 +---------------------------------------------------------------------------- + 230 Pviny 5 -1.0000000000 0.54480 1.3000E+00 1.3000E+00 S 3 4 0 P + polyvinyl_alcohol +polyvinyl alcohol [(C%2#H3-O-H)%n#] + 69.7 3.1115 0.1401 2.6315 0.11178 3.3893 0.00 + 1 4.000000 0.091517 + 6 2.000131 0.545298 + 8 1.000039 0.363185 +---------------------------------------------------------------------------- + 231 Pviny 5 -1.0000000000 0.54537 1.1200E+00 1.1200E+00 S 3 13 0 P + polyvinyl_butyral +polyvinyl butyral [(C%8#H%13#0%2#)%n#] + 67.2 3.1865 0.1555 2.6186 0.11544 3.3983 0.00 + 1 13.000000 0.092802 + 6 8.000543 0.680561 + 8 2.000082 0.226637 +---------------------------------------------------------------------------- + 232 PVC 5 -1.0000000000 0.51201 1.3000E+00 1.3000E+00 S 3 3 0 P + polyvinylchloride_PVC +polyvinylchloride (PVC) [(CH%2#CHCl)%n#] + 108.2 4.0532 0.1559 2.9415 0.12438 3.2104 0.00 + 1 3.000000 0.048380 + 6 2.000138 0.384360 + 17 1.000053 0.567260 +---------------------------------------------------------------------------- + 233 Saran 5 -1.0000000000 0.49513 1.7000E+00 1.7000E+00 S 3 2 0 P + polyvinylidene_chloride_Saran +polyvinylidene chloride (Saran) [(C%2#H%2#Cl%2#)%n#] + 134.3 4.2506 0.1314 2.9009 0.15466 3.1020 0.00 + 1 2.000000 0.020793 + 6 2.000176 0.247793 + 17 2.000142 0.731413 +---------------------------------------------------------------------------- + 234 Pvnyd 5 -1.0000000000 0.49973 1.7600E+00 1.7600E+00 S 3 2 0 P + polyvinylidene_fluoride +polyvinylidene fluoride [(CH%2#CHF%2#)%n#] + 88.8 3.3793 0.1717 2.7375 0.10316 3.4200 0.00 + 1 2.000000 0.031480 + 6 2.000121 0.375141 + 9 2.000069 0.593379 +---------------------------------------------------------------------------- + 235 Pvnyl 5 -1.0000000000 0.53984 1.2500E+00 1.2500E+00 S 4 9 0 P + polyvinyl_pyrrolidone +polyvinyl pyrrolidone [(C%6#H%9#NO)%n#] + 67.7 3.1017 0.1324 2.5867 0.12504 3.3326 0.00 + 1 9.000000 0.081616 + 6 6.000414 0.648407 + 7 1.000042 0.126024 + 8 1.000044 0.143953 +---------------------------------------------------------------------------- + 236 K-I 5 -1.0000000000 0.43373 3.1300E+00 3.1300E+00 S 2 1 0 I + potassium_iodide_KI +potassium iodide (KI) + 431.9 6.1088 0.1044 3.3442 0.22053 2.7558 0.00 + 19 1.000000 0.235528 + 53 1.000000 0.764472 +---------------------------------------------------------------------------- + 237 K2-O 5 -1.0000000000 0.48834 2.3200E+00 2.3200E+00 S 2 1 0 I + potassium_oxide +potassium oxide (K%2#O) + 189.9 4.6463 0.0480 3.0110 0.16789 3.0121 0.00 + 8 1.000000 0.169852 + 19 2.000003 0.830148 +---------------------------------------------------------------------------- + 238 Propa 5 -1.0000000000 0.58962 1.8794E-03 1.8680E-03 G 2 8 2 O + propane +propane (C%3#H%8#) + 47.1 8.7878 1.4326 3.7998 0.09916 3.5920 0.00 + 1 8.000000 0.182855 + 6 3.000189 0.817145 +Boiling point -42.1 +Melting point -187.63 +---------------------------------------------------------------------------- + 239 Propa 5 -1.0000000000 0.58962 4.3000E-01 4.9300E-01 L 2 8 2 O + liquid_propane +liquid propane (C%3#H%8#) + 52.0 3.5529 0.2861 2.6568 0.10329 3.5620 0.00 + 1 8.000000 0.182855 + 6 3.000189 0.817145 +Boiling point -42.1 +Melting point -187.63 +---------------------------------------------------------------------------- + 240 n-pro 5 -1.0000000000 0.56577 8.0350E-01 8.0350E-01 L 3 8 0 O + n-propyl_alcohol +n-propyl alcohol (C%3#H%7#OH) + 61.1 3.2915 0.2046 2.6681 0.09644 3.5415 0.00 + 1 8.000000 0.134173 + 6 3.000193 0.599595 + 8 1.000037 0.266232 +---------------------------------------------------------------------------- + 241 Pyrid 5 -1.0000000000 0.53096 9.8190E-01 9.8190E-01 L 3 5 0 O + pyridine +pyridine (C%5#H%5#N) + 66.2 3.3148 0.1670 2.5245 0.16399 3.1977 0.00 + 1 5.000000 0.063710 + 6 5.000285 0.759217 + 7 1.000028 0.177073 +---------------------------------------------------------------------------- + 242 Rubbe 5 -1.0000000000 0.57034 9.2000E-01 9.2000E-01 S 2 8 0 O + rubber_butyl +rubber butyl ([C%4#H8)%n#] + 56.5 2.9915 0.1347 2.5154 0.12108 3.4296 0.00 + 1 8.000000 0.143711 + 6 4.000246 0.856289 +---------------------------------------------------------------------------- + 243 Rubbe 5 -1.0000000000 0.55785 9.2000E-01 9.2000E-01 S 2 8 0 O + rubber_natural +rubber natural [(C%5#H8)%n#] + 59.8 3.1272 0.1512 2.4815 0.15058 3.2879 0.00 + 1 8.000000 0.118371 + 6 5.000309 0.881629 +---------------------------------------------------------------------------- + 244 Rubbe 5 -1.0000000000 0.51956 1.2300E+00 1.2300E+00 S 3 5 0 O + rubber_neoprene +rubber neoprene [(C%4#H%5#Cl)%n#] + 93.0 3.7911 0.1501 2.9461 0.09763 3.3632 0.00 + 1 5.000000 0.056920 + 6 4.000259 0.542646 + 17 1.000049 0.400434 +---------------------------------------------------------------------------- + 245 Si-O2 5 -1.0000000000 0.49930 2.3200E+00 2.2000E+00 S 2 2 3 I + silicon_dioxide_fused_quartz +silicon dioxide (fused quartz) (SiO%2#) + 139.2 4.0029 0.1385 3.0025 0.08408 3.5064 0.00 + 8 2.000000 0.532565 + 14 1.000000 0.467435 +Melting point 1713. +Boiling point 2950. +Index of refraction 1.458 +---------------------------------------------------------------------------- + 246 Ag-Br 5 -1.0000000000 0.43670 6.4730E+00 6.4730E+00 S 2 1 0 I + silver_bromide_AgBr +silver bromide (AgBr) + 486.6 5.6139 0.0352 3.2109 0.24582 2.6820 0.00 + 35 1.000000 0.425537 + 47 1.000000 0.574463 +---------------------------------------------------------------------------- + 247 Ag-Cl 5 -1.0000000000 0.44655 5.5600E+00 5.5600E+00 S 2 1 0 I + silver_chloride_AgCl +silver chloride (AgCl) + 398.4 5.3437 -0.0139 3.2022 0.22968 2.7041 0.00 + 17 1.000000 0.247368 + 47 0.999989 0.752632 +---------------------------------------------------------------------------- + 248 Ag-ha 5 -1.0000000000 0.43663 6.4700E+00 6.4700E+00 S 3 1 0 M + ag_halides_in_phot_emulsion +ag halides in phot emulsion + 487.1 5.6166 0.0353 3.2117 0.24593 2.6814 0.00 + 35 1.000000 0.422895 + 47 1.004995 0.573748 + 53 0.004998 0.003357 +---------------------------------------------------------------------------- + 249 Ag-I 5 -1.0000000000 0.42594 6.0100E+00 6.0100E+00 S 2 1 0 I + silver_iodide_AgI +silver iodide (AgI) + 543.5 5.9342 0.0148 3.2908 0.25059 2.6572 0.00 + 47 1.000000 0.459458 + 53 1.000000 0.540542 +---------------------------------------------------------------------------- + 250 Skin 5 -1.0000000000 0.54932 1.1000E+00 1.1000E+00 S 13 1 0 B + skin_ICRP +skin (ICRP) + 72.7 3.3546 0.2019 2.7526 0.09459 3.4643 0.00 + 1 1.000000 0.100588 + 6 0.190428 0.228250 + 7 0.033209 0.046420 + 8 0.387683 0.619002 + 11 0.000031 0.000070 + 12 0.000025 0.000060 + 15 0.000107 0.000330 + 16 0.000497 0.001590 + 17 0.000755 0.002670 + 19 0.000218 0.000850 + 20 0.000038 0.000150 + 26 0.000002 0.000010 + 30 0.000002 0.000010 +---------------------------------------------------------------------------- + 251 Na2-C 5 -1.0000000000 0.49062 2.5320E+00 2.5320E+00 S 3 1 0 I + sodium_carbonate +sodium carbonate (Na%2#CO%3#) + 125.0 3.7178 0.1287 2.8591 0.08715 3.5638 0.00 + 6 1.000000 0.113323 + 8 2.999933 0.452861 + 11 1.999955 0.433815 +---------------------------------------------------------------------------- + 252 Na-I 5 -1.0000000000 0.42697 3.6670E+00 3.6670E+00 S 2 1 3 I + sodium_iodide_NaI +sodium iodide (NaI) + 452.0 6.0572 0.1203 3.5920 0.12516 3.0398 0.00 + 11 1.000000 0.153373 + 53 1.000002 0.846627 +Melting point 660. +Boiling point 1304. +Index of ref 1.775 +---------------------------------------------------------------------------- + 253 Na2-O 5 -1.0000000000 0.48404 2.2700E+00 2.2700E+00 S 2 1 0 I + sodium_monoxide +sodium monoxide (Na%2#O) + 148.8 4.1892 0.1652 2.9793 0.07501 3.6943 0.00 + 8 1.000000 0.258143 + 11 1.999995 0.741857 +---------------------------------------------------------------------------- + 254 Na-N- 5 -1.0000000000 0.49415 2.2610E+00 2.2610E+00 S 3 1 0 I + sodium_nitrate +sodium nitrate (NaNO%3#) + 114.6 3.6502 0.1534 2.8221 0.09391 3.5097 0.00 + 7 1.000000 0.164795 + 8 3.000009 0.564720 + 11 1.000004 0.270485 +---------------------------------------------------------------------------- + 255 Stilb 5 -1.0000000000 0.53260 9.7070E-01 9.7070E-01 S 2 12 0 O + stilbene +stilbene (C%6#H%5#)CHCH(C%6#H%5#) + 67.7 3.3680 0.1734 2.5142 0.16659 3.2168 0.00 + 1 12.000000 0.067101 + 6 14.000813 0.932899 +---------------------------------------------------------------------------- + 256 Sucro 5 -1.0000000000 0.53170 1.5805E+00 1.5805E+00 S 3 22 0 O + sucrose +sucrose (C%12#H%22#O%11#) + 77.5 3.1526 0.1341 2.6558 0.11301 3.3630 0.00 + 1 22.000000 0.064779 + 6 12.000771 0.421070 + 8 11.000442 0.514151 +---------------------------------------------------------------------------- + 257 Terph 5 -1.0000000000 0.52148 1.2340E+00 1.2340E+00 S 2 10 0 O + terphenyl +terphenyl (C%18#H%10#) + 71.7 3.2639 0.1322 2.5429 0.14964 3.2685 0.00 + 1 10.000000 0.044543 + 6 18.001057 0.955457 +---------------------------------------------------------------------------- + 258 Teste 5 -1.0000000000 0.55108 1.0400E+00 1.0400E+00 S 13 1 0 B + testes_ICRP +testes (ICRP) + 75.0 3.4698 0.2274 2.7988 0.08533 3.5428 0.00 + 1 1.000000 0.104166 + 6 0.074336 0.092270 + 7 0.013775 0.019940 + 8 0.468038 0.773884 + 11 0.000951 0.002260 + 12 0.000044 0.000110 + 15 0.000391 0.001250 + 16 0.000441 0.001460 + 17 0.000666 0.002440 + 19 0.000515 0.002080 + 20 0.000024 0.000100 + 26 0.000003 0.000020 + 30 0.000003 0.000020 +---------------------------------------------------------------------------- + 259 C2-Cl 5 -1.0000000000 0.48241 1.6250E+00 1.6250E+00 L 2 2 0 O + tetrachloroethylene +tetrachloroethylene (C%2#C%l4#) + 159.2 4.6619 0.1713 2.9083 0.18595 3.0156 0.00 + 6 2.000000 0.144856 + 17 3.999924 0.855144 +---------------------------------------------------------------------------- + 260 Tl-Cl 5 -1.0000000000 0.40861 7.0040E+00 7.0040E+00 S 2 1 0 I + thallium_chloride_TlCl +thallium chloride (TlCl) + 690.3 6.3009 0.0705 3.5716 0.18599 2.7690 0.00 + 17 1.000000 0.147822 + 81 0.999999 0.852187 +---------------------------------------------------------------------------- + 261 Soft 5 -1.0000000000 0.55121 1.0000E+00 1.0000E+00 S 13 1 0 B + soft_tissue_ICRP +soft tissue (ICRP) + 72.3 3.4354 0.2211 2.7799 0.08926 3.5110 0.00 + 1 1.000000 0.104472 + 6 0.186513 0.232190 + 7 0.017138 0.024880 + 8 0.380046 0.630238 + 11 0.000474 0.001130 + 12 0.000052 0.000130 + 15 0.000414 0.001330 + 16 0.000599 0.001990 + 17 0.000365 0.001340 + 19 0.000491 0.001990 + 20 0.000055 0.000230 + 26 0.000009 0.000050 + 30 0.000004 0.000030 +---------------------------------------------------------------------------- + 262 Tissu 5 -1.0000000000 0.54975 1.0000E+00 1.0000E+00 S 4 1 0 B + soft_tissue_ICRU_four-component +soft tissue (ICRU four-component) + 74.9 3.5087 0.2377 2.7908 0.09629 3.4371 0.00 + 1 1.000000 0.101172 + 6 0.092072 0.111000 + 7 0.018493 0.026000 + 8 0.474381 0.761828 +---------------------------------------------------------------------------- + 263 TE-ga 5 -1.0000000000 0.54993 1.0641E-03 1.0641E-03 G 4 1 0 B + tissue-equivalent_gas_Methane_based +tissue-equivalent gas (Methane based) + 61.2 9.9500 1.6442 4.1399 0.09946 3.4708 0.00 + 1 1.000000 0.101869 + 6 0.375802 0.456179 + 7 0.024846 0.035172 + 8 0.251564 0.406780 +---------------------------------------------------------------------------- + 264 TE-ga 5 -1.0000000000 0.55027 1.8263E-03 1.8263E-03 G 4 1 0 B + tissue-equivalent_gas_Propane_based +tissue-equivalent gas (Propane based) + 59.5 9.3529 1.5139 3.9916 0.09802 3.5159 0.00 + 1 1.000000 0.102672 + 6 0.465030 0.568940 + 7 0.024546 0.035022 + 8 0.180007 0.293366 +---------------------------------------------------------------------------- + 265 Ti-O2 5 -1.0000000000 0.47572 4.2600E+00 4.2600E+00 S 2 2 0 I + titanium_dioxide +titanium dioxide (TiO%2#) + 179.5 3.9522 -0.0119 3.1647 0.08569 3.3267 0.00 + 8 2.000000 0.400592 + 22 1.000271 0.599408 +---------------------------------------------------------------------------- + 266 Tolue 5 -1.0000000000 0.54265 8.6690E-01 8.6690E-01 L 2 8 0 O + toluene +toluene (C%6#H%5#CH%3#) + 62.5 3.3026 0.1722 2.5728 0.13284 3.3558 0.00 + 1 8.000000 0.087510 + 6 7.000463 0.912490 +---------------------------------------------------------------------------- + 267 C2-H- 5 -1.0000000000 0.48710 1.4600E+00 1.4600E+00 L 3 1 0 O + trichloroethylene +trichloroethylene (C%2#HCl%3#) + 148.1 4.6148 0.1803 2.9140 0.18272 3.0137 0.00 + 1 1.000000 0.007671 + 6 2.000158 0.182831 + 17 3.000193 0.809498 +---------------------------------------------------------------------------- + 268 Triet 5 -1.0000000000 0.53800 1.0700E+00 1.0700E+00 S 4 15 0 O + triethyl_phosphate +triethyl phosphate C%6#H%15#PO%4# + 81.2 3.6242 0.2054 2.9428 0.06922 3.6302 0.00 + 1 15.000000 0.082998 + 6 6.000356 0.395628 + 8 4.000136 0.351334 + 15 1.000036 0.170040 +---------------------------------------------------------------------------- + 269 W-F6 5 -1.0000000000 0.42976 2.4000E+00 2.4000E+00 S 2 6 0 I + tungsten_hexafluoride +tungsten hexafluoride (WF%6#) + 354.4 5.9881 0.3020 4.2602 0.03658 3.5134 0.00 + 9 6.000000 0.382723 + 74 1.000055 0.617277 +---------------------------------------------------------------------------- + 270 U-C2 5 -1.0000000000 0.39687 1.1280E+01 1.1280E+01 S 2 2 0 I + uranium_dicarbide +uranium dicarbide (UC%2#) + 752.0 6.0247 -0.2191 3.5208 0.21120 2.6577 0.00 + 6 2.000000 0.091669 + 92 0.999978 0.908331 +---------------------------------------------------------------------------- + 271 U-C 5 -1.0000000000 0.39194 1.3630E+01 1.3630E+01 S 2 1 0 I + uranium_monocarbide_UC +uranium monocarbide (UC) + 862.0 6.1210 -0.2524 3.4941 0.22972 2.6169 0.00 + 6 1.000000 0.048036 + 92 0.999982 0.951964 +---------------------------------------------------------------------------- + 272 U-O2 5 -1.0000000000 0.39996 1.0960E+01 1.0960E+01 S 2 2 0 I + uranium_oxide +uranium oxide (UO%2#) + 720.6 5.9605 -0.1938 3.5292 0.20463 2.6711 0.00 + 8 2.000000 0.118502 + 92 0.999999 0.881498 +---------------------------------------------------------------------------- + 273 Urea 5 -1.0000000000 0.53284 1.3230E+00 1.3230E+00 S 4 4 0 O + urea +urea (CO(NH%2#)%2#) + 72.8 3.2032 0.1603 2.6525 0.11609 3.3461 0.00 + 1 4.000000 0.067131 + 6 1.000072 0.199999 + 7 2.000083 0.466459 + 8 1.000046 0.266411 +---------------------------------------------------------------------------- + 274 Valin 5 -1.0000000000 0.54632 1.2300E+00 1.2300E+00 S 4 11 0 O + valine +valine (C%5#H%11#NOi%2#) + 67.7 3.1059 0.1441 2.6227 0.11386 3.3774 0.00 + 1 11.000000 0.094641 + 6 5.000305 0.512645 + 7 1.000035 0.119565 + 8 2.000072 0.273150 +---------------------------------------------------------------------------- + 275 Viton 5 -1.0000000000 0.48585 1.8000E+00 1.8000E+00 S 3 2 0 P + viton_fluoroelastomer +viton fluoroelastomer [(C%5#H%2#F8)%n#] + 98.6 3.5943 0.2106 2.7874 0.09965 3.4556 0.00 + 1 2.000000 0.009417 + 6 5.000366 0.280555 + 9 8.000378 0.710028 +---------------------------------------------------------------------------- + 276 Water 5 -1.0000000000 0.55509 1.0000E+00 1.0000E+00 L 2 2 3 I + water_liquid +water (liquid) (H%2#O) + 79.7 3.5017 0.2400 2.8004 0.09116 3.4773 0.00 + 1 2.000000 0.111894 + 8 1.000044 0.888106 +Index of refraction 1.333 +Melting point 0.0 +Boiling point 99.964 CRC2006 4-98 +---------------------------------------------------------------------------- + 277 Water 5 -1.0000000000 0.55509 7.5618E-04 7.5618E-04 G 2 2 0 I + water_vapor +water (vapor) (H%2#O) + 71.6 10.5962 1.7952 4.3437 0.08101 3.5901 0.00 + 1 2.000000 0.111894 + 8 1.000044 0.888106 +---------------------------------------------------------------------------- + 278 Xylen 5 -1.0000000000 0.54631 8.7000E-01 8.7000E-01 L 2 10 0 O + xylene +xylene (C%8#H%10#) + 61.8 3.2698 0.1695 2.5675 0.13216 3.3564 0.00 + 1 10.000000 0.094935 + 6 8.000548 0.905065 +---------------------------------------------------------------------------- + 279 Heavy 5 -1.0000000000 0.40594 1.9300E+01 1.9300E+01 S 3 1 1 M + heavymet_in_ATLAS_calorimeter +heavymet in ATLAS calorimeter + 727.0 5.4059 0.2167 3.4960 0.15509 2.8447 0.14 + 28 1.000000 0.035000 + 29 0.395844 0.015000 + 74 8.665723 0.950000 +Note: Tungsten properties except for average Z/A used in calculations +---------------------------------------------------------------------------- + 280 Heavy 5 -1.0000000000 0.40915 1.9300E+01 1.9300E+01 S 3 1 1 M + heavymet_in_Rochester_gamma_stop +heavymet as Rochester gamma stop + 727.0 5.4059 0.2167 3.4960 0.15509 2.8447 0.14 + 28 1.000000 0.060000 + 29 0.615758 0.040000 + 74 4.788952 0.900000 +Note: Tungsten properties except for average Z/A used in calculations +---------------------------------------------------------------------------- + 281 Std-R 0 11.0000000000 9 0.50000 2.6500E+00 2.6500E+00 S 2 1 1 M + standard_rock +standard rock + 136.4 3.7738 0.0492 3.0549 0.08301 3.4120 0.00 + 11 1.000000 1.000000 + 12 0.000000 0.000000 +Note: <A HREF="../standardrock.html">Explanation of "Standard Rock." +---------------------------------------------------------------------------- + 282 Hydro 3 1.0080000000 7 0.99212 6.0000E-02 7.0800E-02 L 1 1 1 E +H nonsense + Liquid hydrogen (H%2#) + 21.8 2.8438 0.2000 2.0000 0.32969 3.0000 0.00 + 1 1.000000 1.000000 +Note: This looks like nonsense. ind = 85 is correct! +---------------------------------------------------------------------------- + 283 Heliu 6 4.0026020000 2 0.49967 1.2490E-01 1.2490E-01 L 1 1 2 E +He liquid_helium +liquid helium (He) + 41.8 4.5180 0.4729 2.0000 0.65713 3.0000 0.00 + 2 1.000000 1.000000 +Boiling point -268.93 +Index of ref 1.024 +---------------------------------------------------------------------------- + 284 Nitro 3 14.0070000000 2 0.49976 8.0700E-01 8.0700E-01 L 1 1 4 E +N liquid_nitrogen +liquid nitrogen (N%2#) + 82.0 3.9996 0.3039 2.0000 0.53289 3.0000 0.00 + 7 1.000000 1.000000 +Melting point -210.00 +Boiling point -195.86 +Index of ref 1.19876 CRC2006 4-148 +Note: Index of refraction at boiling point, 1 atm. +---------------------------------------------------------------------------- + 285 Oxyge 3 15.9990000000 3 0.50002 1.1410E+00 1.1410E+00 L 1 1 4 E +O liquid_oxygen +liquid oxygen (O%2#) + 95.0 3.9471 0.2868 2.0000 0.52231 3.0000 0.00 + 8 1.000000 1.000000 +Melting point (C) -218.79 +Boiling point (C) -182.95 +Index of ref 1.2243 +Note: Index of refraction at boiling point, 1 atm. +---------------------------------------------------------------------------- + 286 Fluor 9 18.9984031630 6 0.47372 1.5070E+00 1.5070E+00 L 1 1 2 E +F liquid_fluorine +liquid fluorine (F%2#) + 115.0 4.1050 0.2000 3.0000 0.14504 3.0000 0.00 + 9 1.000000 1.000000 +Melting point -219.62 +Boiling point -188.12 +---------------------------------------------------------------------------- + 287 Neon 4 20.1797000000 6 0.49555 1.2040E+00 1.2040E+00 L 1 1 3 E +Ne liquid_neon +liquid neon (Ne) + 137.0 4.6345 0.2000 3.0000 0.16916 3.0000 0.00 + 10 1.000000 1.000000 +Boiling point -246.08 +Melting point -248.59 +Index of ref 1.092 +---------------------------------------------------------------------------- + 288 Chlor 3 35.4530000000 2 0.47951 1.5740E+00 1.5740E+00 L 1 1 2 E +Cl liquid_chlorine +liquid chlorine (Cl%2#) + 174.0 4.8776 0.2000 3.0000 0.18024 3.0000 0.00 + 17 1.000000 1.000000 +Melting point -101.5 +Boiling point -34.04 +---------------------------------------------------------------------------- + 289 Argon 3 39.9480000000 1 0.45059 1.3960E+00 1.3960E+00 L 1 1 3 E +Ar liquid_argon +liquid argon (Ar) + 188.0 5.2146 0.2000 3.0000 0.19559 3.0000 0.00 + 18 1.000000 1.000000 +Boiling point -185.85 +Melting point -189.36 +Index of ref 1.233 +---------------------------------------------------------------------------- + 290 Bromi 3 79.9040000000 1 0.43803 3.1028E+00 3.1028E+00 L 1 1 2 E +Br liquid_bromine +bromine liquid (Br%2#) + 357.0 0.0000 0.0000 0.0000 0.0000 0.0000 0.00 + 35 1.000000 1.000000 +melting point -7.2 +boiling point 58.78 +---------------------------------------------------------------------------- + 291 Krypt 3 83.7980000000 2 0.42960 2.4180E+00 2.4180E+00 L 1 1 4 E +Kr liquid_krypton_Kr +liquid krypton (Kr) + 352.0 5.9674 0.4454 3.0000 0.23491 3.0000 0.00 + 36 1.000000 1.000000 +melting point -157.36 +boiling point -153.22 +Index refraction 1.3032 CRC2006 4-148 +Note: Index of refraction at boiling point, 1 atm. +---------------------------------------------------------------------------- + 292 Xenon 3 131.2930000000 6 0.41129 2.9530E+00 2.9530E+00 L 1 1 4 E +Xe liquid_xenon_Xe +liquid xenon (Xe) + 482.0 6.4396 0.5993 3.0000 0.26595 3.0000 0.00 + 54 1.000000 1.000000 +Melting point -111.75 +Boiling point -108.0 +Index refraction 1.3918 CRC2006 4-148 +Note: Index of refraction at boiling point, 1 atm. +---------------------------------------------------------------------------- + 293 C-O2 5 -1.0000000000 0.49989 1.5630E+00 1.5630E+00 S 2 2 1 I + solid_carbon_dioxide_dry_ice +solid carbon dioxide (dry ice, CO%2#) + 85.0 3.4513 0.2000 2.0000 0.43387 3.0000 0.00 + 6 2.000000 0.272916 + 8 4.000010 0.727084 +Note: Sublimation point 194.7 K = -78.4 C +---------------------------------------------------------------------------- + 294 Hydro 5 1.0079400000 7 0.99212 6.0000E-02 6.0000E-02 L 1 1 0 E +H bubble_chamber_H_liquid +Hydrogen BC liquid DEG calc to check code + 21.8 3.0093 0.2000 2.0000 0.35807 3.0000 0.00 + 1 1.000000 1.000000 +---------------------------------------------------------------------------- + 295 Water 5 -1.0000000000 0.55509 1.0000E+00 1.0000E+00 L 2 2 0 I + water_as_calc_from_steam_to_check_code +water as calc from steam to check code + 71.6 3.5017 0.2000 2.0000 0.44251 3.0000 0.00 + 1 2.000000 0.111894 + 8 1.000044 0.888106 +---------------------------------------------------------------------------- + 296 Aerog 5 -1.0000000000 0.50093 2.0000E-01 2.0000E-01 S 3 2 1 M + silica_aerogel +silica aerogel for rho = 0.2 (0.03 H%2#O, 0.97 SiO%2#) + 139.2 6.4507 0.6029 3.0000 0.26675 3.0000 0.00 + 8 2.000000 0.543192 + 14 1.000000 0.453451 + 1 2.000000 0.003357 +Note: See A. R. Buzykaev et al, NIM A433 396 (1999) +---------------------------------------------------------------------------- + 297 Carbo 4 12.0107000000 8 0.49955 2.2650E+00 3.5200E+00 S 1 1 2 E +C carbon_gem_diamond +carbon (gem diamond) + 78.0 2.8680 -0.0178 2.3415 0.26142 2.8697 0.12 + 6 1.000000 1.000000 +Note: variety of melting points found, e.g. 4400 C, 3675 C +Index of ref (n-1)*E6 2.419 +---------------------------------------------------------------------------- + 298 Deute 9 2.014101764 13 0.49650 1.8000E-04 1.6770E-04 D 1 1 3 E +D deuterium_gas +deuterium gas (D%2#) + 19.2 9.5835 1.8639 3.2718 0.14092 5.7273 0.00 + 1 1.000000 1.000000 +Boiling point (C) -249.5 (mass from Phys. Rev. A 47, 3433 - 3436 (1993)) +Triple point -254.461 CRC2006 +Index of ref (n-1)*E6 138.0 +---------------------------------------------------------------------------- + 299 D-liq 9 2.014101764 13 0.49650 1.4320E-01 1.6380E-01 L 1 1 3 E +D liquid_deuterium +liquid deuterium (D%2#) + 21.8 3.2632 0.4759 1.9215 0.13483 5.6249 0.00 + 1 1.000000 1.000000 +Boiling point -249.5 +Triple point -254.461 CRC2006 +Index of ref 1.112 +---------------------------------------------------------------------------- + 300 Salt 5 -1.0000000000 0.47910 2.1650E+00 2.1700E+00 S 2 2 3 I + sodium_chloride_NaCl +sodium chloride (NaCl) + 175.3 4.4250 0.2000 3.0000 0.15962 3.0000 0.00 + 11 1.000000 0.393375 + 17 1.000000 0.606626 +Melting point (C) 802.018 CRC2008 15-11 +Boiling point (C) 1465. +Index of refraction 1.544 +---------------------------------------------------------------------------- + 301 PbWO4 5 -1.0000000000 0.41315 8.3900E+00 8.3000E+00 S 3 1 2 I + lead_tungstate +lead tungstate (PbWO%4#) + 600.7 5.8420 0.4045 3.0000 0.22758 3.0000 0.00 + 82 1.000000 0.455347 + 74 1.000000 0.404011 + 8 4.000000 0.140462 +Melting point 1123. +Index of refraction 2.20 +---------------------------------------------------------------------------- + 302 Calif 5 251.0795900000 3 0.39031 1.5100E+00 1.5100E+01 S 1 1 3 R +Cf californium_Cf +californium (Cf) + 966.0 6.3262 0.5623 3.0000 0.25796 3.0000 0.00 + 98 1.000000 1.000000 +melting 900. +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: I<SUB><I>eff</I></SUB> = 966 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 303 Einst 4 252.0830000000 4 0.39273 0.0000E+00 1.4000E+01 S 1 1 3 R +Es einsteinium_Es +einsteinium (Es) + 980.0 6.3488 0.5697 3.0000 0.25952 3.0000 0.00 + 99 1.000000 1.000000 +melting 860. +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 980 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 304 Fermi 5 257.0951000000 5 0.38896 0.0000E+00 1.4000E+01 S 1 1 3 R +Fm fermium_Fm +fermium (Fm) + 994.0 6.3868 0.5821 3.0000 0.26219 3.0000 0.00 + 100 1.000000 1.000000 +Melting: 1527. +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 994 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 305 Mende 5 258.0984300000 3 0.39132 0.0000E+00 1.4000E+01 S 1 1 3 R +Md mendelevium_Md +mendelevium (Md) + 1007.0 6.4068 0.5886 3.0000 0.26360 3.0000 0.00 + 101 1.000000 1.000000 +Melting 827. +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1007 eV assumed in calculating critical energies and <I><I>dE/dx</I></I>. +---------------------------------------------------------------------------- + 306 Nobel 4 259.1010000000 7 0.39367 0.0000E+00 1.4000E+01 S 1 1 2 R +No nobelium_No +nobelium (No) + 1020.0 6.4264 0.5950 3.0000 0.26500 3.0000 0.00 + 102 1.000000 1.000000 +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1020 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 307 Lawre 5 262.1096100000 2 0.39296 0.0000E+00 1.4000E+01 S 1 1 2 R +Lr lawrencium_Lr +lawrencium (Lr) + 1034.0 6.4555 0.6045 3.0000 0.26710 3.0000 0.00 + 103 1.000000 1.000000 +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = Z*10.0 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 308 Ruthe 5 267.1217900000 4 0.38934 0.0000E+00 1.4000E+01 S 1 1 2 R +Rf rutherfordium_Rf +rutherfordium (Rf) + 1047.0 6.4898 0.6157 3.0000 0.26960 3.0000 0.00 + 104 1.000000 1.000000 +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1047 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 309 Dubni 5 268.1256700000 4 0.39161 0.0000E+00 1.4000E+01 S 1 1 2 R +Db dubnium_Db +dubnium (Db) + 1061.0 6.5105 0.6224 3.0000 0.27114 3.0000 0.00 + 105 1.000000 1.000000 +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1061 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 310 Seabo 5 269.1286300000 5 0.39095 0.0000E+00 1.4000E+01 S 1 1 2 R +Sg seaborgium_Sg +seaborgium (Sg) + 1074.0 6.5365 0.6309 3.0000 0.27308 3.0000 0.00 + 106 1.000000 1.000000 +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1074 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 311 Bohri 5 270.1333600000 4 0.39610 0.0000E+00 1.4000E+01 S 1 1 2 R +Bh bohrium_Bh +bohrium (Bh) + 1087.0 6.5549 0.6369 3.0000 0.27447 3.0000 0.00 + 107 1.000000 1.000000 +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1087 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 312 Hassi 5 269.1337500000 13 0.40129 0.0000E+00 1.4000E+01 S 1 1 2 R +Hs hassium_Hs +hassium (Hs) + 1102.0 6.5913 0.6488 3.0000 0.27724 3.0000 0.00 + 108 1.000000 1.000000 +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1102 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 313 Meitn 4 278.1563000000 7 0.39471 0.0000E+00 1.4000E+01 S 1 1 2 R +Mt meitnerium_Mt +meitnerium (Mt) + 1115.0 6.6019 0.6522 3.0000 0.27805 3.0000 0.00 + 109 1.000000 1.000000 +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1115 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 314 Darms 4 281.1645000000 6 0.39123 0.0000E+00 1.4000E+01 S 1 1 2 R +Ds darmstadtium_Ds +darmstadtium (Ds) + 1129.0 6.6357 0.6632 3.0000 0.28068 3.0000 0.00 + 110 1.000000 1.000000 +Note: Since there is no stable isotope, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1129 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 315 Roent 4 282.1691200000 7 0.39620 0.0000E+00 1.4000E+01 S 1 1 2 R +Rg roentgenium_Rg +roentgenium (Rg) + 1143.0 6.6477 0.6672 3.0000 0.28162 3.0000 0.00 + 111 1.000000 1.000000 +Note: Since there are no stable isotopes, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1143 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 316 Coper 5 285.17712 5 0.39274 0.0000E+00 1.4000E+01 S 1 1 2 R +Cn copernicium_Cn +copernicium (Cn) + 1156.0 6.6791 0.6774 3.0000 0.28410 3.0000 0.00 + 112 1.000000 1.000000 +Note: Since there are no stable isotopes, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = Z*10.0 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 317 nihon 5 286.1822100000 6 0.39764 0.0000E+00 1.4000E+01 S 1 1 1 R +Nh nihonium_Nh +nihonium (Nh) + 1171.0 6.6925 0.6818 3.0000 0.28517 3.0000 0.00 + 113 1.000000 1.000000 +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1171 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 318 flero 5 289.1904200000 5 0.39421 0.0000E+00 1.4000E+01 S 1 1 1 R +Fl flerovium_Fl +flerovium (Fl) + 1185.0 6.7249 0.6923 3.0000 0.28779 3.0000 0.00 + 114 1.000000 1.000000 +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1185 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 319 mosco 5 289.1936300000 6 0.39904 0.0000E+00 1.4000E+01 S 1 1 1 R +Mc moscovium_Mc +moscovium (Mc) + 1199.0 6.7363 0.6960 3.0000 0.28871 3.0000 0.00 + 115 1.000000 1.000000 +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1199 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 320 liver 4 293.2045000000 6 0.39563 0.0000E+00 1.4000E+01 S 1 1 1 R +Lv livermorium_Lv +livermorium (Lv) + 1213.0 6.7571 0.7028 3.0000 0.29041 3.0000 0.00 + 116 1.000000 1.000000 +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1213 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 321 tenne 4 294.2105100000 7 0.39796 0.0000E+00 1.4000E+01 S 1 1 1 R +Ts tennessine_Ts +tennessine (Ts) + 1227.0 6.7800 0.7103 3.0000 0.29231 3.0000 0.00 + 117 1.000000 1.000000 +Note: Density 14.0 g/cm<SUP>3</SUP> and I<SUB><I>eff</I></SUB> = 1227 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 322 ogane 5 294.2139220000 8 0.40107 1.2000E-02 1.2000E-02 G 1 1 2 R +Og oganesson_Og +oganesson (Og) + 1242.0 13.8662 2.0204 -1.9972 -0.07035 3.0000 0.00 + 118 1.000000 1.000000 +Note: Density is that of an ideal monatomic gas. +Note: I<SUB><I>eff</I></SUB> = 1242 eV assumed in calculating critical energies and <I>dE/dx</I>. +---------------------------------------------------------------------------- + 323 Astat 5 209.9871500000 6 0.40479 0.0000E+00 5.0000E+00 S 1 1 3 R +At astatine_At +astatine (At) + 825.0 7.0039 0.7833 3.0000 0.31184 3.0000 0.00 + 85 1.000000 1.000000 +Melting : 302. +Note: Since there are no stable isotopes, [atomic mass] is that of the longest-lived isotope (8.1 hr). +Note: Density 5.0 g/cm<SUP>3</SUP> assumed. +---------------------------------------------------------------------------- + 324 Franc 5 223.0197400000 2 0.39010 1.8700E+00 1.8700E+00 S 1 1 4 R +Fr francium_Fr +francium (Fr) + 827.0 8.0292 1.1175 3.0000 0.43214 3.0000 0.00 + 87 1.000000 1.000000 +Melting 27. +Boiling 677. +Note: Francium is less stable than any other element lighter than nobelium, element 102. +Note: Since there are no stable isotopes, [atomic mass] is that of the longest-lived isotope known as of Jun 2017. +---------------------------------------------------------------------------- + 325 Ice 5 -1.0000000000 0.55509 1.0000E+00 0.9180E+00 L 2 2 3 I + water_ice +water (ice) (H%2#O) + 79.7 3.5017 0.2400 2.8004 0.09116 3.4773 0.00 + 1 2.000000 0.111894 + 8 1.000044 0.888106 +Index of refraction 1.309 +Melting point 0.0 +Boiling point 99.964 CRC2006 4-98 +---------------------------------------------------------------------------- + 326 CF4 5 -1.0000000000 0.47721 3.78E-3 3.78E-3 G 2 1 4 O + carbon_tetrafluoride +carbon tetrafluoride (CF%4#) + 115.0 0.0 0. .0000 0. .0000 0.00 + 6 1.000000 0.136548 + 9 4.000000 0.86345 +Melting : -183.6 +boiling -127.8 +Note: Physical properties such as gas density are not well vetted +Note: Ieff supplied by Hans Bichsel +---------------------------------------------------------------------------- + 327 LaBr3 5 -1.0000000000 0.42787 5.2900e+00 5.2900e+00 S 2 1 1 I + lanthanum_bromide +lanthanum bromide (LaBr%3#) + 454.5 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 57 1.000000 0.366875 + 35 3.000000 0.633124 +Note: Ieff calculated using the ICRU37 algorithm given in Table 5.1 +---------------------------------------------------------------------------- + 328 YBr3 5 -1.0000000000 0.43820 5.2900e+00 5.2900e+00 S 2 1 1 I + yttrium_bromide +yttrium bromide (YBr%3#) + 410.0 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 39 1.000000 0.270545 + 35 3.000000 0.729455 +Note: Ieff calculated using the ICRU37 algorithm given in Table 5.1 +---------------------------------------------------------------------------- + 329 BSO 5 -1.0000000000 0.42260 9.2000e+00 7.1200e+00 S 3 12 3 I + bismuth_silicate_BSO +bismuth silicate (BSO) [(Bi%2#O%3#)%2#(SiO%2#)%3#] + 519.2 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 8 12.000000 0.172629 + 14 3.000000 0.075759 + 83 4.000000 0.751613 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +Note: Evalite structure; less common is Bi{12}SiO{20} +Note: Check density. Probably wrong +---------------------------------------------------------------------------- + 330 PbF2 5 -1.0000000000 0.40784 7.7700e+00 7.7700e+00 S 2 1 1 I + lead_fluoride +lead fluoride (PbF%2#) + 635.4 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 82 1.000000 0.845035 + 9 2.000000 0.154965 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 331 LaF3 5 -1.0000000000 0.42879 5.9000e+00 5.9000e+00 S 2 1 1 I + lanthanum_fluoride +lanthanum fluoride (LaF%3#) + 336.3 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 57 1.000000 0.709061 + 9 3.000000 0.290939 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 332 CeF3 5 -1.0000000000 0.43123 6.1600e+00 6.1600e+00 S 2 1 1 I + cerium_fluoride +cerium fluoride (CeF%3#) + 348.4 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 58 1.000000 0.710847 + 9 3.000000 0.289153 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 333 LuF3 5 -1.0000000000 0.42248 8.3000e+00 8.3000e+00 S 2 1 1 I + lutetium_fluoride +lutetium fluoride (LuF%3#) + 458.7 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 71 1.000000 0.754291 + 9 3.000000 0.245709 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 334 LaCl3 5 -1.0000000000 0.44034 3.8600e+00 3.8600e+00 S 2 1 1 I + lanthanum_chloride +lanthanum chloride (LaCl%3#) + 329.5 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 57 1.000000 0.566350 + 17 3.000000 0.433650 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 335 LuAlO 5 -1.0000000000 0.43209 8.3000e+00 8.3000e+00 S 3 1 1 I + lutetium_aluminum_oxide_1 +lutetium aluminum oxide (1) (LuAlO%3#) + 423.2 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 71 1.000000 0.700017 + 13 1.000000 0.107949 + 8 3.000000 0.192034 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 336 LuAlO 5 -1.0000000000 0.43907 6.7300e+00 6.7300e+00 S 3 3 1 I + lutetium_aluminum_oxide_2 +lutetium aluminum oxide (2) (Lu%3#Al%5#O%12#) + 365.9 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 71 3.000000 0.616224 + 13 5.000000 0.158379 + 8 12.000000 0.225396 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 337 LuSiO 5 -1.0000000000 0.42793 7.4000e+00 7.4000e+00 S 3 2 1 I + lutetium_silicon_oxide +lutetium silicon oxide (Lu%2#SiO%5#) + 472.0 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 71 2.000000 0.764020 + 14 1.000000 0.061320 + 8 5.000000 0.174660 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 338 YAlO-1 5 -1.0000000000 0.46374 5.5000e+00 5.5000e+00 S 3 1 1 I + yttrium_aluminum_oxide_1 +yttrium aluminum oxide (1) (YAlO%3#) + 239.3 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 39 1.000000 0.542487 + 13 1.000000 0.164636 + 8 3.000000 0.292876 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 339 YAlO-2 5 -1.0000000000 0.46831 4.5600e+00 4.5600e+00 S 3 3 1 I + yttrium_aluminum_oxide_2 +yttrium aluminum oxide (2) (Y%3#Al%5#O%12#) + 218.0 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 39 3.000000 0.449308 + 13 5.000000 0.227263 + 8 12.000000 0.323428 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 340 YSiO 5 -1.0000000000 0.46171 4.5400e+00 4.5400e+00 S 3 2 1 I + yttrium_silicon_oxide +yttrium silicon oxide (Y%2#SiO%5#) + 258.1 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 39 2.000000 0.621949 + 14 1.000000 0.098237 + 8 5.000000 0.279813 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 341 GdSiO 5 -1.0000000000 0.43069 6.7100e+00 6.7100e+00 S 3 2 1 I + gadolinium_silicate +gadolinium silicate (Gd%2#SiO%5#) + 405.4 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 64 2.000000 0.744233 + 14 1.000000 0.066462 + 8 5.000000 0.189305 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +---------------------------------------------------------------------------- + 342 baksa 5 -1.0000000000 0.49228 2.7400e+00 2.7400e+00 S 2 0 1 I + baksan_rock +baksan rock + 175.6 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 11 0.100000 0.095103 + 12 0.900000 0.904897 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +--------------------------------------------------------------------------- + 343 bakst 5 -1.0000000000 0.49228 2.7400e+00 2.6500e+00 S 2 0 1 I + baksan_rock_st +baksan rock, std rock density + 175.6 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 11 0.100000 0.095103 + 12 0.900000 0.904897 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +--------------------------------------------------------------------------- + 344 MtBla 5 -1.0000000000 0.48003 2.6000e+00 2.6000e+00 S 2 0 1 I + MtBlanc_rock +Mt Blanc rock + 159.2 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 6 0.132000 0.073601 + 11 0.868000 0.926399 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +--------------------------------------------------------------------------- + 345 MtBst 5 -1.0000000000 0.48003 2.6000e+00 2.6500e+00 S 2 0 1 I + MtBlanc_rock_sd +Mt Blanc rock, std rock density + 159.2 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 6 0.132000 0.073601 + 11 0.868000 0.926399 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +--------------------------------------------------------------------------- + 346 KGFst 5 -1.0000000000 0.48605 3.0200e+00 2.6500e+00 S 2 0 1 I + KGF_rock_st +Kolar Gold Fields rock, std rock density + 183.4 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 12 0.380000 0.355713 + 13 0.620000 0.644287 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +--------------------------------------------------------------------------- + 347 KGF 5 -1.0000000000 0.48605 3.0200e+00 3.0200e+00 S 2 0 1 I + KGF_rock +Kolar Gold Fields rock + 183.4 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 12 0.380000 0.355713 + 13 0.620000 0.644287 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +--------------------------------------------------------------------------- + 348 UD 5 -1.0000000000 0.49602 2.7000e+00 2.7000e+00 S 11 0 1 I + UD_rock +UD rock for doug + 145.4 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 14 0.245239 0.334025 + 22 0.001368 0.003176 + 13 0.056485 0.073911 + 26 0.009477 0.025666 + 25 0.000148 0.000394 + 12 0.004120 0.004856 + 20 0.009895 0.019232 + 11 0.041643 0.046428 + 19 0.001606 0.003045 + 15 0.000592 0.000889 + 8 0.629426 0.488377 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +--------------------------------------------------------------------------- + 349 LMP 5 -1.0000000000 0.49641 2.7000e+00 2.7000e+00 S 11 0 1 I + LMP_rock +LMP rock for Doug + 145.9 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 14 0.248086 0.335584 + 22 0.001242 0.002863 + 13 0.066504 0.086423 + 26 0.008725 0.023467 + 25 0.000146 0.000386 + 12 0.010053 0.011768 + 20 0.007152 0.013805 + 11 0.002935 0.003250 + 19 0.015537 0.029258 + 15 0.000437 0.000652 + 8 0.639181 0.492543 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +--------------------------------------------------------------------------- + 350 UM 5 -1.0000000000 0.49407 2.7000e+00 2.7000e+00 S 11 0 1 I + UM_rock +UM rock for Doug + 152.7 0.0000 0.0000 0.0000 0.00000 0.0000 0.00 + 14 0.184026 0.238952 + 22 0.002244 0.004966 + 13 0.069046 0.086130 + 26 0.030831 0.079602 + 25 0.000822 0.002088 + 12 0.042435 0.047684 + 20 0.031499 0.058365 + 11 0.025503 0.027107 + 19 0.000642 0.001160 + 15 0.000791 0.001133 + 8 0.612161 0.452813 +Note: Ieff calculated using the ICRU37 Table 5.1 algorithm for liquids and solids +--------------------------------------------------------------------------- diff --git a/corsika/modules/energy_loss/ReadData.py b/corsika/modules/energy_loss/ReadData.py new file mode 100644 index 0000000000000000000000000000000000000000..377f3992d7a8ff7888b7a01ef5b202e019533016 --- /dev/null +++ b/corsika/modules/energy_loss/ReadData.py @@ -0,0 +1,73 @@ +#!/usr/bin/python + +import os +import sys +import string + + +data = open("Properties8.dat", "r") + +nEl = 0 +nOpt = 0 +count = 0 # the data comes with flexible row-blocks, need to count +for line in data.readlines(): + line = line.rstrip() + if line == "" or line[0] == "#": + continue + +# print str(count) + " " + line + + if count == 0: + index = int(line[0:4].strip()) # sternheimers index + name = line[5:11].strip() # tag + sig = int(line[11:14].strip()) # significant figures of atomic mass if element + weight = float(line[16:27].strip()) # atomic weight, if element + weight_error = int((line[31:32].strip() or "0"))# error in last place + ZoverA = float(line[34:42].strip()) # Z/A + rho = float(line[42:52].strip()) # Sternheimers density + rho_corr = float(line[52:63].strip())# Corrected density + state = line[64].strip() # Solid Liquid Gas Diatomicgas + nEl = int(line[66:69].strip()) # number of elements + nAtom = int(line[70:72].strip()) # atoms of el. 1 + nOpt = int(line[73:74].strip()) # number of optional lines + type = line[75] # type: Element, Radiactive element, Inorganic compound, Organic compound, Polymer, Mixture, Biological + + elif count == 1: + short = line[0:4].strip() # if element + long = line[4:100].strip() + + elif count == 2: + desc = line # description and formula + + elif count == 3: + Ieff = float(line[0:10].strip()) # ieff + Cbar = float(line[11:19].strip()) # cbar + x0 = float(line[21:28].strip()) # x0 + x1 = float(line[30:37].strip()) # x1 + aa = float(line[39:46].strip()) # a / aa + sk = float(line[48:55].strip()) # k / sk + delta0 = float(line[59:].strip()) # delta0 / dlt0 + + elif count == 4 and count < 4+nEl: + elZ = int(line[0:11].strip()) # Z + # num frac. + # weigh frac. + pass + + elif count>=4+nEl and count<=4+nEl+nOpt: + # print "opt : " + str(count) + " " + str(4+nEl+nOpt) + " " + line + # property A25 + # value F20 + # if 1:5 is "Note:" following lines are extra comments + if (count == 4+nEl+nOpt): + count = -1 + + print str(elZ) + " " + long + " " + str(Ieff) + " " + str(ZoverA) + " " + state + " " + type + " " + str(rho_corr) + " " + str(delta0) + " " + str(x0) + " " + str(x1) + " " + str(aa) + " " + str(sk) + " " + str(Cbar) + + + count += 1 + + +if (count != 0): + print ("Error " + str(count)) + diff --git a/corsika/modules/energy_loss/SummaryPropTable.dat b/corsika/modules/energy_loss/SummaryPropTable.dat new file mode 100644 index 0000000000000000000000000000000000000000..2ebc9d2e630ce5b3bd1e32e30cd00e5f3eb6f166 --- /dev/null +++ b/corsika/modules/energy_loss/SummaryPropTable.dat @@ -0,0 +1,138 @@ +# RU Mo 18. Feb 14:07:40 CET 2019 +# Data table obtained from http://pdg.lbl.gov/2018/AtomicNuclearProperties/summary_prop_table.dat +# see also http://pdg.lbl.gov/2018/AtomicNuclearProperties/expert.html +# Z A density dEmin Xo lam_I lam_pi_I E_c (elec) E_c (pstrn) state + 1 1.00794 0.00 4.103 63.04 52.01 80.26 344.80 338.33 D + 1 1.00794 0.07 4.034 63.04 52.01 80.26 278.02 271.50 L + 1 2.01410 0.00 2.053 125.98 71.78 110.12 345.50 339.03 D + 1 2.01410 0.17 2.019 125.98 71.78 110.12 278.02 271.50 L + 2 4.00260 0.00 1.937 94.32 71.00 103.61 257.13 252.23 G + 2 4.00260 0.12 1.936 94.32 71.00 103.61 208.25 203.34 L + 3 6.94100 0.53 1.639 82.78 71.34 103.26 149.06 145.33 S + 4 9.01218 1.85 1.595 65.19 77.80 109.90 113.70 110.68 S + 5 10.81100 2.37 1.623 52.69 83.32 115.54 93.95 91.41 S + 6 12.01070 2.00 1.749 42.70 85.81 117.79 82.08 79.85 S + 6 12.01070 2.21 1.742 42.70 85.81 117.79 81.74 79.51 S + 6 12.01070 2.27 1.745 42.70 85.81 117.79 81.67 79.44 S + 6 12.01070 3.52 1.725 42.70 85.81 117.79 80.17 77.94 S + 7 14.00670 0.00 1.825 37.99 89.68 121.69 91.73 89.71 D + 7 14.00670 0.81 1.813 37.99 89.68 121.69 75.47 73.49 L + 8 15.99940 0.00 1.801 34.24 90.17 121.91 81.45 79.62 D + 8 15.99940 1.14 1.788 34.24 90.17 121.91 66.82 65.04 L + 9 18.99840 0.00 1.676 32.93 97.42 127.24 73.15 71.48 D + 9 18.99840 1.51 1.634 32.93 97.42 127.24 59.81 58.17 L + 10 20.17970 0.00 1.724 28.93 98.99 128.66 67.02 65.47 G + 10 20.17970 1.20 1.695 28.93 98.99 128.66 55.10 53.59 L + 11 22.98977 0.97 1.639 27.74 102.55 132.22 51.38 49.99 S + 12 24.30500 1.74 1.674 25.03 104.12 133.65 46.55 45.25 S + 13 26.98154 2.70 1.615 24.01 107.16 136.67 42.70 41.48 S + 14 28.08550 2.33 1.664 21.82 108.35 137.74 40.19 39.05 S + 15 30.97376 2.20 1.613 21.21 111.36 140.72 37.92 36.84 S + 16 32.06500 2.00 1.652 19.50 112.44 141.70 35.85 34.83 S + 17 35.45300 0.00 1.630 19.28 115.70 144.94 40.05 39.04 D + 17 35.45300 1.57 1.608 19.28 115.70 144.94 34.32 33.35 L + 18 39.94800 0.00 1.519 19.55 119.73 148.99 38.03 37.06 G + 18 39.94800 1.40 1.508 19.55 119.73 148.99 32.84 31.91 L + 19 39.09830 0.86 1.623 17.32 118.98 148.08 31.62 30.72 S + 20 40.07800 1.55 1.655 16.14 119.83 148.83 29.56 28.71 S + 21 44.95591 2.99 1.522 16.55 123.90 152.91 27.61 26.79 S + 22 47.86700 4.54 1.477 16.16 126.20 155.17 26.01 25.23 S + 23 50.94150 6.11 1.436 15.84 128.54 157.46 24.67 23.91 S + 24 51.99610 7.18 1.456 14.94 129.31 158.16 23.52 22.79 S + 25 54.93804 7.44 1.428 14.64 131.44 160.24 22.59 21.89 S + 26 55.84500 7.87 1.451 13.84 132.08 160.80 21.68 21.00 S + 27 58.93319 8.90 1.419 13.62 134.23 162.90 20.82 20.16 S + 28 58.69340 8.90 1.468 12.68 134.06 162.64 20.05 19.41 S + 29 63.54600 8.96 1.403 12.86 137.30 165.87 19.42 18.79 S + 30 65.38000 7.13 1.411 12.43 138.49 166.99 18.93 18.33 S + 31 69.72300 5.90 1.379 12.47 141.22 169.69 18.57 17.98 S + 32 72.64000 5.32 1.370 12.25 143.00 171.42 18.16 17.58 S + 33 74.92159 5.73 1.370 11.94 144.36 172.73 17.65 17.09 S + 34 78.97100 4.50 1.343 11.91 146.71 175.04 17.34 16.79 S + 35 79.90400 0.01 1.388 11.42 147.24 175.51 19.16 18.60 D + 35 79.90400 3.10 1.380 11.42 147.24 175.51 17.28 16.75 L + 36 83.79800 0.00 1.357 11.37 149.42 177.65 18.61 18.06 G + 36 83.79800 2.42 1.357 11.37 149.42 177.65 17.03 16.51 L + 37 85.46780 1.53 1.356 11.03 150.34 178.51 16.61 16.10 S + 38 87.62000 2.54 1.353 10.76 151.50 179.62 15.97 15.47 S + 39 88.90584 4.47 1.359 10.41 152.18 180.26 15.30 14.81 S + 40 91.22400 6.51 1.349 10.20 153.41 181.44 14.74 14.27 S + 41 92.90637 8.57 1.343 9.92 154.28 182.26 14.23 13.77 S + 42 95.95000 10.22 1.329 9.80 155.84 183.78 13.85 13.39 S + 43 97.90722 11.50 1.325 9.58 156.83 184.72 13.46 13.01 S + 44 101.07000 12.41 1.307 9.48 158.40 186.25 13.12 12.68 S + 45 102.90550 12.41 1.310 9.27 159.30 187.11 12.84 12.41 S + 46 106.42000 12.02 1.289 9.20 161.00 188.76 12.57 12.15 S + 47 107.86820 10.50 1.299 8.97 161.68 189.41 12.36 11.94 S + 48 112.41400 8.65 1.277 9.00 163.81 191.49 12.21 11.80 S + 49 114.81800 7.31 1.278 8.85 164.91 192.55 12.06 11.65 S + 50 118.71000 7.31 1.263 8.82 166.67 194.27 11.86 11.46 S + 51 121.76000 6.69 1.259 8.73 168.02 195.58 11.70 11.31 S + 52 127.60000 6.24 1.227 8.83 170.56 198.08 11.54 11.16 S + 53 126.90447 4.93 1.263 8.48 170.25 197.74 11.42 11.04 S + 54 131.29300 0.01 1.255 8.48 172.12 199.56 12.30 11.91 G + 54 131.29300 2.95 1.255 8.48 172.12 199.56 11.66 11.28 L + 55 132.90545 1.87 1.254 8.31 172.79 200.20 11.34 10.97 S + 56 137.32700 3.50 1.231 8.31 174.62 201.98 10.98 10.62 S + 57 138.90547 6.14 1.231 8.14 175.26 202.59 10.63 10.27 S + 58 140.11600 6.77 1.234 7.96 175.75 203.04 10.40 10.04 S + 59 140.90766 6.77 1.243 7.76 176.07 203.32 10.21 9.86 S + 60 144.24200 7.01 1.231 7.71 177.40 204.62 10.02 9.68 S + 61 144.91275 7.26 1.240 7.51 177.66 204.85 9.83 9.49 S + 62 150.36000 7.52 1.210 7.57 179.79 206.95 9.66 9.32 S + 63 151.96400 5.24 1.219 7.44 180.41 207.53 9.59 9.26 S + 64 157.25000 7.90 1.188 7.48 182.42 209.50 9.34 9.01 S + 65 158.92535 8.23 1.188 7.36 183.05 210.10 9.17 8.85 S + 66 162.50000 8.55 1.175 7.32 184.38 211.39 9.02 8.70 S + 67 164.93033 8.80 1.170 7.23 185.27 212.25 8.86 8.55 S + 68 167.25900 9.03 1.168 7.14 186.12 213.07 8.73 8.42 S + 69 168.93422 9.32 1.170 7.03 186.72 213.64 8.59 8.28 S + 70 173.05400 6.90 1.159 7.02 188.19 215.08 8.52 8.22 S + 71 174.96680 9.84 1.160 6.92 188.87 215.72 8.36 8.06 S + 72 178.49000 13.31 1.152 6.89 190.10 216.93 8.22 7.93 S + 73 180.94788 16.65 1.149 6.82 190.96 217.75 8.09 7.79 S + 74 183.84000 19.30 1.145 6.76 191.95 218.71 7.97 7.68 S + 75 186.20700 21.02 1.143 6.69 192.75 219.49 7.85 7.57 S + 76 190.23000 22.57 1.132 6.68 194.11 220.81 7.75 7.47 S + 77 192.21700 22.42 1.134 6.59 194.77 221.45 7.67 7.39 S + 78 195.08400 21.45 1.128 6.54 195.72 222.37 7.59 7.31 S + 79 196.96657 19.32 1.134 6.46 196.34 222.96 7.53 7.26 S + 80 200.59000 13.55 1.130 6.44 197.52 224.11 7.53 7.26 L + 81 204.38330 11.72 1.125 6.42 198.75 225.30 7.50 7.23 S + 82 207.20000 11.35 1.122 6.37 199.64 226.17 7.43 7.16 S + 83 208.98040 9.75 1.128 6.29 200.21 226.71 7.39 7.13 S + 84 208.98243 9.32 1.141 6.16 200.21 226.69 7.33 7.06 S + 85 209.98715 5.00 1.160 6.07 200.52 226.98 7.60 7.33 S + 86 222.01758 0.01 1.116 6.28 204.25 230.66 7.71 7.43 G + 87 223.01974 1.87 1.118 6.19 204.56 230.94 7.59 7.32 S + 88 226.02541 5.00 1.111 6.15 205.47 231.83 7.19 6.94 S + 89 227.02775 10.07 1.112 6.06 205.77 232.11 7.00 6.75 S + 90 232.03770 11.72 1.098 6.07 207.26 233.57 6.91 6.66 S + 91 231.03588 15.37 1.107 5.93 206.96 233.25 6.77 6.52 S + 92 238.02891 18.95 1.081 6.00 209.02 235.28 6.65 6.41 S + 93 237.04817 20.25 1.095 5.87 208.73 234.97 6.57 6.33 S + 94 244.06420 19.84 1.071 5.93 210.77 236.98 6.49 6.25 S + 95 243.06138 13.67 1.089 5.80 210.48 236.67 6.50 6.25 S + 96 247.07035 13.51 1.082 5.79 211.63 237.79 6.44 6.20 S + 97 247.07031 14.00 1.106 5.69 211.63 237.77 6.59 6.35 S + 98 251.07959 14.00 1.097 5.68 212.77 238.88 6.53 6.29 S + 99 252.08300 14.00 1.102 5.61 213.05 239.15 6.47 6.24 S + 100 257.09510 14.00 1.090 5.62 214.45 240.52 6.42 6.19 S + 101 258.09843 14.00 1.095 5.55 214.73 240.78 6.37 6.13 S + 102 259.10100 14.00 1.099 5.48 215.00 241.04 6.31 6.08 S + 103 262.11000 14.00 1.096 5.45 215.83 241.84 6.26 6.03 S + 104 267.12200 14.00 1.084 5.47 217.20 243.19 6.21 5.98 S + 105 268.12500 14.00 1.088 5.40 217.48 243.44 6.16 5.93 S + 106 271.13300 14.00 1.085 5.38 218.29 244.23 6.11 5.89 S + 107 270.13400 14.00 1.097 5.27 218.02 243.95 6.06 5.84 S + 108 269.13410 14.00 1.110 5.17 217.75 243.66 6.01 5.79 S + 109 276.15100 14.00 1.090 5.23 219.63 245.51 5.97 5.75 S + 110 281.16200 14.00 1.079 5.24 220.96 246.82 5.92 5.71 S + 111 280.16400 14.00 1.091 5.14 220.69 246.54 5.88 5.66 S + 112 285.00000 14.00 1.080 5.16 221.96 247.78 5.83 5.61 S + 113 284.17800 14.00 1.091 5.07 221.75 247.55 5.79 5.57 S + 114 289.18700 14.00 1.080 5.08 223.05 248.83 5.75 5.53 S + 115 288.19200 14.00 1.092 4.99 222.79 248.56 5.71 5.49 S + 116 293.20000 14.00 1.081 5.00 224.08 249.83 5.67 5.45 S + 117 294.00000 14.00 1.086 4.95 224.29 250.01 5.62 5.41 S + 118 294.21500 0.01 1.092 4.88 224.34 250.05 5.67 5.45 G diff --git a/corsika/modules/sibyll/Decay.hpp b/corsika/modules/sibyll/Decay.hpp index 9de7938a1afce2401bb25d77221d063ee35bb000..16e5d03363a1f939329302ce189e1637f429d897 100644 --- a/corsika/modules/sibyll/Decay.hpp +++ b/corsika/modules/sibyll/Decay.hpp @@ -8,6 +8,8 @@ #pragma once +#include <corsika/modules/sibyll/Random.hpp> + #include <corsika/framework/core/ParticleProperties.hpp> #include <corsika/framework/sequence/DecayProcess.hpp> diff --git a/corsika/modules/sibyll/Interaction.hpp b/corsika/modules/sibyll/Interaction.hpp index 4c29a5f0120a0274b0e677163709e2a61d2d66d9..981e4278c6a6998101362d70dcd304ab2334bc10 100644 --- a/corsika/modules/sibyll/Interaction.hpp +++ b/corsika/modules/sibyll/Interaction.hpp @@ -8,6 +8,8 @@ #pragma once +#include <corsika/modules/sibyll/Random.hpp> + #include <corsika/framework/core/ParticleProperties.hpp> #include <corsika/framework/sequence/InteractionProcess.hpp> #include <corsika/framework/random/RNGManager.hpp> diff --git a/corsika/modules/sibyll/Random.hpp b/corsika/modules/sibyll/Random.hpp index 8c0ddcf91523a0e392bc4a1c4e636ec6f271e05f..1a53d7c109010974baa4d13abf343b6f729da1e7 100644 --- a/corsika/modules/sibyll/Random.hpp +++ b/corsika/modules/sibyll/Random.hpp @@ -6,6 +6,8 @@ * the license. */ +#pragma once + #include <corsika/framework/random/RNGManager.hpp> #include <random> diff --git a/corsika/modules/track_writer/TrackWriter.hpp b/corsika/modules/track_writer/TrackWriter.hpp new file mode 100644 index 0000000000000000000000000000000000000000..07603722caba548a28a429f8897d38900b4d7f46 --- /dev/null +++ b/corsika/modules/track_writer/TrackWriter.hpp @@ -0,0 +1,45 @@ +/* + * (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. + */ + +#pragma once + +#include <corsika/framework/core/PhysicalUnits.hpp> +#include <corsika/framework/sequence/ContinuousProcess.hpp> + +#include <fstream> +#include <string> + +namespace corsika::track_writer { + + class TrackWriter : public corsika::ContinuousProcess<TrackWriter> { + + public: + TrackWriter(std::string const& filename) + : fFilename(filename) {} + + void Init(); + + template <typename Particle, typename Track> + corsika::EProcessReturn DoContinuous(const Particle&, const Track&); + + template <typename Particle, typename Track> + corsika::units::si::LengthType MaxStepLength(const Particle&, const Track&); + + private: + std::string const fFilename; + std::ofstream fFile; + + int width = 14; + int precision = 6; + }; + +} // namespace corsika::track_writer + +#include <corsika/detail/modules/track_writer/TrackWriter.inl> diff --git a/corsika/setup/SetupStack.hpp b/corsika/setup/SetupStack.hpp index 8b16947d5e1dafa052013c9212acb160c7a88a73..1bcf0e730299895077b58facce8b5d0a734ca4af 100644 --- a/corsika/setup/SetupStack.hpp +++ b/corsika/setup/SetupStack.hpp @@ -9,19 +9,20 @@ #pragma once // the basic particle data stack: -#include <corsika/stack/SuperStupidStack.h> +#include <corsika/stack/SuperStupidStack.hpp> // extension with nuclear data for Code::Nucleus -#include <corsika/stack/NuclearStackExtension.h> +#include <corsika/stack/NuclearStackExtension.hpp> // extension with geometry information for tracking #include <corsika/media/Environment.hpp> #include <corsika/framework/stack/CombinedStack.hpp> +#include <corsika/setup/SetupEnvironment.hpp> + #include <tuple> #include <utility> #include <vector> -#include <corsika/setup/SetupEnvironment.hpp> namespace detail { diff --git a/corsika/stack/DummyStack.h b/corsika/stack/DummyStack.hpp similarity index 100% rename from corsika/stack/DummyStack.h rename to corsika/stack/DummyStack.hpp diff --git a/corsika/stack/NuclearStackExtension.h b/corsika/stack/NuclearStackExtension.hpp similarity index 100% rename from corsika/stack/NuclearStackExtension.h rename to corsika/stack/NuclearStackExtension.hpp diff --git a/corsika/stack/SuperStupidStack.h b/corsika/stack/SuperStupidStack.hpp similarity index 100% rename from corsika/stack/SuperStupidStack.h rename to corsika/stack/SuperStupidStack.hpp diff --git a/dependencies/urqmd/UrQMD.cc b/dependencies/urqmd/UrQMD.cc deleted file mode 100644 index 90be92d6e621f2128b8535414d4b30705fb46d4f..0000000000000000000000000000000000000000 --- a/dependencies/urqmd/UrQMD.cc +++ /dev/null @@ -1,470 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * 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. - */ - -#include <corsika/framework/coreParticleProperties.h> -#include <corsika/framework/geometry/QuantityVector.h> -#include <corsika/framework/geometry/Vector.h> -#include <corsika/logging/Logging.h> -#include <corsika/process/urqmd/UrQMD.h> -#include <corsika/framework/core/PhysicalUnits.hpp> - -#include <algorithm> -#include <array> -#include <cassert> -#include <cmath> -#include <fstream> -#include <functional> -#include <iostream> -#include <random> -#include <sstream> - -using namespace corsika::UrQMD; -using namespace corsika::units::si; - -using SetupStack = corsika::setup::Stack; -using SetupParticle = corsika::setup::Stack::StackIterator; -using SetupView = corsika::setup::StackView; - -UrQMD::UrQMD(std::string const& xs_file) { - readXSFile(xs_file); - iniurqmdc8_(); -} - -CrossSectionType UrQMD::GetTabulatedCrossSection(Code projectileCode, - corsika::Code targetCode, - HEPEnergyType labEnergy) const { - // translated to C++ from CORSIKA 7 subroutine cxtot_u - - C8LOG_DEBUG("UrQMD::GetTabulatedCrossSection proj={}, targ={}, E={}GeV", - GetName(projectileCode), GetName(targetCode), labEnergy / 1_GeV); - - auto const kinEnergy = labEnergy - GetMass(projectileCode); - - assert(kinEnergy >= HEPEnergyType::zero()); - - double const logKinEnergy = std::log10(kinEnergy * (1 / 1_GeV)); - double const ye = std::max(10 * logKinEnergy + 10.5, 1.); - int const je = std::min(int(ye), int(xs_interp_support_table_.shape()[2] - 2)); - std::array<double, 3> w; - w[2 - 1] = ye - je; - w[3 - 1] = w[2 - 1] * (w[2 - 1] - 1.) * .5; - w[1 - 1] = 1 - w[2 - 1] + w[3 - 1]; - w[2 - 1] = w[2 - 1] - 2 * w[3 - 1]; - - int projectileIndex; - switch (projectileCode) { - case Code::Proton: - projectileIndex = 0; - break; - case Code::AntiProton: - projectileIndex = 1; - break; - case Code::Neutron: - projectileIndex = 2; - break; - case Code::AntiNeutron: - projectileIndex = 3; - break; - case Code::PiPlus: - projectileIndex = 4; - break; - case Code::PiMinus: - projectileIndex = 5; - break; - case Code::KPlus: - projectileIndex = 6; - break; - case Code::KMinus: - projectileIndex = 7; - break; - case Code::K0Short: - case Code::K0Long: - /* since K0Short and K0Long are treated the same, we can also add K0 and K0Bar - * to the list. This is a deviation from CORSIKA 7. */ - case Code::K0: - case Code::K0Bar: - projectileIndex = 8; - break; - default: - std::cout << "WARNING: UrQMD cross-section not tabulated for " << projectileCode - << std::endl; - return CrossSectionType::zero(); - } - - int targetIndex; - switch (targetCode) { - case Code::Nitrogen: - targetIndex = 0; - break; - case Code::Oxygen: - targetIndex = 1; - break; - case Code::Argon: - targetIndex = 2; - break; - default: - std::stringstream ss; - ss << "UrQMD cross-section not tabluated for target " << targetCode; - throw std::runtime_error(ss.str().data()); - } - - auto result = CrossSectionType::zero(); - for (int i = 0; i < 3; ++i) { - result += - xs_interp_support_table_[projectileIndex][targetIndex][je + i - 1 - 1] * w[i]; - } - - return result; -} - -CrossSectionType UrQMD::GetCrossSection(Code projectileCode, corsika::Code targetCode, - HEPEnergyType labEnergy, int projectileA) const { - // the following is a (incomplete!) translation of ptsigtot() into C++ - if (projectileCode != Code::Nucleus && - !IsNucleus(targetCode)) { // both particles are "special" - auto const mProj = GetMass(projectileCode); - auto const mTar = GetMass(targetCode); - double sqrtS = sqrt(units::static_pow<2>(mProj) + units::static_pow<2>(mTar) + - 2 * labEnergy * mTar) * - (1 / 1_GeV); - - // we must set some UrQMD globals first... - auto const [ityp, iso3] = ConvertToUrQMD(projectileCode); - inputs_.spityp[0] = ityp; - inputs_.spiso3[0] = iso3; - - auto const [itypTar, iso3Tar] = ConvertToUrQMD(targetCode); - inputs_.spityp[1] = itypTar; - inputs_.spiso3[1] = iso3Tar; - - int one = 1; - int two = 2; - int three = 3; - - double const totalXS = sigtot_(one, two, sqrtS); - - // subtract elastic cross-section as in ptsigtot() - int itypmn, itypmx, iso3mn, iso3mx; - if (ityp < itypTar) { - itypmn = ityp; - itypmx = itypTar; - - iso3mn = iso3; - iso3mx = iso3Tar; - } else { - itypmx = ityp; - itypmn = itypTar; - - iso3mx = iso3; - iso3mn = iso3Tar; - } - - int isigline = collclass_(itypmx, iso3mx, itypmn, iso3mn); - int iline = readsigmaln_(three, one, isigline); - double sigEl; - double massProj = mProj / 1_GeV; - double massTar = mTar / 1_GeV; - - crossx_(iline, sqrtS, ityp, iso3, massProj, itypTar, iso3Tar, massTar, sigEl); - - if (totalXS > sigEl) { - return (totalXS - sigEl) * 1_mb; - } else { - return sigEl * 0_mb; - } - } else { - int const Ap = projectileA; - int const At = IsNucleus(targetCode) ? GetNucleusA(targetCode) : 1; - - double const maxImpact = nucrad_(Ap) + nucrad_(At) + 2 * options_.CTParam[30 - 1]; - return 10_mb * M_PI * units::static_pow<2>(maxImpact); - // is a constant cross-section really reasonable? - } -} - -template <typename TParticle> // need template here, as this is called both with - // SetupParticle as well as SetupProjectile -CrossSectionType UrQMD::GetCrossSection(TParticle const& projectile, - corsika::Code targetCode) const { - - auto const projectileCode = projectile.GetPID(); - auto const projectileEnergyLab = projectile.GetEnergy(); - - if (projectileCode == Code::Nucleus) { - /* - * unfortunately unavoidable at the moment until we have tools to get the actual - * inealstic cross-section from UrQMD - */ - return CrossSectionType::zero(); - } - - return GetTabulatedCrossSection(projectileCode, targetCode, projectileEnergyLab); -} - -bool UrQMD::CanInteract(Code code) const { - // According to the manual, UrQMD can use all mesons, baryons and nucleons - // which are modeled also as input particles. I think it is safer to accept - // only the usual long-lived species as input. - - // Interactions with nucleus projectiles are possible in principle with UrQMD - // but right now we don't have access to the inelastic (production) cross-section, - // so we unfortunately have to forbid these interactions for the time being. - - static Code const validProjectileCodes[] = { - Code::Proton, Code::AntiProton, Code::Neutron, Code::AntiNeutron, Code::PiPlus, - Code::PiMinus, Code::KPlus, Code::KMinus, Code::K0Short, Code::K0Long}; - - return std::find(std::cbegin(validProjectileCodes), std::cend(validProjectileCodes), - code) != std::cend(validProjectileCodes); -} - -GrammageType UrQMD::GetInteractionLength(SetupParticle const& particle) const { - if (!CanInteract(particle.GetPID())) { - // we could do the canInteract check in GetCrossSection, too but if - // we do it here we have the advantage of avoiding the loop - return std::numeric_limits<double>::infinity() * 1_g / (1_cm * 1_cm); - } - - auto const& mediumComposition = - particle.GetNode()->GetModelProperties().GetNuclearComposition(); - using namespace std::placeholders; - - CrossSectionType const weightedProdCrossSection = mediumComposition.WeightedSum( - std::bind(&UrQMD::GetCrossSection<decltype(particle)>, this, particle, _1)); - - return mediumComposition.GetAverageMassNumber() * units::constants::u / - weightedProdCrossSection; -} - -corsika::EProcessReturn UrQMD::DoInteraction(SetupView& view) { - using namespace units::si; - - auto const projectile = view.GetProjectile(); - - auto projectileCode = projectile.GetPID(); - auto const projectileEnergyLab = projectile.GetEnergy(); - auto const& projectileMomentumLab = projectile.GetMomentum(); - auto const& projectilePosition = projectile.GetPosition(); - auto const projectileTime = projectile.GetTime(); - - // sample target particle - auto const& mediumComposition = - projectile.GetNode()->GetModelProperties().GetNuclearComposition(); - auto const componentCrossSections = std::invoke([&]() { - auto const& components = mediumComposition.GetComponents(); - std::vector<CrossSectionType> crossSections; - crossSections.reserve(components.size()); - - for (auto const c : components) { - crossSections.push_back(GetCrossSection(projectile, c)); - } - - return crossSections; - }); - - auto const targetCode = mediumComposition.SampleTarget(componentCrossSections, rng_); - auto const targetA = GetNucleusA(targetCode); - auto const targetZ = GetNucleusZ(targetCode); - - inputs_.nevents = 1; - sys_.eos = 0; // could be configurable in principle - inputs_.outsteps = 1; - sys_.nsteps = 1; - - // initialization regarding projectile - if (Code::Nucleus == projectileCode) { - // is this everything? - inputs_.prspflg = 0; - - sys_.Ap = projectile.GetNuclearA(); - sys_.Zp = projectile.GetNuclearZ(); - rsys_.ebeam = (projectileEnergyLab - projectile.GetMass()) * (1 / 1_GeV) / - projectile.GetNuclearA(); - - rsys_.bdist = nucrad_(targetA) + nucrad_(sys_.Ap) + 2 * options_.CTParam[30 - 1]; - - int const id = 1; - cascinit_(sys_.Zp, sys_.Ap, id); - } else { - inputs_.prspflg = 1; - sys_.Ap = 1; // even for non-baryons this has to be set, see vanilla UrQMD.f - rsys_.bdist = nucrad_(targetA) + nucrad_(1) + 2 * options_.CTParam[30 - 1]; - rsys_.ebeam = (projectileEnergyLab - projectile.GetMass()) * (1 / 1_GeV); - - if (projectileCode == Code::K0Long || projectileCode == Code::K0Short) { - projectileCode = booleanDist_(rng_) ? Code::K0 : Code::K0Bar; - } - - auto const [ityp, iso3] = ConvertToUrQMD(projectileCode); - // todo: conversion of K_long/short into strong eigenstates; - inputs_.spityp[0] = ityp; - inputs_.spiso3[0] = iso3; - } - - // initilazation regarding target - if (IsNucleus(targetCode)) { - sys_.Zt = targetZ; - sys_.At = targetA; - inputs_.trspflg = 0; // nucleus as target - int const id = 2; - cascinit_(sys_.Zt, sys_.At, id); - } else { - inputs_.trspflg = 1; // special particle as target - auto const [ityp, iso3] = ConvertToUrQMD(targetCode); - inputs_.spityp[1] = ityp; - inputs_.spiso3[1] = iso3; - } - - int iflb = 0; // flag for retrying interaction in case of empty event, 0 means retry - urqmd_(iflb); - - // now retrieve secondaries from UrQMD - auto const& originalCS = projectileMomentumLab.GetCoordinateSystem(); - geometry::CoordinateSystem const zAxisFrame = - originalCS.RotateToZ(projectileMomentumLab); - - for (int i = 0; i < sys_.npart; ++i) { - auto code = ConvertFromUrQMD(isys_.ityp[i], isys_.iso3[i]); - if (code == Code::K0 || code == Code::K0Bar) { - code = booleanDist_(rng_) ? Code::K0Short : Code::K0Long; - } - - // "coor_.p0[i] * 1_GeV" is likely off-shell as UrQMD doesn't preserve masses well - auto momentum = geometry::Vector( - zAxisFrame, - geometry::QuantityVector<dimensionless_d>{coor_.px[i], coor_.py[i], coor_.pz[i]} * - 1_GeV); - - auto const energy = sqrt(momentum.squaredNorm() + square(GetMass(code))); - - momentum.rebase(originalCS); // transform back into standard lab frame - std::cout << i << " " << code << " " << momentum.GetComponents() << std::endl; - - view.AddSecondary( - std::tuple<Code, HEPEnergyType, stack::MomentumVector, geometry::Point, TimeType>{ - code, energy, momentum, projectilePosition, projectileTime}); - } - - std::cout << "UrQMD generated " << sys_.npart << " secondaries!" << std::endl; - - return process::EProcessReturn::eOk; -} - -/** - * the random number generator function of UrQMD - */ -double corsika::UrQMD::ranf_(int&) { - static corsika::random::RNG& rng = - corsika::random::RNGManager::GetInstance().GetRandomStream("urqmd"); - static std::uniform_real_distribution<double> dist; - - return dist(rng); -} - -corsika::Code corsika::UrQMD::ConvertFromUrQMD(int vItyp, int vIso3) { - int const pdgInt = - pdgid_(vItyp, vIso3); // use the conversion function provided by UrQMD - if (pdgInt == 0) { // pdgid_ returns 0 on error - throw std::runtime_error("UrQMD pdgid() returned 0"); - } - auto const pdg = static_cast<PDGCode>(pdgInt); - return ConvertFromPDG(pdg); -} - -std::pair<int, int> corsika::UrQMD::ConvertToUrQMD(corsika::Code code) { - static const std::map<int, std::pair<int, int>> mapPDGToUrQMD{ - // data mostly from github.com/afedynitch/ParticleDataTool - {22, {100, 0}}, // gamma - {111, {101, 0}}, // pi0 - {211, {101, 2}}, // pi+ - {-211, {101, -2}}, // pi- - {321, {106, 1}}, // K+ - {-321, {-106, -1}}, // K- - {311, {106, -1}}, // K0 - {-311, {-106, 1}}, // K0bar - {2212, {1, 1}}, // p - {2112, {1, -1}}, // n - {-2212, {-1, -1}}, // pbar - {-2112, {-1, 1}}, // nbar - {221, {102, 0}}, // eta - {213, {104, 2}}, // rho+ - {-213, {104, -2}}, // rho- - {113, {104, 0}}, // rho0 - {323, {108, 2}}, // K*+ - {-323, {108, -2}}, // K*- - {313, {108, 0}}, // K*0 - {-313, {-108, 0}}, // K*0-bar - {223, {103, 0}}, // omega - {333, {109, 0}}, // phi - {3222, {40, 2}}, // Sigma+ - {3212, {40, 0}}, // Sigma0 - {3112, {40, -2}}, // Sigma- - {3322, {49, 0}}, // Xi0 - {3312, {49, -1}}, // Xi- - {3122, {27, 0}}, // Lambda0 - {2224, {17, 4}}, // Delta++ - {2214, {17, 2}}, // Delta+ - {2114, {17, 0}}, // Delta0 - {1114, {17, -2}}, // Delta- - {3224, {41, 2}}, // Sigma*+ - {3214, {41, 0}}, // Sigma*0 - {3114, {41, -2}}, // Sigma*- - {3324, {50, 0}}, // Xi*0 - {3314, {50, -1}}, // Xi*- - {3334, {55, 0}}, // Omega- - {411, {133, 2}}, // D+ - {-411, {133, -2}}, // D- - {421, {133, 0}}, // D0 - {-421, {-133, 0}}, // D0-bar - {441, {107, 0}}, // etaC - {431, {138, 1}}, // Ds+ - {-431, {138, -1}}, // Ds- - {433, {139, 1}}, // Ds*+ - {-433, {139, -1}}, // Ds*- - {413, {134, 1}}, // D*+ - {-413, {134, -1}}, // D*- - {10421, {134, 0}}, // D*0 - {-10421, {-134, 0}}, // D*0-bar - {443, {135, 0}}, // jpsi - }; - - return mapPDGToUrQMD.at(static_cast<int>(GetPDG(code))); -} - -void UrQMD::readXSFile(std::string const& filename) { - std::ifstream file(filename, std::ios::in); - - if (!file.is_open()) { throw std::runtime_error(filename + " could not be opened."); } - - std::string line; - - std::getline(file, line); - std::stringstream ss(line); - - char dummy; - int nTargets, nProjectiles, nSupports; - ss >> dummy >> nTargets >> nProjectiles >> nSupports; - - decltype(xs_interp_support_table_)::extent_gen extents; - xs_interp_support_table_.resize(extents[nProjectiles][nTargets][nSupports]); - - for (int i = 0; i < nTargets; ++i) { - for (int j = 0; j < nProjectiles; ++j) { - for (int k = 0; k < nSupports; ++k) { - std::getline(file, line); - std::stringstream s(line); - double energy, sigma; - s >> energy >> sigma; - xs_interp_support_table_[j][i][k] = sigma * 1_mb; - } - - std::getline(file, line); - std::getline(file, line); - } - } -} diff --git a/dependencies/urqmd/UrQMD.h b/dependencies/urqmd/UrQMD.h deleted file mode 100644 index e6535ca54aaf64721eed38de55f91e95937b144d..0000000000000000000000000000000000000000 --- a/dependencies/urqmd/UrQMD.h +++ /dev/null @@ -1,151 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * 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. - */ - -#pragma once - -#include <corsika/framework/coreParticleProperties.h> -#include <corsika/utl/CorsikaData.h> -#include <corsika/framework/core/PhysicalUnits.hpp> -#include <corsika/framework/random/RNGManager.hpp> -#include <corsika/framework/sequence/InteractionProcess.hpp> -#include <corsika/setup/SetupStack.hpp> - -#include <boost/multi_array.hpp> - -#include <array> -#include <random> -#include <string> -#include <utility> - -namespace corsika::UrQMD { - class UrQMD : public corsika::InteractionProcess<UrQMD> { - public: - UrQMD(std::string const& path = utl::CorsikaData("UrQMD/UrQMD-1.3.1-xs.dat")); - corsika::units::si::GrammageType GetInteractionLength( - corsika::setup::Stack::StackIterator const&) const; - - template <typename TParticle> - corsika::units::si::CrossSectionType GetCrossSection(TParticle const&, - corsika::Code) const; - - corsika::units::si::CrossSectionType GetCrossSection( - Code, Code, corsika::units::si::HEPEnergyType, int Ap = 1) const; - - corsika::units::si::CrossSectionType GetTabulatedCrossSection( - Code, Code, corsika::units::si::HEPEnergyType) const; - - corsika::EProcessReturn DoInteraction(corsika::setup::StackView&); - - bool CanInteract(Code) const; - - private: - void readXSFile(std::string const&); - - corsika::random::RNG& rng_ = - corsika::random::RNGManager::GetInstance().GetRandomStream("urqmd"); - - std::uniform_int_distribution<int> booleanDist_{0, 1}; - boost::multi_array<corsika::units::si::CrossSectionType, 3> xs_interp_support_table_; - }; - - namespace details::constants { - // from coms.f - int constexpr nmax = 500; - - // from options.f - int constexpr numcto = 400; - int constexpr numctp = 400; - - // from inputs.f - int constexpr aamax = 300; - - } // namespace details::constants - - template <typename T> - using nmaxArray = std::array<T, details::constants::nmax>; - using nmaxIntArray = nmaxArray<int>; - using nmaxDoubleArray = nmaxArray<double>; - - extern "C" { - // FORTRAN functions defined in UrQMD - void iniurqmdc8_(); - double ranf_(int&); - void cascinit_(int const&, int const&, int const&); - double nucrad_(int const&); - void urqmd_(int&); - int pdgid_(int const&, int const&); - double sigtot_(int&, int&, double&); - int collclass_(int&, int&, int&, int&); - double crossx_(int const&, double const&, int const&, int const&, double const&, - int const&, int const&, double const&, double&); - int readsigmaln_(int const&, int const&, int const&); - - // defined in coms.f - extern struct { - int npart, nbar, nmes, ctag, nsteps, uid_cnt, ranseed, event; - int Ap; // projectile mass number (in case of nucleus) - int At; // target mass number (in case of nucleus) - int Zp; // projectile charge number (in case of nucleus) - int Zt; // target charge number (in case of nucleus) - int eos, dectag, NHardRes, NSoftRes, NDecRes, NElColl, NBlColl; - } sys_; - - extern struct { - double time, acttime, bdist, bimp, bmin; - double ebeam; // lab-frame energy of projectile - double ecm; - } rsys_; - - // defined in coms.f - extern struct { - nmaxIntArray spin, ncoll, charge, ityp, lstcoll, iso3, origin, strid, uid; - } isys_; - - // defined in coor.f - extern struct { - nmaxDoubleArray r0, rx, ry, rz, p0, px, py, pz, fmass, rww, dectime; - } coor_; - - // defined in inputs.f - extern struct { - int nevents; - std::array<int, 2> spityp; // particle codes of: [0]: projectile, [1]: target - int prspflg; // projectile special flag - int trspflg; // target special flag, set to 1 unless target is nucleus > H - std::array<int, 2> spiso3; // particle codes of: [0]: projectile, [1]: target - int outsteps, bflag, srtflag, efuncflag, nsrt, npb, firstev; - } inputs_; - - // defined in inputs.f - extern struct { - double srtmin, srtmax, pbeam, betann, betatar, betapro, pbmin, pbmax; - } input2_; - - // defined in options.f - extern struct { - std::array<double, details::constants::numcto> CTOption; - std::array<double, details::constants::numctp> CTParam; - } options_; - - extern struct { - int fixedseed, bf13, bf14, bf15, bf16, bf17, bf18, bf19, bf20; - } loptions_; - - // defined in urqmdInterface.F - extern struct { std::array<double, 3> xs, bim; } cxs_u2_; - } - - /** - * convert CORSIKA code to UrQMD code tuple - * - * In the current implementation a detour via the PDG code is made. - */ - std::pair<int, int> ConvertToUrQMD(Code); - Code ConvertFromUrQMD(int vItyp, int vIso3); - -} // namespace corsika::UrQMD diff --git a/dependencies/urqmd/testUrQMD.cc b/dependencies/urqmd/testUrQMD.cc deleted file mode 100644 index 2fcb9b083110e6792eb042d9323ea6aef60386e0..0000000000000000000000000000000000000000 --- a/dependencies/urqmd/testUrQMD.cc +++ /dev/null @@ -1,222 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * 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. - */ - -#include <corsika/process/urqmd/UrQMD.h> -#include <corsika/framework/random/RNGManager.hpp> - -#include <corsika/framework/geometry/Point.h> -#include <corsika/framework/geometry/RootCoordinateSystem.h> -#include <corsika/framework/geometry/Vector.h> - -#include <corsika/units/PhysicalConstants.h> -#include <corsika/framework/core/PhysicalUnits.hpp> - -#include <corsika/utl/CorsikaFenv.h> - -#include <corsika/framework/coreParticleProperties.h> -#include <corsika/setup/SetupStack.hpp> -#include <corsika/setup/SetupTrajectory.hpp> - -#include <corsika/environment/Environment.h> -#include <corsika/environment/HomogeneousMedium.h> -#include <corsika/environment/NuclearComposition.h> - -#include <tuple> -#include <utility> - -#include <catch2/catch.hpp> - -using namespace corsika; -using namespace corsika::UrQMD; -using namespace corsika::units::si; - -template <typename TStackView> -auto sumCharge(TStackView const& view) { - int totalCharge = 0; - - for (auto const& p : view) { totalCharge += GetChargeNumber(p.GetPID()); } - - return totalCharge; -} - -template <typename TStackView> -auto sumMomentum(TStackView const& view, geometry::CoordinateSystem const& vCS) { - geometry::Vector<hepenergy_d> sum{vCS, 0_eV, 0_eV, 0_eV}; - - for (auto const& p : view) { sum += p.GetMomentum(); } - - return sum; -} - -auto setupEnvironment(Code vTargetCode) { - // setup environment, geometry - auto env = std::make_unique<environment::Environment<environment::IMediumModel>>(); - auto& universe = *(env->GetUniverse()); - const geometry::CoordinateSystem& cs = env->GetCoordinateSystem(); - - auto theMedium = - environment::Environment<environment::IMediumModel>::CreateNode<geometry::Sphere>( - geometry::Point{cs, 0_m, 0_m, 0_m}, - 1_km * std::numeric_limits<double>::infinity()); - - using MyHomogeneousModel = environment::HomogeneousMedium<environment::IMediumModel>; - theMedium->SetModelProperties<MyHomogeneousModel>( - 1_kg / (1_m * 1_m * 1_m), - environment::NuclearComposition(std::vector<Code>{vTargetCode}, - std::vector<float>{1.})); - - auto const* nodePtr = theMedium.get(); - universe.AddChild(std::move(theMedium)); - - return std::make_tuple(std::move(env), &cs, nodePtr); -} - -template <typename TNodeType> -auto setupStack(int vA, int vZ, HEPEnergyType vMomentum, TNodeType* vNodePtr, - geometry::CoordinateSystem const& cs) { - auto stack = std::make_unique<setup::Stack>(); - auto constexpr mN = corsika::units::constants::nucleonMass; - - geometry::Point const origin(cs, {0_m, 0_m, 0_m}); - corsika::stack::MomentumVector const pLab(cs, {vMomentum, 0_GeV, 0_GeV}); - - HEPEnergyType const E0 = sqrt(units::static_pow<2>(mN * vA) + pLab.squaredNorm()); - auto particle = stack->AddParticle( - std::tuple<Code, units::si::HEPEnergyType, corsika::stack::MomentumVector, - geometry::Point, units::si::TimeType, unsigned short, unsigned short>{ - Code::Nucleus, E0, pLab, origin, 0_ns, vA, vZ}); - - particle.SetNode(vNodePtr); - return std::make_tuple( - std::move(stack), std::make_unique<decltype(setup::StackView{particle})>(particle)); -} - -template <typename TNodeType> -auto setupStack(Code vProjectileType, HEPEnergyType vMomentum, TNodeType* vNodePtr, - geometry::CoordinateSystem const& cs) { - auto stack = std::make_unique<setup::Stack>(); - - geometry::Point const origin(cs, {0_m, 0_m, 0_m}); - corsika::stack::MomentumVector const pLab(cs, {vMomentum, 0_GeV, 0_GeV}); - - HEPEnergyType const E0 = - sqrt(units::static_pow<2>(GetMass(vProjectileType)) + pLab.squaredNorm()); - auto particle = stack->AddParticle( - std::tuple<Code, units::si::HEPEnergyType, corsika::stack::MomentumVector, - geometry::Point, units::si::TimeType>{vProjectileType, E0, pLab, origin, - 0_ns}); - - particle.SetNode(vNodePtr); - return std::make_tuple( - std::move(stack), std::make_unique<decltype(setup::StackView{particle})>(particle)); -} - -TEST_CASE("UrQMD") { - SECTION("conversion") { - REQUIRE_THROWS(process::UrQMD::ConvertFromUrQMD(106, 0)); - REQUIRE(process::UrQMD::ConvertFromUrQMD(101, 0) == Code::Pi0); - REQUIRE(process::UrQMD::ConvertToUrQMD(Code::PiPlus) == - std::make_pair<int, int>(101, 2)); - } - - feenableexcept(FE_INVALID); - corsika::random::RNGManager::GetInstance().RegisterRandomStream("urqmd"); - UrQMD urqmd; - - SECTION("interaction length") { - auto [env, csPtr, nodePtr] = setupEnvironment(Code::Nitrogen); - auto const& cs = *csPtr; - [[maybe_unused]] auto const& env_dummy = env; - [[maybe_unused]] auto const& node_dummy = nodePtr; - - Code validProjectileCodes[] = {Code::PiPlus, Code::PiMinus, Code::Proton, - Code::Neutron, Code::KPlus, Code::KMinus, - Code::K0, Code::K0Bar, Code::K0Long}; - - for (auto code : validProjectileCodes) { - auto [stack, view] = setupStack(code, 100_GeV, nodePtr, cs); - REQUIRE(stack->getEntries() == 1); - REQUIRE(view->getEntries() == 0); - - // simple check whether the cross-section is non-vanishing - // only nuclei with available tabluated data so far - REQUIRE(urqmd.GetInteractionLength(stack->GetNextParticle()) > 1_g / square(1_cm)); - } - } - - SECTION("nucleus projectile") { - auto [env, csPtr, nodePtr] = setupEnvironment(Code::Oxygen); - [[maybe_unused]] auto const& env_dummy = env; // against warnings - [[maybe_unused]] auto const& node_dummy = nodePtr; // against warnings - - unsigned short constexpr A = 14, Z = 7; - auto [stackPtr, secViewPtr] = setupStack(A, Z, 400_GeV, nodePtr, *csPtr); - REQUIRE(stackPtr->getEntries() == 1); - REQUIRE(secViewPtr->getEntries() == 0); - - // must be assigned to variable, cannot be used as rvalue?! - auto projectile = secViewPtr->GetProjectile(); - auto const projectileMomentum = projectile.GetMomentum(); - [[maybe_unused]] process::EProcessReturn const ret = urqmd.DoInteraction(*secViewPtr); - - REQUIRE(sumCharge(*secViewPtr) == Z + GetChargeNumber(Code::Oxygen)); - - auto const secMomSum = - sumMomentum(*secViewPtr, projectileMomentum.GetCoordinateSystem()); - REQUIRE((secMomSum - projectileMomentum).norm() / projectileMomentum.norm() == - Approx(0).margin(1e-2)); - } - - SECTION("\"special\" projectile") { - auto [env, csPtr, nodePtr] = setupEnvironment(Code::Oxygen); - [[maybe_unused]] auto const& env_dummy = env; // against warnings - [[maybe_unused]] auto const& node_dummy = nodePtr; // against warnings - - auto [stackPtr, secViewPtr] = setupStack(Code::PiPlus, 400_GeV, nodePtr, *csPtr); - REQUIRE(stackPtr->getEntries() == 1); - REQUIRE(secViewPtr->getEntries() == 0); - - // must be assigned to variable, cannot be used as rvalue?! - auto projectile = secViewPtr->GetProjectile(); - auto const projectileMomentum = projectile.GetMomentum(); - - [[maybe_unused]] process::EProcessReturn const ret = urqmd.DoInteraction(*secViewPtr); - - REQUIRE(sumCharge(*secViewPtr) == - GetChargeNumber(Code::PiPlus) + GetChargeNumber(Code::Oxygen)); - - auto const secMomSum = - sumMomentum(*secViewPtr, projectileMomentum.GetCoordinateSystem()); - REQUIRE((secMomSum - projectileMomentum).norm() / projectileMomentum.norm() == - Approx(0).margin(1e-2)); - } - - SECTION("K0Long projectile") { - auto [env, csPtr, nodePtr] = setupEnvironment(Code::Oxygen); - [[maybe_unused]] auto const& env_dummy = env; // against warnings - [[maybe_unused]] auto const& node_dummy = nodePtr; // against warnings - - auto [stackPtr, secViewPtr] = setupStack(Code::K0Long, 400_GeV, nodePtr, *csPtr); - REQUIRE(stackPtr->getEntries() == 1); - REQUIRE(secViewPtr->getEntries() == 0); - - // must be assigned to variable, cannot be used as rvalue?! - auto projectile = secViewPtr->GetProjectile(); - auto const projectileMomentum = projectile.GetMomentum(); - - [[maybe_unused]] process::EProcessReturn const ret = urqmd.DoInteraction(*secViewPtr); - - REQUIRE(sumCharge(*secViewPtr) == - GetChargeNumber(Code::K0Long) + GetChargeNumber(Code::Oxygen)); - - auto const secMomSum = - sumMomentum(*secViewPtr, projectileMomentum.GetCoordinateSystem()); - REQUIRE((secMomSum - projectileMomentum).norm() / projectileMomentum.norm() == - Approx(0).margin(1e-2)); - } -} diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index adbbca31ce43a2a4cfcca7808f9930d6cbbe1b27..029679c9847386ccef17eaa63964bc309d57f144 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,195 +1,30 @@ +add_executable (helix_example helix_example.cpp) +target_link_libraries (helix_example CORSIKA8) -CORSIKA_ADD_EXAMPLE (helix_example) -target_link_libraries (helix_example CORSIKAgeometry CORSIKAunits) +add_executable (geometry_example geometry_example.cpp) +target_link_libraries (geometry_example CORSIKA8) -CORSIKA_ADD_EXAMPLE (particle_list_example) -target_link_libraries (particle_list_example CORSIKAparticles CORSIKAunits CORSIKAprocesses ProcessSibyll ProcessQGSJetII) +# loggin back in March was not used +#add_executable (logger_example logger_example.cpp) +#target_link_libraries (logger_example CORSIKA8) -CORSIKA_ADD_EXAMPLE (geometry_example) -target_link_libraries (geometry_example CORSIKAgeometry CORSIKAunits) +add_executable (stack_example stack_example.cpp) +target_link_libraries (stack_example CORSIKA8) -CORSIKA_ADD_EXAMPLE (stack_example) -target_link_libraries (stack_example CORSIKAsetup CORSIKAunits) +add_executable (cascade_example cascade_example.cpp) +target_link_libraries (cascade_example CORSIKA8) -# address sanitizer is making this example too slow, so we only do "undefined" -CORSIKA_ADD_EXAMPLE (boundary_example) -target_link_libraries (boundary_example - CORSIKAsetup - CORSIKAunits - CORSIKAlogging - CORSIKArandom - ProcessSibyll - CORSIKAcascade - ProcessTrackWriter - ProcessParticleCut - ProcessTrackingLine - ProcessPythia8 - CORSIKAprocesses - CORSIKAparticles - CORSIKAgeometry - CORSIKAenvironment - CORSIKAprocesssequence - C8::ext::boost # boost::histogram - ) +add_executable (boundary_example boundary_example.cpp) +target_link_libraries (boundary_example CORSIKA8) -CORSIKA_ADD_EXAMPLE (cascade_example) -target_link_libraries (cascade_example - CORSIKAsetup - CORSIKAunits - CORSIKAlogging - CORSIKArandom - ProcessSibyll - ProcessProposal - CORSIKAcascade - ProcessEnergyLoss - ProcessTrackWriter - ProcessStackInspector - ProcessTrackingLine - ProcessParticleCut - ProcessHadronicElasticModel - ProcessStackInspector - CORSIKAprocesses - CORSIKAcascade - CORSIKAparticles - CORSIKAgeometry - CORSIKAenvironment - CORSIKAprocesssequence - ) +add_executable (cascade_proton_example cascade_proton_example.cpp) +target_link_libraries (cascade_proton_example CORSIKA8) -if (Pythia8_FOUND) - CORSIKA_ADD_EXAMPLE (cascade_proton_example) - target_link_libraries (cascade_proton_example - CORSIKAsetup - CORSIKAunits - CORSIKAlogging - CORSIKArandom - ProcessSibyll - ProcessPythia8 - ProcessUrQMD - CORSIKAcascade - ProcessEnergyLoss - ProcessTrackWriter - ProcessStackInspector - ProcessTrackingLine - ProcessParticleCut - ProcessOnShellCheck - ProcessHadronicElasticModel - ProcessStackInspector - CORSIKAprocesses - CORSIKAcascade - CORSIKAparticles - CORSIKAgeometry - CORSIKAenvironment - CORSIKAprocesssequence - ) +add_executable (vertical_EAS vertical_EAS.cpp) +target_link_libraries (vertical_EAS CORSIKA8) - CORSIKA_ADD_EXAMPLE (vertical_EAS RUN_OPTIONS 4 2 10000.) - target_link_libraries (vertical_EAS - CORSIKAsetup - CORSIKAunits - CORSIKAlogging - CORSIKArandom - CORSIKAhistory - ProcessSibyll - ProcessPythia8 - ProcessUrQMD - CORSIKAcascade - ProcessProposal - ProcessPythia8 - ProcessObservationPlane - ProcessInteractionCounter - ProcessTrackWriter - ProcessEnergyLoss - ProcessTrackingLine - ProcessParticleCut - ProcessOnShellCheck - ProcessStackInspector - ProcessLongitudinalProfile - CORSIKAprocesses - CORSIKAcascade - CORSIKAparticles - CORSIKAgeometry - CORSIKAenvironment - CORSIKAprocesssequence - CORSIKAhistory # for HistoryObservationPlane - ) +add_executable (stopping_power stopping_power.cpp) +target_link_libraries (stopping_power CORSIKA8) - CORSIKA_ADD_EXAMPLE (hybrid_MC RUN_OPTIONS 4 2 10000.) - target_link_libraries (hybrid_MC - CORSIKAsetup - CORSIKAunits - CORSIKAlogging - CORSIKArandom - CORSIKAhistory - ProcessCONEXSourceCut - ProcessInteractionCounter - ProcessSibyll - ProcessPythia8 - ProcessUrQMD - CORSIKAcascade - ProcessPythia8 - ProcessObservationPlane - ProcessInteractionCounter - ProcessTrackWriter - ProcessEnergyLoss - ProcessTrackingLine - ProcessParticleCut - ProcessOnShellCheck - ProcessStackInspector - ProcessLongitudinalProfile - CORSIKAprocesses - CORSIKAcascade - CORSIKAparticles - CORSIKAgeometry - CORSIKAenvironment - CORSIKAprocesssequence - CORSIKAhistory # for HistoryObservationPlane - ) -endif() - -CORSIKA_ADD_EXAMPLE (stopping_power stopping_power) -target_link_libraries (stopping_power - CORSIKAsetup - CORSIKAunits - CORSIKAlogging - ProcessEnergyLoss - CORSIKAparticles - CORSIKAgeometry - CORSIKAenvironment - ) - -CORSIKA_ADD_EXAMPLE (staticsequence_example) -target_link_libraries (staticsequence_example - CORSIKAprocesssequence - CORSIKAunits - CORSIKAgeometry - CORSIKAlogging) - - -CORSIKA_ADD_EXAMPLE (em_shower RUN_OPTIONS "100.") -target_link_libraries (em_shower - SuperStupidStack - CORSIKAunits - CORSIKAlogging - CORSIKArandom - ProcessSibyll - ProcessPythia8 - ProcessUrQMD - CORSIKAcascade - ProcessEnergyLoss - ProcessObservationPlane - ProcessInteractionCounter - ProcessTrackWriter - ProcessProposal - ProcessTrackingLine - ProcessParticleCut - ProcessOnShellCheck - ProcessStackInspector - ProcessLongitudinalProfile - CORSIKAprocesses - CORSIKAcascade - CORSIKAparticles - CORSIKAgeometry - CORSIKAenvironment - CORSIKAprocesssequence - ) +add_executable (staticsequence_example staticsequence_example.cpp) +target_link_libraries (staticsequence_example CORSIKA8) diff --git a/examples/boundary_example.cpp b/examples/boundary_example.cpp new file mode 100644 index 0000000000000000000000000000000000000000..630d63f609b42ccebeab3f729a07897c4a62cc33 --- /dev/null +++ b/examples/boundary_example.cpp @@ -0,0 +1,167 @@ +/* + * (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. + */ + +#include <corsika/framework/core/Cascade.hpp> +#include <corsika/framework/core/PhysicalUnits.hpp> + +#include <corsika/framework/sequence/ProcessSequence.hpp> +#include <corsika/framework/random/RNGManager.hpp> +#include <corsika/framework/geometry/Sphere.hpp> +#include <corsika/framework/utility/CorsikaFenv.hpp> + +#include <corsika/setup/SetupEnvironment.hpp> +#include <corsika/setup/SetupStack.hpp> +#include <corsika/setup/SetupTrajectory.hpp> + +#include <corsika/media/Environment.hpp> +#include <corsika/media/HomogeneousMedium.hpp> +#include <corsika/media/NuclearComposition.hpp> + +#include <corsika/modules/tracking_line/TrackingLine.hpp> +#include <corsika/modules/sibyll/Decay.hpp> +#include <corsika/modules/sibyll/Interaction.hpp> +#include <corsika/modules/sibyll/NuclearInteraction.hpp> +#include <corsika/modules/track_writer/TrackWriter.hpp> +#include <corsika/modules/particle_cut/ParticleCut.hpp> + +#include <iostream> +#include <limits> +#include <typeinfo> + +using namespace corsika; +using namespace corsika::units::si; +using namespace std; + +template <bool deleteParticle> +struct MyBoundaryCrossingProcess + : public BoundaryCrossingProcess<MyBoundaryCrossingProcess<deleteParticle>> { + + MyBoundaryCrossingProcess(std::string const& filename) { fFile.open(filename); } + + template <typename Particle> + EProcessReturn DoBoundaryCrossing(Particle& p, + typename Particle::BaseNodeType const& from, + typename Particle::BaseNodeType const& to) { + std::cout << "boundary crossing! from: " << &from << "; to: " << &to << std::endl; + + auto const& name = corsika::GetName(p.GetPID()); + auto const start = p.GetPosition().GetCoordinates(); + + fFile << name << " " << start[0] / 1_m << ' ' << start[1] / 1_m << ' ' + << start[2] / 1_m << '\n'; + + if constexpr (deleteParticle) { p.Delete(); } + + return EProcessReturn::eOk; + } + + void Init() {} + +private: + std::ofstream fFile; +}; + +// +// The example main program for a particle cascade +// +int main() { + feenableexcept(FE_INVALID); + // initialize random number sequence(s) + corsika::RNGManager::GetInstance().RegisterRandomStream("cascade"); + + // setup environment, geometry + using EnvType = Environment<setup::IEnvironmentModel>; + EnvType env; + auto& universe = *(env.GetUniverse()); + + const CoordinateSystem& rootCS = env.GetCoordinateSystem(); + + auto outerMedium = EnvType::CreateNode<Sphere>( + Point{rootCS, 0_m, 0_m, 0_m}, 1_km * std::numeric_limits<double>::infinity()); + + auto const props = + outerMedium + ->SetModelProperties<corsika::HomogeneousMedium<setup::IEnvironmentModel>>( + 1_kg / (1_m * 1_m * 1_m), + corsika::NuclearComposition( + std::vector<corsika::Code>{corsika::Code::Proton}, + std::vector<float>{1.f})); + + auto innerMedium = EnvType::CreateNode<Sphere>(Point{rootCS, 0_m, 0_m, 0_m}, 5_km); + + innerMedium->SetModelProperties(props); + + outerMedium->AddChild(std::move(innerMedium)); + + universe.AddChild(std::move(outerMedium)); + + // setup processes, decays and interactions + tracking_line::TrackingLine tracking; + + RNGManager::GetInstance().RegisterRandomStream("s_rndm"); + corsika::sibyll::Interaction sibyll; + corsika::sibyll::Decay decay; + + corsika::particle_cut::ParticleCut cut(20_GeV); + + corsika::track_writer::TrackWriter trackWriter("tracks.dat"); + MyBoundaryCrossingProcess<true> boundaryCrossing("crossings.dat"); + + // assemble all processes into an ordered process list + auto sequence = sibyll << decay << cut << boundaryCrossing << trackWriter; + + // setup particle stack, and add primary particles + setup::Stack stack; + stack.Clear(); + const Code beamCode = Code::Proton; + const HEPMassType mass = corsika::GetMass(Code::Proton); + const HEPEnergyType E0 = 50_TeV; + + std::uniform_real_distribution distTheta(0., 180.); + std::uniform_real_distribution distPhi(0., 360.); + std::mt19937 rng; + + for (int i = 0; i < 100; ++i) { + auto const theta = distTheta(rng); + auto const phi = distPhi(rng); + + auto elab2plab = [](HEPEnergyType Elab, HEPMassType m) { + return sqrt((Elab - m) * (Elab + m)); + }; + HEPMomentumType P0 = elab2plab(E0, mass); + auto momentumComponents = [](double theta, double phi, HEPMomentumType ptot) { + return std::make_tuple(ptot * sin(theta) * cos(phi), ptot * sin(theta) * sin(phi), + -ptot * cos(theta)); + }; + auto const [px, py, pz] = + momentumComponents(theta / 180. * M_PI, phi / 180. * M_PI, P0); + auto plab = corsika::MomentumVector(rootCS, {px, py, pz}); + cout << "input particle: " << beamCode << endl; + cout << "input angles: theta=" << theta << " phi=" << phi << endl; + cout << "input momentum: " << plab.GetComponents() / 1_GeV << endl; + Point pos(rootCS, 0_m, 0_m, 0_m); + stack.AddParticle( + std::tuple<corsika::Code, units::si::HEPEnergyType, + corsika::MomentumVector, corsika::Point, units::si::TimeType>{ + beamCode, E0, plab, pos, 0_ns}); + } + + // define air shower object, run simulation + corsika::Cascade EAS(env, tracking, sequence, stack); + EAS.Init(); + EAS.Run(); + + cout << "Result: E0=" << E0 / 1_GeV << endl; + cut.ShowResults(); + const HEPEnergyType Efinal = + cut.GetCutEnergy() + cut.GetInvEnergy() + cut.GetEmEnergy(); + cout << "total energy (GeV): " << Efinal / 1_GeV << endl + << "relative difference (%): " << (Efinal / E0 - 1.) * 100 << endl; +} diff --git a/examples/cascade_example.cpp b/examples/cascade_example.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d5f0bb76063cb1459e1832ce37f9e968dca8951d --- /dev/null +++ b/examples/cascade_example.cpp @@ -0,0 +1,153 @@ +/* + * (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. + */ + +#include <corsika/framework/core/Cascade.hpp> +#include <corsika/framework/core/PhysicalUnits.hpp> +#include <corsika/framework/geometry/Sphere.hpp> +#include <corsika/framework/random/RNGManager.hpp> +#include <corsika/framework/sequence/ProcessSequence.hpp> +#include <corsika/framework/utility/CorsikaFenv.hpp> + +#include <corsika/modules/energy_loss/EnergyLoss.hpp> +#include <corsika/modules/particle_cut/ParticleCut.hpp> +#include <corsika/modules/sibyll/Decay.hpp> +#include <corsika/modules/sibyll/Interaction.hpp> +#include <corsika/modules/sibyll/NuclearInteraction.hpp> +#include <corsika/modules/stack_inspector/StackInspector.hpp> +#include <corsika/modules/track_writer/TrackWriter.hpp> +#include <corsika/modules/tracking_line/TrackingLine.hpp> + +#include <corsika/setup/SetupEnvironment.hpp> +#include <corsika/setup/SetupStack.hpp> +#include <corsika/setup/SetupTrajectory.hpp> + +#include <corsika/media/Environment.hpp> +#include <corsika/media/HomogeneousMedium.hpp> +#include <corsika/media/NuclearComposition.hpp> + +#include <iostream> +#include <limits> + +using namespace corsika; +using namespace corsika::units::si; +using namespace corsika::setup; +using namespace std; + +// +// The example main program for a particle cascade +// +int main() { + + const LengthType height_atmosphere = 112.8_km; + + feenableexcept(FE_INVALID); + // initialize random number sequence(s) + corsika::RNGManager::GetInstance().RegisterRandomStream("cascade"); + + // setup environment, geometry + using EnvType = corsika::Environment<setup::IEnvironmentModel>; + EnvType env; + auto& universe = *(env.GetUniverse()); + + const CoordinateSystem& rootCS = env.GetCoordinateSystem(); + + auto outerMedium = EnvType::CreateNode<Sphere>( + Point{rootCS, 0_m, 0_m, 0_m}, 1_km * std::numeric_limits<double>::infinity()); + + // fraction of oxygen + const float fox = 0.20946; + auto const props = + outerMedium + ->SetModelProperties<corsika::HomogeneousMedium<setup::IEnvironmentModel>>( + 1_kg / (1_m * 1_m * 1_m), + corsika::NuclearComposition( + std::vector<corsika::Code>{corsika::Code::Nitrogen, + corsika::Code::Oxygen}, + std::vector<float>{1.f - fox, fox})); + + auto innerMedium = EnvType::CreateNode<Sphere>(Point{rootCS, 0_m, 0_m, 0_m}, 5000_m); + + innerMedium->SetModelProperties(props); + + outerMedium->AddChild(std::move(innerMedium)); + + universe.AddChild(std::move(outerMedium)); + + // setup particle stack, and add primary particle + setup::Stack stack; + stack.Clear(); + const Code beamCode = Code::Nucleus; + const int nuclA = 4; + const int nuclZ = int(nuclA / 2.15 + 0.7); + const HEPMassType mass = GetNucleusMass(nuclA, nuclZ); + const HEPEnergyType E0 = nuclA * 1_TeV; + double theta = 0.; + double phi = 0.; + + Point const injectionPos( + rootCS, 0_m, 0_m, + height_atmosphere); // this is the CORSIKA 7 start of atmosphere/universe + + { + auto elab2plab = [](HEPEnergyType Elab, HEPMassType m) { + return sqrt((Elab - m) * (Elab + m)); + }; + HEPMomentumType P0 = elab2plab(E0, mass); + auto momentumComponents = [](double theta, double phi, HEPMomentumType ptot) { + return std::make_tuple(ptot * sin(theta) * cos(phi), ptot * sin(theta) * sin(phi), + -ptot * cos(theta)); + }; + auto const [px, py, pz] = + momentumComponents(theta / 180. * M_PI, phi / 180. * M_PI, P0); + auto plab = corsika::MomentumVector(rootCS, {px, py, pz}); + cout << "input particle: " << beamCode << endl; + cout << "input angles: theta=" << theta << " phi=" << phi << endl; + cout << "input momentum: " << plab.GetComponents() / 1_GeV << endl; + stack.AddParticle( + std::tuple<corsika::Code, units::si::HEPEnergyType, corsika::MomentumVector, + corsika::Point, units::si::TimeType, unsigned short, unsigned short>{ + beamCode, E0, plab, injectionPos, 0_ns, nuclA, nuclZ}); + } + + // setup processes, decays and interactions + tracking_line::TrackingLine tracking; + stack_inspector::StackInspector<setup::Stack> stackInspect(1, true, E0); + + corsika::RNGManager::GetInstance().RegisterRandomStream("s_rndm"); + corsika::RNGManager::GetInstance().RegisterRandomStream("pythia"); + corsika::sibyll::Interaction sibyll; + corsika::sibyll::NuclearInteraction sibyllNuc(sibyll, env); + corsika::sibyll::Decay decay; + // cascade with only HE model ==> HE cut + corsika::particle_cut::ParticleCut cut(80_GeV); + + corsika::track_writer::TrackWriter trackWriter("tracks.dat"); + corsika::energy_loss::EnergyLoss eLoss( + injectionPos, corsika::Vector<dimensionless_d>(rootCS, {0, 0, -1})); + + // assemble all processes into an ordered process list + auto sequence = stackInspect << sibyll << sibyllNuc << decay << eLoss << cut + << trackWriter; + + // define air shower object, run simulation + corsika::Cascade EAS(env, tracking, sequence, stack); + EAS.Init(); + EAS.Run(); + + eLoss.PrintProfile(); // print longitudinal profile + + cut.ShowResults(); + const HEPEnergyType Efinal = + cut.GetCutEnergy() + cut.GetInvEnergy() + cut.GetEmEnergy(); + cout << "total cut energy (GeV): " << Efinal / 1_GeV << endl + << "relative difference (%): " << (Efinal / E0 - 1) * 100 << endl; + cout << "total dEdX energy (GeV): " << eLoss.GetTotal() / 1_GeV << endl + << "relative difference (%): " << eLoss.GetTotal() / E0 * 100 << endl; +} diff --git a/examples/cascade_proton_example.cpp b/examples/cascade_proton_example.cpp new file mode 100644 index 0000000000000000000000000000000000000000..fc6c09c8f4fcad5ed5fee8524adc9c3a3403efd4 --- /dev/null +++ b/examples/cascade_proton_example.cpp @@ -0,0 +1,145 @@ +/* + * (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. + */ + +#include <corsika/framework/core/Cascade.hpp> +#include <corsika/framework/core/PhysicalUnits.hpp> +#include <corsika/framework/geometry/Sphere.hpp> +#include <corsika/framework/random/RNGManager.hpp> +#include <corsika/framework/sequence/ProcessSequence.hpp> +#include <corsika/framework/utility/CorsikaFenv.hpp> + +#include <corsika/modules/energy_loss/EnergyLoss.hpp> +#include <corsika/modules/particle_cut/ParticleCut.hpp> +#include <corsika/modules/sibyll/Decay.hpp> +#include <corsika/modules/sibyll/Interaction.hpp> +#include <corsika/modules/sibyll/NuclearInteraction.hpp> +#include <corsika/modules/stack_inspector/StackInspector.hpp> +#include <corsika/modules/track_writer/TrackWriter.hpp> +#include <corsika/modules/tracking_line/TrackingLine.hpp> +#include <corsika/modules/pythia8/Interaction.hpp> +#include <corsika/modules/pythia8/Decay.hpp> + +#include <corsika/setup/SetupEnvironment.hpp> +#include <corsika/setup/SetupStack.hpp> +#include <corsika/setup/SetupTrajectory.hpp> + +#include <corsika/media/Environment.hpp> +#include <corsika/media/HomogeneousMedium.hpp> +#include <corsika/media/NuclearComposition.hpp> + +#include <iostream> +#include <limits> +#include <typeinfo> + +using namespace corsika; +using namespace corsika::setup; +using namespace corsika::units::si; +using namespace std; + +// +// The example main program for a particle cascade +// +int main() { + feenableexcept(FE_INVALID); + // initialize random number sequence(s) + corsika::RNGManager::GetInstance().RegisterRandomStream("cascade"); + + // setup environment, geometry + using EnvType = Environment<setup::IEnvironmentModel>; + EnvType env; + auto& universe = *(env.GetUniverse()); + + auto theMedium = + EnvType::CreateNode<Sphere>(Point{env.GetCoordinateSystem(), 0_m, 0_m, 0_m}, + 1_km * std::numeric_limits<double>::infinity()); + + using MyHomogeneousModel = HomogeneousMedium<IMediumModel>; + theMedium->SetModelProperties<MyHomogeneousModel>( + 1_kg / (1_m * 1_m * 1_m), + NuclearComposition(std::vector<corsika::Code>{corsika::Code::Hydrogen}, + std::vector<float>{(float)1.})); + + universe.AddChild(std::move(theMedium)); + + const CoordinateSystem& rootCS = env.GetCoordinateSystem(); + + // setup particle stack, and add primary particle + setup::Stack stack; + stack.Clear(); + const Code beamCode = Code::Proton; + const HEPMassType mass = corsika::Proton::GetMass(); + const HEPEnergyType E0 = 100_GeV; + double theta = 0.; + double phi = 0.; + + { + auto elab2plab = [](HEPEnergyType Elab, HEPMassType m) { + return sqrt(Elab * Elab - m * m); + }; + HEPMomentumType P0 = elab2plab(E0, mass); + auto momentumComponents = [](double theta, double phi, HEPMomentumType ptot) { + return std::make_tuple(ptot * sin(theta) * cos(phi), ptot * sin(theta) * sin(phi), + -ptot * cos(theta)); + }; + auto const [px, py, pz] = + momentumComponents(theta / 180. * M_PI, phi / 180. * M_PI, P0); + auto plab = corsika::MomentumVector(rootCS, {px, py, pz}); + cout << "input particle: " << beamCode << endl; + cout << "input angles: theta=" << theta << " phi=" << phi << endl; + cout << "input momentum: " << plab.GetComponents() / 1_GeV << endl; + Point pos(rootCS, 0_m, 0_m, 0_m); + stack.AddParticle( + std::tuple<corsika::Code, units::si::HEPEnergyType, + corsika::MomentumVector, corsika::Point, units::si::TimeType>{ + beamCode, E0, plab, pos, 0_ns}); + } + + // setup processes, decays and interactions + tracking_line::TrackingLine tracking; + stack_inspector::StackInspector<setup::Stack> stackInspect(1, true, E0); + + const std::vector<corsika::Code> trackedHadrons = { + corsika::Code::PiPlus, corsika::Code::PiMinus, corsika::Code::KPlus, + corsika::Code::KMinus, corsika::Code::K0Long, corsika::Code::K0Short}; + + corsika::RNGManager::GetInstance().RegisterRandomStream("s_rndm"); + corsika::RNGManager::GetInstance().RegisterRandomStream("pythia"); + // corsika::sibyll::Interaction sibyll(env); + corsika::pythia8::Interaction pythia; + // corsika::sibyll::NuclearInteraction sibyllNuc(env, sibyll); + // corsika::sibyll::Decay decay(trackedHadrons); + corsika::pythia8::Decay decay(trackedHadrons); + corsika::particle_cut::ParticleCut cut(20_GeV); + + // corsika::RNGManager::GetInstance().RegisterRandomStream("HadronicElasticModel"); + // corsika::HadronicElasticModel::HadronicElasticInteraction + // hadronicElastic(env); + + corsika::track_writer::TrackWriter trackWriter("tracks.dat"); + + // assemble all processes into an ordered process list + // auto sequence = sibyll << decay << hadronicElastic << cut << trackWriter; + auto sequence = pythia << decay << cut << trackWriter << stackInspect; + + // cout << "decltype(sequence)=" << type_id_with_cvr<decltype(sequence)>().pretty_name() + // << "\n"; + + // define air shower object, run simulation + corsika::Cascade EAS(env, tracking, sequence, stack); + EAS.Init(); + EAS.Run(); + + cout << "Result: E0=" << E0 / 1_GeV << endl; + cut.ShowResults(); + const HEPEnergyType Efinal = + cut.GetCutEnergy() + cut.GetInvEnergy() + cut.GetEmEnergy(); + cout << "total energy (GeV): " << Efinal / 1_GeV << endl + << "relative difference (%): " << (Efinal / E0 - 1.) * 100 << endl; +} diff --git a/examples/geometry_example.cpp b/examples/geometry_example.cpp index 751ac316ea6901aee247e24ad93a379051d959ad..144a4fc7557dfdcd9b3efbf88c218f8654ccbbea 100644 --- a/examples/geometry_example.cpp +++ b/examples/geometry_example.cpp @@ -6,17 +6,16 @@ * the license. */ -#include <corsika/framework/core/PhysicalUnits.hpp> #include <corsika/framework/geometry/Point.hpp> #include <corsika/framework/geometry/RootCoordinateSystem.hpp> #include <corsika/framework/geometry/Sphere.hpp> #include <corsika/framework/geometry/Vector.hpp> +#include <corsika/framework/core/PhysicalUnits.hpp> #include <cstdlib> #include <iostream> #include <typeinfo> -using namespace corsika; using namespace corsika; using namespace corsika::units::si; @@ -25,8 +24,8 @@ int main() { std::cout << "geometry_example" << std::endl; // define the root coordinate system - geometry::CoordinateSystem& root = - geometry::RootCoordinateSystem::GetInstance().GetRootCoordinateSystem(); + corsika::CoordinateSystem& root = + corsika::RootCoordinateSystem::GetInstance().GetRootCoordinateSystem(); // another CS defined by a translation relative to the root CS CoordinateSystem cs2 = root.translate({0_m, 0_m, 1_m}); diff --git a/examples/helix_example.cpp b/examples/helix_example.cpp index b4525257407c17e2ff9e4cb35e1487053e2ab60c..9498f5c40ae20c9e473a47eae79fc62501c43bb2 100644 --- a/examples/helix_example.cpp +++ b/examples/helix_example.cpp @@ -6,25 +6,22 @@ * the license. */ -#include <array> -#include <corsika/framework/core/PhysicalUnits.hpp> #include <corsika/framework/geometry/Helix.hpp> #include <corsika/framework/geometry/Point.hpp> #include <corsika/framework/geometry/RootCoordinateSystem.hpp> #include <corsika/framework/geometry/Vector.hpp> +#include <corsika/framework/core/PhysicalUnits.hpp> + +#include <array> #include <cstdlib> #include <iostream> -using namespace corsika; using namespace corsika; using namespace corsika::units::si; int main() { - - std::cout << "helix_example" << std::endl; - - geometry::CoordinateSystem& root = - geometry::RootCoordinateSystem::GetInstance().GetRootCoordinateSystem(); + corsika::CoordinateSystem& root = + corsika::RootCoordinateSystem::GetInstance().GetRootCoordinateSystem(); Point const r0(root, {0_m, 0_m, 0_m}); auto const omegaC = 2 * M_PI * 1_Hz; diff --git a/examples/logger_example.cpp b/examples/logger_example.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ce53b3a67aac4a85d8bc2d21ae63a5aba8f2f0d8 --- /dev/null +++ b/examples/logger_example.cpp @@ -0,0 +1,56 @@ +/* + * (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. + */ + +#include <corsika/logging/Logger.h> +#include <boost/format.hpp> +#include <fstream> +#include <iostream> +#include <string> + +using namespace std; +using namespace corsika::logging; + +int main() { + { + cout << "writing to \"another.log\"" << endl; + ofstream logfile("another.log"); + sink::SinkStream unbuffered_sink(logfile); + sink::BufferedSinkStream sink(logfile, sink::StdBuffer(10000)); + Logger<MessageOn, sink::BufferedSinkStream> info("\033[32m", "info", sink); + Logger<MessageOn, sink::BufferedSinkStream> err("\033[31m", "error", sink); + // logger<ostream,messageconst,StdBuffer> info(std::cout, StdBuffer(10000)); + + /* + Logging& logs = Logging::GetInstance(); + logs.AddLogger<>("info", info); + auto& log_1 = logs.GetLogger("info"); // no so useful, since type of log_1 is + std::any + */ + + for (int i = 0; i < 10000; ++i) { + LOG(info, "irgendwas", " ", string("and more"), " ", + boost::format("error: %i message: %s. done."), i, "stupido"); + LOG(err, "Fehler"); + } + } + + { + sink::NoSink off; + Logger<MessageOff> info("", "", off); + + for (int i = 0; i < 10000; ++i) { + LOG(info, "irgendwas", string("and more"), + boost::format("error: %i message: %s. done."), i, "stupido", "a-number:", 8.99, + "ENDE"); + } + } + + return 0; +} diff --git a/examples/stack_example.cpp b/examples/stack_example.cpp index f4966c283c7f600e3c6b3c8ea0c6f85af7ee91d0..45d0cb3842dae39ec1cb11b28bb439db9c2c49a8 100644 --- a/examples/stack_example.cpp +++ b/examples/stack_example.cpp @@ -6,8 +6,8 @@ * the license. */ -#include <corsika/stack/super_stupid/SuperStupidStack.h> #include <corsika/framework/core/ParticleProperties.hpp> +#include <corsika/stack/SuperStupidStack.hpp> #include <corsika/framework/geometry/Point.hpp> #include <corsika/framework/geometry/RootCoordinateSystem.hpp> @@ -18,19 +18,18 @@ using namespace corsika; using namespace corsika::units::si; -using namespace corsika; -using namespace corsika; using namespace std; void fill(corsika::super_stupid::SuperStupidStack& s) { - const geometry::CoordinateSystem& rootCS = - geometry::RootCoordinateSystem::GetInstance().GetRootCoordinateSystem(); + const corsika::CoordinateSystem& rootCS = + corsika::RootCoordinateSystem::GetInstance().GetRootCoordinateSystem(); for (int i = 0; i < 11; ++i) { - s.AddParticle(std::tuple<Code, units::si::HEPEnergyType, corsika::MomentumVector, - geometry::Point, units::si::TimeType>{ - Code::Electron, 1.5_GeV * i, - corsika::MomentumVector(rootCS, {0_GeV, 0_GeV, 1_GeV}), - geometry::Point(rootCS, 0_m, 0_m, 0_m), 0_ns}); + s.AddParticle( + std::tuple<corsika::Code, units::si::HEPEnergyType, + corsika::MomentumVector, corsika::Point, units::si::TimeType>{ + corsika::Code::Electron, 1.5_GeV * i, + corsika::MomentumVector(rootCS, {0_GeV, 0_GeV, 1_GeV}), + corsika::Point(rootCS, 0_m, 0_m, 0_m), 0_ns}); } } @@ -38,11 +37,10 @@ void read(corsika::super_stupid::SuperStupidStack& s) { assert(s.GetSize() == 11); // stack has 11 particles HEPEnergyType total_energy; - int i = 0; for (auto& p : s) { total_energy += p.GetEnergy(); // particles are electrons with 1.5 GeV energy times i - assert(p.GetPID() == Code::Electron); + assert(p.GetPID() == particles::Code::Electron); assert(p.GetEnergy() == 1.5_GeV * (i++)); } } diff --git a/examples/staticsequence_example.cpp b/examples/staticsequence_example.cpp index ffeed210c8a1a0a63e5d0c435cbe6c22ba616687..8458bdd7b37908bd587feeda4324ce6966f32394 100644 --- a/examples/staticsequence_example.cpp +++ b/examples/staticsequence_example.cpp @@ -6,19 +6,18 @@ * the license. */ -#include <array> -#include <iomanip> -#include <iostream> - #include <corsika/framework/sequence/ProcessSequence.hpp> #include <corsika/framework/geometry/Point.hpp> #include <corsika/framework/geometry/RootCoordinateSystem.hpp> #include <corsika/framework/geometry/Vector.hpp> +#include <array> +#include <iomanip> +#include <iostream> + using namespace corsika; using namespace corsika::units::si; -using namespace corsika; using namespace std; const int nData = 10; diff --git a/examples/stopping_power.cpp b/examples/stopping_power.cpp new file mode 100644 index 0000000000000000000000000000000000000000..75f5665d6aa9a0e817f0337ab108521c9247e20d --- /dev/null +++ b/examples/stopping_power.cpp @@ -0,0 +1,85 @@ +/* + * (c) Copyright 2019 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. + */ + +#include <corsika/media/Environment.hpp> + +#include <corsika/framework/geometry/Sphere.hpp> +#include <corsika/framework/core/PhysicalUnits.hpp> +#include <corsika/framework/utility/CorsikaFenv.hpp> + +#include <corsika/modules/energy_loss/EnergyLoss.hpp> + +#include <corsika/setup/SetupStack.hpp> + +#include <fstream> +#include <iostream> +#include <limits> + +using namespace corsika; +using namespace corsika::units::si; +using namespace std; + +// +// This example demonstrates the energy loss of muons as function of beta*gamma (=p/m) +// +int main() { + feenableexcept(FE_INVALID); + + // setup environment, geometry + using EnvType = Environment<setup::IEnvironmentModel>; + EnvType env; + + const CoordinateSystem& rootCS = env.GetCoordinateSystem(); + + Point const injectionPos( + rootCS, 0_m, 0_m, + 112.8_km); // this is the CORSIKA 7 start of atmosphere/universe + + Vector<dimensionless_d> showerAxis(rootCS, {0, 0, -1}); + + corsika::energy_loss::EnergyLoss eLoss(injectionPos, showerAxis); + + setup::Stack stack; + + std::ofstream file("dEdX.dat"); + file << "# beta*gamma, dE/dX / eV/(g/cm²)" << std::endl; + + for (HEPEnergyType E0 = 300_MeV; E0 < 1_PeV; E0 *= 1.05) { + stack.Clear(); + const Code beamCode = Code::MuPlus; + const HEPMassType mass = GetMass(beamCode); + double theta = 0.; + double phi = 0.; + + auto elab2plab = [](HEPEnergyType Elab, HEPMassType m) { + return sqrt((Elab - m) * (Elab + m)); + }; + HEPMomentumType P0 = elab2plab(E0, mass); + auto momentumComponents = [](double theta, double phi, HEPMomentumType ptot) { + return std::make_tuple(ptot * sin(theta) * cos(phi), ptot * sin(theta) * sin(phi), + -ptot * cos(theta)); + }; + auto const [px, py, pz] = + momentumComponents(theta / 180. * M_PI, phi / 180. * M_PI, P0); + auto plab = corsika::MomentumVector(rootCS, {px, py, pz}); + cout << "input particle: " << beamCode << endl; + cout << "input angles: theta=" << theta << " phi=" << phi << endl; + cout << "input momentum: " << plab.GetComponents() / 1_GeV << endl; + + stack.AddParticle( + std::tuple<corsika::Code, units::si::HEPEnergyType, + corsika::MomentumVector, corsika::Point, units::si::TimeType>{ + beamCode, E0, plab, injectionPos, 0_ns}); + + auto const p = stack.GetNextParticle(); + HEPEnergyType dE = eLoss.TotalEnergyLoss(p, 1_g / square(1_cm)); + file << P0 / mass << "\t" << -dE / 1_eV << std::endl; + } +} diff --git a/examples/vertical_EAS.cpp b/examples/vertical_EAS.cpp new file mode 100644 index 0000000000000000000000000000000000000000..948e47b6af5e54ae3d17929e74bc3ba6895c7c20 --- /dev/null +++ b/examples/vertical_EAS.cpp @@ -0,0 +1,167 @@ +/* + * (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. + */ + +#include <corsika/framework/core/Cascade.hpp> +#include <corsika/framework/core/PhysicalUnits.hpp> +#include <corsika/framework/geometry/Plane.hpp> +#include <corsika/framework/geometry/Sphere.hpp> +#include <corsika/framework/random/RNGManager.hpp> +#include <corsika/framework/sequence/ProcessSequence.hpp> +#include <corsika/framework/sequence/StackProcess.hpp> +#include <corsika/framework/utility/CorsikaFenv.hpp> + +#include <corsika/setup/SetupStack.hpp> +#include <corsika/setup/SetupTrajectory.hpp> + +#include <corsika/media/Environment.hpp> +#include <corsika/media/FlatExponential.hpp> +#include <corsika/media/LayeredSphericalAtmosphereBuilder.hpp> +#include <corsika/media/NuclearComposition.hpp> + +#include <corsika/modules/energy_loss/EnergyLoss.hpp> +#include <corsika/modules/observation_plane/ObservationPlane.hpp> +#include <corsika/modules/particle_cut/ParticleCut.hpp> +#include <corsika/modules/sibyll/Decay.hpp> +#include <corsika/modules/sibyll/Interaction.hpp> +#include <corsika/modules/sibyll/NuclearInteraction.hpp> +#include <corsika/modules/switch_process/SwitchProcess.hpp> +#include <corsika/modules/track_writer/TrackWriter.hpp> +#include <corsika/modules/tracking_line/TrackingLine.hpp> +#include <corsika/modules/urqmd/UrQMD.hpp> + +#include <iomanip> +#include <iostream> +#include <limits> +#include <typeinfo> + +using namespace corsika; +using namespace corsika::setup; +using namespace corsika::units::si; +using namespace std; + +void registerRandomStreams() { + corsika::RNGManager::GetInstance().RegisterRandomStream("cascade"); + corsika::RNGManager::GetInstance().RegisterRandomStream("s_rndm"); + // corsika::RNGManager::GetInstance().RegisterRandomStream("pythia"); + corsika::RNGManager::GetInstance().RegisterRandomStream("UrQMD"); + + corsika::RNGManager::GetInstance().SeedAll(); +} + +int main() { + feenableexcept(FE_INVALID); + // initialize random number sequence(s) + registerRandomStreams(); + + // setup environment, geometry + using EnvType = Environment<setup::IEnvironmentModel>; + EnvType env; + const CoordinateSystem& rootCS = env.GetCoordinateSystem(); + + corsika::LayeredSphericalAtmosphereBuilder builder(Point{rootCS, 0_m, 0_m, 0_m}); + builder.setNuclearComposition( + {{corsika::Code::Nitrogen, corsika::Code::Oxygen}, + {0.7847f, 1.f - 0.7847f}}); // values taken from AIRES manual, Ar removed for now + + builder.addExponentialLayer(1222.6562_g / (1_cm * 1_cm), 994186.38_cm, 4_km); + builder.addExponentialLayer(1144.9069_g / (1_cm * 1_cm), 878153.55_cm, 10_km); + builder.addExponentialLayer(1305.5948_g / (1_cm * 1_cm), 636143.04_cm, 40_km); + builder.addExponentialLayer(540.1778_g / (1_cm * 1_cm), 772170.16_cm, 100_km); + builder.addLinearLayer(1e9_cm, 112.8_km); + + builder.assemble(env); + + // setup particle stack, and add primary particle + setup::Stack stack; + stack.Clear(); + const Code beamCode = Code::Proton; + auto const mass = corsika::GetMass(beamCode); + const HEPEnergyType E0 = 0.1_PeV; + double theta = 0.; + double phi = 0.; + + Point const injectionPos( + rootCS, 0_m, 0_m, + 112.8_km * 0.999 + + builder.earthRadius); // this is the CORSIKA 7 start of atmosphere/universe + + // { + auto elab2plab = [](HEPEnergyType Elab, HEPMassType m) { + return sqrt((Elab - m) * (Elab + m)); + }; + HEPMomentumType P0 = elab2plab(E0, mass); + auto momentumComponents = [](double theta, double phi, HEPMomentumType ptot) { + return std::make_tuple(ptot * sin(theta) * cos(phi), ptot * sin(theta) * sin(phi), + -ptot * cos(theta)); + }; + auto const [px, py, pz] = + momentumComponents(theta / 180. * M_PI, phi / 180. * M_PI, P0); + auto plab = corsika::MomentumVector(rootCS, {px, py, pz}); + std::cout << "input particle: " << beamCode << std::endl; + std::cout << "input angles: theta=" << theta << " phi=" << phi << std::endl; + std::cout << "input momentum: " << plab.GetComponents() / 1_GeV << std::endl; + + stack.AddParticle( + std::tuple<corsika::Code, units::si::HEPEnergyType, + corsika::MomentumVector, corsika::Point, units::si::TimeType>{ + beamCode, E0, plab, injectionPos, 0_ns}); + // } + + Line const line(injectionPos, plab.normalized() * 1_m * 1_Hz); + auto const velocity = line.GetV0().norm(); + + auto const observationHeight = 1.425_km + builder.earthRadius; + + setup::Trajectory const showerAxis(line, (112.8_km - observationHeight) / velocity); + + // setup processes, decays and interactions + + corsika::sibyll::Interaction sibyll; + corsika::sibyll::NuclearInteraction sibyllNuc(sibyll, env); + corsika::sibyll::Decay decay; + + corsika::particle_cut::ParticleCut cut(5_GeV); + + corsika::track_writer::TrackWriter trackWriter("tracks.dat"); + corsika::energy_loss::EnergyLoss eLoss(showerAxis); + + Plane const obsPlane(Point(rootCS, 0_m, 0_m, observationHeight), + Vector<dimensionless_d>(rootCS, {0., 0., 1.})); + corsika::observation_plane::ObservationPlane observationLevel(obsPlane, + "particles.dat"); + + // assemble all processes into an ordered process list + + corsika::urqmd::UrQMD urqmd; + + auto sibyllSequence = sibyll << sibyllNuc; + corsika::switch_process::SwitchProcess switchProcess(urqmd, sibyllSequence, 55_GeV); + auto sequence = switchProcess << decay << eLoss << cut << observationLevel + << trackWriter; + + // define air shower object, run simulation + tracking_line::TrackingLine tracking; + corsika::Cascade EAS(env, tracking, sequence, stack); + EAS.Init(); + EAS.Run(); + + eLoss.PrintProfile(); // print longitudinal profile + + cut.ShowResults(); + const HEPEnergyType Efinal = + cut.GetCutEnergy() + cut.GetInvEnergy() + cut.GetEmEnergy(); + std::cout << "total cut energy (GeV): " << Efinal / 1_GeV << std::endl + << "relative difference (%): " << (Efinal / E0 - 1) * 100 << std::endl; + std::cout << "total dEdX energy (GeV): " << eLoss.GetTotal() / 1_GeV << std::endl + << "relative difference (%): " << eLoss.GetTotal() / E0 * 100 << std::endl; + + std::ofstream finish("finished"); + finish << "run completed without error" << std::endl; +} diff --git a/tests/stack/testNuclearStackExtension.cpp b/tests/stack/testNuclearStackExtension.cpp index ba09fded063f29fae5126e9d8add29724ef0b0c5..78ca286dc2bbebfdfcc175319c9dfb80154c586a 100644 --- a/tests/stack/testNuclearStackExtension.cpp +++ b/tests/stack/testNuclearStackExtension.cpp @@ -6,14 +6,13 @@ * the license. */ -#include <corsika/stack/NuclearStackExtension.h> -#include <corsika/stack/SuperStupidStack.h> +#include <corsika/stack/NuclearStackExtension.hpp> +#include <corsika/stack/SuperStupidStack.hpp> #include <corsika/framework/core/PhysicalUnits.hpp> #include <corsika/framework/geometry/RootCoordinateSystem.hpp> using namespace corsika; using namespace corsika::nuclear_extension; -using namespace corsika; using namespace corsika::units::si; #include <catch2/catch.hpp> diff --git a/tests/stack/testSuperStupidStack.cpp b/tests/stack/testSuperStupidStack.cpp index b566d952ec56cfb0a3c9fbf89daad02f67d75a4a..8f6a1435b739a4d6483cb364d13eca17dbb234f7 100644 --- a/tests/stack/testSuperStupidStack.cpp +++ b/tests/stack/testSuperStupidStack.cpp @@ -6,7 +6,7 @@ * the license. */ -#include <corsika/stack/SuperStupidStack.h> +#include <corsika/stack/SuperStupidStack.hpp> #include <corsika/framework/core/PhysicalUnits.hpp> #include <corsika/framework/geometry/RootCoordinateSystem.hpp>