IAP GITLAB

Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • AirShowerPhysics/corsika
  • rulrich/corsika
  • AAAlvesJr/corsika
  • Andre/corsika
  • arrabito/corsika
  • Nikos/corsika
  • olheiser73/corsika
  • AirShowerPhysics/papers/corsika
  • pranav/corsika
9 results
Show changes
Showing
with 0 additions and 15241 deletions
/*
* (c) Copyright 2020 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/environment/IMagneticFieldModel.h>
#include <corsika/geometry/RootCoordinateSystem.h>
namespace corsika::environment {
/**
* A uniform (constant) magnetic field.
*
* This class returns the same magnetic field vector
* for all evaluated locations.
*
*/
template <typename T>
class NoMagneticField : public T {
// a type-alias for a magnetic field vector
using MagneticFieldVector =
corsika::geometry::Vector<corsika::units::si::magnetic_flux_density_d>;
public:
/**
* Construct a NoMagneticField.
*
* This is initialized with a fixed magnetic field
* and returns this magnetic field at all locations.
*
* @param field The fixed magnetic field to return.
*/
template <typename... Args>
NoMagneticField(Args&&... args)
: T(std::forward<Args>(args)...) {}
/**
* Evaluate the magnetic field at a given location.
*
* @param point The location to evaluate the field at.
* @returns The magnetic field vector.
*/
MagneticFieldVector GetMagneticField(
corsika::geometry::Point const&) const final override {
CoordinateSystem const& gCS =
RootCoordinateSystem::GetInstance().GetRootCoordinateSystem();
return MagneticFieldVector(gCS, {0_T, 0_T, 0_T});
}
}; // END: class MagneticField
} // namespace corsika::environment
/*
* (c) Copyright 2020 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/environment/ShowerAxis.h>
#include <corsika/logging/Logging.h>
#include <string>
using namespace corsika::environment;
using namespace corsika::units::si;
using namespace corsika;
GrammageType ShowerAxis::X(LengthType l) const {
double const fractionalBin = l / steplength_;
int const lower = fractionalBin; // indices of nearest X support points
double const frac = fractionalBin - lower;
unsigned int const upper = lower + 1;
if (fractionalBin < 0) {
C8LOG_ERROR("cannot extrapolate to points behind point of injection l={} m", l / 1_m);
if (throw_) {
throw std::runtime_error("cannot extrapolate to points behind point of injection");
}
return minimumX();
}
if (upper >= X_.size()) {
const std::string err =
fmt::format("shower axis too short, cannot extrapolate (l / max_length_ = {} )",
l / max_length_);
C8LOG_ERROR(err);
if (throw_) { throw std::runtime_error(err.c_str()); }
return maximumX();
}
C8LOG_TRACE("showerAxis::X frac={}, fractionalBin={}, lower={}, upper={}", frac,
fractionalBin, lower, upper);
assert(0 <= frac && frac <= 1.);
C8LOG_TRACE("ShowerAxis::X l={} m, lower={}, frac={}, upper={}", l / 1_m, lower, frac,
upper);
// linear interpolation between X[lower] and X[upper]
return X_[upper] * frac + X_[lower] * (1 - frac);
}
LengthType ShowerAxis::steplength() const { return steplength_; }
GrammageType ShowerAxis::maximumX() const { return *X_.rbegin(); }
GrammageType ShowerAxis::minimumX() const { return GrammageType::zero(); }
GrammageType ShowerAxis::projectedX(geometry::Point const& p) const {
auto const projectedLength = (p - pointStart_).dot(axis_normalized_);
return X(projectedLength);
}
geometry::Vector<units::si::dimensionless_d> const& ShowerAxis::GetDirection() const {
return axis_normalized_;
}
geometry::Point const& ShowerAxis::GetStart() const { return pointStart_; }
/*
* (c) Copyright 2020 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/environment/Environment.h>
#include <corsika/geometry/Point.h>
#include <corsika/geometry/Vector.h>
#include <corsika/units/PhysicalUnits.h>
#include <cassert>
#include <cstdlib>
#include <fstream>
#include <functional>
#include <iterator>
#include <memory>
#include <stdexcept>
#include <vector>
#include <iostream>
#include <boost/math/quadrature/gauss_kronrod.hpp>
namespace corsika::environment {
/**
* \class ShowerAxis
*
* The environment::ShowerAxis is created from a geometry::Point and
* a geometry::Vector and inside an Environment. It internally uses
* a table with steps=10000 (default) rows for interpolation.
*
* The shower axis can convert location in the shower into a
* projected grammage along the shower axis.
*
**/
class ShowerAxis {
public:
template <typename TEnvModel>
ShowerAxis(geometry::Point const& pStart,
geometry::Vector<units::si::length_d> length,
environment::Environment<TEnvModel> const& env, bool doThrow = false,
int steps = 10'000)
: pointStart_(pStart)
, length_(length)
, throw_(doThrow)
, max_length_(length_.norm())
, steplength_(max_length_ / steps)
, axis_normalized_(length / max_length_)
, X_(steps + 1) {
auto const* const universe = env.GetUniverse().get();
auto rho = [pStart, length, universe](double x) {
auto const p = pStart + length * x;
auto const* node = universe->GetContainingNode(p);
return node->GetModelProperties().GetMassDensity(p).magnitude();
};
double error;
int k = 0;
X_[0] = units::si::GrammageType::zero();
auto sum = units::si::GrammageType::zero();
for (int i = 1; i <= steps; ++i) {
auto const x_prev = (i - 1.) / steps;
auto const d_prev = max_length_ * x_prev;
auto const x = double(i) / steps;
auto const r = boost::math::quadrature::gauss_kronrod<double, 15>::integrate(
rho, x_prev, x, 15, 1e-9, &error);
auto const result =
units::si::MassDensityType(phys::units::detail::magnitude_tag, r) *
max_length_;
sum += result;
X_[i] = sum;
for (; sum > k * X_binning_; ++k) {
d_.emplace_back(d_prev + k * X_binning_ * steplength_ / result);
}
}
assert(std::is_sorted(X_.cbegin(), X_.cend()));
assert(std::is_sorted(d_.cbegin(), d_.cend()));
}
units::si::LengthType steplength() const;
units::si::GrammageType maximumX() const;
units::si::GrammageType minimumX() const;
units::si::GrammageType projectedX(geometry::Point const& p) const;
units::si::GrammageType X(units::si::LengthType) const;
geometry::Vector<units::si::dimensionless_d> const& GetDirection() const;
geometry::Point const& GetStart() const;
private:
geometry::Point const pointStart_;
geometry::Vector<units::si::length_d> const length_;
bool throw_ = false;
units::si::LengthType const max_length_, steplength_;
geometry::Vector<units::si::dimensionless_d> const axis_normalized_;
std::vector<units::si::GrammageType> X_;
// for storing the lengths corresponding to equidistant X values
units::si::GrammageType const X_binning_ = std::invoke([]() {
using namespace units::si;
return 1_g / 1_cm / 1_cm;
});
std::vector<units::si::LengthType> d_;
};
} // namespace corsika::environment
/*
* (c) Copyright 2020 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/environment/IMagneticFieldModel.h>
namespace corsika::environment {
/**
* A uniform (constant) magnetic field.
*
* This class returns the same magnetic field vector
* for all evaluated locations.
*
*/
template <typename T>
class UniformMagneticField : public T {
// a type-alias for a magnetic field vector
using MagneticFieldVector =
corsika::geometry::Vector<corsika::units::si::magnetic_flux_density_d>;
MagneticFieldVector B_; ///< The constant magnetic field we use.
public:
/**
* Construct a UniformMagneticField.
*
* This is initialized with a fixed magnetic field
* and returns this magnetic field at all locations.
*
* @param field The fixed magnetic field to return.
*/
template <typename... Args>
UniformMagneticField(MagneticFieldVector const& B, Args&&... args)
: T(std::forward<Args>(args)...)
, B_(B) {}
/**
* Evaluate the magnetic field at a given location.
*
* @param point The location to evaluate the field at.
* @returns The magnetic field vector.
*/
MagneticFieldVector GetMagneticField(
corsika::geometry::Point const&) const final override {
return B_;
}
/**
* Set the magnetic field returned by this instance.
*
* @param point The location to evaluate the field at.
* @returns The magnetic field vector.
*/
auto SetMagneticField(MagneticFieldVector const& Bfield) -> void { B_ = Bfield; }
}; // END: class MagneticField
} // namespace corsika::environment
/*
* (c) Copyright 2020 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/environment/IRefractiveIndexModel.h>
namespace corsika::environment {
/**
* A uniform refractive index.
*
* This class returns the same refractive index
* for all evaluated locations.
*
*/
template <typename T>
class UniformRefractiveIndex : public T {
double n_; ///< The constant refractive index that we use.
public:
/**
* Construct a UniformRefractiveIndex.
*
* This is initialized with a fixed refractive index
* and returns this refractive index at all locations.
*
* @param field The refractive index to return everywhere.
*/
template <typename... Args>
UniformRefractiveIndex(double const n, Args&&... args)
: T(std::forward<Args>(args)...)
, n_(n) {}
/**
* Evaluate the refractive index at a given location.
*
* @param point The location to evaluate at.
* @returns The refractive index at this point.
*/
double GetRefractiveIndex(corsika::geometry::Point const&) const final override {
return n_;
}
/**
* Set the refractive index returned by this instance.
*
* @param point The location to evaluate at.
* @returns The refractive index at this location.
*/
void SetRefractiveIndex(double const& n) { n_ = n; }
}; // END: class RefractiveIndex
} // namespace corsika::environment
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 hydrogen_liquid
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
m,n-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 2 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
Index of ref 1.70
Note: DuPont's Kapton is <a href="../Kapton.pdf">poly-oxydiphenylene-pyromellitimide</a>
----------------------------------------------------------------------------
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.491
----------------------------------------------------------------------------
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 1 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
Index of refraction 1.531
----------------------------------------------------------------------------
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
---------------------------------------------------------------------------
351 HvWat 5 -1.0000000000 0.49931 1.1070E+00 1.1070E+00 L 2 2 3 I
deuterium_oxide_liquid
deuterium oxide (liquid) (D%2#O)
79.7 3.5017 0.2400 2.8004 0.09116 3.4773 0.00
298 2.000000 0.201133
8 1.000044 0.798867
Index of refraction 1.328
Melting point 3.82
Boiling point 101.4
-----------------------------------------------------------------------------
#!/usr/bin/env python3
import sys, math, itertools, re, csv, pprint
from collections import OrderedDict
import io
##############################################################
#
# reading input data, return media properties data
# c.f. https://pdg.lbl.gov/2020/AtomicNuclearProperties/Properties8_Key.pdf
#
def parseData(filename):
with open(filename) as f:
line = f.readline()
while (line.strip() != ""):
entry = {}
# main material data line
entry["sternheimer_index"] = int(line[:5])
entry["sternheimer_label"] = line[5:10].strip()
index = 0
words = line[11:].split()
entry["sign_figures_weight"] = int(words[index])
index += 1
entry["weight"] = float(words[index])
index += 1
entry["error_last_digit"] = 0
if (entry["weight"]>0):
entry["error_last_digit"] = int(words[index])
index += 1
entry["Z_over_A"] = float(words[index])
index += 1
entry["sternheimhers_density"] = float(words[index])
index += 1
entry["corrected_density"] = float(words[index])
index += 1
entry["state"] = words[index] # Solid, Liquid, Gas, Diatomic gas
index += 1
entry["num_elements"] = int(words[index])
index += 1
entry["num_atoms_1"] = int(words[index])
index += 1
entry["num_extra_lines"] = int(words[index])
index += 1
entry["type"] = words[index] # Element, Radioactive, Inorg. comp., Org. comp., Polymer, Mixture, Biological/dosimetry
index += 1
if (index != len(words)):
print ("error in line: " + line + " index=" + str(index) + " len=" + str(len(words)))
sys.exit(1)
# name line
line = f.readline()
words = line.split()
index = 0
if (entry["type"] in ["E", "R"] ):
entry["symbol"] = words[index]
index += 1
entry["name"] = words[index]
index += 1
if (index != len(words)):
print ("error in line: " + line + " index=" + str(index) + " len=" + str(len(words)))
sys.exit(1)
# name+formula line
line = f.readline()
entry["name_and_formula"] = line.strip()
# ionization data
line = f.readline()
words = line.split()
index = 0
entry["Ieff"] = float(words[index])
index += 1
entry["Cbar"] = float(words[index])
index += 1
entry["x0"] = float(words[index])
index += 1
entry["x1"] = float(words[index])
index += 1
entry["aa"] = float(words[index])
index += 1
entry["sk"] = float(words[index])
index += 1
entry["dlt0"] = float(words[index])
index += 1
if (index != len(words)):
print ("error in line: " + line + " index=" + str(index) + " len=" + str(len(words)))
sys.exit(1)
for i in range(entry["num_elements"]):
elem = "element_{}".format(i)
if (not elem in entry):
entry[elem] = {}
line = f.readline()
words = line.split()
index = 0
entry[elem]["Z"] = int(words[index])
index += 1
entry[elem]["Num_frac"] = float(words[index])
index += 1
entry[elem]["weight_frac"] = float(words[index])
index += 1
if (index != len(words)):
print ("error in line: " + line + " index=" + str(index) + " len=" + str(len(words)))
sys.exit(1)
skip = False
for i in range(entry["num_extra_lines"]):
# optional lines
line = f.readline()
if (skip):
continue
key = line[:5]
if (key == " " or
key == "Note:"):
skip = True
continue
n_empty = 0
comment = key
c = 6
while (c<=25):
comment += line[c]
c += 1
if (line[c].strip() == ''):
n_empty += 1
else:
n_empty = 0
if (n_empty > 3):
break
value = float(line[c:45])
if (not "properties" in entry):
entry["properties"] = {}
entry["properties"][key] = value;
line = f.readline() # move to separator line "---------------"
line = f.readline() # move to next entry
yield entry
def TypeEnum(type):
if type=='E':
return "Element"
elif type=='R':
return "RadioactiveElement"
elif type=='I':
return 'InorganicCompound'
elif type=='O':
return "OrganicCompound"
elif type=="P":
return "Polymer"
elif type=='M':
return "Mixture"
elif type=="B":
return "BiologicalDosimetry"
else:
return "Unkonwn"
def StateEnum(state):
if state=='S':
return "Solid"
elif state=='L':
return "Liquid"
elif state=='G':
return 'Gas'
elif state=='D':
return "DiatomicGas"
else:
return "Unkonwn"
def ClassName(name):
name = name.replace('-', '_')
words = name.split('_')
str = ""
for w in words:
str += w.capitalize()
if str[0].isdigit():
str = "_" + str
return str
##########################################################
#
# returns dict containing all data from pythia-xml input
#
def read_data(filename):
data = []
counter = 0
for entry in parseData(filename):
data.append(entry)
return data
###############################################################
#
# return string with a list of classes for all particles
#
def gen_code(media_db):
string = """
// enum for all media
enum class Medium : MediumIntType {
Unkown,
"""
imedium = 0
for entry in media_db:
cname = ClassName(entry["name"])
string += " {} = {} ,\n".format(cname, imedium)
imedium += 1
string += " {} = {} ,\n".format("First", 0)
string += " {} = {} ,\n".format("Last", imedium-1)
string += " };\n\n"
return string
###############################################################
#
# return string with a list of classes for all particles
#
def gen_classes(media_db):
string = """
// list of C++ classes to access media properties"
// typedef std::map<std::string, double> Properties;
// typedef std::array<Properties, static_cast<MediumIntType>(Medium::Last)+1> Constituents; this is wrong> num_elements
"""
for entry in media_db:
cname = ClassName(entry["name"])
constituents = "{"
comma = ""
for i in range(entry["num_elements"]):
elem = "element_{}".format(i)
constituents += "{}{{ {{ {{\"Z\", {} }}, {{\"NumFrac\", {} }}, {{\"WeightFrac\", {} }} }} }}".format(comma, entry[elem]["Z"],
entry[elem]["Num_frac"],
entry[elem]["weight_frac"])
comma = ", "
constituents += "}"
properties = "{"
if "properties" in entry:
comma = ""
for k,v in entry["properties"].items():
properties += "{}{{ \"{}\", {} }}".format(comma, k, v)
comma = ", "
properties += "}"
symbol = "Unknown";
if ("symbol" in entry):
symbol = entry["symbol"]
class_string = """
/**
* \class {cname}
*
* Media properties from properties8.dat file from NIST:
* - Sternheimer index {stern_index}, label {stern_label}
**/
class {cname} {{
public:
static constexpr Medium medium() {{ return Medium::{cname}; }}
static std::string const name() {{ return data_.name(); }}
static std::string const pretty_name() {{ return data_.pretty_name(); }}
static double weight() {{ return data_.weight (); }}
static int weight_significant_figure() {{ return data_.weight_significant_figure (); }}
static int weight_error_last_digit() {{ return data_.weight_error_last_digit(); }}
static double Z_over_A() {{ return data_.Z_over_A(); }}
static double sternheimer_density() {{ return data_.sternheimer_density(); }}
static double corrected_density() {{ return data_.corrected_density(); }}
static State state() {{ return data_.state(); }}
static MediumType type() {{ return data_.type(); }}
static std::string const symbol() {{ return data_.symbol(); }}
static double Ieff() {{ return data_.Ieff(); }}
static double Cbar() {{ return data_.Cbar(); }}
static double x0() {{ return data_.x0(); }}
static double x1() {{ return data_.x1(); }}
static double aa() {{ return data_.aa(); }}
static double sk() {{ return data_.sk(); }}
static double dlt0() {{ return data_.dlt0(); }}
//static constexpr Constituents constituents() {{ return {constituents}; }}
//static constexpr Properties properties() {{ return {properties}; }}
inline static const MediumData data_ {{ "{name}", "{nice_name}", {weight},
{weight_significant_figure}, {weight_error_last_digit}, {Z_over_A},
{sternheimer_density}, {corrected_density}, State::{state},
MediumType::{type}, "{symbol}", {Ieff}, {Cbar}, {x0}, {x1}, {aa}, {sk}, {dlt0} }};
}};
""".format(cname=cname,
stern_label=entry["sternheimer_label"],
stern_index=entry["sternheimer_index"],
weight_significant_figure=entry["sign_figures_weight"],
weight=entry["weight"],
weight_error_last_digit=entry["error_last_digit"],
Z_over_A = entry["Z_over_A"],
sternheimer_density = entry["sternheimhers_density"],
corrected_density = entry["corrected_density"],
state=StateEnum(entry["state"]),
type=TypeEnum(entry["type"]),
symbol=symbol,
name=entry["name"],
nice_name=entry["name_and_formula"].replace('\\','\\\\'),
Ieff=entry["Ieff"],
Cbar=entry["Cbar"],
x0=entry["x0"],
x1=entry["x1"],
aa=entry["aa"],
sk=entry["sk"],
dlt0=entry["dlt0"],
constituents=constituents,
properties=properties);
# static std::string const name() {{ return "{name}"; }}
# static std::string const pretty_name() {{ return "{nice_name}"; }}
# static constexpr double weight() {{ return {weight} ; }}
# static constexpr int weight_significant_figure() {{ return {weight_significant_figure} ; }}
# static constexpr int weight_error_last_digit() {{ return {weight_error_last_digit}; }}
# static constexpr double Z_over_A() {{ return {Z_over_A}; }}
# static constexpr double sternheimer_density() {{ return {sternheimer_density}; }}
# static constexpr double corrected_density() {{ return {corrected_density}; }}
# static constexpr State state() {{ return State::{state}; }}
# static constexpr MediumType type() {{ return MediumType::{type}; }}
# static std::string const symbol() {{ return "{symbol}"; }}
# static constexpr double Ieff() {{ return {Ieff}; }}
# static constexpr double Cbar() {{ return {Cbar}; }}
# static constexpr double x0() {{ return {x0}; }}
# static constexpr double x1() {{ return {x1}; }}
# static constexpr double aa() {{ return {aa}; }}
# static constexpr double sk() {{ return {sk}; }}
# static constexpr double dlt0() {{ return {dlt0}; }}
string += class_string
# private:\n"
# static constexpr CodeIntType TypeIndex = static_cast<CodeIntType const>(Type);\n"
return string
###############################################################
#
# return string with a list of classes for all particles
#
def gen_data_array(media_db):
string = """
// array of MediumData entries
static const std::array<const MediumData, static_cast<MediumIntType>(Medium::Last)+1> medium_data = {
"""
comma=""
for entry in media_db:
cname = ClassName(entry["name"])
string += "{} {}::data_".format(comma, cname)
comma = ",\n"
string += " };\n\n"
return string
###############################################################
#
# return string with a list of classes for all particles
#
def gen_media_map(media_db):
string = """
// mapping of enum Medium to Medium classes
static auto MediumMap = std::make_tuple(
"""
comma=""
for entry in media_db:
cname = ClassName(entry["name"])
string += "{} {}()".format(comma, cname)
comma = ",\n"
string += " );\n\n"
return string
###############################################################
#
#
def inc_start():
string = """
// generated by readProperties.py
// MANUAL EDITS ON OWN RISK. THEY WILL BE OVERWRITTEN.
// since this is automatic code, we don't attempt to generate automatic unit testing, too: LCOV_EXCL_START
namespace corsika::environment {
"""
return string
###############################################################
#
#
def detail_start():
string = ('namespace detail {\n\n')
return string
###############################################################
#
#
def detail_end():
string = "\n}//end namespace detail\n"
return string
###############################################################
#
#
def inc_end():
string = """
\n} // end namespace corsika::environment
// since this was automatic code, we didn't attempt to generate automatic unit testing, too: LCOV_EXCL_STOP
"""
return string
###################################################################
#
# Main function
#
if __name__ == "__main__":
if len(sys.argv) != 2:
print("usage: {:s} <properties8.dat>".format(sys.argv[0]), file=sys.stderr)
sys.exit(1)
print("\n readProperties.py: automatically produce media properties from input files\n")
media_db = read_data(sys.argv[1])
with open("GeneratedMediaProperties.inc", "w") as f:
print(inc_start(), file=f)
print(gen_code(media_db), file=f)
print(gen_classes(media_db), file=f)
print(detail_start(), file=f)
print(gen_data_array(media_db), file=f)
print(detail_end(), file=f)
print(inc_end(), file=f)
/*
* (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/environment/DensityFunction.h>
#include <corsika/environment/HomogeneousMedium.h>
#include <corsika/environment/IMediumModel.h>
#include <corsika/environment/NuclearComposition.h>
#include <corsika/environment/ShowerAxis.h>
#include <corsika/environment/VolumeTreeNode.h>
#include <corsika/geometry/Line.h>
#include <corsika/geometry/RootCoordinateSystem.h>
#include <corsika/geometry/Vector.h>
#include <corsika/particles/ParticleProperties.h>
#include <corsika/units/PhysicalUnits.h>
#include <catch2/catch.hpp>
using namespace corsika::geometry;
using namespace corsika::environment;
using namespace corsika::particles;
using namespace corsika::units;
using namespace corsika::units::si;
using namespace corsika;
const auto density = 1_kg / (1_m * 1_m * 1_m);
auto setupEnvironment(particles::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>(
density, environment::NuclearComposition(std::vector<particles::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);
}
TEST_CASE("Homogeneous Density") {
auto [env, csPtr, nodePtr] = setupEnvironment(particles::Code::Nitrogen);
auto const& cs = *csPtr;
[[maybe_unused]] auto const& env_dummy = env;
[[maybe_unused]] auto const& node_dummy = nodePtr;
auto const observationHeight = 0_km;
auto const injectionHeight = 10_km;
auto const t = -observationHeight + injectionHeight;
Point const showerCore{cs, 0_m, 0_m, observationHeight};
Point const injectionPos = showerCore + Vector<dimensionless_d>{cs, {0, 0, 1}} * t;
environment::ShowerAxis const showerAxis{injectionPos, (showerCore - injectionPos),
*env,
false, // -> do not throw exceptions
20}; // -> number of bins
CHECK(showerAxis.steplength() == 500_m);
CHECK(showerAxis.maximumX() / (10_km * density) == Approx(1).epsilon(1e-8));
CHECK(showerAxis.minimumX() == 0_g / square(1_cm));
const Point p{cs, 10_km, 20_km, 8.3_km};
CHECK(showerAxis.projectedX(p) / (1.7_km * density) == Approx(1).epsilon(1e-8));
const units::si::LengthType d = 6.789_km;
CHECK(showerAxis.X(d) / (d * density) == Approx(1).epsilon(1e-8));
const Vector<dimensionless_d> dir{cs, {0, 0, -1}};
CHECK(showerAxis.GetDirection().GetComponents(cs) == dir.GetComponents(cs));
CHECK(showerAxis.GetStart().GetCoordinates() == injectionPos.GetCoordinates());
}
# create the library
add_library (CORSIKAanalytics INTERFACE)
# namespace of library -> location of header files
set (
CORSIKAanalytics_NAMESPACE
corsika/analytics
)
# header files of this library
set (
CORSIKAanalytics_HEADERS
ClassTimer.h
FunctionTimer.h
)
# copy the headers into the namespace
CORSIKA_COPY_HEADERS_TO_NAMESPACE (CORSIKAanalytics
${CORSIKAanalytics_NAMESPACE}
${CORSIKAanalytics_HEADERS}
)
# include directive for upstream code
target_include_directories (
CORSIKAanalytics
INTERFACE
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
$<INSTALL_INTERFACE:include/>
C8::ext:boost
)
# and link against spdlog
#target_link_libraries(
# CORSIKAanalytics
# INTERFACE
# spdlog::spdlog
#)
# install library
install (
FILES ${CORSIKAanalytics_HEADERS}
DESTINATION include/${CORSIKAanalytics_NAMESPACE}
)
# ----------------
# code unit testing
CORSIKA_ADD_TEST (testFunctionTimer)
target_link_libraries (
testFunctionTimer
CORSIKAanalytics
CORSIKAtesting
)
CORSIKA_ADD_TEST (testClassTimer)
target_link_libraries (
testClassTimer
CORSIKAanalytics
CORSIKAtesting
)
/*
* (c) Copyright 2020 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.
*/
// Another possibility:
// https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Execute-Around_Pointer
// for a more global approach
//
// In this case here only a single function is measured via member function pointer.
#pragma once
#include <chrono>
#include <utility>
namespace corsika::analytics {
/// Measure the runtime of a single class function
/**
* @tparam TClassFunc Type of the member function pointer that should be wrapped
* @tparam TFunc Actual function of the type defined in TClass
*/
template <typename TClassFunc, TClassFunc TFunc>
class ClassTimer;
/// Measure the runtime of a single class function
/** Specialisation to capture exact information about the composition of the member
* function pointer used.
*
* This class wrapes a single function and allowes the measureing of its runtime if it
* called via the "call(...)" function
*
* @tparam TClass Class of the function that should be wrapped
* @tparam TRet Return value of the wrapped function
* @tparam TArgs Arguments passed to the wrapped function
* @tparam TFuncPtr Actual function of the type defined by TRet
* TClass::TFuncPtr(TArgs...)
*/
template <typename TClass, typename TRet, typename... TArgs,
TRet (TClass::*TFuncPtr)(TArgs...)>
class ClassTimer<TRet (TClass::*)(TArgs...), TFuncPtr> {
private:
using TClock = std::chrono::high_resolution_clock;
using TDuration = std::chrono::microseconds;
TClass& vObj;
typename TClock::time_point vStart;
TDuration vDiff;
public:
ClassTimer(TClass& obj)
: vObj(obj) {}
/// Executes the wrapped function
/** This function executes and measure the runtime of the wrapped function with the
* highest precision available (high_resolution_clock).
*
* @param args Arguments are perfect forwarded to the wrapped function.
* @return Returns the return value of the wrapped function. This value get copied
* during the process and therefore must be copie constructible!
*/
TRet call(TArgs... args) {
vStart = TClock::now();
auto tmp = (vObj.*TFuncPtr)(std::forward<TArgs>(args)...);
vDiff = std::chrono::duration_cast<TDuration>(TClock::now() - vStart);
return tmp;
}
/// returns the last runtime of the wraped function accessed via call
inline TDuration getTime() const { return vDiff; }
};
/// Specialisation for member functions without return value
template <typename TClass, typename... TArgs, void (TClass::*TFuncPtr)(TArgs...)>
class ClassTimer<void (TClass::*)(TArgs...), TFuncPtr> {
private:
using TClock = std::chrono::high_resolution_clock;
using TDuration = std::chrono::microseconds;
TClass& vObj;
typename TClock::time_point vStart;
TDuration vDiff;
public:
ClassTimer(TClass& obj)
: vObj(obj) {}
void call(TArgs... args) {
vStart = TClock::now();
(vObj.*TFuncPtr)(std::forward<TArgs>(args)...);
vDiff = std::chrono::duration_cast<TDuration>(TClock::now() - vStart);
return;
}
inline TDuration getTime() const { return vDiff; }
};
/// Specialisation for const member functions
template <typename TClass, typename TRet, typename... TArgs,
TRet (TClass::*TFuncPtr)(TArgs...) const>
class ClassTimer<TRet (TClass::*)(TArgs...) const, TFuncPtr> {
private:
using TClock = std::chrono::high_resolution_clock;
using TDuration = std::chrono::microseconds;
const TClass& vObj;
typename TClock::time_point vStart;
TDuration vDiff;
public:
ClassTimer(TClass& obj)
: vObj(obj) {}
TRet call(TArgs... args) {
vStart = TClock::now();
auto tmp = (vObj.*TFuncPtr)(std::forward<TArgs>(args)...);
vDiff = std::chrono::duration_cast<TDuration>(TClock::now() - vStart);
return tmp;
}
inline TDuration getTime() const { return vDiff; }
};
/// Specialisation for const member functions without return value
template <typename TClass, typename... TArgs, void (TClass::*TFuncPtr)(TArgs...) const>
class ClassTimer<void (TClass::*)(TArgs...) const, TFuncPtr> {
private:
using TClock = std::chrono::high_resolution_clock;
using TDuration = std::chrono::microseconds;
const TClass& obj_;
typename TClock::time_point start_;
TDuration timeDiff_;
public:
ClassTimer(TClass& obj)
: obj_(obj) {}
void call(TArgs... args) {
start_ = TClock::now();
(obj_.*TFuncPtr)(std::forward<TArgs>(args)...);
timeDiff_ = std::chrono::duration_cast<TDuration>(TClock::now() - start_);
return;
}
inline TDuration getTime() const { return timeDiff_; }
};
} // namespace corsika::analytics
\ No newline at end of file
/*
* (c) Copyright 2020 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 <chrono>
#include <utility>
namespace corsika::analytics {
/// Wraps and measures the runtime of a single function type object
/**
*
* @tparam TFunc funtion pointer that should be wrapped
* @tparam TClock type of the clock that should be used for measurements
* @tparam TDuration type of std::duration to measure the elapsed time
*/
template <typename TFunc, typename TClock = std::chrono::high_resolution_clock,
typename TDuration = std::chrono::microseconds>
class FunctionTimer {
private:
typename TClock::time_point start_;
TDuration timeDiff_;
TFunc function_;
public:
/// Constructs the wrapper with the given functionpointer
FunctionTimer(TFunc f)
: function_(f) {}
template <typename... TArgs>
auto operator()(TArgs&&... args) -> std::invoke_result_t<TFunc, TArgs...> {
start_ = TClock::now();
auto tmp = function_(std::forward<TArgs>(args)...);
timeDiff_ = std::chrono::duration_cast<TDuration>(TClock::now() - start_);
return tmp;
}
inline TDuration getTime() const { return timeDiff_; }
};
} // namespace corsika::analytics
/*
* (c) Copyright 2020 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/analytics/ClassTimer.h>
#include <catch2/catch.hpp>
#include <chrono>
#include <iostream>
#include <thread>
using namespace corsika;
class _foo2 {
public:
int inside(int) { return 123; }
int inside(char) { return 312; }
};
class _foo1 : public _foo2 {
public:
int inside(int) { return 123; }
};
class foo : public _foo1 {
public:
int bar() {
std::this_thread::sleep_for(std::chrono::milliseconds(100));
return 31415;
}
void bar2(int) {
std::this_thread::sleep_for(std::chrono::milliseconds(100));
return;
}
inline void bar_const() const {
std::this_thread::sleep_for(std::chrono::milliseconds(100));
return;
}
int inside() {
auto tc = corsika::analytics::ClassTimer<int (_foo1::*)(int), &_foo1::inside>(*this);
auto r = tc.call(1);
return r;
}
};
template <typename TType, TType>
class timeMin;
template <typename TType, typename TRet, typename... TArgs,
TRet (TType::*TFuncPtr)(TArgs...)>
class timeMin<TRet (TType::*)(TArgs...), TFuncPtr> {
private:
TType& obj_;
public:
timeMin(TType& obj)
: obj_(obj) {}
TRet call(TArgs... args) { return (obj_.*TFuncPtr)(std::forward<TArgs>(args)...); }
};
// quasi processor
class fooT1 {
public:
template <typename T1, typename T2>
int inside_t(T1, T2, T2) {
return 123;
}
};
// exec_time_impl
template <typename T>
class fooT2 : public T {
public:
using _T = T;
};
// exec_time_impl
template <typename T>
class fooT3 : public fooT2<T> {
public:
template <typename T1, typename T2>
int inside_t(T1 a, T2 b, T2 c) {
auto tc =
timeMin<int (fooT2<T>::_T::*)(T1, T2, T2),
&fooT2<T>::_T::template inside_t<T1, T2>>(*this); // <- dependent template
auto r = tc.call(a, b, c);
return r;
}
};
TEST_CASE("Analytics", "[Timer]") {
SECTION("Measure runtime of a function without arguments") {
auto test = foo();
auto tc = corsika::analytics::ClassTimer<decltype(&foo::bar), &foo::bar>(test);
tc.call();
CHECK(tc.getTime().count() == Approx(100000).margin(10000));
}
SECTION("Measure runtime of a function with arguments") {
auto test = foo();
auto tc = corsika::analytics::ClassTimer<decltype(&foo::bar2), &foo::bar2>(test);
tc.call(1);
CHECK(tc.getTime().count() == Approx(100000).margin(10000));
}
SECTION("Measure runtime of a const function without arguments") {
auto test = foo();
auto tc =
corsika::analytics::ClassTimer<decltype(&foo::bar_const), &foo::bar_const>(test);
tc.call();
CHECK(tc.getTime().count() == Approx(100000).margin(10000));
}
SECTION("Measure runtime of function inside class") {
auto test = foo();
CHECK(test.inside() == 123);
}
SECTION("Measure runtime of function inside class") {
auto test = fooT3<fooT1>();
CHECK(test.inside_t(1, 'a', 'b') == 123);
}
}
/*
* (c) Copyright 2020 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/analytics/FunctionTimer.h>
#include <catch2/catch.hpp>
#include <chrono>
#include <iostream>
#include <thread>
using namespace corsika;
int testFunc() {
std::this_thread::sleep_for(std::chrono::milliseconds(100));
return 31415;
}
class TestClass {
public:
int operator()() {
std::this_thread::sleep_for(std::chrono::milliseconds(100));
return 31415;
}
};
TEST_CASE("Analytics", "[Timer]") {
SECTION("Measure runtime of a free function") {
auto test = corsika::analytics::FunctionTimer(testFunc);
std::cout << test() << std::endl;
std::cout << test.getTime().count() << std::endl;
}
SECTION("Measure runtime of a class functor") {
TestClass testC;
auto test = corsika::analytics::FunctionTimer(testC);
std::cout << test() << std::endl;
std::cout << test.getTime().count() << std::endl;
}
}
/*
* (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/units/PhysicalUnits.h>
#include <map> // for pair
namespace corsika::geometry {
/**
* \class Intersection
*
* Container to store and return a list of intersections of a
* trajectory with a geometric volume objects in space.
*
**/
class Intersections {
Intersections(const Intersections&) = delete;
Intersections(Intersections&&) = delete;
Intersections& operator=(const Intersections&) = delete;
public:
Intersections()
: has_intersections_(false) {}
Intersections(corsika::units::si::TimeType&& t1, corsika::units::si::TimeType&& t2)
: has_intersections_(true)
, intersections_(std::make_pair(t1, t2)) {}
Intersections(corsika::units::si::TimeType&& t)
: has_intersections_(true)
, intersections_(std::make_pair(
t,
std::numeric_limits<corsika::units::si::TimeType::value_type>::infinity() *
corsika::units::si::second)) {}
bool hasIntersections() const { return has_intersections_; }
///! where did the trajectory currently enter the volume
corsika::units::si::TimeType getEntry() const { return intersections_.first; }
///! where did the trajectory currently exit the volume
corsika::units::si::TimeType getExit() const { return intersections_.second; }
private:
bool has_intersections_;
std::pair<corsika::units::si::TimeType, corsika::units::si::TimeType> intersections_;
};
} // namespace corsika::geometry
/*
* (c) Copyright 2020 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.
*/
/**
* @File Logging.h
*
* CORSIKA8 logging utilities.
*
* See testLogging.cc for a complete set of examples for
* how the logging functions should be used.
*/
#pragma once
// Configure some behaviour of sdlog.
// This must be done before spdlog is included.
// use the coarse system clock. This is *much* faster
// but introduces a real time error of O(10 ms).
#define SPDLOG_CLOCK_COARSE
// do not create a default logger (we provide our own "corsika" logger)
#define SPDLOG_DISABLE_DEFAULT_LOGGER
// use __PRETTY_FUNCTION__ instead of __FUNCTION__ where
// printing function names in trace statements. This is much
// nicer than __FUNCTION__ under GCC/clang.
#define SPDLOG_FUNCTION __PRETTY_FUNCTION__
// if this is a Debug build, include debug messages in objects
#ifdef DEBUG
// trace is the highest level of logging (ALL messages will be printed)
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_TRACE
#else // otherwise, remove everything but "critical" messages
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_CRITICAL
#endif
#include <spdlog/fmt/ostr.h> // will output whenerver a streaming operator is found
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/spdlog.h>
namespace corsika::logging {
// bring spdlog into the corsika::logging namespace
using namespace spdlog;
/*
* The default pattern for CORSIKA8 loggers.
*/
const std::string default_pattern{"[%n:%^%-8l%$] %v"};
/**
* Create a new C8-style logger.
*
* Use this if you are explicitly (and can guarantee) that you
* are creating a logger for the first time. It is recommended
* that for regular usage, the `GetLogger` function is used instead
* as that will also create the logger if it has not yet been created.
*
* Calling `CreateLogger` twice to create the same logger will
* result in an spdlog duplicate exception.
*
* @param name The unique name of the logger.
* @param defaultlog If True, set this as the default logger.
* @returns The constructed and formatted logger.
*/
inline auto CreateLogger(std::string const& name, bool const defaultlog = false) {
// create the logger
// this is currently a colorized multi-threading safe logger
auto logger = spdlog::stdout_color_mt(name);
// set the default C8 format
logger->set_pattern(default_pattern);
// if defaultlog is True, we set this as the default spdlog logger.
if (defaultlog) { spdlog::set_default_logger(logger); }
// and return the logger
return logger;
}
/**
* Get a smart pointer to an existing logger.
*
* This should be the default method for code to obtain a
* logger. If the logger *does not* exist, it is *created* and
* returned to the caller.
*
* This should be preferred over `CreateLogger`.
*
* @param name The name of the logger to get.
* @param defaultlog If True, make this the default logger.
* @returns The constructed and formatted logger.
*/
inline auto GetLogger(std::string const& name, bool const defaultlog = false) {
// attempt to get the logger from the registry
auto logger = spdlog::get(name);
// weg found the logger, so just return it
if (logger) {
return logger;
} else { // logger was not found so create it
return CreateLogger(name, defaultlog);
}
}
/**
* The default "corsika" logger.
*/
inline auto corsika = GetLogger("corsika", true);
/**
* Set the default log level for all *newly* created loggers.
*
* @param name The minimum log level required to print.
*
*/
inline auto SetDefaultLevel(level::level_enum const minlevel) -> void {
spdlog::set_level(minlevel);
}
/**
* Set the log level for the "corsika" logger.
*
* @param name The minimum log level required to print.
*
*/
inline auto SetLevel(level::level_enum const minlevel) -> void {
corsika->set_level(minlevel);
}
/**
* Set the log level for a specific logger.
*
* @param logger The logger to set the level of.
* @param name The minimum log level required to print.
*
*/
template <typename TLogger>
inline auto SetLevel(TLogger& logger, level::level_enum const minlevel) -> void {
logger->set_level(minlevel);
}
/**
* Add the source (filename, line no) info to the logger.
*
* @param logger The logger to set the level of.
*
*/
template <typename TLogger>
inline auto AddSourceInfo(TLogger& logger) -> void {
logger->set_pattern("[%n:%^%-8l%$(%s:%!:%#)] %v");
}
/**
* Reset the logging pattern to the default.
*
* @param logger The logger to set the level of.
*
*/
template <typename TLogger>
inline auto ResetPattern(TLogger& logger) -> void {
logger->set_pattern(default_pattern);
}
// define our macro-style loggers
#define C8LOG_TRACE SPDLOG_TRACE
#define C8LOG_DEBUG SPDLOG_DEBUG
#define C8LOG_INFO SPDLOG_INFO
#define C8LOG_WARN SPDLOG_WARN
#define C8LOG_ERROR SPDLOG_ERROR
#define C8LOG_CRITICAL SPDLOG_CRITICAL
// and the specific logger versions
#define C8LOG_LOGGER_TRACE SPDLOG_LOGGER_TRACE
#define C8LOG_LOGGER_DEBUG SPDLOG_LOGGER_DEBUG
#define C8LOG_LOGGER_INFO SPDLOG_LOGGER_INFO
#define C8LOG_LOGGER_WARN SPDLOG_LOGGER_WARN
#define C8LOG_LOGGER_ERROR SPDLOG_LOGGER_ERROR
#define C8LOG_LOGGER_CRITICAL SPDLOG_LOGGER_CRITICAL
} // namespace corsika::logging
Source diff could not be displayed: it is too large. Options to address this: view the blob.
#!/usr/bin/env python3
import sys, math, itertools, re, csv, pprint
import xml.etree.ElementTree as ET
from collections import OrderedDict
import pickle
import io
GeVfm = 0.19732696312541853
c_speed_of_light = 29.9792458e10 # mm / s
# for nuclear masses
mneutron = 0.9395654133 # GeV
mproton = 0.9382720813 # GeV
##############################################################
#
# reading xml input data, return line by line particle data
#
def parsePythia(filename):
tree = ET.parse(filename)
root = tree.getroot()
for particle in root.iter("particle"):
name = particle.attrib["name"]
antiName = "Unknown"
if ("antiName" in particle.attrib):
antiName = particle.attrib["antiName"]
pdg_id = int(particle.attrib["id"])
mass = float(particle.attrib["m0"]) # GeV
electric_charge = int(particle.attrib["chargeType"]) # in units of e/3
ctau = 0.
if pdg_id in (11, 12, 14, 16, 22, 2212): # these are the stable particles !
ctau = float('Inf')
elif 'tau0' in particle.attrib:
ctau = float(particle.attrib['tau0']) # mm / c
elif 'mWidth' in particle.attrib:
ctau = GeVfm / float(particle.attrib['mWidth']) * 1e-15 * 1000.0 # mm / s
elif pdg_id in (0, 423, 433, 4312, 4322, 5112, 5222): # those are certainly not stable....
ctau = 0.
else:
print ("missing lifetime: " + str(pdg_id) + " " + str(name))
sys.exit(1)
yield (pdg_id, name, mass, electric_charge, antiName, ctau/c_speed_of_light)
# TODO: read decay channels from child elements
if "antiName" in particle.attrib:
yield (-pdg_id, antiName, mass, -electric_charge, name, ctau/c_speed_of_light)
##############################################################
#
# reading xml input data, return line by line particle data
#
def parseNuclei(filename):
tree = ET.parse(filename)
root = tree.getroot()
for particle in root.iter("particle"):
name = particle.attrib["name"]
antiName = "Unknown"
if ("antiName" in particle.attrib):
antiName = particle.attrib["antiName"]
pdg_id = int(particle.attrib["id"])
A = int(particle.attrib["A"])
Z = int(particle.attrib["Z"])
# mass in GeV
if ("mass" in particle.attrib):
mass = particle.attrib["mass"]
else:
mass = (A-Z)*mneutron + Z*mproton
electric_charge = Z*3 # in units of e/3
ctau = float('Inf')
yield (pdg_id, name, mass, electric_charge, antiName, ctau/c_speed_of_light, A, Z)
##############################################################
#
# returns dict with particle codes and class names
#
def class_names(filename):
tree = ET.parse(filename)
root = tree.getroot()
map = {}
for particle in root.iter("particle"):
name = particle.attrib["classname"]
pdg_id = int(particle.attrib["pdgID"])
map[pdg_id] = name
return map
##############################################################
#
# Automatically produce a string qualifying as C++ class name
#
# This function produces names of type "DeltaPlusPlus"
#
def c_identifier_camel(name):
orig = name
name = name[0].upper() + name[1:].lower() # all lower case
for c in "() /": # replace funny characters
name = name.replace(c, "_")
name = name.replace("bar", "Bar")
name = name.replace("*", "Star")
name = name.replace("'", "Prime")
name = name.replace("+", "Plus")
name = name.replace("-", "Minus")
# move "Bar" to end of name
ibar = name.find('Bar')
if ibar > 0 and ibar < len(name)-3:
name = name[:ibar] + name[ibar+3:] + 'Bar'
# cleanup "_"s
while True:
tmp = name.replace("__", "_")
if tmp == name:
break
else:
name = tmp
name.strip("_")
# remove all "_", if this does not by accident concatenate two numbers
istart = 0
while True:
i = name.find('_', istart)
if i < 1 or i > len(name)-1:
break
istart = i
if name[i-1].isdigit() and name[i+1].isdigit():
# there is a number on both sides
break
name = name[:i] + name[i+1:]
# and last, for example: make NuE out of Nue
if name[i-1].islower() and name[i].islower():
if i < len(name)-1:
name = name[:i] + name[i].upper() + name[i+1:]
else:
name = name[:i] + name[i].upper()
# check if name is valid C++ identifier
pattern = re.compile(r'^[a-zA-Z_][a-zA-Z_0-9]*$')
if pattern.match(name):
return name
else:
raise Exception("could not generate C identifier for '{:s}': result '{:s}'".format(orig, name))
##########################################################
#
# returns dict containing all data from pythia-xml input
#
def read_pythia_db(filename, particle_db, classnames):
counter = itertools.count(len(particle_db))
for (pdg, name, mass, electric_charge, antiName, lifetime) in parsePythia(filename):
c_id = "Unknown"
if pdg in classnames:
c_id = classnames[pdg]
else:
c_id = c_identifier_camel(name) # the camel case names
hadron =abs(pdg) > 100
if c_id in particle_db.keys():
raise RuntimeError("particle '{:s}' already known (new PDG id {:d}, stored PDG id: {:d})".format(c_id, pdg, particle_db[c_id]['pdg']))
particle_db[c_id] = {
"name" : name,
"antiName" : antiName,
"pdg" : pdg,
"mass" : mass, # in GeV
"electric_charge" : electric_charge, # in e/3
"lifetime" : lifetime,
"ngc_code" : next(counter),
"isNucleus" : False,
"isHadron" : hadron,
}
return particle_db
##########################################################
#
# returns dict containing all data from pythia-xml input
#
def read_nuclei_db(filename, particle_db, classnames):
counter = itertools.count(len(particle_db))
for (pdg, name, mass, electric_charge, antiName, lifetime, A, Z) in parseNuclei(filename):
c_id = "Unknown"
if pdg in classnames:
c_id = classnames[pdg]
else:
c_id = c_identifier_camel(name)
particle_db[c_id] = {
"name" : name,
"antiName" : antiName,
"pdg" : pdg,
"mass" : mass, # in GeV
"electric_charge" : electric_charge, # in e/3
"lifetime" : lifetime,
"ngc_code" : next(counter),
"A" : A,
"Z" : Z,
"isNucleus" : True,
"isHadron" : True,
}
return particle_db
###############################################################
#
# build conversion table PDG -> ngc
#
def gen_conversion_PDG_ngc(particle_db):
# todo: find a optimum value, think about cache miss with array vs lookup time with map
P_MAX = 500 # the maximum PDG code that is still filled into the table
conversionDict = dict()
conversionTable = [None] * (2*P_MAX + 1)
for cId, p in particle_db.items():
pdg = p['pdg']
if abs(pdg) < P_MAX:
if conversionTable[pdg + P_MAX]:
raise Exception("table entry already occupied")
else:
conversionTable[pdg + P_MAX] = cId
else:
if pdg in conversionDict.keys():
raise Exception(f"map entry {pdg} already occupied")
else:
conversionDict[pdg] = cId
output = io.StringIO()
def oprint(*args, **kwargs):
print(*args, **kwargs, file=output)
oprint(f"static std::array<Code, {len(conversionTable)}> constexpr conversionArray {{")
for ngc in conversionTable:
oprint(" Code::{0},".format(ngc if ngc else "Unknown"))
oprint("};")
oprint()
oprint("static std::map<PDGCode, Code> const conversionMap {")
for ngc in conversionDict.values():
oprint(f" {{PDGCode::{ngc}, Code::{ngc}}},")
oprint("};")
oprint()
return output.getvalue()
###############################################################
#
# return string with enum of all internal particle codes
#
def gen_internal_enum(particle_db):
string = ("enum class Code : CodeIntType {\n"
" FirstParticle = 1, // if you want to loop over particles, you want to start with \"1\" \n") # identifier for eventual loops...
for k in filter(lambda k: "ngc_code" in particle_db[k], particle_db):
last_ngc_id = particle_db[k]['ngc_code']
string += " {key:s} = {code:d},\n".format(key = k, code = last_ngc_id)
string += (" LastParticle = {:d},\n" # identifier for eventual loops...
"}};").format(last_ngc_id + 1)
if last_ngc_id > 0x7fff: # does not fit into int16_t
raise Exception("Integer overflow in internal particle code definition prevented!")
return string
###############################################################
#
# return string with enum of all PDG particle codes
#
def gen_pdg_enum(particle_db):
string = "enum class PDGCode : PDGCodeType {\n"
for cId in particle_db:
pdgCode = particle_db[cId]['pdg']
string += " {key:s} = {code:d},\n".format(key = cId, code = pdgCode)
string += " };\n"
return string
###############################################################
#
# return string with all data arrays
#
def gen_properties(particle_db):
# number of particles, size of tables
string = "static constexpr std::size_t size = {size:d};\n".format(size = len(particle_db))
string += "\n"
# all particle initializer_list
string += "constexpr std::initializer_list<Code> all_particles = {"
for k in particle_db:
string += " Code::{name:s},\n".format(name = k)
string += "};\n"
string += "\n"
# particle masses table
string += "static constexpr std::array<corsika::units::si::HEPMassType const, size> masses = {\n"
for p in particle_db.values():
string += " {mass:e} * 1e9 * corsika::units::si::electronvolt, // {name:s}\n".format(mass = p['mass'], name = p['name'])
string += "};\n\n"
# PDG code table
string += "static constexpr std::array<PDGCode, size> pdg_codes = {\n"
for p in particle_db.keys():
string += f" PDGCode::{p},\n"
string += "};\n"
# name string table
string += "static const std::array<std::string const, size> names = {\n"
for p in particle_db.values():
string += " \"{name:s}\",\n".format(name = p['name'])
string += "};\n"
# electric charges table
string += "static constexpr std::array<int16_t, size> electric_charges = {\n"
for p in particle_db.values():
string += " {charge:d},\n".format(charge = p['electric_charge'])
string += "};\n"
# anti-particle table
# string += "static constexpr std::array<size, size> anti_particle = {\n"
# for p in particle_db.values():
# string += " {anti:d},\n".format(charge = p['anti_particle'])
# string += "};\n"
# lifetime
#string += "static constexpr std::array<corsika::units::si::TimeType const, size> lifetime = {\n"
string += "static constexpr std::array<double const, size> lifetime = {\n"
for p in particle_db.values():
if p['lifetime'] == float("Inf") :
string += " std::numeric_limits<double>::infinity(), \n" # * corsika::units::si::second, \n"
else :
string += " {tau:e}, \n".format(tau = p['lifetime'])
#string += " {tau:e} * corsika::units::si::second, \n".format(tau = p['lifetime'])
string += "};\n"
# is Hadron flag
string += "static constexpr std::array<bool, size> isHadron = {\n"
for p in particle_db.values():
value = 'false'
if p['isHadron']:
value = 'true'
string += " {val},\n".format(val = value)
string += "};\n"
### nuclear data ###
# nucleus mass number A
string += "static constexpr std::array<int16_t, size> nucleusA = {\n"
for p in particle_db.values():
A = p.get('A', 0)
string += " {val},\n".format(val = A)
string += "};\n"
# nucleus charge number Z
string += "static constexpr std::array<int16_t, size> nucleusZ = {\n"
for p in particle_db.values():
Z = p.get('Z', 0)
string += " {val},\n".format(val = Z)
string += "};\n"
return string
###############################################################
#
# return string with a list of classes for all particles
#
def gen_classes(particle_db):
string = "// list of C++ classes to access particle properties"
for cname in particle_db:
antiP = 'Unknown'
for cname_anti in particle_db:
if (particle_db[cname_anti]['name'] == particle_db[cname]['antiName']):
antiP = cname_anti
break
string += "\n"
string += "/** @class " + cname + "\n\n"
string += " * Particle properties are taken from the PYTHIA8 ParticleData.xml file:<br>\n"
string += " * - pdg=" + str(particle_db[cname]['pdg']) +"\n"
string += " * - mass=" + str(particle_db[cname]['mass']) + " GeV \n"
string += " * - charge= " + str(particle_db[cname]['electric_charge']/3) + " \n"
string += " * - name=" + str(cname) + "\n"
string += " * - anti=" + str(antiP) + "\n"
if (particle_db[cname]['isNucleus']):
string += " * - nuclear A=" + str(particle_db[cname]['A']) + "\n"
string += " * - nuclear Z=" + str(particle_db[cname]['Z']) + "\n"
string += "*/\n\n"
string += "class " + cname + " {\n"
string += " public:\n"
string += " static constexpr Code GetCode() { return Type; }\n"
string += " static constexpr corsika::units::si::HEPMassType GetMass() { return corsika::particles::GetMass(Type); }\n"
string += " static constexpr corsika::units::si::ElectricChargeType GetCharge() { return corsika::particles::GetCharge(Type); }\n"
string += " static constexpr int16_t GetChargeNumber() { return corsika::particles::GetChargeNumber(Type); }\n"
string += " static std::string const& GetName() { return corsika::particles::GetName(Type); }\n"
string += " static constexpr Code GetAntiParticle() { return AntiType; }\n"
string += " static constexpr bool IsNucleus() { return corsika::particles::IsNucleus(Type); }\n"
string += " static constexpr int16_t GetNucleusA() { return corsika::particles::GetNucleusA(Type); }\n"
string += " static constexpr int16_t GetNucleusZ() { return corsika::particles::GetNucleusZ(Type); }\n"
string += " static constexpr Code Type = Code::" + cname + ";\n"
string += " static constexpr Code AntiType = Code::" + antiP + ";\n"
string += " private:\n"
string += " static constexpr CodeIntType TypeIndex = static_cast<CodeIntType const>(Type);\n"
string += "};\n"
return string
###############################################################
#
#
def inc_start():
string = ('// generated by pdxml_reader.py\n'
'// MANUAL EDITS ON OWN RISK. THEY WILL BE OVERWRITTEN. \n'
'namespace corsika::particles {\n')
return string
###############################################################
#
#
def detail_start():
string = ('namespace detail {\n\n')
return string
###############################################################
#
#
def detail_end():
string = "\n} // end namespace detail\n"
return string
###############################################################
#
#
def inc_end():
string = "\n} // end namespace corsika::particles\n"
return string
###################################################################
#
# Serialize particle_db into file
#
def serialize_particle_db(particle_db, file):
pickle.dump(particle_db, file)
###################################################################
#
# Main function
#
if __name__ == "__main__":
if len(sys.argv) != 4:
print("usage: {:s} <Pythia8.xml> <Nuclei.xml> <ClassNames.xml>".format(sys.argv[0]), file=sys.stderr)
sys.exit(1)
print("\n pdxml_reader.py: automatically produce particle properties from input files\n")
names = class_names(sys.argv[3])
particle_db = OrderedDict()
read_pythia_db(sys.argv[1], particle_db, names)
read_nuclei_db(sys.argv[2], particle_db, names)
with open("GeneratedParticleProperties.inc", "w") as f:
print(inc_start(), file=f)
print(gen_internal_enum(particle_db), file=f)
print(gen_pdg_enum(particle_db), file=f)
print(detail_start(), file=f)
print(gen_properties(particle_db), file=f)
print(gen_conversion_PDG_ngc(particle_db), file=f)
print(detail_end(), file=f)
print(gen_classes(particle_db), file=f)
print(inc_end(), file=f)
with open("particle_db.pkl", "wb") as f:
serialize_particle_db(particle_db, f)
/*
* (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/process/BaseProcess.h>
namespace corsika::process {
class NullModel : public corsika::process::BaseProcess<NullModel> {
public:
NullModel() = default;
~NullModel() = default;
};
} // namespace corsika::process
/*
* (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
namespace corsika::process {
/**
* A traits marker to track which BaseProcess is also a ProcessSequence
**/
template <typename TClass>
struct is_process_sequence : std::false_type {};
template <typename TClass>
bool constexpr is_process_sequence_v = is_process_sequence<TClass>::value;
/**
* A traits marker to identiy a BaseProcess that is also SwitchProcessesSequence
**/
template <typename TClass>
struct is_switch_process_sequence : std::false_type {};
template <typename TClass>
bool constexpr is_switch_process_sequence_v = is_switch_process_sequence<TClass>::value;
/**
* A traits marker to identify ProcessSequence that contain a StackProcess
**/
template <typename TClass>
struct contains_stack_process : std::false_type {};
template <typename TClass>
bool constexpr contains_stack_process_v = contains_stack_process<TClass>::value;
} // namespace corsika::process
/*
* (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/process/BaseProcess.h>
#include <corsika/process/ProcessTraits.h>
#include <corsika/process/BoundaryCrossingProcess.h>
#include <corsika/process/ContinuousProcess.h>
#include <corsika/process/DecayProcess.h>
#include <corsika/process/InteractionProcess.h>
#include <corsika/process/ProcessReturn.h>
#include <corsika/process/SecondariesProcess.h>
#include <corsika/process/StackProcess.h>
#include <corsika/units/PhysicalUnits.h>
#include <cmath>
#include <limits>
#include <type_traits>
namespace corsika::process {
// enum for the process switch selection: identify if First or
// Second process branch should be used.
enum class SwitchResult { First, Second };
/**
\class SwitchProcessSequence
A compile time static list of processes that uses an internal
TSelect class to switch between different versions of processes
(or process sequence).
TProcess1 and TProcess2 must be derived from BaseProcess and are
both references if possible (lvalue), otherwise (rvalue) they are
just classes. This allows us to handle both, rvalue as well as
lvalue Processes in the SwitchProcessSequence.
TSelect has to implement a `operator()(const Particle&)` and has to
return either SwitchResult::First or SwitchResult::Second. Note:
TSelect may absolutely also use random numbers to sample between
its results. This can be used to achieve arbitrarily smooth
transition or mixtures of processes.
Warning: do not put StackProcess into a SwitchProcessSequence
since this makes no sense. The StackProcess acts on an entire
particle stack and not on indiviidual particles.
\comment See also class ProcessSequence
**/
template <typename TProcess1, typename TProcess2, typename TSelect>
class SwitchProcessSequence
: public BaseProcess<SwitchProcessSequence<TProcess1, TProcess2, TSelect>> {
using TProcess1type = typename std::decay_t<TProcess1>;
using TProcess2type = typename std::decay_t<TProcess2>;
static bool constexpr t1ProcSeq = is_process_sequence_v<TProcess1type>;
static bool constexpr t2ProcSeq = is_process_sequence_v<TProcess2type>;
// make sure only BaseProcess types TProcess1/2 are passed
static_assert(std::is_base_of_v<BaseProcess<TProcess1type>, TProcess1type>,
"can only use process derived from BaseProcess in "
"SwitchProcessSequence, for Process 1");
static_assert(std::is_base_of_v<BaseProcess<TProcess2type>, TProcess2type>,
"can only use process derived from BaseProcess in "
"SwitchProcessSequence, for Process 2");
// make sure none of TProcess1/2 is a StackProcess
static_assert(!std::is_base_of_v<StackProcess<TProcess1type>, TProcess1type>,
"cannot use StackProcess in SwitchProcessSequence, for Process 1");
static_assert(!std::is_base_of_v<StackProcess<TProcess2type>, TProcess2type>,
"cannot use StackProcess in SwitchProcessSequence, for Process 2");
// if TProcess1/2 are already ProcessSequences, make sure they do not contain
// any StackProcess
static_assert(!contains_stack_process_v<TProcess1type>,
"cannot use StackProcess in SwitchProcessSequence, remove from "
"ProcessSequence 1");
static_assert(!contains_stack_process_v<TProcess2type>,
"cannot use StackProcess in SwitchProcessSequence, remove from "
"ProcessSequence 2");
TSelect select_; // this is a reference, if possible
TProcess1 A_; // this is a reference, if possible
TProcess2 B_; // this is a reference, if possible
public:
SwitchProcessSequence(TProcess1 in_A, TProcess2 in_B, TSelect sel)
: select_(sel)
, A_(in_A)
, B_(in_B) {}
template <typename TParticle, typename TVTNType>
EProcessReturn DoBoundaryCrossing(TParticle& particle, TVTNType const& from,
TVTNType const& to) {
switch (select_(particle)) {
case SwitchResult::First: {
if constexpr (std::is_base_of_v<BoundaryCrossingProcess<TProcess1type>,
TProcess1type> ||
t1ProcSeq) {
return A_.DoBoundaryCrossing(particle, from, to);
}
break;
}
case SwitchResult::Second: {
if constexpr (std::is_base_of_v<BoundaryCrossingProcess<TProcess2type>,
TProcess2type> ||
t2ProcSeq) {
return B_.DoBoundaryCrossing(particle, from, to);
}
break;
}
}
return EProcessReturn::eOk;
}
template <typename TParticle, typename TTrack>
inline EProcessReturn DoContinuous(TParticle& particle, TTrack& vT) {
switch (select_(particle)) {
case SwitchResult::First: {
if constexpr (std::is_base_of_v<ContinuousProcess<TProcess1type>,
TProcess1type> ||
t1ProcSeq) {
return A_.DoContinuous(particle, vT);
}
break;
}
case SwitchResult::Second: {
if constexpr (std::is_base_of_v<ContinuousProcess<TProcess2type>,
TProcess2type> ||
t2ProcSeq) {
return B_.DoContinuous(particle, vT);
}
break;
}
}
return EProcessReturn::eOk;
}
template <typename TSecondaries>
inline void DoSecondaries(TSecondaries& vS) {
const auto& particle = vS.parent();
switch (select_(particle)) {
case SwitchResult::First: {
if constexpr (std::is_base_of_v<SecondariesProcess<TProcess1type>,
TProcess1type> ||
t1ProcSeq) {
A_.DoSecondaries(vS);
}
break;
}
case SwitchResult::Second: {
if constexpr (std::is_base_of_v<SecondariesProcess<TProcess2type>,
TProcess2type> ||
t2ProcSeq) {
B_.DoSecondaries(vS);
}
break;
}
}
}
template <typename TParticle, typename TTrack>
inline corsika::units::si::LengthType MaxStepLength(TParticle& particle,
TTrack& vTrack) {
switch (select_(particle)) {
case SwitchResult::First: {
if constexpr (std::is_base_of_v<ContinuousProcess<TProcess1type>,
TProcess1type> ||
t1ProcSeq) {
return A_.MaxStepLength(particle, vTrack);
}
break;
}
case SwitchResult::Second: {
if constexpr (std::is_base_of_v<ContinuousProcess<TProcess2type>,
TProcess2type> ||
t2ProcSeq) {
return B_.MaxStepLength(particle, vTrack);
}
break;
}
}
// if no other process in the sequence implements it
return std::numeric_limits<double>::infinity() * corsika::units::si::meter;
}
template <typename TParticle>
inline corsika::units::si::GrammageType GetInteractionLength(TParticle&& particle) {
return 1. / GetInverseInteractionLength(particle);
}
template <typename TParticle>
inline corsika::units::si::InverseGrammageType GetInverseInteractionLength(
TParticle&& particle) {
using namespace corsika::units::si;
switch (select_(particle)) {
case SwitchResult::First: {
if constexpr (std::is_base_of_v<InteractionProcess<TProcess1type>,
TProcess1type> ||
t1ProcSeq) {
return A_.GetInverseInteractionLength(particle);
}
break;
}
case SwitchResult::Second: {
if constexpr (std::is_base_of_v<InteractionProcess<TProcess2type>,
TProcess2type> ||
t2ProcSeq) {
return B_.GetInverseInteractionLength(particle);
}
break;
}
}
return 0 * meter * meter / gram; // default value
}
template <typename TSecondaryView>
inline EProcessReturn SelectInteraction(
TSecondaryView& view,
[[maybe_unused]] corsika::units::si::InverseGrammageType lambda_inv_select,
[[maybe_unused]] corsika::units::si::InverseGrammageType lambda_inv_sum =
corsika::units::si::InverseGrammageType::zero()) {
switch (select_(view.parent())) {
case SwitchResult::First: {
if constexpr (t1ProcSeq) {
// if A_ is a process sequence --> check inside
const EProcessReturn ret =
A_.SelectInteraction(view, lambda_inv_select, lambda_inv_sum);
// if A_ did succeed, stop routine. Not checking other static branch B_.
if (ret != EProcessReturn::eOk) { return ret; }
} else if constexpr (std::is_base_of_v<InteractionProcess<TProcess1type>,
TProcess1type>) {
// if this is not a ContinuousProcess --> evaluate probability
lambda_inv_sum += A_.GetInverseInteractionLength(view.parent());
// check if we should execute THIS process and then EXIT
if (lambda_inv_select < lambda_inv_sum) {
A_.DoInteraction(view);
return EProcessReturn::eInteracted;
}
} // end branch A_
break;
}
case SwitchResult::Second: {
if constexpr (t2ProcSeq) {
// if B_ is a process sequence --> check inside
return B_.SelectInteraction(view, lambda_inv_select, lambda_inv_sum);
} else if constexpr (std::is_base_of_v<InteractionProcess<TProcess2type>,
TProcess2type>) {
// if this is not a ContinuousProcess --> evaluate probability
lambda_inv_sum += B_.GetInverseInteractionLength(view.parent());
// check if we should execute THIS process and then EXIT
if (lambda_inv_select < lambda_inv_sum) {
B_.DoInteraction(view);
return EProcessReturn::eInteracted;
}
} // end branch B_
break;
}
}
return EProcessReturn::eOk;
}
template <typename TParticle>
inline corsika::units::si::TimeType GetLifetime(TParticle&& particle) {
return 1. / GetInverseLifetime(particle);
}
template <typename TParticle>
inline corsika::units::si::InverseTimeType GetInverseLifetime(TParticle&& particle) {
using namespace corsika::units::si;
switch (select_(particle)) {
case SwitchResult::First: {
if constexpr (std::is_base_of_v<DecayProcess<TProcess1type>, TProcess1type> ||
t1ProcSeq) {
return A_.GetInverseLifetime(particle);
}
break;
}
case SwitchResult::Second: {
if constexpr (std::is_base_of_v<DecayProcess<TProcess2type>, TProcess2type> ||
t2ProcSeq) {
return B_.GetInverseLifetime(particle);
}
break;
}
}
return 0 / second; // default value
}
// select decay process
template <typename TSecondaryView>
inline EProcessReturn SelectDecay(
TSecondaryView& view,
[[maybe_unused]] corsika::units::si::InverseTimeType decay_inv_select,
[[maybe_unused]] corsika::units::si::InverseTimeType decay_inv_sum =
corsika::units::si::InverseTimeType::zero()) {
switch (select_(view.parent())) {
case SwitchResult::First: {
if constexpr (t1ProcSeq) {
// if A_ is a process sequence --> check inside
const EProcessReturn ret =
A_.SelectDecay(view, decay_inv_select, decay_inv_sum);
// if A_ did succeed, stop routine here (not checking other static branch B_)
if (ret != EProcessReturn::eOk) { return ret; }
} else if constexpr (std::is_base_of_v<DecayProcess<TProcess1type>,
TProcess1type>) {
// if this is not a ContinuousProcess --> evaluate probability
decay_inv_sum += A_.GetInverseLifetime(view.parent());
// check if we should execute THIS process and then EXIT
if (decay_inv_select < decay_inv_sum) {
// more pedagogical: rndm_select < decay_inv_sum / decay_inv_tot
A_.DoDecay(view);
return EProcessReturn::eDecayed;
}
} // end branch A_
break;
}
case SwitchResult::Second: {
if constexpr (t2ProcSeq) {
// if B_ is a process sequence --> check inside
return B_.SelectDecay(view, decay_inv_select, decay_inv_sum);
} else if constexpr (std::is_base_of_v<DecayProcess<TProcess2type>,
TProcess2type>) {
// if this is not a ContinuousProcess --> evaluate probability
decay_inv_sum += B_.GetInverseLifetime(view.parent());
// check if we should execute THIS process and then EXIT
if (decay_inv_select < decay_inv_sum) {
B_.DoDecay(view);
return EProcessReturn::eDecayed;
}
} // end branch B_
break;
}
}
return EProcessReturn::eOk;
}
};
// the method `select(proc1,proc1,selector)` assembles many
// BaseProcesses, and ProcessSequences into a SwitchProcessSequence,
// all combinatorics must be allowed, this is why we define a macro
// to define all combinations here:
// Both, Processes1 and Processes2, must derive from BaseProcesses
template <typename TProcess1, typename TProcess2, typename TSelect>
inline typename std::enable_if_t<
std::is_base_of_v<BaseProcess<typename std::decay_t<TProcess1>>,
typename std::decay_t<TProcess1>> &&
std::is_base_of_v<BaseProcess<typename std::decay_t<TProcess2>>,
typename std::decay_t<TProcess2>>,
SwitchProcessSequence<TProcess1, TProcess2, TSelect>>
select(TProcess1&& vA, TProcess2&& vB, TSelect selector) {
return SwitchProcessSequence<TProcess1, TProcess2, TSelect>(vA, vB, selector);
}
/// traits marker to identify objectas ProcessSequence
template <typename TProcess1, typename TProcess2, typename TSelect>
struct is_process_sequence<
corsika::process::SwitchProcessSequence<TProcess1, TProcess2, TSelect>>
: std::true_type {};
/// traits marker to identify objectas SwitchProcessSequence
template <typename TProcess1, typename TProcess2, typename TSelect>
struct is_switch_process_sequence<
corsika::process::SwitchProcessSequence<TProcess1, TProcess2, TSelect>>
: std::true_type {};
} // namespace corsika::process