diff --git a/Data b/Data deleted file mode 160000 index 4d1785e74a7bf6769ee016509b357e63d7117438..0000000000000000000000000000000000000000 --- a/Data +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4d1785e74a7bf6769ee016509b357e63d7117438 diff --git a/Documentation/Examples/em_shower.cc b/Documentation/Examples/em_shower.cc deleted file mode 100644 index 07c4cfb7b8dac86bb1dc389fc1c72ab896a00c75..0000000000000000000000000000000000000000 --- a/Documentation/Examples/em_shower.cc +++ /dev/null @@ -1,184 +0,0 @@ -/* - * (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/cascade/Cascade.h> -#include <corsika/environment/Environment.h> -#include <corsika/environment/LayeredSphericalAtmosphereBuilder.h> -#include <corsika/environment/NuclearComposition.h> -#include <corsika/environment/ShowerAxis.h> -#include <corsika/geometry/Plane.h> -#include <corsika/geometry/Sphere.h> -#include <corsika/process/ProcessSequence.h> -#include <corsika/process/StackProcess.h> -#include <corsika/process/longitudinal_profile/LongitudinalProfile.h> -#include <corsika/process/observation_plane/ObservationPlane.h> -#include <corsika/process/particle_cut/ParticleCut.h> -#include <corsika/process/proposal/ContinuousProcess.h> -#include <corsika/process/proposal/Interaction.h> -#include <corsika/process/track_writer/TrackWriter.h> -#include <corsika/random/RNGManager.h> -#include <corsika/setup/SetupStack.h> -#include <corsika/setup/SetupTrajectory.h> -#include <corsika/units/PhysicalUnits.h> -#include <corsika/utl/CorsikaFenv.h> -#include <corsika/process/interaction_counter/InteractionCounter.hpp> - -#include <corsika/logging/Logging.h> - -#include <iomanip> -#include <iostream> -#include <limits> -#include <string> -#include <typeinfo> - -using namespace corsika; -using namespace corsika::process; -using namespace corsika::units; -using namespace corsika::particles; -using namespace corsika::random; -using namespace corsika::geometry; -using namespace corsika::environment; - -using namespace std; -using namespace corsika::units::si; - -void registerRandomStreams() { - random::RNGManager::GetInstance().RegisterRandomStream("cascade"); - random::RNGManager::GetInstance().RegisterRandomStream("proposal"); - random::RNGManager::GetInstance().SeedAll(); -} - -template <typename T> -using MyExtraEnv = environment::MediumPropertyModel<environment::UniformMagneticField<T>>; - -int main(int argc, char** argv) { - - logging::SetLevel(logging::level::info); - - if (argc != 2) { - std::cerr << "usage: em_shower <energy/GeV>" << std::endl; - return 1; - } - feenableexcept(FE_INVALID); - // initialize random number sequence(s) - registerRandomStreams(); - - // setup environment, geometry - using EnvType = setup::Environment; - EnvType env; - const CoordinateSystem& rootCS = env.GetCoordinateSystem(); - Point const center{rootCS, 0_m, 0_m, 0_m}; - auto builder = environment::make_layered_spherical_atmosphere_builder< - setup::EnvironmentInterface, - MyExtraEnv>::create(center, units::constants::EarthRadius::Mean, - environment::Medium::AirDry1Atm, - geometry::Vector{rootCS, 0_T, 50_uT, 0_T}); - builder.setNuclearComposition( - {{particles::Code::Nitrogen, particles::Code::Oxygen}, - {0.7847f, 1.f - 0.7847f}}); // values taken from AIRES manual, Ar removed for now - - builder.addExponentialLayer(1222.6562_g / (1_cm * 1_cm), 994186.38_cm, 4_km); - builder.addExponentialLayer(1144.9069_g / (1_cm * 1_cm), 878153.55_cm, 10_km); - builder.addExponentialLayer(1305.5948_g / (1_cm * 1_cm), 636143.04_cm, 40_km); - builder.addExponentialLayer(540.1778_g / (1_cm * 1_cm), 772170.16_cm, 100_km); - builder.addLinearLayer(1e9_cm, 112.8_km); - builder.assemble(env); - - // setup particle stack, and add primary particle - setup::Stack stack; - stack.Clear(); - const Code beamCode = Code::Electron; - auto const mass = particles::GetMass(beamCode); - const HEPEnergyType E0 = 1_GeV * std::stof(std::string(argv[1])); - double theta = 0.; - auto const thetaRad = theta / 180. * M_PI; - - auto elab2plab = [](HEPEnergyType Elab, HEPMassType m) { - return sqrt((Elab - m) * (Elab + m)); - }; - HEPMomentumType P0 = elab2plab(E0, mass); - auto momentumComponents = [](double thetaRad, HEPMomentumType ptot) { - return std::make_tuple(ptot * sin(thetaRad), 0_eV, -ptot * cos(thetaRad)); - }; - - auto const [px, py, pz] = momentumComponents(thetaRad, P0); - auto plab = corsika::stack::MomentumVector(rootCS, {px, py, pz}); - cout << "input particle: " << beamCode << endl; - cout << "input angles: theta=" << theta << endl; - cout << "input momentum: " << plab.GetComponents() / 1_GeV << ", norm = " << plab.norm() - << endl; - - auto const observationHeight = 1.4_km + builder.getEarthRadius(); - auto const injectionHeight = 112.75_km + builder.getEarthRadius(); - auto const t = -observationHeight * cos(thetaRad) + - sqrt(-static_pow<2>(sin(thetaRad) * observationHeight) + - static_pow<2>(injectionHeight)); - Point const showerCore{rootCS, 0_m, 0_m, observationHeight}; - Point const injectionPos = - showerCore + - Vector<dimensionless_d>{rootCS, {-sin(thetaRad), 0, cos(thetaRad)}} * t; - - std::cout << "point of injection: " << injectionPos.GetCoordinates() << std::endl; - - stack.AddParticle( - std::tuple<particles::Code, units::si::HEPEnergyType, - corsika::stack::MomentumVector, geometry::Point, units::si::TimeType>{ - beamCode, E0, plab, injectionPos, 0_ns}); - - std::cout << "shower axis length: " << (showerCore - injectionPos).norm() * 1.02 - << std::endl; - - environment::ShowerAxis const showerAxis{injectionPos, - (showerCore - injectionPos) * 1.02, env}; - - // setup processes, decays and interactions - - // PROPOSAL processs proposal{...}; - process::particle_cut::ParticleCut cut(10_GeV, false, true); - process::proposal::Interaction proposal(env, cut.GetECut()); - process::proposal::ContinuousProcess em_continuous(env, cut.GetECut()); - process::interaction_counter::InteractionCounter proposalCounted(proposal); - - process::track_writer::TrackWriter trackWriter("tracks.dat"); - - // long. profile; columns for gamma, e+, e- still need to be added - process::longitudinal_profile::LongitudinalProfile longprof{showerAxis}; - - Plane const obsPlane(showerCore, Vector<dimensionless_d>(rootCS, {0., 0., 1.})); - process::observation_plane::ObservationPlane observationLevel( - obsPlane, Vector<dimensionless_d>(rootCS, {1., 0., 0.}), "particles.dat"); - - auto sequence = process::sequence(proposalCounted, em_continuous, longprof, cut, - observationLevel, trackWriter); - // define air shower object, run simulation - setup::Tracking tracking; - cascade::Cascade EAS(env, tracking, sequence, stack); - - // to fix the point of first interaction, uncomment the following two lines: - // EAS.SetNodes(); - // EAS.forceInteraction(); - - EAS.Run(); - - cut.ShowResults(); - em_continuous.showResults(); - observationLevel.ShowResults(); - const HEPEnergyType Efinal = cut.GetCutEnergy() + cut.GetInvEnergy() + - cut.GetEmEnergy() + em_continuous.energyLost() + - observationLevel.GetEnergyGround(); - cout << "total cut energy (GeV): " << Efinal / 1_GeV << endl - << "relative difference (%): " << (Efinal / E0 - 1) * 100 << endl; - observationLevel.Reset(); - cut.Reset(); - em_continuous.reset(); - - auto const hists = proposalCounted.GetHistogram(); - hists.saveLab("inthist_lab_emShower.npz"); - hists.saveCMS("inthist_cms_emShower.npz"); - longprof.save("longprof_emShower.txt"); -} diff --git a/Documentation/Examples/hybrid_MC.cc b/Documentation/Examples/hybrid_MC.cc deleted file mode 100644 index 2216e4b33b325b09bf4c209d154bf79ceda2bb66..0000000000000000000000000000000000000000 --- a/Documentation/Examples/hybrid_MC.cc +++ /dev/null @@ -1,280 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -/* clang-format off */ -// InteractionCounter used boost/histogram, which -// fails if boost/type_traits have been included before. Thus, we have -// to include it first... -#include <corsika/process/interaction_counter/InteractionCounter.hpp> -/* clang-format on */ -#include <corsika/cascade/Cascade.h> -#include <corsika/environment/Environment.h> -#include <corsika/environment/FlatExponential.h> -#include <corsika/environment/LayeredSphericalAtmosphereBuilder.h> -#include <corsika/environment/NuclearComposition.h> -#include <corsika/environment/ShowerAxis.h> -#include <corsika/geometry/Plane.h> -#include <corsika/geometry/Sphere.h> -#include <corsika/logging/Logging.h> -#include <corsika/process/ProcessSequence.h> -#include <corsika/process/SwitchProcessSequence.h> -#include <corsika/process/StackProcess.h> -#include <corsika/process/conex_source_cut/CONEXSourceCut.h> -#include <corsika/process/energy_loss/EnergyLoss.h> -#include <corsika/process/longitudinal_profile/LongitudinalProfile.h> -#include <corsika/process/observation_plane/ObservationPlane.h> -#include <corsika/process/on_shell_check/OnShellCheck.h> -#include <corsika/process/particle_cut/ParticleCut.h> -#include <corsika/process/pythia/Decay.h> -#include <corsika/process/sibyll/Decay.h> -#include <corsika/process/sibyll/Interaction.h> -#include <corsika/process/sibyll/NuclearInteraction.h> -#include <corsika/process/urqmd/UrQMD.h> -#include <corsika/random/RNGManager.h> -#include <corsika/setup/SetupStack.h> -#include <corsika/setup/SetupTrajectory.h> -#include <corsika/units/PhysicalUnits.h> -#include <corsika/utl/CorsikaFenv.h> - -#include <iomanip> -#include <iostream> -#include <limits> -#include <string> - -using namespace corsika; -using namespace corsika::process; -using namespace corsika::units; -using namespace corsika::particles; -using namespace corsika::random; -using namespace corsika::geometry; -using namespace corsika::environment; - -using namespace std; -using namespace corsika::units::si; - -void registerRandomStreams(const int seed) { - random::RNGManager::GetInstance().RegisterRandomStream("cascade"); - random::RNGManager::GetInstance().RegisterRandomStream("qgsjet"); - random::RNGManager::GetInstance().RegisterRandomStream("sibyll"); - random::RNGManager::GetInstance().RegisterRandomStream("pythia"); - random::RNGManager::GetInstance().RegisterRandomStream("urqmd"); - random::RNGManager::GetInstance().RegisterRandomStream("proposal"); - - if (seed == 0) - random::RNGManager::GetInstance().SeedAll(); - else - random::RNGManager::GetInstance().SeedAll(seed); -} - -template <typename T> -using MyExtraEnv = environment::MediumPropertyModel<environment::UniformMagneticField<T>>; - -int main(int argc, char** argv) { - - logging::SetLevel(logging::level::info); - - C8LOG_INFO("hybrid_MC"); - - if (argc < 4) { - std::cerr << "usage: hybrid_MC <A> <Z> <energy/GeV> [seed]" << std::endl; - std::cerr << " if no seed is given, a random seed is chosen" << std::endl; - return 1; - } - feenableexcept(FE_INVALID); - - int seed = 0; - if (argc > 4) seed = std::stoi(std::string(argv[4])); - // initialize random number sequence(s) - registerRandomStreams(seed); - - // setup environment, geometry - using EnvType = setup::Environment; - EnvType env; - const CoordinateSystem& rootCS = env.GetCoordinateSystem(); - Point const center{rootCS, 0_m, 0_m, 0_m}; - auto builder = environment::make_layered_spherical_atmosphere_builder< - setup::EnvironmentInterface, - MyExtraEnv>::create(center, units::constants::EarthRadius::Mean, - environment::Medium::AirDry1Atm, - geometry::Vector{rootCS, 0_T, 50_uT, 0_T}); - builder.setNuclearComposition( - {{particles::Code::Nitrogen, particles::Code::Oxygen}, - {0.7847f, 1.f - 0.7847f}}); // values taken from AIRES manual, Ar removed for now - - builder.addExponentialLayer(1222.6562_g / (1_cm * 1_cm), 994186.38_cm, 4_km); - builder.addExponentialLayer(1144.9069_g / (1_cm * 1_cm), 878153.55_cm, 10_km); - builder.addExponentialLayer(1305.5948_g / (1_cm * 1_cm), 636143.04_cm, 40_km); - builder.addExponentialLayer(540.1778_g / (1_cm * 1_cm), 772170.16_cm, 100_km); - builder.addLinearLayer(1e9_cm, 112.8_km); - builder.assemble(env); - - // setup particle stack, and add primary particle - setup::Stack stack; - stack.Clear(); - const Code beamCode = Code::Nucleus; - unsigned short const A = std::stoi(std::string(argv[1])); - unsigned short Z = std::stoi(std::string(argv[2])); - auto const mass = particles::GetNucleusMass(A, Z); - const HEPEnergyType E0 = 1_GeV * std::stof(std::string(argv[3])); - double theta = 0.; - auto const thetaRad = theta / 180. * M_PI; - - auto elab2plab = [](HEPEnergyType Elab, HEPMassType m) { - return sqrt((Elab - m) * (Elab + m)); - }; - HEPMomentumType P0 = elab2plab(E0, mass); - auto momentumComponents = [](double thetaRad, HEPMomentumType ptot) { - return std::make_tuple(ptot * sin(thetaRad), 0_eV, -ptot * cos(thetaRad)); - }; - - auto const [px, py, pz] = momentumComponents(thetaRad, P0); - auto plab = corsika::stack::MomentumVector(rootCS, {px, py, pz}); - cout << "input particle: " << beamCode << endl; - cout << "input angles: theta=" << theta << endl; - cout << "input momentum: " << plab.GetComponents() / 1_GeV << ", norm = " << plab.norm() - << endl; - - auto const observationHeight = 0_km + builder.getEarthRadius(); - auto const injectionHeight = 112.75_km + builder.getEarthRadius(); - auto const t = -observationHeight * cos(thetaRad) + - sqrt(-units::static_pow<2>(sin(thetaRad) * observationHeight) + - units::static_pow<2>(injectionHeight)); - Point const showerCore{rootCS, 0_m, 0_m, observationHeight}; - Point const injectionPos = - showerCore + - Vector<dimensionless_d>{rootCS, {-sin(thetaRad), 0, cos(thetaRad)}} * t; - - std::cout << "point of injection: " << injectionPos.GetCoordinates() << std::endl; - - if (A != 1) { - stack.AddParticle(std::tuple<particles::Code, units::si::HEPEnergyType, - corsika::stack::MomentumVector, geometry::Point, - units::si::TimeType, unsigned short, unsigned short>{ - beamCode, E0, plab, injectionPos, 0_ns, A, Z}); - - } else { - stack.AddParticle( - std::tuple<particles::Code, units::si::HEPEnergyType, - corsika::stack::MomentumVector, geometry::Point, units::si::TimeType>{ - particles::Code::Proton, E0, plab, injectionPos, 0_ns}); - } - - std::cout << "shower axis length: " << (showerCore - injectionPos).norm() * 1.02 - << std::endl; - - environment::ShowerAxis const showerAxis{injectionPos, - (showerCore - injectionPos) * 1.02, env}; - - // setup processes, decays and interactions - - process::sibyll::Interaction sibyll; - process::interaction_counter::InteractionCounter sibyllCounted(sibyll); - - process::sibyll::NuclearInteraction sibyllNuc(sibyll, env); - process::interaction_counter::InteractionCounter sibyllNucCounted(sibyllNuc); - - process::pythia::Decay decayPythia; - - // use sibyll decay routine for decays of particles unknown to pythia - process::sibyll::Decay decaySibyll{{ - Code::N1440Plus, - Code::N1440MinusBar, - Code::N1440_0, - Code::N1440_0Bar, - Code::N1710Plus, - Code::N1710MinusBar, - Code::N1710_0, - Code::N1710_0Bar, - - Code::Pi1300Plus, - Code::Pi1300Minus, - Code::Pi1300_0, - - Code::KStar0_1430_0, - Code::KStar0_1430_0Bar, - Code::KStar0_1430_Plus, - Code::KStar0_1430_MinusBar, - }}; - - decaySibyll.PrintDecayConfig(); - - process::particle_cut::ParticleCut cut{60_GeV, false, true}; - process::energy_loss::EnergyLoss eLoss{showerAxis, cut.GetECut()}; - - corsika::process::conex_source_cut::CONEXSourceCut conex( - center, showerAxis, t, injectionHeight, E0, - particles::GetPDG(particles::Code::Proton)); - - process::on_shell_check::OnShellCheck reset_particle_mass(1.e-3, 1.e-1, false); - - process::longitudinal_profile::LongitudinalProfile longprof{showerAxis}; - - Plane const obsPlane(showerCore, Vector<dimensionless_d>(rootCS, {0., 0., 1.})); - process::observation_plane::ObservationPlane observationLevel( - obsPlane, Vector<dimensionless_d>(rootCS, {1., 0., 0.}), "particles.dat"); - - process::UrQMD::UrQMD urqmd; - process::interaction_counter::InteractionCounter urqmdCounted{urqmd}; - - // assemble all processes into an ordered process list - struct EnergySwitch { - HEPEnergyType cutE_; - EnergySwitch(HEPEnergyType cutE) - : cutE_(cutE) {} - process::SwitchResult operator()(const setup::Stack::ParticleType& p) { - if (p.GetEnergy() < cutE_) - return process::SwitchResult::First; - else - return process::SwitchResult::Second; - } - }; - auto hadronSequence = - process::select(urqmdCounted, process::sequence(sibyllNucCounted, sibyllCounted), - EnergySwitch(55_GeV)); - auto decaySequence = process::sequence(decayPythia, decaySibyll); - auto sequence = process::sequence(hadronSequence, reset_particle_mass, decaySequence, - eLoss, cut, conex, longprof, observationLevel); - - // define air shower object, run simulation - setup::Tracking tracking; - cascade::Cascade EAS(env, tracking, sequence, stack); - - // to fix the point of first interaction, uncomment the following two lines: - // EAS.SetNodes(); - // EAS.forceInteraction(); - - EAS.Run(); - - cut.ShowResults(); - eLoss.showResults(); - observationLevel.ShowResults(); - const HEPEnergyType Efinal = cut.GetCutEnergy() + cut.GetInvEnergy() + - cut.GetEmEnergy() + eLoss.energyLost() + - observationLevel.GetEnergyGround(); - cout << "total cut energy (GeV): " << Efinal / 1_GeV << endl - << "relative difference (%): " << (Efinal / E0 - 1) * 100 << endl; - observationLevel.Reset(); - cut.Reset(); - eLoss.reset(); - - conex.SolveCE(); - - auto const hists = sibyllCounted.GetHistogram() + sibyllNucCounted.GetHistogram() + - urqmdCounted.GetHistogram(); - - hists.saveLab("inthist_lab.txt"); - hists.saveCMS("inthist_cms.txt"); - - hists.saveLab("inthist_lab.txt"); - hists.saveCMS("inthist_cms.txt"); - - longprof.save("longprof.txt"); - - std::ofstream finish("finished"); - finish << "run completed without error" << std::endl; -} diff --git a/Documentation/Examples/particle_list_example.cc b/Documentation/Examples/particle_list_example.cc deleted file mode 100644 index 342c08e7ff6e7cceec63f2aa3583f5fb46199297..0000000000000000000000000000000000000000 --- a/Documentation/Examples/particle_list_example.cc +++ /dev/null @@ -1,65 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/particles/ParticleProperties.h> -#include <corsika/process/ProcessSequence.h> -#include <corsika/process/qgsjetII/ParticleConversion.h> -#include <corsika/process/sibyll/ParticleConversion.h> -#include <corsika/setup/SetupEnvironment.h> -#include <corsika/units/PhysicalUnits.h> - -#include <iomanip> -#include <iostream> -#include <string> -using namespace corsika::units; -using namespace corsika::units::si; -using namespace corsika::particles; -using namespace std; - -// -// The example main program for a particle list -// -int main() { - - std::cout << "particle_list_example" << std::endl; - - cout << "------------------------------------------" - << "particles in CORSIKA" - << "------------------------------------------" << endl; - cout << std::setw(20) << "Name" - << " | " << std::setw(10) << "PDG-id" - << " | " << std::setw(10) << "SIBYLL-id" - << " | " << std::setw(10) << "QGSJETII-id" - << " | " << std::setw(18) << "PDG-mass (GeV)" - << " | " << std::setw(18) << "SIBYLL-mass (GeV)" - << " | " << endl; - cout << std::setw(104) << std::setfill('-') << "-" << endl; - for (auto p : getAllParticles()) { - if (!IsNucleus(p)) { - corsika::process::sibyll::SibyllCode sib_id = - corsika::process::sibyll::ConvertToSibyll(p); - auto const sib_mass = - (sib_id != corsika::process::sibyll::SibyllCode::Unknown - ? to_string(corsika::process::sibyll::GetSibyllMass(p) / 1_GeV) - : "--"); - auto const qgs_id = corsika::process::qgsjetII::ConvertToQgsjetII(p); - cout << std::setw(20) << std::setfill(' ') << p << " | " << std::setw(10) - << static_cast<int>(GetPDG(p)) << " | " << std::setw(10) - << (sib_id != corsika::process::sibyll::SibyllCode::Unknown - ? to_string(static_cast<int>(sib_id)) - : "--") - << " | " << std::setw(10) - << (qgs_id != corsika::process::qgsjetII::QgsjetIICode::Unknown - ? to_string(static_cast<int>(qgs_id)) - : "--") - << " | " << std::setw(18) << std::setprecision(5) << GetMass(p) / 1_GeV - << " | " << std::setw(18) << std::setprecision(5) << sib_mass << " | " << endl; - } - } - cout << std::setw(104) << std::setfill('-') << "-" << endl; -} diff --git a/Environment/IEmpty.hpp b/Environment/IEmpty.hpp deleted file mode 100644 index 6d45cd03c271868118d02d744fb4d6091e31cedf..0000000000000000000000000000000000000000 --- a/Environment/IEmpty.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * (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/units/PhysicalUnits.h> -#include <corsika/geometry/Trajectory.h> - -namespace corsika::environment { - - /** - * \class IEmpty - * - * intended for usage as default template argument for environments - * with no properties. For now, the ArclengthFromGrammage is - * mandatory, since it is used even in the most simple Cascade code. - * - * - IEmpty is the interface definition. - * - Empty<IEmpty> is a possible model implementation - * - **/ - - class IEmpty { - public: - virtual corsika::units::si::LengthType ArclengthFromGrammage( - corsika::geometry::LineTrajectory const&, - corsika::units::si::GrammageType) const = 0; - - virtual ~IEmpty() {} - }; - - template <typename TModel = IEmpty> - class Empty : public TModel { - public: - corsika::units::si::LengthType ArclengthFromGrammage( - corsika::geometry::LineTrajectory const&, - corsika::units::si::GrammageType) const { - return 0. * corsika::units::si::meter; - } - }; - -} // namespace corsika::environment diff --git a/Environment/IMagneticFieldModel.h b/Environment/IMagneticFieldModel.h deleted file mode 100644 index d27eda38ca03d1c0c6a35c6318e7dda7bb32da46..0000000000000000000000000000000000000000 --- a/Environment/IMagneticFieldModel.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * (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/geometry/Point.h> -#include <corsika/geometry/Vector.h> -#include <corsika/units/PhysicalUnits.h> - -namespace corsika::environment { - - /** - * An interface for magnetic field models. - * - * This is the base interface for magnetic field model mixins. - * - */ - template <typename Model> - class IMagneticFieldModel : public Model { - - // a type-alias for a magnetic field vector - using MagneticFieldVector = - corsika::geometry::Vector<corsika::units::si::magnetic_flux_density_d>; - - public: - /** - * Evaluate the magnetic field at a given location. - * - * @param point The location to evaluate the field at. - * @returns The magnetic field vector at that point. - */ - virtual auto GetMagneticField(corsika::geometry::Point const&) const - -> MagneticFieldVector = 0; - - /** - * A virtual default destructor. - */ - virtual ~IMagneticFieldModel() = default; // LCOV_EXCL_LINE - - }; // END: class MagneticField - -} // namespace corsika::environment diff --git a/Environment/IMediumPropertyModel.h b/Environment/IMediumPropertyModel.h deleted file mode 100644 index 759517af71ce73a95bb9fedecf19cbdf4b0ac6ab..0000000000000000000000000000000000000000 --- a/Environment/IMediumPropertyModel.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * (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/MediumProperties.h> - -#include <corsika/geometry/Point.h> -#include <corsika/units/PhysicalUnits.h> - -namespace corsika::environment { - - /** - * An interface for type of media, needed e.g. to determine energy losses - * - * This is the base interface for media types. - * - */ - template <typename Model> - class IMediumPropertyModel : public Model { - - public: - /** - * Evaluate the medium type at a given location. - * - * @param point The location to evaluate at. - * @returns The media type - */ - virtual Medium medium(corsika::geometry::Point const&) const = 0; - - /** - * A virtual default destructor. - */ - virtual ~IMediumPropertyModel() = default; - - }; // END: class IMediumTypeModel - -} // namespace corsika::environment diff --git a/Environment/IRefractiveIndexModel.h b/Environment/IRefractiveIndexModel.h deleted file mode 100644 index 29037aca77256377ead6c8e79ce3e9a2652fa415..0000000000000000000000000000000000000000 --- a/Environment/IRefractiveIndexModel.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * (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/geometry/Point.h> -#include <corsika/units/PhysicalUnits.h> - -namespace corsika::environment { - - /** - * An interface for refractive index models. - * - * This is the base interface for refractive index mixins. - * - */ - template <typename Model> - class IRefractiveIndexModel : public Model { - - public: - /** - * Evaluate the refractive index at a given location. - * - * @param point The location to evaluate at. - * @returns The refractive index at this point. - */ - virtual double GetRefractiveIndex(corsika::geometry::Point const&) const = 0; - - /** - * A virtual default destructor. - */ - virtual ~IRefractiveIndexModel() = default; - - }; // END: class IRefractiveIndexModel - -} // namespace corsika::environment diff --git a/Environment/MediumProperties.h b/Environment/MediumProperties.h deleted file mode 100644 index 969f34c0c51734e96e75a1c8a218269789b3afdc..0000000000000000000000000000000000000000 --- a/Environment/MediumProperties.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * (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 - -namespace corsika::environment { - - /** - * Medium types are useful most importantly for effective models - * like energy losses. a particular medium (mixture of components) - * may have specif properties not reflected by its mixture of - * components. - **/ - - enum class MediumType { - Unknown, - Element, - RadioactiveElement, - InorganicCompound, - OrganicCompound, - Polymer, - Mixture, - BiologicalDosimetry - }; - - enum class State { Unknown, Solid, Liquid, Gas, DiatomicGas }; - - enum class Medium : int16_t; - using MediumIntType = std::underlying_type<Medium>::type; - - /** - * \struct MediumData - * - * Simple object to group together a number of properties - * - **/ - struct MediumData { - std::string name_; - std::string pretty_name_; - double weight_; - int weight_significant_figure_; - int weight_error_last_digit_; - double Z_over_A_; - double sternheimer_density_; - double corrected_density_; - State state_; - MediumType type_; - std::string symbol_; - double Ieff_; - double Cbar_; - double x0_; - double x1_; - double aa_; - double sk_; - double dlt0_; - - std::string name() const { return name_; } - std::string pretty_name() const { return pretty_name_; } - double weight() const { return weight_; } - int weight_significant_figure() const { return weight_significant_figure_; } - int weight_error_last_digit() const { return weight_error_last_digit_; } - double Z_over_A() const { return Z_over_A_; } - double sternheimer_density() const { return sternheimer_density_; } - double corrected_density() const { return corrected_density_; } - State state() const { return state_; } - MediumType type() const { return type_; } - std::string symbol() const { return symbol_; } - double Ieff() const { return Ieff_; } - double Cbar() const { return Cbar_; } - double x0() const { return x0_; } - double x1() const { return x1_; } - double aa() const { return aa_; } - double sk() const { return sk_; } - double dlt0() const { return dlt0_; } - }; - -} // namespace corsika::environment - -#include <corsika/environment/GeneratedMediaProperties.inc> - -namespace corsika::environment { - - constexpr MediumData const& mediumData(Medium const m) { - return detail::medium_data[static_cast<MediumIntType>(m)]; - } - -} // namespace corsika::environment diff --git a/Environment/MediumPropertyModel.h b/Environment/MediumPropertyModel.h deleted file mode 100644 index bf05be4dcae04c5d56f1291e1e8caa886480a82b..0000000000000000000000000000000000000000 --- a/Environment/MediumPropertyModel.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * (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/IMediumPropertyModel.h> - -namespace corsika::environment { - - /** - * A uniform refractive index. - * - * This class returns the same refractive index - * for all evaluated locations. - * - */ - template <typename T> - class MediumPropertyModel : public T { - - Medium medium_; ///< The medium code - - public: - /** - * Construct a MediumPropertyModel - * - * 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> - MediumPropertyModel(const Medium medium, Args&&... args) - : T(std::forward<Args>(args)...) - , medium_(medium) {} - - /** - * Evaluate the medium type at a given location. - * - * @param point The location to evaluate at. - * @returns The medium type as enum environment::Medium - */ - Medium medium(corsika::geometry::Point const&) const final override { - return medium_; - } - - void set_medium(Medium v) { medium_ = v; } - - }; // END: class MediumPropertyModel - -} // namespace corsika::environment diff --git a/Environment/MediumTypes.h b/Environment/MediumTypes.h deleted file mode 100644 index bc44560fd2251927d10f0c2c65d55c60d656d2f6..0000000000000000000000000000000000000000 --- a/Environment/MediumTypes.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * (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 - -namespace corsika::environment { - - /** - * Medium types are useful most importantly for effective models - * like energy losses. a particular medium (mixture of components) - * may have specif properties not reflected by its mixture of - * components. - */ - - enum class EMediumType { eUnknown, eAir, eWater, eIce, eRock }; - -} // namespace corsika::environment diff --git a/Environment/NoMagneticField.h b/Environment/NoMagneticField.h deleted file mode 100644 index 74cbd8cfc51edac6db9bd05269f33ddb37aa23b9..0000000000000000000000000000000000000000 --- a/Environment/NoMagneticField.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * (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 diff --git a/Environment/ShowerAxis.cc b/Environment/ShowerAxis.cc deleted file mode 100644 index 76fdc66724ba57850dd404732f0b7940984176fe..0000000000000000000000000000000000000000 --- a/Environment/ShowerAxis.cc +++ /dev/null @@ -1,67 +0,0 @@ -/* - * (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_; } diff --git a/Environment/ShowerAxis.h b/Environment/ShowerAxis.h deleted file mode 100644 index 052aa0bff6ac286039b4fbe580b4093b55d3e396..0000000000000000000000000000000000000000 --- a/Environment/ShowerAxis.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * (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 diff --git a/Environment/UniformMagneticField.h b/Environment/UniformMagneticField.h deleted file mode 100644 index f649afeb55d4507052dea5a9f4bdc9702687e581..0000000000000000000000000000000000000000 --- a/Environment/UniformMagneticField.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * (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 diff --git a/Environment/UniformRefractiveIndex.h b/Environment/UniformRefractiveIndex.h deleted file mode 100644 index 84a43daabe1b26158aa17f201728863daa9574e1..0000000000000000000000000000000000000000 --- a/Environment/UniformRefractiveIndex.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * (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 diff --git a/Environment/properties8.dat b/Environment/properties8.dat deleted file mode 100644 index 2881bb194a91fd2366371f322d131c077ab6c6d5..0000000000000000000000000000000000000000 --- a/Environment/properties8.dat +++ /dev/null @@ -1,2917 +0,0 @@ - 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 ------------------------------------------------------------------------------ diff --git a/Environment/readProperties.py b/Environment/readProperties.py deleted file mode 100755 index 552c70d70b64f58ee479562aa8102c357d4181a8..0000000000000000000000000000000000000000 --- a/Environment/readProperties.py +++ /dev/null @@ -1,475 +0,0 @@ -#!/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) - - diff --git a/Environment/testShowerAxis.cc b/Environment/testShowerAxis.cc deleted file mode 100644 index e2862176bc0864bac62238d6b06dae103bccf3b2..0000000000000000000000000000000000000000 --- a/Environment/testShowerAxis.cc +++ /dev/null @@ -1,86 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/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()); -} diff --git a/Framework/Analytics/CMakeLists.txt b/Framework/Analytics/CMakeLists.txt deleted file mode 100644 index ededac54ff99ec6ee8089bc55f1243752e842fce..0000000000000000000000000000000000000000 --- a/Framework/Analytics/CMakeLists.txt +++ /dev/null @@ -1,61 +0,0 @@ -# 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 - ) diff --git a/Framework/Analytics/ClassTimer.h b/Framework/Analytics/ClassTimer.h deleted file mode 100644 index cb867a56f226227d2c09582d3fde57627b5254cc..0000000000000000000000000000000000000000 --- a/Framework/Analytics/ClassTimer.h +++ /dev/null @@ -1,157 +0,0 @@ -/* - * (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 diff --git a/Framework/Analytics/FunctionTimer.h b/Framework/Analytics/FunctionTimer.h deleted file mode 100644 index 4dfe066b6b9a2b6b976bd67d8cf95845b0dcd87d..0000000000000000000000000000000000000000 --- a/Framework/Analytics/FunctionTimer.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * (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 diff --git a/Framework/Analytics/testClassTimer.cc b/Framework/Analytics/testClassTimer.cc deleted file mode 100644 index 6185036b5ab36b1a2a203759fa18a06120020bc5..0000000000000000000000000000000000000000 --- a/Framework/Analytics/testClassTimer.cc +++ /dev/null @@ -1,147 +0,0 @@ -/* - * (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); - } -} diff --git a/Framework/Analytics/testFunctionTimer.cc b/Framework/Analytics/testFunctionTimer.cc deleted file mode 100644 index f703d7cd47226f157bc03e447619127223c02d13..0000000000000000000000000000000000000000 --- a/Framework/Analytics/testFunctionTimer.cc +++ /dev/null @@ -1,48 +0,0 @@ -/* - * (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; - } -} diff --git a/Framework/Geometry/Intersections.hpp b/Framework/Geometry/Intersections.hpp deleted file mode 100644 index 1d0ca566d8e16a4721619543ac4f024ee50d22ad..0000000000000000000000000000000000000000 --- a/Framework/Geometry/Intersections.hpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <corsika/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 diff --git a/Framework/Logging/Logging.h b/Framework/Logging/Logging.h deleted file mode 100644 index 814f35de4de5c025c3bab8eaa7fdf51e135e7010..0000000000000000000000000000000000000000 --- a/Framework/Logging/Logging.h +++ /dev/null @@ -1,189 +0,0 @@ -/* - * (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 diff --git a/Framework/Particles/ParticleData.xml b/Framework/Particles/ParticleData.xml deleted file mode 100644 index 40cd64c8a4e9b5dc03a8f87e32e308f16e3a3b94..0000000000000000000000000000000000000000 --- a/Framework/Particles/ParticleData.xml +++ /dev/null @@ -1,9721 +0,0 @@ -<chapter name="Particle Data"> - - <!-- MR: copied from Pythia 8235 --> -<particle id="0" name="void" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<!-- -<particle id="1" name="d" antiName="dbar" spinType="2" chargeType="-1" colType="1" - m0="0.33000"> -</particle> - -<particle id="2" name="u" antiName="ubar" spinType="2" chargeType="2" colType="1" - m0="0.33000"> -</particle> - -<particle id="3" name="s" antiName="sbar" spinType="2" chargeType="-1" colType="1" - m0="0.50000"> -</particle> - -<particle id="4" name="c" antiName="cbar" spinType="2" chargeType="2" colType="1" - m0="1.50000"> -</particle> - -<particle id="5" name="b" antiName="bbar" spinType="2" chargeType="-1" colType="1" - m0="4.80000"> -</particle> - -<particle id="6" name="t" antiName="tbar" spinType="2" chargeType="2" colType="1" - m0="171.00000" mWidth="1.40000" mMin="86.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000300" products="24 1"/> - <channel onMode="1" bRatio="0.0017650" products="24 3"/> - <channel onMode="1" bRatio="0.9982050" products="24 5"/> - <channel onMode="0" bRatio="0.0000000" products="37 5"/> -</particle> - -<particle id="7" name="b'" antiName="b'bar" spinType="2" chargeType="-1" colType="1" - m0="400.00000"> - <channel onMode="1" bRatio="0.0000000" products="-24 2"/> - <channel onMode="1" bRatio="0.0000000" products="-24 4"/> - <channel onMode="1" bRatio="0.0000000" products="-24 6"/> - <channel onMode="1" bRatio="1.0000000" products="-24 8"/> -</particle> - -<particle id="8" name="t'" antiName="t'bar" spinType="2" chargeType="2" colType="1" - m0="400.00000"> - <channel onMode="1" bRatio="0.0000000" products="24 1"/> - <channel onMode="1" bRatio="0.0000000" products="24 3"/> - <channel onMode="1" bRatio="0.0000000" products="24 5"/> - <channel onMode="1" bRatio="1.0000000" products="24 7"/> -</particle> ---> - -<particle id="11" name="e-" antiName="e+" spinType="2" chargeType="-3" colType="0" - m0="5.110e-04"> -</particle> - -<particle id="12" name="nu_e" antiName="nu_ebar" spinType="2" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="13" name="mu-" antiName="mu+" spinType="2" chargeType="-3" colType="0" - m0="0.10566" tau0="6.58654e+05"> - <channel onMode="1" bRatio="1.0000000" meMode="22" products="-12 11 14"/> -</particle> - -<particle id="14" name="nu_mu" antiName="nu_mubar" spinType="2" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="15" name="tau-" antiName="tau+" spinType="2" chargeType="-3" colType="0" - m0="1.77682" tau0="8.71100e-02"> - <channel onMode="1" bRatio="0.1076825" meMode="1521" products="16 -211"/> - <channel onMode="1" bRatio="0.0069601" meMode="1521" products="16 -321"/> - <channel onMode="1" bRatio="0.1772832" meMode="1531" products="16 11 -12"/> - <channel onMode="1" bRatio="0.1731072" meMode="1531" products="16 13 -14"/> - <channel onMode="1" bRatio="0.2537447" meMode="1532" products="16 111 -211"/> - <channel onMode="1" bRatio="0.0015809" meMode="1532" products="16 311 -321"/> - <channel onMode="1" bRatio="0.0001511" meMode="1532" products="16 221 -321"/> - <channel onMode="1" bRatio="0.0083521" meMode="1533" products="16 -211 -311"/> - <channel onMode="1" bRatio="0.0042655" meMode="1533" products="16 111 -321"/> - <channel onMode="1" bRatio="0.0924697" meMode="1541" products="16 111 111 -211"/> - <channel onMode="1" bRatio="0.0925691" meMode="1541" products="16 -211 -211 211"/> - <channel onMode="1" bRatio="0.0039772" meMode="1542" products="16 111 -211 -311"/> - <channel onMode="1" bRatio="0.0034701" meMode="1542" products="16 -211 211 -321"/> - <channel onMode="1" bRatio="0.0014318" meMode="1542" products="16 -211 -321 321"/> - <channel onMode="1" bRatio="0.0015809" meMode="1542" products="16 111 311 -321"/> - <channel onMode="1" bRatio="0.0011932" meMode="1542" products="16 130 -211 310"/> - <channel onMode="1" bRatio="0.0006463" meMode="1542" products="16 111 111 -321"/> - <channel onMode="1" bRatio="0.0002386" meMode="1542" products="16 130 130 -211"/> - <channel onMode="1" bRatio="0.0002386" meMode="1542" products="16 -211 310 310"/> - <channel onMode="1" bRatio="0.0013821" meMode="1543" products="16 111 -211 221"/> - <channel onMode="1" bRatio="0.0017520" meMode="1544" products="16 22 111 -211"/> - <channel onMode="1" bRatio="0.0459365" meMode="1551" products="16 111 -211 -211 211"/> - <channel onMode="1" bRatio="0.0104401" meMode="1551" products="16 111 111 111 -211"/> - <channel onMode="1" bRatio="0.0049069" meMode="1561" products="16 111 111 -211 -211 211"/> - <channel onMode="1" bRatio="0.0009515" meMode="1561" products="16 111 111 111 111 -211"/> - <channel onMode="1" bRatio="0.0008342" meMode="1561" products="16 -211 -211 -211 211 211"/> - <channel onMode="1" bRatio="0.0001631" meMode="0" products="16 -211 -211 211 221"/> - <channel onMode="1" bRatio="0.0001491" meMode="0" products="16 111 111 -211 221"/> - <channel onMode="1" bRatio="0.0001392" meMode="0" products="16 111 111 -211 223"/> - <channel onMode="1" bRatio="0.0001193" meMode="0" products="16 -211 -211 211 223"/> - <channel onMode="1" bRatio="0.0004077" meMode="0" products="16 223 -321"/> - <channel onMode="1" bRatio="0.0004773" meMode="0" products="16 111 111 111 -321"/> - <channel onMode="1" bRatio="0.0003052" meMode="0" products="16 111 -211 211 -321"/> - <channel onMode="1" bRatio="0.0002784" meMode="0" products="16 221 -323"/> - <channel onMode="1" bRatio="0.0002366" meMode="0" products="16 111 111 -211 -311"/> - <channel onMode="1" bRatio="0.0002237" meMode="0" products="16 -211 -211 211 -311"/> - <channel onMode="1" bRatio="0.0002953" meMode="0" products="16 111 -211 -311 311"/> - <channel onMode="1" bRatio="0.0000590" meMode="0" products="16 111 -211 -321 321"/> -</particle> - -<particle id="16" name="nu_tau" antiName="nu_taubar" spinType="2" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<!-- -<particle id="17" name="tau'-" antiName="tau'+" spinType="2" chargeType="-3" colType="0" - m0="400.00000"> - <channel onMode="1" bRatio="1.0000000" products="-24 18"/> -</particle> ---> - -<!-- -<particle id="18" name="nu'_tau" antiName="nu'_taubar" spinType="2" chargeType="0" colType="0" - m0="400.00000"> - <channel onMode="1" bRatio="1.0000000" products="24 17"/> -</particle> ---> - -<!-- -<particle id="21" name="g" spinType="3" chargeType="0" colType="2" - m0="0.00000"> -</particle> ---> - -<particle id="22" name="gamma" spinType="3" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<!-- -<particle id="23" name="Z0" spinType="3" chargeType="0" colType="0" - m0="91.18760" mWidth="2.49520" mMin="10.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.1539950" products="1 -1"/> - <channel onMode="1" bRatio="0.1194200" products="2 -2"/> - <channel onMode="1" bRatio="0.1539840" products="3 -3"/> - <channel onMode="1" bRatio="0.1192590" products="4 -4"/> - <channel onMode="1" bRatio="0.1522720" products="5 -5"/> - <channel onMode="1" bRatio="0.0335760" products="11 -11"/> - <channel onMode="1" bRatio="0.0668060" products="12 -12"/> - <channel onMode="1" bRatio="0.0335760" products="13 -13"/> - <channel onMode="1" bRatio="0.0668060" products="14 -14"/> - <channel onMode="1" bRatio="0.0335000" products="15 -15"/> - <channel onMode="1" bRatio="0.0668060" products="16 -16"/> -</particle> - -<particle id="24" name="W+" antiName="W-" spinType="3" chargeType="3" colType="0" - m0="80.38500" mWidth="2.08500" mMin="10.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.3213690" products="-1 2"/> - <channel onMode="1" bRatio="0.0164940" products="-1 4"/> - <channel onMode="1" bRatio="0.0165020" products="-3 2"/> - <channel onMode="1" bRatio="0.3206150" products="-3 4"/> - <channel onMode="1" bRatio="0.0000100" products="-5 2"/> - <channel onMode="1" bRatio="0.0005910" products="-5 4"/> - <channel onMode="1" bRatio="0.1081660" products="-11 12"/> - <channel onMode="1" bRatio="0.1081660" products="-13 14"/> - <channel onMode="1" bRatio="0.1080870" products="-15 16"/> -</particle> - -<particle id="25" name="h0" spinType="1" chargeType="0" colType="0" - m0="125.00000" mWidth="0.00374" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000009" products="1 -1"/> - <channel onMode="1" bRatio="0.0000002" products="2 -2"/> - <channel onMode="1" bRatio="0.0002361" products="3 -3"/> - <channel onMode="1" bRatio="0.0335602" products="4 -4"/> - <channel onMode="1" bRatio="0.5876728" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="11 -11"/> - <channel onMode="1" bRatio="0.0002445" products="13 -13"/> - <channel onMode="1" bRatio="0.0690800" products="15 -15"/> - <channel onMode="1" bRatio="0.0630585" products="21 21"/> - <channel onMode="1" bRatio="0.0028438" products="22 22"/> - <channel onMode="1" bRatio="0.0017601" products="22 23"/> - <channel onMode="1" bRatio="0.0259708" products="23 23"/> - <channel onMode="1" bRatio="0.2155720" products="24 -24"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000022 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000023 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000023 1000023"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000025 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000025 1000023"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000025 1000025"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000023"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000025"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000035"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000024 -1000024"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000024 -1000037"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000037 -1000024"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000037 -1000037"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000001 -1000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000001 -2000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000001 -2000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000001 2000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000002 -1000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000002 -2000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000002 -2000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000002 2000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000003 -1000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000003 -2000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000003 -2000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000003 2000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000004 -1000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000004 -2000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000004 -2000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000004 2000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000005 -1000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000005 -2000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000005 -2000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000005 2000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000006 -1000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000006 -2000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000006 -2000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000006 2000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000011 -1000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000011 -2000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000011 -2000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000011 2000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000012 -1000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000012 -2000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000012 -2000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000012 2000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000013 -1000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000013 -2000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000013 -2000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000013 2000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000014 -1000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000014 -2000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000014 -2000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000014 2000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000015 -1000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000015 -2000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000015 -2000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000015 2000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000016 -1000016"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000016 -2000016"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000016 -2000016"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000016 2000016"/> -</particle> - -<particle id="32" name="Z'0" spinType="3" chargeType="0" colType="0" - m0="500.00000" mWidth="14.54029" mMin="10.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.1458350" products="1 -1"/> - <channel onMode="1" bRatio="0.1132760" products="2 -2"/> - <channel onMode="1" bRatio="0.1458350" products="3 -3"/> - <channel onMode="1" bRatio="0.1132710" products="4 -4"/> - <channel onMode="1" bRatio="0.1457810" products="5 -5"/> - <channel onMode="1" bRatio="0.0490020" products="6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="7 -7"/> - <channel onMode="1" bRatio="0.0000000" products="8 -8"/> - <channel onMode="1" bRatio="0.0320250" products="11 -11"/> - <channel onMode="1" bRatio="0.0636420" products="12 -12"/> - <channel onMode="1" bRatio="0.0320250" products="13 -13"/> - <channel onMode="1" bRatio="0.0636420" products="14 -14"/> - <channel onMode="1" bRatio="0.0320220" products="15 -15"/> - <channel onMode="1" bRatio="0.0636420" products="16 -16"/> - <channel onMode="1" bRatio="0.0000000" products="17 -17"/> - <channel onMode="1" bRatio="0.0000000" products="18 -18"/> - <channel onMode="1" bRatio="0.0000000" products="24 -24"/> -</particle> - -<particle id="33" name="Z''0" spinType="3" chargeType="0" colType="0" - m0="900.00000"> -</particle> - -<particle id="34" name="W'+" antiName="W'-" spinType="3" chargeType="3" colType="0" - m0="500.00000" mWidth="16.66099" mMin="10.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.2512250" products="-1 2"/> - <channel onMode="1" bRatio="0.0129000" products="-1 4"/> - <channel onMode="1" bRatio="0.0000060" products="-1 6"/> - <channel onMode="1" bRatio="0.0129000" products="-3 2"/> - <channel onMode="1" bRatio="0.2507640" products="-3 4"/> - <channel onMode="1" bRatio="0.0003800" products="-3 6"/> - <channel onMode="1" bRatio="0.0000080" products="-5 2"/> - <channel onMode="1" bRatio="0.0004650" products="-5 4"/> - <channel onMode="1" bRatio="0.2154180" products="-5 6"/> - <channel onMode="1" bRatio="0.0853120" products="-11 12"/> - <channel onMode="1" bRatio="0.0853120" products="-13 14"/> - <channel onMode="1" bRatio="0.0853100" products="-15 16"/> - <channel onMode="1" bRatio="0.0000000" products="24 23"/> -</particle> - -<particle id="35" name="H0" spinType="1" chargeType="0" colType="0" - m0="300.00000" mWidth="8.38842" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" products="1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="3 -3"/> - <channel onMode="1" bRatio="0.0000490" products="4 -4"/> - <channel onMode="1" bRatio="0.0007740" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="13 -13"/> - <channel onMode="1" bRatio="0.0000740" products="15 -15"/> - <channel onMode="1" bRatio="0.0004170" products="21 21"/> - <channel onMode="1" bRatio="0.0000150" products="22 22"/> - <channel onMode="1" bRatio="0.0000610" products="22 23"/> - <channel onMode="1" bRatio="0.3067100" products="23 23"/> - <channel onMode="1" bRatio="0.6890110" products="24 -24"/> - <channel onMode="1" bRatio="0.0000000" products="23 25"/> - <channel onMode="1" bRatio="0.0028890" products="25 25"/> - <channel onMode="1" bRatio="0.0000000" products="24 -37"/> - <channel onMode="1" bRatio="0.0000000" products="37 -24"/> - <channel onMode="1" bRatio="0.0000000" products="23 36"/> - <channel onMode="1" bRatio="0.0000000" products="25 36"/> - <channel onMode="1" bRatio="0.0000000" products="36 36"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000022 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000023 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000023 1000023"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000025 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000025 1000023"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000025 1000025"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000023"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000025"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000035"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000024 -1000024"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000024 -1000037"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000037 -1000024"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000037 -1000037"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000001 -1000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000001 -2000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000001 -2000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000001 2000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000002 -1000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000002 -2000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000002 -2000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000002 2000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000003 -1000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000003 -2000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000003 -2000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000003 2000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000004 -1000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000004 -2000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000004 -2000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000004 2000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000005 -1000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000005 -2000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000005 -2000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000005 2000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000006 -1000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000006 -2000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000006 -2000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000006 2000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000011 -1000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000011 -2000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000011 -2000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000011 2000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000012 -1000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000012 -2000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000012 -2000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000012 2000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000013 -1000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000013 -2000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000013 -2000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000013 2000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000014 -1000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000014 -2000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000014 -2000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000014 2000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000015 -1000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000015 -2000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000015 -2000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000015 2000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000016 -1000016"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000016 -2000016"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000016 -2000016"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000016 2000016"/> -</particle> - -<particle id="36" name="A0" spinType="1" chargeType="0" colType="0" - m0="300.00000" mWidth="3.37520" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" products="1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="2 -2"/> - <channel onMode="1" bRatio="0.0000010" products="3 -3"/> - <channel onMode="1" bRatio="0.0001210" products="4 -4"/> - <channel onMode="1" bRatio="0.0019240" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="11 -11"/> - <channel onMode="1" bRatio="0.0000010" products="13 -13"/> - <channel onMode="1" bRatio="0.0001840" products="15 -15"/> - <channel onMode="1" bRatio="0.0031060" products="21 21"/> - <channel onMode="1" bRatio="0.0000150" products="22 22"/> - <channel onMode="1" bRatio="0.0000030" products="22 23"/> - <channel onMode="1" bRatio="0.0000000" products="23 23"/> - <channel onMode="1" bRatio="0.0000000" products="24 -24"/> - <channel onMode="1" bRatio="0.9946460" products="23 25"/> - <channel onMode="1" bRatio="0.0000000" products="25 25"/> - <channel onMode="1" bRatio="0.0000000" products="24 -37"/> - <channel onMode="1" bRatio="0.0000000" products="37 -24"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000022 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000023 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000023 1000023"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000025 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000025 1000023"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000025 1000025"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000022"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000023"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000025"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000035"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000024 -1000024"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000024 -1000037"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000037 -1000024"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000037 -1000037"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000001 -1000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000001 -2000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000001 -2000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000001 2000001"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000002 -1000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000002 -2000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000002 -2000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000002 2000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000003 -1000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000003 -2000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000003 -2000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000003 2000003"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000004 -1000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000004 -2000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000004 -2000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000004 2000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000005 -1000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000005 -2000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000005 -2000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000005 2000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000006 -1000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000006 -2000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000006 -2000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000006 2000006"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000011 -1000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000011 -2000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000011 -2000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000011 2000011"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000012 -1000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000012 -2000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000012 -2000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000012 2000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000013 -1000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000013 -2000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000013 -2000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000013 2000013"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000014 -1000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000014 -2000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000014 -2000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000014 2000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000015 -1000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000015 -2000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000015 -2000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000015 2000015"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000016 -1000016"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000016 -2000016"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000016 -2000016"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000016 2000016"/> -</particle> - -<particle id="37" name="H+" antiName="H-" spinType="1" chargeType="3" colType="0" - m0="300.00000" mWidth="4.17669" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" products="-1 2"/> - <channel onMode="1" bRatio="0.0000210" products="-3 4"/> - <channel onMode="1" bRatio="0.0901350" products="-5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 12"/> - <channel onMode="1" bRatio="0.0000130" products="-13 14"/> - <channel onMode="1" bRatio="0.0037140" products="-15 16"/> - <channel onMode="1" bRatio="0.9061170" products="24 25"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000022 1000024"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000022 1000037"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000023 1000024"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000023 1000037"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000025 1000024"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000025 1000037"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000024"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000035 1000037"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000006 -1000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000006 -1000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000006 -2000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="2000006 -2000005"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000001 1000002"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000003 1000004"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000011 1000012"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000013 1000014"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-1000015 1000016"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="-2000015 1000016"/> -</particle> - -<particle id="39" name="Graviton" spinType="5" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="40" name="BlackHole" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="41" name="R0" antiName="Rbar0" spinType="3" chargeType="0" colType="0" - m0="5.000e+03" mWidth="4.173e+02" mMin="1.000e+02" mMax="0.000e+00"> - <channel onMode="1" bRatio="0.2151190" products="1 -3"/> - <channel onMode="1" bRatio="0.2151190" products="2 -4"/> - <channel onMode="1" bRatio="0.2151190" products="3 -5"/> - <channel onMode="1" bRatio="0.2147240" products="4 -6"/> - <channel onMode="1" bRatio="0.0699600" products="11 -13"/> - <channel onMode="1" bRatio="0.0699590" products="13 -15"/> -</particle> - -<particle id="42" name="LQ_ue" antiName="LQ_uebar" spinType="1" chargeType="-1" colType="1" - m0="200.00000" mWidth="0.39162" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" products="2 11"/> -</particle> - -<particle id="45" name="H_3" spinType="1" chargeType="0" colType="0" - m0="500.00000"> -</particle> - -<particle id="46" name="A_2" spinType="1" chargeType="0" colType="0" - m0="500.00000"> -</particle> - -<particle id="51" name="DM(s=0)" antiName="DMbar(s=0)" spinType="1" chargeType="0" colType="0" - m0="100.00000"> -</particle> - -<particle id="52" name="DM(s=1/2)" antiName="DMbar(s=1/2)" spinType="2" chargeType="0" colType="0" - m0="100.00000"> -</particle> - -<particle id="53" name="DM(s=1)" antiName="DMbar(s=1)" spinType="3" chargeType="0" colType="0" - m0="100.00000"> -</particle> - -<particle id="54" name="DMmed(s=0)" antiName="DMmedbar(s=0)" spinType="1" chargeType="0" colType="0" - m0="500.00000" mWidth="0.1" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.000" products=" 1 -1"/> - <channel onMode="1" bRatio="0.000" products=" 2 -2"/> - <channel onMode="1" bRatio="0.000" products=" 3 -3"/> - <channel onMode="1" bRatio="0.000" products=" 4 -4"/> - <channel onMode="1" bRatio="0.300" products=" 5 -5"/> - <channel onMode="1" bRatio="0.000" products=" 6 -6"/> - <channel onMode="1" bRatio="0.000" products="11 -11"/> - <channel onMode="1" bRatio="0.000" products="12 -12"/> - <channel onMode="1" bRatio="0.000" products="13 -13"/> - <channel onMode="1" bRatio="0.000" products="14 -14"/> - <channel onMode="1" bRatio="0.000" products="15 -15"/> - <channel onMode="1" bRatio="0.000" products="16 -16"/> - <channel onMode="1" bRatio="0.100" products="21 21"/> - <channel onMode="1" bRatio="0.000" products="22 22"/> - <channel onMode="1" bRatio="0.000" products="22 23"/> - <channel onMode="1" bRatio="0.000" products="23 23"/> - <channel onMode="1" bRatio="0.000" products="24 -24"/> - <channel onMode="1" bRatio="0.000" products="25 25"/> - <channel onMode="1" bRatio="0.000" products="51 -51"/> - <channel onMode="1" bRatio="0.000" products="51 51"/> - <channel onMode="1" bRatio="0.600" products="52 -52"/> - <channel onMode="1" bRatio="0.000" products="52 52"/> - <channel onMode="1" bRatio="0.000" products="53 -53"/> - <channel onMode="1" bRatio="0.000" products="53 53"/> -</particle> - -<particle id="55" name="DMmed(s=1)" antiName="DMmedbar(s=1)" spinType="3" chargeType="0" colType="0" - m0="500.00000" mWidth="0.1" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.050" products=" 1 -1"/> - <channel onMode="1" bRatio="0.050" products=" 2 -2"/> - <channel onMode="1" bRatio="0.050" products=" 3 -3"/> - <channel onMode="1" bRatio="0.050" products=" 4 -4"/> - <channel onMode="1" bRatio="0.050" products=" 5 -5"/> - <channel onMode="1" bRatio="0.050" products=" 6 -6"/> - <channel onMode="1" bRatio="0.050" products="11 -11"/> - <channel onMode="1" bRatio="0.050" products="12 -12"/> - <channel onMode="1" bRatio="0.050" products="13 -13"/> - <channel onMode="1" bRatio="0.050" products="14 -14"/> - <channel onMode="1" bRatio="0.050" products="15 -15"/> - <channel onMode="1" bRatio="0.050" products="16 -16"/> - <channel onMode="1" bRatio="0.025" products="21 21"/> - <channel onMode="1" bRatio="0.025" products="22 22"/> - <channel onMode="1" bRatio="0.050" products="22 23"/> - <channel onMode="1" bRatio="0.050" products="23 23"/> - <channel onMode="1" bRatio="0.050" products="24 -24"/> - <channel onMode="1" bRatio="0.050" products="25 25"/> - <channel onMode="1" bRatio="0.025" products="51 -51"/> - <channel onMode="1" bRatio="0.025" products="51 51"/> - <channel onMode="1" bRatio="0.025" products="52 -52"/> - <channel onMode="1" bRatio="0.025" products="52 52"/> - <channel onMode="1" bRatio="0.025" products="53 -53"/> - <channel onMode="1" bRatio="0.025" products="53 53"/> -</particle> - -<particle id="56" name="DM?1" antiName="DMbar?1" spinType="1" chargeType="0" colType="0" - m0="100.00000"> -</particle> - -<particle id="57" name="DM?2" antiName="DMbar?1" spinType="1" chargeType="0" colType="0" - m0="100.00000"> -</particle> - -<particle id="58" name="DM?3" antiName="DMbar?3" spinType="1" chargeType="0" colType="0" - m0="100.00000"> -</particle> - -<particle id="59" name="DM?4" antiName="DMbar?4" spinType="1" chargeType="0" colType="0" - m0="100.00000"> -</particle> - -<particle id="60" name="DM?5" antiName="DMbar?5" spinType="1" chargeType="0" colType="0" - m0="100.00000"> -</particle> - -<particle id="81" name="specflav" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="82" name="rndmflavq" antiName="rndmflavqbar" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="83" name="rndmflavg" antiName="rndmflavgbar" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="90" name="system" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="93" name="Z0copy" spinType="3" chargeType="0" colType="0" - m0="91.18760" mWidth="2.49520" mMin="10.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.1539950" products="1 -1"/> - <channel onMode="1" bRatio="0.1194200" products="2 -2"/> - <channel onMode="1" bRatio="0.1539840" products="3 -3"/> - <channel onMode="1" bRatio="0.1192590" products="4 -4"/> - <channel onMode="1" bRatio="0.1522720" products="5 -5"/> - <channel onMode="1" bRatio="0.0335760" products="11 -11"/> - <channel onMode="1" bRatio="0.0668060" products="12 -12"/> - <channel onMode="1" bRatio="0.0335760" products="13 -13"/> - <channel onMode="1" bRatio="0.0668060" products="14 -14"/> - <channel onMode="1" bRatio="0.0335000" products="15 -15"/> - <channel onMode="1" bRatio="0.0668060" products="16 -16"/> -</particle> - -<particle id="94" name="W+copy" antiName="W-copy" spinType="3" chargeType="3" colType="0" - m0="80.38500" mWidth="2.08500" mMin="10.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.3213690" products="-1 2"/> - <channel onMode="1" bRatio="0.0164940" products="-1 4"/> - <channel onMode="1" bRatio="0.0165020" products="-3 2"/> - <channel onMode="1" bRatio="0.3206150" products="-3 4"/> - <channel onMode="1" bRatio="0.0000100" products="-5 2"/> - <channel onMode="1" bRatio="0.0005910" products="-5 4"/> - <channel onMode="1" bRatio="0.1081660" products="-11 12"/> - <channel onMode="1" bRatio="0.1081660" products="-13 14"/> - <channel onMode="1" bRatio="0.1080870" products="-15 16"/> -</particle> - -<particle id="110" name="Reggeon" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> ---> - -<particle id="111" name="pi0" spinType="1" chargeType="0" colType="0" - m0="0.13498" tau0="2.55313e-05"> - <channel onMode="1" bRatio="0.9879900" products="22 22"/> - <channel onMode="1" bRatio="0.0119800" meMode="11" products="22 11 -11"/> - <channel onMode="1" bRatio="0.0000300" meMode="13" products="11 -11 11 -11"/> -</particle> - -<particle id="113" name="rho0" spinType="3" chargeType="0" colType="0" - m0="0.77549" mWidth="0.14910" mMin="0.30000" mMax="1.50000"> - <channel onMode="1" bRatio="0.9988447" meMode="2" products="211 -211"/> - <channel onMode="1" bRatio="0.0005993" products="111 22"/> - <channel onMode="1" bRatio="0.0002997" products="221 22"/> - <channel onMode="1" bRatio="0.0001009" meMode="1" products="211 -211 111"/> - <channel onMode="1" bRatio="0.0000471" products="11 -11"/> - <channel onMode="1" bRatio="0.0000454" products="13 -13"/> - <channel onMode="1" bRatio="0.0000449" products="111 111 22"/> - <channel onMode="1" bRatio="0.0000180" products="211 -211 211 -211"/> -</particle> - -<!-- -<particle id="115" name="a_20" spinType="5" chargeType="0" colType="0" - m0="1.31830" mWidth="0.10700" mMin="1.00000" mMax="1.70000"> - <channel onMode="1" bRatio="0.3483455" products="213 -211"/> - <channel onMode="1" bRatio="0.3483455" products="-213 211"/> - <channel onMode="1" bRatio="0.1440000" products="221 111"/> - <channel onMode="1" bRatio="0.1050000" products="223 211 -211"/> - <channel onMode="1" bRatio="0.0245000" products="321 -321"/> - <channel onMode="1" bRatio="0.0122500" products="130 130"/> - <channel onMode="1" bRatio="0.0122500" products="310 310"/> - <channel onMode="1" bRatio="0.0053000" products="331 111"/> - <channel onMode="1" bRatio="0.0000090" products="22 22"/> -</particle> ---> - -<particle id="130" name="K_L0" spinType="1" chargeType="0" colType="0" - m0="0.49761" tau0="1.53300e+04"> - <channel onMode="1" bRatio="0.1952278" products="111 111 111"/> - <channel onMode="1" bRatio="0.1254178" products="211 -211 111"/> - <channel onMode="1" bRatio="0.2027688" meMode="22" products="-12 11 211"/> - <channel onMode="1" bRatio="0.2027688" meMode="22" products="12 -11 -211"/> - <channel onMode="1" bRatio="0.1352191" meMode="22" products="-14 13 211"/> - <channel onMode="1" bRatio="0.1352191" meMode="22" products="14 -13 -211"/> - <channel onMode="1" bRatio="0.0019673" products="211 -211"/> - <channel onMode="1" bRatio="0.0008641" products="111 111"/> - <channel onMode="1" bRatio="0.0005471" products="22 22"/> -</particle> - -<particle id="211" name="pi+" antiName="pi-" spinType="1" chargeType="3" colType="0" - m0="0.13957" tau0="7.80450e+03"> - <channel onMode="1" bRatio="0.9998770" products="-13 14"/> - <channel onMode="1" bRatio="0.0001230" products="-11 12"/> -</particle> - -<particle id="213" name="rho+" antiName="rho-" spinType="3" chargeType="3" colType="0" - m0="0.77549" mWidth="0.14910" mMin="0.30000" mMax="1.50000"> - <channel onMode="1" bRatio="0.9995502" meMode="2" products="211 111"/> - <channel onMode="1" bRatio="0.0004498" products="211 22"/> -</particle> - -<particle id="100211" name="pi(1300)+" antiName="pi(1300)-" spinType="1" chargeType="3" colType="0" - m0="1.300" mWidth="0.200"> -</particle> - -<particle id="100111" name="pi(1300)0" spinType="1" chargeType="3" colType="0" - m0="1.300" mWidth="0.200"> -</particle> - -<!-- -<particle id="215" name="a_2+" antiName="a_2-" spinType="5" chargeType="3" colType="0" - m0="1.31830" mWidth="0.10700" mMin="1.00000" mMax="1.70000"> - <channel onMode="1" bRatio="0.3480100" products="213 111"/> - <channel onMode="1" bRatio="0.3480100" products="113 211"/> - <channel onMode="1" bRatio="0.1440000" products="221 211"/> - <channel onMode="1" bRatio="0.1040000" products="223 211 111"/> - <channel onMode="1" bRatio="0.0480000" products="321 -311"/> - <channel onMode="1" bRatio="0.0053000" products="331 211"/> - <channel onMode="1" bRatio="0.0026800" products="211 22"/> -</particle> ---> - -<particle id="221" name="eta" spinType="1" chargeType="0" colType="0" - m0="0.54785" tau0="1.51e-07"> - <channel onMode="1" bRatio="0.3931181" products="22 22"/> - <channel onMode="1" bRatio="0.3257150" products="111 111 111"/> - <channel onMode="1" bRatio="0.0002700" products="111 22 22"/> - <channel onMode="1" bRatio="0.2274105" products="211 -211 111"/> - <channel onMode="1" bRatio="0.0460021" products="211 -211 22"/> - <channel onMode="1" bRatio="0.0069003" meMode="11" products="22 11 -11"/> - <channel onMode="1" bRatio="0.0003100" meMode="11" products="22 13 -13"/> - <channel onMode="1" bRatio="0.0000060" products="13 -13"/> - <channel onMode="1" bRatio="0.0002680" meMode="12" products="211 -211 11 -11"/> -</particle> - -<particle id="223" name="omega" spinType="3" chargeType="0" colType="0" - m0="0.78265" mWidth="0.00849" mMin="0.50000" mMax="1.10000"> - <channel onMode="1" bRatio="0.8994773" meMode="1" products="211 -211 111"/> - <channel onMode="1" bRatio="0.0834941" products="111 22"/> - <channel onMode="1" bRatio="0.0154283" meMode="2" products="211 -211"/> - <channel onMode="1" bRatio="0.0004639" products="221 22"/> - <channel onMode="1" bRatio="0.0007765" meMode="11" products="111 11 -11"/> - <channel onMode="1" bRatio="0.0001311" meMode="11" products="111 13 -13"/> - <channel onMode="1" bRatio="0.0000728" products="11 -11"/> - <channel onMode="1" bRatio="0.0000900" products="13 -13"/> - <channel onMode="1" bRatio="0.0000660" products="111 111 22"/> -</particle> - -<!-- -<particle id="225" name="f_2" spinType="5" chargeType="0" colType="0" - m0="1.27510" mWidth="0.18510" mMin="0.60000" mMax="2.00000"> - <channel onMode="1" bRatio="0.5653260" products="211 -211"/> - <channel onMode="1" bRatio="0.2826600" products="111 111"/> - <channel onMode="1" bRatio="0.0710000" products="211 -211 111 111"/> - <channel onMode="1" bRatio="0.0280000" products="211 -211 211 -211"/> - <channel onMode="1" bRatio="0.0230000" products="321 -321"/> - <channel onMode="1" bRatio="0.0115000" products="130 130"/> - <channel onMode="1" bRatio="0.0115000" products="310 310"/> - <channel onMode="1" bRatio="0.0040000" products="221 221"/> - <channel onMode="1" bRatio="0.0030000" products="111 111 111 111"/> - <channel onMode="1" bRatio="0.0000140" products="22 22"/> -</particle> ---> - -<particle id="310" name="K_S0" spinType="1" chargeType="0" colType="0" - m0="0.49761" tau0="2.68420e+01"> - <channel onMode="1" bRatio="0.6922420" products="211 -211"/> - <channel onMode="1" bRatio="0.3070073" products="111 111"/> - <channel onMode="1" bRatio="0.0000479" meMode="12" products="211 -211 11 -11"/> - <channel onMode="1" bRatio="0.0003501" meMode="22" products="-12 11 211"/> - <channel onMode="1" bRatio="0.0003501" meMode="22" products="12 -11 -211"/> - <channel onMode="1" bRatio="0.0000026" products="22 22"/> -</particle> - -<particle id="311" name="K0" antiName="Kbar0" spinType="1" chargeType="0" colType="0" - m0="0.49761" tau0="1e-15"> - <channel onMode="1" bRatio="0.5000000" products="130"/> - <channel onMode="1" bRatio="0.5000000" products="310"/> -</particle> - -<particle id="313" name="K*0" antiName="K*bar0" spinType="3" chargeType="0" colType="0" - m0="0.89594" mWidth="0.04870" mMin="0.65000" mMax="1.20000"> - <channel onMode="1" bRatio="0.6649467" meMode="2" products="321 -211"/> - <channel onMode="1" bRatio="0.3326633" meMode="2" products="311 111"/> - <channel onMode="1" bRatio="0.0023900" products="311 22"/> -</particle> - -<particle id="10311" name="K*0(1430)0" antiName="K*0(1430)0bar" spinType="1" chargeType="0" colType="0" - m0="1.425" mWidth="0.270" mMin="1.3750" mMax="1.4750"> -</particle> - -<particle id="10321" name="K*0(1430)+" antiName="K*0(1430)bar-" spinType="1" chargeType="0" colType="0" - m0="1.425" mWidth="0.270" mMin="1.3750" mMax="1.4750"> -</particle> - -<!-- -<particle id="315" name="K*_2(1430)0" antiName="K*_2(1430)bar0" spinType="5" chargeType="0" colType="0" - m0="1.43240" mWidth="0.10900" mMin="1.10000" mMax="1.80000"> - <channel onMode="1" bRatio="0.3335002" products="321 -211"/> - <channel onMode="1" bRatio="0.1667502" products="311 111"/> - <channel onMode="1" bRatio="0.1650794" products="323 -211"/> - <channel onMode="1" bRatio="0.0825397" products="313 111"/> - <channel onMode="1" bRatio="0.0892231" products="323 -211 111"/> - <channel onMode="1" bRatio="0.0451128" products="313 211 -211"/> - <channel onMode="1" bRatio="0.0581454" products="321 -213"/> - <channel onMode="1" bRatio="0.0290727" products="311 113"/> - <channel onMode="1" bRatio="0.0290727" products="311 223"/> - <channel onMode="1" bRatio="0.0015038" products="311 221"/> -</particle> ---> - -<particle id="321" name="K+" antiName="K-" spinType="1" chargeType="3" colType="0" - m0="0.49368" tau0="3.71300e+03"> - <channel onMode="1" bRatio="0.6355250" products="-13 14"/> - <channel onMode="1" bRatio="0.0000158" products="-11 12"/> - <channel onMode="1" bRatio="0.2066081" products="211 111"/> - <channel onMode="1" bRatio="0.0559022" products="211 211 -211"/> - <channel onMode="1" bRatio="0.0176107" products="211 111 111"/> - <channel onMode="1" bRatio="0.0507020" meMode="22" products="12 -11 111"/> - <channel onMode="1" bRatio="0.0335313" meMode="22" products="14 -13 111"/> - <channel onMode="1" bRatio="0.0000220" products="-11 12 111 111"/> - <channel onMode="1" bRatio="0.0000409" products="-11 12 211 -211"/> - <channel onMode="1" bRatio="0.0000140" products="-13 14 111 111"/> - <channel onMode="1" bRatio="0.0000280" products="-13 14 211 -211"/> -</particle> - -<particle id="323" name="K*+" antiName="K*-" spinType="3" chargeType="3" colType="0" - m0="0.89166" mWidth="0.05080" mMin="0.65000" mMax="1.20000"> - <channel onMode="1" bRatio="0.6660067" meMode="2" products="311 211"/> - <channel onMode="1" bRatio="0.3330033" meMode="2" products="321 111"/> - <channel onMode="1" bRatio="0.0009900" products="321 22"/> -</particle> - -<!-- -<particle id="325" name="K*_2(1430)+" antiName="K*_2(1430)-" spinType="5" chargeType="3" colType="0" - m0="1.42560" mWidth="0.09850" mMin="1.10000" mMax="1.80000"> - <channel onMode="1" bRatio="0.3330333" products="311 211"/> - <channel onMode="1" bRatio="0.1660166" products="321 111"/> - <channel onMode="1" bRatio="0.1646498" products="313 211"/> - <channel onMode="1" bRatio="0.0823749" products="323 111"/> - <channel onMode="1" bRatio="0.0890089" products="313 211 111"/> - <channel onMode="1" bRatio="0.0450045" products="323 211 -211"/> - <channel onMode="1" bRatio="0.0580058" products="311 213"/> - <channel onMode="1" bRatio="0.0290029" products="321 113"/> - <channel onMode="1" bRatio="0.0290029" products="321 223"/> - <channel onMode="1" bRatio="0.0015002" products="321 221"/> - <channel onMode="1" bRatio="0.0024002" products="321 22"/> -</particle> ---> - -<particle id="331" name="eta'" spinType="1" chargeType="0" colType="0" - m0="0.95778" mWidth="0.00020" mMin="0.95578" mMax="0.95978"> - <channel onMode="1" bRatio="0.4365815" products="211 -211 221"/> - <channel onMode="1" bRatio="0.2947428" products="113 22"/> - <channel onMode="1" bRatio="0.2172848" products="111 111 221"/> - <channel onMode="1" bRatio="0.0276636" products="223 22"/> - <channel onMode="1" bRatio="0.0219297" products="22 22"/> - <channel onMode="1" bRatio="0.0016900" products="111 111 111"/> - <channel onMode="1" bRatio="0.0001076" products="13 -13 22"/> -</particle> - -<particle id="333" name="phi" spinType="3" chargeType="0" colType="0" - m0="1.01946" mWidth="0.00426" mMin="1.00000" mMax="1.04000"> - <channel onMode="1" bRatio="0.4893042" meMode="2" products="321 -321"/> - <channel onMode="1" bRatio="0.3422127" meMode="2" products="130 310"/> - <channel onMode="1" bRatio="0.0420984" products="-213 211"/> - <channel onMode="1" bRatio="0.0420984" products="113 111"/> - <channel onMode="1" bRatio="0.0420984" products="213 -211"/> - <channel onMode="1" bRatio="0.0270000" meMode="1" products="211 -211 111"/> - <channel onMode="1" bRatio="0.0130981" products="221 22"/> - <channel onMode="1" bRatio="0.0012708" products="111 22"/> - <channel onMode="1" bRatio="0.0002956" products="11 -11"/> - <channel onMode="1" bRatio="0.0002872" products="13 -13"/> - <channel onMode="1" bRatio="0.0001151" meMode="11" products="221 11 -11"/> - <channel onMode="1" bRatio="0.0000740" meMode="2" products="211 -211"/> - <channel onMode="1" bRatio="0.0000470" products="223 111"/> -</particle> - -<!-- -<particle id="335" name="f'_2(1525)" spinType="5" chargeType="0" colType="0" - m0="1.52500" mWidth="0.07300" mMin="1.10000" mMax="2.00000"> - <channel onMode="1" bRatio="0.4444000" products="321 -321"/> - <channel onMode="1" bRatio="0.2222000" products="130 130"/> - <channel onMode="1" bRatio="0.2222000" products="310 310"/> - <channel onMode="1" bRatio="0.1030000" products="221 221"/> - <channel onMode="1" bRatio="0.0041000" products="211 -211"/> - <channel onMode="1" bRatio="0.0041000" products="111 111"/> -</particle> ---> - -<particle id="411" name="D+" antiName="D-" spinType="1" chargeType="3" colType="0" - m0="1.86962" tau0="3.11800e-01"> - <channel onMode="1" bRatio="0.0004000" products="-13 14"/> - <channel onMode="1" bRatio="0.0010000" products="-15 16"/> - <channel onMode="1" bRatio="0.0043000" meMode="22" products="-11 12 111"/> - <channel onMode="1" bRatio="0.0028000" meMode="22" products="-11 12 113"/> - <channel onMode="1" bRatio="0.0026000" meMode="22" products="-11 12 221"/> - <channel onMode="1" bRatio="0.0028000" meMode="22" products="-11 12 223"/> - <channel onMode="1" bRatio="0.0900000" meMode="22" products="-11 12 311"/> - <channel onMode="1" bRatio="0.0554000" meMode="22" products="-11 12 -313"/> - <channel onMode="1" bRatio="0.0038000" meMode="22" products="-11 12 -315"/> - <channel onMode="1" bRatio="0.0005000" meMode="22" products="-11 12 331"/> - <channel onMode="1" bRatio="0.0036000" meMode="22" products="-11 12 -10313"/> - <channel onMode="1" bRatio="0.0043000" meMode="22" products="-13 14 111"/> - <channel onMode="1" bRatio="0.0028000" meMode="22" products="-13 14 113"/> - <channel onMode="1" bRatio="0.0026000" meMode="22" products="-13 14 221"/> - <channel onMode="1" bRatio="0.0028000" meMode="22" products="-13 14 223"/> - <channel onMode="1" bRatio="0.0874000" meMode="22" products="-13 14 311"/> - <channel onMode="1" bRatio="0.0533000" meMode="22" products="-13 14 -313"/> - <channel onMode="1" bRatio="0.0038000" meMode="22" products="-13 14 -315"/> - <channel onMode="1" bRatio="0.0005000" meMode="22" products="-13 14 331"/> - <channel onMode="1" bRatio="0.0036000" meMode="22" products="-13 14 -10313"/> - <channel onMode="1" bRatio="0.0014000" meMode="22" products="-11 12 311 111"/> - <channel onMode="1" bRatio="0.0027000" meMode="22" products="-11 12 -321 211"/> - <channel onMode="1" bRatio="0.0014000" meMode="22" products="-13 14 311 111"/> - <channel onMode="1" bRatio="0.0027000" meMode="22" products="-13 14 -321 211"/> - <channel onMode="1" bRatio="0.0026000" products="211 111"/> - <channel onMode="1" bRatio="0.0010000" products="211 113"/> - <channel onMode="1" bRatio="0.0076000" products="221 211"/> - <channel onMode="1" bRatio="0.0282000" products="311 211"/> - <channel onMode="1" bRatio="0.0210000" products="-313 213"/> - <channel onMode="1" bRatio="0.0074000" products="321 311"/> - <channel onMode="1" bRatio="0.0042000" products="321 -313"/> - <channel onMode="1" bRatio="0.0310000" products="323 311"/> - <channel onMode="1" bRatio="0.0180000" products="323 -313"/> - <channel onMode="1" bRatio="0.0070000" products="333 211"/> - <channel onMode="1" bRatio="0.0115000" products="-10311 211"/> - <channel onMode="1" bRatio="0.0800000" products="20213 311"/> - <channel onMode="1" bRatio="0.0508000" products="-20313 211"/> - <channel onMode="1" bRatio="0.0015000" products="211 111 111"/> - <channel onMode="1" bRatio="0.0020000" products="211 211 -211"/> - <channel onMode="1" bRatio="0.0030000" products="221 211 111"/> - <channel onMode="1" bRatio="0.0970000" products="311 211 111"/> - <channel onMode="1" bRatio="0.0050000" products="311 211 113"/> - <channel onMode="1" bRatio="0.0100000" products="311 221 211"/> - <channel onMode="1" bRatio="0.0050000" products="311 223 211"/> - <channel onMode="1" bRatio="0.0010000" products="311 311 211"/> - <channel onMode="1" bRatio="0.0010000" products="313 311 211"/> - <channel onMode="1" bRatio="0.0100000" products="-313 211 111"/> - <channel onMode="1" bRatio="0.0078000" products="-313 211 113"/> - <channel onMode="1" bRatio="0.0100000" products="-313 221 211"/> - <channel onMode="1" bRatio="0.0050000" products="-313 223 211"/> - <channel onMode="1" bRatio="0.0010000" products="-313 311 211"/> - <channel onMode="1" bRatio="0.0010000" products="321 311 111"/> - <channel onMode="1" bRatio="0.0100000" products="321 311 311"/> - <channel onMode="1" bRatio="0.0010000" products="321 -313 111"/> - <channel onMode="1" bRatio="0.0046000" products="321 -321 211"/> - <channel onMode="1" bRatio="0.0920000" products="-321 211 211"/> - <channel onMode="1" bRatio="0.0110000" products="-321 213 211"/> - <channel onMode="1" bRatio="0.0010000" products="323 311 111"/> - <channel onMode="1" bRatio="0.0010000" products="323 -321 211"/> - <channel onMode="1" bRatio="0.0070000" products="-323 211 211"/> - <channel onMode="1" bRatio="0.0100000" products="-323 213 211"/> - <channel onMode="1" bRatio="0.0010000" products="-323 321 211"/> - <channel onMode="1" bRatio="0.0230000" products="333 211 111"/> - <channel onMode="1" bRatio="0.0050000" products="211 111 111 111"/> - <channel onMode="1" bRatio="0.0090000" products="211 211 -211 111"/> - <channel onMode="1" bRatio="0.0020000" products="221 211 111 111"/> - <channel onMode="1" bRatio="0.0030000" products="221 211 211 -211"/> - <channel onMode="1" bRatio="0.0188000" products="311 211 111 111"/> - <channel onMode="1" bRatio="0.0120000" products="-321 211 211 111"/> - <channel onMode="1" bRatio="0.0021000" products="211 211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0035000" products="311 211 111 111 111"/> - <channel onMode="1" bRatio="0.0087000" products="311 211 211 -211 111"/> - <channel onMode="1" bRatio="0.0050000" products="-321 211 211 111 111"/> - <channel onMode="1" bRatio="0.0022000" products="-321 211 211 211 -211"/> -</particle> - -<particle id="413" name="D*+" antiName="D*-" spinType="3" chargeType="3" colType="0" - m0="2.01028" tau0="2.36e-09"> - <channel onMode="1" bRatio="0.6770000" meMode="2" products="421 211"/> - <channel onMode="1" bRatio="0.3070000" meMode="2" products="411 111"/> - <channel onMode="1" bRatio="0.0160000" products="411 22"/> -</particle> - -<!-- -<particle id="415" name="D*_2(2460)+" antiName="D*_2(2460)-" spinType="5" chargeType="3" colType="0" - m0="2.46440" mWidth="0.03700" mMin="2.30000" mMax="2.65000"> - <channel onMode="1" bRatio="0.2200000" products="423 211"/> - <channel onMode="1" bRatio="0.1100000" products="413 111"/> - <channel onMode="1" bRatio="0.3800000" products="421 211"/> - <channel onMode="1" bRatio="0.1900000" products="411 111"/> - <channel onMode="1" bRatio="0.0670000" products="423 211 111"/> - <channel onMode="1" bRatio="0.0330000" products="413 211 -211"/> -</particle> ---> - -<particle id="421" name="D0" antiName="Dbar0" spinType="1" chargeType="0" colType="0" - m0="1.86486" tau0="1.22900e-01"> - <channel onMode="1" bRatio="0.0034000" meMode="22" products="-11 12 -211"/> - <channel onMode="1" bRatio="0.0022000" meMode="22" products="-11 12 -213"/> - <channel onMode="1" bRatio="0.0350000" meMode="22" products="-11 12 -321"/> - <channel onMode="1" bRatio="0.0225000" meMode="22" products="-11 12 -323"/> - <channel onMode="1" bRatio="0.0015000" meMode="22" products="-11 12 -325"/> - <channel onMode="1" bRatio="0.0014000" meMode="22" products="-11 12 -10323"/> - <channel onMode="1" bRatio="0.0034000" meMode="22" products="-13 14 -211"/> - <channel onMode="1" bRatio="0.0022000" meMode="22" products="-13 14 -213"/> - <channel onMode="1" bRatio="0.0340000" meMode="22" products="-13 14 -321"/> - <channel onMode="1" bRatio="0.0214000" meMode="22" products="-13 14 -323"/> - <channel onMode="1" bRatio="0.0015000" meMode="22" products="-13 14 -325"/> - <channel onMode="1" bRatio="0.0014000" meMode="22" products="-13 14 -10323"/> - <channel onMode="1" bRatio="0.0011000" meMode="22" products="-11 12 311 -211"/> - <channel onMode="1" bRatio="0.0006000" meMode="22" products="-11 12 -321 111"/> - <channel onMode="1" bRatio="0.0011000" meMode="22" products="-13 14 311 -211"/> - <channel onMode="1" bRatio="0.0006000" meMode="22" products="-13 14 -321 111"/> - <channel onMode="1" bRatio="0.0008000" products="111 111"/> - <channel onMode="1" bRatio="0.0020000" products="113 111"/> - <channel onMode="1" bRatio="0.0006000" products="130 130"/> - <channel onMode="1" bRatio="0.0015000" products="211 -211"/> - <channel onMode="1" bRatio="0.0040000" products="213 -211"/> - <channel onMode="1" bRatio="0.0040000" products="-213 211"/> - <channel onMode="1" bRatio="0.0010000" products="221 111"/> - <channel onMode="1" bRatio="0.0010000" products="221 221"/> - <channel onMode="1" bRatio="0.0006000" products="310 310"/> - <channel onMode="1" bRatio="0.0212000" products="311 111"/> - <channel onMode="1" bRatio="0.0071000" products="311 221"/> - <channel onMode="1" bRatio="0.0210000" products="311 223"/> - <channel onMode="1" bRatio="0.0004000" products="313 311"/> - <channel onMode="1" bRatio="0.0014000" products="313 -313"/> - <channel onMode="1" bRatio="0.0085000" products="-313 111"/> - <channel onMode="1" bRatio="0.0146000" products="-313 113"/> - <channel onMode="1" bRatio="0.0190000" products="-313 221"/> - <channel onMode="1" bRatio="0.0110000" products="-313 223"/> - <channel onMode="1" bRatio="0.0008000" products="-313 311"/> - <channel onMode="1" bRatio="0.0001500" products="321 -211"/> - <channel onMode="1" bRatio="0.0043000" products="321 -321"/> - <channel onMode="1" bRatio="0.0383000" products="-321 211"/> - <channel onMode="1" bRatio="0.0035000" products="323 -321"/> - <channel onMode="1" bRatio="0.0610000" products="-323 213"/> - <channel onMode="1" bRatio="0.0018000" products="-323 321"/> - <channel onMode="1" bRatio="0.0010000" products="331 111"/> - <channel onMode="1" bRatio="0.0172000" products="331 311"/> - <channel onMode="1" bRatio="0.0020000" products="331 -313"/> - <channel onMode="1" bRatio="0.0007000" products="333 111"/> - <channel onMode="1" bRatio="0.0086000" products="333 311"/> - <channel onMode="1" bRatio="0.0071000" products="-10313 111"/> - <channel onMode="1" bRatio="0.0107000" products="-10323 211"/> - <channel onMode="1" bRatio="0.0730000" products="20213 -321"/> - <channel onMode="1" bRatio="0.0010000" products="111 111 111"/> - <channel onMode="1" bRatio="0.0060000" products="211 -211 111"/> - <channel onMode="1" bRatio="0.0270000" products="211 -211 130"/> - <channel onMode="1" bRatio="0.0270000" products="310 211 -211"/> - <channel onMode="1" bRatio="0.0008000" products="310 310 310"/> - <channel onMode="1" bRatio="0.0078000" products="311 111 111"/> - <channel onMode="1" bRatio="0.0116000" products="-313 111 111"/> - <channel onMode="1" bRatio="0.0225000" products="-313 211 -211"/> - <channel onMode="1" bRatio="0.0005000" products="321 -211 111"/> - <channel onMode="1" bRatio="0.0051000" products="321 -321 311"/> - <channel onMode="1" bRatio="0.1390000" products="-321 211 111"/> - <channel onMode="1" bRatio="0.0060000" products="-321 211 113"/> - <channel onMode="1" bRatio="0.0068000" products="-321 213 111"/> - <channel onMode="1" bRatio="0.0100000" products="-321 221 211"/> - <channel onMode="1" bRatio="0.0303000" products="-321 223 211"/> - <channel onMode="1" bRatio="0.0100000" products="-323 211 111"/> - <channel onMode="1" bRatio="0.0075000" products="331 -321 211"/> - <channel onMode="1" bRatio="0.0011000" products="333 211 -211"/> - <channel onMode="1" bRatio="0.0073000" products="211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0050000" products="211 -211 111 111"/> - <channel onMode="1" bRatio="0.0143000" products="311 111 111 111"/> - <channel onMode="1" bRatio="0.0085000" products="311 211 -211 111"/> - <channel onMode="1" bRatio="0.0015000" products="311 311 111 111"/> - <channel onMode="1" bRatio="0.0015000" products="311 311 211 -211"/> - <channel onMode="1" bRatio="0.0030000" products="321 -321 111 111"/> - <channel onMode="1" bRatio="0.0025000" products="321 -321 211 -211"/> - <channel onMode="1" bRatio="0.0257500" products="-321 211 111 111"/> - <channel onMode="1" bRatio="0.0074000" products="-321 211 211 -211"/> - <channel onMode="1" bRatio="0.0177000" products="211 211 -211 -211 111"/> - <channel onMode="1" bRatio="0.0060000" products="211 -211 111 111 111"/> - <channel onMode="1" bRatio="0.0058000" products="311 211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0638000" products="311 211 -211 111 111"/> - <channel onMode="1" bRatio="0.0038000" products="-321 211 111 111 111"/> - <channel onMode="1" bRatio="0.0038000" products="-321 211 211 -211 111"/> - <channel onMode="1" bRatio="0.0192000" products="311 211 -211 111 111 111"/> -</particle> - -<particle id="423" name="D*0" antiName="D*bar0" spinType="3" chargeType="0" colType="0" - m0="2.00698"> - <channel onMode="1" bRatio="0.6190000" meMode="2" products="421 111"/> - <channel onMode="1" bRatio="0.3810000" products="421 22"/> -</particle> - -<!-- -<particle id="425" name="D*_2(2460)0" antiName="D*_2(2460)bar0" spinType="5" chargeType="0" colType="0" - m0="2.46260" mWidth="0.04900" mMin="2.30000" mMax="2.65000"> - <channel onMode="1" bRatio="0.2200000" products="413 -211"/> - <channel onMode="1" bRatio="0.1100000" products="423 111"/> - <channel onMode="1" bRatio="0.3800000" products="411 -211"/> - <channel onMode="1" bRatio="0.1900000" products="421 111"/> - <channel onMode="1" bRatio="0.0670000" products="413 -211 111"/> - <channel onMode="1" bRatio="0.0330000" products="423 211 -211"/> -</particle> ---> - -<particle id="431" name="D_s+" antiName="D_s-" spinType="1" chargeType="3" colType="0" - m0="1.96849" tau0="1.49900e-01"> - <channel onMode="1" bRatio="0.0061600" products="-13 14"/> - <channel onMode="1" bRatio="0.0640000" products="-15 16"/> - <channel onMode="1" bRatio="0.0307000" meMode="22" products="-11 12 221"/> - <channel onMode="1" bRatio="0.0027000" meMode="22" products="-11 12 311"/> - <channel onMode="1" bRatio="0.0010000" meMode="22" products="-11 12 -313"/> - <channel onMode="1" bRatio="0.0106000" meMode="22" products="-11 12 331"/> - <channel onMode="1" bRatio="0.0242000" meMode="22" products="-11 12 333"/> - <channel onMode="1" bRatio="0.0307000" meMode="22" products="-13 14 221"/> - <channel onMode="1" bRatio="0.0027000" meMode="22" products="-13 14 311"/> - <channel onMode="1" bRatio="0.0010000" meMode="22" products="-13 14 -313"/> - <channel onMode="1" bRatio="0.0106000" meMode="22" products="-13 14 331"/> - <channel onMode="1" bRatio="0.0242000" meMode="22" products="-13 14 333"/> - <channel onMode="1" bRatio="0.0010000" products="211 111"/> - <channel onMode="1" bRatio="0.0004000" products="211 113"/> - <channel onMode="1" bRatio="0.0004000" products="213 111"/> - <channel onMode="1" bRatio="0.0210000" products="221 211"/> - <channel onMode="1" bRatio="0.1310400" products="221 213"/> - <channel onMode="1" bRatio="0.0034000" products="223 211"/> - <channel onMode="1" bRatio="0.0023000" products="225 211"/> - <channel onMode="1" bRatio="0.0040000" products="311 211"/> - <channel onMode="1" bRatio="0.0015000" products="311 213"/> - <channel onMode="1" bRatio="0.0079000" products="313 211"/> - <channel onMode="1" bRatio="0.0050000" products="313 213"/> - <channel onMode="1" bRatio="0.0015000" products="321 113"/> - <channel onMode="1" bRatio="0.0002000" products="321 221"/> - <channel onMode="1" bRatio="0.0440000" products="321 311"/> - <channel onMode="1" bRatio="0.0400000" products="321 -313"/> - <channel onMode="1" bRatio="0.0530000" products="323 311"/> - <channel onMode="1" bRatio="0.0700000" products="323 -313"/> - <channel onMode="1" bRatio="0.0470000" products="331 211"/> - <channel onMode="1" bRatio="0.1220000" products="331 213"/> - <channel onMode="1" bRatio="0.0002000" products="331 321"/> - <channel onMode="1" bRatio="0.0440000" products="333 211"/> - <channel onMode="1" bRatio="0.0820000" products="333 213"/> - <channel onMode="1" bRatio="0.0003000" products="333 321"/> - <channel onMode="1" bRatio="0.0025000" products="20213 311"/> - <channel onMode="1" bRatio="0.0100000" products="9010221 211"/> - <channel onMode="1" bRatio="0.0000500" products="211 111 111"/> - <channel onMode="1" bRatio="0.0000500" products="211 211 -211"/> - <channel onMode="1" bRatio="0.0150000" products="221 211 111"/> - <channel onMode="1" bRatio="0.0010000" products="311 211 111"/> - <channel onMode="1" bRatio="0.0050000" products="313 211 111"/> - <channel onMode="1" bRatio="0.0002000" products="321 221 111"/> - <channel onMode="1" bRatio="0.0030000" products="321 311 111"/> - <channel onMode="1" bRatio="0.0012000" products="321 -313 111"/> - <channel onMode="1" bRatio="0.0002000" products="321 321 -321"/> - <channel onMode="1" bRatio="0.0110000" products="321 -321 211"/> - <channel onMode="1" bRatio="0.0012000" products="323 311 111"/> - <channel onMode="1" bRatio="0.0040000" products="323 -313 111"/> - <channel onMode="1" bRatio="0.0150000" products="331 211 111"/> - <channel onMode="1" bRatio="0.0002000" products="331 321 111"/> - <channel onMode="1" bRatio="0.0100000" products="333 211 111"/> - <channel onMode="1" bRatio="0.0050000" products="221 211 111 111"/> - <channel onMode="1" bRatio="0.0050000" products="221 211 211 -211"/> - <channel onMode="1" bRatio="0.0002000" products="321 221 211 -211"/> - <channel onMode="1" bRatio="0.0010000" products="321 311 111 111"/> - <channel onMode="1" bRatio="0.0010000" products="321 311 211 -211"/> - <channel onMode="1" bRatio="0.0002000" products="331 321 211 -211"/> - <channel onMode="1" bRatio="0.0050000" products="333 211 111 111"/> - <channel onMode="1" bRatio="0.0080000" products="333 211 211 -211"/> - <channel onMode="1" bRatio="0.0043000" products="321 -321 211 211 -211"/> -</particle> - -<particle id="433" name="D*_s+" antiName="D*_s-" spinType="3" chargeType="3" colType="0" - m0="2.11230"> - <channel onMode="1" bRatio="0.9420000" products="431 22"/> - <channel onMode="1" bRatio="0.0580000" meMode="2" products="431 111"/> -</particle> - -<!-- -<particle id="435" name="D*_2s(2573)+" antiName="D*_2s(2573)-" spinType="5" chargeType="3" colType="0" - m0="2.57190" mWidth="0.01700" mMin="2.51000" mMax="2.70000"> - <channel onMode="1" bRatio="0.0500000" products="413 311"/> - <channel onMode="1" bRatio="0.0500000" products="423 321"/> - <channel onMode="1" bRatio="0.4500000" products="411 311"/> - <channel onMode="1" bRatio="0.4500000" products="421 321"/> -</particle> ---> - -<particle id="441" name="eta_c" spinType="1" chargeType="0" colType="0" - m0="2.98100" mWidth="0.02970" mMin="2.78040" mMax="3.18040"> - <channel onMode="1" bRatio="0.0002800" products="22 22"/> - <channel onMode="1" bRatio="0.0087000" products="113 113"/> - <channel onMode="1" bRatio="0.0173000" products="213 -213"/> - <channel onMode="1" bRatio="0.0042000" products="313 -313"/> - <channel onMode="1" bRatio="0.0043000" products="323 -323"/> - <channel onMode="1" bRatio="0.0026000" products="333 333"/> - <channel onMode="1" bRatio="0.0013000" products="2212 -2212"/> - <channel onMode="1" bRatio="0.0163000" products="221 111 111"/> - <channel onMode="1" bRatio="0.0327000" products="221 211 -211"/> - <channel onMode="1" bRatio="0.0095000" products="311 311 111"/> - <channel onMode="1" bRatio="0.0191000" products="321 311 -211"/> - <channel onMode="1" bRatio="0.0072000" products="321 -313 -211"/> - <channel onMode="1" bRatio="0.0095000" products="321 -321 111"/> - <channel onMode="1" bRatio="0.0191000" products="-321 311 211"/> - <channel onMode="1" bRatio="0.0072000" products="-321 313 211"/> - <channel onMode="1" bRatio="0.0137000" products="331 111 111"/> - <channel onMode="1" bRatio="0.0273000" products="331 211 -211"/> - <channel onMode="1" bRatio="0.0018000" products="333 321 -321"/> - <channel onMode="1" bRatio="0.0033000" products="211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0006000" products="321 321 -321 -321"/> - <channel onMode="1" bRatio="0.0054000" products="321 -321 211 -211"/> - <channel onMode="1" bRatio="0.7886200" meMode="52" products="83 -83"/> -</particle> - -<particle id="443" name="J/psi" spinType="3" chargeType="0" colType="0" - m0="3.09692" mWidth="0.00009" mMin="3.09602" mMax="3.09782"> - <channel onMode="1" bRatio="0.8023950" meMode="43" products="83 -83"/> - <channel onMode="1" bRatio="0.0594000" products="11 -11"/> - <channel onMode="1" bRatio="0.0593000" products="13 -13"/> - <channel onMode="1" bRatio="0.0130000" products="441 22"/> - <channel onMode="1" bRatio="0.0056000" products="113 111"/> - <channel onMode="1" bRatio="0.0056500" products="213 -211"/> - <channel onMode="1" bRatio="0.0056500" products="-213 211"/> - <channel onMode="1" bRatio="0.0036000" products="115 113"/> - <channel onMode="1" bRatio="0.0036000" products="-215 213"/> - <channel onMode="1" bRatio="0.0036000" products="215 -213"/> - <channel onMode="1" bRatio="0.0043000" products="225 223"/> - <channel onMode="1" bRatio="0.0022000" products="313 -315"/> - <channel onMode="1" bRatio="0.0022000" products="323 -325"/> - <channel onMode="1" bRatio="0.0022000" products="-323 325"/> - <channel onMode="1" bRatio="0.0025000" products="321 -323"/> - <channel onMode="1" bRatio="0.0025000" products="-321 323"/> - <channel onMode="1" bRatio="0.0021000" products="311 -313"/> - <channel onMode="1" bRatio="0.0021000" products="-311 313"/> - <channel onMode="1" bRatio="0.0019000" products="20323 -321"/> - <channel onMode="1" bRatio="0.0019000" products="-20323 321"/> - <channel onMode="1" bRatio="0.0015000" products="10213 -211"/> - <channel onMode="1" bRatio="0.0015000" products="-10213 211"/> - <channel onMode="1" bRatio="0.0023000" products="10113 111"/> - <channel onMode="1" bRatio="0.0004800" products="10331 223"/> - <channel onMode="1" bRatio="0.0007400" products="223 221"/> - <channel onMode="1" bRatio="0.0003600" products="10331 333"/> - <channel onMode="1" bRatio="0.0008000" products="333 335"/> - <channel onMode="1" bRatio="0.0006800" products="20333 223"/> - <channel onMode="1" bRatio="0.0007400" products="333 221"/> - <channel onMode="1" bRatio="0.0004500" products="223 111"/> - <channel onMode="1" bRatio="0.0004000" products="333 331"/> - <channel onMode="1" bRatio="0.0003200" products="333 9010221"/> - <channel onMode="1" bRatio="0.0002600" products="333 20223"/> - <channel onMode="1" bRatio="0.0001930" products="113 221"/> - <channel onMode="1" bRatio="0.0001820" products="223 331"/> - <channel onMode="1" bRatio="0.0001400" products="223 9010221"/> - <channel onMode="1" bRatio="0.0001050" products="113 331"/> - <channel onMode="1" bRatio="0.0011000" products="2224 -2224"/> - <channel onMode="1" bRatio="0.0005150" products="3112 -3112"/> - <channel onMode="1" bRatio="0.0005900" products="3314 -3314"/> - <channel onMode="1" bRatio="0.0003200" products="3324 -3324"/> - <channel onMode="1" bRatio="0.0003200" products="3324 -3324"/> - <channel onMode="1" bRatio="0.0001550" products="3114 -3114"/> - <channel onMode="1" bRatio="0.0001550" products="3224 -3224"/> -</particle> - -<!-- -<particle id="445" name="chi_2c" spinType="5" chargeType="0" colType="0" - m0="3.55620" mWidth="0.00198" mMin="3.53620" mMax="3.57620"> - <channel onMode="1" bRatio="0.0002590" products="22 22"/> - <channel onMode="1" bRatio="0.2020000" products="443 22"/> - <channel onMode="1" bRatio="0.0008900" products="130 130"/> - <channel onMode="1" bRatio="0.0018000" products="211 -211"/> - <channel onMode="1" bRatio="0.0008900" products="310 310"/> - <channel onMode="1" bRatio="0.0047000" products="313 -313"/> - <channel onMode="1" bRatio="0.0009000" products="321 -321"/> - <channel onMode="1" bRatio="0.0024000" products="333 333"/> - <channel onMode="1" bRatio="0.0000680" products="2212 -2212"/> - <channel onMode="1" bRatio="0.0003000" products="3122 -3122"/> - <channel onMode="1" bRatio="0.0046000" products="211 -211 113"/> - <channel onMode="1" bRatio="0.0046000" products="213 -211 111"/> - <channel onMode="1" bRatio="0.0046000" products="-213 211 111"/> - <channel onMode="1" bRatio="0.0015000" products="321 -313 -211"/> - <channel onMode="1" bRatio="0.0015000" products="-321 313 211"/> - <channel onMode="1" bRatio="0.0016000" products="323 311 -211"/> - <channel onMode="1" bRatio="0.0016000" products="-323 311 211"/> - <channel onMode="1" bRatio="0.0102000" products="211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0003000" products="310 310 211 -211"/> - <channel onMode="1" bRatio="0.0012000" products="321 321 -321 -321"/> - <channel onMode="1" bRatio="0.0103000" products="321 -321 211 -211"/> - <channel onMode="1" bRatio="0.0003000" products="321 -321 310 310"/> - <channel onMode="1" bRatio="0.0017000" products="2212 -2212 211 -211"/> - <channel onMode="1" bRatio="0.0107000" products="211 211 211 -211 -211 -211"/> - <channel onMode="1" bRatio="0.7310930" meMode="52" products="83 -83"/> -</particle> ---> - -<particle id="511" name="B0" antiName="Bbar0" spinType="1" chargeType="0" colType="0" - m0="5.27958" tau0="4.58700e-01"> - <channel onMode="1" bRatio="0.0001330" meMode="22" products="12 -11 -211"/> - <channel onMode="1" bRatio="0.0002690" meMode="22" products="12 -11 -213"/> - <channel onMode="1" bRatio="0.0207000" meMode="22" products="12 -11 -411"/> - <channel onMode="1" bRatio="0.0570000" meMode="22" products="12 -11 -413"/> - <channel onMode="1" bRatio="0.0023000" meMode="22" products="12 -11 -415"/> - <channel onMode="1" bRatio="0.0045000" meMode="22" products="12 -11 -10411"/> - <channel onMode="1" bRatio="0.0052000" meMode="22" products="12 -11 -10413"/> - <channel onMode="1" bRatio="0.0083000" meMode="22" products="12 -11 -20413"/> - <channel onMode="1" bRatio="0.0001330" meMode="22" products="14 -13 -211"/> - <channel onMode="1" bRatio="0.0002690" meMode="22" products="14 -13 -213"/> - <channel onMode="1" bRatio="0.0207000" meMode="22" products="14 -13 -411"/> - <channel onMode="1" bRatio="0.0570000" meMode="22" products="14 -13 -413"/> - <channel onMode="1" bRatio="0.0023000" meMode="22" products="14 -13 -415"/> - <channel onMode="1" bRatio="0.0045000" meMode="22" products="14 -13 -10411"/> - <channel onMode="1" bRatio="0.0052000" meMode="22" products="14 -13 -10413"/> - <channel onMode="1" bRatio="0.0083000" meMode="22" products="14 -13 -20413"/> - <channel onMode="1" bRatio="0.0000600" meMode="22" products="16 -15 -211"/> - <channel onMode="1" bRatio="0.0000830" meMode="22" products="16 -15 -213"/> - <channel onMode="1" bRatio="0.0000080" meMode="22" products="16 -15 -215"/> - <channel onMode="1" bRatio="0.0070000" meMode="22" products="16 -15 -411"/> - <channel onMode="1" bRatio="0.0160000" meMode="22" products="16 -15 -413"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="16 -15 -415"/> - <channel onMode="1" bRatio="0.0000080" meMode="22" products="16 -15 -10213"/> - <channel onMode="1" bRatio="0.0013000" meMode="22" products="16 -15 -10411"/> - <channel onMode="1" bRatio="0.0013000" meMode="22" products="16 -15 -10413"/> - <channel onMode="1" bRatio="0.0000900" meMode="22" products="16 -15 -20213"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="16 -15 -20413"/> - <channel onMode="1" bRatio="0.0000080" meMode="22" products="16 -15 -9000211"/> - <channel onMode="1" bRatio="0.0010000" meMode="22" products="12 -11 -411 111"/> - <channel onMode="1" bRatio="0.0003000" meMode="22" products="12 -11 -413 111"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="12 -11 -421 -211"/> - <channel onMode="1" bRatio="0.0007000" meMode="22" products="12 -11 -423 -211"/> - <channel onMode="1" bRatio="0.0010000" meMode="22" products="14 -13 -411 111"/> - <channel onMode="1" bRatio="0.0003000" meMode="22" products="14 -13 -413 111"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="14 -13 -421 -211"/> - <channel onMode="1" bRatio="0.0007000" meMode="22" products="14 -13 -423 -211"/> - <channel onMode="1" bRatio="0.0000015" products="111 111"/> - <channel onMode="1" bRatio="0.0000020" products="113 113"/> - <channel onMode="1" bRatio="0.0000060" products="130 111"/> - <channel onMode="1" bRatio="0.0000026" products="130 113"/> - <channel onMode="1" bRatio="0.0000006" products="130 130"/> - <channel onMode="1" bRatio="0.0000046" products="211 -211"/> - <channel onMode="1" bRatio="0.0000300" products="213 -213"/> - <channel onMode="1" bRatio="0.0000010" products="221 111"/> - <channel onMode="1" bRatio="0.0000010" products="221 113"/> - <channel onMode="1" bRatio="0.0000010" products="221 130"/> - <channel onMode="1" bRatio="0.0000010" products="221 221"/> - <channel onMode="1" bRatio="0.0000005" products="223 22"/> - <channel onMode="1" bRatio="0.0000010" products="223 111"/> - <channel onMode="1" bRatio="0.0000010" products="223 113"/> - <channel onMode="1" bRatio="0.0000023" products="223 130"/> - <channel onMode="1" bRatio="0.0000010" products="223 221"/> - <channel onMode="1" bRatio="0.0000010" products="223 223"/> - <channel onMode="1" bRatio="0.0000060" products="310 111"/> - <channel onMode="1" bRatio="0.0000026" products="310 113"/> - <channel onMode="1" bRatio="0.0000010" products="310 221"/> - <channel onMode="1" bRatio="0.0000023" products="310 223"/> - <channel onMode="1" bRatio="0.0000006" products="310 310"/> - <channel onMode="1" bRatio="0.0000401" products="313 22"/> - <channel onMode="1" bRatio="0.0000017" products="313 111"/> - <channel onMode="1" bRatio="0.0000100" products="313 113"/> - <channel onMode="1" bRatio="0.0000190" products="313 221"/> - <channel onMode="1" bRatio="0.0000010" products="313 223"/> - <channel onMode="1" bRatio="0.0000030" products="313 311"/> - <channel onMode="1" bRatio="0.0000010" products="313 -313"/> - <channel onMode="1" bRatio="0.0000180" products="321 -211"/> - <channel onMode="1" bRatio="0.0000099" products="321 -213"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321"/> - <channel onMode="1" bRatio="0.0000130" products="323 -211"/> - <channel onMode="1" bRatio="0.0000200" products="323 -213"/> - <channel onMode="1" bRatio="0.0000020" products="323 -321"/> - <channel onMode="1" bRatio="0.0000010" products="323 -323"/> - <channel onMode="1" bRatio="0.0000010" products="331 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 113"/> - <channel onMode="1" bRatio="0.0000320" products="331 130"/> - <channel onMode="1" bRatio="0.0000010" products="331 221"/> - <channel onMode="1" bRatio="0.0000010" products="331 223"/> - <channel onMode="1" bRatio="0.0000320" products="331 310"/> - <channel onMode="1" bRatio="0.0000010" products="331 313"/> - <channel onMode="1" bRatio="0.0000010" products="331 331"/> - <channel onMode="1" bRatio="0.0000010" products="333 111"/> - <channel onMode="1" bRatio="0.0000001" products="333 113"/> - <channel onMode="1" bRatio="0.0000042" products="333 130"/> - <channel onMode="1" bRatio="0.0000010" products="333 221"/> - <channel onMode="1" bRatio="0.0000010" products="333 223"/> - <channel onMode="1" bRatio="0.0000042" products="333 310"/> - <channel onMode="1" bRatio="0.0000110" products="333 313"/> - <channel onMode="1" bRatio="0.0000010" products="333 331"/> - <channel onMode="1" bRatio="0.0000001" products="333 333"/> - <channel onMode="1" bRatio="0.0002700" products="411 -411"/> - <channel onMode="1" bRatio="0.0028000" products="-411 211"/> - <channel onMode="1" bRatio="0.0077000" products="-411 213"/> - <channel onMode="1" bRatio="0.0002000" products="-411 321"/> - <channel onMode="1" bRatio="0.0003700" products="-411 323"/> - <channel onMode="1" bRatio="0.0003350" products="413 -411"/> - <channel onMode="1" bRatio="0.0008300" products="413 -413"/> - <channel onMode="1" bRatio="0.0028000" products="-413 211"/> - <channel onMode="1" bRatio="0.0068000" products="-413 213"/> - <channel onMode="1" bRatio="0.0001700" products="-413 321"/> - <channel onMode="1" bRatio="0.0003800" products="-413 323"/> - <channel onMode="1" bRatio="0.0003350" products="-413 411"/> - <channel onMode="1" bRatio="0.0009000" products="-415 211"/> - <channel onMode="1" bRatio="0.0022000" products="-415 213"/> - <channel onMode="1" bRatio="0.0000100" products="421 313"/> - <channel onMode="1" bRatio="0.0002900" products="-421 111"/> - <channel onMode="1" bRatio="0.0002900" products="-421 113"/> - <channel onMode="1" bRatio="0.0002200" products="-421 221"/> - <channel onMode="1" bRatio="0.0002500" products="-421 223"/> - <channel onMode="1" bRatio="0.0000400" products="-421 311"/> - <channel onMode="1" bRatio="0.0000400" products="-421 313"/> - <channel onMode="1" bRatio="0.0001700" products="-421 331"/> - <channel onMode="1" bRatio="0.0000100" products="423 313"/> - <channel onMode="1" bRatio="0.0002700" products="-423 111"/> - <channel onMode="1" bRatio="0.0002900" products="-423 113"/> - <channel onMode="1" bRatio="0.0002600" products="-423 221"/> - <channel onMode="1" bRatio="0.0004200" products="-423 223"/> - <channel onMode="1" bRatio="0.0000400" products="-423 311"/> - <channel onMode="1" bRatio="0.0000400" products="-423 313"/> - <channel onMode="1" bRatio="0.0001700" products="-423 331"/> - <channel onMode="1" bRatio="0.0000390" products="431 -211"/> - <channel onMode="1" bRatio="0.0000160" products="431 -213"/> - <channel onMode="1" bRatio="0.0090000" products="431 -411"/> - <channel onMode="1" bRatio="0.0126000" products="431 -413"/> - <channel onMode="1" bRatio="0.0042000" products="431 -415"/> - <channel onMode="1" bRatio="0.0000460" products="-431 321"/> - <channel onMode="1" bRatio="0.0000160" products="-431 323"/> - <channel onMode="1" bRatio="0.0000260" products="433 -211"/> - <channel onMode="1" bRatio="0.0000160" products="433 -213"/> - <channel onMode="1" bRatio="0.0090000" products="433 -411"/> - <channel onMode="1" bRatio="0.0240000" products="433 -413"/> - <channel onMode="1" bRatio="0.0040000" products="433 -415"/> - <channel onMode="1" bRatio="0.0000160" products="-433 321"/> - <channel onMode="1" bRatio="0.0000160" products="-433 323"/> - <channel onMode="1" bRatio="0.0006000" products="441 130"/> - <channel onMode="1" bRatio="0.0006000" products="441 310"/> - <channel onMode="1" bRatio="0.0016200" products="441 313"/> - <channel onMode="1" bRatio="0.0000220" products="443 111"/> - <channel onMode="1" bRatio="0.0000160" products="443 113"/> - <channel onMode="1" bRatio="0.0004400" products="443 130"/> - <channel onMode="1" bRatio="0.0000300" products="443 223"/> - <channel onMode="1" bRatio="0.0004400" products="443 310"/> - <channel onMode="1" bRatio="0.0005000" products="443 315"/> - <channel onMode="1" bRatio="0.0000300" products="445 313"/> - <channel onMode="1" bRatio="0.0000001" products="2212 -2212"/> - <channel onMode="1" bRatio="0.0000010" products="10113 111"/> - <channel onMode="1" bRatio="0.0000010" products="10113 221"/> - <channel onMode="1" bRatio="0.0000100" products="10113 311"/> - <channel onMode="1" bRatio="0.0000010" products="10113 331"/> - <channel onMode="1" bRatio="0.0000100" products="10213 -211"/> - <channel onMode="1" bRatio="0.0000100" products="-10213 211"/> - <channel onMode="1" bRatio="0.0000100" products="-10213 321"/> - <channel onMode="1" bRatio="0.0000010" products="10311 111"/> - <channel onMode="1" bRatio="0.0000100" products="10311 113"/> - <channel onMode="1" bRatio="0.0000030" products="10311 311"/> - <channel onMode="1" bRatio="0.0000100" products="10311 333"/> - <channel onMode="1" bRatio="0.0015000" products="10313 443"/> - <channel onMode="1" bRatio="0.0000010" products="10321 -211"/> - <channel onMode="1" bRatio="0.0000200" products="10321 -213"/> - <channel onMode="1" bRatio="0.0000020" products="10321 -321"/> - <channel onMode="1" bRatio="0.0002000" products="-10411 211"/> - <channel onMode="1" bRatio="0.0006000" products="-10413 211"/> - <channel onMode="1" bRatio="0.0004000" products="-10413 213"/> - <channel onMode="1" bRatio="0.0012000" products="-10413 431"/> - <channel onMode="1" bRatio="0.0024000" products="-10413 433"/> - <channel onMode="1" bRatio="0.0016000" products="10431 -411"/> - <channel onMode="1" bRatio="0.0016000" products="10431 -413"/> - <channel onMode="1" bRatio="0.0001500" products="10441 130"/> - <channel onMode="1" bRatio="0.0001500" products="10441 310"/> - <channel onMode="1" bRatio="0.0003000" products="10441 313"/> - <channel onMode="1" bRatio="0.0000010" products="20113 111"/> - <channel onMode="1" bRatio="0.0000100" products="20113 113"/> - <channel onMode="1" bRatio="0.0000010" products="20113 221"/> - <channel onMode="1" bRatio="0.0000100" products="20113 223"/> - <channel onMode="1" bRatio="0.0000100" products="20113 311"/> - <channel onMode="1" bRatio="0.0000200" products="20113 313"/> - <channel onMode="1" bRatio="0.0000010" products="20113 331"/> - <channel onMode="1" bRatio="0.0000500" products="20113 20113"/> - <channel onMode="1" bRatio="0.0000400" products="20213 -211"/> - <channel onMode="1" bRatio="0.0000100" products="20213 -213"/> - <channel onMode="1" bRatio="0.0083400" products="20213 -411"/> - <channel onMode="1" bRatio="0.0120000" products="20213 -413"/> - <channel onMode="1" bRatio="0.0000500" products="20213 -20213"/> - <channel onMode="1" bRatio="0.0000400" products="-20213 211"/> - <channel onMode="1" bRatio="0.0000100" products="-20213 213"/> - <channel onMode="1" bRatio="0.0000100" products="-20213 321"/> - <channel onMode="1" bRatio="0.0000200" products="-20213 323"/> - <channel onMode="1" bRatio="0.0000020" products="20313 333"/> - <channel onMode="1" bRatio="0.0001000" products="20313 443"/> - <channel onMode="1" bRatio="0.0001000" products="-20413 211"/> - <channel onMode="1" bRatio="0.0013000" products="-20413 213"/> - <channel onMode="1" bRatio="0.0006000" products="-20413 431"/> - <channel onMode="1" bRatio="0.0012000" products="-20413 433"/> - <channel onMode="1" bRatio="0.0041000" products="20433 -411"/> - <channel onMode="1" bRatio="0.0098000" products="20433 -413"/> - <channel onMode="1" bRatio="0.0002300" products="20443 130"/> - <channel onMode="1" bRatio="0.0002300" products="20443 310"/> - <channel onMode="1" bRatio="0.0003000" products="20443 313"/> - <channel onMode="1" bRatio="0.0000010" products="30313 111"/> - <channel onMode="1" bRatio="0.0000010" products="30313 311"/> - <channel onMode="1" bRatio="0.0000010" products="30323 -211"/> - <channel onMode="1" bRatio="0.0000010" products="30323 -321"/> - <channel onMode="1" bRatio="0.0002400" products="30443 130"/> - <channel onMode="1" bRatio="0.0002400" products="30443 310"/> - <channel onMode="1" bRatio="0.0004800" products="30443 313"/> - <channel onMode="1" bRatio="0.0002900" products="30443 10313"/> - <channel onMode="1" bRatio="0.0000005" products="100113 130"/> - <channel onMode="1" bRatio="0.0000005" products="100113 310"/> - <channel onMode="1" bRatio="0.0002400" products="100441 130"/> - <channel onMode="1" bRatio="0.0002400" products="100441 310"/> - <channel onMode="1" bRatio="0.0006600" products="100441 313"/> - <channel onMode="1" bRatio="0.0003300" products="100443 130"/> - <channel onMode="1" bRatio="0.0003300" products="100443 310"/> - <channel onMode="1" bRatio="0.0006600" products="100443 313"/> - <channel onMode="1" bRatio="0.0004000" products="100443 10313"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 111"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 113"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 221"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 223"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 311"/> - <channel onMode="1" bRatio="0.0000050" products="9000111 313"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 331"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 10113"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 20113"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 9000111"/> - <channel onMode="1" bRatio="0.0000010" products="9000211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="9000211 -213"/> - <channel onMode="1" bRatio="0.0000030" products="-9000211 211"/> - <channel onMode="1" bRatio="0.0000100" products="-9000211 213"/> - <channel onMode="1" bRatio="0.0000010" products="-9000211 321"/> - <channel onMode="1" bRatio="0.0000050" products="-9000211 323"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 111"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 113"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 221"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 223"/> - <channel onMode="1" bRatio="0.0000060" products="9010221 311"/> - <channel onMode="1" bRatio="0.0000050" products="9010221 313"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 331"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 10113"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 20113"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 9000111"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 9010221"/> - <channel onMode="1" bRatio="0.0000010" products="111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="113 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="113 113 111"/> - <channel onMode="1" bRatio="0.0000240" products="211 -211 111"/> - <channel onMode="1" bRatio="0.0000030" products="211 -211 113"/> - <channel onMode="1" bRatio="0.0000100" products="213 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="213 -213 111"/> - <channel onMode="1" bRatio="0.0000100" products="-213 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="221 111 111"/> - <channel onMode="1" bRatio="0.0000005" products="221 113 111"/> - <channel onMode="1" bRatio="0.0000050" products="221 113 113"/> - <channel onMode="1" bRatio="0.0000170" products="221 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="221 213 -211"/> - <channel onMode="1" bRatio="0.0000050" products="221 213 -213"/> - <channel onMode="1" bRatio="0.0000050" products="221 -213 211"/> - <channel onMode="1" bRatio="0.0000010" products="221 221 111"/> - <channel onMode="1" bRatio="0.0000002" products="221 221 113"/> - <channel onMode="1" bRatio="0.0000010" products="223 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="223 113 111"/> - <channel onMode="1" bRatio="0.0000030" products="223 211 -211"/> - <channel onMode="1" bRatio="0.0000005" products="223 221 111"/> - <channel onMode="1" bRatio="0.0000050" products="223 221 113"/> - <channel onMode="1" bRatio="0.0000002" products="223 221 221"/> - <channel onMode="1" bRatio="0.0000006" meMode="11" products="311 11 -11"/> - <channel onMode="1" bRatio="0.0000006" meMode="11" products="311 13 -13"/> - <channel onMode="1" bRatio="0.0000001" meMode="11" products="311 15 -15"/> - <channel onMode="1" bRatio="0.0000020" products="311 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="311 113 111"/> - <channel onMode="1" bRatio="0.0000260" products="311 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="311 213 -211"/> - <channel onMode="1" bRatio="0.0000100" products="311 -213 211"/> - <channel onMode="1" bRatio="0.0000010" products="311 221 111"/> - <channel onMode="1" bRatio="0.0000020" products="311 221 113"/> - <channel onMode="1" bRatio="0.0000010" products="311 221 221"/> - <channel onMode="1" bRatio="0.0000050" products="311 223 111"/> - <channel onMode="1" bRatio="0.0000020" products="311 223 221"/> - <channel onMode="1" bRatio="0.0000020" products="311 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 113"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 221"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 223"/> - <channel onMode="1" bRatio="0.0000480" products="311 311 311"/> - <channel onMode="1" bRatio="0.0000018" meMode="11" products="313 11 -11"/> - <channel onMode="1" bRatio="0.0000014" meMode="11" products="313 13 -13"/> - <channel onMode="1" bRatio="0.0000002" meMode="11" products="313 15 -15"/> - <channel onMode="1" bRatio="0.0000100" products="313 113 111"/> - <channel onMode="1" bRatio="0.0000100" products="313 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="313 213 -211"/> - <channel onMode="1" bRatio="0.0000100" products="313 -213 211"/> - <channel onMode="1" bRatio="0.0000050" products="313 221 113"/> - <channel onMode="1" bRatio="0.0000100" products="313 223 111"/> - <channel onMode="1" bRatio="0.0000050" products="313 223 221"/> - <channel onMode="1" bRatio="0.0000010" products="313 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="313 -313 111"/> - <channel onMode="1" bRatio="0.0000005" products="313 -313 221"/> - <channel onMode="1" bRatio="0.0000010" products="-313 311 111"/> - <channel onMode="1" bRatio="0.0000020" products="321 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 -213 111"/> - <channel onMode="1" bRatio="0.0000200" products="321 221 -211"/> - <channel onMode="1" bRatio="0.0000050" products="321 221 -213"/> - <channel onMode="1" bRatio="0.0000050" products="321 223 -211"/> - <channel onMode="1" bRatio="0.0000005" products="321 311 -211"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 -213"/> - <channel onMode="1" bRatio="0.0000010" products="321 -313 -211"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 113"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 221"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 223"/> - <channel onMode="1" bRatio="0.0000100" products="321 -321 313"/> - <channel onMode="1" bRatio="0.0000005" products="-321 311 211"/> - <channel onMode="1" bRatio="0.0000010" products="-321 311 213"/> - <channel onMode="1" bRatio="0.0000010" products="-321 313 211"/> - <channel onMode="1" bRatio="0.0000100" products="323 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="323 -211 113"/> - <channel onMode="1" bRatio="0.0000100" products="323 -213 111"/> - <channel onMode="1" bRatio="0.0000050" products="323 221 -211"/> - <channel onMode="1" bRatio="0.0000050" products="323 221 -213"/> - <channel onMode="1" bRatio="0.0000100" products="323 223 -211"/> - <channel onMode="1" bRatio="0.0000010" products="323 311 -211"/> - <channel onMode="1" bRatio="0.0000010" products="323 -313 -211"/> - <channel onMode="1" bRatio="0.0000010" products="323 -321 111"/> - <channel onMode="1" bRatio="0.0000100" products="323 -321 311"/> - <channel onMode="1" bRatio="0.0000010" products="323 -323 111"/> - <channel onMode="1" bRatio="0.0000005" products="323 -323 221"/> - <channel onMode="1" bRatio="0.0000010" products="-323 311 211"/> - <channel onMode="1" bRatio="0.0000010" products="-323 313 211"/> - <channel onMode="1" bRatio="0.0000010" products="-323 321 111"/> - <channel onMode="1" bRatio="0.0000100" products="-323 321 311"/> - <channel onMode="1" bRatio="0.0000010" products="331 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 113 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 113 113"/> - <channel onMode="1" bRatio="0.0000010" products="331 211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="331 213 -213"/> - <channel onMode="1" bRatio="0.0000010" products="331 221 111"/> - <channel onMode="1" bRatio="0.0000001" products="331 221 113"/> - <channel onMode="1" bRatio="0.0000002" products="331 223 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 223 113"/> - <channel onMode="1" bRatio="0.0000001" products="331 223 221"/> - <channel onMode="1" bRatio="0.0000010" products="331 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 311 113"/> - <channel onMode="1" bRatio="0.0000010" products="331 311 221"/> - <channel onMode="1" bRatio="0.0000010" products="331 311 223"/> - <channel onMode="1" bRatio="0.0000010" products="331 311 311"/> - <channel onMode="1" bRatio="0.0000020" products="331 313 113"/> - <channel onMode="1" bRatio="0.0000020" products="331 313 223"/> - <channel onMode="1" bRatio="0.0000002" products="331 313 -313"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 -211"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 -213"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 -321"/> - <channel onMode="1" bRatio="0.0000020" products="331 323 -211"/> - <channel onMode="1" bRatio="0.0000020" products="331 323 -213"/> - <channel onMode="1" bRatio="0.0000002" products="331 323 -323"/> - <channel onMode="1" bRatio="0.0000010" products="331 331 311"/> - <channel onMode="1" bRatio="0.0000010" products="333 113 111"/> - <channel onMode="1" bRatio="0.0000001" products="333 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="333 213 -211"/> - <channel onMode="1" bRatio="0.0000010" products="333 -213 211"/> - <channel onMode="1" bRatio="0.0000005" products="333 221 113"/> - <channel onMode="1" bRatio="0.0000010" products="333 223 111"/> - <channel onMode="1" bRatio="0.0000100" products="333 311 111"/> - <channel onMode="1" bRatio="0.0000100" products="333 311 113"/> - <channel onMode="1" bRatio="0.0000100" products="333 311 223"/> - <channel onMode="1" bRatio="0.0000001" products="333 311 311"/> - <channel onMode="1" bRatio="0.0000100" products="333 313 111"/> - <channel onMode="1" bRatio="0.0000050" products="333 313 221"/> - <channel onMode="1" bRatio="0.0000100" products="333 321 -211"/> - <channel onMode="1" bRatio="0.0000100" products="333 321 -213"/> - <channel onMode="1" bRatio="0.0000001" products="333 321 -321"/> - <channel onMode="1" bRatio="0.0000100" products="333 323 -211"/> - <channel onMode="1" bRatio="0.0000002" products="333 331 113"/> - <channel onMode="1" bRatio="0.0000020" products="333 331 313"/> - <channel onMode="1" bRatio="0.0000001" products="333 333 111"/> - <channel onMode="1" bRatio="0.0000030" products="333 333 311"/> - <channel onMode="1" bRatio="0.0000030" products="333 333 313"/> - <channel onMode="1" bRatio="0.0015000" products="411 -411 311"/> - <channel onMode="1" bRatio="0.0025000" products="411 -411 313"/> - <channel onMode="1" bRatio="0.0005000" products="-411 211 111"/> - <channel onMode="1" bRatio="0.0011000" products="-411 211 113"/> - <channel onMode="1" bRatio="0.0011000" products="-411 213 111"/> - <channel onMode="1" bRatio="0.0047000" products="413 -411 311"/> - <channel onMode="1" bRatio="0.0025000" products="413 -411 313"/> - <channel onMode="1" bRatio="0.0070000" products="413 -413 311"/> - <channel onMode="1" bRatio="0.0050000" products="413 -413 313"/> - <channel onMode="1" bRatio="0.0008000" products="-413 211 111"/> - <channel onMode="1" bRatio="0.0010000" products="-413 211 113"/> - <channel onMode="1" bRatio="0.0010000" products="-413 213 111"/> - <channel onMode="1" bRatio="0.0018000" products="-413 411 311"/> - <channel onMode="1" bRatio="0.0025000" products="-413 411 313"/> - <channel onMode="1" bRatio="0.0017000" products="421 -411 321"/> - <channel onMode="1" bRatio="0.0025000" products="421 -411 323"/> - <channel onMode="1" bRatio="0.0031000" products="421 -413 321"/> - <channel onMode="1" bRatio="0.0025000" products="421 -413 323"/> - <channel onMode="1" bRatio="0.0005000" products="421 -421 311"/> - <channel onMode="1" bRatio="0.0005000" products="421 -421 313"/> - <channel onMode="1" bRatio="0.0005000" products="-421 211 -211"/> - <channel onMode="1" bRatio="0.0049000" products="423 -411 321"/> - <channel onMode="1" bRatio="0.0025000" products="423 -411 323"/> - <channel onMode="1" bRatio="0.0100000" products="423 -413 321"/> - <channel onMode="1" bRatio="0.0050000" products="423 -413 323"/> - <channel onMode="1" bRatio="0.0005000" products="423 -421 313"/> - <channel onMode="1" bRatio="0.0015000" products="423 -423 311"/> - <channel onMode="1" bRatio="0.0010000" products="423 -423 313"/> - <channel onMode="1" bRatio="0.0005000" products="-423 111 111"/> - <channel onMode="1" bRatio="0.0003000" products="-423 211 -211"/> - <channel onMode="1" bRatio="0.0005000" products="-423 421 313"/> - <channel onMode="1" bRatio="0.0018000" products="431 -411 111"/> - <channel onMode="1" bRatio="0.0037000" products="431 -421 -211"/> - <channel onMode="1" bRatio="0.0018000" products="433 -411 111"/> - <channel onMode="1" bRatio="0.0037000" products="433 -421 -211"/> - <channel onMode="1" bRatio="0.0001000" products="441 311 111"/> - <channel onMode="1" bRatio="0.0002000" products="441 321 -211"/> - <channel onMode="1" bRatio="0.0001000" products="443 311 111"/> - <channel onMode="1" bRatio="0.0002000" products="443 321 -211"/> - <channel onMode="1" bRatio="0.0000900" products="443 333 311"/> - <channel onMode="1" bRatio="0.0001000" products="445 311 111"/> - <channel onMode="1" bRatio="0.0002000" products="445 321 -211"/> - <channel onMode="1" bRatio="0.0000100" products="10311 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="10311 113 111"/> - <channel onMode="1" bRatio="0.0000100" products="10311 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="10311 213 -211"/> - <channel onMode="1" bRatio="0.0000100" products="10311 -213 211"/> - <channel onMode="1" bRatio="0.0000050" products="10311 221 113"/> - <channel onMode="1" bRatio="0.0000100" products="10311 321 -321"/> - <channel onMode="1" bRatio="0.0000020" products="10311 331 113"/> - <channel onMode="1" bRatio="0.0000100" products="10311 333 111"/> - <channel onMode="1" bRatio="0.0000100" products="10321 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="10321 -211 113"/> - <channel onMode="1" bRatio="0.0000100" products="10321 -213 111"/> - <channel onMode="1" bRatio="0.0000050" products="10321 221 -213"/> - <channel onMode="1" bRatio="0.0000100" products="10321 -321 311"/> - <channel onMode="1" bRatio="0.0000020" products="10321 331 -213"/> - <channel onMode="1" bRatio="0.0000100" products="10321 333 -211"/> - <channel onMode="1" bRatio="0.0000100" products="-10321 321 311"/> - <channel onMode="1" bRatio="0.0001000" products="10441 311 111"/> - <channel onMode="1" bRatio="0.0002000" products="10441 321 -211"/> - <channel onMode="1" bRatio="0.0000100" products="20113 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="20113 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="20113 221 111"/> - <channel onMode="1" bRatio="0.0000100" products="20113 311 111"/> - <channel onMode="1" bRatio="0.0000100" products="20113 321 -211"/> - <channel onMode="1" bRatio="0.0000020" products="20113 331 111"/> - <channel onMode="1" bRatio="0.0000100" products="20213 -211 111"/> - <channel onMode="1" bRatio="0.0000050" products="20213 221 -211"/> - <channel onMode="1" bRatio="0.0000100" products="20213 311 -211"/> - <channel onMode="1" bRatio="0.0000020" products="20213 331 -211"/> - <channel onMode="1" bRatio="0.0000100" products="-20213 211 111"/> - <channel onMode="1" bRatio="0.0000050" products="-20213 221 211"/> - <channel onMode="1" bRatio="0.0000100" products="-20213 311 211"/> - <channel onMode="1" bRatio="0.0000100" products="-20213 321 111"/> - <channel onMode="1" bRatio="0.0000020" products="-20213 331 211"/> - <channel onMode="1" bRatio="0.0000020" products="20313 321 -321"/> - <channel onMode="1" bRatio="0.0000020" products="20313 333 111"/> - <channel onMode="1" bRatio="0.0000010" products="20313 333 221"/> - <channel onMode="1" bRatio="0.0000010" products="20313 333 331"/> - <channel onMode="1" bRatio="0.0000020" products="20323 333 -211"/> - <channel onMode="1" bRatio="0.0002000" products="20443 311 111"/> - <channel onMode="1" bRatio="0.0004000" products="20443 321 -211"/> - <channel onMode="1" bRatio="0.0001400" products="30443 311 111"/> - <channel onMode="1" bRatio="0.0001400" products="30443 321 -211"/> - <channel onMode="1" bRatio="0.0000500" products="100441 311 111"/> - <channel onMode="1" bRatio="0.0000800" products="100441 321 -211"/> - <channel onMode="1" bRatio="0.0002000" products="100443 311 111"/> - <channel onMode="1" bRatio="0.0004000" products="100443 321 -211"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="9000111 113 111"/> - <channel onMode="1" bRatio="0.0000100" products="9000111 213 -211"/> - <channel onMode="1" bRatio="0.0000100" products="9000111 -213 211"/> - <channel onMode="1" bRatio="0.0000050" products="9000111 221 113"/> - <channel onMode="1" bRatio="0.0000050" products="9000111 313 111"/> - <channel onMode="1" bRatio="0.0000020" products="9000111 313 221"/> - <channel onMode="1" bRatio="0.0000050" products="9000111 323 -211"/> - <channel onMode="1" bRatio="0.0000020" products="9000111 331 113"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 331 313"/> - <channel onMode="1" bRatio="0.0000010" products="9000211 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="9000211 -211 113"/> - <channel onMode="1" bRatio="0.0000100" products="9000211 -213 111"/> - <channel onMode="1" bRatio="0.0000050" products="9000211 221 -213"/> - <channel onMode="1" bRatio="0.0000020" products="9000211 331 -213"/> - <channel onMode="1" bRatio="0.0000010" products="-9000211 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="-9000211 211 113"/> - <channel onMode="1" bRatio="0.0000100" products="-9000211 213 111"/> - <channel onMode="1" bRatio="0.0000050" products="-9000211 221 213"/> - <channel onMode="1" bRatio="0.0000050" products="-9000211 323 111"/> - <channel onMode="1" bRatio="0.0000020" products="-9000211 323 221"/> - <channel onMode="1" bRatio="0.0000020" products="-9000211 331 213"/> - <channel onMode="1" bRatio="0.0000010" products="-9000211 331 323"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 113 111"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 213 -211"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 -213 211"/> - <channel onMode="1" bRatio="0.0000050" products="9010221 221 113"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 223 111"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 313 111"/> - <channel onMode="1" bRatio="0.0000050" products="9010221 313 221"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 323 -211"/> - <channel onMode="1" bRatio="0.0000020" products="9010221 331 113"/> - <channel onMode="1" bRatio="0.0000020" products="9010221 331 313"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 333 111"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 333 311"/> - <channel onMode="1" bRatio="0.0000020" products="113 111 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="211 -211 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="211 -211 113 111"/> - <channel onMode="1" bRatio="0.0000020" products="213 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="213 -211 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="-213 211 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="-213 211 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="221 113 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="221 211 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="221 211 -211 113"/> - <channel onMode="1" bRatio="0.0000010" products="221 213 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="221 -213 211 111"/> - <channel onMode="1" bRatio="0.0000020" products="221 221 211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="223 111 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="223 211 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="223 221 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="223 221 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="311 111 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 113 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 211 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 211 -211 113"/> - <channel onMode="1" bRatio="0.0000100" products="311 213 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 -213 211 111"/> - <channel onMode="1" bRatio="0.0000050" products="311 221 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="311 221 113 111"/> - <channel onMode="1" bRatio="0.0000050" products="311 221 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="311 221 213 -211"/> - <channel onMode="1" bRatio="0.0000050" products="311 221 -213 211"/> - <channel onMode="1" bRatio="0.0000020" products="311 221 221 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 223 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 223 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="311 223 221 111"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 113 111"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 213 -211"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 -213 211"/> - <channel onMode="1" bRatio="0.0000005" products="311 311 221 111"/> - <channel onMode="1" bRatio="0.0000005" products="311 311 221 113"/> - <channel onMode="1" bRatio="0.0000002" products="311 311 221 221"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 223 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 311 311 111"/> - <channel onMode="1" bRatio="0.0000050" products="311 311 311 221"/> - <channel onMode="1" bRatio="0.0000001" products="311 311 311 311"/> - <channel onMode="1" bRatio="0.0000100" products="313 111 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="313 211 -211 111"/> - <channel onMode="1" bRatio="0.0000050" products="313 221 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="313 221 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="313 311 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="313 311 211 -211"/> - <channel onMode="1" bRatio="0.0000005" products="313 311 221 111"/> - <channel onMode="1" bRatio="0.0000010" products="-313 311 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="-313 311 211 -211"/> - <channel onMode="1" bRatio="0.0000005" products="-313 311 221 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 -211 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 -211 113 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 213 -211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 -213 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 -213 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="321 221 -211 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 221 -211 113"/> - <channel onMode="1" bRatio="0.0000050" products="321 221 -213 111"/> - <channel onMode="1" bRatio="0.0000020" products="321 221 221 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 223 -211 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 223 221 -211"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 -211 113"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 -213 111"/> - <channel onMode="1" bRatio="0.0000005" products="321 311 221 -213"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 223 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 313 311 -211"/> - <channel onMode="1" bRatio="0.0000010" products="321 -313 -211 111"/> - <channel onMode="1" bRatio="0.0000005" products="321 -313 221 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 -313 311 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 321 -321 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 321 -321 -213"/> - <channel onMode="1" bRatio="0.0000001" products="321 321 -321 -321"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 113 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 213 -211"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 -213 211"/> - <channel onMode="1" bRatio="0.0000005" products="321 -321 221 111"/> - <channel onMode="1" bRatio="0.0000005" products="321 -321 221 113"/> - <channel onMode="1" bRatio="0.0000002" products="321 -321 221 221"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 223 111"/> - <channel onMode="1" bRatio="0.0000005" products="321 -321 223 221"/> - <channel onMode="1" bRatio="0.0000100" products="321 -321 311 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 -321 311 113"/> - <channel onMode="1" bRatio="0.0000050" products="321 -321 311 221"/> - <channel onMode="1" bRatio="0.0000100" products="321 -321 311 223"/> - <channel onMode="1" bRatio="0.0000001" products="321 -321 311 311"/> - <channel onMode="1" bRatio="0.0000010" products="-321 311 211 113"/> - <channel onMode="1" bRatio="0.0000010" products="-321 311 213 111"/> - <channel onMode="1" bRatio="0.0000005" products="-321 311 221 213"/> - <channel onMode="1" bRatio="0.0000010" products="-321 311 223 211"/> - <channel onMode="1" bRatio="0.0000010" products="-321 313 211 111"/> - <channel onMode="1" bRatio="0.0000005" products="-321 313 221 211"/> - <channel onMode="1" bRatio="0.0000100" products="323 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="323 -211 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="323 221 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="323 311 -211 111"/> - <channel onMode="1" bRatio="0.0000005" products="323 311 221 -211"/> - <channel onMode="1" bRatio="0.0000100" products="323 311 311 -211"/> - <channel onMode="1" bRatio="0.0000100" products="323 321 -321 -211"/> - <channel onMode="1" bRatio="0.0000010" products="323 -321 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="323 -321 211 -211"/> - <channel onMode="1" bRatio="0.0000005" products="323 -321 221 111"/> - <channel onMode="1" bRatio="0.0000010" products="-323 311 211 111"/> - <channel onMode="1" bRatio="0.0000005" products="-323 311 221 211"/> - <channel onMode="1" bRatio="0.0000010" products="-323 321 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="-323 321 211 -211"/> - <channel onMode="1" bRatio="0.0000005" products="-323 321 221 111"/> - <channel onMode="1" bRatio="0.0000100" products="-323 321 321 -211"/> - <channel onMode="1" bRatio="0.0000010" products="331 113 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 211 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 211 -211 113"/> - <channel onMode="1" bRatio="0.0000010" products="331 213 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 -213 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 221 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="331 223 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 223 211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="331 311 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 311 113 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 311 213 -211"/> - <channel onMode="1" bRatio="0.0000020" products="331 311 -213 211"/> - <channel onMode="1" bRatio="0.0000010" products="331 311 221 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 311 223 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 311 311 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 311 311 113"/> - <channel onMode="1" bRatio="0.0000001" products="331 311 311 221"/> - <channel onMode="1" bRatio="0.0000020" products="331 313 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 313 211 -211"/> - <channel onMode="1" bRatio="0.0000002" products="331 313 311 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 -313 311 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 -211 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 -211 113"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 -213 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 221 -211"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 223 -211"/> - <channel onMode="1" bRatio="0.0000002" products="331 321 311 -213"/> - <channel onMode="1" bRatio="0.0000002" products="331 321 -313 -211"/> - <channel onMode="1" bRatio="0.0000002" products="331 321 -321 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 321 -321 113"/> - <channel onMode="1" bRatio="0.0000001" products="331 321 -321 221"/> - <channel onMode="1" bRatio="0.0000002" products="331 321 -321 223"/> - <channel onMode="1" bRatio="0.0000002" products="331 -321 311 213"/> - <channel onMode="1" bRatio="0.0000002" products="331 -321 313 211"/> - <channel onMode="1" bRatio="0.0000020" products="331 323 -211 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 323 311 -211"/> - <channel onMode="1" bRatio="0.0000002" products="331 323 -321 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 -323 311 211"/> - <channel onMode="1" bRatio="0.0000002" products="331 -323 321 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 211 -211 111"/> - <channel onMode="1" bRatio="0.0000005" products="333 221 111 111"/> - <channel onMode="1" bRatio="0.0000005" products="333 221 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="333 311 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="333 311 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="333 311 221 111"/> - <channel onMode="1" bRatio="0.0000001" products="333 311 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 311 311 311"/> - <channel onMode="1" bRatio="0.0000010" products="333 313 311 311"/> - <channel onMode="1" bRatio="0.0000010" products="333 -313 311 311"/> - <channel onMode="1" bRatio="0.0000100" products="333 321 -211 111"/> - <channel onMode="1" bRatio="0.0000050" products="333 321 221 -211"/> - <channel onMode="1" bRatio="0.0000001" products="333 321 311 -211"/> - <channel onMode="1" bRatio="0.0000001" products="333 321 -321 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 321 -321 311"/> - <channel onMode="1" bRatio="0.0000010" products="333 321 -321 313"/> - <channel onMode="1" bRatio="0.0000001" products="333 -321 311 211"/> - <channel onMode="1" bRatio="0.0000010" products="333 -323 321 311"/> - <channel onMode="1" bRatio="0.0000002" products="333 331 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="333 331 211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="333 331 311 111"/> - <channel onMode="1" bRatio="0.0000020" products="333 331 321 -211"/> - <channel onMode="1" bRatio="0.0010000" products="-411 211 111 111"/> - <channel onMode="1" bRatio="0.0022000" products="-411 211 211 -211"/> - <channel onMode="1" bRatio="0.0010000" products="-413 211 111 111"/> - <channel onMode="1" bRatio="0.0001000" products="-421 111 111 111"/> - <channel onMode="1" bRatio="0.0010000" products="-421 211 -211 111"/> - <channel onMode="1" bRatio="0.0001000" products="-423 111 111 111"/> - <channel onMode="1" bRatio="0.0010000" products="-423 211 -211 111"/> - <channel onMode="1" bRatio="0.0022000" products="431 -411 111 111"/> - <channel onMode="1" bRatio="0.0030000" products="431 -411 211 -211"/> - <channel onMode="1" bRatio="0.0022000" products="431 -421 -211 111"/> - <channel onMode="1" bRatio="0.0022000" products="433 -411 111 111"/> - <channel onMode="1" bRatio="0.0030000" products="433 -411 211 -211"/> - <channel onMode="1" bRatio="0.0022000" products="433 -421 -211 111"/> - <channel onMode="1" bRatio="0.0001000" products="441 311 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="441 311 211 -211"/> - <channel onMode="1" bRatio="0.0001000" products="441 321 -211 111"/> - <channel onMode="1" bRatio="0.0001000" products="445 311 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="445 311 211 -211"/> - <channel onMode="1" bRatio="0.0001000" products="445 321 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="10311 111 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="10311 211 -211 111"/> - <channel onMode="1" bRatio="0.0000050" products="10311 221 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="10311 221 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="10311 311 311 111"/> - <channel onMode="1" bRatio="0.0000050" products="10311 311 311 221"/> - <channel onMode="1" bRatio="0.0000100" products="10311 321 311 -211"/> - <channel onMode="1" bRatio="0.0000100" products="10311 321 -321 111"/> - <channel onMode="1" bRatio="0.0000050" products="10311 321 -321 221"/> - <channel onMode="1" bRatio="0.0000050" products="10311 331 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="10311 331 211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="10311 331 311 311"/> - <channel onMode="1" bRatio="0.0000020" products="10311 331 321 -321"/> - <channel onMode="1" bRatio="0.0000100" products="-10311 311 311 111"/> - <channel onMode="1" bRatio="0.0000050" products="-10311 311 311 221"/> - <channel onMode="1" bRatio="0.0000100" products="-10311 321 311 -211"/> - <channel onMode="1" bRatio="0.0000020" products="-10311 331 311 311"/> - <channel onMode="1" bRatio="0.0000100" products="10321 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="10321 -211 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="10321 221 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="10321 311 311 -211"/> - <channel onMode="1" bRatio="0.0000100" products="10321 321 -321 -211"/> - <channel onMode="1" bRatio="0.0000020" products="10321 331 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="-10321 321 321 -211"/> - <channel onMode="1" bRatio="0.0001000" products="10441 311 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="10441 311 211 -211"/> - <channel onMode="1" bRatio="0.0001000" products="10441 321 -211 111"/> - <channel onMode="1" bRatio="0.0000020" products="20313 311 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="20313 311 311 221"/> - <channel onMode="1" bRatio="0.0000020" products="20313 321 -321 111"/> - <channel onMode="1" bRatio="0.0000010" products="20313 321 -321 221"/> - <channel onMode="1" bRatio="0.0000010" products="20313 331 311 311"/> - <channel onMode="1" bRatio="0.0000010" products="20313 331 321 -321"/> - <channel onMode="1" bRatio="0.0000020" products="-20313 311 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="-20313 311 311 221"/> - <channel onMode="1" bRatio="0.0000010" products="-20313 331 311 311"/> - <channel onMode="1" bRatio="0.0000020" products="20323 321 -321 -211"/> - <channel onMode="1" bRatio="0.0000020" products="-20323 321 321 -211"/> - <channel onMode="1" bRatio="0.0002000" products="20443 311 111 111"/> - <channel onMode="1" bRatio="0.0004000" products="20443 311 211 -211"/> - <channel onMode="1" bRatio="0.0002000" products="20443 321 -211 111"/> - <channel onMode="1" bRatio="0.0000700" products="30443 311 111 111"/> - <channel onMode="1" bRatio="0.0001400" products="30443 311 211 -211"/> - <channel onMode="1" bRatio="0.0000700" products="30443 321 -211 111"/> - <channel onMode="1" bRatio="0.0000500" products="100441 311 111 111"/> - <channel onMode="1" bRatio="0.0000800" products="100441 311 211 -211"/> - <channel onMode="1" bRatio="0.0000500" products="100441 321 -211 111"/> - <channel onMode="1" bRatio="0.0001000" products="100443 311 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="100443 311 211 -211"/> - <channel onMode="1" bRatio="0.0001000" products="100443 321 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 211 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="9000211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="9000211 -211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="-9000211 211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="-9000211 211 211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="9010221 111 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="9010221 211 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 221 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 221 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 311 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 321 311 -211"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 321 -321 111"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 321 -321 311"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 -321 311 211"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 331 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 331 211 -211"/> - <channel onMode="1" bRatio="0.0000005" products="111 111 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="211 211 -211 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="211 -211 111 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="221 111 111 111 111"/> - <channel onMode="1" bRatio="0.0000005" products="221 211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000005" products="221 211 -211 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="311 111 111 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="311 211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="311 211 -211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="311 221 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="311 221 211 -211 111"/> - <channel onMode="1" bRatio="0.0000002" products="311 311 111 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="311 311 211 -211 111"/> - <channel onMode="1" bRatio="0.0000001" products="311 311 221 111 111"/> - <channel onMode="1" bRatio="0.0000001" products="311 311 221 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="311 311 311 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 311 311 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="311 311 311 221 111"/> - <channel onMode="1" bRatio="0.0000001" products="311 311 311 311 111"/> - <channel onMode="1" bRatio="0.0000020" products="321 211 -211 -211 111"/> - <channel onMode="1" bRatio="0.0000020" products="321 -211 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 221 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="321 221 -211 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="321 311 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000002" products="321 311 -211 111 111"/> - <channel onMode="1" bRatio="0.0000001" products="321 311 221 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 311 311 -211 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 311 311 221 -211"/> - <channel onMode="1" bRatio="0.0000001" products="321 311 311 311 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 321 -321 -211 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 321 -321 221 -211"/> - <channel onMode="1" bRatio="0.0000001" products="321 321 -321 311 -211"/> - <channel onMode="1" bRatio="0.0000001" products="321 321 -321 -321 111"/> - <channel onMode="1" bRatio="0.0000001" products="321 321 -321 -321 311"/> - <channel onMode="1" bRatio="0.0000002" products="321 -321 111 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="321 -321 211 -211 111"/> - <channel onMode="1" bRatio="0.0000001" products="321 -321 221 111 111"/> - <channel onMode="1" bRatio="0.0000001" products="321 -321 221 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 -321 311 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 -321 311 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="321 -321 311 221 111"/> - <channel onMode="1" bRatio="0.0000001" products="321 -321 311 311 111"/> - <channel onMode="1" bRatio="0.0000001" products="321 -321 311 311 311"/> - <channel onMode="1" bRatio="0.0000001" products="321 -321 -321 311 211"/> - <channel onMode="1" bRatio="0.0000002" products="-321 311 211 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="-321 311 211 211 -211"/> - <channel onMode="1" bRatio="0.0000001" products="-321 311 221 211 111"/> - <channel onMode="1" bRatio="0.0000001" products="-321 311 311 311 211"/> - <channel onMode="1" bRatio="0.0000001" products="331 111 111 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000002" products="331 211 -211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 311 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 311 211 -211 111"/> - <channel onMode="1" bRatio="0.0000001" products="331 311 311 111 111"/> - <channel onMode="1" bRatio="0.0000001" products="331 311 311 211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="331 311 311 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 -211 111 111"/> - <channel onMode="1" bRatio="0.0000001" products="331 321 311 -211 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 311 311 -211"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 321 -321 -211"/> - <channel onMode="1" bRatio="0.0000001" products="331 321 -321 111 111"/> - <channel onMode="1" bRatio="0.0000001" products="331 321 -321 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="331 321 -321 311 111"/> - <channel onMode="1" bRatio="0.0000001" products="331 -321 311 211 111"/> - <channel onMode="1" bRatio="0.0000001" products="333 311 311 311 111"/> - <channel onMode="1" bRatio="0.0000001" products="333 321 311 311 -211"/> - <channel onMode="1" bRatio="0.0000001" products="333 321 321 -321 -211"/> - <channel onMode="1" bRatio="0.0000001" products="333 321 -321 311 111"/> - <channel onMode="1" bRatio="0.0050000" meMode="55" products="-3 1"/> - <channel onMode="1" bRatio="0.0110000" meMode="63" products="-4101 2101"/> - <channel onMode="1" bRatio="0.0220000" meMode="63" products="-4103 2103"/> - <channel onMode="1" bRatio="0.0030000" meMode="63" products="-4301 2101"/> - <channel onMode="1" bRatio="0.0060000" meMode="63" products="-4303 2103"/> - <channel onMode="1" bRatio="0.0000700" meMode="23" products="1 -1 -1 1"/> - <channel onMode="1" bRatio="0.0018000" meMode="23" products="1 -1 -3 1"/> - <channel onMode="1" bRatio="0.0030000" meMode="23" products="2 -1 -2 1"/> - <channel onMode="1" bRatio="0.0020500" meMode="23" products="2 -2 -1 1"/> - <channel onMode="1" bRatio="0.0022000" meMode="23" products="2 -2 -3 1"/> - <channel onMode="1" bRatio="0.0210000" meMode="63" products="2 -3 -4 1"/> - <channel onMode="1" bRatio="0.0180000" meMode="23" products="2 -4 -1 1"/> - <channel onMode="1" bRatio="0.0009000" meMode="23" products="2 -4 -3 1"/> - <channel onMode="1" bRatio="0.0000900" meMode="23" products="3 -3 -1 1"/> - <channel onMode="1" bRatio="0.0015000" meMode="23" products="3 -3 -3 1"/> - <channel onMode="1" bRatio="0.0060000" meMode="43" products="4 -1 -4 1"/> - <channel onMode="1" bRatio="0.0040000" meMode="23" products="4 -3 -2 1"/> - <channel onMode="1" bRatio="0.0740000" meMode="43" products="4 -3 -4 1"/> - <channel onMode="2" bRatio="0.0018920" meMode="22" products="12 -11 1 -2"/> - <channel onMode="2" bRatio="0.0018920" meMode="22" products="14 -13 1 -2"/> - <channel onMode="2" bRatio="0.0012910" products="443 313"/> - <channel onMode="2" bRatio="0.0000500" products="445 130"/> - <channel onMode="2" bRatio="0.0000500" products="445 310"/> - <channel onMode="2" bRatio="0.0000100" products="213 -211 113"/> - <channel onMode="2" bRatio="0.0000100" products="223 213 -211"/> - <channel onMode="2" bRatio="0.0000067" products="313 111 111"/> - <channel onMode="2" bRatio="0.0000100" products="321 -211 113"/> - <channel onMode="2" bRatio="0.0000010" products="321 -321 130"/> - <channel onMode="2" bRatio="0.0000010" products="321 -321 310"/> - <channel onMode="2" bRatio="0.0000070" products="333 311 221"/> - <channel onMode="2" bRatio="0.0005000" products="423 -421 311"/> - <channel onMode="2" bRatio="0.0015000" products="-423 421 311"/> - <channel onMode="2" bRatio="0.0000050" products="9000211 313 -211"/> - <channel onMode="2" bRatio="0.0003118" meMode="31" products="1 -3 22"/> - <channel onMode="2" bRatio="0.0000050" meMode="12" products="1 -3 11 -11"/> - <channel onMode="2" bRatio="0.0000025" meMode="12" products="1 -3 13 -13"/> - <channel onMode="2" bRatio="0.0000002" meMode="12" products="1 -3 15 -15"/> - <channel onMode="2" bRatio="0.3158500" meMode="23" products="2 -1 -4 1"/> - <channel onMode="3" bRatio="0.0018920" meMode="22" products="12 -11 -2 1"/> - <channel onMode="3" bRatio="0.0018920" meMode="22" products="14 -13 -2 1"/> - <channel onMode="3" bRatio="0.0012310" products="443 313"/> - <channel onMode="3" bRatio="0.0000100" products="445 130"/> - <channel onMode="3" bRatio="0.0000100" products="445 310"/> - <channel onMode="3" bRatio="0.0000100" products="-213 211 113"/> - <channel onMode="3" bRatio="0.0000100" products="223 -213 211"/> - <channel onMode="3" bRatio="0.0000067" products="-313 111 111"/> - <channel onMode="3" bRatio="0.0000050" products="321 -211 113"/> - <channel onMode="3" bRatio="0.0000105" products="321 -321 130"/> - <channel onMode="3" bRatio="0.0000105" products="321 -321 310"/> - <channel onMode="3" bRatio="0.0000050" products="333 311 221"/> - <channel onMode="3" bRatio="0.0015000" products="423 -421 311"/> - <channel onMode="3" bRatio="0.0005000" products="-423 421 311"/> - <channel onMode="3" bRatio="0.0000050" products="-9000211 313 211"/> - <channel onMode="3" bRatio="0.0003118" meMode="31" products="-3 1 22"/> - <channel onMode="3" bRatio="0.3160000" meMode="23" products="2 -1 -4 1"/> - <channel onMode="3" bRatio="0.0000050" meMode="12" products="-3 1 11 -11"/> - <channel onMode="3" bRatio="0.0000025" meMode="12" products="-3 1 13 -13"/> - <channel onMode="3" bRatio="0.0000002" meMode="12" products="-3 1 15 -15"/> -</particle> - -<!-- -<particle id="513" name="B*0" antiName="B*bar0" spinType="3" chargeType="0" colType="0" - m0="5.32520"> - <channel onMode="1" bRatio="1.0000000" products="511 22"/> -</particle> ---> - -<!-- -<particle id="515" name="B*_20" antiName="B*_2bar0" spinType="5" chargeType="0" colType="0" - m0="5.74300" mWidth="0.02300" mMin="5.63000" mMax="6.03000"> - <channel onMode="1" bRatio="0.3100000" products="523 -211"/> - <channel onMode="1" bRatio="0.1500000" products="513 111"/> - <channel onMode="1" bRatio="0.3100000" products="521 -211"/> - <channel onMode="1" bRatio="0.1500000" products="511 111"/> - <channel onMode="1" bRatio="0.0500000" products="523 -211 111"/> - <channel onMode="1" bRatio="0.0300000" products="513 211 -211"/> -</particle> ---> - -<particle id="521" name="B+" antiName="B-" spinType="1" chargeType="3" colType="0" - m0="5.27925" tau0="4.91100e-01"> - <channel onMode="1" bRatio="0.0000930" products="16 -15"/> - <channel onMode="1" bRatio="0.0000720" meMode="22" products="12 -11 111"/> - <channel onMode="1" bRatio="0.0001450" meMode="22" products="12 -11 113"/> - <channel onMode="1" bRatio="0.0000840" meMode="22" products="12 -11 221"/> - <channel onMode="1" bRatio="0.0001450" meMode="22" products="12 -11 223"/> - <channel onMode="1" bRatio="0.0000840" meMode="22" products="12 -11 331"/> - <channel onMode="1" bRatio="0.0224000" meMode="22" products="12 -11 -421"/> - <channel onMode="1" bRatio="0.0617000" meMode="22" products="12 -11 -423"/> - <channel onMode="1" bRatio="0.0030000" meMode="22" products="12 -11 -425"/> - <channel onMode="1" bRatio="0.0049000" meMode="22" products="12 -11 -10421"/> - <channel onMode="1" bRatio="0.0056000" meMode="22" products="12 -11 -10423"/> - <channel onMode="1" bRatio="0.0090000" meMode="22" products="12 -11 -20423"/> - <channel onMode="1" bRatio="0.0000720" meMode="22" products="14 -13 111"/> - <channel onMode="1" bRatio="0.0001450" meMode="22" products="14 -13 113"/> - <channel onMode="1" bRatio="0.0000840" meMode="22" products="14 -13 221"/> - <channel onMode="1" bRatio="0.0001450" meMode="22" products="14 -13 223"/> - <channel onMode="1" bRatio="0.0000840" meMode="22" products="14 -13 331"/> - <channel onMode="1" bRatio="0.0224000" meMode="22" products="14 -13 -421"/> - <channel onMode="1" bRatio="0.0617000" meMode="22" products="14 -13 -423"/> - <channel onMode="1" bRatio="0.0030000" meMode="22" products="14 -13 -425"/> - <channel onMode="1" bRatio="0.0049000" meMode="22" products="14 -13 -10421"/> - <channel onMode="1" bRatio="0.0056000" meMode="22" products="14 -13 -10423"/> - <channel onMode="1" bRatio="0.0090000" meMode="22" products="14 -13 -20423"/> - <channel onMode="1" bRatio="0.0000300" meMode="22" products="16 -15 111"/> - <channel onMode="1" bRatio="0.0000420" meMode="22" products="16 -15 113"/> - <channel onMode="1" bRatio="0.0000120" meMode="22" products="16 -15 221"/> - <channel onMode="1" bRatio="0.0000420" meMode="22" products="16 -15 223"/> - <channel onMode="1" bRatio="0.0000200" meMode="22" products="16 -15 225"/> - <channel onMode="1" bRatio="0.0000180" meMode="22" products="16 -15 331"/> - <channel onMode="1" bRatio="0.0000200" meMode="22" products="16 -15 335"/> - <channel onMode="1" bRatio="0.0070000" meMode="22" products="16 -15 -421"/> - <channel onMode="1" bRatio="0.0160000" meMode="22" products="16 -15 -423"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="16 -15 -425"/> - <channel onMode="1" bRatio="0.0000270" meMode="22" products="16 -15 10113"/> - <channel onMode="1" bRatio="0.0000020" meMode="22" products="16 -15 10221"/> - <channel onMode="1" bRatio="0.0000130" meMode="22" products="16 -15 10223"/> - <channel onMode="1" bRatio="0.0000130" meMode="22" products="16 -15 10333"/> - <channel onMode="1" bRatio="0.0013000" meMode="22" products="16 -15 -10421"/> - <channel onMode="1" bRatio="0.0013000" meMode="22" products="16 -15 -10423"/> - <channel onMode="1" bRatio="0.0000460" meMode="22" products="16 -15 20113"/> - <channel onMode="1" bRatio="0.0000230" meMode="22" products="16 -15 20223"/> - <channel onMode="1" bRatio="0.0000230" meMode="22" products="16 -15 20333"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="16 -15 -20423"/> - <channel onMode="1" bRatio="0.0000040" meMode="22" products="16 -15 9000111"/> - <channel onMode="1" bRatio="0.0000020" meMode="22" products="16 -15 9010221"/> - <channel onMode="1" bRatio="0.0019000" meMode="22" products="12 -11 -411 211"/> - <channel onMode="1" bRatio="0.0006000" meMode="22" products="12 -11 -413 211"/> - <channel onMode="1" bRatio="0.0010000" meMode="22" products="12 -11 -421 111"/> - <channel onMode="1" bRatio="0.0003000" meMode="22" products="12 -11 -423 111"/> - <channel onMode="1" bRatio="0.0019000" meMode="22" products="14 -13 -411 211"/> - <channel onMode="1" bRatio="0.0006000" meMode="22" products="14 -13 -413 211"/> - <channel onMode="1" bRatio="0.0010000" meMode="22" products="14 -13 -421 111"/> - <channel onMode="1" bRatio="0.0003000" meMode="22" products="14 -13 -423 111"/> - <channel onMode="1" bRatio="0.0000055" products="211 111"/> - <channel onMode="1" bRatio="0.0000091" products="211 113"/> - <channel onMode="1" bRatio="0.0000120" products="211 130"/> - <channel onMode="1" bRatio="0.0000120" products="213 111"/> - <channel onMode="1" bRatio="0.0000150" products="213 113"/> - <channel onMode="1" bRatio="0.0000048" products="221 211"/> - <channel onMode="1" bRatio="0.0000086" products="221 213"/> - <channel onMode="1" bRatio="0.0000059" products="223 211"/> - <channel onMode="1" bRatio="0.0000130" products="223 213"/> - <channel onMode="1" bRatio="0.0000023" products="225 211"/> - <channel onMode="1" bRatio="0.0000120" products="310 211"/> - <channel onMode="1" bRatio="0.0000010" products="311 213"/> - <channel onMode="1" bRatio="0.0000100" products="313 213"/> - <channel onMode="1" bRatio="0.0000120" products="321 111"/> - <channel onMode="1" bRatio="0.0000052" products="321 113"/> - <channel onMode="1" bRatio="0.0000026" products="321 221"/> - <channel onMode="1" bRatio="0.0000051" products="321 223"/> - <channel onMode="1" bRatio="0.0000010" products="321 311"/> - <channel onMode="1" bRatio="0.0000403" products="323 22"/> - <channel onMode="1" bRatio="0.0000020" products="323 111"/> - <channel onMode="1" bRatio="0.0000100" products="323 113"/> - <channel onMode="1" bRatio="0.0000240" products="323 221"/> - <channel onMode="1" bRatio="0.0000010" products="323 223"/> - <channel onMode="1" bRatio="0.0000030" products="323 311"/> - <channel onMode="1" bRatio="0.0000010" products="323 -313"/> - <channel onMode="1" bRatio="0.0000042" products="331 211"/> - <channel onMode="1" bRatio="0.0000010" products="331 213"/> - <channel onMode="1" bRatio="0.0000780" products="331 321"/> - <channel onMode="1" bRatio="0.0000010" products="331 323"/> - <channel onMode="1" bRatio="0.0000010" products="333 211"/> - <channel onMode="1" bRatio="0.0000010" products="333 213"/> - <channel onMode="1" bRatio="0.0000090" products="333 321"/> - <channel onMode="1" bRatio="0.0000110" products="333 323"/> - <channel onMode="1" bRatio="0.0000005" products="411 111"/> - <channel onMode="1" bRatio="0.0000110" products="411 311"/> - <channel onMode="1" bRatio="0.0000005" products="413 111"/> - <channel onMode="1" bRatio="0.0000060" products="413 311"/> - <channel onMode="1" bRatio="0.0050000" products="-421 211"/> - <channel onMode="1" bRatio="0.0134000" products="-421 213"/> - <channel onMode="1" bRatio="0.0004100" products="-421 321"/> - <channel onMode="1" bRatio="0.0006100" products="-421 323"/> - <channel onMode="1" bRatio="0.0002700" products="-421 411"/> - <channel onMode="1" bRatio="0.0003350" products="-421 413"/> - <channel onMode="1" bRatio="0.0046000" products="-423 211"/> - <channel onMode="1" bRatio="0.0098000" products="-423 213"/> - <channel onMode="1" bRatio="0.0003600" products="-423 321"/> - <channel onMode="1" bRatio="0.0007700" products="-423 323"/> - <channel onMode="1" bRatio="0.0003350" products="-423 411"/> - <channel onMode="1" bRatio="0.0010400" products="-423 413"/> - <channel onMode="1" bRatio="0.0008000" products="-425 211"/> - <channel onMode="1" bRatio="0.0038000" products="-425 213"/> - <channel onMode="1" bRatio="0.0000200" products="431 111"/> - <channel onMode="1" bRatio="0.0000280" products="431 113"/> - <channel onMode="1" bRatio="0.0129000" products="431 -421"/> - <channel onMode="1" bRatio="0.0124000" products="431 -423"/> - <channel onMode="1" bRatio="0.0042000" products="431 -425"/> - <channel onMode="1" bRatio="0.0000200" products="433 111"/> - <channel onMode="1" bRatio="0.0000280" products="433 113"/> - <channel onMode="1" bRatio="0.0111000" products="433 -421"/> - <channel onMode="1" bRatio="0.0278000" products="433 -423"/> - <channel onMode="1" bRatio="0.0040000" products="433 -425"/> - <channel onMode="1" bRatio="0.0009000" products="441 321"/> - <channel onMode="1" bRatio="0.0012000" products="441 323"/> - <channel onMode="1" bRatio="0.0000400" products="443 211"/> - <channel onMode="1" bRatio="0.0000600" products="443 213"/> - <channel onMode="1" bRatio="0.0010600" products="443 321"/> - <channel onMode="1" bRatio="0.0014300" products="443 323"/> - <channel onMode="1" bRatio="0.0005000" products="443 325"/> - <channel onMode="1" bRatio="0.0000200" products="445 321"/> - <channel onMode="1" bRatio="0.0000100" products="10113 211"/> - <channel onMode="1" bRatio="0.0000100" products="10113 321"/> - <channel onMode="1" bRatio="0.0000100" products="10213 111"/> - <channel onMode="1" bRatio="0.0000100" products="10213 311"/> - <channel onMode="1" bRatio="0.0000700" products="10311 211"/> - <channel onMode="1" bRatio="0.0000100" products="10311 213"/> - <channel onMode="1" bRatio="0.0000020" products="-10311 321"/> - <channel onMode="1" bRatio="0.0000020" products="10321 111"/> - <channel onMode="1" bRatio="0.0000100" products="10321 113"/> - <channel onMode="1" bRatio="0.0000020" products="10321 311"/> - <channel onMode="1" bRatio="0.0000100" products="10321 333"/> - <channel onMode="1" bRatio="0.0018000" products="10323 443"/> - <channel onMode="1" bRatio="0.0009100" products="-10421 211"/> - <channel onMode="1" bRatio="0.0010000" products="-10423 211"/> - <channel onMode="1" bRatio="0.0007000" products="-10423 213"/> - <channel onMode="1" bRatio="0.0012000" products="-10423 431"/> - <channel onMode="1" bRatio="0.0024000" products="-10423 433"/> - <channel onMode="1" bRatio="0.0016000" products="10431 -421"/> - <channel onMode="1" bRatio="0.0016000" products="10431 -423"/> - <channel onMode="1" bRatio="0.0003000" products="10441 321"/> - <channel onMode="1" bRatio="0.0004000" products="10441 323"/> - <channel onMode="1" bRatio="0.0000400" products="20113 211"/> - <channel onMode="1" bRatio="0.0000100" products="20113 321"/> - <channel onMode="1" bRatio="0.0000200" products="20113 323"/> - <channel onMode="1" bRatio="0.0000400" products="20213 111"/> - <channel onMode="1" bRatio="0.0000100" products="20213 113"/> - <channel onMode="1" bRatio="0.0000100" products="20213 223"/> - <channel onMode="1" bRatio="0.0000100" products="20213 311"/> - <channel onMode="1" bRatio="0.0000200" products="20213 313"/> - <channel onMode="1" bRatio="0.0088700" products="20213 -421"/> - <channel onMode="1" bRatio="0.0159700" products="20213 -423"/> - <channel onMode="1" bRatio="0.0000500" products="20213 20113"/> - <channel onMode="1" bRatio="0.0000020" products="20323 333"/> - <channel onMode="1" bRatio="0.0001000" products="20323 443"/> - <channel onMode="1" bRatio="0.0007500" products="-20423 211"/> - <channel onMode="1" bRatio="0.0022000" products="-20423 213"/> - <channel onMode="1" bRatio="0.0006000" products="-20423 431"/> - <channel onMode="1" bRatio="0.0012000" products="-20423 433"/> - <channel onMode="1" bRatio="0.0041000" products="20433 -421"/> - <channel onMode="1" bRatio="0.0098000" products="20433 -423"/> - <channel onMode="1" bRatio="0.0005700" products="20443 321"/> - <channel onMode="1" bRatio="0.0002900" products="20443 323"/> - <channel onMode="1" bRatio="0.0004800" products="30443 321"/> - <channel onMode="1" bRatio="0.0005000" products="30443 323"/> - <channel onMode="1" bRatio="0.0003000" products="30443 10323"/> - <channel onMode="1" bRatio="0.0000022" products="100113 211"/> - <channel onMode="1" bRatio="0.0000010" products="100113 321"/> - <channel onMode="1" bRatio="0.0003600" products="100441 321"/> - <channel onMode="1" bRatio="0.0004800" products="100441 323"/> - <channel onMode="1" bRatio="0.0006300" products="100443 321"/> - <channel onMode="1" bRatio="0.0006000" products="100443 323"/> - <channel onMode="1" bRatio="0.0004000" products="100443 10323"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 211"/> - <channel onMode="1" bRatio="0.0000100" products="9000111 213"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 321"/> - <channel onMode="1" bRatio="0.0000050" products="9000111 323"/> - <channel onMode="1" bRatio="0.0000010" products="9000211 111"/> - <channel onMode="1" bRatio="0.0000020" products="9000211 113"/> - <channel onMode="1" bRatio="0.0000010" products="9000211 311"/> - <channel onMode="1" bRatio="0.0000050" products="9000211 313"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 211"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 213"/> - <channel onMode="1" bRatio="0.0000085" products="9010221 321"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 323"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 20213"/> - <channel onMode="1" bRatio="0.0000260" products="211 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="211 113 111"/> - <channel onMode="1" bRatio="0.0000100" products="211 113 113"/> - <channel onMode="1" bRatio="0.0000160" products="211 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="213 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="213 113 111"/> - <channel onMode="1" bRatio="0.0000100" products="213 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="213 -213 211"/> - <channel onMode="1" bRatio="0.0000100" products="-213 211 211"/> - <channel onMode="1" bRatio="0.0000010" products="221 211 111"/> - <channel onMode="1" bRatio="0.0000050" products="221 211 113"/> - <channel onMode="1" bRatio="0.0000050" products="221 213 111"/> - <channel onMode="1" bRatio="0.0000050" products="221 213 113"/> - <channel onMode="1" bRatio="0.0000010" products="221 221 211"/> - <channel onMode="1" bRatio="0.0000020" products="221 221 213"/> - <channel onMode="1" bRatio="0.0000100" products="223 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="223 211 113"/> - <channel onMode="1" bRatio="0.0000100" products="223 213 111"/> - <channel onMode="1" bRatio="0.0000050" products="223 221 211"/> - <channel onMode="1" bRatio="0.0000050" products="223 221 213"/> - <channel onMode="1" bRatio="0.0000010" products="311 211 111"/> - <channel onMode="1" bRatio="0.0000050" products="311 211 113"/> - <channel onMode="1" bRatio="0.0000100" products="311 213 111"/> - <channel onMode="1" bRatio="0.0000010" products="311 221 211"/> - <channel onMode="1" bRatio="0.0000050" products="311 221 213"/> - <channel onMode="1" bRatio="0.0000050" products="311 223 211"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 211"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 213"/> - <channel onMode="1" bRatio="0.0000100" products="313 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="313 211 113"/> - <channel onMode="1" bRatio="0.0000100" products="313 213 111"/> - <channel onMode="1" bRatio="0.0000050" products="313 221 211"/> - <channel onMode="1" bRatio="0.0000050" products="313 221 213"/> - <channel onMode="1" bRatio="0.0000100" products="313 223 211"/> - <channel onMode="1" bRatio="0.0000010" products="313 311 211"/> - <channel onMode="1" bRatio="0.0000010" products="313 -313 211"/> - <channel onMode="1" bRatio="0.0000010" products="-313 311 211"/> - <channel onMode="1" bRatio="0.0000006" meMode="11" products="321 11 -11"/> - <channel onMode="1" bRatio="0.0000006" meMode="11" products="321 13 -13"/> - <channel onMode="1" bRatio="0.0000001" meMode="11" products="321 15 -15"/> - <channel onMode="1" bRatio="0.0000010" products="321 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 113 111"/> - <channel onMode="1" bRatio="0.0000049" products="321 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 213 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 -213 211"/> - <channel onMode="1" bRatio="0.0000010" products="321 221 111"/> - <channel onMode="1" bRatio="0.0000020" products="321 221 113"/> - <channel onMode="1" bRatio="0.0000010" products="321 221 221"/> - <channel onMode="1" bRatio="0.0000050" products="321 223 111"/> - <channel onMode="1" bRatio="0.0000020" products="321 223 221"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 113"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 221"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 223"/> - <channel onMode="1" bRatio="0.0000480" products="321 311 311"/> - <channel onMode="1" bRatio="0.0000100" products="321 313 311"/> - <channel onMode="1" bRatio="0.0000010" products="321 -313 111"/> - <channel onMode="1" bRatio="0.0000005" products="321 -313 221"/> - <channel onMode="1" bRatio="0.0000100" products="321 -313 311"/> - <channel onMode="1" bRatio="0.0000001" products="321 321 -211"/> - <channel onMode="1" bRatio="0.0000260" products="321 321 -321"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 211"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 213"/> - <channel onMode="1" bRatio="0.0000001" products="-321 211 211"/> - <channel onMode="1" bRatio="0.0000018" meMode="11" products="323 11 -11"/> - <channel onMode="1" bRatio="0.0000014" meMode="11" products="323 13 -13"/> - <channel onMode="1" bRatio="0.0000002" meMode="11" products="323 15 -15"/> - <channel onMode="1" bRatio="0.0000100" products="323 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="323 113 111"/> - <channel onMode="1" bRatio="0.0000100" products="323 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="323 213 -211"/> - <channel onMode="1" bRatio="0.0000100" products="323 -213 211"/> - <channel onMode="1" bRatio="0.0000050" products="323 221 111"/> - <channel onMode="1" bRatio="0.0000050" products="323 221 113"/> - <channel onMode="1" bRatio="0.0000020" products="323 221 221"/> - <channel onMode="1" bRatio="0.0000100" products="323 223 111"/> - <channel onMode="1" bRatio="0.0000050" products="323 223 221"/> - <channel onMode="1" bRatio="0.0000010" products="323 311 111"/> - <channel onMode="1" bRatio="0.0000005" products="323 311 221"/> - <channel onMode="1" bRatio="0.0000100" products="323 311 311"/> - <channel onMode="1" bRatio="0.0000010" products="323 -313 111"/> - <channel onMode="1" bRatio="0.0000005" products="323 -313 221"/> - <channel onMode="1" bRatio="0.0000100" products="323 321 -321"/> - <channel onMode="1" bRatio="0.0000010" products="323 -321 211"/> - <channel onMode="1" bRatio="0.0000010" products="-323 321 211"/> - <channel onMode="1" bRatio="0.0000100" products="-323 321 321"/> - <channel onMode="1" bRatio="0.0000010" products="331 211 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 211 113"/> - <channel onMode="1" bRatio="0.0000020" products="331 213 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 213 113"/> - <channel onMode="1" bRatio="0.0000010" products="331 221 211"/> - <channel onMode="1" bRatio="0.0000020" products="331 223 211"/> - <channel onMode="1" bRatio="0.0000020" products="331 223 213"/> - <channel onMode="1" bRatio="0.0000010" products="331 311 211"/> - <channel onMode="1" bRatio="0.0000020" products="331 311 213"/> - <channel onMode="1" bRatio="0.0000020" products="331 313 213"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 113"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 221"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 223"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 311"/> - <channel onMode="1" bRatio="0.0000002" products="331 321 -313"/> - <channel onMode="1" bRatio="0.0000020" products="331 323 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 323 113"/> - <channel onMode="1" bRatio="0.0000010" products="331 323 221"/> - <channel onMode="1" bRatio="0.0000020" products="331 323 223"/> - <channel onMode="1" bRatio="0.0000002" products="331 323 311"/> - <channel onMode="1" bRatio="0.0000002" products="331 323 -313"/> - <channel onMode="1" bRatio="0.0000010" products="331 331 321"/> - <channel onMode="1" bRatio="0.0000010" products="333 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 211 113"/> - <channel onMode="1" bRatio="0.0000010" products="333 213 111"/> - <channel onMode="1" bRatio="0.0000005" products="333 221 211"/> - <channel onMode="1" bRatio="0.0000005" products="333 221 213"/> - <channel onMode="1" bRatio="0.0000010" products="333 223 211"/> - <channel onMode="1" bRatio="0.0000100" products="333 311 211"/> - <channel onMode="1" bRatio="0.0000100" products="333 311 213"/> - <channel onMode="1" bRatio="0.0000100" products="333 321 111"/> - <channel onMode="1" bRatio="0.0000100" products="333 321 113"/> - <channel onMode="1" bRatio="0.0000050" products="333 321 221"/> - <channel onMode="1" bRatio="0.0000100" products="333 321 223"/> - <channel onMode="1" bRatio="0.0000010" products="333 321 311"/> - <channel onMode="1" bRatio="0.0000100" products="333 323 111"/> - <channel onMode="1" bRatio="0.0000002" products="333 331 211"/> - <channel onMode="1" bRatio="0.0000002" products="333 331 213"/> - <channel onMode="1" bRatio="0.0000020" products="333 331 321"/> - <channel onMode="1" bRatio="0.0000010" products="333 333 211"/> - <channel onMode="1" bRatio="0.0000030" products="333 333 321"/> - <channel onMode="1" bRatio="0.0000030" products="333 333 323"/> - <channel onMode="1" bRatio="0.0005000" products="411 -411 321"/> - <channel onMode="1" bRatio="0.0005000" products="411 -411 323"/> - <channel onMode="1" bRatio="0.0010200" products="-411 211 211"/> - <channel onMode="1" bRatio="0.0020000" products="-411 213 211"/> - <channel onMode="1" bRatio="0.0005000" products="413 -411 321"/> - <channel onMode="1" bRatio="0.0005000" products="413 -411 323"/> - <channel onMode="1" bRatio="0.0015000" products="413 -413 321"/> - <channel onMode="1" bRatio="0.0010000" products="413 -413 323"/> - <channel onMode="1" bRatio="0.0012500" products="-413 211 211"/> - <channel onMode="1" bRatio="0.0020000" products="-413 213 211"/> - <channel onMode="1" bRatio="0.0015000" products="-413 411 321"/> - <channel onMode="1" bRatio="0.0005000" products="-413 411 323"/> - <channel onMode="1" bRatio="0.0015000" products="421 -421 321"/> - <channel onMode="1" bRatio="0.0025000" products="421 -421 323"/> - <channel onMode="1" bRatio="0.0005000" products="-421 211 111"/> - <channel onMode="1" bRatio="0.0021000" products="-421 211 113"/> - <channel onMode="1" bRatio="0.0017000" products="-421 411 311"/> - <channel onMode="1" bRatio="0.0025000" products="-421 411 313"/> - <channel onMode="1" bRatio="0.0049000" products="-421 413 311"/> - <channel onMode="1" bRatio="0.0025000" products="-421 413 313"/> - <channel onMode="1" bRatio="0.0047000" products="423 -421 321"/> - <channel onMode="1" bRatio="0.0025000" products="423 -421 323"/> - <channel onMode="1" bRatio="0.0070000" products="423 -423 321"/> - <channel onMode="1" bRatio="0.0050000" products="423 -423 323"/> - <channel onMode="1" bRatio="0.0005000" products="-423 211 111"/> - <channel onMode="1" bRatio="0.0005000" products="-423 211 113"/> - <channel onMode="1" bRatio="0.0005000" products="-423 213 111"/> - <channel onMode="1" bRatio="0.0031000" products="-423 411 311"/> - <channel onMode="1" bRatio="0.0025000" products="-423 411 313"/> - <channel onMode="1" bRatio="0.0100000" products="-423 413 311"/> - <channel onMode="1" bRatio="0.0050000" products="-423 413 313"/> - <channel onMode="1" bRatio="0.0018000" products="-423 421 321"/> - <channel onMode="1" bRatio="0.0025000" products="-423 421 323"/> - <channel onMode="1" bRatio="0.0036000" products="431 -411 211"/> - <channel onMode="1" bRatio="0.0018000" products="431 -421 111"/> - <channel onMode="1" bRatio="0.0037000" products="433 -411 211"/> - <channel onMode="1" bRatio="0.0018000" products="433 -421 111"/> - <channel onMode="1" bRatio="0.0002000" products="441 311 211"/> - <channel onMode="1" bRatio="0.0001000" products="441 321 111"/> - <channel onMode="1" bRatio="0.0002000" products="443 311 211"/> - <channel onMode="1" bRatio="0.0001000" products="443 321 111"/> - <channel onMode="1" bRatio="0.0000900" products="443 333 321"/> - <channel onMode="1" bRatio="0.0002000" products="445 311 211"/> - <channel onMode="1" bRatio="0.0001000" products="445 321 111"/> - <channel onMode="1" bRatio="0.0000100" products="10311 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="10311 211 113"/> - <channel onMode="1" bRatio="0.0000100" products="10311 213 111"/> - <channel onMode="1" bRatio="0.0000050" products="10311 221 213"/> - <channel onMode="1" bRatio="0.0000100" products="10311 321 311"/> - <channel onMode="1" bRatio="0.0000020" products="10311 331 213"/> - <channel onMode="1" bRatio="0.0000100" products="10311 333 211"/> - <channel onMode="1" bRatio="0.0000100" products="-10311 321 311"/> - <channel onMode="1" bRatio="0.0000100" products="10321 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="10321 113 111"/> - <channel onMode="1" bRatio="0.0000100" products="10321 213 -211"/> - <channel onMode="1" bRatio="0.0000050" products="10321 221 113"/> - <channel onMode="1" bRatio="0.0000100" products="10321 321 -321"/> - <channel onMode="1" bRatio="0.0000020" products="10321 331 113"/> - <channel onMode="1" bRatio="0.0000100" products="10321 333 111"/> - <channel onMode="1" bRatio="0.0000050" products="10321 333 221"/> - <channel onMode="1" bRatio="0.0000020" products="10321 333 331"/> - <channel onMode="1" bRatio="0.0000100" products="-10321 321 321"/> - <channel onMode="1" bRatio="0.0002000" products="10441 311 211"/> - <channel onMode="1" bRatio="0.0001000" products="10441 321 111"/> - <channel onMode="1" bRatio="0.0000100" products="20113 211 111"/> - <channel onMode="1" bRatio="0.0000050" products="20113 221 211"/> - <channel onMode="1" bRatio="0.0000100" products="20113 311 211"/> - <channel onMode="1" bRatio="0.0000100" products="20113 321 111"/> - <channel onMode="1" bRatio="0.0000020" products="20113 331 211"/> - <channel onMode="1" bRatio="0.0000100" products="20213 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="20213 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="20213 221 111"/> - <channel onMode="1" bRatio="0.0000100" products="20213 311 111"/> - <channel onMode="1" bRatio="0.0000100" products="20213 321 -211"/> - <channel onMode="1" bRatio="0.0000020" products="20213 331 111"/> - <channel onMode="1" bRatio="0.0000100" products="-20213 211 211"/> - <channel onMode="1" bRatio="0.0000020" products="20313 333 211"/> - <channel onMode="1" bRatio="0.0000020" products="20323 321 -321"/> - <channel onMode="1" bRatio="0.0000020" products="20323 333 111"/> - <channel onMode="1" bRatio="0.0000010" products="20323 333 221"/> - <channel onMode="1" bRatio="0.0000010" products="20323 333 331"/> - <channel onMode="1" bRatio="0.0004000" products="20443 311 211"/> - <channel onMode="1" bRatio="0.0002000" products="20443 321 111"/> - <channel onMode="1" bRatio="0.0003000" products="30443 311 211"/> - <channel onMode="1" bRatio="0.0002000" products="30443 321 111"/> - <channel onMode="1" bRatio="0.0000800" products="100441 311 211"/> - <channel onMode="1" bRatio="0.0000500" products="100441 321 111"/> - <channel onMode="1" bRatio="0.0004000" products="100443 311 211"/> - <channel onMode="1" bRatio="0.0002000" products="100443 321 111"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="9000111 213 111"/> - <channel onMode="1" bRatio="0.0000050" products="9000111 221 213"/> - <channel onMode="1" bRatio="0.0000050" products="9000111 323 111"/> - <channel onMode="1" bRatio="0.0000020" products="9000111 331 213"/> - <channel onMode="1" bRatio="0.0000010" products="9000211 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="9000211 113 111"/> - <channel onMode="1" bRatio="0.0000100" products="9000211 -213 211"/> - <channel onMode="1" bRatio="0.0000050" products="9000211 221 113"/> - <channel onMode="1" bRatio="0.0000050" products="9000211 313 111"/> - <channel onMode="1" bRatio="0.0000020" products="9000211 331 113"/> - <channel onMode="1" bRatio="0.0000010" products="-9000211 211 211"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 211 113"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 213 111"/> - <channel onMode="1" bRatio="0.0000050" products="9010221 221 213"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 223 211"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 313 211"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 323 111"/> - <channel onMode="1" bRatio="0.0000050" products="9010221 323 221"/> - <channel onMode="1" bRatio="0.0000020" products="9010221 331 213"/> - <channel onMode="1" bRatio="0.0000020" products="9010221 331 323"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 333 211"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 333 321"/> - <channel onMode="1" bRatio="0.0000100" products="211 111 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="211 113 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="211 211 -211 111"/> - <channel onMode="1" bRatio="0.0000020" products="211 211 -211 113"/> - <channel onMode="1" bRatio="0.0000020" products="213 111 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="213 211 -211 111"/> - <channel onMode="1" bRatio="0.0000020" products="-213 211 211 111"/> - <channel onMode="1" bRatio="0.0000050" products="221 211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="221 211 113 111"/> - <channel onMode="1" bRatio="0.0000050" products="221 211 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="221 213 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="221 213 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="221 -213 211 211"/> - <channel onMode="1" bRatio="0.0000020" products="221 221 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="221 221 213 111"/> - <channel onMode="1" bRatio="0.0000020" products="223 211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="223 221 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 211 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 211 113 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 211 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="311 213 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 213 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="311 -213 211 211"/> - <channel onMode="1" bRatio="0.0000050" products="311 221 211 111"/> - <channel onMode="1" bRatio="0.0000050" products="311 221 213 111"/> - <channel onMode="1" bRatio="0.0000020" products="311 221 221 211"/> - <channel onMode="1" bRatio="0.0000100" products="311 223 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 211 113"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 213 111"/> - <channel onMode="1" bRatio="0.0000005" products="311 311 221 211"/> - <channel onMode="1" bRatio="0.0000005" products="311 311 221 213"/> - <channel onMode="1" bRatio="0.0000010" products="311 311 223 211"/> - <channel onMode="1" bRatio="0.0000100" products="311 311 311 211"/> - <channel onMode="1" bRatio="0.0000100" products="313 211 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="313 211 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="313 221 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="313 311 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="-313 311 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 111 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 113 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 211 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 213 -211 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 -213 211 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 221 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 221 113 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 221 211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="321 221 221 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 223 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 223 221 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 113 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 213 -211"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 -213 211"/> - <channel onMode="1" bRatio="0.0000005" products="321 311 221 111"/> - <channel onMode="1" bRatio="0.0000005" products="321 311 221 113"/> - <channel onMode="1" bRatio="0.0000002" products="321 311 221 221"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 223 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 311 311 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 311 311 221"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 311 311"/> - <channel onMode="1" bRatio="0.0000100" products="321 313 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 -313 111 111"/> - <channel onMode="1" bRatio="0.0000005" products="321 -313 221 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 -313 311 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 321 -321 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 321 -321 113"/> - <channel onMode="1" bRatio="0.0000050" products="321 321 -321 221"/> - <channel onMode="1" bRatio="0.0000100" products="321 321 -321 223"/> - <channel onMode="1" bRatio="0.0000010" products="321 321 -321 311"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 211 113"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 213 111"/> - <channel onMode="1" bRatio="0.0000005" products="321 -321 221 211"/> - <channel onMode="1" bRatio="0.0000005" products="321 -321 221 213"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 223 211"/> - <channel onMode="1" bRatio="0.0000100" products="321 -321 311 211"/> - <channel onMode="1" bRatio="0.0000100" products="321 -321 311 213"/> - <channel onMode="1" bRatio="0.0000010" products="-321 311 213 211"/> - <channel onMode="1" bRatio="0.0000010" products="-321 313 211 211"/> - <channel onMode="1" bRatio="0.0000100" products="323 111 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="323 211 -211 111"/> - <channel onMode="1" bRatio="0.0000050" products="323 221 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="323 221 211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="323 221 221 111"/> - <channel onMode="1" bRatio="0.0000010" products="323 311 111 111"/> - <channel onMode="1" bRatio="0.0000005" products="323 311 221 111"/> - <channel onMode="1" bRatio="0.0000100" products="323 311 311 111"/> - <channel onMode="1" bRatio="0.0000100" products="323 321 -321 111"/> - <channel onMode="1" bRatio="0.0000010" products="323 -321 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="-323 311 211 211"/> - <channel onMode="1" bRatio="0.0000010" products="-323 321 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="-323 321 321 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 211 113 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 211 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="331 213 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 213 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="331 -213 211 211"/> - <channel onMode="1" bRatio="0.0000010" products="331 221 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 223 211 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 311 213 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 311 311 211"/> - <channel onMode="1" bRatio="0.0000002" products="331 311 311 213"/> - <channel onMode="1" bRatio="0.0000020" products="331 313 211 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 113 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 221 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 223 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 321 311 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 321 311 113"/> - <channel onMode="1" bRatio="0.0000001" products="331 321 311 221"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 311 311"/> - <channel onMode="1" bRatio="0.0000002" products="331 321 -313 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 321 -321"/> - <channel onMode="1" bRatio="0.0000002" products="331 321 -321 211"/> - <channel onMode="1" bRatio="0.0000002" products="331 321 -321 213"/> - <channel onMode="1" bRatio="0.0000020" products="331 323 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 323 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="331 323 221 111"/> - <channel onMode="1" bRatio="0.0000002" products="331 323 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 211 211 -211"/> - <channel onMode="1" bRatio="0.0000005" products="333 221 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="333 311 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 311 311 211"/> - <channel onMode="1" bRatio="0.0000100" products="333 321 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="333 321 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="333 321 221 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 321 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 321 311 311"/> - <channel onMode="1" bRatio="0.0000010" products="333 321 321 -321"/> - <channel onMode="1" bRatio="0.0000010" products="333 323 311 311"/> - <channel onMode="1" bRatio="0.0000010" products="333 323 321 -321"/> - <channel onMode="1" bRatio="0.0000002" products="333 331 211 111"/> - <channel onMode="1" bRatio="0.0000020" products="333 331 321 111"/> - <channel onMode="1" bRatio="0.0020000" products="-411 211 211 111"/> - <channel onMode="1" bRatio="0.0150000" products="-413 211 211 111"/> - <channel onMode="1" bRatio="0.0050000" products="-421 211 211 -211"/> - <channel onMode="1" bRatio="0.0005000" products="-423 211 111 111"/> - <channel onMode="1" bRatio="0.0005000" products="-423 211 211 -211"/> - <channel onMode="1" bRatio="0.0033000" products="431 -411 211 111"/> - <channel onMode="1" bRatio="0.0008000" products="431 -421 111 111"/> - <channel onMode="1" bRatio="0.0033000" products="431 -421 211 -211"/> - <channel onMode="1" bRatio="0.0033000" products="433 -411 211 111"/> - <channel onMode="1" bRatio="0.0008000" products="433 -421 111 111"/> - <channel onMode="1" bRatio="0.0033000" products="433 -421 211 -211"/> - <channel onMode="1" bRatio="0.0001000" products="441 311 211 111"/> - <channel onMode="1" bRatio="0.0001000" products="441 321 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="441 321 211 -211"/> - <channel onMode="1" bRatio="0.0001000" products="445 311 211 111"/> - <channel onMode="1" bRatio="0.0001000" products="445 321 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="445 321 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="10311 211 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="10311 211 211 -211"/> - <channel onMode="1" bRatio="0.0000050" products="10311 221 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="10311 321 311 111"/> - <channel onMode="1" bRatio="0.0000050" products="10311 321 311 221"/> - <channel onMode="1" bRatio="0.0000100" products="10311 321 -321 211"/> - <channel onMode="1" bRatio="0.0000020" products="10311 331 211 111"/> - <channel onMode="1" bRatio="0.0000020" products="10311 331 321 311"/> - <channel onMode="1" bRatio="0.0000100" products="-10311 311 311 211"/> - <channel onMode="1" bRatio="0.0000100" products="-10311 321 311 111"/> - <channel onMode="1" bRatio="0.0000050" products="-10311 321 311 221"/> - <channel onMode="1" bRatio="0.0000100" products="-10311 321 321 -211"/> - <channel onMode="1" bRatio="0.0000020" products="-10311 331 321 311"/> - <channel onMode="1" bRatio="0.0000100" products="10321 111 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="10321 221 111 111"/> - <channel onMode="1" bRatio="0.0000100" products="10321 321 -321 111"/> - <channel onMode="1" bRatio="0.0000050" products="10321 321 -321 221"/> - <channel onMode="1" bRatio="0.0000020" products="10321 331 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="10321 331 321 -321"/> - <channel onMode="1" bRatio="0.0000100" products="-10321 321 321 111"/> - <channel onMode="1" bRatio="0.0000050" products="-10321 321 321 221"/> - <channel onMode="1" bRatio="0.0000020" products="-10321 331 321 321"/> - <channel onMode="1" bRatio="0.0001000" products="10441 311 211 111"/> - <channel onMode="1" bRatio="0.0001000" products="10441 321 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="10441 321 211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="20313 311 311 211"/> - <channel onMode="1" bRatio="0.0000100" products="20313 321 311 111"/> - <channel onMode="1" bRatio="0.0000050" products="20313 321 311 221"/> - <channel onMode="1" bRatio="0.0000020" products="20313 321 -321 211"/> - <channel onMode="1" bRatio="0.0000020" products="20313 331 321 311"/> - <channel onMode="1" bRatio="0.0000020" products="-20313 311 311 211"/> - <channel onMode="1" bRatio="0.0000100" products="-20313 321 311 111"/> - <channel onMode="1" bRatio="0.0000050" products="-20313 321 311 221"/> - <channel onMode="1" bRatio="0.0000020" products="-20313 331 321 311"/> - <channel onMode="1" bRatio="0.0000040" products="20323 311 311 111"/> - <channel onMode="1" bRatio="0.0000020" products="20323 311 311 221"/> - <channel onMode="1" bRatio="0.0000020" products="20323 321 -321 111"/> - <channel onMode="1" bRatio="0.0000010" products="20323 321 -321 221"/> - <channel onMode="1" bRatio="0.0000020" products="20323 331 311 311"/> - <channel onMode="1" bRatio="0.0000010" products="20323 331 321 -321"/> - <channel onMode="1" bRatio="0.0000020" products="-20323 321 321 111"/> - <channel onMode="1" bRatio="0.0002000" products="20443 311 211 111"/> - <channel onMode="1" bRatio="0.0002000" products="20443 321 111 111"/> - <channel onMode="1" bRatio="0.0004000" products="20443 321 211 -211"/> - <channel onMode="1" bRatio="0.0001000" products="30443 311 211 111"/> - <channel onMode="1" bRatio="0.0001000" products="30443 321 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="30443 321 211 -211"/> - <channel onMode="1" bRatio="0.0000500" products="100441 311 211 111"/> - <channel onMode="1" bRatio="0.0000500" products="100441 321 111 111"/> - <channel onMode="1" bRatio="0.0000800" products="100441 321 211 -211"/> - <channel onMode="1" bRatio="0.0001000" products="100443 311 211 111"/> - <channel onMode="1" bRatio="0.0001000" products="100443 321 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="100443 321 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="9000111 211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="9000211 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="-9000211 211 211 111"/> - <channel onMode="1" bRatio="0.0000020" products="9010221 211 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="9010221 211 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 221 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 311 311 211"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 321 311 111"/> - <channel onMode="1" bRatio="0.0000100" products="9010221 321 321 -321"/> - <channel onMode="1" bRatio="0.0000010" products="9010221 331 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="211 111 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="211 211 -211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="221 211 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="221 211 211 -211 111"/> - <channel onMode="1" bRatio="0.0000020" products="311 211 111 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="311 211 211 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="311 221 211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="311 221 211 211 -211"/> - <channel onMode="1" bRatio="0.0000010" products="311 221 221 211 111"/> - <channel onMode="1" bRatio="0.0000002" products="311 311 211 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="311 311 211 211 -211"/> - <channel onMode="1" bRatio="0.0000001" products="311 311 221 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="311 311 311 211 111"/> - <channel onMode="1" bRatio="0.0000020" products="321 111 111 111 111"/> - <channel onMode="1" bRatio="0.0000020" products="321 211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="321 211 -211 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 221 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 221 211 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 221 221 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="321 311 111 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="321 311 211 -211 111"/> - <channel onMode="1" bRatio="0.0000001" products="321 311 221 111 111"/> - <channel onMode="1" bRatio="0.0000001" products="321 311 221 211 -211"/> - <channel onMode="1" bRatio="0.0000100" products="321 311 311 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 311 311 221 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 311 311 311 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 321 -321 111 111"/> - <channel onMode="1" bRatio="0.0000050" products="321 321 -321 221 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 321 -321 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 321 -321 -321 211"/> - <channel onMode="1" bRatio="0.0000002" products="321 -321 211 111 111"/> - <channel onMode="1" bRatio="0.0000002" products="321 -321 211 211 -211"/> - <channel onMode="1" bRatio="0.0000001" products="321 -321 221 211 111"/> - <channel onMode="1" bRatio="0.0000100" products="321 -321 311 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="321 -321 311 311 211"/> - <channel onMode="1" bRatio="0.0000002" products="-321 311 211 211 111"/> - <channel onMode="1" bRatio="0.0000001" products="-321 311 221 211 211"/> - <channel onMode="1" bRatio="0.0000010" products="331 211 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 211 211 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 311 211 211 -211"/> - <channel onMode="1" bRatio="0.0000001" products="331 311 311 211 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 111 111 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 211 -211 111"/> - <channel onMode="1" bRatio="0.0000010" products="331 321 221 111 111"/> - <channel onMode="1" bRatio="0.0000001" products="331 321 311 111 111"/> - <channel onMode="1" bRatio="0.0000001" products="331 321 311 211 -211"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 311 311 111"/> - <channel onMode="1" bRatio="0.0000020" products="331 321 321 -321 111"/> - <channel onMode="1" bRatio="0.0000001" products="331 321 -321 211 111"/> - <channel onMode="1" bRatio="0.0000001" products="331 -321 311 211 211"/> - <channel onMode="1" bRatio="0.0000010" products="333 311 311 311 211"/> - <channel onMode="1" bRatio="0.0000010" products="333 321 311 311 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 321 321 311 -211"/> - <channel onMode="1" bRatio="0.0000010" products="333 321 321 -321 111"/> - <channel onMode="1" bRatio="0.0000010" products="333 321 -321 311 211"/> - <channel onMode="1" bRatio="0.0050000" meMode="55" products="-3 2"/> - <channel onMode="1" bRatio="0.0330000" meMode="63" products="-4103 2203"/> - <channel onMode="1" bRatio="0.0090000" meMode="63" products="-4303 2203"/> - <channel onMode="1" bRatio="0.0000700" meMode="23" products="1 -1 -1 2"/> - <channel onMode="1" bRatio="0.0018000" meMode="23" products="1 -1 -3 2"/> - <channel onMode="1" bRatio="0.0030000" meMode="23" products="2 -1 -2 2"/> - <channel onMode="1" bRatio="0.0020500" meMode="23" products="2 -2 -1 2"/> - <channel onMode="1" bRatio="0.0022000" meMode="23" products="2 -2 -3 2"/> - <channel onMode="1" bRatio="0.0225000" meMode="43" products="2 -3 -4 2"/> - <channel onMode="1" bRatio="0.0000900" meMode="23" products="3 -3 -1 2"/> - <channel onMode="1" bRatio="0.0015000" meMode="23" products="3 -3 -3 2"/> - <channel onMode="1" bRatio="0.0040000" meMode="43" products="4 -1 -4 2"/> - <channel onMode="1" bRatio="0.0040000" meMode="23" products="4 -3 -2 2"/> - <channel onMode="1" bRatio="0.0740000" meMode="43" products="4 -3 -4 2"/> - <channel onMode="2" bRatio="0.0019480" meMode="22" products="12 -11 2 -2"/> - <channel onMode="2" bRatio="0.0019480" meMode="22" products="14 -13 2 -2"/> - <channel onMode="2" bRatio="0.0000200" products="445 323"/> - <channel onMode="2" bRatio="0.0000010" products="333 321 313 311"/> - <channel onMode="2" bRatio="0.0000020" products="-20313 321 321 -211"/> - <channel onMode="2" bRatio="0.0003118" meMode="31" products="2 -3 22"/> - <channel onMode="2" bRatio="0.2682660" meMode="23" products="2 -1 -4 2"/> - <channel onMode="2" bRatio="0.0000050" meMode="12" products="2 -3 11 -11"/> - <channel onMode="2" bRatio="0.0000025" meMode="12" products="2 -3 13 -13"/> - <channel onMode="2" bRatio="0.0000002" meMode="12" products="2 -3 15 -15"/> - <channel onMode="3" bRatio="0.0019480" meMode="22" products="12 -11 -2 2"/> - <channel onMode="3" bRatio="0.0019480" meMode="22" products="14 -13 -2 2"/> - <channel onMode="3" bRatio="0.0000400" products="445 323"/> - <channel onMode="3" bRatio="0.0000010" products="333 321 -313 311"/> - <channel onMode="3" bRatio="0.0000020" products="20313 321 321 -211"/> - <channel onMode="3" bRatio="0.0003118" meMode="31" products="-3 2 22"/> - <channel onMode="3" bRatio="0.2683360" meMode="23" products="2 -1 -4 2"/> - <channel onMode="3" bRatio="0.0000050" meMode="12" products="-3 2 11 -11"/> - <channel onMode="3" bRatio="0.0000025" meMode="12" products="-3 2 13 -13"/> - <channel onMode="3" bRatio="0.0000002" meMode="12" products="-3 2 15 -15"/> -</particle> - -<!-- -<particle id="523" name="B*+" antiName="B*-" spinType="3" chargeType="3" colType="0" - m0="5.32520"> - <channel onMode="1" bRatio="1.0000000" products="521 22"/> -</particle> - -<particle id="525" name="B*_2+" antiName="B*_2-" spinType="5" chargeType="3" colType="0" - m0="5.74300" mWidth="0.02300" mMin="5.63000" mMax="6.03000"> - <channel onMode="1" bRatio="0.3100000" products="513 211"/> - <channel onMode="1" bRatio="0.1500000" products="523 111"/> - <channel onMode="1" bRatio="0.3100000" products="511 211"/> - <channel onMode="1" bRatio="0.1500000" products="521 111"/> - <channel onMode="1" bRatio="0.0500000" products="513 211 111"/> - <channel onMode="1" bRatio="0.0300000" products="523 211 -211"/> -</particle> ---> - -<particle id="531" name="B_s0" antiName="B_sbar0" spinType="1" chargeType="0" colType="0" - m0="5.36677" tau0="4.39000e-01"> - <channel onMode="1" bRatio="0.0002000" meMode="22" products="12 -11 -321"/> - <channel onMode="1" bRatio="0.0003000" meMode="22" products="12 -11 -323"/> - <channel onMode="1" bRatio="0.0210000" meMode="22" products="12 -11 -431"/> - <channel onMode="1" bRatio="0.0490000" meMode="22" products="12 -11 -433"/> - <channel onMode="1" bRatio="0.0070000" meMode="22" products="12 -11 -435"/> - <channel onMode="1" bRatio="0.0003000" meMode="22" products="12 -11 -10323"/> - <channel onMode="1" bRatio="0.0040000" meMode="22" products="12 -11 -10431"/> - <channel onMode="1" bRatio="0.0070000" meMode="22" products="12 -11 -10433"/> - <channel onMode="1" bRatio="0.0002000" meMode="22" products="12 -11 -20323"/> - <channel onMode="1" bRatio="0.0040000" meMode="22" products="12 -11 -20433"/> - <channel onMode="1" bRatio="0.0002000" meMode="22" products="14 -13 -321"/> - <channel onMode="1" bRatio="0.0003000" meMode="22" products="14 -13 -323"/> - <channel onMode="1" bRatio="0.0210000" meMode="22" products="14 -13 -431"/> - <channel onMode="1" bRatio="0.0490000" meMode="22" products="14 -13 -433"/> - <channel onMode="1" bRatio="0.0070000" meMode="22" products="14 -13 -435"/> - <channel onMode="1" bRatio="0.0003000" meMode="22" products="14 -13 -10323"/> - <channel onMode="1" bRatio="0.0040000" meMode="22" products="14 -13 -10431"/> - <channel onMode="1" bRatio="0.0070000" meMode="22" products="14 -13 -10433"/> - <channel onMode="1" bRatio="0.0002000" meMode="22" products="14 -13 -20323"/> - <channel onMode="1" bRatio="0.0040000" meMode="22" products="14 -13 -20433"/> - <channel onMode="1" bRatio="0.0080000" meMode="22" products="16 -15 -431"/> - <channel onMode="1" bRatio="0.0160000" meMode="22" products="16 -15 -433"/> - <channel onMode="1" bRatio="0.0028000" meMode="22" products="16 -15 -435"/> - <channel onMode="1" bRatio="0.0018000" meMode="22" products="16 -15 -10431"/> - <channel onMode="1" bRatio="0.0028000" meMode="22" products="16 -15 -10433"/> - <channel onMode="1" bRatio="0.0018000" meMode="22" products="16 -15 -20433"/> - <channel onMode="1" bRatio="0.0000005" products="22 22"/> - <channel onMode="1" bRatio="0.0000100" products="130 130"/> - <channel onMode="1" bRatio="0.0000000" products="211 -211"/> - <channel onMode="1" bRatio="0.0000040" products="221 221"/> - <channel onMode="1" bRatio="0.0000012" products="223 221"/> - <channel onMode="1" bRatio="0.0000100" products="310 310"/> - <channel onMode="1" bRatio="0.0000002" products="311 111"/> - <channel onMode="1" bRatio="0.0000000" products="311 113"/> - <channel onMode="1" bRatio="0.0000002" products="311 221"/> - <channel onMode="1" bRatio="0.0000001" products="311 223"/> - <channel onMode="1" bRatio="0.0000020" products="313 130"/> - <channel onMode="1" bRatio="0.0000020" products="313 310"/> - <channel onMode="1" bRatio="0.0000040" products="313 -313"/> - <channel onMode="1" bRatio="0.0000000" products="-313 111"/> - <channel onMode="1" bRatio="0.0000008" products="-313 113"/> - <channel onMode="1" bRatio="0.0000020" products="-313 130"/> - <channel onMode="1" bRatio="0.0000001" products="-313 221"/> - <channel onMode="1" bRatio="0.0000020" products="-313 310"/> - <channel onMode="1" bRatio="0.0000185" products="321 -321"/> - <channel onMode="1" bRatio="0.0000048" products="-321 211"/> - <channel onMode="1" bRatio="0.0000120" products="-321 213"/> - <channel onMode="1" bRatio="0.0000046" products="323 -321"/> - <channel onMode="1" bRatio="0.0000060" products="323 -323"/> - <channel onMode="1" bRatio="0.0000250" products="-323 211"/> - <channel onMode="1" bRatio="0.0000200" products="-323 213"/> - <channel onMode="1" bRatio="0.0000082" products="-323 321"/> - <channel onMode="1" bRatio="0.0000250" products="331 221"/> - <channel onMode="1" bRatio="0.0000025" products="331 223"/> - <channel onMode="1" bRatio="0.0000001" products="331 311"/> - <channel onMode="1" bRatio="0.0000000" products="331 -313"/> - <channel onMode="1" bRatio="0.0000580" products="331 331"/> - <channel onMode="1" bRatio="0.0000450" products="333 22"/> - <channel onMode="1" bRatio="0.0000213" products="333 221"/> - <channel onMode="1" bRatio="0.0000004" products="333 -313"/> - <channel onMode="1" bRatio="0.0000125" products="333 331"/> - <channel onMode="1" bRatio="0.0000080" products="333 333"/> - <channel onMode="1" bRatio="0.0002000" products="-421 311"/> - <channel onMode="1" bRatio="0.0002000" products="-421 -313"/> - <channel onMode="1" bRatio="0.0002000" products="-423 311"/> - <channel onMode="1" bRatio="0.0002000" products="-423 -313"/> - <channel onMode="1" bRatio="0.0017000" products="431 -411"/> - <channel onMode="1" bRatio="0.0017000" products="431 -413"/> - <channel onMode="1" bRatio="0.0086000" products="431 -431"/> - <channel onMode="1" bRatio="0.0026000" products="-431 211"/> - <channel onMode="1" bRatio="0.0073000" products="-431 213"/> - <channel onMode="1" bRatio="0.0001500" products="-431 321"/> - <channel onMode="1" bRatio="0.0003000" products="-431 323"/> - <channel onMode="1" bRatio="0.0017000" products="433 -411"/> - <channel onMode="1" bRatio="0.0017000" products="433 -413"/> - <channel onMode="1" bRatio="0.0197000" products="433 -433"/> - <channel onMode="1" bRatio="0.0027000" products="-433 211"/> - <channel onMode="1" bRatio="0.0070000" products="-433 213"/> - <channel onMode="1" bRatio="0.0001500" products="-433 321"/> - <channel onMode="1" bRatio="0.0003000" products="-433 323"/> - <channel onMode="1" bRatio="0.0013000" products="-435 211"/> - <channel onMode="1" bRatio="0.0004000" products="441 221"/> - <channel onMode="1" bRatio="0.0008000" products="441 331"/> - <channel onMode="1" bRatio="0.0015000" products="441 333"/> - <channel onMode="1" bRatio="0.0003200" products="443 221"/> - <channel onMode="1" bRatio="0.0000800" products="443 311"/> - <channel onMode="1" bRatio="0.0006400" products="443 331"/> - <channel onMode="1" bRatio="0.0013500" products="443 333"/> - <channel onMode="1" bRatio="0.0002350" products="445 221"/> - <channel onMode="1" bRatio="0.0004650" products="445 331"/> - <channel onMode="1" bRatio="0.0000500" products="10441 221"/> - <channel onMode="1" bRatio="0.0001000" products="10441 331"/> - <channel onMode="1" bRatio="0.0002000" products="10441 333"/> - <channel onMode="1" bRatio="0.0002350" products="10443 221"/> - <channel onMode="1" bRatio="0.0004650" products="10443 331"/> - <channel onMode="1" bRatio="0.0010000" products="10443 333"/> - <channel onMode="1" bRatio="0.0085000" products="20213 -431"/> - <channel onMode="1" bRatio="0.0122000" products="20213 -433"/> - <channel onMode="1" bRatio="0.0008000" products="-20433 211"/> - <channel onMode="1" bRatio="0.0021000" products="-20433 213"/> - <channel onMode="1" bRatio="0.0003000" products="20443 221"/> - <channel onMode="1" bRatio="0.0007000" products="20443 331"/> - <channel onMode="1" bRatio="0.0014000" products="20443 333"/> - <channel onMode="1" bRatio="0.0002000" products="100441 221"/> - <channel onMode="1" bRatio="0.0004000" products="100441 331"/> - <channel onMode="1" bRatio="0.0006000" products="100441 333"/> - <channel onMode="1" bRatio="0.0002350" products="100443 221"/> - <channel onMode="1" bRatio="0.0004650" products="100443 331"/> - <channel onMode="1" bRatio="0.0012000" products="100443 333"/> - <channel onMode="1" bRatio="0.0000023" meMode="11" products="333 11 -11"/> - <channel onMode="1" bRatio="0.0000023" meMode="11" products="333 13 -13"/> - <channel onMode="1" bRatio="0.0007000" products="411 -411 311"/> - <channel onMode="1" bRatio="0.0007000" products="413 -411 311"/> - <channel onMode="1" bRatio="0.0007000" products="421 411 -321"/> - <channel onMode="1" bRatio="0.0007000" products="-421 413 -321"/> - <channel onMode="1" bRatio="0.0096000" products="431 -411 311"/> - <channel onMode="1" bRatio="0.0096000" products="431 421 -321"/> - <channel onMode="1" bRatio="0.0009000" products="-431 211 113"/> - <channel onMode="1" bRatio="0.0009000" products="-431 213 111"/> - <channel onMode="1" bRatio="0.0020000" products="-431 411 311"/> - <channel onMode="1" bRatio="0.0025000" products="-431 411 313"/> - <channel onMode="1" bRatio="0.0050000" products="-431 413 311"/> - <channel onMode="1" bRatio="0.0025000" products="-431 413 313"/> - <channel onMode="1" bRatio="0.0020000" products="-431 421 321"/> - <channel onMode="1" bRatio="0.0025000" products="-431 421 323"/> - <channel onMode="1" bRatio="0.0050000" products="-431 423 321"/> - <channel onMode="1" bRatio="0.0025000" products="-431 423 323"/> - <channel onMode="1" bRatio="0.0096000" products="433 -411 311"/> - <channel onMode="1" bRatio="0.0096000" products="433 -421 -321"/> - <channel onMode="1" bRatio="0.0010000" products="-433 211 113"/> - <channel onMode="1" bRatio="0.0010000" products="-433 213 111"/> - <channel onMode="1" bRatio="0.0050000" products="-433 411 311"/> - <channel onMode="1" bRatio="0.0050000" products="-433 411 313"/> - <channel onMode="1" bRatio="0.0150000" products="-433 413 311"/> - <channel onMode="1" bRatio="0.0030000" products="-433 413 313"/> - <channel onMode="1" bRatio="0.0050000" products="-433 421 321"/> - <channel onMode="1" bRatio="0.0050000" products="-433 421 323"/> - <channel onMode="1" bRatio="0.0150000" products="-433 423 321"/> - <channel onMode="1" bRatio="0.0030000" products="-433 423 323"/> - <channel onMode="1" bRatio="0.0002800" products="441 311 311"/> - <channel onMode="1" bRatio="0.0002800" products="441 321 -321"/> - <channel onMode="1" bRatio="0.0002000" products="443 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="443 211 -211"/> - <channel onMode="1" bRatio="0.0007000" products="443 311 311"/> - <channel onMode="1" bRatio="0.0007000" products="443 321 -321"/> - <channel onMode="1" bRatio="0.0001600" products="445 311 311"/> - <channel onMode="1" bRatio="0.0001600" products="445 321 -321"/> - <channel onMode="1" bRatio="0.0000300" products="10441 311 311"/> - <channel onMode="1" bRatio="0.0000300" products="10441 321 -321"/> - <channel onMode="1" bRatio="0.0001600" products="10443 311 311"/> - <channel onMode="1" bRatio="0.0001600" products="10443 321 -321"/> - <channel onMode="1" bRatio="0.0002600" products="20443 311 311"/> - <channel onMode="1" bRatio="0.0002600" products="20443 321 -321"/> - <channel onMode="1" bRatio="0.0001200" products="100441 311 311"/> - <channel onMode="1" bRatio="0.0001200" products="100441 321 -321"/> - <channel onMode="1" bRatio="0.0002000" products="100443 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="100443 211 -211"/> - <channel onMode="1" bRatio="0.0003000" products="100443 311 311"/> - <channel onMode="1" bRatio="0.0003000" products="100443 321 -321"/> - <channel onMode="1" bRatio="0.0003000" products="411 -411 311 111"/> - <channel onMode="1" bRatio="0.0003000" products="411 -411 -321 211"/> - <channel onMode="1" bRatio="0.0003000" products="413 -411 311 111"/> - <channel onMode="1" bRatio="0.0003000" products="413 -411 -321 211"/> - <channel onMode="1" bRatio="0.0007000" products="-421 411 311 -211"/> - <channel onMode="1" bRatio="0.0007000" products="-421 411 -321 111"/> - <channel onMode="1" bRatio="0.0007000" products="-421 413 311 -211"/> - <channel onMode="1" bRatio="0.0007000" products="-421 413 -321 111"/> - <channel onMode="1" bRatio="0.0024000" products="431 -411 311 111"/> - <channel onMode="1" bRatio="0.0048000" products="431 -411 -321 211"/> - <channel onMode="1" bRatio="0.0048000" products="431 -421 311 -211"/> - <channel onMode="1" bRatio="0.0024000" products="431 -421 -321 111"/> - <channel onMode="1" bRatio="0.0009000" products="-431 211 111 111"/> - <channel onMode="1" bRatio="0.0009000" products="-431 211 211 -211"/> - <channel onMode="1" bRatio="0.0024000" products="433 -411 311 111"/> - <channel onMode="1" bRatio="0.0048000" products="433 -411 -321 211"/> - <channel onMode="1" bRatio="0.0048000" products="433 -421 311 -211"/> - <channel onMode="1" bRatio="0.0024000" products="433 -421 -321 111"/> - <channel onMode="1" bRatio="0.0010000" products="-433 211 111 111"/> - <channel onMode="1" bRatio="0.0077000" products="-433 211 211 -211"/> - <channel onMode="1" bRatio="0.0001000" products="441 221 111 111"/> - <channel onMode="1" bRatio="0.0001000" products="441 221 211 -211"/> - <channel onMode="1" bRatio="0.0002800" products="441 311 311 111"/> - <channel onMode="1" bRatio="0.0002800" products="441 321 -321 111"/> - <channel onMode="1" bRatio="0.0002800" products="441 -321 311 211"/> - <channel onMode="1" bRatio="0.0002000" products="441 331 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="441 331 211 -211"/> - <channel onMode="1" bRatio="0.0004000" products="441 333 111 111"/> - <channel onMode="1" bRatio="0.0004000" products="441 333 211 -211"/> - <channel onMode="1" bRatio="0.0002000" products="443 221 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="443 221 211 -211"/> - <channel onMode="1" bRatio="0.0007000" products="443 311 311 111"/> - <channel onMode="1" bRatio="0.0007000" products="443 321 -321 111"/> - <channel onMode="1" bRatio="0.0007000" products="443 -321 311 211"/> - <channel onMode="1" bRatio="0.0004000" products="443 331 111 111"/> - <channel onMode="1" bRatio="0.0004000" products="443 331 211 -211"/> - <channel onMode="1" bRatio="0.0003900" products="443 333 111 111"/> - <channel onMode="1" bRatio="0.0003900" products="443 333 211 -211"/> - <channel onMode="1" bRatio="0.0001600" products="445 311 311 111"/> - <channel onMode="1" bRatio="0.0001600" products="445 321 -321 111"/> - <channel onMode="1" bRatio="0.0001600" products="445 -321 311 211"/> - <channel onMode="1" bRatio="0.0000300" products="10441 311 311 111"/> - <channel onMode="1" bRatio="0.0000300" products="10441 321 -321 111"/> - <channel onMode="1" bRatio="0.0000300" products="10441 -321 311 211"/> - <channel onMode="1" bRatio="0.0001600" products="10443 311 311 111"/> - <channel onMode="1" bRatio="0.0001600" products="10443 321 -321 111"/> - <channel onMode="1" bRatio="0.0001600" products="10443 -321 311 211"/> - <channel onMode="1" bRatio="0.0001000" products="20443 221 111 111"/> - <channel onMode="1" bRatio="0.0001000" products="20443 221 211 -211"/> - <channel onMode="1" bRatio="0.0002600" products="20443 311 311 111"/> - <channel onMode="1" bRatio="0.0002600" products="20443 321 -321 111"/> - <channel onMode="1" bRatio="0.0002600" products="20443 -321 311 211"/> - <channel onMode="1" bRatio="0.0002000" products="20443 331 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="20443 331 211 -211"/> - <channel onMode="1" bRatio="0.0004000" products="20443 333 111 111"/> - <channel onMode="1" bRatio="0.0004000" products="20443 333 211 -211"/> - <channel onMode="1" bRatio="0.0001200" products="100441 311 311 111"/> - <channel onMode="1" bRatio="0.0001200" products="100441 321 -321 111"/> - <channel onMode="1" bRatio="0.0001200" products="100441 -321 311 211"/> - <channel onMode="1" bRatio="0.0002000" products="100443 221 111 111"/> - <channel onMode="1" bRatio="0.0002000" products="100443 221 211 -211"/> - <channel onMode="1" bRatio="0.0003000" products="100443 311 311 111"/> - <channel onMode="1" bRatio="0.0003000" products="100443 321 -321 111"/> - <channel onMode="1" bRatio="0.0003000" products="100443 -321 311 211"/> - <channel onMode="1" bRatio="0.0004000" products="100443 331 111 111"/> - <channel onMode="1" bRatio="0.0004000" products="100443 331 211 -211"/> - <channel onMode="1" bRatio="0.0003400" products="100443 333 111 111"/> - <channel onMode="1" bRatio="0.0003400" products="100443 333 211 -211"/> - <channel onMode="1" bRatio="0.0050000" meMode="55" products="-3 3"/> - <channel onMode="1" bRatio="0.0200000" meMode="63" products="-4301 2101"/> - <channel onMode="1" bRatio="0.0400000" meMode="63" products="-4303 2103"/> - <channel onMode="1" bRatio="0.0007000" meMode="23" products="1 -1 -1 3"/> - <channel onMode="1" bRatio="0.0016000" meMode="23" products="1 -1 -3 3"/> - <channel onMode="1" bRatio="0.3574344" meMode="23" products="2 -1 -4 3"/> - <channel onMode="1" bRatio="0.0036000" meMode="23" products="2 -2 -1 3"/> - <channel onMode="1" bRatio="0.0020000" meMode="23" products="2 -2 -3 3"/> - <channel onMode="1" bRatio="0.0172000" meMode="23" products="2 -3 -4 3"/> - <channel onMode="1" bRatio="0.0195000" meMode="23" products="2 -4 -1 3"/> - <channel onMode="1" bRatio="0.0009000" meMode="23" products="2 -4 -3 3"/> - <channel onMode="1" bRatio="0.0009000" meMode="23" products="3 -3 -1 3"/> - <channel onMode="1" bRatio="0.0013000" meMode="23" products="3 -3 -3 3"/> - <channel onMode="1" bRatio="0.0070000" meMode="43" products="4 -1 -4 3"/> - <channel onMode="1" bRatio="0.0040000" meMode="23" products="4 -3 -2 3"/> - <channel onMode="2" bRatio="0.0090000" products="433 -431"/> - <channel onMode="2" bRatio="0.0099000" products="-433 431"/> - <channel onMode="3" bRatio="0.0099000" products="433 -431"/> - <channel onMode="3" bRatio="0.0090000" products="-433 431"/> -</particle> - -<!-- -<particle id="533" name="B*_s0" antiName="B*_sbar0" spinType="3" chargeType="0" colType="0" - m0="5.41540"> - <channel onMode="1" bRatio="1.0000000" products="531 22"/> -</particle> ---> - -<!-- -<particle id="535" name="B*_2s0" antiName="B*_2sbar0" spinType="5" chargeType="0" colType="0" - m0="5.83970" mWidth="0.02000" mMin="5.81970" mMax="5.85970"> - <channel onMode="1" bRatio="0.1700000" products="513 311"/> - <channel onMode="1" bRatio="0.1700000" products="523 -321"/> - <channel onMode="1" bRatio="0.3300000" products="511 311"/> - <channel onMode="1" bRatio="0.3300000" products="521 -321"/> -</particle> ---> - -<particle id="541" name="B_c+" antiName="B_c-" spinType="1" chargeType="3" colType="0" - m0="6.27700" tau0="1.38000e-01"> - <channel onMode="1" bRatio="0.0160000" products="16 -15"/> - <channel onMode="1" bRatio="0.0034000" meMode="22" products="-11 12 511"/> - <channel onMode="1" bRatio="0.0058000" meMode="22" products="-11 12 513"/> - <channel onMode="1" bRatio="0.0403000" meMode="22" products="-11 12 531"/> - <channel onMode="1" bRatio="0.0506000" meMode="22" products="-11 12 533"/> - <channel onMode="1" bRatio="0.0000400" meMode="22" products="12 -11 421"/> - <channel onMode="1" bRatio="0.0001800" meMode="22" products="12 -11 423"/> - <channel onMode="1" bRatio="0.0075000" meMode="22" products="12 -11 441"/> - <channel onMode="1" bRatio="0.0190000" meMode="22" products="12 -11 443"/> - <channel onMode="1" bRatio="0.0002000" meMode="22" products="12 -11 100441"/> - <channel onMode="1" bRatio="0.0009400" meMode="22" products="12 -11 100443"/> - <channel onMode="1" bRatio="0.0034000" meMode="22" products="-13 14 511"/> - <channel onMode="1" bRatio="0.0058000" meMode="22" products="-13 14 513"/> - <channel onMode="1" bRatio="0.0403000" meMode="22" products="-13 14 531"/> - <channel onMode="1" bRatio="0.0506000" meMode="22" products="-13 14 533"/> - <channel onMode="1" bRatio="0.0000400" meMode="22" products="14 -13 421"/> - <channel onMode="1" bRatio="0.0001800" meMode="22" products="14 -13 423"/> - <channel onMode="1" bRatio="0.0075000" meMode="22" products="14 -13 441"/> - <channel onMode="1" bRatio="0.0190000" meMode="22" products="14 -13 443"/> - <channel onMode="1" bRatio="0.0002000" meMode="22" products="14 -13 100441"/> - <channel onMode="1" bRatio="0.0009400" meMode="22" products="14 -13 100443"/> - <channel onMode="1" bRatio="0.0000200" meMode="22" products="16 -15 421"/> - <channel onMode="1" bRatio="0.0000800" meMode="22" products="16 -15 423"/> - <channel onMode="1" bRatio="0.0023000" meMode="22" products="16 -15 441"/> - <channel onMode="1" bRatio="0.0048000" meMode="22" products="16 -15 443"/> - <channel onMode="1" bRatio="0.0000160" meMode="22" products="16 -15 100441"/> - <channel onMode="1" bRatio="0.0000800" meMode="22" products="16 -15 100443"/> - <channel onMode="1" bRatio="0.0000200" products="211 113"/> - <channel onMode="1" bRatio="0.0000003" products="421 411"/> - <channel onMode="1" bRatio="0.0000004" products="421 413"/> - <channel onMode="1" bRatio="0.0000530" products="-421 411"/> - <channel onMode="1" bRatio="0.0000490" products="-421 413"/> - <channel onMode="1" bRatio="0.0000003" products="423 411"/> - <channel onMode="1" bRatio="0.0000016" products="423 413"/> - <channel onMode="1" bRatio="0.0000750" products="-423 411"/> - <channel onMode="1" bRatio="0.0003300" products="-423 413"/> - <channel onMode="1" bRatio="0.0000066" products="431 421"/> - <channel onMode="1" bRatio="0.0000048" products="431 -421"/> - <channel onMode="1" bRatio="0.0000063" products="431 423"/> - <channel onMode="1" bRatio="0.0000071" products="431 -423"/> - <channel onMode="1" bRatio="0.0000085" products="433 421"/> - <channel onMode="1" bRatio="0.0000045" products="433 -421"/> - <channel onMode="1" bRatio="0.0000404" products="433 423"/> - <channel onMode="1" bRatio="0.0000260" products="433 -423"/> - <channel onMode="1" bRatio="0.0020000" products="441 211"/> - <channel onMode="1" bRatio="0.0042000" products="441 213"/> - <channel onMode="1" bRatio="0.0001300" products="441 321"/> - <channel onMode="1" bRatio="0.0002000" products="441 323"/> - <channel onMode="1" bRatio="0.0001500" products="441 411"/> - <channel onMode="1" bRatio="0.0001000" products="441 413"/> - <channel onMode="1" bRatio="0.0028000" products="441 431"/> - <channel onMode="1" bRatio="0.0027000" products="441 433"/> - <channel onMode="1" bRatio="0.0013000" products="443 211"/> - <channel onMode="1" bRatio="0.0040000" products="443 213"/> - <channel onMode="1" bRatio="0.0001100" products="443 321"/> - <channel onMode="1" bRatio="0.0002200" products="443 323"/> - <channel onMode="1" bRatio="0.0000900" products="443 411"/> - <channel onMode="1" bRatio="0.0002800" products="443 413"/> - <channel onMode="1" bRatio="0.0017000" products="443 431"/> - <channel onMode="1" bRatio="0.0067000" products="443 433"/> - <channel onMode="1" bRatio="0.0106000" products="511 211"/> - <channel onMode="1" bRatio="0.0096000" products="511 213"/> - <channel onMode="1" bRatio="0.0007000" products="511 321"/> - <channel onMode="1" bRatio="0.0001500" products="511 323"/> - <channel onMode="1" bRatio="0.0095000" products="513 211"/> - <channel onMode="1" bRatio="0.0257000" products="513 213"/> - <channel onMode="1" bRatio="0.0005500" products="513 321"/> - <channel onMode="1" bRatio="0.0005800" products="513 323"/> - <channel onMode="1" bRatio="0.0003700" products="521 111"/> - <channel onMode="1" bRatio="0.0003400" products="521 113"/> - <channel onMode="1" bRatio="0.0198000" products="521 311"/> - <channel onMode="1" bRatio="0.0003300" products="523 111"/> - <channel onMode="1" bRatio="0.0009000" products="523 113"/> - <channel onMode="1" bRatio="0.0160000" products="523 311"/> - <channel onMode="1" bRatio="0.1640000" products="531 211"/> - <channel onMode="1" bRatio="0.0720000" products="531 213"/> - <channel onMode="1" bRatio="0.0106000" products="531 321"/> - <channel onMode="1" bRatio="0.0650000" products="533 211"/> - <channel onMode="1" bRatio="0.2020000" products="533 213"/> - <channel onMode="1" bRatio="0.0037000" products="533 321"/> - <channel onMode="1" bRatio="0.0600502" meMode="42" products="4 -3"/> - <channel onMode="2" bRatio="0.0043000" products="521 313"/> - <channel onMode="2" bRatio="0.0167000" products="523 313"/> - <channel onMode="3" bRatio="0.0043000" products="521 -313"/> - <channel onMode="3" bRatio="0.0167000" products="523 -313"/> -</particle> - -<!-- -<particle id="543" name="B*_c+" antiName="B*_c-" spinType="3" chargeType="3" colType="0" - m0="6.34000"> - <channel onMode="1" bRatio="1.0000000" products="541 22"/> -</particle> ---> - -<!-- -<particle id="545" name="B*_2c+" antiName="B*_2c-" spinType="5" chargeType="3" colType="0" - m0="7.35000" mWidth="0.02000" mMin="7.20000" mMax="7.50000"> - <channel onMode="1" bRatio="0.3000000" products="511 411"/> - <channel onMode="1" bRatio="0.3000000" products="521 421"/> - <channel onMode="1" bRatio="0.2000000" products="513 411"/> - <channel onMode="1" bRatio="0.2000000" products="523 421"/> -</particle> ---> - -<!-- -<particle id="551" name="eta_b" spinType="1" chargeType="0" colType="0" - m0="9.40000" mWidth="0.010" mMin="9.30000" mMax="9.50000"> - <channel onMode="1" bRatio="1.0000000" meMode="91" products="21 21"/> -</particle> ---> - -<!-- -<particle id="553" name="Upsilon" spinType="3" chargeType="0" colType="0" - m0="9.46030" mWidth="0.00005" mMin="9.45980" mMax="9.46080"> - <channel onMode="1" bRatio="0.7757000" meMode="92" products="21 21 21"/> - <channel onMode="1" bRatio="0.0290000" meMode="92" products="22 21 21"/> - <channel onMode="1" bRatio="0.0238000" products="11 -11"/> - <channel onMode="1" bRatio="0.0248000" products="13 -13"/> - <channel onMode="1" bRatio="0.0267000" products="15 -15"/> - <channel onMode="1" bRatio="0.0150000" meMode="91" products="1 -1"/> - <channel onMode="1" bRatio="0.0450000" meMode="91" products="2 -2"/> - <channel onMode="1" bRatio="0.0150000" meMode="91" products="3 -3"/> - <channel onMode="1" bRatio="0.0450000" meMode="91" products="4 -4"/> -</particle> ---> - -<!-- -<particle id="555" name="chi_2b" spinType="5" chargeType="0" colType="0" - m0="9.91220"> - <channel onMode="1" bRatio="0.2200000" products="553 22"/> - <channel onMode="1" bRatio="0.7800000" meMode="91" products="21 21"/> -</particle> ---> - -<!-- -<particle id="990990" name="Pomeron" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="1103" name="dd_1" antiName="dd_1bar" spinType="3" chargeType="-2" colType="-1" - m0="0.77133"> -</particle> ---> - -<particle id="1114" name="Delta-" antiName="Deltabar+" spinType="4" chargeType="-3" colType="0" - m0="1.23200" mWidth="0.11700" mMin="1.08000" mMax="1.60000"> - <channel onMode="1" bRatio="1.0000000" products="2112 -211"/> -</particle> - -<!-- -<particle id="2101" name="ud_0" antiName="ud_0bar" spinType="1" chargeType="1" colType="-1" - m0="0.57933"> -</particle> - -<particle id="2103" name="ud_1" antiName="ud_1bar" spinType="3" chargeType="1" colType="-1" - m0="0.77133"> -</particle> ---> - -<particle id="2112" name="n0" antiName="nbar0" spinType="2" chargeType="0" colType="0" - m0="0.93957" tau0="2.65500e+14"> - <channel onMode="1" bRatio="1.0000000" meMode="22" products="-12 11 2212"/> -</particle> - -<particle id="2114" name="Delta0" antiName="Deltabar0" spinType="4" chargeType="0" colType="0" - m0="1.23200" mWidth="0.11700" mMin="1.08000" mMax="1.60000"> - <channel onMode="1" bRatio="0.3314104" products="2212 -211"/> - <channel onMode="1" bRatio="0.6630208" products="2112 111"/> - <channel onMode="1" bRatio="0.0055688" products="2112 22"/> -</particle> - -<!-- -<particle id="2203" name="uu_1" antiName="uu_1bar" spinType="3" chargeType="4" colType="-1" - m0="0.77133"> -</particle> ---> - -<particle id="2212" name="p+" antiName="pbar-" spinType="2" chargeType="3" colType="0" - m0="0.93827"> -</particle> - -<particle id="202212" name="N(1440)+" antiName="N(1440)bar-" spinType="2" chargeType="3" colType="0" - m0="1.440" mWidth="0.350" mMin="1.4100" mMax="1.4500"> - <channel onMode="1" bRatio="0.466" products="2212 211"/> - <channel onMode="1" bRatio="0.2340" products="2112 111"/> - <channel onMode="1" bRatio="0.1990" products="2212 211 111"/> - <channel onMode="1" bRatio="0.1010" products="2112 211 -211"/> -</particle> - -<particle id="202112" name="N(1440)0" antiName="N(1440)bar0" spinType="2" chargeType="3" colType="0" - m0="1.440" mWidth="0.350" mMin="1.4100" mMax="1.4500"> - <channel onMode="1" bRatio="0.4660" products="2112 -211"/> - <channel onMode="1" bRatio="0.2340" products="2212 111"/> - <channel onMode="1" bRatio="0.1990" products="2112 111 -211"/> - <channel onMode="1" bRatio="0.1010" products="2212 211 -211"/> -</particle> - -<particle id="212212" name="N(1710)+" antiName="N(1710)bar-" spinType="2" chargeType="3" colType="0" - m0="1.710" mWidth="0.100" mMin="1.6800" mMax="1.7400"> - <channel onMode="1" bRatio="0.3334" products="2212 211 111"/> - <channel onMode="1" bRatio="0.1666" products="2112 211 -211"/> - <channel onMode="1" bRatio="0.1334" products="2212 211"/> - <channel onMode="1" bRatio="0.1300" products="2112 223"/> - <channel onMode="1" bRatio="0.1100" products="3122 321"/> - <channel onMode="1" bRatio="0.0660" products="2112 111"/> - <channel onMode="1" bRatio="0.0660" products="2112 221"/> -</particle> - -<particle id="212112" name="N(1710)0" antiName="N(1710)bar0" spinType="2" chargeType="3" colType="0" - m0="1.710" mWidth="0.100" mMin="1.6800" mMax="1.7400"> - <channel onMode="1" bRatio="0.3334" products="2112 -211 111"/> - <channel onMode="1" bRatio="0.1666" products="2212 211 -211"/> - <channel onMode="1" bRatio="0.1334" products="2112 -211"/> - <channel onMode="1" bRatio="0.1300" products="2212 223"/> - <channel onMode="1" bRatio="0.1100" products="3122 311"/> - <channel onMode="1" bRatio="0.0660" products="2212 111"/> - <channel onMode="1" bRatio="0.0660" products="2212 221"/> -</particle> - -<particle id="2214" name="Delta+" antiName="Deltabar-" spinType="4" chargeType="3" colType="0" - m0="1.23200" mWidth="0.11700" mMin="1.08000" mMax="1.60000"> - <channel onMode="1" bRatio="0.6630208" products="2212 111"/> - <channel onMode="1" bRatio="0.3314104" products="2112 211"/> - <channel onMode="1" bRatio="0.0055688" products="2212 22"/> -</particle> - -<particle id="2224" name="Delta++" antiName="Deltabar--" spinType="4" chargeType="6" colType="0" - m0="1.23200" mWidth="0.11700" mMin="1.08000" mMax="1.60000"> - <channel onMode="1" bRatio="1.0000000" products="2212 211"/> -</particle> - -<!-- -<particle id="3101" name="sd_0" antiName="sd_0bar" spinType="1" chargeType="-2" colType="-1" - m0="0.80473"> -</particle> ---> - -<!-- -<particle id="3103" name="sd_1" antiName="sd_1bar" spinType="3" chargeType="-2" colType="-1" - m0="0.92953"> -</particle> ---> - -<particle id="3112" name="Sigma-" antiName="Sigmabar+" spinType="2" chargeType="-3" colType="0" - m0="1.19745" tau0="4.43400e+01"> - <channel onMode="1" bRatio="0.9984757" products="2112 -211"/> - <channel onMode="1" bRatio="0.0010170" meMode="22" products="-12 11 2112"/> - <channel onMode="1" bRatio="0.0004500" meMode="22" products="-14 13 2112"/> - <channel onMode="1" bRatio="0.0000573" meMode="22" products="-12 11 3122"/> -</particle> - - -<particle id="3114" name="Sigma*-" antiName="Sigma*bar+" spinType="4" chargeType="-3" colType="0" - m0="1.38720" mWidth="0.03940" mMin="1.34000" mMax="1.70000"> - <channel onMode="1" bRatio="0.8814590" products="3122 -211"/> - <channel onMode="1" bRatio="0.0592705" products="3212 -211"/> - <channel onMode="1" bRatio="0.0592705" products="3112 111"/> -</particle> - - -<particle id="3122" name="Lambda0" antiName="Lambdabar0" spinType="2" chargeType="0" colType="0" - m0="1.11568" tau0="7.89000e+01"> - <channel onMode="1" bRatio="0.6391668" products="2212 -211"/> - <channel onMode="1" bRatio="0.3580935" products="2112 111"/> - <channel onMode="1" bRatio="0.0017505" products="2112 22"/> - <channel onMode="1" bRatio="0.0008322" meMode="22" products="-12 11 2212"/> - <channel onMode="1" bRatio="0.0001570" meMode="22" products="-14 13 2212"/> -</particle> - -<!-- -<particle id="3124" name="Lambda(1520)0" antiName="Lambda(1520)bar0" spinType="4" chargeType="0" colType="0" - m0="1.51950" mWidth="0.01560" mMin="1.40000" mMax="1.65000"> - <channel onMode="1" bRatio="0.2300000" products="2212 -321"/> - <channel onMode="1" bRatio="0.2300000" products="2112 -311"/> - <channel onMode="1" bRatio="0.1400000" products="3222 -211"/> - <channel onMode="1" bRatio="0.1400000" products="3112 211"/> - <channel onMode="1" bRatio="0.1400000" products="3212 111"/> - <channel onMode="1" bRatio="0.0333000" products="3122 111 111"/> - <channel onMode="1" bRatio="0.0667000" products="3122 211 -211"/> - <channel onMode="1" bRatio="0.0030000" products="3222 -211 111"/> - <channel onMode="1" bRatio="0.0030000" products="3112 211 111"/> - <channel onMode="1" bRatio="0.0010000" products="3212 111 111"/> - <channel onMode="1" bRatio="0.0020000" products="3212 211 -211"/> - <channel onMode="1" bRatio="0.0110000" products="3122 22"/> -</particle> ---> - -<!-- -<particle id="3201" name="su_0" antiName="su_0bar" spinType="1" chargeType="1" colType="-1" - m0="0.80473"> -</particle> ---> - -<!-- -<particle id="3203" name="su_1" antiName="su_1bar" spinType="3" chargeType="1" colType="-1" - m0="0.92953"> -</particle> ---> - -<particle id="3212" name="Sigma0" antiName="Sigmabar0" spinType="2" chargeType="0" colType="0" - m0="1.19264" tau0="2.22e-08"> - <channel onMode="1" bRatio="0.9950249" products="3122 22"/> - <channel onMode="1" bRatio="0.0049751" meMode="11" products="3122 11 -11"/> -</particle> - - -<particle id="3214" name="Sigma*0" antiName="Sigma*bar0" spinType="4" chargeType="0" colType="0" - m0="1.38370" mWidth="0.03600" mMin="1.34000" mMax="1.70000"> - <channel onMode="1" bRatio="0.8700000" products="3122 111"/> - <channel onMode="1" bRatio="0.0585000" products="3222 -211"/> - <channel onMode="1" bRatio="0.0585000" products="3112 211"/> - <channel onMode="1" bRatio="0.0130000" products="3122 22"/> -</particle> - - -<particle id="3222" name="Sigma+" antiName="Sigmabar-" spinType="2" chargeType="3" colType="0" - m0="1.18937" tau0="2.40400e+01"> - <channel onMode="1" bRatio="0.5156743" products="2212 111"/> - <channel onMode="1" bRatio="0.4830758" products="2112 211"/> - <channel onMode="1" bRatio="0.0012299" products="2212 22"/> - <channel onMode="1" bRatio="0.0000200" meMode="22" products="-11 12 3122"/> -</particle> - - -<particle id="3224" name="Sigma*+" antiName="Sigma*bar-" spinType="4" chargeType="3" colType="0" - m0="1.38280" mWidth="0.03600" mMin="1.34000" mMax="1.70000"> - <channel onMode="1" bRatio="0.8814590" products="3122 211"/> - <channel onMode="1" bRatio="0.0592705" products="3222 111"/> - <channel onMode="1" bRatio="0.0592705" products="3212 211"/> -</particle> - - -<!-- -<particle id="3303" name="ss_1" antiName="ss_1bar" spinType="3" chargeType="-2" colType="-1" - m0="1.09361"> -</particle> ---> - -<particle id="3312" name="Xi-" antiName="Xibar+" spinType="2" chargeType="-3" colType="0" - m0="1.32171" tau0="4.91000e+01"> - <channel onMode="1" bRatio="0.9988730" products="3122 -211"/> - <channel onMode="1" bRatio="0.0001270" products="3112 22"/> - <channel onMode="1" bRatio="0.0005630" meMode="22" products="-12 11 3122"/> - <channel onMode="1" bRatio="0.0003500" meMode="22" products="-14 13 3122"/> - <channel onMode="1" bRatio="0.0000870" meMode="22" products="-12 11 3212"/> -</particle> - - -<particle id="3314" name="Xi*-" antiName="Xi*bar+" spinType="4" chargeType="-3" colType="0" - m0="1.53500" mWidth="0.00990" mMin="1.46000" mMax="1.63000"> - <channel onMode="1" bRatio="0.6670000" products="3322 -211"/> - <channel onMode="1" bRatio="0.3330000" products="3312 111"/> -</particle> - -<particle id="3322" name="Xi0" antiName="Xibar0" spinType="2" chargeType="0" colType="0" - m0="1.31486" tau0="8.71000e+01"> - <channel onMode="1" bRatio="0.9952424" products="3122 111"/> - <channel onMode="1" bRatio="0.0011700" products="3122 22"/> - <channel onMode="1" bRatio="0.0033300" products="3212 22"/> - <channel onMode="1" bRatio="0.0002530" meMode="22" products="-12 11 3222"/> - <channel onMode="1" bRatio="0.0000046" meMode="22" products="-14 13 3222"/> -</particle> - -<particle id="3324" name="Xi*0" antiName="Xi*bar0" spinType="4" chargeType="0" colType="0" - m0="1.53180" mWidth="0.00910" mMin="1.46000" mMax="1.63000"> - <channel onMode="1" bRatio="0.3330000" products="3322 111"/> - <channel onMode="1" bRatio="0.6670000" products="3312 211"/> -</particle> - -<particle id="3334" name="Omega-" antiName="Omegabar+" spinType="4" chargeType="-3" colType="0" - m0="1.67245" tau0="2.46100e+01"> - <channel onMode="1" bRatio="0.6737955" products="3122 -321"/> - <channel onMode="1" bRatio="0.2345365" products="3322 -211"/> - <channel onMode="1" bRatio="0.0854667" products="3312 111"/> - <channel onMode="1" bRatio="0.0006360" products="3324 -211"/> - <channel onMode="1" bRatio="0.0055653" meMode="22" products="-12 11 3322"/> -</particle> - -<!-- -<particle id="4101" name="cd_0" antiName="cd_0bar" spinType="1" chargeType="1" colType="-1" - m0="1.96908"> -</particle> ---> - -<!-- -<particle id="4103" name="cd_1" antiName="cd_1bar" spinType="3" chargeType="1" colType="-1" - m0="2.00808"> -</particle> ---> - -<particle id="4112" name="Sigma_c0" antiName="Sigma_cbar0" spinType="2" chargeType="0" colType="0" - m0="2.45374" mWidth="0.00216" mMin="2.43176" mMax="2.47576"> - <channel onMode="1" bRatio="1.0000000" products="4122 -211"/> -</particle> - -<particle id="4114" name="Sigma*_c0" antiName="Sigma*_cbar0" spinType="4" chargeType="0" colType="0" - m0="2.51880" mWidth="0.01450" mMin="2.43000" mMax="2.68000"> - <channel onMode="1" bRatio="1.0000000" products="4122 -211"/> -</particle> - -<particle id="4122" name="Lambda_c+" antiName="Lambda_cbar-" spinType="2" chargeType="3" colType="0" - m0="2.28646" tau0="5.99000e-02"> - <channel onMode="1" bRatio="0.0030000" meMode="22" products="-11 12 2112"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="-11 12 2114"/> - <channel onMode="1" bRatio="0.0180000" meMode="22" products="-11 12 3122"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-11 12 3212"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-11 12 3214"/> - <channel onMode="1" bRatio="0.0030000" meMode="22" products="-13 14 2112"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="-13 14 2114"/> - <channel onMode="1" bRatio="0.0180000" meMode="22" products="-13 14 3122"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-13 14 3212"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-13 14 3214"/> - <channel onMode="1" bRatio="0.0060000" meMode="22" products="-11 12 2112 111"/> - <channel onMode="1" bRatio="0.0060000" meMode="22" products="-11 12 2212 -211"/> - <channel onMode="1" bRatio="0.0060000" meMode="22" products="-13 14 2112 111"/> - <channel onMode="1" bRatio="0.0060000" meMode="22" products="-13 14 2212 -211"/> - <channel onMode="1" bRatio="0.0030000" products="2112 211"/> - <channel onMode="1" bRatio="0.0030000" products="2112 213"/> - <channel onMode="1" bRatio="0.0030000" products="2114 211"/> - <channel onMode="1" bRatio="0.0030000" products="2114 213"/> - <channel onMode="1" bRatio="0.0020000" products="2212 111"/> - <channel onMode="1" bRatio="0.0020000" products="2212 113"/> - <channel onMode="1" bRatio="0.0010000" products="2212 221"/> - <channel onMode="1" bRatio="0.0020000" products="2212 223"/> - <channel onMode="1" bRatio="0.0230000" products="2212 311"/> - <channel onMode="1" bRatio="0.0400000" products="2212 -313"/> - <channel onMode="1" bRatio="0.0010000" products="2212 331"/> - <channel onMode="1" bRatio="0.0013000" products="2212 333"/> - <channel onMode="1" bRatio="0.0010000" products="2214 111"/> - <channel onMode="1" bRatio="0.0010000" products="2214 113"/> - <channel onMode="1" bRatio="0.0010000" products="2214 221"/> - <channel onMode="1" bRatio="0.0010000" products="2214 223"/> - <channel onMode="1" bRatio="0.0050000" products="2214 311"/> - <channel onMode="1" bRatio="0.0050000" products="2214 -313"/> - <channel onMode="1" bRatio="0.0010000" products="2214 331"/> - <channel onMode="1" bRatio="0.0010000" products="2224 -211"/> - <channel onMode="1" bRatio="0.0010000" products="2224 -213"/> - <channel onMode="1" bRatio="0.0066000" products="2224 -321"/> - <channel onMode="1" bRatio="0.0250000" products="2224 -323"/> - <channel onMode="1" bRatio="0.0058000" products="3122 211"/> - <channel onMode="1" bRatio="0.0050000" products="3122 213"/> - <channel onMode="1" bRatio="0.0050000" products="3122 321"/> - <channel onMode="1" bRatio="0.0050000" products="3122 323"/> - <channel onMode="1" bRatio="0.0055000" products="3212 211"/> - <channel onMode="1" bRatio="0.0040000" products="3212 213"/> - <channel onMode="1" bRatio="0.0020000" products="3212 321"/> - <channel onMode="1" bRatio="0.0020000" products="3212 323"/> - <channel onMode="1" bRatio="0.0040000" products="3214 211"/> - <channel onMode="1" bRatio="0.0040000" products="3214 213"/> - <channel onMode="1" bRatio="0.0010000" products="3214 321"/> - <channel onMode="1" bRatio="0.0010000" products="3214 323"/> - <channel onMode="1" bRatio="0.0040000" products="3222 111"/> - <channel onMode="1" bRatio="0.0040000" products="3222 113"/> - <channel onMode="1" bRatio="0.0020000" products="3222 221"/> - <channel onMode="1" bRatio="0.0040000" products="3222 223"/> - <channel onMode="1" bRatio="0.0020000" products="3222 311"/> - <channel onMode="1" bRatio="0.0020000" products="3222 313"/> - <channel onMode="1" bRatio="0.0020000" products="3222 331"/> - <channel onMode="1" bRatio="0.0030000" products="3224 111"/> - <channel onMode="1" bRatio="0.0030000" products="3224 113"/> - <channel onMode="1" bRatio="0.0020000" products="3224 221"/> - <channel onMode="1" bRatio="0.0030000" products="3224 223"/> - <channel onMode="1" bRatio="0.0010000" products="3224 311"/> - <channel onMode="1" bRatio="0.0010000" products="3224 313"/> - <channel onMode="1" bRatio="0.0020000" products="3322 321"/> - <channel onMode="1" bRatio="0.0020000" products="3322 323"/> - <channel onMode="1" bRatio="0.0020000" products="3324 321"/> - <channel onMode="1" bRatio="0.0018000" products="9010221 2212"/> - <channel onMode="1" bRatio="0.0300000" meMode="43" products="1 2203"/> - <channel onMode="1" bRatio="0.0150000" meMode="43" products="2 2101"/> - <channel onMode="1" bRatio="0.0150000" meMode="43" products="2 2103"/> - <channel onMode="1" bRatio="0.1400000" meMode="43" products="2 3201"/> - <channel onMode="1" bRatio="0.1400000" meMode="43" products="2 3203"/> - <channel onMode="1" bRatio="0.0950000" meMode="43" products="3 2203"/> - <channel onMode="1" bRatio="0.0350000" meMode="43" products="2 -1 1 2101"/> - <channel onMode="1" bRatio="0.1300000" meMode="43" products="2 -1 1 3201"/> - <channel onMode="1" bRatio="0.0570000" meMode="43" products="2 -1 1 3203"/> - <channel onMode="1" bRatio="0.0350000" meMode="43" products="2 -3 1 3201"/> -</particle> - -<!-- -<particle id="4124" name="Lambda_c(2625)+" antiName="Lambda_c(2625)-" spinType="4" chargeType="3" colType="0" - m0="2.62810"> - <channel onMode="1" bRatio="0.6600000" products="4122 211 -211"/> - <channel onMode="1" bRatio="0.3300000" products="4122 111"/> - <channel onMode="1" bRatio="0.0100000" products="4122 22"/> -</particle> ---> - -<particle id="4132" name="Xi_c0" antiName="Xi_cbar0" spinType="2" chargeType="0" colType="0" - m0="2.47088" tau0="3.36000e-02"> - <channel onMode="1" bRatio="0.0200000" meMode="22" products="-11 12 3 3101"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-11 12 3 3103"/> - <channel onMode="1" bRatio="0.0200000" meMode="22" products="-13 14 3 3101"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-13 14 3 3103"/> - <channel onMode="1" bRatio="0.5400000" meMode="42" products="2 -1 3 3101"/> - <channel onMode="1" bRatio="0.2100000" meMode="42" products="3 3201"/> - <channel onMode="1" bRatio="0.1000000" meMode="42" products="3 3203"/> - <channel onMode="1" bRatio="0.1000000" meMode="42" products="2 3303"/> -</particle> - -<!-- -<particle id="4201" name="cu_0" antiName="cu_0bar" spinType="1" chargeType="4" colType="-1" - m0="1.96908"> -</particle> ---> - -<!-- -<particle id="4203" name="cu_1" antiName="cu_1bar" spinType="3" chargeType="4" colType="-1" - m0="2.00808"> -</particle> ---> - -<particle id="4212" name="Sigma_c+" antiName="Sigma_cbar-" spinType="2" chargeType="3" colType="0" - m0="2.45290" mWidth="0.00220" mMin="2.43090" mMax="2.47490"> - <channel onMode="1" bRatio="1.0000000" products="4122 111"/> -</particle> - -<particle id="4214" name="Sigma*_c+" antiName="Sigma*_cbar-" spinType="4" chargeType="3" colType="0" - m0="2.51750" mWidth="0.01550" mMin="2.43000" mMax="2.68000"> - <channel onMode="1" bRatio="1.0000000" products="4122 111"/> -</particle> - -<particle id="4222" name="Sigma_c++" antiName="Sigma_cbar--" spinType="2" chargeType="6" colType="0" - m0="2.45398" mWidth="0.00226" mMin="2.43202" mMax="2.47602"> - <channel onMode="1" bRatio="1.0000000" products="4122 211"/> -</particle> - -<particle id="4224" name="Sigma*_c++" antiName="Sigma*_cbar--" spinType="4" chargeType="6" colType="0" - m0="2.51790" mWidth="0.01490" mMin="2.43000" mMax="2.68000"> - <channel onMode="1" bRatio="1.0000000" products="4122 211"/> -</particle> - -<particle id="4232" name="Xi_c+" antiName="Xi_cbar-" spinType="2" chargeType="3" colType="0" - m0="2.46780" tau0="1.32000e-01"> - <channel onMode="1" bRatio="0.0280000" meMode="22" products="-11 12 3 3201"/> - <channel onMode="1" bRatio="0.0070000" meMode="22" products="-11 12 3 3203"/> - <channel onMode="1" bRatio="0.0280000" meMode="22" products="-13 14 3 3201"/> - <channel onMode="1" bRatio="0.0070000" meMode="22" products="-13 14 3 3203"/> - <channel onMode="1" bRatio="0.9300000" meMode="42" products="2 -1 3 3201"/> -</particle> - -<!-- -<particle id="4301" name="cs_0" antiName="cs_0bar" spinType="1" chargeType="1" colType="-1" - m0="2.15432"> -</particle> ---> - -<!-- -<particle id="4303" name="cs_1" antiName="cs_1bar" spinType="3" chargeType="1" colType="-1" - m0="2.17967"> -</particle> ---> - -<particle id="4312" name="Xi'_c0" antiName="Xi'_cbar0" spinType="2" chargeType="0" colType="0" - m0="2.57790"> - <channel onMode="1" bRatio="1.0000000" products="4132 22"/> -</particle> - - -<particle id="4314" name="Xi*_c0" antiName="Xi*_cbar0" spinType="4" chargeType="0" colType="0" - m0="2.64590" mWidth="0.0026" mMin="2.63590" mMax="2.65590"> - <channel onMode="1" bRatio="0.5000000" products="4132 111"/> - <channel onMode="1" bRatio="0.5000000" products="4132 22"/> -</particle> - - -<particle id="4322" name="Xi'_c+" antiName="Xi'_cbar-" spinType="2" chargeType="3" colType="0" - m0="2.57560"> - <channel onMode="1" bRatio="1.0000000" products="4232 22"/> -</particle> - - -<particle id="4324" name="Xi*_c+" antiName="Xi*_cbar-" spinType="4" chargeType="3" colType="0" - m0="2.64590" mWidth="0.0026" mMin="2.63590" mMax="2.65590"> - <channel onMode="1" bRatio="0.5000000" products="4232 111"/> - <channel onMode="1" bRatio="0.5000000" products="4232 22"/> -</particle> - - -<particle id="4332" name="Omega_c0" antiName="Omega_cbar0" spinType="2" chargeType="0" colType="0" - m0="2.69520" tau0="2.10000e-02"> - <channel onMode="1" bRatio="0.0180000" meMode="22" products="-11 12 3 3303"/> - <channel onMode="1" bRatio="0.0180000" meMode="22" products="-13 14 3 3303"/> - <channel onMode="1" bRatio="0.9640000" meMode="42" products="2 -1 3 3303"/> -</particle> - -<!-- -<particle id="4334" name="Omega*_c0" antiName="Omega*_cbar0" spinType="4" chargeType="0" colType="0" - m0="2.76590"> - <channel onMode="1" bRatio="1.0000000" products="4332 22"/> -</particle> ---> - -<!-- -<particle id="4403" name="cc_1" antiName="cc_1bar" spinType="3" chargeType="4" colType="-1" - m0="3.27531"> -</particle> ---> - -<!-- -<particle id="4412" name="Xi_cc+" antiName="Xi_ccbar-" spinType="2" chargeType="3" colType="0" - m0="3.59798" tau0="1.00000e-01"> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-11 12 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-13 14 3 81"/> - <channel onMode="1" bRatio="0.7600000" meMode="42" products="2 -1 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="42" products="2 -3 3 81"/> -</particle> ---> - -<!-- -<particle id="4414" name="Xi*_cc+" antiName="Xi*_ccbar-" spinType="4" chargeType="3" colType="0" - m0="3.65648" tau0="1.00000e-01"> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-11 12 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-13 14 3 81"/> - <channel onMode="1" bRatio="0.7600000" meMode="42" products="2 -1 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="42" products="2 -3 3 81"/> -</particle> ---> - -<!-- -<particle id="4422" name="Xi_cc++" antiName="Xi_ccbar--" spinType="2" chargeType="6" colType="0" - m0="3.59798" tau0="1.00000e-01"> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-11 12 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-13 14 3 81"/> - <channel onMode="1" bRatio="0.7600000" meMode="42" products="2 -1 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="42" products="2 -3 3 81"/> -</particle> ---> - -<!-- -<particle id="4424" name="Xi*_cc++" antiName="Xi*_ccbar--" spinType="4" chargeType="6" colType="0" - m0="3.65648" tau0="1.00000e-01"> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-11 12 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-13 14 3 81"/> - <channel onMode="1" bRatio="0.7600000" meMode="42" products="2 -1 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="42" products="2 -3 3 81"/> -</particle> ---> - -<!-- -<particle id="4432" name="Omega_cc+" antiName="Omega_ccbar-" spinType="2" chargeType="3" colType="0" - m0="3.78663" tau0="1.00000e-01"> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-11 12 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-13 14 3 81"/> - <channel onMode="1" bRatio="0.7600000" meMode="42" products="2 -1 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="42" products="2 -3 3 81"/> -</particle> ---> - -<!-- -<particle id="4434" name="Omega*_cc+" antiName="Omega*_ccbar-" spinType="4" chargeType="3" colType="0" - m0="3.82466" tau0="1.00000e-01"> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-11 12 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-13 14 3 81"/> - <channel onMode="1" bRatio="0.7600000" meMode="42" products="2 -1 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="42" products="2 -3 3 81"/> -</particle> ---> - -<!-- -<particle id="4444" name="Omega*_ccc++" antiName="Omega*_cccbar--" spinType="4" chargeType="6" colType="0" - m0="4.91594" tau0="1.00000e-01"> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-11 12 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-13 14 3 81"/> - <channel onMode="1" bRatio="0.7600000" meMode="42" products="2 -1 3 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="42" products="2 -3 3 81"/> -</particle> ---> - -<!-- -<particle id="5101" name="bd_0" antiName="bd_0bar" spinType="1" chargeType="-2" colType="-1" - m0="5.38897"> -</particle> ---> - -<!-- -<particle id="5103" name="bd_1" antiName="bd_1bar" spinType="3" chargeType="-2" colType="-1" - m0="5.40145"> -</particle> ---> - -<particle id="5112" name="Sigma_b-" antiName="Sigma_bbar+" spinType="2" chargeType="-3" colType="0" - m0="5.81550"> - <channel onMode="1" bRatio="1.0000000" products="5122 -211"/> -</particle> - -<!-- -<particle id="5114" name="Sigma*_b-" antiName="Sigma*_bbar+" spinType="4" chargeType="-3" colType="0" - m0="5.83510"> - <channel onMode="1" bRatio="1.0000000" products="5122 -211"/> -</particle> ---> - -<particle id="5122" name="Lambda_b0" antiName="Lambda_bbar0" spinType="2" chargeType="0" colType="0" - m0="5.61940" tau0="3.69000e-01"> - <channel onMode="1" bRatio="0.0546000" meMode="22" products="-12 11 4122"/> - <channel onMode="1" bRatio="0.0096000" meMode="22" products="-12 11 4124"/> - <channel onMode="1" bRatio="0.0128000" meMode="22" products="-12 11 14122"/> - <channel onMode="1" bRatio="0.0546000" meMode="22" products="-14 13 4122"/> - <channel onMode="1" bRatio="0.0096000" meMode="22" products="-14 13 4124"/> - <channel onMode="1" bRatio="0.0128000" meMode="22" products="-14 13 14122"/> - <channel onMode="1" bRatio="0.0172000" meMode="22" products="-16 15 4122"/> - <channel onMode="1" bRatio="0.0032000" meMode="22" products="-16 15 4124"/> - <channel onMode="1" bRatio="0.0043000" meMode="22" products="-16 15 14122"/> - <channel onMode="1" bRatio="0.0008000" products="2112 421"/> - <channel onMode="1" bRatio="0.0000048" products="2212 -211"/> - <channel onMode="1" bRatio="0.0000185" products="2212 -321"/> - <channel onMode="1" bRatio="0.0000650" products="3122 22"/> - <channel onMode="1" bRatio="0.0000050" products="3122 113"/> - <channel onMode="1" bRatio="0.0000200" products="3122 333"/> - <channel onMode="1" bRatio="0.0008000" products="3122 -421"/> - <channel onMode="1" bRatio="0.0010000" products="3122 441"/> - <channel onMode="1" bRatio="0.0004700" products="3122 443"/> - <channel onMode="1" bRatio="0.0000590" products="3124 22"/> - <channel onMode="1" bRatio="0.0006000" products="4112 111"/> - <channel onMode="1" bRatio="0.0004000" products="4112 221"/> - <channel onMode="1" bRatio="0.0005000" products="4112 331"/> - <channel onMode="1" bRatio="0.0400000" products="4122 -211"/> - <channel onMode="1" bRatio="0.0100000" products="4122 -213"/> - <channel onMode="1" bRatio="0.0005500" products="4122 -321"/> - <channel onMode="1" bRatio="0.0220000" products="4122 -431"/> - <channel onMode="1" bRatio="0.0440000" products="4122 -433"/> - <channel onMode="1" bRatio="0.0003000" products="4132 311"/> - <channel onMode="1" bRatio="0.0006000" products="4212 -211"/> - <channel onMode="1" bRatio="0.0005000" products="4312 311"/> - <channel onMode="1" bRatio="0.0200000" products="-20213 4122"/> - <channel onMode="1" bRatio="0.0000570" products="23122 22"/> - <channel onMode="1" bRatio="0.0000560" products="33122 22"/> - <channel onMode="1" bRatio="0.0003800" products="100443 3122"/> - <channel onMode="1" bRatio="0.0220000" products="4122 211 -211 -211"/> - <channel onMode="1" bRatio="0.0200000" products="3122 311 211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0120000" meMode="22" products="-2 1 2 2101"/> - <channel onMode="1" bRatio="0.4411147" meMode="23" products="-2 1 4 2101"/> - <channel onMode="1" bRatio="0.0910000" meMode="43" products="-2 4 1 2101"/> - <channel onMode="1" bRatio="0.0120000" meMode="22" products="-4 3 2 2101"/> - <channel onMode="1" bRatio="0.0800000" meMode="43" products="-4 3 4 2101"/> -</particle> - -<particle id="5132" name="Xi_b-" antiName="Xi_bbar+" spinType="2" chargeType="-3" colType="0" - m0="5.79110" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1080010" meMode="22" products="-12 11 4 3101"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="-12 11 2 3101"/> - <channel onMode="1" bRatio="0.1080000" meMode="22" products="-14 13 4 3101"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="-14 13 2 3101"/> - <channel onMode="1" bRatio="0.0250000" meMode="22" products="-16 15 4 3101"/> - <channel onMode="1" bRatio="0.0010000" meMode="22" products="-16 15 4 3101"/> - <channel onMode="1" bRatio="0.0010000" products="443 3312"/> - <channel onMode="1" bRatio="0.0004370" products="100443 3312"/> - <channel onMode="1" bRatio="0.0004710" products="20443 3312"/> - <channel onMode="1" bRatio="0.0000900" products="445 3312"/> - <channel onMode="1" bRatio="0.0004900" products="441 3312"/> - <channel onMode="1" bRatio="0.0015000" products="443 3314"/> - <channel onMode="1" bRatio="0.0006560" products="100443 3314"/> - <channel onMode="1" bRatio="0.0007060" products="20443 3314"/> - <channel onMode="1" bRatio="0.0001350" products="445 3314"/> - <channel onMode="1" bRatio="0.0007350" products="441 3314"/> - <channel onMode="1" bRatio="0.0012000" products="443 -321 3122"/> - <channel onMode="1" bRatio="0.0005240" products="100443 -321 3122"/> - <channel onMode="1" bRatio="0.0005650" products="20443 -321 3122"/> - <channel onMode="1" bRatio="0.0001080" products="445 -321 3122"/> - <channel onMode="1" bRatio="0.0005880" products="441 -321 3122"/> - <channel onMode="1" bRatio="0.0006000" products="443 -311 3112"/> - <channel onMode="1" bRatio="0.0002620" products="100443 -311 3112"/> - <channel onMode="1" bRatio="0.0002830" products="20443 -311 3112"/> - <channel onMode="1" bRatio="0.0000540" products="445 -311 3112"/> - <channel onMode="1" bRatio="0.0002940" products="441 -311 3112"/> - <channel onMode="1" bRatio="0.0038200" meMode="43" products="443 3 3101"/> - <channel onMode="1" bRatio="0.0016690" meMode="43" products="100443 3 3101"/> - <channel onMode="1" bRatio="0.0017990" meMode="43" products="20443 3 3101"/> - <channel onMode="1" bRatio="0.0003440" meMode="43" products="445 3 3101"/> - <channel onMode="1" bRatio="0.0018720" meMode="43" products="441 3 3101"/> - <channel onMode="1" bRatio="0.1096770" meMode="22" products="-2 1 4 3101"/> - <channel onMode="1" bRatio="0.2632250" meMode="22" products="-2 4 1 3101"/> - <channel onMode="1" bRatio="0.0658060" meMode="42" products="-2 1 4 3101"/> - <channel onMode="1" bRatio="0.0000000" meMode="42" products="-2 4 1 3101"/> - <channel onMode="1" bRatio="0.0057720" meMode="22" products="-2 3 4 3101"/> - <channel onMode="1" bRatio="0.0138540" meMode="22" products="-2 4 3 3101"/> - <channel onMode="1" bRatio="0.0034630" meMode="42" products="-2 3 4 3101"/> - <channel onMode="1" bRatio="0.0000000" meMode="42" products="-2 4 3 3101"/> - <channel onMode="1" bRatio="0.0090000" meMode="22" products="-2 1 2 3101"/> - <channel onMode="1" bRatio="0.0060000" meMode="22" products="-2 2 1 3101"/> - <channel onMode="1" bRatio="0.0230000" meMode="63" products="-431 4 3101"/> - <channel onMode="1" bRatio="0.0230000" meMode="63" products="-433 4 3101"/> - <channel onMode="1" bRatio="0.0130000" products="-431 4132"/> - <channel onMode="1" bRatio="0.0090000" products="-431 4314"/> - <channel onMode="1" bRatio="0.0090000" products="-433 4132"/> - <channel onMode="1" bRatio="0.0230000" products="-433 4314"/> - <channel onMode="1" bRatio="0.0080000" meMode="22" products="-421 -321 4 3101"/> - <channel onMode="1" bRatio="0.0080000" meMode="22" products="-411 -311 4 3101"/> - <channel onMode="1" bRatio="0.0320000" meMode="22" products="-423 -321 4 3101"/> - <channel onMode="1" bRatio="0.0320000" meMode="22" products="-413 -311 4 3101"/> - <channel onMode="1" bRatio="0.0770000" meMode="42" products="4122 -2203 3101"/> -</particle> - -<!-- -<particle id="5142" name="Xi_bc0" antiName="Xi_bcbar0" spinType="2" chargeType="0" colType="0" - m0="7.00575" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5201" name="bu_0" antiName="bu_0bar" spinType="1" chargeType="1" colType="-1" - m0="5.38897"> -</particle> ---> - -<!-- -<particle id="5203" name="bu_1" antiName="bu_1bar" spinType="3" chargeType="1" colType="-1" - m0="5.40145"> -</particle> ---> - -<!-- -<particle id="5212" name="Sigma_b0" antiName="Sigma_bbar0" spinType="2" chargeType="0" colType="0" - m0="5.80000"> - <channel onMode="1" bRatio="1.0000000" products="5122 111"/> -</particle> ---> - -<!-- -<particle id="5214" name="Sigma*_b0" antiName="Sigma*_bbar0" spinType="4" chargeType="0" colType="0" - m0="5.81000"> - <channel onMode="1" bRatio="1.0000000" products="5122 111"/> -</particle> ---> - -<particle id="5222" name="Sigma_b+" antiName="Sigma_bbar-" spinType="2" chargeType="3" colType="0" - m0="5.81130"> - <channel onMode="1" bRatio="1.0000000" products="5122 211"/> -</particle> - -<!-- -<particle id="5224" name="Sigma*_b+" antiName="Sigma*_bbar-" spinType="4" chargeType="3" colType="0" - m0="5.83210"> - <channel onMode="1" bRatio="1.0000000" products="5122 211"/> -</particle> ---> - -<particle id="5232" name="Xi_b0" antiName="Xi_bbar0" spinType="2" chargeType="0" colType="0" - m0="5.78800" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1080010" meMode="22" products="-12 11 4 3201"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="-12 11 2 3201"/> - <channel onMode="1" bRatio="0.1080000" meMode="22" products="-14 13 4 3201"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="-14 13 2 3201"/> - <channel onMode="1" bRatio="0.0250000" meMode="22" products="-16 15 4 3201"/> - <channel onMode="1" bRatio="0.0010000" meMode="22" products="-16 15 4 3201"/> - <channel onMode="1" bRatio="0.0010000" products="443 3322"/> - <channel onMode="1" bRatio="0.0004370" products="100443 3322"/> - <channel onMode="1" bRatio="0.0004710" products="20443 3322"/> - <channel onMode="1" bRatio="0.0000900" products="445 3322"/> - <channel onMode="1" bRatio="0.0004900" products="441 3322"/> - <channel onMode="1" bRatio="0.0015000" products="443 3324"/> - <channel onMode="1" bRatio="0.0006560" products="100443 3324"/> - <channel onMode="1" bRatio="0.0007060" products="20443 3324"/> - <channel onMode="1" bRatio="0.0001350" products="445 3324"/> - <channel onMode="1" bRatio="0.0007350" products="441 3324"/> - <channel onMode="1" bRatio="0.0012000" products="443 -321 3222"/> - <channel onMode="1" bRatio="0.0005240" products="100443 -321 3222"/> - <channel onMode="1" bRatio="0.0005650" products="20443 -321 3222"/> - <channel onMode="1" bRatio="0.0001080" products="445 -321 3222"/> - <channel onMode="1" bRatio="0.0005880" products="441 -321 3222"/> - <channel onMode="1" bRatio="0.0006000" products="443 -311 3212"/> - <channel onMode="1" bRatio="0.0002620" products="100443 -311 3212"/> - <channel onMode="1" bRatio="0.0002830" products="20443 -311 3212"/> - <channel onMode="1" bRatio="0.0000540" products="445 -311 3212"/> - <channel onMode="1" bRatio="0.0002940" products="441 -311 3212"/> - <channel onMode="1" bRatio="0.0038200" meMode="43" products="443 3 3201"/> - <channel onMode="1" bRatio="0.0016690" meMode="43" products="100443 3 3201"/> - <channel onMode="1" bRatio="0.0017990" meMode="43" products="20443 3 3201"/> - <channel onMode="1" bRatio="0.0003440" meMode="43" products="445 3 3201"/> - <channel onMode="1" bRatio="0.0018720" meMode="43" products="441 3 3201"/> - <channel onMode="1" bRatio="0.1096770" meMode="22" products="-2 1 4 3201"/> - <channel onMode="1" bRatio="0.2632250" meMode="22" products="-2 4 1 3201"/> - <channel onMode="1" bRatio="0.0658060" meMode="42" products="-2 1 4 3201"/> - <channel onMode="1" bRatio="0.0000000" meMode="42" products="-2 4 1 3201"/> - <channel onMode="1" bRatio="0.0057720" meMode="22" products="-2 3 4 3201"/> - <channel onMode="1" bRatio="0.0138540" meMode="22" products="-2 4 3 3201"/> - <channel onMode="1" bRatio="0.0034630" meMode="42" products="-2 3 4 3201"/> - <channel onMode="1" bRatio="0.0000000" meMode="42" products="-2 4 3 3201"/> - <channel onMode="1" bRatio="0.0090000" meMode="22" products="-2 1 2 3201"/> - <channel onMode="1" bRatio="0.0060000" meMode="22" products="-2 2 1 3201"/> - <channel onMode="1" bRatio="0.0230000" meMode="63" products="-431 4 3201"/> - <channel onMode="1" bRatio="0.0230000" meMode="63" products="-433 4 3201"/> - <channel onMode="1" bRatio="0.0130000" products="-431 4232"/> - <channel onMode="1" bRatio="0.0090000" products="-431 4324"/> - <channel onMode="1" bRatio="0.0090000" products="-433 4232"/> - <channel onMode="1" bRatio="0.0230000" products="-433 4324"/> - <channel onMode="1" bRatio="0.0080000" meMode="22" products="-421 -321 4 3201"/> - <channel onMode="1" bRatio="0.0080000" meMode="22" products="-411 -311 4 3201"/> - <channel onMode="1" bRatio="0.0320000" meMode="22" products="-423 -321 4 3201"/> - <channel onMode="1" bRatio="0.0320000" meMode="22" products="-413 -311 4 3201"/> - <channel onMode="1" bRatio="0.0770000" meMode="42" products="4122 -2203 3201"/> -</particle> - -<!-- -<particle id="5242" name="Xi_bc+" antiName="Xi_bcbar-" spinType="2" chargeType="3" colType="0" - m0="7.00575" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5301" name="bs_0" antiName="bs_0bar" spinType="1" chargeType="-2" colType="-1" - m0="5.56725"> -</particle> ---> - -<!-- -<particle id="5303" name="bs_1" antiName="bs_1bar" spinType="3" chargeType="-2" colType="-1" - m0="5.57536"> -</particle> ---> - -<!-- -<particle id="5312" name="Xi'_b-" antiName="Xi'_bbar+" spinType="2" chargeType="-3" colType="0" - m0="5.96000"> - <channel onMode="1" bRatio="1.0000000" products="5132 22"/> -</particle> ---> - -<!-- -<particle id="5314" name="Xi*_b-" antiName="Xi*_bbar+" spinType="4" chargeType="-3" colType="0" - m0="5.97000"> - <channel onMode="1" bRatio="1.0000000" products="5132 22"/> -</particle> ---> - -<!-- -<particle id="5322" name="Xi'_b0" antiName="Xi'_bbar0" spinType="2" chargeType="0" colType="0" - m0="5.96000"> - <channel onMode="1" bRatio="1.0000000" products="5232 22"/> -</particle> ---> - -<!-- -<particle id="5324" name="Xi*_b0" antiName="Xi*_bbar0" spinType="4" chargeType="0" colType="0" - m0="5.97000"> - <channel onMode="1" bRatio="1.0000000" products="5232 22"/> -</particle> ---> - -<particle id="5332" name="Omega_b-" antiName="Omega_bbar+" spinType="2" chargeType="-3" colType="0" - m0="6.07000" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1080010" meMode="22" products="-12 11 4 3303"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="-12 11 2 3303"/> - <channel onMode="1" bRatio="0.1080000" meMode="22" products="-14 13 4 3303"/> - <channel onMode="1" bRatio="0.0020000" meMode="22" products="-14 13 2 3303"/> - <channel onMode="1" bRatio="0.0250000" meMode="22" products="-16 15 4 3303"/> - <channel onMode="1" bRatio="0.0010000" meMode="22" products="-16 15 4 3303"/> - <channel onMode="1" bRatio="0.0025000" products="443 3334"/> - <channel onMode="1" bRatio="0.0010930" products="100443 3334"/> - <channel onMode="1" bRatio="0.0011770" products="20443 3334"/> - <channel onMode="1" bRatio="0.0002250" products="445 3334"/> - <channel onMode="1" bRatio="0.0012250" products="441 3334"/> - <channel onMode="1" bRatio="0.0012000" products="443 -321 3322"/> - <channel onMode="1" bRatio="0.0005240" products="100443 -321 3322"/> - <channel onMode="1" bRatio="0.0005650" products="20443 -321 3322"/> - <channel onMode="1" bRatio="0.0001080" products="445 -321 3322"/> - <channel onMode="1" bRatio="0.0005880" products="441 -321 3322"/> - <channel onMode="1" bRatio="0.0006000" products="443 -311 3312"/> - <channel onMode="1" bRatio="0.0002620" products="100443 -311 3312"/> - <channel onMode="1" bRatio="0.0002830" products="20443 -311 3312"/> - <channel onMode="1" bRatio="0.0000540" products="445 -311 3312"/> - <channel onMode="1" bRatio="0.0002940" products="441 -311 3312"/> - <channel onMode="1" bRatio="0.0038200" meMode="43" products="443 3 3303"/> - <channel onMode="1" bRatio="0.0016690" meMode="43" products="100443 3 3303"/> - <channel onMode="1" bRatio="0.0017990" meMode="43" products="20443 3 3303"/> - <channel onMode="1" bRatio="0.0003440" meMode="43" products="445 3 3303"/> - <channel onMode="1" bRatio="0.0018720" meMode="43" products="441 3 3303"/> - <channel onMode="1" bRatio="0.1096770" meMode="22" products="-2 1 4 3303"/> - <channel onMode="1" bRatio="0.2632250" meMode="22" products="-2 4 1 3303"/> - <channel onMode="1" bRatio="0.0658060" meMode="42" products="-2 1 4 3303"/> - <channel onMode="1" bRatio="0.0000000" meMode="42" products="-2 4 1 3303"/> - <channel onMode="1" bRatio="0.0057720" meMode="22" products="-2 3 4 3303"/> - <channel onMode="1" bRatio="0.0138540" meMode="22" products="-2 4 3 3303"/> - <channel onMode="1" bRatio="0.0034630" meMode="42" products="-2 3 4 3303"/> - <channel onMode="1" bRatio="0.0000000" meMode="42" products="-2 4 3 3303"/> - <channel onMode="1" bRatio="0.0090000" meMode="22" products="-2 1 2 3303"/> - <channel onMode="1" bRatio="0.0060000" meMode="22" products="-2 2 1 3303"/> - <channel onMode="1" bRatio="0.0230000" meMode="63" products="-431 4 3303"/> - <channel onMode="1" bRatio="0.0230000" meMode="63" products="-433 4 3303"/> - <channel onMode="1" bRatio="0.0130000" products="-431 4332"/> - <channel onMode="1" bRatio="0.0090000" products="-431 4334"/> - <channel onMode="1" bRatio="0.0090000" products="-433 4332"/> - <channel onMode="1" bRatio="0.0230000" products="-433 4334"/> - <channel onMode="1" bRatio="0.0080000" meMode="22" products="-421 -321 4 3303"/> - <channel onMode="1" bRatio="0.0080000" meMode="22" products="-411 -311 4 3303"/> - <channel onMode="1" bRatio="0.0320000" meMode="22" products="-423 -321 4 3303"/> - <channel onMode="1" bRatio="0.0320000" meMode="22" products="-413 -311 4 3303"/> - <channel onMode="1" bRatio="0.0770000" meMode="42" products="4122 -2203 3303"/> -</particle> - -<!-- -<particle id="5334" name="Omega*_b-" antiName="Omega*_bbar+" spinType="4" chargeType="-3" colType="0" - m0="6.13000"> - <channel onMode="1" bRatio="1.0000000" products="5332 22"/> -</particle> ---> - -<!-- -<particle id="5342" name="Omega_bc0" antiName="Omega_bcbar0" spinType="2" chargeType="0" colType="0" - m0="7.19099" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5401" name="bc_0" antiName="bc_0bar" spinType="1" chargeType="1" colType="-1" - m0="6.67143"> -</particle> ---> - -<!-- -<particle id="5403" name="bc_1" antiName="bc_1bar" spinType="3" chargeType="1" colType="-1" - m0="6.67397"> -</particle> ---> - -<!-- -<particle id="5412" name="Xi'_bc0" antiName="Xi'_bcbar0" spinType="2" chargeType="0" colType="0" - m0="7.03724" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5414" name="Xi*_bc0" antiName="Xi*_bcbar0" spinType="4" chargeType="0" colType="0" - m0="7.04850" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5422" name="Xi'_bc+" antiName="Xi'_bcbar-" spinType="2" chargeType="3" colType="0" - m0="7.03724" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5424" name="Xi*_bc+" antiName="Xi*_bcbar-" spinType="4" chargeType="3" colType="0" - m0="7.04850" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5432" name="Omega'_bc0" antiName="Omega'_bcbar0" spinType="2" chargeType="0" colType="0" - m0="7.21101" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5434" name="Omega*_bc0" antiName="Omega*_bcbar0" spinType="4" chargeType="0" colType="0" - m0="7.21900" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5442" name="Omega_bcc+" antiName="Omega_bccbar-" spinType="2" chargeType="3" colType="0" - m0="8.30945" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5444" name="Omega*_bcc+" antiName="Omega*_bccbar-" spinType="4" chargeType="3" colType="0" - m0="8.31325" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5503" name="bb_1" antiName="bb_1bar" spinType="3" chargeType="-2" colType="-1" - m0="10.07354"> -</particle> ---> - -<!-- -<particle id="5512" name="Xi_bb-" antiName="Xi_bbbar+" spinType="2" chargeType="-3" colType="0" - m0="10.42272" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5514" name="Xi*_bb-" antiName="Xi*_bbbar+" spinType="4" chargeType="-3" colType="0" - m0="10.44144" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5522" name="Xi_bb0" antiName="Xi_bbbar0" spinType="2" chargeType="0" colType="0" - m0="10.42272" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5524" name="Xi*_bb0" antiName="Xi*_bbbar0" spinType="4" chargeType="0" colType="0" - m0="10.44144" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5532" name="Omega_bb-" antiName="Omega_bbbar+" spinType="2" chargeType="-3" colType="0" - m0="10.60209" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5534" name="Omega*_bb-" antiName="Omega*_bbbar+" spinType="4" chargeType="-3" colType="0" - m0="10.61426" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5542" name="Omega_bbc0" antiName="Omega_bbcbar0" spinType="2" chargeType="0" colType="0" - m0="11.70767" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5544" name="Omega*_bbc0" antiName="Omega*_bbcbar0" spinType="4" chargeType="0" colType="0" - m0="11.71147" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="5554" name="Omega*_bbb-" antiName="Omega*_bbbbar+" spinType="4" chargeType="-3" colType="0" - m0="15.11061" tau0="3.64000e-01"> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-12 11 4 81"/> - <channel onMode="1" bRatio="0.1050000" meMode="22" products="-14 13 4 81"/> - <channel onMode="1" bRatio="0.0400000" meMode="22" products="-16 15 4 81"/> - <channel onMode="1" bRatio="0.5000000" meMode="22" products="-2 1 4 81"/> - <channel onMode="1" bRatio="0.0800000" meMode="22" products="-2 4 1 81"/> - <channel onMode="1" bRatio="0.1400000" meMode="22" products="-4 3 4 81"/> - <channel onMode="1" bRatio="0.0100000" meMode="22" products="-4 4 3 81"/> - <channel onMode="1" bRatio="0.0150000" meMode="22" products="-2 1 2 81"/> - <channel onMode="1" bRatio="0.0050000" meMode="22" products="-4 3 2 81"/> -</particle> ---> - -<!-- -<particle id="10111" name="a_0(1450)0" spinType="1" chargeType="0" colType="0" - m0="1.47400" mWidth="0.26500" mMin="1.00000" mMax="2.00000"> - <channel onMode="1" bRatio="0.3000000" products="111 221"/> - <channel onMode="1" bRatio="0.1000000" products="111 331"/> - <channel onMode="1" bRatio="0.1200000" products="321 -321"/> - <channel onMode="1" bRatio="0.0600000" products="130 130"/> - <channel onMode="1" bRatio="0.0600000" products="310 310"/> - <channel onMode="1" bRatio="0.1800000" products="223 211 -211"/> - <channel onMode="1" bRatio="0.1800000" products="223 111 111"/> -</particle> - -<particle id="10113" name="b_1(1235)0" spinType="3" chargeType="0" colType="0" - m0="1.22950" mWidth="0.14200" mMin="0.95000" mMax="1.70000"> - <channel onMode="1" bRatio="1.0000000" products="223 111"/> -</particle> - -<particle id="10211" name="a_0(1450)+" antiName="a_0(1450)-" spinType="1" chargeType="3" colType="0" - m0="1.47400" mWidth="0.26500" mMin="1.00000" mMax="2.00000"> - <channel onMode="1" bRatio="0.3000000" products="211 221"/> - <channel onMode="1" bRatio="0.1000000" products="211 331"/> - <channel onMode="1" bRatio="0.2400000" products="321 -311"/> - <channel onMode="1" bRatio="0.3600000" products="223 211 111"/> -</particle> - -<particle id="10213" name="b_1(1235)+" antiName="b_1(1235)-" spinType="3" chargeType="3" colType="0" - m0="1.22950" mWidth="0.14200" mMin="0.95000" mMax="1.70000"> - <channel onMode="1" bRatio="0.9984000" products="223 211"/> - <channel onMode="1" bRatio="0.0016000" products="211 22"/> -</particle> - -<particle id="10221" name="f_0(1370)" spinType="1" chargeType="0" colType="0" - m0="1.35000" mWidth="0.20000" mMin="1.00000" mMax="2.00000"> - <channel onMode="1" bRatio="0.2000000" products="113 111"/> - <channel onMode="1" bRatio="0.2000000" products="213 -213"/> - <channel onMode="1" bRatio="0.1000000" products="111 111 111 111"/> - <channel onMode="1" bRatio="0.2000000" products="211 -211"/> - <channel onMode="1" bRatio="0.1000000" products="111 111"/> - <channel onMode="1" bRatio="0.0500000" products="321 -321"/> - <channel onMode="1" bRatio="0.0250000" products="130 130"/> - <channel onMode="1" bRatio="0.0250000" products="310 310"/> - <channel onMode="1" bRatio="0.1000000" products="221 221"/> -</particle> - -<particle id="10223" name="h_1(1170)" spinType="3" chargeType="0" colType="0" - m0="1.17000" mWidth="0.36000" mMin="0.95000" mMax="2.00000"> - <channel onMode="1" bRatio="0.3330000" products="213 -211"/> - <channel onMode="1" bRatio="0.3340000" products="113 111"/> - <channel onMode="1" bRatio="0.3330000" products="-213 211"/> -</particle> - -<particle id="10311" name="K*_0(1430)0" antiName="K*_0(1430)bar0" spinType="1" chargeType="0" colType="0" - m0="1.43000" mWidth="0.27000" mMin="0.70000" mMax="2.20000"> - <channel onMode="1" bRatio="0.6670000" products="321 -211"/> - <channel onMode="1" bRatio="0.3330000" products="311 111"/> -</particle> - -<particle id="10313" name="K_1(1270)0" antiName="K_1(1270)bar0" spinType="3" chargeType="0" colType="0" - m0="1.27200" mWidth="0.09000" mMin="1.00000" mMax="2.00000"> - <channel onMode="1" bRatio="0.2886598" products="321 -213"/> - <channel onMode="1" bRatio="0.1443299" products="311 113"/> - <channel onMode="1" bRatio="0.1924399" products="10321 -211"/> - <channel onMode="1" bRatio="0.0962199" products="10311 111"/> - <channel onMode="1" bRatio="0.1099656" products="323 -211"/> - <channel onMode="1" bRatio="0.0549828" products="313 111"/> - <channel onMode="1" bRatio="0.1134021" products="311 223"/> -</particle> - -<particle id="10321" name="K*_0(1430)+" antiName="K*_0(1430)-" spinType="1" chargeType="3" colType="0" - m0="1.43000" mWidth="0.27000" mMin="0.70000" mMax="2.20000"> - <channel onMode="1" bRatio="0.6670000" products="311 211"/> - <channel onMode="1" bRatio="0.3330000" products="321 111"/> -</particle> - -<particle id="10323" name="K_1(1270)+" antiName="K_1(1270)-" spinType="3" chargeType="3" colType="0" - m0="1.27200" mWidth="0.09000" mMin="1.00000" mMax="2.00000"> - <channel onMode="1" bRatio="0.2886598" products="311 213"/> - <channel onMode="1" bRatio="0.1443299" products="321 113"/> - <channel onMode="1" bRatio="0.1924399" products="10311 211"/> - <channel onMode="1" bRatio="0.0962199" products="10321 111"/> - <channel onMode="1" bRatio="0.1099656" products="313 211"/> - <channel onMode="1" bRatio="0.0549828" products="323 111"/> - <channel onMode="1" bRatio="0.1134021" products="321 223"/> -</particle> - -<particle id="10331" name="f_0(1710)" spinType="1" chargeType="0" colType="0" - m0="1.72000" mWidth="0.13500" mMin="1.10000" mMax="2.40000"> - <channel onMode="1" bRatio="0.3000000" products="321 -321"/> - <channel onMode="1" bRatio="0.1500000" products="130 130"/> - <channel onMode="1" bRatio="0.1500000" products="310 310"/> - <channel onMode="1" bRatio="0.3000000" products="221 221"/> - <channel onMode="1" bRatio="0.0500000" products="211 -211"/> - <channel onMode="1" bRatio="0.0500000" products="111 111"/> -</particle> - -<particle id="10333" name="h_1(1380)" spinType="3" chargeType="0" colType="0" - m0="1.38600" mWidth="0.09100" mMin="1.38000" mMax="1.60000"> - <channel onMode="1" bRatio="0.2500000" products="313 -311"/> - <channel onMode="1" bRatio="0.2500000" products="-313 311"/> - <channel onMode="1" bRatio="0.2500000" products="323 -321"/> - <channel onMode="1" bRatio="0.2500000" products="-323 321"/> -</particle> - -<particle id="10411" name="D*_0+" antiName="D*_0-" spinType="1" chargeType="3" colType="0" - m0="2.31800" mWidth="0.27000" mMin="2.05000" mMax="2.50000"> - <channel onMode="1" bRatio="0.6670000" products="421 211"/> - <channel onMode="1" bRatio="0.3330000" products="411 111"/> -</particle> - -<particle id="10413" name="D_1+" antiName="D_1-" spinType="3" chargeType="3" colType="0" - m0="2.42400" mWidth="0.02000" mMin="2.22400" mMax="2.62400"> - <channel onMode="1" bRatio="0.6670000" products="423 211"/> - <channel onMode="1" bRatio="0.3330000" products="413 111"/> -</particle> - -<particle id="10421" name="D*_00" antiName="D*_0bar0" spinType="1" chargeType="0" colType="0" - m0="2.31800" mWidth="0.27000" mMin="2.05000" mMax="2.50000"> - <channel onMode="1" bRatio="0.6670000" products="411 -211"/> - <channel onMode="1" bRatio="0.3330000" products="421 111"/> -</particle> - -<particle id="10423" name="D_10" antiName="D_1bar0" spinType="3" chargeType="0" colType="0" - m0="2.42130" mWidth="0.02710" mMin="2.21830" mMax="2.62630"> - <channel onMode="1" bRatio="0.6670000" products="413 -211"/> - <channel onMode="1" bRatio="0.3330000" products="423 111"/> -</particle> - -<particle id="10431" name="D*_0s+" antiName="D*_0s-" spinType="1" chargeType="3" colType="0" - m0="2.31780" mWidth="0.02000" mMin="2.20000" mMax="2.44000"> - <channel onMode="1" bRatio="1.0000000" products="431 111"/> -</particle> - -<particle id="10433" name="D_1s+" antiName="D_1s-" spinType="3" chargeType="3" colType="0" - m0="2.53512" mWidth="0.00092" mMin="2.52512" mMax="2.54512"> - <channel onMode="1" bRatio="0.5000000" products="423 321"/> - <channel onMode="1" bRatio="0.5000000" products="413 311"/> -</particle> - -<particle id="10441" name="chi_0c" spinType="1" chargeType="0" colType="0" - m0="3.41475" mWidth="0.01040" mMin="3.31076" mMax="3.51876"> - <channel onMode="1" bRatio="0.0002600" products="22 22"/> - <channel onMode="1" bRatio="0.0021000" products="130 130"/> - <channel onMode="1" bRatio="0.0049000" products="211 -211"/> - <channel onMode="1" bRatio="0.0021000" products="221 221"/> - <channel onMode="1" bRatio="0.0021000" products="310 310"/> - <channel onMode="1" bRatio="0.0016000" products="313 -313"/> - <channel onMode="1" bRatio="0.0060000" products="321 -321"/> - <channel onMode="1" bRatio="0.0010000" products="333 333"/> - <channel onMode="1" bRatio="0.0200000" products="443 22"/> - <channel onMode="1" bRatio="0.0002200" products="2212 -2212"/> - <channel onMode="1" bRatio="0.0005000" products="3122 -3122"/> - <channel onMode="1" bRatio="0.0028000" products="9010221 9010221"/> - <channel onMode="1" bRatio="0.0100000" products="211 -211 113"/> - <channel onMode="1" bRatio="0.0100000" products="213 -211 111"/> - <channel onMode="1" bRatio="0.0100000" products="-213 211 111"/> - <channel onMode="1" bRatio="0.0032000" products="321 -313 -211"/> - <channel onMode="1" bRatio="0.0032000" products="-321 313 211"/> - <channel onMode="1" bRatio="0.0043000" products="323 311 -211"/> - <channel onMode="1" bRatio="0.0043000" products="-323 311 211"/> - <channel onMode="1" bRatio="0.0134000" products="211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0021000" products="321 321 -321 -321"/> - <channel onMode="1" bRatio="0.0153000" products="321 -321 211 -211"/> - <channel onMode="1" bRatio="0.0022000" products="2212 -2212 211 -211"/> - <channel onMode="1" bRatio="0.0098000" products="211 211 211 -211 -211 -211"/> - <channel onMode="1" bRatio="0.8686200" meMode="52" products="83 -83"/> -</particle> - -<particle id="10443" name="h_1c" spinType="3" chargeType="0" colType="0" - m0="3.52541" mWidth="0.01000" mMin="3.36000" mMax="3.56000"> - <channel onMode="1" bRatio="0.5000000" products="441 22"/> - <channel onMode="1" bRatio="0.0100000" products="443 111"/> - <channel onMode="1" bRatio="0.4900000" meMode="42" products="83 -83"/> -</particle> - -<particle id="10511" name="B*_00" antiName="B*_0bar0" spinType="1" chargeType="0" colType="0" - m0="5.68000" mWidth="0.05000" mMin="5.58000" mMax="5.78000"> - <channel onMode="1" bRatio="0.6670000" products="521 -211"/> - <channel onMode="1" bRatio="0.3330000" products="511 111"/> -</particle> - -<particle id="10513" name="B_10" antiName="B_1bar0" spinType="3" chargeType="0" colType="0" - m0="5.73000" mWidth="0.05000" mMin="5.63000" mMax="5.83000"> - <channel onMode="1" bRatio="0.6670000" products="523 -211"/> - <channel onMode="1" bRatio="0.3330000" products="513 111"/> -</particle> - -<particle id="10521" name="B*_0+" antiName="B*_0-" spinType="1" chargeType="3" colType="0" - m0="5.68000" mWidth="0.05000" mMin="5.58000" mMax="5.78000"> - <channel onMode="1" bRatio="0.6670000" products="511 211"/> - <channel onMode="1" bRatio="0.3330000" products="521 111"/> -</particle> - -<particle id="10523" name="B_1+" antiName="B_1-" spinType="3" chargeType="3" colType="0" - m0="5.73000" mWidth="0.05000" mMin="5.63000" mMax="5.83000"> - <channel onMode="1" bRatio="0.6670000" products="513 211"/> - <channel onMode="1" bRatio="0.3330000" products="523 111"/> -</particle> - -<particle id="10531" name="B*_0s0" antiName="B*_0sbar0" spinType="1" chargeType="0" colType="0" - m0="5.92000" mWidth="0.05000" mMin="5.82000" mMax="6.02000"> - <channel onMode="1" bRatio="0.5000000" products="521 -321"/> - <channel onMode="1" bRatio="0.5000000" products="511 -311"/> -</particle> - -<particle id="10533" name="B_1s0" antiName="B_1sbar0" spinType="3" chargeType="0" colType="0" - m0="5.82900" mWidth="0.05000" mMin="5.77900" mMax="5.87900"> - <channel onMode="1" bRatio="0.5000000" products="523 -321"/> - <channel onMode="1" bRatio="0.5000000" products="513 -311"/> -</particle> - -<particle id="10541" name="B*_0c+" antiName="B*_0c-" spinType="1" chargeType="3" colType="0" - m0="7.25000" mWidth="0.05000" mMin="7.20000" mMax="7.30000"> - <channel onMode="1" bRatio="0.5000000" products="511 411"/> - <channel onMode="1" bRatio="0.5000000" products="521 421"/> -</particle> - -<particle id="10543" name="B_1c+" antiName="B_1c-" spinType="3" chargeType="3" colType="0" - m0="7.30000" mWidth="0.05000" mMin="7.20000" mMax="7.40000"> - <channel onMode="1" bRatio="0.5000000" products="513 411"/> - <channel onMode="1" bRatio="0.5000000" products="523 421"/> -</particle> - -<particle id="10551" name="chi_0b" spinType="1" chargeType="0" colType="0" - m0="9.85940"> - <channel onMode="1" bRatio="0.9800000" meMode="91" products="21 21"/> - <channel onMode="1" bRatio="0.0200000" products="553 22"/> -</particle> - -<particle id="10553" name="h_1b" spinType="3" chargeType="0" colType="0" - m0="9.89860" mWidth="0.01000" mMin="9.85500" mMax="9.89500"> - <channel onMode="1" bRatio="1.0000000" meMode="91" products="21 21"/> -</particle> ---> - -<particle id="13122" name="Lambda(1405)0" antiName="Lambda(1405)bar0" spinType="2" chargeType="0" colType="0" - m0="1.40510" mWidth="0.05000" mMin="1.32000" mMax="1.80000"> - <channel onMode="1" bRatio="0.3333000" products="3222 -211"/> - <channel onMode="1" bRatio="0.3333000" products="3112 211"/> - <channel onMode="1" bRatio="0.3334000" products="3212 111"/> -</particle> -<!-- -<particle id="14122" name="Lambda_c(2593)+" antiName="Lambda_c(2593)-" spinType="2" chargeType="3" colType="0" - m0="2.59225" mWidth="0.00260" mMin="2.57000" mMax="2.63000"> - <channel onMode="1" bRatio="0.2400000" products="4222 -211"/> - <channel onMode="1" bRatio="0.2400000" products="4112 211"/> - <channel onMode="1" bRatio="0.1800000" products="4122 211 -211"/> - <channel onMode="1" bRatio="0.2400000" products="4212 111"/> - <channel onMode="1" bRatio="0.0900000" products="4122 111 111"/> - <channel onMode="1" bRatio="0.0100000" products="4122 22"/> -</particle> - -<particle id="20113" name="a_1(1260)0" spinType="3" chargeType="0" colType="0" - m0="1.23000" mWidth="0.42000" mMin="0.93000" mMax="2.00000"> - <channel onMode="1" bRatio="0.3300000" products="213 -211"/> - <channel onMode="1" bRatio="0.3300000" products="-213 211"/> - <channel onMode="1" bRatio="0.3400000" products="113 111"/> -</particle> - -<particle id="20213" name="a_1(1260)+" antiName="a_1(1260)-" spinType="3" chargeType="3" colType="0" - m0="1.23000" mWidth="0.42000" mMin="0.93000" mMax="2.00000"> - <channel onMode="1" bRatio="0.5000000" products="113 211"/> - <channel onMode="1" bRatio="0.5000000" products="213 111"/> -</particle> - -<particle id="20223" name="f_1(1285)" spinType="3" chargeType="0" colType="0" - m0="1.28210" mWidth="0.02420" mMin="1.20000" mMax="1.50000"> - <channel onMode="1" bRatio="0.1200000" products="9000211 -211"/> - <channel onMode="1" bRatio="0.1200000" products="9000111 111"/> - <channel onMode="1" bRatio="0.1200000" products="-9000211 211"/> - <channel onMode="1" bRatio="0.0800000" products="221 211 -211"/> - <channel onMode="1" bRatio="0.0800000" products="221 111 111"/> - <channel onMode="1" bRatio="0.1100000" products="113 211 -211"/> - <channel onMode="1" bRatio="0.0740000" products="213 -211 111"/> - <channel onMode="1" bRatio="0.0740000" products="113 111 111"/> - <channel onMode="1" bRatio="0.0740000" products="-213 211 111"/> - <channel onMode="1" bRatio="0.0230000" products="321 -321 111"/> - <channel onMode="1" bRatio="0.0230000" products="321 -311 -211"/> - <channel onMode="1" bRatio="0.0230000" products="311 -311 111"/> - <channel onMode="1" bRatio="0.0230000" products="311 -321 211"/> - <channel onMode="1" bRatio="0.0552600" products="113 22"/> - <channel onMode="1" bRatio="0.0007400" products="333 22"/> -</particle> - -<particle id="20313" name="K_1(1400)0" antiName="K_1(1400)bar0" spinType="3" chargeType="0" colType="0" - m0="1.40300" mWidth="0.17400" mMin="1.10000" mMax="2.00000"> - <channel onMode="1" bRatio="0.6270000" products="323 -211"/> - <channel onMode="1" bRatio="0.3130000" products="313 111"/> - <channel onMode="1" bRatio="0.0200000" products="321 -213"/> - <channel onMode="1" bRatio="0.0100000" products="311 113"/> - <channel onMode="1" bRatio="0.0200000" products="311 10221"/> - <channel onMode="1" bRatio="0.0100000" products="311 223"/> -</particle> - -<particle id="20323" name="K_1(1400)+" antiName="K_1(1400)-" spinType="3" chargeType="3" colType="0" - m0="1.40300" mWidth="0.17400" mMin="1.10000" mMax="2.00000"> - <channel onMode="1" bRatio="0.6270000" products="313 211"/> - <channel onMode="1" bRatio="0.3130000" products="323 111"/> - <channel onMode="1" bRatio="0.0200000" products="311 213"/> - <channel onMode="1" bRatio="0.0100000" products="321 113"/> - <channel onMode="1" bRatio="0.0200000" products="321 10221"/> - <channel onMode="1" bRatio="0.0100000" products="321 223"/> -</particle> - -<particle id="20333" name="f_1(1420)" spinType="3" chargeType="0" colType="0" - m0="1.42640" mWidth="0.05490" mMin="1.40000" mMax="1.80000"> - <channel onMode="1" bRatio="0.2500000" products="313 -311"/> - <channel onMode="1" bRatio="0.2500000" products="-313 311"/> - <channel onMode="1" bRatio="0.2500000" products="323 -321"/> - <channel onMode="1" bRatio="0.2500000" products="-323 321"/> -</particle> - -<particle id="20413" name="D*_1+" antiName="D*_1-" spinType="3" chargeType="3" colType="0" - m0="2.42700" mWidth="0.38400" mMin="2.15000" mMax="3.00000"> - <channel onMode="1" bRatio="0.6670000" products="423 211"/> - <channel onMode="1" bRatio="0.3330000" products="413 111"/> -</particle> - -<particle id="20423" name="D*_10" antiName="D*_1bar0" spinType="3" chargeType="0" colType="0" - m0="2.42700" mWidth="0.38400" mMin="2.15000" mMax="3.00000"> - <channel onMode="1" bRatio="0.6670000" products="413 -211"/> - <channel onMode="1" bRatio="0.3330000" products="423 111"/> -</particle> - -<particle id="20433" name="D*_1s+" antiName="D*_1s-" spinType="3" chargeType="3" colType="0" - m0="2.45960" mWidth="0.03000" mMin="2.40000" mMax="2.60000"> - <channel onMode="1" bRatio="0.7600000" products="433 111"/> - <channel onMode="1" bRatio="0.2400000" products="433 22"/> -</particle> - -<particle id="20443" name="chi_1c" spinType="3" chargeType="0" colType="0" - m0="3.51066" mWidth="0.00086" mMin="3.50176" mMax="3.51956"> - <channel onMode="1" bRatio="0.3560000" products="443 22"/> - <channel onMode="1" bRatio="0.0000100" products="130 130"/> - <channel onMode="1" bRatio="0.0000100" products="310 310"/> - <channel onMode="1" bRatio="0.0016000" products="313 -313"/> - <channel onMode="1" bRatio="0.0000720" products="2212 -2212"/> - <channel onMode="1" bRatio="0.0003000" products="3122 -3122"/> - <channel onMode="1" bRatio="0.0020000" products="211 -211 113"/> - <channel onMode="1" bRatio="0.0020000" products="213 -211 111"/> - <channel onMode="1" bRatio="0.0020000" products="-213 211 111"/> - <channel onMode="1" bRatio="0.0025000" products="321 311 -211"/> - <channel onMode="1" bRatio="0.0002000" products="321 -313 -211"/> - <channel onMode="1" bRatio="0.0025000" products="-321 311 211"/> - <channel onMode="1" bRatio="0.0002000" products="-321 313 211"/> - <channel onMode="1" bRatio="0.0009000" products="323 311 -211"/> - <channel onMode="1" bRatio="0.0009000" products="-323 311 211"/> - <channel onMode="1" bRatio="0.0062000" products="211 211 -211 -211"/> - <channel onMode="1" bRatio="0.0008000" products="310 310 211 -211"/> - <channel onMode="1" bRatio="0.0004000" products="321 321 -321 -321"/> - <channel onMode="1" bRatio="0.0038000" products="321 -321 211 -211"/> - <channel onMode="1" bRatio="0.0003000" products="321 -321 310 310"/> - <channel onMode="1" bRatio="0.0005000" products="2212 -2212 211 -211"/> - <channel onMode="1" bRatio="0.0058000" products="211 211 211 -211 -211 -211"/> - <channel onMode="1" bRatio="0.6110080" meMode="52" products="83 -83"/> -</particle> - -<particle id="20513" name="B*_10" antiName="B*_1bar0" spinType="3" chargeType="0" colType="0" - m0="5.78000" mWidth="0.05000" mMin="5.68000" mMax="5.88000"> - <channel onMode="1" bRatio="0.6670000" products="523 -211"/> - <channel onMode="1" bRatio="0.3330000" products="513 111"/> -</particle> - -<particle id="20523" name="B*_1+" antiName="B*_1-" spinType="3" chargeType="3" colType="0" - m0="5.78000" mWidth="0.05000" mMin="5.68000" mMax="5.88000"> - <channel onMode="1" bRatio="0.6670000" products="513 211"/> - <channel onMode="1" bRatio="0.3330000" products="523 111"/> -</particle> - -<particle id="20533" name="B*_1s0" antiName="B*_1sbar0" spinType="3" chargeType="0" colType="0" - m0="6.02000" mWidth="0.05000" mMin="5.92000" mMax="6.12000"> - <channel onMode="1" bRatio="0.5000000" products="523 -321"/> - <channel onMode="1" bRatio="0.5000000" products="513 -311"/> -</particle> - -<particle id="20543" name="B*_1c+" antiName="B*_1c-" spinType="3" chargeType="3" colType="0" - m0="7.30000" mWidth="0.05000" mMin="7.20000" mMax="7.40000"> - <channel onMode="1" bRatio="0.5000000" products="513 411"/> - <channel onMode="1" bRatio="0.5000000" products="523 421"/> -</particle> - -<particle id="20553" name="chi_1b" spinType="3" chargeType="0" colType="0" - m0="9.89280"> - <channel onMode="1" bRatio="0.3500000" products="553 22"/> - <channel onMode="1" bRatio="0.6500000" meMode="91" products="21 21"/> -</particle> - -<particle id="23122" name="Lambda(1600)0" antiName="Lambda(1600)bar0" spinType="2" chargeType="0" colType="0" - m0="1.60000" mWidth="0.15000" mMin="1.42000" mMax="2.20000"> - <channel onMode="1" bRatio="0.1760000" products="2212 -321"/> - <channel onMode="1" bRatio="0.1760000" products="2112 -311"/> - <channel onMode="1" bRatio="0.2160000" products="3222 -211"/> - <channel onMode="1" bRatio="0.2160000" products="3112 211"/> - <channel onMode="1" bRatio="0.2160000" products="3212 111"/> -</particle> - -<particle id="30313" name="K*(1680)0" antiName="K*(1680)bar0" spinType="3" chargeType="0" colType="0" - m0="1.71700" mWidth="0.32000" mMin="1.05000" mMax="2.50000"> - <channel onMode="1" bRatio="0.2580000" products="321 -211"/> - <channel onMode="1" bRatio="0.1290000" products="311 111"/> - <channel onMode="1" bRatio="0.2093000" products="323 -211"/> - <channel onMode="1" bRatio="0.1047000" products="313 111"/> - <channel onMode="1" bRatio="0.1993000" products="-213 321"/> - <channel onMode="1" bRatio="0.0997000" products="113 311"/> -</particle> - -<particle id="30323" name="K*(1680)+" antiName="K*(1680)-" spinType="3" chargeType="3" colType="0" - m0="1.71700" mWidth="0.32000" mMin="1.05000" mMax="2.50000"> - <channel onMode="1" bRatio="0.2580000" products="311 211"/> - <channel onMode="1" bRatio="0.1290000" products="321 111"/> - <channel onMode="1" bRatio="0.2093000" products="313 211"/> - <channel onMode="1" bRatio="0.1047000" products="323 111"/> - <channel onMode="1" bRatio="0.1993000" products="213 311"/> - <channel onMode="1" bRatio="0.0997000" products="113 321"/> -</particle> - -<particle id="30443" name="psi(3770)" spinType="3" chargeType="0" colType="0" - m0="3.77315" mWidth="0.02720" mMin="3.54110" mMax="4.00110"> - <channel onMode="1" bRatio="0.4243000" products="411 -411"/> - <channel onMode="1" bRatio="0.5723000" products="421 -421"/> - <channel onMode="1" bRatio="0.0034000" products="443 211 -211"/> -</particle> - -<particle id="33122" name="Lambda(1670)0" antiName="Lambda(1670)bar0" spinType="2" chargeType="0" colType="0" - m0="1.67000" mWidth="0.03500" mMin="1.42000" mMax="2.00000"> - <channel onMode="1" bRatio="0.1000000" products="2212 -321"/> - <channel onMode="1" bRatio="0.1000000" products="2112 -311"/> - <channel onMode="1" bRatio="0.1600000" products="3222 -211"/> - <channel onMode="1" bRatio="0.1600000" products="3112 211"/> - <channel onMode="1" bRatio="0.1600000" products="3212 111"/> - <channel onMode="1" bRatio="0.3200000" products="3122 221"/> -</particle> - -<particle id="100113" name="rho(1450)0" spinType="3" chargeType="0" colType="0" - m0="1.46500" mWidth="0.40000" mMin="1.00000" mMax="2.20000"> - <channel onMode="1" bRatio="0.4000000" products="211 -211"/> - <channel onMode="1" bRatio="0.3500000" products="211 -211 211 -211"/> - <channel onMode="1" bRatio="0.1500000" products="211 -211 111 111"/> - <channel onMode="1" bRatio="0.1000000" products="111 111 111 111"/> -</particle> - -<particle id="100213" name="rho(1450)+" antiName="rho(1450)-" spinType="3" chargeType="3" colType="0" - m0="1.46500" mWidth="0.40000" mMin="1.00000" mMax="2.20000"> - <channel onMode="1" bRatio="0.4000000" products="211 111"/> - <channel onMode="1" bRatio="0.4000000" products="211 211 -211 111"/> - <channel onMode="1" bRatio="0.2000000" products="211 111 111 111"/> -</particle> - -<particle id="100441" name="eta_c(2S)" spinType="1" chargeType="0" colType="0" - m0="3.63890" mWidth="0.01000" mMin="3.49800" mMax="3.77800"> - <channel onMode="1" bRatio="0.0190000" products="321 -311 -211"/> - <channel onMode="1" bRatio="0.0190000" products="-321 311 211"/> - <channel onMode="1" bRatio="0.0095000" products="111 321 -321"/> - <channel onMode="1" bRatio="0.0095000" products="311 -311 111"/> - <channel onMode="1" bRatio="0.9430000" meMode="52" products="83 -83"/> -</particle> - -<particle id="100443" name="psi(2S)" spinType="3" chargeType="0" colType="0" - m0="3.68611" mWidth="0.00030" mMin="3.68269" mMax="3.68949"> - <channel onMode="1" bRatio="0.0073500" products="11 -11"/> - <channel onMode="1" bRatio="0.0073000" products="13 -13"/> - <channel onMode="1" bRatio="0.0028000" products="15 -15"/> - <channel onMode="1" bRatio="0.0000080" products="113 111"/> - <channel onMode="1" bRatio="0.0000800" products="211 -211"/> - <channel onMode="1" bRatio="0.0000080" products="213 -211"/> - <channel onMode="1" bRatio="0.0000080" products="-213 211"/> - <channel onMode="1" bRatio="0.0000300" products="221 113"/> - <channel onMode="1" bRatio="0.0000250" products="223 111"/> - <channel onMode="1" bRatio="0.0000010" products="223 221"/> - <channel onMode="1" bRatio="0.0002100" products="225 22"/> - <channel onMode="1" bRatio="0.0000520" products="310 130"/> - <channel onMode="1" bRatio="0.0000460" products="313 311"/> - <channel onMode="1" bRatio="0.0000460" products="-313 311"/> - <channel onMode="1" bRatio="0.0001000" products="321 -321"/> - <channel onMode="1" bRatio="0.0000065" products="323 -321"/> - <channel onMode="1" bRatio="0.0000065" products="-323 321"/> - <channel onMode="1" bRatio="0.0001500" products="331 22"/> - <channel onMode="1" bRatio="0.0000010" products="333 111"/> - <channel onMode="1" bRatio="0.0000200" products="333 221"/> - <channel onMode="1" bRatio="0.0032000" products="441 22"/> - <channel onMode="1" bRatio="0.0013000" products="443 111"/> - <channel onMode="1" bRatio="0.0324000" products="443 221"/> - <channel onMode="1" bRatio="0.0933000" products="445 22"/> - <channel onMode="1" bRatio="0.0002100" products="2212 -2212"/> - <channel onMode="1" bRatio="0.0001300" products="2224 -2224"/> - <channel onMode="1" bRatio="0.0001800" products="3122 -3122"/> - <channel onMode="1" bRatio="0.0001200" products="3212 -3212"/> - <channel onMode="1" bRatio="0.0001100" products="3224 -3224"/> - <channel onMode="1" bRatio="0.0000900" products="3312 -3312"/> - <channel onMode="1" bRatio="0.0002140" products="10113 111"/> - <channel onMode="1" bRatio="0.0002140" products="10213 -211"/> - <channel onMode="1" bRatio="0.0002140" products="-10213 211"/> - <channel onMode="1" bRatio="0.0010000" products="10323 -321"/> - <channel onMode="1" bRatio="0.0010000" products="-10323 321"/> - <channel onMode="1" bRatio="0.0922000" products="10441 22"/> - <channel onMode="1" bRatio="0.0008000" products="10443 111"/> - <channel onMode="1" bRatio="0.0907000" products="20443 22"/> - <channel onMode="1" bRatio="0.0001640" products="211 -211 111"/> - <channel onMode="1" bRatio="0.0004200" products="211 -211 113"/> - <channel onMode="1" bRatio="0.0001500" products="321 -321 223"/> - <channel onMode="1" bRatio="0.0001500" products="333 211 -211"/> - <channel onMode="1" bRatio="0.0000600" products="333 321 -321"/> - <channel onMode="1" bRatio="0.1658000" products="443 111 111"/> - <channel onMode="1" bRatio="0.3366000" products="443 211 -211"/> - <channel onMode="1" bRatio="0.0001400" products="2212 -2212 111"/> - <channel onMode="1" bRatio="0.0002200" products="310 310 211 -211"/> - <channel onMode="1" bRatio="0.0016000" products="321 -321 211 -211"/> - <channel onMode="1" bRatio="0.0008000" products="2212 -2212 211 -211"/> - <channel onMode="1" bRatio="0.0030000" products="211 211 -211 -211 111"/> - <channel onMode="1" bRatio="0.0001500" products="211 211 211 -211 -211 -211"/> - <channel onMode="1" bRatio="0.0035000" products="211 211 211 -211 -211 -211 111"/> - <channel onMode="1" bRatio="0.0168000" meMode="53" products="83 -83"/> - <channel onMode="1" bRatio="0.1258780" meMode="92" products="21 21 21"/> - <channel onMode="1" bRatio="0.0089380" meMode="92" products="22 21 21"/> -</particle> - -<particle id="100553" name="Upsilon(2S)" spinType="3" chargeType="0" colType="0" - m0="10.02326" mWidth="0.00003" mMin="10.02297" mMax="10.02357"> - <channel onMode="1" bRatio="0.0191000" products="11 -11"/> - <channel onMode="1" bRatio="0.0193000" products="13 -13"/> - <channel onMode="1" bRatio="0.0170000" products="15 -15"/> - <channel onMode="1" bRatio="0.0670000" products="555 22"/> - <channel onMode="1" bRatio="0.0430000" products="10551 22"/> - <channel onMode="1" bRatio="0.0660000" products="20553 22"/> - <channel onMode="1" bRatio="0.0900000" products="553 111 111"/> - <channel onMode="1" bRatio="0.1850000" products="553 211 -211"/> - <channel onMode="1" bRatio="0.0050000" meMode="91" products="1 -1"/> - <channel onMode="1" bRatio="0.0200000" meMode="91" products="2 -2"/> - <channel onMode="1" bRatio="0.0050000" meMode="91" products="3 -3"/> - <channel onMode="1" bRatio="0.0200000" meMode="91" products="4 -4"/> - <channel onMode="1" bRatio="0.4276000" meMode="92" products="21 21 21"/> - <channel onMode="1" bRatio="0.0160000" meMode="92" products="22 21 21"/> -</particle> - -<particle id="200553" name="Upsilon(3S)" spinType="3" chargeType="0" colType="0" - m0="10.3552" mWidth="0.00002" mMin="10.3552" mMax="10.3552"> - <channel onMode="1" bRatio="0.0000000" products="11 -11"/> - <channel onMode="1" bRatio="0.0379639" products="13 -13"/> - <channel onMode="1" bRatio="0.0398795" products="15 -15"/> - <channel onMode="1" bRatio="0.0383122" products="553 111 111"/> - <channel onMode="1" bRatio="0.0761019" products="553 211 -211"/> - <channel onMode="1" bRatio="0.0322171" products="100553 111 111"/> - <channel onMode="1" bRatio="0.0491092" products="100553 211 -211"/> - <channel onMode="1" bRatio="0.0870731" products="100553 22 22"/> - <channel onMode="1" bRatio="0.0007488" products="10553 111"/> - <channel onMode="1" bRatio="0.6217021" meMode="92" products="21 21 21"/> - <channel onMode="1" bRatio="0.0168922" meMode="92" products="22 21 21"/> -</particle> - -<particle id="1000001" name="~d_L" antiName="~d_Lbar" spinType="1" chargeType="-1" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 1"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 3"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2"/> - <channel onMode="1" bRatio="0.0000000" products="12 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4"/> - <channel onMode="1" bRatio="0.0000000" products="12 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6"/> - <channel onMode="1" bRatio="0.0000000" products="14 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2"/> - <channel onMode="1" bRatio="0.0000000" products="14 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4"/> - <channel onMode="1" bRatio="0.0000000" products="14 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6"/> - <channel onMode="1" bRatio="0.0000000" products="16 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2"/> - <channel onMode="1" bRatio="0.0000000" products="16 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4"/> - <channel onMode="1" bRatio="0.0000000" products="16 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -5"/> -</particle> - -<particle id="1000002" name="~u_L" antiName="~u_Lbar" spinType="1" chargeType="2" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 2"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 4"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 -5"/> -</particle> - -<particle id="1000003" name="~s_L" antiName="~s_Lbar" spinType="1" chargeType="-1" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 1"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 3"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2"/> - <channel onMode="1" bRatio="0.0000000" products="12 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4"/> - <channel onMode="1" bRatio="0.0000000" products="12 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6"/> - <channel onMode="1" bRatio="0.0000000" products="14 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2"/> - <channel onMode="1" bRatio="0.0000000" products="14 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4"/> - <channel onMode="1" bRatio="0.0000000" products="14 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6"/> - <channel onMode="1" bRatio="0.0000000" products="16 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2"/> - <channel onMode="1" bRatio="0.0000000" products="16 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4"/> - <channel onMode="1" bRatio="0.0000000" products="16 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -5"/> -</particle> - -<particle id="1000004" name="~c_L" antiName="~c_Lbar" spinType="1" chargeType="2" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 2"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 4"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 -5"/> -</particle> - -<particle id="1000005" name="~b_1" antiName="~b_1bar" spinType="1" chargeType="-1" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 1"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 3"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2"/> - <channel onMode="1" bRatio="0.0000000" products="12 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4"/> - <channel onMode="1" bRatio="0.0000000" products="12 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6"/> - <channel onMode="1" bRatio="0.0000000" products="14 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2"/> - <channel onMode="1" bRatio="0.0000000" products="14 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4"/> - <channel onMode="1" bRatio="0.0000000" products="14 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6"/> - <channel onMode="1" bRatio="0.0000000" products="16 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2"/> - <channel onMode="1" bRatio="0.0000000" products="16 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4"/> - <channel onMode="1" bRatio="0.0000000" products="16 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -3"/> -</particle> - -<particle id="1000006" name="~t_1" antiName="~t_1bar" spinType="1" chargeType="2" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 2"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 4"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 -5"/> -</particle> - -<particle id="1000011" name="~e_L-" antiName="~e_L+" spinType="1" chargeType="-3" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 11"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 12"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000012 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000012 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000012 -37"/> - <channel onMode="1" bRatio="0.0000000" products="12 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 15"/> - <channel onMode="1" bRatio="0.0000000" products="-2 1"/> - <channel onMode="1" bRatio="0.0000000" products="-2 3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 1"/> - <channel onMode="1" bRatio="0.0000000" products="-4 3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 1"/> - <channel onMode="1" bRatio="0.0000000" products="-6 3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 5"/> -</particle> - -<particle id="1000012" name="~nu_eL" antiName="~nu_eLbar" spinType="1" chargeType="0" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000011 24"/> - <channel onMode="1" bRatio="0.0000000" products="2000011 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000011 37"/> - <channel onMode="1" bRatio="0.0000000" products="2000011 37"/> - <channel onMode="1" bRatio="0.0000000" products="-13 11"/> - <channel onMode="1" bRatio="0.0000000" products="-13 13"/> - <channel onMode="1" bRatio="0.0000000" products="-13 15"/> - <channel onMode="1" bRatio="0.0000000" products="-15 11"/> - <channel onMode="1" bRatio="0.0000000" products="-15 13"/> - <channel onMode="1" bRatio="0.0000000" products="-15 15"/> - <channel onMode="1" bRatio="0.0000000" products="-1 1"/> - <channel onMode="1" bRatio="0.0000000" products="-1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 1"/> - <channel onMode="1" bRatio="0.0000000" products="-3 3"/> - <channel onMode="1" bRatio="0.0000000" products="-3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-5 1"/> - <channel onMode="1" bRatio="0.0000000" products="-5 3"/> - <channel onMode="1" bRatio="0.0000000" products="-5 5"/> -</particle> - -<particle id="1000013" name="~mu_L-" antiName="~mu_L+" spinType="1" chargeType="-3" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 13"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 14"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000014 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000014 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000014 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000014 -37"/> - <channel onMode="1" bRatio="0.0000000" products="12 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 15"/> - <channel onMode="1" bRatio="0.0000000" products="-2 1"/> - <channel onMode="1" bRatio="0.0000000" products="-2 3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 1"/> - <channel onMode="1" bRatio="0.0000000" products="-4 3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 1"/> - <channel onMode="1" bRatio="0.0000000" products="-6 3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 5"/> -</particle> - -<particle id="1000014" name="~nu_muL" antiName="~nu_muLbar" spinType="1" chargeType="0" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000013 24"/> - <channel onMode="1" bRatio="0.0000000" products="2000013 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000013 37"/> - <channel onMode="1" bRatio="0.0000000" products="2000013 37"/> - <channel onMode="1" bRatio="0.0000000" products="-11 11"/> - <channel onMode="1" bRatio="0.0000000" products="-11 13"/> - <channel onMode="1" bRatio="0.0000000" products="-11 15"/> - <channel onMode="1" bRatio="0.0000000" products="-15 11"/> - <channel onMode="1" bRatio="0.0000000" products="-15 13"/> - <channel onMode="1" bRatio="0.0000000" products="-15 15"/> - <channel onMode="1" bRatio="0.0000000" products="-1 1"/> - <channel onMode="1" bRatio="0.0000000" products="-1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 1"/> - <channel onMode="1" bRatio="0.0000000" products="-3 3"/> - <channel onMode="1" bRatio="0.0000000" products="-3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-5 1"/> - <channel onMode="1" bRatio="0.0000000" products="-5 3"/> - <channel onMode="1" bRatio="0.0000000" products="-5 5"/> -</particle> - -<particle id="1000015" name="~tau_1-" antiName="~tau_1+" spinType="1" chargeType="-3" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 15"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 16"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000016 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000016 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000016 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000016 -37"/> - <channel onMode="1" bRatio="0.0000000" products="12 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 15"/> - <channel onMode="1" bRatio="0.0000000" products="-2 1"/> - <channel onMode="1" bRatio="0.0000000" products="-2 3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 1"/> - <channel onMode="1" bRatio="0.0000000" products="-4 3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 1"/> - <channel onMode="1" bRatio="0.0000000" products="-6 3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 5"/> -</particle> - -<particle id="1000016" name="~nu_tauL" antiName="~nu_tauLbar" spinType="1" chargeType="0" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000015 24"/> - <channel onMode="1" bRatio="0.0000000" products="2000015 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000015 37"/> - <channel onMode="1" bRatio="0.0000000" products="2000015 37"/> - <channel onMode="1" bRatio="0.0000000" products="-11 11"/> - <channel onMode="1" bRatio="0.0000000" products="-11 13"/> - <channel onMode="1" bRatio="0.0000000" products="-11 15"/> - <channel onMode="1" bRatio="0.0000000" products="-13 11"/> - <channel onMode="1" bRatio="0.0000000" products="-13 13"/> - <channel onMode="1" bRatio="0.0000000" products="-13 15"/> - <channel onMode="1" bRatio="0.0000000" products="-1 1"/> - <channel onMode="1" bRatio="0.0000000" products="-1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 1"/> - <channel onMode="1" bRatio="0.0000000" products="-3 3"/> - <channel onMode="1" bRatio="0.0000000" products="-3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-5 1"/> - <channel onMode="1" bRatio="0.0000000" products="-5 3"/> - <channel onMode="1" bRatio="0.0000000" products="-5 5"/> -</particle> - -<particle id="1000021" name="~g" spinType="2" chargeType="0" colType="2" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 21"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 6"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 2"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 6"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 2"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000006 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="4 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="6 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 3 5"/> -</particle> - -<particle id="1000022" name="~chi_10" spinType="2" chargeType="0" colType="0" - m0="500.00000" mWidth="1.00000" mMin="20.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 22"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 23"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 25"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 35"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 36"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="4 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="6 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 3 5"/> -</particle> - -<particle id="1000023" name="~chi_20" spinType="2" chargeType="0" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 22"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 23"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 25"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 35"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 22"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 -24"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 -37"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 -37"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 -24"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000011 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-1000011 11"/> - <channel onMode="1" bRatio="0.0000000" products="2000011 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-2000011 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000012 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-1000012 12"/> - <channel onMode="1" bRatio="0.0000000" products="2000012 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-2000012 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000013 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-1000013 13"/> - <channel onMode="1" bRatio="0.0000000" products="2000013 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-2000013 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000014 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-1000014 14"/> - <channel onMode="1" bRatio="0.0000000" products="2000014 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-2000014 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000015 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-1000015 15"/> - <channel onMode="1" bRatio="0.0000000" products="2000015 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-2000015 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000016 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-1000016 16"/> - <channel onMode="1" bRatio="0.0000000" products="2000016 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-2000016 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 16 -16"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 11 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 13 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 15 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 11 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 13 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 15 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 6"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 2"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 6"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 2"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000006 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="4 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="6 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 3 5"/> -</particle> - -<particle id="1000024" name="~chi_1+" antiName="~chi_1-" spinType="2" chargeType="3" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 24"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000012 -11"/> - <channel onMode="1" bRatio="0.0000000" products="2000012 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-1000011 12"/> - <channel onMode="1" bRatio="0.0000000" products="-2000011 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000014 -13"/> - <channel onMode="1" bRatio="0.0000000" products="2000014 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-1000013 14"/> - <channel onMode="1" bRatio="0.0000000" products="-2000013 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000016 -15"/> - <channel onMode="1" bRatio="0.0000000" products="2000016 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-1000015 16"/> - <channel onMode="1" bRatio="0.0000000" products="-2000015 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -1"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -1"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -1"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 12"/> - <channel onMode="1" bRatio="0.0000000" products="12 14 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="12 14 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 16"/> - <channel onMode="1" bRatio="0.0000000" products="12 14 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 12"/> - <channel onMode="1" bRatio="0.0000000" products="12 16 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 14"/> - <channel onMode="1" bRatio="0.0000000" products="12 16 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="12 16 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 14"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 16"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 12"/> - <channel onMode="1" bRatio="0.0000000" products="14 16 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 14"/> - <channel onMode="1" bRatio="0.0000000" products="14 16 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="14 16 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 14"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 16"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 12"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 16"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 2 3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2 2 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 4 1"/> - <channel onMode="1" bRatio="0.0000000" products="2 4 3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2 4 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 6 1"/> - <channel onMode="1" bRatio="0.0000000" products="2 6 3"/> - <channel onMode="1" bRatio="0.0000000" products="2 6 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 4 1"/> - <channel onMode="1" bRatio="0.0000000" products="4 4 5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 6 1"/> - <channel onMode="1" bRatio="0.0000000" products="4 6 3"/> - <channel onMode="1" bRatio="0.0000000" products="4 6 5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 -5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 6 1"/> - <channel onMode="1" bRatio="0.0000000" products="6 6 3"/> -</particle> - -<particle id="1000025" name="~chi_30" spinType="2" chargeType="0" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 22"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 23"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 25"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 35"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 22"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 22"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 -24"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 -37"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 -24"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 -37"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000011 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-1000011 11"/> - <channel onMode="1" bRatio="0.0000000" products="2000011 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-2000011 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000012 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-1000012 12"/> - <channel onMode="1" bRatio="0.0000000" products="2000012 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-2000012 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000013 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-1000013 13"/> - <channel onMode="1" bRatio="0.0000000" products="2000013 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-2000013 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000014 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-1000014 14"/> - <channel onMode="1" bRatio="0.0000000" products="2000014 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-2000014 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000015 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-1000015 15"/> - <channel onMode="1" bRatio="0.0000000" products="2000015 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-2000015 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000016 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-1000016 16"/> - <channel onMode="1" bRatio="0.0000000" products="2000016 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-2000016 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 16 -16"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 16 -16"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 11 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 13 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 15 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 11 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 13 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 15 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 6"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 2"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 6"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 2"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000006 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="4 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="6 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 3 5"/> -</particle> - -<particle id="1000035" name="~chi_40" spinType="2" chargeType="0" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 22"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 23"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 25"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 35"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 22"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 22"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 22"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 -24"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 -24"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 -37"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 -37"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 16 -16"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 16 -16"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 16 -16"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 11 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 13 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 15 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 11 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 13 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 15 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000011 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-1000011 11"/> - <channel onMode="1" bRatio="0.0000000" products="2000011 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-2000011 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000012 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-1000012 12"/> - <channel onMode="1" bRatio="0.0000000" products="2000012 -12"/> - <channel onMode="1" bRatio="0.0000000" products="-2000012 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000013 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-1000013 13"/> - <channel onMode="1" bRatio="0.0000000" products="2000013 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-2000013 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000014 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-1000014 14"/> - <channel onMode="1" bRatio="0.0000000" products="2000014 -14"/> - <channel onMode="1" bRatio="0.0000000" products="-2000014 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000015 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-1000015 15"/> - <channel onMode="1" bRatio="0.0000000" products="2000015 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-2000015 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000016 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-1000016 16"/> - <channel onMode="1" bRatio="0.0000000" products="2000016 -16"/> - <channel onMode="1" bRatio="0.0000000" products="-2000016 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000002 6"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 2"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000002 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000004 6"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 2"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000004 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 5"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 1"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 3"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000006 4"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000006 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="4 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 3 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="6 1 3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 1 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 3 5"/> -</particle> - -<particle id="1000037" name="~chi_2+" antiName="~chi_2-" spinType="2" chargeType="3" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 24"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 24"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 37"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 16 -16"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000012 -11"/> - <channel onMode="1" bRatio="0.0000000" products="2000012 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-1000011 12"/> - <channel onMode="1" bRatio="0.0000000" products="-2000011 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000014 -13"/> - <channel onMode="1" bRatio="0.0000000" products="2000014 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-1000013 14"/> - <channel onMode="1" bRatio="0.0000000" products="-2000013 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000016 -15"/> - <channel onMode="1" bRatio="0.0000000" products="2000016 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-1000015 16"/> - <channel onMode="1" bRatio="0.0000000" products="-2000015 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 2 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 2 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 4 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 4 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 6 -2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 6 -4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -1"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000001 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000001 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -1"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000003 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000003 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -1"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -3"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -1"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000005 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 2"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 4"/> - <channel onMode="1" bRatio="0.0000000" products="-2000005 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 12"/> - <channel onMode="1" bRatio="0.0000000" products="12 14 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="12 14 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -13 16"/> - <channel onMode="1" bRatio="0.0000000" products="12 14 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 12"/> - <channel onMode="1" bRatio="0.0000000" products="12 16 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 14"/> - <channel onMode="1" bRatio="0.0000000" products="12 16 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="12 16 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="14 12 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 14"/> - <channel onMode="1" bRatio="0.0000000" products="14 12 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -11 16"/> - <channel onMode="1" bRatio="0.0000000" products="14 12 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 12"/> - <channel onMode="1" bRatio="0.0000000" products="14 16 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -15 11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 14"/> - <channel onMode="1" bRatio="0.0000000" products="14 16 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -15 13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -15 16"/> - <channel onMode="1" bRatio="0.0000000" products="14 16 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -15 15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 12"/> - <channel onMode="1" bRatio="0.0000000" products="16 12 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -11 11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 14"/> - <channel onMode="1" bRatio="0.0000000" products="16 12 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -11 13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -11 16"/> - <channel onMode="1" bRatio="0.0000000" products="16 12 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -11 15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 12"/> - <channel onMode="1" bRatio="0.0000000" products="16 14 -11"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -13 11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 14"/> - <channel onMode="1" bRatio="0.0000000" products="16 14 -13"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -13 13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -13 16"/> - <channel onMode="1" bRatio="0.0000000" products="16 14 -15"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -13 15"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -2 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -4 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 2"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="12 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 4"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="12 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -6 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -2 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -4 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 2"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="14 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 4"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="14 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -6 6"/> - <channel onMode="1" bRatio="0.0000000" products="-13 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="14 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -1 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -1 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -1 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -2 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -1 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -3 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -3 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -3 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -4 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -3 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 2"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -5 1"/> - <channel onMode="1" bRatio="0.0000000" products="16 6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 4"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -5 3"/> - <channel onMode="1" bRatio="0.0000000" products="16 6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 -5 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -6 6"/> - <channel onMode="1" bRatio="0.0000000" products="-15 -5 5"/> - <channel onMode="1" bRatio="0.0000000" products="16 6 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 2 3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2 2 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 4 1"/> - <channel onMode="1" bRatio="0.0000000" products="2 4 3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="2 4 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="2 6 1"/> - <channel onMode="1" bRatio="0.0000000" products="2 6 3"/> - <channel onMode="1" bRatio="0.0000000" products="2 6 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 4 1"/> - <channel onMode="1" bRatio="0.0000000" products="4 4 5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 -3 -5"/> - <channel onMode="1" bRatio="0.0000000" products="4 6 1"/> - <channel onMode="1" bRatio="0.0000000" products="4 6 3"/> - <channel onMode="1" bRatio="0.0000000" products="4 6 5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 -5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 6 1"/> - <channel onMode="1" bRatio="0.0000000" products="6 6 3"/> -</particle> - -<particle id="1000039" name="~Gravitino" spinType="4" chargeType="0" colType="0" - m0="1.000e-03"> -</particle> - -<particle id="1000045" name="~chi_50" spinType="2" chargeType="0" colType="0" - m0="500.00000"> -</particle> - -<particle id="1000512" name="R0(~b dbar)" antiName="R0(~bbar d)" spinType="2" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1000522" name="R-(~b ubar)" antiName="R+(~bbar u)" spinType="2" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1000532" name="R0(~b sbar)" antiName="R0(~bbar s)" spinType="2" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1000542" name="R-(~b cbar)" antiName="R+(~bbar c)" spinType="2" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1000552" name="R0(~b bbar)" antiName="R0(~bbar b)" spinType="2" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1000612" name="R+(~t dbar)" antiName="R-(~tbar d)" spinType="2" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1000622" name="R0(~t ubar)" antiName="R0(~tbar u)" spinType="2" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1000632" name="R+(~t sbar)" antiName="R-(~tbar s)" spinType="2" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1000642" name="R0(~t cbar)" antiName="R0(~tbar c)" spinType="2" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1000652" name="R+(~t bbar)" antiName="R-(~tbar b)" spinType="2" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1000993" name="R0(~g g)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1005113" name="R-(~b dd1)" antiName="Rbar+(~b dd1)" spinType="3" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1005211" name="R0(~b ud0)" antiName="Rbar0(~b ud0)" spinType="1" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1005213" name="R0(~b ud1)" antiName="Rbar0(~b ud1)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1005223" name="R+(~b uu1)" antiName="Rbar-(~b uu1)" spinType="3" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1005311" name="R-(~b sd0)" antiName="Rbar+(~b sd0)" spinType="1" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1005313" name="R-(~b sd1)" antiName="Rbar+(~b sd1)" spinType="3" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1005321" name="R0(~b su0)" antiName="Rbar0(~b su0)" spinType="1" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1005323" name="R0(~b su1)" antiName="Rbar0(~b su1)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1005333" name="R-(~b ss1)" antiName="Rbar+(~b ss1)" spinType="3" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1006113" name="R0(~t dd1)" antiName="Rbar0(~t dd1)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1006211" name="R+(~t ud0)" antiName="Rbar-(~t ud0)" spinType="1" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1006213" name="R+(~t ud1)" antiName="Rbar-(~t ud1)" spinType="3" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1006223" name="R++(~t uu1)" antiName="Rbar--(~t uu1)" spinType="3" chargeType="6" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1006311" name="R-(~t sd0)" antiName="Rbar+(~t sd0)" spinType="1" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1006313" name="R-(~t sd1)" antiName="Rbar+(~t sd1)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1006321" name="R0(~t su0)" antiName="Rbar0(~t su0)" spinType="1" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1006323" name="R0(~t su1)" antiName="Rbar0(~t su1)" spinType="3" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1006333" name="R0(~t ss1)" antiName="Rbar0(~t ss1)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009002" name="Rtemp(~g q)" antiName="Rtemp(~g qbar)" spinType="2" chargeType="0" colType="1" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009113" name="R0(~g d dbar)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009213" name="R+(~g u dbar)" antiName="R-(~g d ubar)" spinType="3" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009223" name="R0(~g u ubar)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009313" name="R0(~g d sbar)" antiName="R0(~g s dbar)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009323" name="R+(~g u sbar)" antiName="R-(~g s ubar)" spinType="3" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009333" name="R0(~g s sbar)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009413" name="R+(~g c dbar)" antiName="R-(~g d cbar)" spinType="3" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009423" name="R0(~g c ubar)" antiName="R0(~g u cbar)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009433" name="R+(~g c sbar)" antiName="R-(~g s cbar)" spinType="3" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009443" name="R0(~g c cbar)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009513" name="R0(~g d bbar)" antiName="R0(~g b dbar)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009523" name="R+(~g u bbar)" antiName="R-(~g b ubar)" spinType="3" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009533" name="R0(~g s bbar)" antiName="R0(~g b sbar)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009543" name="R+(~g c bbar)" antiName="R-(~g b cbar)" spinType="3" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1009553" name="R0(~g b bbar)" spinType="3" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1091114" name="R-(~g ddd)" antiName="Rbar+(~g ddd)" spinType="4" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1092114" name="R0(~g udd)" antiName="Rbar0(~g udd)" spinType="4" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1092214" name="R+(~g uud)" antiName="Rbar-(~g uud)" spinType="4" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1092224" name="R++(~g uuu)" antiName="Rbar--(~g uuu)" spinType="4" chargeType="6" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1093114" name="R-(~g sdd)" antiName="Rbar+(~g sdd)" spinType="4" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1093214" name="R0(~g sud)" antiName="Rbar0(~g sud)" spinType="4" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1093224" name="R+(~g suu)" antiName="Rbar-(~g suu)" spinType="4" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1093314" name="R-(~g ssd)" antiName="Rbar+(~g ssd)" spinType="4" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1093324" name="R0(~g ssu)" antiName="Rbar0(~g ssu)" spinType="4" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1093334" name="R-(~g sss)" antiName="Rbar+(~g sss)" spinType="4" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1094114" name="R0(~g cdd)" antiName="Rbar0(~g cdd)" spinType="4" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1094214" name="R+(~g cud)" antiName="Rbar-(~g cud)" spinType="4" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1094224" name="R++(~g cuu)" antiName="Rbar--(~g cuu)" spinType="4" chargeType="6" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1094314" name="R0(~g csd)" antiName="Rbar0(~g csd)" spinType="4" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1094324" name="R+(~g csu)" antiName="Rbar-(~g csu)" spinType="4" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1094334" name="R0(~g css)" antiName="Rbar0(~g css)" spinType="4" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1095114" name="R-(~g bdd)" antiName="Rbar+(~g bdd)" spinType="4" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1095214" name="R0(~g bud)" antiName="Rbar0(~g bud)" spinType="4" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1095224" name="R+(~g buu)" antiName="Rbar-(~g buu)" spinType="4" chargeType="3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1095314" name="R-(~g bsd)" antiName="Rbar+(~g bsd)" spinType="4" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1095324" name="R0(~g bsu)" antiName="Rbar0(~g bsu)" spinType="4" chargeType="0" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="1095334" name="R-(~g bss)" antiName="Rbar+(~g bss)" spinType="4" chargeType="-3" colType="0" - m0="500.00000" tau0="1e-05"> -</particle> - -<particle id="2000001" name="~d_R" antiName="~d_Rbar" spinType="1" chargeType="-1" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 1"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 3"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2"/> - <channel onMode="1" bRatio="0.0000000" products="12 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4"/> - <channel onMode="1" bRatio="0.0000000" products="12 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6"/> - <channel onMode="1" bRatio="0.0000000" products="14 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2"/> - <channel onMode="1" bRatio="0.0000000" products="14 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4"/> - <channel onMode="1" bRatio="0.0000000" products="14 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6"/> - <channel onMode="1" bRatio="0.0000000" products="16 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2"/> - <channel onMode="1" bRatio="0.0000000" products="16 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4"/> - <channel onMode="1" bRatio="0.0000000" products="16 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -5"/> -</particle> - -<particle id="2000002" name="~u_R" antiName="~u_Rbar" spinType="1" chargeType="2" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 2"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 4"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 -5"/> -</particle> - -<particle id="2000003" name="~s_R" antiName="~s_Rbar" spinType="1" chargeType="-1" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 1"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 3"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2"/> - <channel onMode="1" bRatio="0.0000000" products="12 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4"/> - <channel onMode="1" bRatio="0.0000000" products="12 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6"/> - <channel onMode="1" bRatio="0.0000000" products="14 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2"/> - <channel onMode="1" bRatio="0.0000000" products="14 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4"/> - <channel onMode="1" bRatio="0.0000000" products="14 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6"/> - <channel onMode="1" bRatio="0.0000000" products="16 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2"/> - <channel onMode="1" bRatio="0.0000000" products="16 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4"/> - <channel onMode="1" bRatio="0.0000000" products="16 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -5"/> -</particle> - -<particle id="2000004" name="~c_R" antiName="~c_Rbar" spinType="1" chargeType="2" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 2"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 4"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 -5"/> -</particle> - -<particle id="2000005" name="~b_2" antiName="~b_2bar" spinType="1" chargeType="-1" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 1"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 3"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 2"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 6"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000006 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 5"/> - <channel onMode="1" bRatio="0.0000000" products="-12 1"/> - <channel onMode="1" bRatio="0.0000000" products="-12 3"/> - <channel onMode="1" bRatio="0.0000000" products="-12 5"/> - <channel onMode="1" bRatio="0.0000000" products="-14 1"/> - <channel onMode="1" bRatio="0.0000000" products="-14 3"/> - <channel onMode="1" bRatio="0.0000000" products="-14 5"/> - <channel onMode="1" bRatio="0.0000000" products="-16 1"/> - <channel onMode="1" bRatio="0.0000000" products="-16 3"/> - <channel onMode="1" bRatio="0.0000000" products="-16 5"/> - <channel onMode="1" bRatio="0.0000000" products="12 1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2"/> - <channel onMode="1" bRatio="0.0000000" products="12 3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4"/> - <channel onMode="1" bRatio="0.0000000" products="12 5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6"/> - <channel onMode="1" bRatio="0.0000000" products="14 1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2"/> - <channel onMode="1" bRatio="0.0000000" products="14 3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4"/> - <channel onMode="1" bRatio="0.0000000" products="14 5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6"/> - <channel onMode="1" bRatio="0.0000000" products="16 1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2"/> - <channel onMode="1" bRatio="0.0000000" products="16 3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4"/> - <channel onMode="1" bRatio="0.0000000" products="16 5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-2 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-4 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -1"/> - <channel onMode="1" bRatio="0.0000000" products="-6 -3"/> -</particle> - -<particle id="2000006" name="~t_2" antiName="~t_2bar" spinType="1" chargeType="2" colType="1" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 2"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 4"/> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000024 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 1"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 3"/> - <channel onMode="1" bRatio="0.0000000" products="1000037 5"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 6"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 23"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 25"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 35"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000002 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000004 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000006 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000002 36"/> - <channel onMode="1" bRatio="0.0000000" products="2000004 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000001 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000003 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000005 -37"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 2"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 4"/> - <channel onMode="1" bRatio="0.0000000" products="1000021 6"/> - <channel onMode="1" bRatio="0.0000000" products="-11 1"/> - <channel onMode="1" bRatio="0.0000000" products="-11 3"/> - <channel onMode="1" bRatio="0.0000000" products="-11 5"/> - <channel onMode="1" bRatio="0.0000000" products="-13 1"/> - <channel onMode="1" bRatio="0.0000000" products="-13 3"/> - <channel onMode="1" bRatio="0.0000000" products="-13 5"/> - <channel onMode="1" bRatio="0.0000000" products="-15 1"/> - <channel onMode="1" bRatio="0.0000000" products="-15 3"/> - <channel onMode="1" bRatio="0.0000000" products="-15 5"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -3"/> - <channel onMode="1" bRatio="0.0000000" products="-1 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-3 -5"/> -</particle> - -<particle id="2000011" name="~e_R-" antiName="~e_R+" spinType="1" chargeType="-3" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 11"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 12"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 12"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 11"/> - <channel onMode="1" bRatio="0.0000000" products="1000011 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000011 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000011 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000011 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000012 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000012 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000012 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000012 -37"/> - <channel onMode="1" bRatio="0.0000000" products="12 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 15"/> - <channel onMode="1" bRatio="0.0000000" products="-2 1"/> - <channel onMode="1" bRatio="0.0000000" products="-2 3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 1"/> - <channel onMode="1" bRatio="0.0000000" products="-4 3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 1"/> - <channel onMode="1" bRatio="0.0000000" products="-6 3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 5"/> -</particle> - -<particle id="2000012" name="~nu_eR" antiName="~nu_eRbar" spinType="1" chargeType="0" colType="0" - m0="500.00000"> -</particle> - -<particle id="2000013" name="~mu_R-" antiName="~mu_R+" spinType="1" chargeType="-3" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 13"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 14"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 14"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 13"/> - <channel onMode="1" bRatio="0.0000000" products="1000013 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000013 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000013 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000013 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000014 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000014 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000014 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000014 -37"/> - <channel onMode="1" bRatio="0.0000000" products="12 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 15"/> - <channel onMode="1" bRatio="0.0000000" products="-16 11"/> - <channel onMode="1" bRatio="0.0000000" products="-16 13"/> - <channel onMode="1" bRatio="0.0000000" products="-16 15"/> - <channel onMode="1" bRatio="0.0000000" products="-2 1"/> - <channel onMode="1" bRatio="0.0000000" products="-2 3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 1"/> - <channel onMode="1" bRatio="0.0000000" products="-4 3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 1"/> - <channel onMode="1" bRatio="0.0000000" products="-6 3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 5"/> -</particle> - -<particle id="2000014" name="~nu_muR" antiName="~nu_muRbar" spinType="1" chargeType="0" colType="0" - m0="500.00000"> -</particle> - -<particle id="2000015" name="~tau_2-" antiName="~tau_2+" spinType="1" chargeType="-3" colType="0" - m0="500.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" meMode="103" products="1000039 15"/> - <channel onMode="1" bRatio="0.0000000" products="-1000024 16"/> - <channel onMode="1" bRatio="0.0000000" products="-1000037 16"/> - <channel onMode="1" bRatio="0.0000000" products="1000022 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000023 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000025 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000035 15"/> - <channel onMode="1" bRatio="0.0000000" products="1000015 23"/> - <channel onMode="1" bRatio="0.0000000" products="1000015 25"/> - <channel onMode="1" bRatio="0.0000000" products="1000015 35"/> - <channel onMode="1" bRatio="0.0000000" products="1000015 36"/> - <channel onMode="1" bRatio="0.0000000" products="1000016 -24"/> - <channel onMode="1" bRatio="0.0000000" products="2000016 -24"/> - <channel onMode="1" bRatio="0.0000000" products="1000016 -37"/> - <channel onMode="1" bRatio="0.0000000" products="2000016 -37"/> - <channel onMode="1" bRatio="0.0000000" products="12 13"/> - <channel onMode="1" bRatio="0.0000000" products="12 15"/> - <channel onMode="1" bRatio="0.0000000" products="14 11"/> - <channel onMode="1" bRatio="0.0000000" products="14 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 11"/> - <channel onMode="1" bRatio="0.0000000" products="16 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 11"/> - <channel onMode="1" bRatio="0.0000000" products="-12 13"/> - <channel onMode="1" bRatio="0.0000000" products="-12 15"/> - <channel onMode="1" bRatio="0.0000000" products="-14 11"/> - <channel onMode="1" bRatio="0.0000000" products="-14 13"/> - <channel onMode="1" bRatio="0.0000000" products="-14 15"/> - <channel onMode="1" bRatio="0.0000000" products="-2 1"/> - <channel onMode="1" bRatio="0.0000000" products="-2 3"/> - <channel onMode="1" bRatio="0.0000000" products="-2 5"/> - <channel onMode="1" bRatio="0.0000000" products="-4 1"/> - <channel onMode="1" bRatio="0.0000000" products="-4 3"/> - <channel onMode="1" bRatio="0.0000000" products="-4 5"/> - <channel onMode="1" bRatio="0.0000000" products="-6 1"/> - <channel onMode="1" bRatio="0.0000000" products="-6 3"/> - <channel onMode="1" bRatio="0.0000000" products="-6 5"/> -</particle> - -<particle id="2000016" name="~nu_tauR" antiName="~nu_tauRbar" spinType="1" chargeType="0" colType="0" - m0="500.00000"> -</particle> - -<particle id="3000111" name="pi_tc0" spinType="1" chargeType="0" colType="0" - m0="110.00000" mWidth="0.02911" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0174310" products="3 -3"/> - <channel onMode="1" bRatio="0.0540480" products="4 -4"/> - <channel onMode="1" bRatio="0.8576940" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="11 -11"/> - <channel onMode="1" bRatio="0.0002500" products="13 -13"/> - <channel onMode="1" bRatio="0.0705780" products="15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="21 21"/> -</particle> - -<particle id="3000113" name="rho_tc0" spinType="3" chargeType="0" colType="0" - m0="210.00000" mWidth="0.86860" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.1440510" products="24 -24"/> - <channel onMode="1" bRatio="0.3519020" products="24 -3000211"/> - <channel onMode="1" bRatio="0.3519020" products="3000211 -24"/> - <channel onMode="1" bRatio="0.0000000" products="3000211 -3000211"/> - <channel onMode="1" bRatio="0.0821070" products="22 3000111"/> - <channel onMode="1" bRatio="0.0295660" products="22 3000221"/> - <channel onMode="1" bRatio="0.0015110" products="23 3000111"/> - <channel onMode="1" bRatio="0.0007260" products="23 3000221"/> - <channel onMode="1" bRatio="0.0045180" products="1 -1"/> - <channel onMode="1" bRatio="0.0065220" products="2 -2"/> - <channel onMode="1" bRatio="0.0045180" products="3 -3"/> - <channel onMode="1" bRatio="0.0065220" products="4 -4"/> - <channel onMode="1" bRatio="0.0045130" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> - <channel onMode="1" bRatio="0.0029080" products="11 -11"/> - <channel onMode="1" bRatio="0.0009730" products="12 -12"/> - <channel onMode="1" bRatio="0.0029080" products="13 -13"/> - <channel onMode="1" bRatio="0.0009730" products="14 -14"/> - <channel onMode="1" bRatio="0.0029080" products="15 -15"/> - <channel onMode="1" bRatio="0.0009730" products="16 -16"/> -</particle> - -<particle id="3000211" name="pi_tc+" antiName="pi_tc-" spinType="1" chargeType="3" colType="0" - m0="110.00000" mWidth="0.01741" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0227480" products="4 -1"/> - <channel onMode="1" bRatio="0.0265760" products="4 -3"/> - <channel onMode="1" bRatio="0.3594860" products="2 -5"/> - <channel onMode="1" bRatio="0.5615810" products="4 -5"/> - <channel onMode="1" bRatio="0.0000000" products="24 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="-11 12"/> - <channel onMode="1" bRatio="0.0001040" products="-13 14"/> - <channel onMode="1" bRatio="0.0295040" products="-15 16"/> -</particle> - -<particle id="3000213" name="rho_tc+" antiName="rho_tc-" spinType="3" chargeType="3" colType="0" - m0="210.00000" mWidth="0.62395" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.1439820" products="24 23"/> - <channel onMode="1" bRatio="0.4898880" products="24 3000111"/> - <channel onMode="1" bRatio="0.1951000" products="3000211 23"/> - <channel onMode="1" bRatio="0.0000000" products="3000211 3000111"/> - <channel onMode="1" bRatio="0.1143020" products="3000211 22"/> - <channel onMode="1" bRatio="0.0084260" products="24 3000221"/> - <channel onMode="1" bRatio="0.0148680" products="-1 2"/> - <channel onMode="1" bRatio="0.0007630" products="-1 4"/> - <channel onMode="1" bRatio="0.0000000" products="-1 6"/> - <channel onMode="1" bRatio="0.0007630" products="-3 2"/> - <channel onMode="1" bRatio="0.0148400" products="-3 4"/> - <channel onMode="1" bRatio="0.0000030" products="-3 6"/> - <channel onMode="1" bRatio="0.0000000" products="-5 2"/> - <channel onMode="1" bRatio="0.0000270" products="-5 4"/> - <channel onMode="1" bRatio="0.0019450" products="-5 6"/> - <channel onMode="1" bRatio="0.0050300" products="-11 12"/> - <channel onMode="1" bRatio="0.0050300" products="-13 14"/> - <channel onMode="1" bRatio="0.0050300" products="-15 16"/> -</particle> - -<particle id="3000221" name="pi'_tc0" spinType="1" chargeType="0" colType="0" - m0="110.00000" mWidth="0.04536" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0111850" products="3 -3"/> - <channel onMode="1" bRatio="0.0346810" products="4 -4"/> - <channel onMode="1" bRatio="0.5503540" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="11 -11"/> - <channel onMode="1" bRatio="0.0001600" products="13 -13"/> - <channel onMode="1" bRatio="0.0452870" products="15 -15"/> - <channel onMode="1" bRatio="0.3583330" products="21 21"/> -</particle> - -<particle id="3000223" name="omega_tc" spinType="3" chargeType="0" colType="0" - m0="210.00000" mWidth="0.19192" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.1337760" products="22 3000111"/> - <channel onMode="1" bRatio="0.0032840" products="23 3000111"/> - <channel onMode="1" bRatio="0.3716900" products="22 3000221"/> - <channel onMode="1" bRatio="0.0068380" products="23 3000221"/> - <channel onMode="1" bRatio="0.0309540" products="24 -3000211"/> - <channel onMode="1" bRatio="0.0309540" products="3000211 -24"/> - <channel onMode="1" bRatio="0.0016300" products="24 -24"/> - <channel onMode="1" bRatio="0.0000000" products="3000211 -3000211"/> - <channel onMode="1" bRatio="0.0472240" products="1 -1"/> - <channel onMode="1" bRatio="0.0737370" products="2 -2"/> - <channel onMode="1" bRatio="0.0472240" products="3 -3"/> - <channel onMode="1" bRatio="0.0737320" products="4 -4"/> - <channel onMode="1" bRatio="0.0471790" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> - <channel onMode="1" bRatio="0.0347610" products="11 -11"/> - <channel onMode="1" bRatio="0.0091660" products="12 -12"/> - <channel onMode="1" bRatio="0.0347610" products="13 -13"/> - <channel onMode="1" bRatio="0.0091660" products="14 -14"/> - <channel onMode="1" bRatio="0.0347590" products="15 -15"/> - <channel onMode="1" bRatio="0.0091660" products="16 -16"/> -</particle> - -<particle id="3000331" name="eta_tc0" spinType="1" chargeType="0" colType="2" - m0="350.00000" mWidth="0.09511" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.4457810" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> - <channel onMode="1" bRatio="0.5542190" products="21 21"/> -</particle> - -<particle id="3100021" name="V8_tc" spinType="1" chargeType="0" colType="2" - m0="500.00000" mWidth="123.27638" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0090690" products="1 -1"/> - <channel onMode="1" bRatio="0.0090690" products="2 -2"/> - <channel onMode="1" bRatio="0.0090690" products="3 -3"/> - <channel onMode="1" bRatio="0.0090690" products="4 -4"/> - <channel onMode="1" bRatio="0.5101470" products="5 -5"/> - <channel onMode="1" bRatio="0.4535760" products="6 -6"/> -</particle> - -<particle id="3100111" name="pi_22_1_tc" spinType="1" chargeType="0" colType="0" - m0="125.00000" mWidth="0.02296" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" products="1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> - <channel onMode="1" bRatio="1.0000000" products="21 21"/> -</particle> - -<particle id="3100113" name="rho_11_tc" spinType="3" chargeType="0" colType="2" - m0="400.00000" mWidth="23.26819" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0011280" products="1 -1"/> - <channel onMode="1" bRatio="0.0011280" products="2 -2"/> - <channel onMode="1" bRatio="0.0011280" products="3 -3"/> - <channel onMode="1" bRatio="0.0011280" products="4 -4"/> - <channel onMode="1" bRatio="0.5710470" products="5 -5"/> - <channel onMode="1" bRatio="0.3822880" products="6 -6"/> - <channel onMode="1" bRatio="0.0421530" products="21 21"/> -</particle> - -<particle id="3200111" name="pi_22_8_tc" spinType="1" chargeType="0" colType="2" - m0="250.00000" mWidth="0.18886" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0000000" products="1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> - <channel onMode="1" bRatio="1.0000000" products="21 21"/> -</particle> - -<particle id="3200113" name="rho_12_tc" spinType="3" chargeType="0" colType="2" - m0="350.00000" mWidth="2.86306" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0165970" products="1 -1"/> - <channel onMode="1" bRatio="0.0165970" products="2 -2"/> - <channel onMode="1" bRatio="0.0165970" products="3 -3"/> - <channel onMode="1" bRatio="0.0165970" products="4 -4"/> - <channel onMode="1" bRatio="0.9336100" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> -</particle> - -<particle id="3300113" name="rho_21_tc" spinType="3" chargeType="0" colType="2" - m0="350.00000"> - <channel onMode="1" bRatio="0.0165970" products="1 -1"/> - <channel onMode="1" bRatio="0.0165970" products="2 -2"/> - <channel onMode="1" bRatio="0.0165970" products="3 -3"/> - <channel onMode="1" bRatio="0.0165970" products="4 -4"/> - <channel onMode="1" bRatio="0.9336100" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> -</particle> - -<particle id="3400113" name="rho_22_tc" spinType="3" chargeType="0" colType="2" - m0="300.00000" mWidth="3.45903" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0551500" products="1 -1"/> - <channel onMode="1" bRatio="0.0551500" products="2 -2"/> - <channel onMode="1" bRatio="0.0551500" products="3 -3"/> - <channel onMode="1" bRatio="0.0551500" products="4 -4"/> - <channel onMode="1" bRatio="0.3446900" products="5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="6 -6"/> - <channel onMode="1" bRatio="0.2289980" products="21 21"/> - <channel onMode="1" bRatio="0.1642080" products="3100111 21"/> - <channel onMode="1" bRatio="0.0415030" products="3200111 21"/> -</particle> - -<particle id="4000001" name="d*" antiName="d*bar" spinType="2" chargeType="-1" colType="1" - m0="400.00000" mWidth="2.59359" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.8509730" products="21 1"/> - <channel onMode="1" bRatio="0.0054110" products="22 1"/> - <channel onMode="1" bRatio="0.0450250" products="23 1"/> - <channel onMode="1" bRatio="0.0985910" products="-24 2"/> -</particle> - -<particle id="4000002" name="u*" antiName="u*bar" spinType="2" chargeType="2" colType="1" - m0="400.00000" mWidth="2.59687" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.8498980" products="21 2"/> - <channel onMode="1" bRatio="0.0216170" products="22 2"/> - <channel onMode="1" bRatio="0.0300180" products="23 2"/> - <channel onMode="1" bRatio="0.0984660" products="24 1"/> -</particle> - -<particle id="4000003" name="s*" antiName="s*bar" spinType="2" chargeType="-1" colType="1" - m0="400.00000" mWidth="2.59359" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.8509730" products="21 3"/> - <channel onMode="1" bRatio="0.0054110" products="22 3"/> - <channel onMode="1" bRatio="0.0450250" products="23 3"/> - <channel onMode="1" bRatio="0.0985910" products="-24 4"/> -</particle> - -<particle id="4000004" name="c*" antiName="c*bar" spinType="2" chargeType="2" colType="1" - m0="400.00000" mWidth="2.59687" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.8498980" products="21 4"/> - <channel onMode="1" bRatio="0.0216170" products="22 4"/> - <channel onMode="1" bRatio="0.0300180" products="23 4"/> - <channel onMode="1" bRatio="0.0984660" products="24 3"/> -</particle> - -<particle id="4000005" name="b*" antiName="b*bar" spinType="2" chargeType="-1" colType="1" - m0="400.00000" mWidth="2.59359" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.8509730" products="21 5"/> - <channel onMode="1" bRatio="0.0054110" products="22 5"/> - <channel onMode="1" bRatio="0.0450250" products="23 5"/> - <channel onMode="1" bRatio="0.0985910" products="-24 6"/> -</particle> - -<particle id="4000006" name="t*" antiName="t*bar" spinType="2" chargeType="2" colType="1" - m0="400.00000" mWidth="2.59687" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.8498980" products="21 6"/> - <channel onMode="1" bRatio="0.0216170" products="22 6"/> - <channel onMode="1" bRatio="0.0300180" products="23 6"/> - <channel onMode="1" bRatio="0.0984660" products="24 5"/> -</particle> - -<particle id="4000011" name="e*-" antiName="e*bar+" spinType="2" chargeType="-3" colType="0" - m0="400.00000" mWidth="0.42896" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.2944480" products="22 11"/> - <channel onMode="1" bRatio="0.1094500" products="23 11"/> - <channel onMode="1" bRatio="0.5961020" products="-24 12"/> - <channel onMode="1" bRatio="0.0000000" products="11 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="11 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="11 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="11 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="11 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="11 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="11 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="11 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="11 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="11 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="11 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="11 16 -16"/> -</particle> - -<particle id="4000012" name="nu*_e0" antiName="nu*_ebar0" spinType="2" chargeType="0" colType="0" - m0="400.00000" mWidth="0.41912" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.3899060" products="23 12"/> - <channel onMode="1" bRatio="0.6100940" products="24 11"/> - <channel onMode="1" bRatio="0.0000000" products="12 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="12 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="12 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="12 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="12 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="12 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="12 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="12 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="12 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="12 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="12 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="12 16 -16"/> -</particle> - -<particle id="4000013" name="mu*-" antiName="mu*bar+" spinType="2" chargeType="-3" colType="0" - m0="400.00000" mWidth="0.42896" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.2944480" products="22 13"/> - <channel onMode="1" bRatio="0.1094500" products="23 13"/> - <channel onMode="1" bRatio="0.5961020" products="-24 14"/> - <channel onMode="1" bRatio="0.0000000" products="13 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="13 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="13 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="13 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="13 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="13 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="13 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="13 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="13 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="13 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="13 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="13 16 -16"/> -</particle> - -<particle id="4000014" name="nu*_mu0" antiName="nu*_mubar0" spinType="2" chargeType="0" colType="0" - m0="400.00000" mWidth="0.41912" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.3899060" products="23 14"/> - <channel onMode="1" bRatio="0.6100940" products="24 13"/> - <channel onMode="1" bRatio="0.0000000" products="14 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="14 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="14 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="14 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="14 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="14 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="14 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="14 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="14 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="14 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="14 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="14 16 -16"/> -</particle> - -<particle id="4000015" name="tau*-" antiName="tau*bar+" spinType="2" chargeType="-3" colType="0" - m0="400.00000" mWidth="0.42896" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.2944480" products="22 15"/> - <channel onMode="1" bRatio="0.1094500" products="23 15"/> - <channel onMode="1" bRatio="0.5961020" products="-24 16"/> - <channel onMode="1" bRatio="0.0000000" products="15 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="15 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="15 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="15 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="15 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="15 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="15 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="15 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="15 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="15 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="15 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="15 16 -16"/> -</particle> - -<particle id="4000016" name="nu*_tau0" antiName="nu*_taubar0" spinType="2" chargeType="0" colType="0" - m0="400.00000" mWidth="0.41912" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.3899060" products="23 16"/> - <channel onMode="1" bRatio="0.6100940" products="24 15"/> - <channel onMode="1" bRatio="0.0000000" products="16 1 -1"/> - <channel onMode="1" bRatio="0.0000000" products="16 2 -2"/> - <channel onMode="1" bRatio="0.0000000" products="16 3 -3"/> - <channel onMode="1" bRatio="0.0000000" products="16 4 -4"/> - <channel onMode="1" bRatio="0.0000000" products="16 5 -5"/> - <channel onMode="1" bRatio="0.0000000" products="16 6 -6"/> - <channel onMode="1" bRatio="0.0000000" products="16 11 -11"/> - <channel onMode="1" bRatio="0.0000000" products="16 12 -12"/> - <channel onMode="1" bRatio="0.0000000" products="16 13 -13"/> - <channel onMode="1" bRatio="0.0000000" products="16 14 -14"/> - <channel onMode="1" bRatio="0.0000000" products="16 15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="16 16 -16"/> -</particle> - -<particle id="4900001" name="Dv" antiName="Dvbar" spinType="2" chargeType="-1" colType="1" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="1 4900101"/> -</particle> - -<particle id="4900002" name="Uv" antiName="Uvbar" spinType="2" chargeType="2" colType="1" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="2 4900101"/> -</particle> - -<particle id="4900003" name="Sv" antiName="Svbar" spinType="2" chargeType="-1" colType="1" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="3 4900101"/> -</particle> - -<particle id="4900004" name="Cv" antiName="Cvbar" spinType="2" chargeType="2" colType="1" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="4 4900101"/> -</particle> - -<particle id="4900005" name="Bv" antiName="Bvbar" spinType="2" chargeType="-1" colType="1" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="5 4900101"/> -</particle> - -<particle id="4900006" name="Tv" antiName="Tvbar" spinType="2" chargeType="2" colType="1" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="6 4900101"/> -</particle> - -<particle id="4900011" name="Ev" antiName="Evbar" spinType="2" chargeType="-3" colType="0" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="11 4900101"/> -</particle> - -<particle id="4900012" name="nuEv" antiName="nuEvbar" spinType="2" chargeType="0" colType="0" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="12 4900101"/> -</particle> - -<particle id="4900013" name="MUv" antiName="MUvbar" spinType="2" chargeType="-3" colType="0" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="13 4900101"/> -</particle> - -<particle id="4900014" name="nuMUv" antiName="nuMUvbar" spinType="2" chargeType="0" colType="0" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="14 4900101"/> -</particle> - -<particle id="4900015" name="TAUv" antiName="TAUvbar" spinType="2" chargeType="-3" colType="0" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="15 4900101"/> -</particle> - -<particle id="4900016" name="nuTAUv" antiName="nuTAUvbar" spinType="2" chargeType="0" colType="0" - m0="400.00000" mWidth="1.00000" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="1.0000000" meMode="103" products="16 4900101"/> -</particle> - -<particle id="4900021" name="gv" spinType="3" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="4900022" name="gammav" spinType="3" chargeType="0" colType="0" - m0="0.00000"> - <channel onMode="0" bRatio="0.05" meMode="91" products="1 -1"/> - <channel onMode="0" bRatio="0.20" meMode="91" products="2 -2"/> - <channel onMode="0" bRatio="0.05" meMode="91" products="3 -3"/> - <channel onMode="0" bRatio="0.20" meMode="91" products="4 -4"/> - <channel onMode="0" bRatio="0.05" meMode="91" products="5 -5"/> - <channel onMode="0" bRatio="0.15" meMode="91" products="11 -11"/> - <channel onMode="0" bRatio="0.00" meMode="91" products="12 -12"/> - <channel onMode="0" bRatio="0.15" meMode="91" products="13 -13"/> - <channel onMode="0" bRatio="0.00" meMode="91" products="14 -14"/> - <channel onMode="0" bRatio="0.15" meMode="91" products="15 -15"/> - <channel onMode="0" bRatio="0.00" meMode="91" products="16 -16"/> -</particle> - -<particle id="4900023" name="Zv" spinType="3" chargeType="0" colType="0" - m0="1000.00000" mWidth="20.00000" mMin="100.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.075" meMode="102" products="1 -1"/> - <channel onMode="1" bRatio="0.075" meMode="102" products="2 -2"/> - <channel onMode="1" bRatio="0.075" meMode="102" products="3 -3"/> - <channel onMode="1" bRatio="0.075" meMode="102" products="4 -4"/> - <channel onMode="1" bRatio="0.075" meMode="102" products="5 -5"/> - <channel onMode="1" bRatio="0.075" meMode="102" products="6 -6"/> - <channel onMode="1" bRatio="0.025" meMode="102" products="11 -11"/> - <channel onMode="1" bRatio="0.025" meMode="102" products="12 -12"/> - <channel onMode="1" bRatio="0.025" meMode="102" products="13 -13"/> - <channel onMode="1" bRatio="0.025" meMode="102" products="14 -14"/> - <channel onMode="1" bRatio="0.025" meMode="102" products="15 -15"/> - <channel onMode="1" bRatio="0.025" meMode="102" products="16 -16"/> - <channel onMode="1" bRatio="0.400" meMode="102" products="4900101 -4900101"/> -</particle> - -<particle id="4900101" name="qv" antiName="qvbar" spinType="1" chargeType="0" colType="0" - m0="100.00000"> -</particle> - -<particle id="4900111" name="pivDiag" spinType="1" chargeType="0" colType="0" - m0="10.00000"> - <channel onMode="0" bRatio="1.23e-6" meMode="91" products="1 -1"/> - <channel onMode="0" bRatio="4.96e-7" meMode="91" products="2 -2"/> - <channel onMode="0" bRatio="0.000492" meMode="91" products="3 -3"/> - <channel onMode="0" bRatio="0.079384" meMode="91" products="4 -4"/> - <channel onMode="0" bRatio="0.8679713" meMode="91" products="5 -5"/> - <channel onMode="0" bRatio="4.0e-9" meMode="91" products="11 -11"/> - <channel onMode="0" bRatio="0.00" meMode="91" products="12 -12"/> - <channel onMode="0" bRatio="0.000184" meMode="91" products="13 -13"/> - <channel onMode="0" bRatio="0.00" meMode="91" products="14 -14"/> - <channel onMode="0" bRatio="0.051967" meMode="91" products="15 -15"/> - <channel onMode="0" bRatio="0.00" meMode="91" products="16 -16"/> -</particle> - -<particle id="4900113" name="rhovDiag" spinType="3" chargeType="0" colType="0" - m0="10.00000"> - <channel onMode="0" bRatio="0.05" meMode="91" products="1 -1"/> - <channel onMode="0" bRatio="0.20" meMode="91" products="2 -2"/> - <channel onMode="0" bRatio="0.05" meMode="91" products="3 -3"/> - <channel onMode="0" bRatio="0.20" meMode="91" products="4 -4"/> - <channel onMode="0" bRatio="0.05" meMode="91" products="5 -5"/> - <channel onMode="0" bRatio="0.15" meMode="91" products="11 -11"/> - <channel onMode="0" bRatio="0.00" meMode="91" products="12 -12"/> - <channel onMode="0" bRatio="0.15" meMode="91" products="13 -13"/> - <channel onMode="0" bRatio="0.00" meMode="91" products="14 -14"/> - <channel onMode="0" bRatio="0.15" meMode="91" products="15 -15"/> - <channel onMode="0" bRatio="0.00" meMode="91" products="16 -16"/> -</particle> - -<particle id="4900211" name="pivUp" antiName="pivDn" spinType="1" chargeType="0" colType="0" - m0="10.00000"> -</particle> - -<particle id="4900213" name="rhovUp" antiName="rhovDn" spinType="3" chargeType="0" colType="0" - m0="10.00000"> -</particle> - -<particle id="4900991" name="ggv" spinType="1" chargeType="0" colType="0" - m0="1.00000"> -</particle> - -<particle id="5000023" name="Z_KK" spinType="3" chargeType="0" colType="0" - m0="4000.00000" mWidth="240.00000" mMin="1000.00000" mMax="0.00000"> -</particle> - -<particle id="5000039" name="Graviton" spinType="5" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="5100021" name="KKgluon*" spinType="3" chargeType="0" colType="2" - m0="1.000e+03" mWidth="1.7e02" mMin="5.000e+01" mMax="0.000e+00"> - <channel onMode="1" bRatio="0.005" products="1 -1"/> - <channel onMode="1" bRatio="0.005" products="2 -2"/> - <channel onMode="1" bRatio="0.005" products="3 -3"/> - <channel onMode="1" bRatio="0.005" products="4 -4"/> - <channel onMode="1" bRatio="0.055" products="5 -5"/> - <channel onMode="1" bRatio="0.925" products="6 -6"/> -</particle> - -<particle id="5100039" name="Graviton*" spinType="5" chargeType="0" colType="0" - m0="1.000e+03" mWidth="1.415e-01" mMin="5.000e+01" mMax="0.000e+00"> - <channel onMode="1" bRatio="0.0633000" products="1 -1"/> - <channel onMode="1" bRatio="0.0633000" products="2 -2"/> - <channel onMode="1" bRatio="0.0633000" products="3 -3"/> - <channel onMode="1" bRatio="0.0632990" products="4 -4"/> - <channel onMode="1" bRatio="0.0632950" products="5 -5"/> - <channel onMode="1" bRatio="0.0562810" products="6 -6"/> - <channel onMode="1" bRatio="0.0204950" products="11 -11"/> - <channel onMode="1" bRatio="0.0204950" products="12 -12"/> - <channel onMode="1" bRatio="0.0204950" products="13 -13"/> - <channel onMode="1" bRatio="0.0204950" products="14 -14"/> - <channel onMode="1" bRatio="0.0204950" products="15 -15"/> - <channel onMode="1" bRatio="0.0204950" products="16 -16"/> - <channel onMode="1" bRatio="0.3279190" products="21 21"/> - <channel onMode="1" bRatio="0.0409900" products="22 22"/> - <channel onMode="1" bRatio="0.0452360" products="23 23"/> - <channel onMode="1" bRatio="0.0901120" products="24 -24"/> - <channel onMode="1" bRatio="0.0" products="25 25"/> -</particle> - -<particle id="9000111" name="a_0(980)0" spinType="1" chargeType="0" colType="0" - m0="0.98350" mWidth="0.06000" mMin="0.70000" mMax="1.50000"> - <channel onMode="1" bRatio="0.9000000" products="221 111"/> - <channel onMode="1" bRatio="0.0250000" products="130 130"/> - <channel onMode="1" bRatio="0.0250000" products="310 310"/> - <channel onMode="1" bRatio="0.0500000" products="321 -321"/> -</particle> - -<particle id="9000211" name="a_0(980)+" antiName="a_0(980)-" spinType="1" chargeType="3" colType="0" - m0="0.98350" mWidth="0.06000" mMin="0.70000" mMax="1.50000"> - <channel onMode="1" bRatio="0.9000000" products="221 211"/> - <channel onMode="1" bRatio="0.1000000" products="321 311"/> -</particle> - -<particle id="9010221" name="f_0(980)" spinType="1" chargeType="0" colType="0" - m0="1.00000" tau0="4e-12"> - <channel onMode="1" bRatio="0.5200000" products="211 -211"/> - <channel onMode="1" bRatio="0.2600000" products="111 111"/> - <channel onMode="1" bRatio="0.1100000" products="321 -321"/> - <channel onMode="1" bRatio="0.0550000" products="130 130"/> - <channel onMode="1" bRatio="0.0550000" products="310 310"/> -</particle> - -<particle id="9900012" name="nu_Re" spinType="2" chargeType="0" colType="0" - m0="500.00000" mWidth="0.00098" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.1987400" products="11 -1 2"/> - <channel onMode="1" bRatio="0.0102040" products="11 -1 4"/> - <channel onMode="1" bRatio="0.0000030" products="11 -1 6"/> - <channel onMode="1" bRatio="0.0102050" products="11 -3 2"/> - <channel onMode="1" bRatio="0.1983560" products="11 -3 4"/> - <channel onMode="1" bRatio="0.0001510" products="11 -3 6"/> - <channel onMode="1" bRatio="0.0000060" products="11 -5 2"/> - <channel onMode="1" bRatio="0.0003670" products="11 -5 4"/> - <channel onMode="1" bRatio="0.0819670" products="11 -5 6"/> - <channel onMode="1" bRatio="0.1987400" products="-11 1 -2"/> - <channel onMode="1" bRatio="0.0102040" products="-11 1 -4"/> - <channel onMode="1" bRatio="0.0000030" products="-11 1 -6"/> - <channel onMode="1" bRatio="0.0102050" products="-11 3 -2"/> - <channel onMode="1" bRatio="0.1983560" products="-11 3 -4"/> - <channel onMode="1" bRatio="0.0001510" products="-11 3 -6"/> - <channel onMode="1" bRatio="0.0000060" products="-11 5 -2"/> - <channel onMode="1" bRatio="0.0003670" products="-11 5 -4"/> - <channel onMode="1" bRatio="0.0819670" products="-11 5 -6"/> - <channel onMode="1" bRatio="0.0000000" products="11 -13 9900014"/> - <channel onMode="1" bRatio="0.0000000" products="-11 13 9900014"/> - <channel onMode="1" bRatio="0.0000000" products="11 -15 9900016"/> - <channel onMode="1" bRatio="0.0000000" products="-11 15 9900016"/> -</particle> - -<particle id="9900014" name="nu_Rmu" spinType="2" chargeType="0" colType="0" - m0="500.00000" mWidth="0.00098" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.1987760" products="13 -1 2"/> - <channel onMode="1" bRatio="0.0102060" products="13 -1 4"/> - <channel onMode="1" bRatio="0.0000030" products="13 -1 6"/> - <channel onMode="1" bRatio="0.0102070" products="13 -3 2"/> - <channel onMode="1" bRatio="0.1983900" products="13 -3 4"/> - <channel onMode="1" bRatio="0.0001510" products="13 -3 6"/> - <channel onMode="1" bRatio="0.0000060" products="13 -5 2"/> - <channel onMode="1" bRatio="0.0003670" products="13 -5 4"/> - <channel onMode="1" bRatio="0.0818930" products="13 -5 6"/> - <channel onMode="1" bRatio="0.1987760" products="-13 1 -2"/> - <channel onMode="1" bRatio="0.0102060" products="-13 1 -4"/> - <channel onMode="1" bRatio="0.0000030" products="-13 1 -6"/> - <channel onMode="1" bRatio="0.0102070" products="-13 3 -2"/> - <channel onMode="1" bRatio="0.1983900" products="-13 3 -4"/> - <channel onMode="1" bRatio="0.0001510" products="-13 3 -6"/> - <channel onMode="1" bRatio="0.0000060" products="-13 5 -2"/> - <channel onMode="1" bRatio="0.0003670" products="-13 5 -4"/> - <channel onMode="1" bRatio="0.0818930" products="-13 5 -6"/> - <channel onMode="1" bRatio="0.0000000" products="13 -11 9900012"/> - <channel onMode="1" bRatio="0.0000000" products="-13 11 9900012"/> - <channel onMode="1" bRatio="0.0000000" products="13 -15 9900016"/> - <channel onMode="1" bRatio="0.0000000" products="-13 15 9900016"/> -</particle> - -<particle id="9900016" name="nu_Rtau" spinType="2" chargeType="0" colType="0" - m0="500.00000" mWidth="0.00097" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.1993440" products="15 -1 2"/> - <channel onMode="1" bRatio="0.0102340" products="15 -1 4"/> - <channel onMode="1" bRatio="0.0000030" products="15 -1 6"/> - <channel onMode="1" bRatio="0.0102360" products="15 -3 2"/> - <channel onMode="1" bRatio="0.1989280" products="15 -3 4"/> - <channel onMode="1" bRatio="0.0001490" products="15 -3 6"/> - <channel onMode="1" bRatio="0.0000060" products="15 -5 2"/> - <channel onMode="1" bRatio="0.0003680" products="15 -5 4"/> - <channel onMode="1" bRatio="0.0807330" products="15 -5 6"/> - <channel onMode="1" bRatio="0.1993440" products="-15 1 -2"/> - <channel onMode="1" bRatio="0.0102340" products="-15 1 -4"/> - <channel onMode="1" bRatio="0.0000030" products="-15 1 -6"/> - <channel onMode="1" bRatio="0.0102360" products="-15 3 -2"/> - <channel onMode="1" bRatio="0.1989280" products="-15 3 -4"/> - <channel onMode="1" bRatio="0.0001490" products="-15 3 -6"/> - <channel onMode="1" bRatio="0.0000060" products="-15 5 -2"/> - <channel onMode="1" bRatio="0.0003680" products="-15 5 -4"/> - <channel onMode="1" bRatio="0.0807330" products="-15 5 -6"/> - <channel onMode="1" bRatio="0.0000000" products="15 -11 9900012"/> - <channel onMode="1" bRatio="0.0000000" products="-15 11 9900012"/> - <channel onMode="1" bRatio="0.0000000" products="15 -13 9900014"/> - <channel onMode="1" bRatio="0.0000000" products="-15 13 9900014"/> -</particle> - -<particle id="9900020" name="gam_diff0" spinType="3" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="9900023" name="Z_R0" spinType="3" chargeType="0" colType="0" - m0="1.200e+03" mWidth="2.672e+01" mMin="5.000e+01" mMax="0.000e+00"> - <channel onMode="1" bRatio="0.1847380" products="1 -1"/> - <channel onMode="1" bRatio="0.1045880" products="2 -2"/> - <channel onMode="1" bRatio="0.1847380" products="3 -3"/> - <channel onMode="1" bRatio="0.1045870" products="4 -4"/> - <channel onMode="1" bRatio="0.1847310" products="5 -5"/> - <channel onMode="1" bRatio="0.0958200" products="6 -6"/> - <channel onMode="1" bRatio="0.0229020" products="11 -11"/> - <channel onMode="1" bRatio="0.0084290" products="12 -12"/> - <channel onMode="1" bRatio="0.0156020" products="9900012 9900012"/> - <channel onMode="1" bRatio="0.0229020" products="13 -13"/> - <channel onMode="1" bRatio="0.0084290" products="14 -14"/> - <channel onMode="1" bRatio="0.0156020" products="9900014 9900014"/> - <channel onMode="1" bRatio="0.0229020" products="15 -15"/> - <channel onMode="1" bRatio="0.0084290" products="16 -16"/> - <channel onMode="1" bRatio="0.0156020" products="9900016 9900016"/> -</particle> - -<particle id="9900024" name="W_R+" antiName="W_R-" spinType="3" chargeType="3" colType="0" - m0="750.00000" mWidth="21.74916" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.2895900" products="-1 2"/> - <channel onMode="1" bRatio="0.0148700" products="-1 4"/> - <channel onMode="1" bRatio="0.0000080" products="-1 6"/> - <channel onMode="1" bRatio="0.0148700" products="-3 2"/> - <channel onMode="1" bRatio="0.2890610" products="-3 4"/> - <channel onMode="1" bRatio="0.0004920" products="-3 6"/> - <channel onMode="1" bRatio="0.0000090" products="-5 2"/> - <channel onMode="1" bRatio="0.0005360" products="-5 4"/> - <channel onMode="1" bRatio="0.2791100" products="-5 6"/> - <channel onMode="1" bRatio="0.0371510" products="-11 9900012"/> - <channel onMode="1" bRatio="0.0371510" products="-13 9900014"/> - <channel onMode="1" bRatio="0.0371500" products="-15 9900016"/> -</particle> - -<particle id="9900041" name="H_L++" antiName="H_L--" spinType="1" chargeType="6" colType="0" - m0="200.00000" mWidth="0.88159" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0902660" products="-11 -11"/> - <channel onMode="1" bRatio="0.0018050" products="-11 -13"/> - <channel onMode="1" bRatio="0.0018050" products="-11 -15"/> - <channel onMode="1" bRatio="0.0902660" products="-13 -13"/> - <channel onMode="1" bRatio="0.0018050" products="-13 -15"/> - <channel onMode="1" bRatio="0.8122630" products="-15 -15"/> - <channel onMode="1" bRatio="0.0017900" products="24 24"/> -</particle> - -<particle id="9900042" name="H_R++" antiName="H_R--" spinType="1" chargeType="6" colType="0" - m0="200.00000" mWidth="0.88001" mMin="50.00000" mMax="0.00000"> - <channel onMode="1" bRatio="0.0904280" products="-11 -11"/> - <channel onMode="1" bRatio="0.0018090" products="-11 -13"/> - <channel onMode="1" bRatio="0.0018080" products="-11 -15"/> - <channel onMode="1" bRatio="0.0904280" products="-13 -13"/> - <channel onMode="1" bRatio="0.0018080" products="-13 -15"/> - <channel onMode="1" bRatio="0.8137200" products="-15 -15"/> - <channel onMode="1" bRatio="0.0000000" products="9900024 9900024"/> -</particle> - -<particle id="9900110" name="rho_diff0" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="9900210" name="pi_diffr+" antiName="pi_diffr-" spinType="0" chargeType="3" colType="0" - m0="0.00000"> -</particle> - -<particle id="9900220" name="omega_di" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="9900330" name="phi_diff" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="9900440" name="J/psi_di" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="9902110" name="n_diffr0" antiName="n_diffrbar0" spinType="0" chargeType="0" colType="0" - m0="0.00000"> -</particle> - -<particle id="9902210" name="p_diffr+" antiName="p_diffrbar-" spinType="0" chargeType="3" colType="0" - m0="0.00000"> -</particle> - -<particle id="9940003" name="J/psi[3S1(8)]" spinType="3" chargeType="0" colType="2" - m0="3.29692" mWidth="0.0" mMin="3.29692" mMax="3.29692"> - <channel onMode="1" bRatio="1.0000000" products="443 21"/> -</particle> - -<particle id="9940005" name="chi_2c[3S1(8)]" spinType="3" chargeType="0" colType="2" - m0="3.7562" mWidth="0.0" mMin="3.7562" mMax="3.7562"> - <channel onMode="1" bRatio="1.0000000" products="445 21"/> -</particle> - -<particle id="9940011" name="chi_0c[3S1(8)]" spinType="3" chargeType="0" colType="2" - m0="3.61475" mWidth="0.0" mMin="3.61475" mMax="3.61475"> - <channel onMode="1" bRatio="1.0000000" products="10441 21"/> -</particle> - -<particle id="9940023" name="chi_1c[3S1(8)]" spinType="3" chargeType="0" colType="2" - m0="3.71066" mWidth="0.0" mMin="3.71066" mMax="3.71066"> - <channel onMode="1" bRatio="1.0000000" products="20443 21"/> -</particle> - -<particle id="9940103" name="psi(2S)[3S1(8)]" spinType="3" chargeType="0" colType="2" - m0="3.88611" mWidth="0.0" mMin="3.88611" mMax="3.88611"> - <channel onMode="1" bRatio="1.0000000" products="100443 21"/> -</particle> - -<particle id="9941003" name="J/psi[1S0(8)]" spinType="1" chargeType="0" colType="2" - m0="3.29692" mWidth="0.0" mMin="3.29692" mMax="3.29692"> - <channel onMode="1" bRatio="1.0000000" products="443 21"/> -</particle> - -<particle id="9941103" name="psi(2S)[1S0(8)]" spinType="1" chargeType="0" colType="2" - m0="3.88611" mWidth="0.0" mMin="3.88611" mMax="3.88611"> - <channel onMode="1" bRatio="1.0000000" products="100443 21"/> -</particle> - -<particle id="9942003" name="J/psi[3PJ(8)]" spinType="3" chargeType="0" colType="2" - m0="3.29692" mWidth="0.0" mMin="3.29692" mMax="3.29692"> - <channel onMode="1" bRatio="1.0000000" products="443 21"/> -</particle> - -<particle id="9942033" name="psi(3770)[3PJ(8)]" spinType="3" chargeType="0" colType="2" - m0="3.97315" mWidth="0.0" mMin="3.97315" mMax="3.97315"> - <channel onMode="1" bRatio="1.0000000" products="30443 21"/> -</particle> - -<particle id="9942103" name="psi(2S)[3PJ(8)]" spinType="3" chargeType="0" colType="2" - m0="3.88611" mWidth="0.0" mMin="3.88611" mMax="3.88611"> - <channel onMode="1" bRatio="1.0000000" products="100443 21"/> -</particle> - -<particle id="9950003" name="Upsilon[3S1(8)]" spinType="3" chargeType="0" colType="2" - m0="9.6603" mWidth="0.0" mMin="9.6603" mMax="9.6603"> - <channel onMode="1" bRatio="1.0000000" products="553 21"/> -</particle> - -<particle id="9950005" name="chi_2b[3S1(8)]" spinType="3" chargeType="0" colType="2" - m0="10.1122" mWidth="0.0" mMin="10.1122" mMax="10.1122"> - <channel onMode="1" bRatio="1.0000000" products="555 21"/> -</particle> - -<particle id="9950011" name="chi_0b[3S1(8)]" spinType="3" chargeType="0" colType="2" - m0="10.0594" mWidth="0.0" mMin="10.0594" mMax="10.0594"> - <channel onMode="1" bRatio="1.0000000" products="10551 21"/> -</particle> - -<particle id="9950023" name="chi_1b[3S1(8)]" spinType="3" chargeType="0" colType="2" - m0="10.09280" mWidth="0.0" mMin="10.09280" mMax="10.09280"> - <channel onMode="1" bRatio="1.0000000" products="20553 21"/> -</particle> - -<particle id="9950103" name="Upsilon(2S)[3S1(8)]" spinType="3" chargeType="0" colType="2" - m0="10.22326" mWidth="0.0" mMin="10.22326" mMax="10.22326"> - <channel onMode="1" bRatio="1.0000000" products="100553 21"/> -</particle> - -<particle id="9950203" name="Upsilon(3S)[3S1(8)]" spinType="3" chargeType="0" colType="2" - m0="10.5552" mWidth="0.0" mMin="10.5552" mMax="10.5552"> - <channel onMode="1" bRatio="1.0000000" products="200553 21"/> -</particle> - -<particle id="9951003" name="Upsilon[1S0(8)]" spinType="1" chargeType="0" colType="2" - m0="9.6603" mWidth="0.0" mMin="9.6603" mMax="9.6603"> - <channel onMode="1" bRatio="1.0000000" products="553 21"/> -</particle> - -<particle id="9951103" name="Upsilon(2S)[1S0(8)]" spinType="1" chargeType="0" colType="2" - m0="10.22326" mWidth="0.0" mMin="10.22326" mMax="10.22326"> - <channel onMode="1" bRatio="1.0000000" products="100553 21"/> -</particle> - -<particle id="9951203" name="Upsilon(3S)[1S0(8)]" spinType="1" chargeType="0" colType="2" - m0="10.5552" mWidth="0.0" mMin="10.5552" mMax="10.5552"> - <channel onMode="1" bRatio="1.0000000" products="200553 21"/> -</particle> - -<particle id="9952003" name="Upsilon[3PJ(8)]" spinType="3" chargeType="0" colType="2" - m0="9.6603" mWidth="0.0" mMin="9.6603" mMax="9.6603"> - <channel onMode="1" bRatio="1.0000000" products="553 21"/> -</particle> - -<particle id="9952103" name="Upsilon(2S)[3PJ(8)]" spinType="3" chargeType="0" colType="2" - m0="10.22326" mWidth="0.0" mMin="10.22326" mMax="10.22326"> - <channel onMode="1" bRatio="1.0000000" products="100553 21"/> -</particle> - -<particle id="9952203" name="Upsilon(3S)[3PJ(8)]" spinType="3" chargeType="0" colType="2" - m0="10.5552" mWidth="0.0" mMin="10.5552" mMax="10.5552"> - <channel onMode="1" bRatio="1.0000000" products="200553 21"/> -</particle> - -<particle id="1000020040" name="4He" antiName="4Hebar" - spinType="1" chargeType="6" colType="0" m0="3.7284"> -</particle> - -<particle id="1000030060" name="6Li" antiName="6Libar" - spinType="1" chargeType="9" colType="0" m0="5.6030512"> -</particle> - -<particle id="1000060120" name="12C" antiName="12Cbar" - spinType="1" chargeType="18" colType="0" m0="11.177929"> -</particle> - -<particle id="1000080160" name="16O" antiName="16Obar" - spinType="1" chargeType="24" colType="0" m0="14.899168"> -</particle> - -<particle id="1000290630" name="63Cu" antiName="63Cubar" - spinType="2" chargeType="87" colType="0" m0="58.618646"> -</particle> - -<particle id="1000541290" name="129Xe" antiName="129Xebar" - spinType="2" chargeType="162" colType="0" m0="120.04645"> -</particle> - -<particle id="1000791970" name="197Au" antiName="197Aubar" - spinType="2" chargeType="237" colType="0" m0="183.47319"> -</particle> - -<particle id="1000822080" name="208Pb" antiName="208Pbbar" - spinType="1" chargeType="246" colType="0" m0="193.72902"> -</particle> ---> - -</chapter> - -<!-- Copyright (C) 2018 Torbjorn Sjostrand --> diff --git a/Framework/Particles/pdxml_reader.py b/Framework/Particles/pdxml_reader.py deleted file mode 100755 index 15dfd81ed22820b73f38e61d87c6013df0fb2fad..0000000000000000000000000000000000000000 --- a/Framework/Particles/pdxml_reader.py +++ /dev/null @@ -1,516 +0,0 @@ -#!/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) - diff --git a/Framework/ProcessSequence/NullModel.h b/Framework/ProcessSequence/NullModel.h deleted file mode 100644 index feb0debd90b9063cab60c48ae96e7c16ffbc5207..0000000000000000000000000000000000000000 --- a/Framework/ProcessSequence/NullModel.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <corsika/process/BaseProcess.h> - -namespace corsika::process { - - class NullModel : public corsika::process::BaseProcess<NullModel> { - - public: - NullModel() = default; - ~NullModel() = default; - }; - -} // namespace corsika::process diff --git a/Framework/ProcessSequence/ProcessTraits.h b/Framework/ProcessSequence/ProcessTraits.h deleted file mode 100644 index e0cb00ebfde8827bbb098dc34d13df1c94a72eb2..0000000000000000000000000000000000000000 --- a/Framework/ProcessSequence/ProcessTraits.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -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 diff --git a/Framework/ProcessSequence/SwitchProcessSequence.h b/Framework/ProcessSequence/SwitchProcessSequence.h deleted file mode 100644 index 9f69e73c40c61c7ad5461ac77120ec4a182e4ce2..0000000000000000000000000000000000000000 --- a/Framework/ProcessSequence/SwitchProcessSequence.h +++ /dev/null @@ -1,386 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <corsika/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 diff --git a/Framework/ProcessSequence/testNullModel.cc b/Framework/ProcessSequence/testNullModel.cc deleted file mode 100644 index 33bfda3d01cda939f6205271cb2d00d3e6d8cb7e..0000000000000000000000000000000000000000 --- a/Framework/ProcessSequence/testNullModel.cc +++ /dev/null @@ -1,29 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <catch2/catch.hpp> - -#include <corsika/process/NullModel.h> - -#include <corsika/geometry/Point.h> -#include <corsika/geometry/RootCoordinateSystem.h> -#include <corsika/geometry/Vector.h> - -#include <corsika/units/PhysicalUnits.h> - -#include <corsika/setup/SetupStack.h> -#include <corsika/setup/SetupTrajectory.h> - -using namespace corsika::units::si; -using namespace corsika::process; -using namespace corsika; - -TEST_CASE("NullModel", "[processes]") { - - SECTION("interface") { [[maybe_unused]] NullModel model; } -} diff --git a/Framework/ProcessSequence/testSwitchProcessSequence.cc b/Framework/ProcessSequence/testSwitchProcessSequence.cc deleted file mode 100644 index a778f2efb5dd587b3fc2341dbb7cb5e205c671ab..0000000000000000000000000000000000000000 --- a/Framework/ProcessSequence/testSwitchProcessSequence.cc +++ /dev/null @@ -1,247 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/process/switch_process/SwitchProcess.h> -#include <corsika/stack/SecondaryView.h> -#include <corsika/stack/Stack.h> -#include <corsika/units/PhysicalUnits.h> - -#include <catch2/catch.hpp> - -#include <algorithm> -#include <random> - -using namespace corsika; -using namespace corsika::process; -using namespace corsika::units::si; - -class TestStackData { - -public: - // these functions are needed for the Stack interface - void Clear() { fData.clear(); } - unsigned int GetSize() const { return fData.size(); } - unsigned int GetCapacity() const { return fData.size(); } - void Copy(int i1, int i2) { fData[i2] = fData[i1]; } - void Swap(int i1, int i2) { std::swap(fData[i1], fData[i2]); } - - // custom data access function - void SetData(unsigned int i, HEPEnergyType v) { fData[i] = v; } - HEPEnergyType GetData(const unsigned int i) const { return fData[i]; } - - // these functions are also needed by the Stack interface - void IncrementSize() { fData.resize(fData.size() + 1); } - void DecrementSize() { - if (fData.size() > 0) { fData.pop_back(); } - } - - // custom private data section -private: - std::vector<HEPEnergyType> fData; -}; - -/** - * From static_cast of a StackIterator over entries in the - * TestStackData class you get and object of type - * TestParticleInterface defined here - * - * It provides Get/Set methods to read and write data to the "Data" - * storage of TestStackData obtained via - * "StackIteratorInterface::GetStackData()", given the index of the - * iterator "StackIteratorInterface::GetIndex()" - * - */ -template <typename StackIteratorInterface> -class TestParticleInterface - : public corsika::stack::ParticleBase<StackIteratorInterface> { - -public: - using corsika::stack::ParticleBase<StackIteratorInterface>::GetStackData; - using corsika::stack::ParticleBase<StackIteratorInterface>::GetIndex; - - /* - The SetParticleData methods are called for creating new entries - on the stack. You can specifiy various parametric versions to - perform this task: - */ - - // default version for particle-creation from input data - void SetParticleData(const std::tuple<HEPEnergyType> v) { SetEnergy(std::get<0>(v)); } - void SetParticleData(TestParticleInterface<StackIteratorInterface>& /*parent*/, - std::tuple<HEPEnergyType> v) { - SetEnergy(std::get<0>(v)); - } - - // here are the fundamental methods for access to TestStackData data - void SetEnergy(HEPEnergyType v) { GetStackData().SetData(GetIndex(), v); } - HEPEnergyType GetEnergy() const { return GetStackData().GetData(GetIndex()); } -}; - -using SimpleStack = corsika::stack::Stack<TestStackData, TestParticleInterface>; - -// see issue 161 -#if defined(__clang__) -using StackTestView = corsika::stack::SecondaryView<TestStackData, TestParticleInterface>; -#elif defined(__GNUC__) || defined(__GNUG__) -using StackTestView = corsika::stack::MakeView<SimpleStack>::type; -#endif - -auto constexpr kgMSq = 1_kg / (1_m * 1_m); - -template <int N> -struct DummyProcess : InteractionProcess<DummyProcess<N>> { - - template <typename TParticle> - corsika::units::si::GrammageType GetInteractionLength(TParticle const&) const { - return N * kgMSq; - } - - template <typename TSecondaries> - corsika::process::EProcessReturn DoInteraction(TSecondaries& vSec) { - // to figure out which process was selected in the end, we produce N - // secondaries for DummyProcess<N> - - for (int i = 0; i < N; ++i) { - vSec.AddSecondary(std::tuple<HEPEnergyType>{vSec.GetEnergy() / N}); - } - - return EProcessReturn::eOk; - } -}; - -using DummyLowEnergyProcess = DummyProcess<1>; -using DummyHighEnergyProcess = DummyProcess<2>; -using DummyAdditionalProcess = DummyProcess<3>; - -TEST_CASE("SwitchProcess from InteractionProcess") { - DummyLowEnergyProcess low; - DummyHighEnergyProcess high; - DummyAdditionalProcess proc; - - switch_process::SwitchProcess switchProcess(low, high, 1_TeV); - auto seq = switchProcess << proc; - - SimpleStack stack; - - SECTION("low energy") { - stack.AddParticle(std::tuple<HEPEnergyType>{0.5_TeV}); - auto p = stack.GetNextParticle(); - - // low energy process returns 1 kg/m² - SECTION("interaction length") { - CHECK(switchProcess.GetInteractionLength(p) / kgMSq == Approx(1)); - CHECK(seq.GetInteractionLength(p) / kgMSq == Approx(3. / 4)); - } - } - - SECTION("high energy") { - stack.AddParticle(std::tuple<HEPEnergyType>{4_TeV}); - auto p = stack.GetNextParticle(); - - // high energy process returns 2 kg/m² - SECTION("interaction length") { - CHECK(switchProcess.GetInteractionLength(p) / kgMSq == Approx(2)); - CHECK(seq.GetInteractionLength(p) / kgMSq == Approx(6. / 5)); - } - - // high energy process creates 2 secondaries - SECTION("SelectInteraction") { - typename SimpleStack::ParticleType theParticle = - stack.GetNextParticle(); // as in corsika::Cascade - StackTestView view(theParticle); - auto projectile = view.GetProjectile(); - - InverseGrammageType invLambda = 0 / kgMSq; - switchProcess.SelectInteraction(p, projectile, 0.01 / kgMSq, invLambda); - - CHECK(view.getSize() == 2); - } - } -} - -TEST_CASE("SwitchProcess from ProcessSequence") { - DummyProcess<1> innerA; - DummyProcess<2> innerB; - DummyProcess<3> outer; - DummyProcess<4> additional; - - auto seq = innerA << innerB; - - switch_process::SwitchProcess switchProcess(seq, outer, 1_TeV); - auto completeSeq = switchProcess << additional; - - SimpleStack stack; - - SECTION("low energy") { - stack.AddParticle(std::tuple<HEPEnergyType>{0.5_TeV}); - auto p = stack.GetNextParticle(); - - SECTION("interaction length") { - CHECK(switchProcess.GetInteractionLength(p) / kgMSq == Approx(2. / 3)); - CHECK(completeSeq.GetInteractionLength(p) / kgMSq == Approx(4. / 7)); - } - - SECTION("SelectInteraction") { - std::vector<int> numberOfSecondaries; - - for (int i = 0; i < 1000; ++i) { - typename SimpleStack::ParticleType theParticle = - stack.GetNextParticle(); // as in corsika::Cascade - StackTestView view(theParticle); - auto projectile = view.GetProjectile(); - - double r = i / 1000.; - InverseGrammageType invLambda = r * 7. / 4 / kgMSq; - - InverseGrammageType accumulator = 0 / kgMSq; - completeSeq.SelectInteraction(p, projectile, invLambda, accumulator); - - numberOfSecondaries.push_back(view.getSize()); - } - - auto const mean = - std::accumulate(numberOfSecondaries.cbegin(), numberOfSecondaries.cend(), 0.) / - numberOfSecondaries.size(); - CHECK(mean == Approx(12. / 7.).margin(0.01)); - } - } - - SECTION("high energy") { - stack.AddParticle(std::tuple<HEPEnergyType>{3.0_TeV}); - auto p = stack.GetNextParticle(); - - SECTION("interaction length") { - CHECK(switchProcess.GetInteractionLength(p) / kgMSq == Approx(3)); - CHECK(completeSeq.GetInteractionLength(p) / kgMSq == Approx(12. / 7.)); - } - - SECTION("SelectInteraction") { - std::vector<int> numberOfSecondaries; - - for (int i = 0; i < 1000; ++i) { - typename SimpleStack::ParticleType theParticle = - stack.GetNextParticle(); // as in corsika::Cascade - StackTestView view(theParticle); - auto projectile = view.GetProjectile(); - - double r = i / 1000.; - InverseGrammageType invLambda = r * 7. / 12. / kgMSq; - - InverseGrammageType accumulator = 0 / kgMSq; - completeSeq.SelectInteraction(p, projectile, invLambda, accumulator); - - numberOfSecondaries.push_back(view.getSize()); - } - - auto const mean = - std::accumulate(numberOfSecondaries.cbegin(), numberOfSecondaries.cend(), 0.) / - numberOfSecondaries.size(); - CHECK(mean == Approx(24. / 7.).margin(0.01)); - } - } -} diff --git a/Framework/ProcessSequence/testSwitchProcessSequence.h b/Framework/ProcessSequence/testSwitchProcessSequence.h deleted file mode 100644 index 709dc8510684c9e7c4dc8ebbb91fa20611ac17ad..0000000000000000000000000000000000000000 --- a/Framework/ProcessSequence/testSwitchProcessSequence.h +++ /dev/null @@ -1,247 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/process/switch_process/SwitchProcess.h> -#include <corsika/stack/SecondaryView.h> -#include <corsika/stack/Stack.h> -#include <corsika/units/PhysicalUnits.h> - -#include <catch2/catch.hpp> - -#include <algorithm> -#include <random> - -using namespace corsika; -using namespace corsika::process; -using namespace corsika::units::si; - -class TestStackData { - -public: - // these functions are needed for the Stack interface - void Clear() { fData.clear(); } - unsigned int GetSize() const { return fData.size(); } - unsigned int GetCapacity() const { return fData.size(); } - void Copy(int i1, int i2) { fData[i2] = fData[i1]; } - void Swap(int i1, int i2) { std::swap(fData[i1], fData[i2]); } - - // custom data access function - void SetData(unsigned int i, HEPEnergyType v) { fData[i] = v; } - HEPEnergyType GetData(const unsigned int i) const { return fData[i]; } - - // these functions are also needed by the Stack interface - void IncrementSize() { fData.resize(fData.size() + 1); } - void DecrementSize() { - if (fData.size() > 0) { fData.pop_back(); } - } - - // custom private data section -private: - std::vector<HEPEnergyType> fData; -}; - -/** - * From static_cast of a StackIterator over entries in the - * TestStackData class you get and object of type - * TestParticleInterface defined here - * - * It provides Get/Set methods to read and write data to the "Data" - * storage of TestStackData obtained via - * "StackIteratorInterface::GetStackData()", given the index of the - * iterator "StackIteratorInterface::GetIndex()" - * - */ -template <typename StackIteratorInterface> -class TestParticleInterface - : public corsika::stack::ParticleBase<StackIteratorInterface> { - -public: - using corsika::stack::ParticleBase<StackIteratorInterface>::GetStackData; - using corsika::stack::ParticleBase<StackIteratorInterface>::GetIndex; - - /* - The SetParticleData methods are called for creating new entries - on the stack. You can specifiy various parametric versions to - perform this task: - */ - - // default version for particle-creation from input data - void SetParticleData(const std::tuple<HEPEnergyType> v) { SetEnergy(std::get<0>(v)); } - void SetParticleData(TestParticleInterface<StackIteratorInterface>& /*parent*/, - std::tuple<HEPEnergyType> v) { - SetEnergy(std::get<0>(v)); - } - - // here are the fundamental methods for access to TestStackData data - void SetEnergy(HEPEnergyType v) { GetStackData().SetData(GetIndex(), v); } - HEPEnergyType GetEnergy() const { return GetStackData().GetData(GetIndex()); } -}; - -using SimpleStack = corsika::stack::Stack<TestStackData, TestParticleInterface>; - -// see issue 161 -#if defined(__clang__) -using StackTestView = corsika::stack::SecondaryView<TestStackData, TestParticleInterface>; -#elif defined(__GNUC__) || defined(__GNUG__) -using StackTestView = corsika::stack::MakeView<SimpleStack>::type; -#endif - -auto constexpr kgMSq = 1_kg / (1_m * 1_m); - -template <int N> -struct DummyProcess : InteractionProcess<DummyProcess<N>> { - - template <typename TParticle> - corsika::units::si::GrammageType GetInteractionLength(TParticle const&) const { - return N * kgMSq; - } - - template <typename TSecondaries> - corsika::process::EProcessReturn DoInteraction(TSecondaries& vSec) { - // to figure out which process was selected in the end, we produce N - // secondaries for DummyProcess<N> - - for (int i = 0; i < N; ++i) { - vSec.AddSecondary(std::tuple<HEPEnergyType>{vSec.GetEnergy() / N}); - } - - return EProcessReturn::eOk; - } -}; - -using DummyLowEnergyProcess = DummyProcess<1>; -using DummyHighEnergyProcess = DummyProcess<2>; -using DummyAdditionalProcess = DummyProcess<3>; - -TEST_CASE("SwitchProcess from InteractionProcess") { - DummyLowEnergyProcess low; - DummyHighEnergyProcess high; - DummyAdditionalProcess proc; - - switch_process::SwitchProcess switchProcess(low, high, 1_TeV); - auto seq = switchProcess << proc; - - SimpleStack stack; - - SECTION("low energy") { - stack.AddParticle(std::tuple<HEPEnergyType>{0.5_TeV}); - auto p = stack.GetNextParticle(); - - // low energy process returns 1 kg/m² - SECTION("interaction length") { - REQUIRE(switchProcess.GetInteractionLength(p) / kgMSq == Approx(1)); - REQUIRE(seq.GetTotalInteractionLength(p) / kgMSq == Approx(3. / 4)); - } - } - - SECTION("high energy") { - stack.AddParticle(std::tuple<HEPEnergyType>{4_TeV}); - auto p = stack.GetNextParticle(); - - // high energy process returns 2 kg/m² - SECTION("interaction length") { - REQUIRE(switchProcess.GetInteractionLength(p) / kgMSq == Approx(2)); - REQUIRE(seq.GetTotalInteractionLength(p) / kgMSq == Approx(6. / 5)); - } - - // high energy process creates 2 secondaries - SECTION("SelectInteraction") { - typename SimpleStack::ParticleType theParticle = - stack.GetNextParticle(); // as in corsika::Cascade - StackTestView view(theParticle); - auto projectile = view.GetProjectile(); - - InverseGrammageType invLambda = 0 / kgMSq; - switchProcess.SelectInteraction(p, projectile, 0.01 / kgMSq, invLambda); - - REQUIRE(view.getSize() == 2); - } - } -} - -TEST_CASE("SwitchProcess from ProcessSequence") { - DummyProcess<1> innerA; - DummyProcess<2> innerB; - DummyProcess<3> outer; - DummyProcess<4> additional; - - auto seq = innerA << innerB; - - switch_process::SwitchProcess switchProcess(seq, outer, 1_TeV); - auto completeSeq = switchProcess << additional; - - SimpleStack stack; - - SECTION("low energy") { - stack.AddParticle(std::tuple<HEPEnergyType>{0.5_TeV}); - auto p = stack.GetNextParticle(); - - SECTION("interaction length") { - REQUIRE(switchProcess.GetInteractionLength(p) / kgMSq == Approx(2. / 3)); - REQUIRE(completeSeq.GetTotalInteractionLength(p) / kgMSq == Approx(4. / 7)); - } - - SECTION("SelectInteraction") { - std::vector<int> numberOfSecondaries; - - for (int i = 0; i < 1000; ++i) { - typename SimpleStack::ParticleType theParticle = - stack.GetNextParticle(); // as in corsika::Cascade - StackTestView view(theParticle); - auto projectile = view.GetProjectile(); - - double r = i / 1000.; - InverseGrammageType invLambda = r * 7. / 4 / kgMSq; - - InverseGrammageType accumulator = 0 / kgMSq; - completeSeq.SelectInteraction(p, projectile, invLambda, accumulator); - - numberOfSecondaries.push_back(view.getSize()); - } - - auto const mean = - std::accumulate(numberOfSecondaries.cbegin(), numberOfSecondaries.cend(), 0.) / - numberOfSecondaries.size(); - REQUIRE(mean == Approx(12. / 7.).margin(0.01)); - } - } - - SECTION("high energy") { - stack.AddParticle(std::tuple<HEPEnergyType>{3.0_TeV}); - auto p = stack.GetNextParticle(); - - SECTION("interaction length") { - REQUIRE(switchProcess.GetInteractionLength(p) / kgMSq == Approx(3)); - REQUIRE(completeSeq.GetTotalInteractionLength(p) / kgMSq == Approx(12. / 7.)); - } - - SECTION("SelectInteraction") { - std::vector<int> numberOfSecondaries; - - for (int i = 0; i < 1000; ++i) { - typename SimpleStack::ParticleType theParticle = - stack.GetNextParticle(); // as in corsika::Cascade - StackTestView view(theParticle); - auto projectile = view.GetProjectile(); - - double r = i / 1000.; - InverseGrammageType invLambda = r * 7. / 12. / kgMSq; - - InverseGrammageType accumulator = 0 / kgMSq; - completeSeq.SelectInteraction(p, projectile, invLambda, accumulator); - - numberOfSecondaries.push_back(view.getSize()); - } - - auto const mean = - std::accumulate(numberOfSecondaries.cbegin(), numberOfSecondaries.cend(), 0.) / - numberOfSecondaries.size(); - REQUIRE(mean == Approx(24. / 7.).margin(0.01)); - } - } -} diff --git a/Framework/Utilities/CorsikaData.cc b/Framework/Utilities/CorsikaData.cc deleted file mode 100644 index 5cb58ea7660a033262404a6433767871e264dd73..0000000000000000000000000000000000000000 --- a/Framework/Utilities/CorsikaData.cc +++ /dev/null @@ -1,22 +0,0 @@ -/* - * (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/utl/CorsikaData.h> - -#include <cstdlib> -#include <stdexcept> -#include <string> - -std::string corsika::utl::CorsikaData(std::string const& key) { - if (auto const* p = std::getenv("CORSIKA_DATA"); p != nullptr) { - auto const path = std::string(p) + "/" + key; - return path; - } else { - throw std::runtime_error("CORSIKA_DATA not set"); - } -} diff --git a/Framework/Utilities/CorsikaData.h b/Framework/Utilities/CorsikaData.h deleted file mode 100644 index ed635f806c7cc5d8b6ad872c2cab28243183d091..0000000000000000000000000000000000000000 --- a/Framework/Utilities/CorsikaData.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * (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. - */ - -#ifndef CORSIKA_CORSIKADATA_H -#define CORSIKA_CORSIKADATA_H - -#include <string> - -namespace corsika::utl { - /** - * returns the full path of the file \p filename within the CORSIKA_DATA directory - */ - std::string CorsikaData(std::string const& filename); -} // namespace corsika::utl - -#endif // CORSIKA_CORSIKADATA_H diff --git a/Framework/Utilities/SaveBoostHistogram.hpp b/Framework/Utilities/SaveBoostHistogram.hpp deleted file mode 100644 index 508c982aa4b0e06444eb0d95186d3e5138381a9d..0000000000000000000000000000000000000000 --- a/Framework/Utilities/SaveBoostHistogram.hpp +++ /dev/null @@ -1,115 +0,0 @@ -/* - * (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/third_party/cnpy/cnpy.hpp> - -#include <boost/histogram.hpp> - -#include <functional> -#include <memory> -#include <numeric> -#include <utility> -#include <vector> -#include <string> - -#pragma once - -namespace corsika::utl { - - enum class SaveMode { overwrite, append }; - - /** - * This functions saves a boost::histogram into a numpy file. Only rather basic axis - * types are supported: regular, variable, integer, category<int>. Only "ordinary" bin - * counts (i.e. a double or int) are supported, nothing fancy like profiles. - * - * Note that this function makes a temporary, dense copy of the histogram, which could - * be an issue for huge sizes (e.g. for high dimensions) - */ - template <class Axes, class Storage> - inline void save_hist(boost::histogram::histogram<Axes, Storage> const& h, - std::string const& filename, SaveMode mode = SaveMode::append) { - unsigned const rank = h.rank(); - - // append vs. overwrite - const std::string mode_str = (mode == SaveMode::append ? "a" : "w"); - - std::vector<size_t> axes_dims; - axes_dims.reserve(rank); - - auto overflow = std::make_unique<bool[]>(rank); - auto underflow = std::make_unique<bool[]>(rank); - - std::vector<char> axis_types; - axis_types.reserve(rank); - - for (unsigned int i = 0; i < rank; ++i) { - auto const& ax = h.axis(i); - unsigned const has_underflow = (ax.options() & 0x01) ? 1 : 0; - unsigned const has_overflow = (ax.options() & 0x02) ? 1 : 0; - - underflow[i] = has_underflow; - overflow[i] = has_overflow; - - axes_dims.emplace_back(ax.size() + has_underflow + has_overflow); - - if (ax.continuous()) { - axis_types.push_back('c'); - std::vector<double> ax_edges; - ax_edges.reserve(ax.size() + 1); - - for (int j = 0; j < ax.size(); ++j) { ax_edges.push_back(ax.bin(j).lower()); } - - ax_edges.push_back(ax.bin(ax.size() - 1).upper()); - - cnpy::npz_save(filename, std::string{"binedges_"} + std::to_string(i), - ax_edges.data(), {ax_edges.size()}, mode_str); - } else { - axis_types.push_back('d'); - std::vector<int64_t> bins; // we assume that discrete axes have integer bins - bins.reserve(ax.size()); - - for (int j = 0; j < ax.size(); ++j) { bins.push_back(ax.bin(j).lower()); } - - cnpy::npz_save(filename, std::string{"bins_"} + std::to_string(i), bins.data(), - {bins.size()}, mode_str); - } - } - - cnpy::npz_save(filename, std::string{"axistypes"}, axis_types.data(), {rank}, - mode_str); - cnpy::npz_save(filename, std::string{"overflow"}, overflow.get(), {rank}, mode_str); - cnpy::npz_save(filename, std::string{"underflow"}, underflow.get(), {rank}, mode_str); - - auto const prod_axis_size = std::accumulate(axes_dims.cbegin(), axes_dims.cend(), - unsigned{1}, std::multiplies<>()); - auto temp = std::make_unique<float[]>(prod_axis_size); - - assert(prod_axis_size == h.size()); - - // reduce multi-dim. to 1-dim, row-major (i.e., last axis index is contiguous in - // memory) take special care of underflow bins which have -1 as index and thus need - // to be shifted by +1 - - for (auto&& x : indexed(h, boost::histogram::coverage::all)) { - int p = 0; - - for (unsigned axis_index = 0; axis_index < rank; ++axis_index) { - int const offset_underflow = (h.axis(axis_index).options() & 0x01) ? 1 : 0; - auto k = x.index(axis_index) + offset_underflow; - p = k + p * axes_dims.at(axis_index); - } - - temp[p] = *x; - } - - cnpy::npz_save(filename, "data", temp.get(), axes_dims, mode_str); - // In Python this array can directly be assigned to a histogram view if that - // histogram has its axes correspondingly: hist.view(flow=True)[:] = file['data'] - } -} // namespace corsika::utl diff --git a/Framework/Utilities/quartic.cpp b/Framework/Utilities/quartic.cpp deleted file mode 100644 index 88da8cc905fc94307d9e89104a9d47add6747702..0000000000000000000000000000000000000000 --- a/Framework/Utilities/quartic.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/* - * (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 <cmath> -#include "quartic.h" - -//--------------------------------------------------------------------------- -// solve cubic equation x^3 + a*x^2 + b*x + c -// x - array of size 3 -// In case 3 real roots: => x[0], x[1], x[2], return 3 -// 2 real roots: x[0], x[1], return 2 -// 1 real root : x[0], x[1] ± i*x[2], return 1 -unsigned int solveP3(double* x, double a, double b, double c) { - double a2 = a * a; - double q = (a2 - 3 * b) / 9; - double r = (a * (2 * a2 - 9 * b) + 27 * c) / 54; - double r2 = r * r; - double q3 = q * q * q; - double A, B; - if (r2 < q3) { - double t = r / sqrt(q3); - if (t < -1) t = -1; - if (t > 1) t = 1; - t = acos(t); - a /= 3; - q = -2 * sqrt(q); - x[0] = q * cos(t / 3) - a; - x[1] = q * cos((t + M_2PI) / 3) - a; - x[2] = q * cos((t - M_2PI) / 3) - a; - return 3; - } else { - A = -pow(fabs(r) + sqrt(r2 - q3), 1. / 3); - if (r < 0) A = -A; - B = (0 == A ? 0 : q / A); - - a /= 3; - x[0] = (A + B) - a; - x[1] = -0.5 * (A + B) - a; - x[2] = 0.5 * sqrt(3.) * (A - B); - if (fabs(x[2]) < eps) { - x[2] = x[1]; - return 2; - } - - return 1; - } -} - -//--------------------------------------------------------------------------- -// solve quartic equation x^4 + a*x^3 + b*x^2 + c*x + d -// Attention - this function returns dynamically allocated array. It has to be released -// afterwards. -DComplex* solve_quartic(double a, double b, double c, double d) { - double a3 = -b; - double b3 = a * c - 4. * d; - double c3 = -a * a * d - c * c + 4. * b * d; - - // cubic resolvent - // y^3 − b*y^2 + (ac−4d)*y − a^2*d−c^2+4*b*d = 0 - - double x3[3]; - unsigned int iZeroes = solveP3(x3, a3, b3, c3); - - double q1, q2, p1, p2, D, sqD, y; - - y = x3[0]; - // The essence - choosing Y with maximal absolute value. - if (iZeroes != 1) { - if (fabs(x3[1]) > fabs(y)) y = x3[1]; - if (fabs(x3[2]) > fabs(y)) y = x3[2]; - } - - // h1+h2 = y && h1*h2 = d <=> h^2 -y*h + d = 0 (h === q) - - D = y * y - 4 * d; - if (fabs(D) < eps) // in other words - D==0 - { - q1 = q2 = y * 0.5; - // g1+g2 = a && g1+g2 = b-y <=> g^2 - a*g + b-y = 0 (p === g) - D = a * a - 4 * (b - y); - if (fabs(D) < eps) // in other words - D==0 - p1 = p2 = a * 0.5; - - else { - sqD = sqrt(D); - p1 = (a + sqD) * 0.5; - p2 = (a - sqD) * 0.5; - } - } else { - sqD = sqrt(D); - q1 = (y + sqD) * 0.5; - q2 = (y - sqD) * 0.5; - // g1+g2 = a && g1*h2 + g2*h1 = c ( && g === p ) Krammer - p1 = (a * q1 - c) / (q1 - q2); - p2 = (c - a * q2) / (q1 - q2); - } - - DComplex* retval = new DComplex[4]; - - // solving quadratic eq. - x^2 + p1*x + q1 = 0 - D = p1 * p1 - 4 * q1; - if (D < 0.0) { - retval[0].real(-p1 * 0.5); - retval[0].imag(sqrt(-D) * 0.5); - retval[1] = std::conj(retval[0]); - } else { - sqD = sqrt(D); - retval[0].real((-p1 + sqD) * 0.5); - retval[1].real((-p1 - sqD) * 0.5); - } - - // solving quadratic eq. - x^2 + p2*x + q2 = 0 - D = p2 * p2 - 4 * q2; - if (D < 0.0) { - retval[2].real(-p2 * 0.5); - retval[2].imag(sqrt(-D) * 0.5); - retval[3] = std::conj(retval[2]); - } else { - sqD = sqrt(D); - retval[2].real((-p2 + sqD) * 0.5); - retval[3].real((-p2 - sqD) * 0.5); - } - - return retval; -} diff --git a/Framework/Utilities/quartic.h b/Framework/Utilities/quartic.h deleted file mode 100644 index ac96afb10e57cff019344d650a1df141ad69b223..0000000000000000000000000000000000000000 --- a/Framework/Utilities/quartic.h +++ /dev/null @@ -1,66 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2016 by Саша Миленковић * - * sasa.milenkovic.xyz@gmail.com * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * ( http://www.gnu.org/licenses/gpl-3.0.en.html ) * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#ifndef QUARTIC_H_INCLUDED -#define QUARTIC_H_INCLUDED - -#include <complex> - -const double PI = 3.141592653589793238463L; -const double M_2PI = 2 * PI; -const double eps = 1e-12; - -typedef std::complex<double> DComplex; - -//--------------------------------------------------------------------------- -// useful for testing -inline DComplex polinom_2(DComplex x, double a, double b) { - // Horner's scheme for x*x + a*x + b - return x * (x + a) + b; -} - -//--------------------------------------------------------------------------- -// useful for testing -inline DComplex polinom_3(DComplex x, double a, double b, double c) { - // Horner's scheme for x*x*x + a*x*x + b*x + c; - return x * (x * (x + a) + b) + c; -} - -//--------------------------------------------------------------------------- -// useful for testing -inline DComplex polinom_4(DComplex x, double a, double b, double c, double d) { - // Horner's scheme for x*x*x*x + a*x*x*x + b*x*x + c*x + d; - return x * (x * (x * (x + a) + b) + c) + d; -} - -//--------------------------------------------------------------------------- -// x - array of size 3 -// In case 3 real roots: => x[0], x[1], x[2], return 3 -// 2 real roots: x[0], x[1], return 2 -// 1 real root : x[0], x[1] ± i*x[2], return 1 -unsigned int solveP3(double* x, double a, double b, double c); - -//--------------------------------------------------------------------------- -// solve quartic equation x^4 + a*x^3 + b*x^2 + c*x + d -// Attention - this function returns dynamically allocated array. It has to be released -// afterwards. -DComplex* solve_quartic(double a, double b, double c, double d); - -#endif // QUARTIC_H_INCLUDED diff --git a/Framework/Utilities/testSaveBoostHistogram.cc b/Framework/Utilities/testSaveBoostHistogram.cc deleted file mode 100644 index aa05a1947a9c989724dee5244f41859fa634f59f..0000000000000000000000000000000000000000 --- a/Framework/Utilities/testSaveBoostHistogram.cc +++ /dev/null @@ -1,39 +0,0 @@ -/* - * (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 <catch2/catch.hpp> -#include <corsika/utl/SaveBoostHistogram.hpp> - -#include <random> - -namespace bh = boost::histogram; - -TEST_CASE("SaveHistogram") { - std::mt19937 rng; - std::normal_distribution n1{2., 6.}; - std::exponential_distribution e{1.}; - std::uniform_int_distribution u{1, 10}; - std::uniform_real_distribution<double> r{-3, 3}; - - auto h = bh::make_histogram( - bh::axis::regular{5, 0, 10, "normal"}, bh::axis::regular{3, 0, 4, "exponential"}, - bh::axis::category<int>{{2, 3, 5, 7}, "integer category"}, - bh::axis::regular<double, bh::use_default, bh::use_default, - bh::axis::option::growth_t>{10, -1, 1, "integer category"}); - - for (int i{0}; i < 100'000; ++i) { - auto const a = n1(rng); - auto const b = e(rng); - auto const c = u(rng); - auto const d = r(rng); - - h(a, b, c, d); - } - - corsika::utl::save_hist(h, "hist.npz"); -} diff --git a/Processes/AnalyticProcessors/CMakeLists.txt b/Processes/AnalyticProcessors/CMakeLists.txt deleted file mode 100644 index 874c714de11efbd3665cf30f93ed7a150ce3a527..0000000000000000000000000000000000000000 --- a/Processes/AnalyticProcessors/CMakeLists.txt +++ /dev/null @@ -1,58 +0,0 @@ -set ( - MODEL_SOURCES - ) - -set ( - MODEL_HEADERS - ExecTime.h - ExecTimeImpl.h - ImplBoundary.h - ImplContinuous.h - ImplDecay.h - ImplInteraction.h - ImplSecondaries.h - ) - -set ( - MODEL_NAMESPACE - corsika/process/analytic_processors - ) - -add_library (AnalyticProcessors INTERFACE) #STATIC ${MODEL_SOURCES}) -CORSIKA_COPY_HEADERS_TO_NAMESPACE (AnalyticProcessors ${MODEL_NAMESPACE} ${MODEL_HEADERS}) - -target_link_libraries(AnalyticProcessors - INTERFACE - CORSIKAlogging) - -target_include_directories ( - AnalyticProcessors - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -install ( - TARGETS AnalyticProcessors - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - ) - - -# -------------------- -# code unit testing -CORSIKA_ADD_TEST (testExecTime - SOURCES - testExecTime.cc - ${MODEL_HEADERS} -) - -target_link_libraries ( - testExecTime - AnalyticProcessors - ExampleProcessors - CORSIKAtesting - C8::ext::eigen3 - CORSIKAthirdparty # for catch2 - ) - diff --git a/Processes/AnalyticProcessors/ExecTime.h b/Processes/AnalyticProcessors/ExecTime.h deleted file mode 100644 index e80513ccc7d9299df0f10202c1018d32cbd0d01b..0000000000000000000000000000000000000000 --- a/Processes/AnalyticProcessors/ExecTime.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * (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 <type_traits> - -#include <corsika/logging/Logging.h> - -#include <corsika/process/BoundaryCrossingProcess.h> -#include <corsika/process/ContinuousProcess.h> -#include <corsika/process/DecayProcess.h> -#include <corsika/process/InteractionProcess.h> -#include <corsika/process/SecondariesProcess.h> -#include <corsika/process/StackProcess.h> - -#include <corsika/process/analytic_processors/ImplBoundary.h> -#include <corsika/process/analytic_processors/ImplContinuous.h> -#include <corsika/process/analytic_processors/ImplDecay.h> -#include <corsika/process/analytic_processors/ImplInteraction.h> -#include <corsika/process/analytic_processors/ImplSecondaries.h> - -namespace corsika::process { - namespace analytic_processors { - - /// Time measurement of individual processes - /** This class allowes to log the runtime spend in all default calls to the process. - * No distinction is made between individual function calls of the process, the - * runtime is accumulated and or avaraged without differentiation. - * - * The class is currently only implemented for BoundaryProcess, ContinuousProcess, - * DecayProcess, InteractionProcess and SecondariesProcess and captures only the - * according functions of the base class given as template parameter. Trying to access - * BoundaryProcess functions with a DecayProcess as template parameter will currently - * give long errormessages. - * - * Inherits all functionality of the class that should be measured, this includes - * functions like getters and setters - */ - template <typename T> - class ExecTime - : public Boundary<T, std::is_base_of<corsika::process::BoundaryCrossingProcess< - typename T::TProcessType>, - T>::value>, - public Continuous<T, std::is_base_of<corsika::process::ContinuousProcess< - typename T::TProcessType>, - T>::value>, - public Decay< - T, std::is_base_of<corsika::process::DecayProcess<typename T::TProcessType>, - T>::value>, - public Interaction<T, std::is_base_of<corsika::process::InteractionProcess< - typename T::TProcessType>, - T>::value>, - public Secondaries<T, std::is_base_of<corsika::process::SecondariesProcess< - typename T::TProcessType>, - T>::value> { - static_assert(std::is_base_of<corsika::process::_BaseProcess, T>::value, - "error message"); - - public: - ~ExecTime() { - C8LOG_INFO("Accumulated time spend in process {} is {} µs", typeid(T).name(), - this->sumTime()); - } - }; - } // namespace analytic_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/AnalyticProcessors/ExecTimeImpl.h b/Processes/AnalyticProcessors/ExecTimeImpl.h deleted file mode 100644 index 1dffcf1fa03608645394c51eea2d26be12a7a3a9..0000000000000000000000000000000000000000 --- a/Processes/AnalyticProcessors/ExecTimeImpl.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * (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 <type_traits> - -#include <corsika/logging/Logging.h> - -#include <corsika/process/BoundaryCrossingProcess.h> -#include <corsika/process/ContinuousProcess.h> -#include <corsika/process/DecayProcess.h> -#include <corsika/process/InteractionProcess.h> -#include <corsika/process/SecondariesProcess.h> -#include <corsika/process/StackProcess.h> - -#include <corsika/process/analytic_processors/ImplBoundary.h> -#include <corsika/process/analytic_processors/ImplContinuous.h> -#include <corsika/process/analytic_processors/ImplDecay.h> -#include <corsika/process/analytic_processors/ImplInteraction.h> -#include <corsika/process/analytic_processors/ImplSecondaries.h> - -namespace corsika::process { - namespace analytic_processors { - - namespace detail { - - /// Process type independent functionality of the Process runtime measurement class - /// ExecTime - /** Inherits all functionality of the class that should be sampled, this includes - * special functions for getters and setters - * - * - * - */ - template <typename T> - class ExecTimeImpl : public T { - private: - std::chrono::high_resolution_clock::time_point startTime_; - std::chrono::duration<double, std::micro> cumulatedTime_; - volatile double mean_; - volatile double mean2_; - volatile double min_; - volatile double max_; - volatile long long n_; - - protected: - public: - using _T = T; - - ExecTimeImpl() { - min_ = std::numeric_limits<double>::max(); - cumulatedTime_ = std::chrono::duration<double, std::micro>(0); - max_ = 0; - mean_ = 0; - mean2_ = 0; - n_ = 0; - } - - /// Starts the internal - inline void start() { startTime_ = std::chrono::high_resolution_clock::now(); } - - /// Stops the internal timer and updates measurements - inline void stop() { - auto end = std::chrono::high_resolution_clock::now(); - std::chrono::duration<double, std::micro> timeDiv = - std::chrono::duration_cast<std::chrono::duration<double, std::micro> >( - end - startTime_); - - this->update(timeDiv); - } - - /// Updates the floating mean and variance as well as the global min and max of - /// the sampled runtimes - void update(std::chrono::duration<double, std::micro> timeDif) { - - cumulatedTime_ += timeDif; - n_ = n_ + 1; - - if (max_ < timeDif.count()) max_ = timeDif.count(); - - if (timeDif.count() < min_) min_ = timeDif.count(); - - double delta = timeDif.count() - mean_; - mean_ += delta / static_cast<double>(n_); - - double delta2 = timeDif.count() - mean_; - - mean2_ += delta * delta2; - } - - inline double mean() const { return mean_; } - inline double min() const { return min_; } - inline double max() const { return max_; } - inline double var() const { return mean2_ / n_; } - inline double sumTime() const { return cumulatedTime_.count(); } - }; - - } // namespace detail - - } // namespace analytic_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/AnalyticProcessors/ImplBoundary.h b/Processes/AnalyticProcessors/ImplBoundary.h deleted file mode 100644 index 681c7048f91c448ffb067d5870d2bce291c99bc1..0000000000000000000000000000000000000000 --- a/Processes/AnalyticProcessors/ImplBoundary.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * (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/process/analytic_processors/ExecTimeImpl.h> - -#include <corsika/analytics/ClassTimer.h> - -namespace corsika::process { - namespace analytic_processors { - - namespace detail { - template <typename T> - class ExecTimeImpl; - } - - /// Base for Boundary Implementation - template <class T, bool TCheck> - class Boundary; - - /// Specialisation if class is not BoundaryProcess - template <class T> - class Boundary<T, false> {}; - - /// Specialisation if class is a BoundaryProcess - template <class T> - class Boundary<T, true> : public detail::ExecTimeImpl<T> { - private: - public: - template <typename Particle, typename VTNType> - EProcessReturn DoBoundaryCrossing(Particle& p, VTNType const& from, - VTNType const& to) { - - // Use of the ClassTimer function -> see ClassTimer for documentation - auto tc = corsika::analytics::ClassTimer< - EProcessReturn (detail::ExecTimeImpl<T>::_T::*)(Particle&, VTNType const&, - VTNType const&), - &detail::ExecTimeImpl<T>::_T::template DoBoundaryCrossing<Particle, VTNType>>( - *this); - - EProcessReturn r = tc.call(p, from, to); - this->update( - std::chrono::duration_cast<std::chrono::duration<double, std::micro>>( - tc.getTime())); - return r; - } - }; - } // namespace analytic_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/AnalyticProcessors/ImplContinuous.h b/Processes/AnalyticProcessors/ImplContinuous.h deleted file mode 100644 index 06a0b9b8dbf8dd8375c46f807f2f7681b81dac2c..0000000000000000000000000000000000000000 --- a/Processes/AnalyticProcessors/ImplContinuous.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * (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/process/ContinuousProcess.h> - -#include <corsika/process/analytic_processors/ExecTimeImpl.h> - -namespace corsika::process { - namespace analytic_processors { - - namespace detail { - template <typename T> - class ExecTimeImpl; - } - - /// Base for Continuous Implementation - template <class T, bool TCheck> - class Continuous; - - /// Specialisation if class is not ContinuousProcess - template <class T> - class Continuous<T, false> {}; - - /// Specialisation if class is a ContinuousProcess - template <class T> - class Continuous<T, true> : public detail::ExecTimeImpl<T> { - private: - public: - template <typename Particle, typename Track> - EProcessReturn DoContinuous(Particle& p, Track const& t) { - this->start(); - auto r = detail::ExecTimeImpl<T>::DoContinuous(p, t); - this->stop(); - return r; - } - - template <typename Particle, typename Track> - units::si::LengthType MaxStepLength(Particle const& p, Track const& track) const { - this->start(); - auto r = T::MaxStepLength(p, track); - this->stop(); - return r; - } - }; - } // namespace analytic_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/AnalyticProcessors/ImplDecay.h b/Processes/AnalyticProcessors/ImplDecay.h deleted file mode 100644 index b514c835474250b0f529ad5c0c0c9c86e121a7f2..0000000000000000000000000000000000000000 --- a/Processes/AnalyticProcessors/ImplDecay.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * (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/process/DecayProcess.h> - -#include <corsika/process/analytic_processors/ExecTimeImpl.h> - -namespace corsika::process { - namespace analytic_processors { - - namespace detail { - template <typename T> - class ExecTimeImpl; - } - - /// Base for Decay Implementation - template <class T, bool TCheck> - class Decay; - - /// Specialisation if class is not DecayProcess - template <class T> - class Decay<T, false> {}; - - /// Specialisation if class is a DecayProcess - template <class T> - class Decay<T, true> : public detail::ExecTimeImpl<T> { - private: - public: - template <typename Particle> - EProcessReturn DoDecay(Particle& p) { - this->start(); - auto r = detail::ExecTimeImpl<T>::DoDecay(p); - this->stop(); - return r; - } - - template <typename Particle> - corsika::units::si::TimeType GetLifetime(Particle& p) { - this->start(); - auto r = T::GetLifetime(p); - this->stop(); - return r; - } - }; - } // namespace analytic_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/AnalyticProcessors/ImplInteraction.h b/Processes/AnalyticProcessors/ImplInteraction.h deleted file mode 100644 index 7b9977fa62ef93a022ce790759d43621e391422e..0000000000000000000000000000000000000000 --- a/Processes/AnalyticProcessors/ImplInteraction.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * (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/process/InteractionProcess.h> - -#include <corsika/process/analytic_processors/ExecTimeImpl.h> - -namespace corsika::process { - namespace analytic_processors { - - namespace detail { - template <typename T> - class ExecTimeImpl; - } - - template <class T, bool TCheck> - class Interaction; - - template <class T> - class Interaction<T, false> {}; - - template <class T> - class Interaction<T, true> : public detail::ExecTimeImpl<T> { - private: - public: - template <typename Particle> - EProcessReturn DoInteraction(Particle& p) { - this->start(); - auto r = detail::ExecTimeImpl<T>::DoInteraction(p); - this->stop(); - return r; - } - - template <typename Particle> - corsika::units::si::GrammageType GetInteractionLength(Particle& p) { - this->start(); - auto r = T::GetInteractionLength(p); - this->stop(); - return r; - } - }; - } // namespace analytic_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/AnalyticProcessors/ImplSecondaries.h b/Processes/AnalyticProcessors/ImplSecondaries.h deleted file mode 100644 index 9e104a945037f5ab1ea26af61a7b3000abcb7b8b..0000000000000000000000000000000000000000 --- a/Processes/AnalyticProcessors/ImplSecondaries.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * (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/process/SecondariesProcess.h> - -#include <corsika/process/analytic_processors/ExecTimeImpl.h> - -namespace corsika::process { - namespace analytic_processors { - - namespace detail { - template <typename T> - class ExecTimeImpl; - } - - template <class T, bool TCheck> - class Secondaries; - - template <class T> - class Secondaries<T, false> {}; - - template <class T> - class Secondaries<T, true> : public detail::ExecTimeImpl<T> { - private: - public: - template <typename Secondaries> - inline EProcessReturn DoSecondaries(Secondaries& sec) { - this->start(); - auto r = detail::ExecTimeImpl<T>::DoSecondaries(sec); - this->stop(); - return r; - } - }; - } // namespace analytic_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/AnalyticProcessors/testExecTime.cc b/Processes/AnalyticProcessors/testExecTime.cc deleted file mode 100644 index e2fc710e7a201096184edac399befe01a8d04356..0000000000000000000000000000000000000000 --- a/Processes/AnalyticProcessors/testExecTime.cc +++ /dev/null @@ -1,168 +0,0 @@ -/* - * (c) Copyright 2019 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. - */ - -#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one - // cpp file -#include <catch2/catch.hpp> - -#include <corsika/process/analytic_processors/ExecTime.h> - -#include <corsika/process/example_processors/DummyBoundaryCrossingProcess.h> -#include <corsika/process/example_processors/DummyContinuousProcess.h> -#include <corsika/process/example_processors/DummyDecayProcess.h> -#include <corsika/process/example_processors/DummyInteractionProcess.h> -#include <corsika/process/example_processors/DummySecondariesProcess.h> - -#include <cmath> -#include <random> -#include <vector> - -using namespace corsika::process; -using namespace corsika::process::analytic_processors; -using namespace corsika::process::example_processors; - -TEST_CASE("Timing process", "[proccesses][analytic_processors ExecTime]") { - - int tmp = 0; - - SECTION("BoundaryCrossing") { - ExecTime<DummyBoundaryCrossingProcess<10>> execTime; - auto start = std::chrono::steady_clock::now(); - CHECK(execTime.DoBoundaryCrossing(tmp, 0, 0) == EProcessReturn::eOk); - auto end = std::chrono::steady_clock::now(); - CHECK(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(10).margin(5)); - - for (int i = 0; i < 100; i++) execTime.DoBoundaryCrossing(tmp, 0, 0); - - CHECK(execTime.mean() == Approx(10 * 1000).margin(2 * 1000)); - - CHECK(execTime.sumTime() == Approx(10 * 100 * 1000).margin((10 * 100) * 1000)); - - CHECK(fabs(execTime.var()) < 100000); - } - - SECTION("Continuous") { - ExecTime<DummyContinuousProcess<50>> execTime; - auto start = std::chrono::steady_clock::now(); - CHECK(execTime.DoContinuous(tmp, tmp) == EProcessReturn::eOk); - auto end = std::chrono::steady_clock::now(); - CHECK(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(50).margin(5)); - - for (int i = 0; i < 100; i++) execTime.DoContinuous(tmp, tmp); - - CHECK(execTime.mean() == Approx(50 * 1000).margin(2 * 1000)); - - CHECK(execTime.sumTime() == Approx(50 * 100 * 1000).margin((10 * 100) * 1000)); - - CHECK(fabs(execTime.var()) < 100000); - } - - SECTION("Decay") { - ExecTime<DummyDecayProcess<10>> execTime; - auto start = std::chrono::steady_clock::now(); - CHECK(execTime.DoDecay(tmp) == EProcessReturn::eOk); - auto end = std::chrono::steady_clock::now(); - CHECK(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(10).margin(5)); - - for (int i = 0; i < 100; i++) execTime.DoDecay(tmp); - - CHECK(execTime.mean() == Approx(10 * 1000).margin(2 * 1000)); - - CHECK(execTime.sumTime() == Approx(10 * 100 * 100).margin((10 * 100) * 1000)); - - CHECK(fabs(execTime.var()) < 100000); - } - - SECTION("Interaction") { - ExecTime<DummyInteractionProcess<10>> execTime; - auto start = std::chrono::steady_clock::now(); - CHECK(execTime.DoInteraction(tmp) == EProcessReturn::eOk); - auto end = std::chrono::steady_clock::now(); - CHECK(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(10).margin(5)); - - for (int i = 0; i < 100; i++) execTime.DoInteraction(tmp); - - CHECK(execTime.mean() == Approx(10 * 1000).margin(2 * 1000)); - - CHECK(execTime.sumTime() == Approx(10 * 100 * 1000).margin((10 * 100) * 1000)); - - CHECK(fabs(execTime.var()) < 100000); - } - - SECTION("Secondaries") { - ExecTime<DummySecondariesProcess<10>> execTime; - auto start = std::chrono::steady_clock::now(); - CHECK(execTime.DoSecondaries(tmp) == EProcessReturn::eOk); - auto end = std::chrono::steady_clock::now(); - CHECK(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(10).margin(5)); - - for (int i = 0; i < 100; i++) execTime.DoSecondaries(tmp); - - CHECK(execTime.mean() == Approx(10 * 1000).margin(2 * 1000)); - - CHECK(execTime.sumTime() == Approx(10 * 100 * 1000).margin((10 * 100) * 1000)); - - CHECK(fabs(execTime.var()) < 100000); - } - - SECTION("TestMeanAlgo") { - std::default_random_engine generator; - std::normal_distribution<double> distribution(10000.0, 200.0); - - double fElapsedSum = 0; - double fMean = 0; - double fMean2 = 0; - long long fMin = std::numeric_limits<long long>::max(); - long long fMax = std::numeric_limits<long long>::min(); - int fN = 0; - - std::vector<double> elems; - - for (int i = 0; i < 1000; i++) { - double timeDiv = distribution(generator); - - elems.push_back(timeDiv); - - fElapsedSum += timeDiv; - fN = fN + 1; - - if (fMax < timeDiv) fMax = timeDiv; - - if (timeDiv < fMin) fMin = timeDiv; - - double delta = timeDiv - fMean; - fMean += delta / static_cast<double>(fN); - - double delta2 = timeDiv - fMean; - - fMean2 += delta * delta2; - } - - CHECK(fN == 1000); - - double mean = 0; - std::for_each(elems.begin(), elems.end(), [&](double i) { mean += i; }); - mean = mean / fN; - - double var = 0; - std::for_each(elems.begin(), elems.end(), - [&](double i) { var += (mean - i) * (mean - i); }); - var = var / fN; - - CHECK(mean == Approx(10000.0).margin(10)); - CHECK(var == Approx(200.0 * 200).margin(2000)); - - CHECK(fMean2 / fN == Approx(200 * 200).margin(2000)); // Varianz - CHECK(fMean == Approx(10000).margin(10)); - } -} diff --git a/Processes/CONEXSourceCut/CMakeLists.txt b/Processes/CONEXSourceCut/CMakeLists.txt deleted file mode 100644 index 708046731afa5de9d172a7a3f2992a292ad18c4c..0000000000000000000000000000000000000000 --- a/Processes/CONEXSourceCut/CMakeLists.txt +++ /dev/null @@ -1,75 +0,0 @@ -set ( - MODEL_SOURCES - CONEXSourceCut.cc -) - -set ( - MODEL_HEADERS - CONEXSourceCut.h - CONEX_f.h - ) - -set ( - MODEL_NAMESPACE - corsika/process/conex_source_cut - ) - -add_library (ProcessCONEXSourceCut STATIC ${MODEL_SOURCES}) -CORSIKA_COPY_HEADERS_TO_NAMESPACE (ProcessCONEXSourceCut ${MODEL_NAMESPACE} ${MODEL_HEADERS}) - -set_target_properties ( - ProcessCONEXSourceCut - PROPERTIES - VERSION ${PROJECT_VERSION} - SOVERSION 1 - ) - -# target dependencies on other libraries (also the header onlys) -target_link_libraries ( - ProcessCONEXSourceCut - CORSIKAunits - CORSIKAparticles - CORSIKAprocesssequence - CORSIKAsetup - C8::ext::conex - ProcessSibyll - ProcessUrQMD - ) - -target_include_directories ( - ProcessCONEXSourceCut - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -install ( - TARGETS ProcessCONEXSourceCut - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - ) - -# -------------------- -# code unit testing -CORSIKA_ADD_TEST(testCONEXSourceCut SOURCES - testCONEXSourceCut.cc - ${MODEL_HEADERS} -) -# -target_compile_definitions ( - testCONEXSourceCut - PRIVATE - REFDATADIR="${CMAKE_CURRENT_SOURCE_DIR}" - ) -# -target_link_libraries ( - testCONEXSourceCut - ProcessCONEXSourceCut - CORSIKAunits - CORSIKAstackinterface - CORSIKAprocesssequence - CORSIKAsetup - CORSIKAgeometry - CORSIKAenvironment - CORSIKAtesting -) diff --git a/Processes/CONEXSourceCut/CONEXSourceCut.cc b/Processes/CONEXSourceCut/CONEXSourceCut.cc deleted file mode 100644 index d6c6e7e282599d373725b82d817e583ba9f37354..0000000000000000000000000000000000000000 --- a/Processes/CONEXSourceCut/CONEXSourceCut.cc +++ /dev/null @@ -1,298 +0,0 @@ -/* - * (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/logging/Logging.h> -#include <corsika/process/conex_source_cut/CONEXSourceCut.h> -#include <corsika/process/conex_source_cut/CONEX_f.h> -#include <corsika/random/RNGManager.h> -#include <corsika/units/PhysicalConstants.h> - -#include <algorithm> -#include <fstream> -#include <iomanip> -#include <utility> - -using namespace corsika::process::conex_source_cut; -using namespace corsika::units::si; -using namespace corsika::particles; -using namespace corsika::setup; - -corsika::process::EProcessReturn CONEXSourceCut::DoSecondaries( - corsika::setup::StackView& vS) { - auto p = vS.begin(); - while (p != vS.end()) { - Code const pid = p.GetPID(); - if (addParticle(pid, p.GetEnergy(), p.GetMass(), p.GetPosition(), - p.GetMomentum().normalized(), p.GetTime())) { - p.Delete(); - } - ++p; - } - return corsika::process::EProcessReturn::eOk; -} - -bool CONEXSourceCut::addParticle(particles::Code pid, HEPEnergyType energy, - HEPEnergyType mass, geometry::Point const& position, - geometry::Vector<dimensionless_d> const& direction, - TimeType t) { - - auto const it = std::find_if(egs_em_codes_.cbegin(), egs_em_codes_.cend(), - [=](auto const& p) { return pid == p.first; }); - if (it == egs_em_codes_.cend()) { return false; } - - // EM particle - auto const egs_pid = it->second; - std::cout << "position conexObs: " << position.GetCoordinates(conexObservationCS_) - << std::endl; - - auto const coords = position.GetCoordinates(conexObservationCS_) / 1_m; - double const x = coords[0].magnitude(); - double const y = coords[1].magnitude(); - - double const altitude = ((position - center_).norm() - conex::earthRadius) / 1_m; - auto const d = position - showerCore_; - - // distance from core to particle projected along shower axis - double const slantDistance = -d.dot(showerAxis_.GetDirection()) / 1_m; - - // lateral coordinates in CONEX shower frame - auto const dShowerPlane = d - d.parallelProjectionOnto(showerAxis_.GetDirection()); - double const lateralX = dShowerPlane.dot(x_sf_) / 1_m; - double const lateralY = dShowerPlane.dot(y_sf_) / 1_m; - - double const slantX = showerAxis_.projectedX(position) * (1_cm * 1_cm / 1_g); - - double const time = (t * units::constants::c - groundDist_) / 1_m; - - // fill u,v,w momentum direction in EGS frame - double const u = direction.dot(y_sf_).magnitude(); - double const v = direction.dot(x_sf_).magnitude(); - double const w = direction.dot(showerAxis_.GetDirection()).magnitude(); - - double const weight = 1; // NEEDS TO BE CHANGED WHEN WE HAVE WEIGHTS! - - // generation, TO BE CHANGED WHEN WE HAVE THAT INFORMATION AVAILABLE - int const latchin = 1; - - double const E = energy / 1_GeV; - double const m = mass / 1_GeV; - - std::cout << "CONEXSourceCut: removing " << egs_pid << " " << std::scientific << energy - << " GeV" << std::endl; - - std::cout << "#### parameters to cegs4_() ####" << std::endl; - std::cout << "egs_pid = " << egs_pid << std::endl; - std::cout << "E = " << E << std::endl; - std::cout << "m = " << m << std::endl; - std::cout << "x = " << x << std::endl; - std::cout << "y = " << y << std::endl; - std::cout << "altitude = " << altitude << std::endl; - std::cout << "slantDistance = " << slantDistance << std::endl; - std::cout << "lateralX = " << lateralX << std::endl; - std::cout << "lateralY = " << lateralY << std::endl; - std::cout << "slantX = " << slantX << std::endl; - std::cout << "time = " << time << std::endl; - std::cout << "u = " << u << std::endl; - std::cout << "v = " << v << std::endl; - std::cout << "w = " << w << std::endl; - - conex::cxoptl_.dptl[10 - 1] = egs_pid; - conex::cxoptl_.dptl[4 - 1] = E; - conex::cxoptl_.dptl[5 - 1] = m; - conex::cxoptl_.dptl[6 - 1] = x; - conex::cxoptl_.dptl[7 - 1] = y; - conex::cxoptl_.dptl[8 - 1] = altitude; - conex::cxoptl_.dptl[9 - 1] = time; - conex::cxoptl_.dptl[11 - 1] = weight; - conex::cxoptl_.dptl[12 - 1] = latchin; - conex::cxoptl_.dptl[13 - 1] = slantX; - conex::cxoptl_.dptl[14 - 1] = lateralX; - conex::cxoptl_.dptl[15 - 1] = lateralY; - conex::cxoptl_.dptl[16 - 1] = slantDistance; - conex::cxoptl_.dptl[2 - 1] = u; - conex::cxoptl_.dptl[1 - 1] = v; - conex::cxoptl_.dptl[3 - 1] = w; - - int n = 1, i = 1; - conex::cegs4_(n, i); - - return true; -} - -void CONEXSourceCut::SolveCE() { - - conex::conexcascade_(); - - int nX = conex::get_number_of_depth_bins_(); // make sure this works! - - int icut = 1; - int icutg = 2; - int icute = 3; - int icutm = 2; - int icuth = 3; - int iSec = 0; - - const int maxX = nX; - - auto X = std::make_unique<float[]>(maxX); - auto H = std::make_unique<float[]>(maxX); - auto D = std::make_unique<float[]>(maxX); - auto N = std::make_unique<float[]>(maxX); - auto dEdX = std::make_unique<float[]>(maxX); - auto Mu = std::make_unique<float[]>(maxX); - auto dMu = std::make_unique<float[]>(maxX); - auto Gamma = std::make_unique<float[]>(maxX); - auto Electrons = std::make_unique<float[]>(maxX); - auto Hadrons = std::make_unique<float[]>(maxX); - - float EGround[3], fitpars[13]; - - conex::get_shower_data_(icut, iSec, nX, X[0], N[0], fitpars[0], H[0], D[0]); - conex::get_shower_edep_(icut, nX, dEdX[0], EGround[0]); - conex::get_shower_muon_(icutm, nX, Mu[0], dMu[0]); - conex::get_shower_gamma_(icutg, nX, Gamma[0]); - conex::get_shower_electron_(icute, nX, Electrons[0]); - conex::get_shower_hadron_(icuth, nX, Hadrons[0]); - - std::ofstream file{"conex_output.txt"}; - file << fmt::format("#{:>8} {:>13} {:>13} {:>13} {:>13} {:>13} {:>13} {:>13}\n", "X", - "N", "dEdX", "Mu", "dMu", "Gamma", "El", "Had"); - for (int i = 0; i < nX; ++i) { - file << fmt::format( - " {:>8.2f} {:>13.3} {:>13.3} {:>13.3} {:>13.3} {:>13.3} {:>13.3} {:>13.3}\n", - X[i], N[i], dEdX[i], Mu[i], dMu[i], Gamma[i], Electrons[i], Hadrons[i]); - } - file.close(); - - std::ofstream fitout{"conex_fit.txt"}; - fitout << fitpars[1 - 1] << " # log10(eprima/eV)" << std::endl; - fitout << fitpars[2 - 1] << " # theta" << std::endl; - fitout << fitpars[3 - 1] << " # X1 (first interaction)" << std::endl; - fitout << fitpars[4 - 1] << " # Nmax" << std::endl; - fitout << fitpars[5 - 1] << " # X0" << std::endl; - fitout << fitpars[6 - 1] << " # P1" << std::endl; - fitout << fitpars[7 - 1] << " # P2" << std::endl; - fitout << fitpars[8 - 1] << " # P3" << std::endl; - fitout << fitpars[9 - 1] << " # chi^2 / sqrt(Nmax)" << std::endl; - fitout << fitpars[10 - 1] << " # Xmax" << std::endl; - fitout << fitpars[11 - 1] << " # phi" << std::endl; - fitout << fitpars[12 - 1] << " # inelasticity 1st int." << std::endl; - fitout << fitpars[13 - 1] << " # ???" << std::endl; - fitout.close(); -} - -CONEXSourceCut::CONEXSourceCut(geometry::Point center, - environment::ShowerAxis const& showerAxis, - units::si::LengthType groundDist, - units::si::LengthType injectionHeight, - units::si::HEPEnergyType primaryEnergy, - particles::PDGCode primaryPDG) - : center_{center} - , showerAxis_{showerAxis} - , groundDist_{groundDist} - , showerCore_{showerAxis_.GetStart() + showerAxis_.GetDirection() * groundDist_} - , conexObservationCS_{std::invoke([&]() { - auto const& c8cs = center.GetCoordinateSystem(); - auto const translation = showerCore_ - center; - auto const intermediateCS = c8cs.translate(translation.GetComponents(c8cs)); - auto const intermediateCS2 = intermediateCS.RotateToZ(translation); - - std::cout << "translation C8/CONEX obs: " << translation.GetComponents() - << std::endl; - - auto const transform = geometry::CoordinateSystem::GetTransformation( - intermediateCS2, c8cs); // either this way or vice versa... TODO: test this! - std::cout << transform.matrix() << std::endl << std::endl; - std::cout - << geometry::CoordinateSystem::GetTransformation(intermediateCS, c8cs).matrix() - << std::endl - << std::endl; - std::cout << geometry::CoordinateSystem::GetTransformation(intermediateCS2, - intermediateCS) - .matrix() - << std::endl; - - return geometry::CoordinateSystem(c8cs, transform); - })} - , x_sf_{std::invoke([&]() { - geometry::Vector<length_d> const a{conexObservationCS_, 0._m, 0._m, 1._m}; - auto b = a.cross(showerAxis_.GetDirection()); - auto const lengthB = b.norm(); - if (lengthB < 1e-10_m) { - b = geometry::Vector<length_d>{conexObservationCS_, 1_m, 0_m, 0_m}; - } - - return b.normalized(); - })} - , y_sf_{showerAxis_.GetDirection().cross(x_sf_)} { - - std::cout << "x_sf (conexObservationCS): " << x_sf_.GetComponents(conexObservationCS_) - << std::endl; - std::cout << "x_sf (C8): " << x_sf_.GetComponents(center.GetCoordinateSystem()) - << std::endl; - - std::cout << "y_sf (conexObservationCS): " << y_sf_.GetComponents(conexObservationCS_) - << std::endl; - std::cout << "y_sf (C8): " << y_sf_.GetComponents(center.GetCoordinateSystem()) - << std::endl; - - std::cout << "showerAxisDirection (conexObservationCS): " - << showerAxis_.GetDirection().GetComponents(conexObservationCS_) << std::endl; - std::cout << "showerAxisDirection (C8): " - << showerAxis_.GetDirection().GetComponents(center.GetCoordinateSystem()) - << std::endl; - - std::cout << "showerCore (conexObservationCS): " - << showerCore_.GetCoordinates(conexObservationCS_) << std::endl; - std::cout << "showerCore (C8): " - << showerCore_.GetCoordinates(center.GetCoordinateSystem()) << std::endl; - - int randomSeeds[3] = {1234, 0, 0}; // will be overwritten later?? - int heModel = eSibyll23; - - int nShower = 1; // large to avoid final stats. - int maxDetail = 0; -#ifdef CONEX_EXTENSIONS - int particleListMode = 0; -#endif - - std::string configPath = CONEX_CONFIG_PATH; - conex::initconex_(nShower, randomSeeds, heModel, maxDetail, -#ifdef CONEX_EXTENSIONS - particleListMode, -#endif - configPath.c_str(), configPath.size()); - - double eprima = primaryEnergy / 1_GeV; - - // set phi, theta - geometry::Vector<length_d> ez{conexObservationCS_, {0._m, 0._m, -1_m}}; - auto const c = showerAxis_.GetDirection().dot(ez) / 1_m; - double theta = std::acos(c) * 180 / M_PI; - - auto const showerAxisConex = - showerAxis_.GetDirection().GetComponents(conexObservationCS_); - double phi = std::atan2(-showerAxisConex.GetY().magnitude(), - showerAxisConex.GetX().magnitude()) * - 180 / M_PI; - - std::cout << "theta (deg) = " << theta << "; phi (deg) = " << phi << std::endl; - - int ipart = static_cast<int>(primaryPDG); - auto rng = corsika::random::RNGManager::GetInstance().GetRandomStream("cascade"); - - double dimpact = 0.; // valid only if shower core is fixed on the observation plane; for - // skimming showers an offset is needed like in CONEX - - std::array<int, 3> ioseed{static_cast<int>(rng()), static_cast<int>(rng()), - static_cast<int>(rng())}; - - double xminp = injectionHeight / 1_m; - - conex::conexrun_(ipart, eprima, theta, phi, xminp, dimpact, ioseed.data()); -} diff --git a/Processes/CONEXSourceCut/CONEXSourceCut.h b/Processes/CONEXSourceCut/CONEXSourceCut.h deleted file mode 100644 index b8a714666ca49342f252fbb7061701d739db7be7..0000000000000000000000000000000000000000 --- a/Processes/CONEXSourceCut/CONEXSourceCut.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * (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/ShowerAxis.h> -#include <corsika/geometry/Point.h> -#include <corsika/geometry/Vector.h> -#include <corsika/particles/ParticleProperties.h> -#include <corsika/process/SecondariesProcess.h> -#include <corsika/setup/SetupStack.h> -#include <corsika/units/PhysicalUnits.h> - -#include <corsika/process/conex_source_cut/CONEX_f.h> - -namespace conex { - corsika::units::si::LengthType constexpr earthRadius{6371315 * - corsika::units::si::meter}; -} // namespace conex - -namespace corsika::process { - namespace conex_source_cut { - class CONEXSourceCut : public process::SecondariesProcess<CONEXSourceCut> { - - public: - CONEXSourceCut(geometry::Point center, environment::ShowerAxis const& showerAxis, - units::si::LengthType groundDist, - units::si::LengthType injectionHeight, - units::si::HEPEnergyType primaryEnergy, particles::PDGCode pdg); - corsika::process::EProcessReturn DoSecondaries(corsika::setup::StackView&); - - void SolveCE(); - - bool addParticle(particles::Code pid, units::si::HEPEnergyType energy, - units::si::HEPEnergyType mass, geometry::Point const& position, - geometry::Vector<units::si::dimensionless_d> const& direction, - units::si::TimeType t); - - auto const& GetObserverCS() const { return conexObservationCS_; } - - private: - //! CONEX e.m. particle codes - static std::array<std::pair<particles::Code, int>, 3> constexpr egs_em_codes_{ - {{particles::Code::Gamma, 0}, - {particles::Code::Electron, -1}, - {particles::Code::Positron, -1}}}; - - geometry::Point const center_; //!< center of CONEX Earth - environment::ShowerAxis const& showerAxis_; - units::si::LengthType groundDist_; //!< length from injection point to shower core - geometry::Point const showerCore_; //!< shower core - geometry::CoordinateSystem const conexObservationCS_; //!< CONEX observation frame - geometry::Vector<units::si::dimensionless_d> const x_sf_, - y_sf_; //!< unit vectors of CONEX shower frame, z_sf is shower axis direction - }; - } // namespace conex_source_cut -} // namespace corsika::process diff --git a/Processes/CONEXSourceCut/CONEX_f.h b/Processes/CONEXSourceCut/CONEX_f.h deleted file mode 100644 index 3baba085ea27c185ce6796691840fb48e029ed56..0000000000000000000000000000000000000000 --- a/Processes/CONEXSourceCut/CONEX_f.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * (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 - -//---------------------------------------------- -// C++ interface for the CONEX fortran code -//---------------------------------------------- -// wrapper - -#include <conexConfig.h> -#include <conexHEModels.h> -#include <array> - -namespace conex { - extern "C" { - extern struct { std::array<double, 16> dptl; } cxoptl_; - - void cegs4_(int&, int&); - - void initconex_(int&, int*, int&, int&, -#ifdef CONEX_EXTENSIONS - int&, -#endif - const char*, int); - void conexrun_(int& ipart, double& energy, double& theta, double& phi, - double& injectionHeight, double& dimpact, int ioseed[3]); - void conexcascade_(); - void hadroncascade_(int&, int&, int&, int&); - void solvemomentequations_(int&); - void show_(int& iqi, double& ei, double& xmi, double& ymi, double& zmi, double& dmi, - double& xi, double& yi, double& zi, double& tmi, double& ui, double& vi, - double& wi, int& iri, double& wti, int& latchi); - - int get_number_of_depth_bins_(); - - void get_shower_data_(const int&, const int&, const int&, float&, float&, float&, - float&, float&); - void get_shower_edep_(const int&, const int&, float&, float&); - void get_shower_muon_(const int&, const int&, float&, float&); - void get_shower_gamma_(const int&, const int&, float&); - void get_shower_electron_(const int&, const int&, float&); - void get_shower_hadron_(const int&, const int&, float&); - } - -} // namespace conex diff --git a/Processes/CONEXSourceCut/conex_fit_REF.txt b/Processes/CONEXSourceCut/conex_fit_REF.txt deleted file mode 100644 index 4930ab8259be9a50c912a3db2251169dc39e7f83..0000000000000000000000000000000000000000 --- a/Processes/CONEXSourceCut/conex_fit_REF.txt +++ /dev/null @@ -1,13 +0,0 @@ -15 # log10(eprima/eV) -60 # theta -1e+30 # X1 (first interaction) -1093.9 # Nmax -475.585 # X0 -50.3301 # P1 --0.00584492 # P2 -3.55546e-06 # P3 -4.49378e-05 # chi^2 / sqrt(Nmax) -880.549 # Xmax --0 # phi --1 # inelasticity 1st int. -100000 # ??? diff --git a/Processes/CONEXSourceCut/conex_output_REF.txt b/Processes/CONEXSourceCut/conex_output_REF.txt deleted file mode 100644 index fd32d4e2effa259d0b409524bc3d550522ee66a0..0000000000000000000000000000000000000000 --- a/Processes/CONEXSourceCut/conex_output_REF.txt +++ /dev/null @@ -1,208 +0,0 @@ -# X N dEdX Mu dMu Gamma El Had - 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 10.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 20.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 30.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 40.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 50.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 60.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 70.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 80.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 90.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 110.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 120.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 130.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 140.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 150.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 160.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 170.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 180.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 190.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 200.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 210.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 220.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 230.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 240.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 250.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 260.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 270.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 280.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 290.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 300.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 310.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 320.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 330.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 340.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 350.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 360.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 370.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 380.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 390.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 400.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 410.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 420.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 430.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 440.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 450.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 460.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 470.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 480.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 490.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 500.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 510.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 520.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 530.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 540.00 0.00 0.00062 0.00 0.00 1.00 0.00 0.00 - 550.00 0.512 0.00246 0.000784 0.000802 1.69 0.272 0.00518 - 560.00 1.45 0.00598 0.00326 0.00256 4.23 0.787 0.00985 - 570.00 3.23 0.0123 0.00719 0.00411 9.26 1.78 0.0145 - 580.00 6.30 0.0227 0.0126 0.00569 18.0 3.51 0.0195 - 590.00 11.2 0.0385 0.0194 0.00734 32.0 6.27 0.0248 - 600.00 18.4 0.0613 0.0278 0.00906 53.3 10.4 0.0304 - 610.00 28.6 0.0925 0.0376 0.0108 84.1 16.2 0.0364 - 620.00 42.3 0.134 0.0489 0.0125 127.0 24.1 0.0425 - 630.00 60.1 0.186 0.0615 0.0142 184.0 34.5 0.0489 - 640.00 82.5 0.251 0.0753 0.0158 258.0 47.5 0.0553 - 650.00 110.0 0.328 0.0902 0.0173 350.0 63.4 0.0618 - 660.00 142.0 0.416 0.106 0.0186 464.0 82.5 0.0681 - 670.00 180.0 0.518 0.123 0.0198 600.0 105.0 0.0744 - 680.00 223.0 0.632 0.14 0.0208 759.0 130.0 0.0803 - 690.00 270.0 0.757 0.157 0.0216 942.0 158.0 0.086 - 700.00 322.0 0.892 0.175 0.0223 1.15e+03 189.0 0.0913 - 710.00 378.0 1.04 0.193 0.0227 1.38e+03 222.0 0.0962 - 720.00 437.0 1.19 0.21 0.023 1.62e+03 257.0 0.101 - 730.00 497.0 1.34 0.227 0.023 1.89e+03 294.0 0.104 - 740.00 559.0 1.50 0.244 0.0229 2.17e+03 331.0 0.108 - 750.00 621.0 1.65 0.26 0.0227 2.46e+03 369.0 0.111 - 760.00 683.0 1.81 0.275 0.0223 2.76e+03 406.0 0.113 - 770.00 742.0 1.96 0.289 0.0218 3.06e+03 443.0 0.114 - 780.00 799.0 2.10 0.303 0.0212 3.36e+03 478.0 0.116 - 790.00 853.0 2.23 0.315 0.0205 3.66e+03 511.0 0.116 - 800.00 902.0 2.35 0.327 0.0197 3.94e+03 542.0 0.116 - 810.00 947.0 2.45 0.337 0.0189 4.21e+03 570.0 0.116 - 820.00 986.0 2.55 0.347 0.018 4.47e+03 595.0 0.115 - 830.00 1.02e+03 2.63 0.355 0.0171 4.70e+03 616.0 0.113 - 840.00 1.05e+03 2.69 0.362 0.0162 4.92e+03 634.0 0.112 - 850.00 1.07e+03 2.74 0.369 0.0153 5.10e+03 648.0 0.109 - 860.00 1.08e+03 2.77 0.374 0.0144 5.27e+03 659.0 0.107 - 870.00 1.09e+03 2.79 0.379 0.0135 5.40e+03 666.0 0.104 - 880.00 1.10e+03 2.79 0.382 0.0126 5.50e+03 669.0 0.101 - 890.00 1.09e+03 2.78 0.385 0.0117 5.58e+03 669.0 0.0983 - 900.00 1.08e+03 2.76 0.387 0.0109 5.63e+03 665.0 0.095 - 910.00 1.07e+03 2.72 0.388 0.0101 5.64e+03 658.0 0.0916 - 920.00 1.05e+03 2.67 0.388 0.00933 5.64e+03 649.0 0.0881 - 930.00 1.03e+03 2.62 0.388 0.00861 5.60e+03 636.0 0.0845 - 940.00 1.01e+03 2.55 0.388 0.00793 5.54e+03 622.0 0.0809 - 950.00 978.0 2.48 0.387 0.00729 5.46e+03 605.0 0.0773 - 960.00 947.0 2.39 0.385 0.00669 5.36e+03 587.0 0.0737 - 970.00 913.0 2.31 0.383 0.00613 5.24e+03 567.0 0.0702 - 980.00 878.0 2.22 0.38 0.00561 5.11e+03 546.0 0.0667 - 990.00 841.0 2.12 0.378 0.00512 4.96e+03 524.0 0.0633 - 1000.00 803.0 2.03 0.375 0.00467 4.80e+03 501.0 0.0599 - 1010.00 765.0 1.93 0.371 0.00426 4.63e+03 478.0 0.0566 - 1020.00 726.0 1.83 0.368 0.00387 4.45e+03 455.0 0.0535 - 1030.00 688.0 1.73 0.364 0.00352 4.26e+03 431.0 0.0504 - 1040.00 650.0 1.64 0.36 0.0032 4.07e+03 408.0 0.0475 - 1050.00 612.0 1.54 0.356 0.0029 3.88e+03 385.0 0.0447 - 1060.00 575.0 1.45 0.352 0.00263 3.69e+03 362.0 0.042 - 1070.00 539.0 1.36 0.348 0.00239 3.50e+03 340.0 0.0394 - 1080.00 504.0 1.27 0.344 0.00216 3.31e+03 319.0 0.037 - 1090.00 470.0 1.19 0.34 0.00196 3.12e+03 298.0 0.0346 - 1100.00 438.0 1.10 0.336 0.00177 2.94e+03 278.0 0.0324 - 1110.00 407.0 1.03 0.331 0.0016 2.76e+03 258.0 0.0303 - 1120.00 377.0 0.952 0.327 0.00145 2.58e+03 240.0 0.0283 - 1130.00 349.0 0.881 0.323 0.00131 2.41e+03 222.0 0.0265 - 1140.00 323.0 0.814 0.319 0.00119 2.25e+03 206.0 0.0247 - 1150.00 298.0 0.751 0.314 0.00108 2.10e+03 190.0 0.023 - 1160.00 274.0 0.692 0.31 0.000973 1.95e+03 175.0 0.0215 - 1170.00 252.0 0.636 0.306 0.000881 1.81e+03 161.0 0.02 - 1180.00 231.0 0.584 0.302 0.000798 1.67e+03 148.0 0.0186 - 1190.00 212.0 0.535 0.298 0.000722 1.55e+03 136.0 0.0173 - 1200.00 194.0 0.49 0.294 0.000655 1.43e+03 125.0 0.0161 - 1210.00 177.0 0.447 0.29 0.000593 1.32e+03 114.0 0.015 - 1220.00 161.0 0.408 0.286 0.000538 1.21e+03 104.0 0.014 - 1230.00 147.0 0.372 0.283 0.000489 1.11e+03 94.8 0.013 - 1240.00 134.0 0.338 0.279 0.000444 1.02e+03 86.3 0.0121 - 1250.00 121.0 0.307 0.275 0.000403 933.0 78.5 0.0112 - 1260.00 110.0 0.279 0.272 0.000367 853.0 71.3 0.0104 - 1270.00 99.8 0.253 0.268 0.000335 779.0 64.7 0.0097 - 1280.00 90.3 0.229 0.265 0.000305 710.0 58.6 0.00901 - 1290.00 81.6 0.207 0.262 0.000278 647.0 53.0 0.00838 - 1300.00 73.7 0.187 0.258 0.000254 588.0 47.9 0.00779 - 1310.00 66.5 0.169 0.255 0.000232 534.0 43.2 0.00724 - 1320.00 59.9 0.152 0.252 0.000212 485.0 39.0 0.00673 - 1330.00 53.9 0.137 0.249 0.000194 439.0 35.1 0.00626 - 1340.00 48.5 0.123 0.246 0.000178 397.0 31.6 0.00582 - 1350.00 43.5 0.111 0.243 0.000163 359.0 28.4 0.00541 - 1360.00 39.1 0.0995 0.24 0.00015 324.0 25.5 0.00503 - 1370.00 35.0 0.0892 0.237 0.000138 293.0 22.9 0.00469 - 1380.00 31.4 0.08 0.234 0.000127 264.0 20.5 0.00436 - 1390.00 28.1 0.0716 0.231 0.000117 237.0 18.4 0.00406 - 1400.00 25.1 0.0641 0.229 0.000108 213.0 16.4 0.00379 - 1410.00 22.4 0.0573 0.226 9.93e-05 192.0 14.7 0.00353 - 1420.00 20.0 0.0512 0.223 9.17e-05 172.0 13.1 0.00329 - 1430.00 17.9 0.0457 0.221 8.48e-05 154.0 11.7 0.00307 - 1440.00 16.0 0.0408 0.218 7.85e-05 138.0 10.4 0.00287 - 1450.00 14.2 0.0364 0.216 7.28e-05 124.0 9.29 0.00268 - 1460.00 12.7 0.0325 0.214 6.75e-05 111.0 8.27 0.0025 - 1470.00 11.3 0.0289 0.211 6.27e-05 98.9 7.36 0.00234 - 1480.00 10.0 0.0258 0.209 5.83e-05 88.3 6.54 0.00219 - 1490.00 8.93 0.0229 0.207 5.42e-05 78.7 5.81 0.00205 - 1500.00 7.94 0.0204 0.204 5.05e-05 70.2 5.16 0.00192 - 1510.00 7.05 0.0182 0.202 4.70e-05 62.5 4.58 0.0018 - 1520.00 6.27 0.0161 0.2 4.39e-05 55.7 4.06 0.00169 - 1530.00 5.57 0.0144 0.198 4.10e-05 49.5 3.60 0.00159 - 1540.00 4.95 0.0128 0.196 3.83e-05 44.0 3.18 0.0015 - 1550.00 4.40 0.0114 0.194 3.58e-05 39.1 2.82 0.00141 - 1560.00 3.91 0.0101 0.192 3.35e-05 34.7 2.49 0.00133 - 1570.00 3.47 0.00899 0.19 3.14e-05 30.8 2.20 0.00125 - 1580.00 3.09 0.008 0.188 2.94e-05 27.3 1.95 0.00118 - 1590.00 2.75 0.00712 0.186 2.76e-05 24.2 1.72 0.00112 - 1600.00 2.44 0.00635 0.185 2.59e-05 21.4 1.52 0.00106 - 1610.00 2.18 0.00566 0.183 2.44e-05 19.0 1.34 0.001 - 1620.00 1.94 0.00505 0.181 2.29e-05 16.8 1.19 0.000948 - 1630.00 1.73 0.00451 0.179 2.16e-05 14.9 1.05 0.0009 - 1640.00 1.55 0.00404 0.177 2.04e-05 13.1 0.923 0.000855 - 1650.00 1.38 0.00362 0.176 1.92e-05 11.6 0.814 0.000814 - 1660.00 1.24 0.00324 0.174 1.81e-05 10.3 0.718 0.000775 - 1670.00 1.11 0.00292 0.173 1.71e-05 9.07 0.634 0.00074 - 1680.00 0.998 0.00263 0.171 1.62e-05 8.01 0.559 0.000706 - 1690.00 0.9 0.00237 0.169 1.53e-05 7.08 0.494 0.000675 - 1700.00 0.812 0.00214 0.168 1.45e-05 6.25 0.436 0.000647 - 1710.00 0.736 0.00195 0.166 1.38e-05 5.52 0.385 0.00062 - 1720.00 0.668 0.00177 0.165 1.31e-05 4.87 0.34 0.000595 - 1730.00 0.608 0.00161 0.163 1.24e-05 4.30 0.301 0.000572 - 1740.00 0.556 0.00148 0.162 1.18e-05 3.80 0.266 0.00055 - 1750.00 0.509 0.00136 0.161 1.12e-05 3.36 0.236 0.00053 - 1760.00 0.469 0.00125 0.159 1.07e-05 2.97 0.209 0.000512 - 1770.00 0.433 0.00116 0.158 1.02e-05 2.63 0.185 0.000494 - 1780.00 0.401 0.00108 0.156 9.71e-06 2.33 0.165 0.000478 - 1790.00 0.373 0.001 0.155 9.27e-06 2.06 0.147 0.000463 - 1800.00 0.349 0.000939 0.154 8.86e-06 1.83 0.131 0.000448 - 1810.00 0.327 0.000882 0.152 8.48e-06 1.62 0.117 0.000435 - 1820.00 0.308 0.000831 0.151 8.12e-06 1.44 0.105 0.000423 - 1830.00 0.291 0.000787 0.15 7.78e-06 1.28 0.0941 0.000411 - 1840.00 0.276 0.000747 0.149 7.46e-06 1.14 0.0847 0.0004 - 1850.00 0.262 0.000712 0.147 7.16e-06 1.02 0.0764 0.00039 - 1860.00 0.251 0.000681 0.146 6.88e-06 0.914 0.0692 0.000381 - 1870.00 0.24 0.000653 0.145 6.62e-06 0.82 0.0629 0.000372 - 1880.00 0.231 0.000629 0.144 6.37e-06 0.737 0.0573 0.000364 - 1890.00 0.222 0.000607 0.143 6.14e-06 0.665 0.0524 0.000356 - 1900.00 0.215 0.000587 0.142 5.92e-06 0.601 0.0481 0.000349 - 1910.00 0.208 0.000569 0.141 5.72e-06 0.545 0.0443 0.000342 - 1920.00 0.202 0.000553 0.139 5.52e-06 0.495 0.041 0.000335 - 1930.00 0.197 0.000539 0.138 5.34e-06 0.452 0.0381 0.000329 - 1940.00 0.192 0.000526 0.137 5.17e-06 0.414 0.0355 0.000324 - 1950.00 0.188 0.000514 0.136 5.01e-06 0.381 0.0332 0.000318 - 1960.00 0.184 0.000503 0.135 4.85e-06 0.351 0.0312 0.000313 - 1970.00 0.18 0.000493 0.134 4.71e-06 0.325 0.0295 0.000309 - 1980.00 0.177 0.000484 0.133 4.57e-06 0.303 0.0279 0.000304 - 1990.00 0.174 0.000476 0.132 4.44e-06 0.283 0.0265 0.0003 - 2000.00 0.171 0.000469 0.131 4.32e-06 0.265 0.0252 0.000296 - 2010.00 0.168 0.000461 0.13 4.20e-06 0.249 0.0241 0.000292 - 2020.00 0.166 0.000455 0.129 4.10e-06 0.235 0.0232 0.000289 - 2030.00 0.164 0.000449 0.128 3.99e-06 0.223 0.0223 0.000285 - 2040.00 0.162 0.000443 0.127 3.89e-06 0.212 0.0215 0.000282 - 2050.00 0.16 0.000437 0.127 3.80e-06 0.202 0.0208 0.000279 - 2060.00 0.158 0.00 0.126 3.71e-06 0.193 0.0201 0.000276 diff --git a/Processes/CONEXSourceCut/testCONEXSourceCut.cc b/Processes/CONEXSourceCut/testCONEXSourceCut.cc deleted file mode 100644 index 4c17d7fb419fa00a55a13b8d21aaa198a11ba05f..0000000000000000000000000000000000000000 --- a/Processes/CONEXSourceCut/testCONEXSourceCut.cc +++ /dev/null @@ -1,149 +0,0 @@ -/* - * (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/setup/SetupEnvironment.h> - -#include <corsika/environment/Environment.h> -#include <corsika/environment/LayeredSphericalAtmosphereBuilder.h> -#include <corsika/environment/MediumPropertyModel.h> -#include <corsika/environment/UniformMagneticField.h> - -#include <corsika/geometry/Point.h> -#include <corsika/geometry/RootCoordinateSystem.h> -#include <corsika/geometry/Vector.h> - -#include <corsika/particles/ParticleProperties.h> - -#include <corsika/process/conex_source_cut/CONEXSourceCut.h> -#include <corsika/process/sibyll/Interaction.h> -#include <corsika/process/sibyll/NuclearInteraction.h> - -#include <corsika/random/RNGManager.h> - -#include <corsika/units/PhysicalUnits.h> -#include <corsika/utl/CorsikaFenv.h> - -#include <catch2/catch.hpp> - -using namespace corsika; -using namespace corsika::environment; -using namespace corsika::geometry; -using namespace corsika::units::si; - -const std::string refDataDir = std::string(REFDATADIR); // from cmake - -template <typename T> -using MExtraEnvirnoment = - environment::MediumPropertyModel<environment::UniformMagneticField<T>>; - -TEST_CASE("CONEXSourceCut") { - random::RNGManager::GetInstance().RegisterRandomStream("cascade"); - random::RNGManager::GetInstance().RegisterRandomStream("sibyll"); - - feenableexcept(FE_INVALID); - - // setup environment, geometry - setup::Environment env; - const CoordinateSystem& rootCS = env.GetCoordinateSystem(); - Point const center{rootCS, 0_m, 0_m, 0_m}; - - auto builder = environment::make_layered_spherical_atmosphere_builder< - setup::EnvironmentInterface, - MExtraEnvirnoment>::create(center, conex::earthRadius, - environment::Medium::AirDry1Atm, - geometry::Vector{rootCS, 0_T, 50_mT, 0_T}); - - builder.setNuclearComposition( - {{particles::Code::Nitrogen, particles::Code::Oxygen}, - {0.7847f, 1.f - 0.7847f}}); // values taken from AIRES manual, Ar removed for now - - builder.addExponentialLayer(1222.6562_g / (1_cm * 1_cm), 994186.38_cm, 4_km); - builder.addExponentialLayer(1144.9069_g / (1_cm * 1_cm), 878153.55_cm, 10_km); - builder.addExponentialLayer(1305.5948_g / (1_cm * 1_cm), 636143.04_cm, 40_km); - builder.addExponentialLayer(540.1778_g / (1_cm * 1_cm), 772170.16_cm, 100_km); - builder.addLinearLayer(1e9_cm, 112.8_km); - builder.assemble(env); - - const HEPEnergyType E0 = 1_PeV; - double thetaDeg = 60.; - auto const thetaRad = thetaDeg / 180. * M_PI; - - auto const observationHeight = 1.4_km + conex::earthRadius; - auto const injectionHeight = 112.75_km + conex::earthRadius; - auto const t = -observationHeight * cos(thetaRad) + - sqrt(-units::static_pow<2>(sin(thetaRad) * observationHeight) + - units::static_pow<2>(injectionHeight)); - Point const showerCore{rootCS, 0_m, 0_m, observationHeight}; - Point const injectionPos = - showerCore + - Vector<dimensionless_d>{rootCS, {-sin(thetaRad), 0, cos(thetaRad)}} * t; - - environment::ShowerAxis const showerAxis{injectionPos, - (showerCore - injectionPos) * 1.02, env}; - - // need to initialize Sibyll, done in constructor: - process::sibyll::Interaction sibyll; - [[maybe_unused]] process::sibyll::NuclearInteraction sibyllNuc(sibyll, env); - - corsika::process::conex_source_cut::CONEXSourceCut conex( - center, showerAxis, t, injectionHeight, E0, - particles::GetPDG(particles::Code::Proton)); - - HEPEnergyType const Eem{1_PeV}; - auto const momentum = showerAxis.GetDirection() * Eem; - - auto const emPosition = showerCore + showerAxis.GetDirection() * (-20_km); - - std::cout << "position injection: " - << injectionPos.GetCoordinates(conex.GetObserverCS()) << " " - << injectionPos.GetCoordinates(rootCS) << std::endl; - std::cout << "position core: " << showerCore.GetCoordinates(conex.GetObserverCS()) - << " " << showerCore.GetCoordinates(rootCS) << std::endl; - std::cout << "position EM: " << emPosition.GetCoordinates(conex.GetObserverCS()) << " " - << emPosition.GetCoordinates(rootCS) << std::endl; - - conex.addParticle(particles::Code::Proton, Eem, 0_eV, emPosition, momentum.normalized(), - 0_s); - // supperimpose a photon - auto const momentumPhoton = showerAxis.GetDirection() * 1_TeV; - conex.addParticle(particles::Code::Gamma, 1_TeV, 0_eV, emPosition, - momentumPhoton.normalized(), 0_s); - conex.SolveCE(); -} - -#include <algorithm> -#include <iterator> -#include <string> -#include <fstream> - -TEST_CASE("ConexOutput", "[output validation]") { - - auto file = GENERATE(as<std::string>{}, "conex_fit", "conex_output"); - - SECTION(std::string("check saved data, ") + file + ".txt") { - - // compare to binary reference data - std::ifstream file1(file + ".txt"); - std::ifstream file1ref(refDataDir + "/" + file + "_REF.txt"); - - std::istreambuf_iterator<char> begin1(file1); - std::istreambuf_iterator<char> begin1ref(file1ref); - - std::istreambuf_iterator<char> end; - - while (begin1 != end && begin1ref != end) { - CHECK(*begin1 == *begin1ref); - ++begin1; - ++begin1ref; - } - CHECK(begin1 == end); - CHECK(begin1ref == end); - file1.close(); - file1ref.close(); - } -} diff --git a/Processes/ExampleProcessors/CMakeLists.txt b/Processes/ExampleProcessors/CMakeLists.txt deleted file mode 100644 index c8ccedeaa9e96eedc69e1842d9f3d0adb0ce3a85..0000000000000000000000000000000000000000 --- a/Processes/ExampleProcessors/CMakeLists.txt +++ /dev/null @@ -1,47 +0,0 @@ -set ( - ExampleProcessors_HEADERS - DummyBoundaryCrossingProcess.h - DummyContinuousProcess.h - DummyDecayProcess.h - DummyInteractionProcess.h - DummySecondariesProcess.h - ) - -set ( - ExampleProcessors_NAMESPACE - corsika/process/example_processors - ) - -add_library (ExampleProcessors INTERFACE) -CORSIKA_COPY_HEADERS_TO_NAMESPACE (ExampleProcessors ${ExampleProcessors_NAMESPACE} ${ExampleProcessors_HEADERS}) - - -target_include_directories ( - ExampleProcessors - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -install ( - FILES ${ExampleProcessors_HEADERS} - DESTINATION include/${ExampleProcessors_NAMESPACE} - ) - - -# -------------------- -# code unit testing -CORSIKA_ADD_TEST (TestDummy) - - -target_link_libraries ( - TestDummy - ExampleProcessors - CORSIKAunits - CORSIKAstackinterface - CORSIKAprocesssequence - CORSIKAsetup - CORSIKAgeometry - CORSIKAenvironment - CORSIKAtesting - ) diff --git a/Processes/ExampleProcessors/DummyBoundaryCrossingProcess.h b/Processes/ExampleProcessors/DummyBoundaryCrossingProcess.h deleted file mode 100644 index 235b86996daa32fbf763766f287f9936f8097a1b..0000000000000000000000000000000000000000 --- a/Processes/ExampleProcessors/DummyBoundaryCrossingProcess.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <corsika/process/BoundaryCrossingProcess.h> - -#include <chrono> -#include <thread> - -namespace corsika::process { - namespace example_processors { - - template <int ISleep> - class DummyBoundaryCrossingProcess - : public BoundaryCrossingProcess<DummyBoundaryCrossingProcess<ISleep>> { - private: - protected: - public: - template <typename Particle, typename VTNType> - EProcessReturn DoBoundaryCrossing(Particle&, VTNType const&, VTNType const&) { - std::this_thread::sleep_for(std::chrono::milliseconds(ISleep)); - return EProcessReturn::eOk; - } - }; - - } // namespace example_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/ExampleProcessors/DummyContinuousProcess.h b/Processes/ExampleProcessors/DummyContinuousProcess.h deleted file mode 100644 index 85cf237692a528fec3e1fc94155380ff5c745b8b..0000000000000000000000000000000000000000 --- a/Processes/ExampleProcessors/DummyContinuousProcess.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <corsika/process/ContinuousProcess.h> - -#include <chrono> -#include <thread> - -namespace corsika::process { - namespace example_processors { - - template <int ISleep> - class DummyContinuousProcess - : public ContinuousProcess<DummyContinuousProcess<ISleep>> { - private: - public: - template <typename Particle, typename Track> - inline EProcessReturn DoContinuous(Particle&, Track const&) const { - std::this_thread::sleep_for(std::chrono::milliseconds(ISleep)); - return process::EProcessReturn::eOk; - } - - template <typename Particle, typename Track> - inline units::si::LengthType MaxStepLength(Particle const&, Track const&) const { - std::this_thread::sleep_for(std::chrono::milliseconds(ISleep)); - return units::si::meter * std::numeric_limits<double>::infinity(); - } - - std::string name() { return "DummyContinuousProcess"; } - }; - - } // namespace example_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/ExampleProcessors/DummyDecayProcess.h b/Processes/ExampleProcessors/DummyDecayProcess.h deleted file mode 100644 index b2546e5299f35c1017d360cfcbcc1d41b4c913f8..0000000000000000000000000000000000000000 --- a/Processes/ExampleProcessors/DummyDecayProcess.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <corsika/process/DecayProcess.h> -#include <corsika/units/PhysicalUnits.h> - -#include <chrono> -#include <thread> - -namespace corsika::process { - namespace example_processors { - - template <int ISleep> - class DummyDecayProcess : public DecayProcess<DummyDecayProcess<ISleep>> { - private: - public: - template <typename Particle> - EProcessReturn DoDecay(Particle&) { - std::this_thread::sleep_for(std::chrono::milliseconds(ISleep)); - return process::EProcessReturn::eOk; - } - - template <typename Particle> - corsika::units::si::TimeType GetLifetime(Particle&) { - using namespace corsika::units::si; - - std::this_thread::sleep_for(std::chrono::milliseconds(ISleep)); - return std::numeric_limits<double>::infinity() * 1_s; - } - }; - - } // namespace example_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/ExampleProcessors/DummyInteractionProcess.h b/Processes/ExampleProcessors/DummyInteractionProcess.h deleted file mode 100644 index 3bda555d7aa5336b60caa18de6683bdaac3b84bc..0000000000000000000000000000000000000000 --- a/Processes/ExampleProcessors/DummyInteractionProcess.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <corsika/process/InteractionProcess.h> - -#include <chrono> -#include <thread> - -namespace corsika::process { - namespace example_processors { - - template <int ISleep> - class DummyInteractionProcess - : public InteractionProcess<DummyInteractionProcess<ISleep> > { - private: - public: - template <typename Particle> - EProcessReturn DoInteraction(Particle&) { - std::this_thread::sleep_for(std::chrono::milliseconds(ISleep)); - return process::EProcessReturn::eOk; - } - - template <typename TParticle> - corsika::units::si::GrammageType GetInteractionLength(TParticle&) { - using namespace corsika::units::si; - - std::this_thread::sleep_for(std::chrono::milliseconds(ISleep)); - return std::numeric_limits<double>::infinity() * (1_g / 1_cm / 1_cm); - } - }; - - } // namespace example_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/ExampleProcessors/DummySecondariesProcess.h b/Processes/ExampleProcessors/DummySecondariesProcess.h deleted file mode 100644 index 30cdab881fad98c891368f795dba9c15d347328f..0000000000000000000000000000000000000000 --- a/Processes/ExampleProcessors/DummySecondariesProcess.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <corsika/process/SecondariesProcess.h> - -#include <chrono> -#include <thread> - -namespace corsika::process { - namespace example_processors { - - template <int ISleep> - class DummySecondariesProcess - : public SecondariesProcess<DummySecondariesProcess<ISleep>> { - private: - public: - template <typename TSecondaries> - inline EProcessReturn DoSecondaries(TSecondaries&) { - std::this_thread::sleep_for(std::chrono::milliseconds(ISleep)); - return process::EProcessReturn::eOk; - } - }; - - } // namespace example_processors -} // namespace corsika::process \ No newline at end of file diff --git a/Processes/ExampleProcessors/TestDummy.cc b/Processes/ExampleProcessors/TestDummy.cc deleted file mode 100644 index 0781310d0b48d851eb2538f00521005118af53df..0000000000000000000000000000000000000000 --- a/Processes/ExampleProcessors/TestDummy.cc +++ /dev/null @@ -1,95 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/process/example_processors/DummyBoundaryCrossingProcess.h> -#include <corsika/process/example_processors/DummyContinuousProcess.h> -#include <corsika/process/example_processors/DummyDecayProcess.h> -#include <corsika/process/example_processors/DummyInteractionProcess.h> -#include <corsika/process/example_processors/DummySecondariesProcess.h> - -#include <corsika/process/ProcessReturn.h> - -#include <catch2/catch.hpp> - -#include <chrono> - -using namespace corsika; -using namespace corsika::process; -using namespace corsika::process::example_processors; - -using namespace corsika::units::si; - -TEST_CASE("Dummy Processes") { - DummyBoundaryCrossingProcess<1000> dbc; - DummyContinuousProcess<1000> dc; - DummyDecayProcess<1000> dd; - DummyInteractionProcess<1000> di; - DummySecondariesProcess<1000> dse; - - int tmp = 0; - SECTION("BoundaryCrossing") { - auto start = std::chrono::steady_clock::now(); - REQUIRE(dbc.DoBoundaryCrossing(tmp, 0, 0) == EProcessReturn::eOk); - auto end = std::chrono::steady_clock::now(); - REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(1000).margin(1)); - } - - SECTION("Continuous") { - auto start = std::chrono::steady_clock::now(); - REQUIRE(dc.DoContinuous(tmp, nullptr) == EProcessReturn::eOk); - auto end = std::chrono::steady_clock::now(); - REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(1000).margin(1)); - - start = std::chrono::steady_clock::now(); - REQUIRE(dc.MaxStepLength(nullptr, nullptr) == - units::si::meter * std::numeric_limits<double>::infinity()); - end = std::chrono::steady_clock::now(); - REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(1000).margin(1)); - } - - SECTION("Decay") { - auto start = std::chrono::steady_clock::now(); - REQUIRE(dd.DoDecay(tmp) == EProcessReturn::eOk); - auto end = std::chrono::steady_clock::now(); - REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(1000).margin(1)); - - start = std::chrono::steady_clock::now(); - REQUIRE(dd.GetLifetime(tmp) == - units::si::second * std::numeric_limits<double>::infinity()); - end = std::chrono::steady_clock::now(); - REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(1000).margin(1)); - } - - SECTION("Interaction") { - auto start = std::chrono::steady_clock::now(); - REQUIRE(di.DoInteraction(tmp) == EProcessReturn::eOk); - auto end = std::chrono::steady_clock::now(); - REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(1000).margin(1)); - - start = std::chrono::steady_clock::now(); - REQUIRE(di.GetInteractionLength(tmp) == - (units::si::gram / 1_cm / 1_cm) * std::numeric_limits<double>::infinity()); - end = std::chrono::steady_clock::now(); - REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(1000).margin(1)); - } - - SECTION("Secondaries") { - auto start = std::chrono::steady_clock::now(); - REQUIRE(dse.DoSecondaries(tmp) == EProcessReturn::eOk); - auto end = std::chrono::steady_clock::now(); - REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() == - Approx(1000).margin(1)); - } -} diff --git a/Processes/InteractionCounter/CMakeLists.txt b/Processes/InteractionCounter/CMakeLists.txt deleted file mode 100644 index 235246c713af90d1c48a7080284544b87131ffbb..0000000000000000000000000000000000000000 --- a/Processes/InteractionCounter/CMakeLists.txt +++ /dev/null @@ -1,66 +0,0 @@ -set ( - MODEL_HEADERS - InteractionCounter.hpp - InteractionHistogram.hpp - ) - -set ( - MODEL_SOURCES - InteractionHistogram.cc -) - -set ( - MODEL_NAMESPACE - corsika/process/interaction_counter - ) - -add_library (ProcessInteractionCounter STATIC ${MODEL_SOURCES}) -CORSIKA_COPY_HEADERS_TO_NAMESPACE (ProcessInteractionCounter ${MODEL_NAMESPACE} ${MODEL_HEADERS}) - -set_target_properties ( - ProcessInteractionCounter - PROPERTIES - VERSION ${PROJECT_VERSION} - SOVERSION 1 - ) - -# target dependencies on other libraries (also the header onlys) -target_link_libraries ( - ProcessInteractionCounter - CORSIKAunits - CORSIKAutilities - CORSIKAprocesssequence - CORSIKAthirdparty - C8::ext::boost - ) - -target_include_directories ( - ProcessInteractionCounter - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -install (FILES ${MODEL_HEADERS} DESTINATION include/${MODEL_NAMESPACE}) - -# -------------------- -# code unit testing -CORSIKA_ADD_TEST(testInteractionCounter SOURCES - testInteractionCounter.cc - ${MODEL_HEADERS} -) -# -target_compile_definitions ( - testInteractionCounter - PRIVATE - REFDATADIR="${CMAKE_CURRENT_SOURCE_DIR}" - ) -# -target_link_libraries ( - testInteractionCounter - ProcessInteractionCounter - CORSIKAsetup - CORSIKAunits - CORSIKAenvironment - CORSIKAtesting - ) diff --git a/Processes/InteractionCounter/InteractionCounter.hpp b/Processes/InteractionCounter/InteractionCounter.hpp deleted file mode 100644 index c565eb6a106f13877b96511b7de7918cd16e4d8d..0000000000000000000000000000000000000000 --- a/Processes/InteractionCounter/InteractionCounter.hpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - * (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/process/interaction_counter/InteractionHistogram.hpp> - -#include <corsika/process/InteractionProcess.h> -#include <corsika/process/ProcessSequence.h> -#include <corsika/setup/SetupStack.h> - -namespace corsika::process::interaction_counter { - /*! - * Wrapper around an InteractionProcess that fills histograms of the number - * of calls to DoInteraction() binned in projectile energy (both in - * lab and center-of-mass frame) and species - */ - template <class TCountedProcess> - class InteractionCounter - : public InteractionProcess<InteractionCounter<TCountedProcess>> { - - TCountedProcess& process_; - InteractionHistogram histogram_; - - public: - InteractionCounter(TCountedProcess& process) - : process_(process) {} - - template <typename TSecondaryView> - auto DoInteraction(TSecondaryView& view) { - auto const projectile = view.GetProjectile(); - auto const massNumber = projectile.GetNode() - ->GetModelProperties() - .GetNuclearComposition() - .GetAverageMassNumber(); - auto const massTarget = massNumber * units::constants::nucleonMass; - - if (auto const projectile_id = projectile.GetPID(); - projectile_id == particles::Code::Nucleus) { - auto const A = projectile.GetNuclearA(); - auto const Z = projectile.GetNuclearZ(); - histogram_.fill(projectile_id, projectile.GetEnergy(), massTarget, A, Z); - } else { - histogram_.fill(projectile_id, projectile.GetEnergy(), massTarget); - } - return process_.DoInteraction(view); - } - - template <typename TParticle> - auto GetInteractionLength(TParticle const& particle) const { - return process_.GetInteractionLength(particle); - } - - InteractionHistogram const& GetHistogram() const { return histogram_; } - }; - -} // namespace corsika::process::interaction_counter diff --git a/Processes/InteractionCounter/InteractionHistogram.cc b/Processes/InteractionCounter/InteractionHistogram.cc deleted file mode 100644 index 45d04469b4c8fa7f9dd7ed1f22b41817ab4f3a2a..0000000000000000000000000000000000000000 --- a/Processes/InteractionCounter/InteractionHistogram.cc +++ /dev/null @@ -1,67 +0,0 @@ -/* - * (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/process/interaction_counter/InteractionHistogram.hpp> - -#include <fstream> -#include <string> - -using namespace corsika::process::interaction_counter; - -InteractionHistogram::InteractionHistogram() - : inthist_cms_{detail::hist_factory(num_bins_cms, lower_edge_cms, upper_edge_cms)} - , inthist_lab_{detail::hist_factory(num_bins_lab, lower_edge_lab, upper_edge_lab)} {} - -void InteractionHistogram::fill(particles::Code projectile_id, - units::si::HEPEnergyType lab_energy, - units::si::HEPEnergyType mass_target, int A, int Z) { - using namespace units::si; - auto constexpr inv_eV = 1 / 1_eV; - if (projectile_id == particles::Code::Nucleus) { - auto const sqrtS = - sqrt(A * A * (units::constants::nucleonMass * units::constants::nucleonMass) + - mass_target * mass_target + 2 * lab_energy * mass_target); - - int32_t const pdg = 1'000'000'000l + Z * 10'000l + A * 10l; - - inthist_lab_(pdg, lab_energy * inv_eV); - inthist_cms_(pdg, sqrtS * inv_eV); - } else { - auto const projectile_mass = particles::GetMass(projectile_id); - auto const sqrtS = sqrt(projectile_mass * projectile_mass + - mass_target * mass_target + 2 * lab_energy * mass_target); - - inthist_cms_(static_cast<int>(particles::GetPDG(projectile_id)), sqrtS * inv_eV); - inthist_lab_(static_cast<int>(particles::GetPDG(projectile_id)), lab_energy * inv_eV); - } -} - -void InteractionHistogram::saveLab(std::string const& filename, - utl::SaveMode mode) const { - corsika::utl::save_hist(inthist_lab_, filename, mode); -} - -void InteractionHistogram::saveCMS(std::string const& filename, - utl::SaveMode mode) const { - corsika::utl::save_hist(inthist_cms_, filename, mode); -} - -InteractionHistogram& InteractionHistogram::operator+=( - InteractionHistogram const& other) { - inthist_lab_ += other.inthist_lab_; - inthist_cms_ += other.inthist_cms_; - - return *this; -} - -InteractionHistogram InteractionHistogram::operator+(InteractionHistogram other) const { - other.inthist_lab_ += inthist_lab_; - other.inthist_cms_ += inthist_cms_; - - return other; -} diff --git a/Processes/InteractionCounter/InteractionHistogram.hpp b/Processes/InteractionCounter/InteractionHistogram.hpp deleted file mode 100644 index d374eb8d1778379134222b8de0beeb0dcfc181fb..0000000000000000000000000000000000000000 --- a/Processes/InteractionCounter/InteractionHistogram.hpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * (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/particles/ParticleProperties.h> -#include <corsika/units/PhysicalUnits.h> -#include <corsika/utl/SaveBoostHistogram.hpp> - -#include <boost/histogram.hpp> -#include <fstream> -#include <functional> -#include <map> -#include <utility> - -namespace corsika::process::interaction_counter { - namespace detail { - inline auto hist_factory(unsigned int bin_number, float e_low, float e_high) { - namespace bh = boost::histogram; - namespace bha = bh::axis; - - auto h = bh::make_histogram( - bha::category<int, bh::use_default, bha::option::growth_t>{{2212, 2112}, - "projectile PDG"}, - bha::regular<float, bha::transform::log>{bin_number, e_low, e_high, - "energy/eV"}); - return h; - } - } // namespace detail - - class InteractionHistogram { - static double constexpr lower_edge_cms = 1e3, upper_edge_cms = 1e17; // eV sqrt s - static double constexpr lower_edge_lab = 1e3, upper_edge_lab = 1e21; // eV lab - static unsigned int constexpr num_bins_lab = 18 * 10, num_bins_cms = 14 * 10; - - using hist_type = - decltype(detail::hist_factory(num_bins_lab, lower_edge_lab, upper_edge_lab)); - - hist_type inthist_cms_, inthist_lab_; - - public: - InteractionHistogram(); - - //! fill both CMS and lab histograms at the same time - void fill(particles::Code projectile_id, units::si::HEPEnergyType lab_energy, - units::si::HEPEnergyType mass_target, int A = 0, int Z = 0); - - hist_type const& CMSHist() const { return inthist_cms_; } - - hist_type const& labHist() const { return inthist_lab_; } - - void saveLab(std::string const& filename, - utl::SaveMode mode = utl::SaveMode::append) const; - - void saveCMS(std::string const& filename, - utl::SaveMode mode = utl::SaveMode::append) const; - - InteractionHistogram& operator+=(InteractionHistogram const& other); - - InteractionHistogram operator+(InteractionHistogram other) const; - }; - -} // namespace corsika::process::interaction_counter diff --git a/Processes/InteractionCounter/testInteractionCounter.cc b/Processes/InteractionCounter/testInteractionCounter.cc deleted file mode 100644 index 5417f3e3ec90ea7955e705e6fb836efd22198f8f..0000000000000000000000000000000000000000 --- a/Processes/InteractionCounter/testInteractionCounter.cc +++ /dev/null @@ -1,135 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/process/interaction_counter/InteractionCounter.hpp> - -#include <corsika/environment/Environment.h> -#include <corsika/environment/HomogeneousMedium.h> -#include <corsika/environment/NuclearComposition.h> -#include <corsika/geometry/Point.h> -#include <corsika/geometry/RootCoordinateSystem.h> -#include <corsika/geometry/Vector.h> -#include <corsika/units/PhysicalUnits.h> - -#include <corsika/setup/SetupStack.h> - -#include <catch2/catch.hpp> - -#include <numeric> - -using namespace corsika; -using namespace corsika::process::interaction_counter; -using namespace corsika::units; -using namespace corsika::units::si; - -const std::string refDataDir = std::string(REFDATADIR); // from cmake - -struct DummyProcess { - template <typename TParticle> - GrammageType GetInteractionLength([[maybe_unused]] TParticle const& particle) { - return 100_g / 1_cm / 1_cm; - } - - template <typename TParticle> - auto DoInteraction([[maybe_unused]] TParticle& projectile) { - return nullptr; - } -}; - -TEST_CASE("InteractionCounter", "[process]") { - - logging::SetLevel(logging::level::debug); - - DummyProcess d; - InteractionCounter countedProcess(d); - - SECTION("GetInteractionLength") { - REQUIRE(countedProcess.GetInteractionLength(nullptr) == 100_g / 1_cm / 1_cm); - } - - auto [env, csPtr, nodePtr] = setup::testing::setupEnvironment(particles::Code::Oxygen); - [[maybe_unused]] auto& env_dummy = env; - - SECTION("DoInteraction nucleus") { - unsigned short constexpr A = 14, Z = 7; - auto [stackPtr, secViewPtr] = setup::testing::setupStack(particles::Code::Nucleus, A, - Z, 105_TeV, nodePtr, *csPtr); - REQUIRE(stackPtr->getEntries() == 1); - REQUIRE(secViewPtr->getEntries() == 0); - - auto const ret = countedProcess.DoInteraction(*secViewPtr); - REQUIRE(ret == nullptr); - - auto const& h = countedProcess.GetHistogram().labHist(); - REQUIRE(h.at(h.axis(0).index(1'000'070'140), h.axis(1).index(1.05e14)) == 1); - REQUIRE(std::accumulate(h.cbegin(), h.cend(), 0) == 1); - - auto const& h2 = countedProcess.GetHistogram().CMSHist(); - REQUIRE(h2.at(h2.axis(0).index(1'000'070'140), h2.axis(1).index(1.6e12)) == 1); - REQUIRE(std::accumulate(h2.cbegin(), h2.cend(), 0) == 1); - - countedProcess.GetHistogram().saveLab("testInteractionCounter_file1.npz", - utl::SaveMode::overwrite); - countedProcess.GetHistogram().saveCMS("testInteractionCounter_file2.npz", - utl::SaveMode::overwrite); - } - - SECTION("DoInteraction Lambda") { - auto constexpr code = particles::Code::Lambda0; - auto [stackPtr, secViewPtr] = - setup::testing::setupStack(code, 0, 0, 105_TeV, nodePtr, *csPtr); - REQUIRE(stackPtr->getEntries() == 1); - REQUIRE(secViewPtr->getEntries() == 0); - - auto const ret = countedProcess.DoInteraction(*secViewPtr); - REQUIRE(ret == nullptr); - - auto const& h = countedProcess.GetHistogram().labHist(); - REQUIRE(h.at(h.axis(0).index(3122), h.axis(1).index(1.05e14)) == 1); - REQUIRE(std::accumulate(h.cbegin(), h.cend(), 0) == 1); - - auto const& h2 = countedProcess.GetHistogram().CMSHist(); - REQUIRE(h2.at(h2.axis(0).index(3122), h2.axis(1).index(1.6e12)) == 1); - REQUIRE(std::accumulate(h2.cbegin(), h2.cend(), 0) == 1); - } -} - -#include <algorithm> -#include <iterator> -#include <string> -#include <fstream> - -TEST_CASE("InteractionCounterOutput", "[output validation]") { - - auto file = GENERATE(as<std::string>{}, "testInteractionCounter_file1", - "testInteractionCounter_file2"); - - SECTION(std::string("check saved data, ") + file + ".npz") { - - std::cout << file + ".npz vs " << refDataDir + "/" + file + "_REF.npz" << std::endl; - - // compare to binary reference data - std::ifstream file1(file + ".npz"); - std::ifstream file1ref(refDataDir + "/" + file + "_REF.npz"); - - std::istreambuf_iterator<char> begin1(file1); - std::istreambuf_iterator<char> begin1ref(file1ref); - - std::istreambuf_iterator<char> end; - - while (begin1 != end && begin1ref != end) { - CHECK(*begin1 == *begin1ref); - ++begin1; - ++begin1ref; - } - CHECK(begin1 == end); - CHECK(begin1ref == end); - file1.close(); - file1ref.close(); - } -} diff --git a/Processes/InteractionCounter/testInteractionCounter_file1_REF.npz b/Processes/InteractionCounter/testInteractionCounter_file1_REF.npz deleted file mode 100644 index 13e2d5d49e16b6a2e7eb6b95dc1a26bccab18ae8..0000000000000000000000000000000000000000 Binary files a/Processes/InteractionCounter/testInteractionCounter_file1_REF.npz and /dev/null differ diff --git a/Processes/InteractionCounter/testInteractionCounter_file2_REF.npz b/Processes/InteractionCounter/testInteractionCounter_file2_REF.npz deleted file mode 100644 index 8509b27e4d690a386c2710a24ceda6a1143bf757..0000000000000000000000000000000000000000 Binary files a/Processes/InteractionCounter/testInteractionCounter_file2_REF.npz and /dev/null differ diff --git a/Processes/LongitudinalProfile/CMakeLists.txt b/Processes/LongitudinalProfile/CMakeLists.txt deleted file mode 100644 index 33e0df66db22b5b61174f72e7d887b83393abd82..0000000000000000000000000000000000000000 --- a/Processes/LongitudinalProfile/CMakeLists.txt +++ /dev/null @@ -1,62 +0,0 @@ -set ( - MODEL_SOURCES - LongitudinalProfile.cc - ) - -set ( - MODEL_HEADERS - LongitudinalProfile.h - ) - -set ( - MODEL_NAMESPACE - corsika/process/longitudinal_profile - ) - -add_library (ProcessLongitudinalProfile STATIC ${MODEL_SOURCES}) -CORSIKA_COPY_HEADERS_TO_NAMESPACE (ProcessLongitudinalProfile ${MODEL_NAMESPACE} ${MODEL_HEADERS}) - -set_target_properties ( - ProcessLongitudinalProfile - PROPERTIES - VERSION ${PROJECT_VERSION} - SOVERSION 1 -# PUBLIC_HEADER "${MODEL_HEADERS}" - ) - -# target dependencies on other libraries (also the header onlys) -target_link_libraries ( - ProcessLongitudinalProfile - CORSIKAenvironment - CORSIKAunits - CORSIKAparticles - CORSIKAgeometry - CORSIKAsetup - ) - -target_include_directories ( - ProcessLongitudinalProfile - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -install ( - TARGETS ProcessLongitudinalProfile - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib -# PUBLIC_HEADER DESTINATION include/${MODEL_NAMESPACE} - ) - - -# -------------------- -# code unit testing -# CORSIKA_ADD_TEST(testNullModel) -#target_link_libraries ( -# testNullModel ProcessNullModel -# CORSIKAsetup -# CORSIKAgeometry -# CORSIKAunits -# CORSIKAthirdparty # for catch2 -# ) - diff --git a/Processes/LongitudinalProfile/LongitudinalProfile.cc b/Processes/LongitudinalProfile/LongitudinalProfile.cc deleted file mode 100644 index f9fd05c1baf2e450fc22e791a60e788a51ceda57..0000000000000000000000000000000000000000 --- a/Processes/LongitudinalProfile/LongitudinalProfile.cc +++ /dev/null @@ -1,81 +0,0 @@ -/* - * (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/process/longitudinal_profile/LongitudinalProfile.h> - -#include <corsika/particles/ParticleProperties.h> - -#include <corsika/logging/Logging.h> - -#include <corsika/setup/SetupStack.h> -#include <corsika/setup/SetupTrajectory.h> - -#include <cmath> -#include <iomanip> -#include <limits> - -using namespace corsika::setup; -using Particle = Stack::ParticleType; -using Track = Trajectory; - -using namespace corsika::process::longitudinal_profile; -using namespace corsika::units::si; - -LongitudinalProfile::LongitudinalProfile(environment::ShowerAxis const& shower_axis, - units::si::GrammageType dX) - : dX_(dX) - , shower_axis_{shower_axis} - , profiles_{static_cast<unsigned int>(shower_axis.maximumX() / dX_) + 1} {} - -template <> -corsika::process::EProcessReturn LongitudinalProfile::DoContinuous(Particle const& vP, - Track const& vTrack) { - auto const pid = vP.GetPID(); - - GrammageType const grammageStart = shower_axis_.projectedX(vTrack.GetPosition(0)); - GrammageType const grammageEnd = shower_axis_.projectedX(vTrack.GetPosition(1)); - - C8LOG_INFO( - "pos1={} m, pos2={}, X={} g/cm2", vTrack.GetPosition(0).GetCoordinates() / 1_m, - vTrack.GetPosition(1).GetCoordinates() / 1_m, grammageStart / 1_g * square(1_cm)); - - const int binStart = std::ceil(grammageStart / dX_); - const int binEnd = std::floor(grammageEnd / dX_); - - for (int b = binStart; b <= binEnd; ++b) { - if (pid == particles::Code::Gamma) { - profiles_.at(b)[ProfileIndex::Gamma]++; - } else if (pid == particles::Code::Positron) { - profiles_.at(b)[ProfileIndex::Positron]++; - } else if (pid == particles::Code::Electron) { - profiles_.at(b)[ProfileIndex::Electron]++; - } else if (pid == particles::Code::MuPlus) { - profiles_.at(b)[ProfileIndex::MuPlus]++; - } else if (pid == particles::Code::MuMinus) { - profiles_.at(b)[ProfileIndex::MuMinus]++; - } else if (particles::IsHadron(pid)) { - profiles_.at(b)[ProfileIndex::Hadron]++; - } - } - - return corsika::process::EProcessReturn::eOk; -} - -void LongitudinalProfile::save(std::string const& filename, const int width, - const int precision) { - std::ofstream f{filename}; - f << "# X / g·cm¯², gamma, e+, e-, mu+, mu-, all hadrons" << std::endl; - for (size_t b = 0; b < profiles_.size(); ++b) { - f << std::setprecision(5) << std::setw(11) << b * (dX_ / (1_g / 1_cm / 1_cm)); - for (auto const& N : profiles_.at(b)) { - f << std::setw(width) << std::setprecision(precision) << std::scientific << N; - } - f << std::endl; - } -} diff --git a/Processes/LongitudinalProfile/LongitudinalProfile.h b/Processes/LongitudinalProfile/LongitudinalProfile.h deleted file mode 100644 index c4d2bf0c6e6461d89f66fc53dcd41810a6f7dd7f..0000000000000000000000000000000000000000 --- a/Processes/LongitudinalProfile/LongitudinalProfile.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * (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/ShowerAxis.h> -#include <corsika/process/ContinuousProcess.h> -#include <corsika/units/PhysicalUnits.h> - -#include <array> -#include <fstream> -#include <limits> -#include <string> - -namespace corsika::process::longitudinal_profile { - - /** - * \class LongitudinalProfile - * - * is a ContinuousProcess, which is constructed from an environment::ShowerAxis - * object, and a dX in units of g/cm2 - * (corsika::units::si::GrammageType). - * - * LongitudinalProfile does then convert each single Track of the - * simulation into a projected grammage range and counts for - * different particle species when they cross dX (default: 10g/cm2) - * boundaries. - * - **/ - - class LongitudinalProfile - : public corsika::process::ContinuousProcess<LongitudinalProfile> { - - public: - LongitudinalProfile(environment::ShowerAxis const&, - units::si::GrammageType dX = std::invoke([]() { - using namespace units::si; - return 10_g / square(1_cm); - })); // profile binning); - - template <typename TParticle, typename TTrack> - corsika::process::EProcessReturn DoContinuous(TParticle const&, TTrack const&); - - template <typename TParticle, typename TTrack> - corsika::units::si::LengthType MaxStepLength(TParticle const&, TTrack const&) { - return units::si::meter * std::numeric_limits<double>::infinity(); - } - - void save(std::string const&, int const width = 14, int const precision = 6); - - private: - units::si::GrammageType const dX_; - - environment::ShowerAxis const& shower_axis_; - using ProfileEntry = std::array<uint32_t, 6>; - enum ProfileIndex { - Gamma = 0, - Positron = 1, - Electron = 2, - MuPlus = 3, - MuMinus = 4, - Hadron = 5 - }; - std::vector<ProfileEntry> profiles_; // longitudinal profile - }; - -} // namespace corsika::process::longitudinal_profile diff --git a/Processes/ObservationPlane/ObservationPlane_interpolation.cc b/Processes/ObservationPlane/ObservationPlane_interpolation.cc deleted file mode 100644 index 8460c5f5ba34947adc2e2693de897e69dbbebf7d..0000000000000000000000000000000000000000 --- a/Processes/ObservationPlane/ObservationPlane_interpolation.cc +++ /dev/null @@ -1,68 +0,0 @@ -/* - * (c) Copyright 2019 CORSIKA Project, corsika-project@lists.kit.edu - * - * See file AUTHORS for a list of contributors. - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/process/observation_plane/ObservationPlane.h> - -#include <fstream> - -using namespace corsika::process::observation_plane; -using namespace corsika::units::si; - -ObservationPlane::ObservationPlane( - geometry::Plane const& obsPlane, - geometry::Vector<units::si::dimensionless_d> const& x_axis, - std::string const& filename, bool deleteOnHit) - : plane_(obsPlane) - , outputStream_(filename) - , deleteOnHit_(deleteOnHit) - , xAxis_(x_axis.normalized()) - , yAxis_(obsPlane.GetNormal().cross(xAxis_)) { - outputStream_ << "#PDG code, energy / eV, x distance / m, y distance / m" << std::endl; -} - -corsika::process::EProcessReturn ObservationPlane::DoContinuous( - setup::Stack::ParticleType const& particle, setup::Trajectory const& trajectory) { - TimeType const timeOfIntersection = - (plane_.GetCenter() - trajectory.GetR0()).dot(plane_.GetNormal()) / - trajectory.GetV0().dot(plane_.GetNormal()); - - if (timeOfIntersection < TimeType::zero()) { return process::EProcessReturn::eOk; } - - if (plane_.IsAbove(trajectory.GetR0()) == plane_.IsAbove(trajectory.GetPosition(1))) { - return process::EProcessReturn::eOk; - } - - auto const displacement = trajectory.GetPosition(1) - plane_.GetCenter(); - - outputStream_ << static_cast<int>(particles::GetPDG(particle.GetPID())) << ' ' - << particle.GetEnergy() * (1 / 1_eV) << ' ' - << displacement.dot(xAxis_) / 1_m << ' ' << displacement.dot(yAxis_) / 1_m - << ' ' << std::endl; - - if (deleteOnHit_) { - return process::EProcessReturn::eParticleAbsorbed; - } else { - return process::EProcessReturn::eOk; - } -} - -LengthType ObservationPlane::MaxStepLength(setup::Stack::ParticleType const&, - setup::Trajectory const& trajectory) { - TimeType const timeOfIntersection = - (plane_.GetCenter() - trajectory.GetR0()).dot(plane_.GetNormal()) / - trajectory.GetV0().dot(plane_.GetNormal()); - - if (timeOfIntersection < TimeType::zero()) { - return std::numeric_limits<double>::infinity() * 1_m; - } - - auto const pointOfIntersection = trajectory.GetPosition(timeOfIntersection); - return (trajectory.GetR0() - pointOfIntersection).norm() * 1.0001; -} diff --git a/Processes/OnShellCheck/CMakeLists.txt b/Processes/OnShellCheck/CMakeLists.txt deleted file mode 100644 index 0d2191ad34fd420b322efdf39c39d024a0f8184d..0000000000000000000000000000000000000000 --- a/Processes/OnShellCheck/CMakeLists.txt +++ /dev/null @@ -1,67 +0,0 @@ -set ( - MODEL_SOURCES - OnShellCheck.cc -) - -set ( - MODEL_HEADERS - OnShellCheck.h - ) - -set ( - MODEL_NAMESPACE - corsika/process/on_shell_check - ) - -add_library (ProcessOnShellCheck STATIC ${MODEL_SOURCES}) -CORSIKA_COPY_HEADERS_TO_NAMESPACE (ProcessOnShellCheck ${MODEL_NAMESPACE} ${MODEL_HEADERS}) - -set_target_properties ( - ProcessOnShellCheck - PROPERTIES - VERSION ${PROJECT_VERSION} - SOVERSION 1 -# PUBLIC_HEADER "${MODEL_HEADERS}" - ) - -# target dependencies on other libraries (also the header onlys) -target_link_libraries ( - ProcessOnShellCheck - CORSIKAunits - CORSIKAparticles - CORSIKAprocesssequence - CORSIKAsetup - ) - -target_include_directories ( - ProcessOnShellCheck - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -install ( - TARGETS ProcessOnShellCheck - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib -# PUBLIC_HEADER DESTINATION include/${MODEL_NAMESPACE} - ) - -# -------------------- -# code unit testing -CORSIKA_ADD_TEST(testOnShellCheck SOURCES - testOnShellCheck.cc - ${MODEL_HEADERS} -) - -target_link_libraries ( - testOnShellCheck - ProcessOnShellCheck - CORSIKAunits - CORSIKAstackinterface - CORSIKAprocesssequence - CORSIKAsetup - CORSIKAgeometry - CORSIKAenvironment - CORSIKAtesting - ) diff --git a/Processes/OnShellCheck/OnShellCheck.cc b/Processes/OnShellCheck/OnShellCheck.cc deleted file mode 100644 index 6ad035d14cac0a3f5f17a06397c9f07633e0db83..0000000000000000000000000000000000000000 --- a/Processes/OnShellCheck/OnShellCheck.cc +++ /dev/null @@ -1,77 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/geometry/FourVector.h> -#include <corsika/process/on_shell_check/OnShellCheck.h> - -using namespace std; - -using namespace corsika; -using namespace corsika::process; -using namespace corsika::units::si; -using namespace corsika::particles; -using namespace corsika::setup; - -namespace corsika::process { - namespace on_shell_check { - - void OnShellCheck::Init() { - std::cout << "OnShellCheck: mass tolerance is set to " << mass_tolerance_ * 100 - << "%" << endl - << " energy tolerance is set to " << energy_tolerance_ * 100 - << "%" << std::endl; - } - - EProcessReturn OnShellCheck::DoSecondaries(corsika::setup::StackView& vS) { - for (auto& p : vS) { - auto const pid = p.GetPID(); - if (!particles::IsHadron(pid) || particles::IsNucleus(pid)) continue; - auto const e_original = p.GetEnergy(); - auto const p_original = p.GetMomentum(); - auto const Plab = corsika::geometry::FourVector(e_original, p_original); - auto const m_kinetic = Plab.GetNorm(); - auto const m_corsika = particles::GetMass(pid); - auto const m_err_abs = abs(m_kinetic - m_corsika); - if (m_err_abs >= mass_tolerance_ * m_corsika) { - const HEPEnergyType e_shifted = - sqrt(p_original.GetSquaredNorm() + m_corsika * m_corsika); - auto const e_shift_relative = (e_shifted / e_original - 1); - count_ = count_ + 1; - average_shift_ += abs(e_shift_relative); - if (abs(e_shift_relative) > max_shift_) max_shift_ = abs(e_shift_relative); - std::cout << "OnShellCheck: shift particle mass for " << pid << std::endl - << std::setw(40) << std::setfill(' ') - << "corsika mass (GeV): " << m_corsika / 1_GeV << std::endl - << std::setw(40) << std::setfill(' ') - << "kinetic mass (GeV): " << m_kinetic / 1_GeV << std::endl - << std::setw(40) << std::setfill(' ') - << "m_kin-m_cor (GeV): " << m_err_abs / 1_GeV << std::endl - << std::setw(40) << std::setfill(' ') - << "mass tolerance (GeV): " << (m_corsika * mass_tolerance_) / 1_GeV - << std::endl; - /* - For now we warn if the necessary shift is larger than 1%. - we could promote this to an error. - */ - if (abs(e_shift_relative) > energy_tolerance_) { - std::cout << "OnShellCheck: warning! shifted particle energy by " - << e_shift_relative * 100 << " %" << std::endl; - if (throw_error_) - throw std::runtime_error( - "OnShellCheck: error! shifted energy by large amount!"); - } - - // reset energy - p.SetEnergy(e_shifted); - } else - std::cout << "OnShellCheck: particle mass for " << pid << " OK" << std::endl; - } - return EProcessReturn::eOk; - } - } // namespace on_shell_check -} // namespace corsika::process diff --git a/Processes/OnShellCheck/OnShellCheck.h b/Processes/OnShellCheck/OnShellCheck.h deleted file mode 100644 index 940c705e2500b1c219c78bf24bae8728f18d2b10..0000000000000000000000000000000000000000 --- a/Processes/OnShellCheck/OnShellCheck.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#ifndef _corsika_process_on_shell_check_OnShellCheck_h_ -#define _corsika_process_on_shell_check_OnShellCheck_h_ - -#include <corsika/particles/ParticleProperties.h> -#include <corsika/process/SecondariesProcess.h> -#include <corsika/setup/SetupStack.h> -#include <corsika/units/PhysicalUnits.h> - -namespace corsika::process { - namespace on_shell_check { - class OnShellCheck : public process::SecondariesProcess<OnShellCheck> { - double average_shift_ = 0; - double max_shift_ = 0; - double count_ = 0; - - public: - OnShellCheck(const double vMassTolerance, const double vEnergyTolerance, - const bool vError) - : mass_tolerance_(vMassTolerance) - , energy_tolerance_(vEnergyTolerance) - , throw_error_(vError) {} - - ~OnShellCheck() { - std::cout << "OnShellCheck: summary" << std::endl - << " particles shifted: " << int(count_) << std::endl; - if (count_) - std::cout << " average energy shift (%): " << average_shift_ / count_ * 100. - << std::endl - << " max. energy shift (%): " << max_shift_ * 100. << std::endl; - }; - - EProcessReturn DoSecondaries(corsika::setup::StackView&); - - void Init(); - - private: - double mass_tolerance_; - double energy_tolerance_; - bool throw_error_; - }; - } // namespace on_shell_check -} // namespace corsika::process - -#endif diff --git a/Processes/OnShellCheck/testOnShellCheck.cc b/Processes/OnShellCheck/testOnShellCheck.cc deleted file mode 100644 index 77c64e178da2726fabcd7c3792af60d270417c25..0000000000000000000000000000000000000000 --- a/Processes/OnShellCheck/testOnShellCheck.cc +++ /dev/null @@ -1,88 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/process/on_shell_check/OnShellCheck.h> - -#include <corsika/environment/Environment.h> -#include <corsika/geometry/FourVector.h> -#include <corsika/geometry/Point.h> -#include <corsika/geometry/RootCoordinateSystem.h> -#include <corsika/geometry/Vector.h> -#include <corsika/units/PhysicalUnits.h> -#include <corsika/utl/CorsikaFenv.h> - -#include <corsika/setup/SetupStack.h> - -#include <catch2/catch.hpp> - -using namespace corsika; -using namespace corsika::process::on_shell_check; -using namespace corsika::units; -using namespace corsika::units::si; - -TEST_CASE("OnShellCheck", "[processes]") { - feenableexcept(FE_INVALID); - using EnvType = setup::Environment; - EnvType env; - const geometry::CoordinateSystem& rootCS = env.GetCoordinateSystem(); - - // setup empty particle stack - setup::Stack stack; - stack.Clear(); - // two energies - const HEPEnergyType E = 10_GeV; - // list of arbitrary particles - std::array const particleList{particles::Code::PiPlus, particles::Code::PiMinus, - particles::Code::Helium, particles::Code::Gamma}; - - std::array const mass_shifts{1.1, 1.001, 1.0, 1.0}; - - SECTION("check particle masses") { - - OnShellCheck check(1.e-2, 0.01, false); - - check.Init(); - - // add primary particle to stack - auto particle = stack.AddParticle( - std::tuple<particles::Code, units::si::HEPEnergyType, - corsika::stack::MomentumVector, geometry::Point, units::si::TimeType>{ - particles::Code::Proton, E, - corsika::stack::MomentumVector(rootCS, {0_GeV, 0_GeV, 0_GeV}), - geometry::Point(rootCS, 0_m, 0_m, 0_m), 0_ns}); - // view on secondary particles - setup::StackView view{particle}; - // ref. to primary particle through the secondary view. - // only this way the secondary view is populated - auto projectile = view.GetProjectile(); - // add secondaries, all with energies above the threshold - // only cut is by species - int count = -1; - for (auto proType : particleList) { - count++; - const auto pz = sqrt((E - particles::GetMass(proType) * mass_shifts[count]) * - (E + particles::GetMass(proType) * mass_shifts[count])); - auto const momentum = corsika::stack::MomentumVector(rootCS, {0_GeV, 0_GeV, pz}); - projectile.AddSecondary(std::tuple<particles::Code, units::si::HEPEnergyType, - corsika::stack::MomentumVector, geometry::Point, - units::si::TimeType>{ - proType, E, momentum, geometry::Point(rootCS, 0_m, 0_m, 0_m), 0_ns}); - } - check.DoSecondaries(view); - int i = -1; - for (auto& p : view) { - i++; - auto const Plab = corsika::geometry::FourVector(p.GetEnergy(), p.GetMomentum()); - auto const m_kinetic = Plab.GetNorm(); - if (i == 0) - CHECK(m_kinetic / particles::PiPlus::GetMass() == Approx(1)); - else if (i == 1) - CHECK_FALSE(m_kinetic / particles::PiMinus::GetMass() == Approx(1)); - } - } -} diff --git a/Processes/Proposal/CMakeLists.txt b/Processes/Proposal/CMakeLists.txt deleted file mode 100644 index 08a37a68b441536a1fba53314165b00991d64d19..0000000000000000000000000000000000000000 --- a/Processes/Proposal/CMakeLists.txt +++ /dev/null @@ -1,42 +0,0 @@ -file(READ CMakeLists_PROPOSAL.txt overwrite_CMakeLists_PROPOSAL_txt) -file(WRITE PROPOSAL/CMakeLists.txt ${overwrite_CMakeLists_PROPOSAL_txt}) -add_subdirectory (PROPOSAL) - -FILE (GLOB MODEL_SOURCES *.cc) -FILE (GLOB MODEL_HEADERS *.h) -SET (MODEL_NAMESPACE corsika/process/proposal) - -ADD_LIBRARY (ProcessProposal STATIC ${MODEL_SOURCES}) -CORSIKA_COPY_HEADERS_TO_NAMESPACE (ProcessProposal ${MODEL_NAMESPACE} ${MODEL_HEADERS}) - -SET_TARGET_PROPERTIES ( - ProcessProposal - PROPERTIES VERSION ${PROJECT_VERSION} - SOVERSION 1 - ) - -TARGET_LINK_LIBRARIES ( - ProcessProposal - CORSIKAparticles - CORSIKAutilities - CORSIKAunits - CORSIKAthirdparty - CORSIKAgeometry - CORSIKAlogging - CORSIKAenvironment - ProcessParticleCut - PROPOSAL::PROPOSAL - ) - -TARGET_INCLUDE_DIRECTORIES ( - ProcessProposal - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -INSTALL ( - TARGETS ProcessProposal - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - ) diff --git a/Processes/Proposal/CMakeLists_PROPOSAL.txt b/Processes/Proposal/CMakeLists_PROPOSAL.txt deleted file mode 100644 index 7045ae65db2b0a81b82bfd38ba643d1a9056590e..0000000000000000000000000000000000000000 --- a/Processes/Proposal/CMakeLists_PROPOSAL.txt +++ /dev/null @@ -1,183 +0,0 @@ - -cmake_minimum_required(VERSION 3.8) - -if(CMAKE_PROJECT_NAME STREQUAL corsika) - message(STATUS "Including PROPOSAL as part of CORSIKA8") - set (IN_CORSIKA8 ON) -else(CMAKE_PROJECT_NAME STREQUAL corsika) - set (IN_CORSIKA8 OFF) -endif(CMAKE_PROJECT_NAME STREQUAL corsika) - -project(PROPOSAL VERSION 6.1.2 LANGUAGES CXX) - -if (NOT IN_CORSIKA8) -IF(APPLE) - # In newer version of cmake this will be the default - SET(CMAKE_MACOSX_RPATH 1) -ENDIF(APPLE) - -# sets standard installtion paths -include(GNUInstallDirs) - -### full RPATH -### copied from https://cmake.org/Wiki/CMake_RPATH_handling -### set the RPATH so that for using PROPOSAL in python -### the DYLD_LIBRARY_PATH must not be set in the bashrc -### But for using PROPOSAL as c-Library, this path still -### has to be set - -# use, i.e. don't skip the full RPATH for the build tree -SET(CMAKE_SKIP_BUILD_RPATH FALSE) - -# when building, don't use the install RPATH already -# (but later on when installing) -OPTION(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) -list(APPEND CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib;${CMAKE_INSTALL_PREFIX}/lib64") -message(STATUS "CMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}") - -# add the automatically determined parts of the RPATH -# which point to directories outside the build tree to the install RPATH -OPTION(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -### end full RPATH - -# Some additional options -OPTION(ADD_PYTHON "Choose to compile the python wrapper library" ON) -endif (NOT IN_CORSIKA8) - -################################################################# -#################### PROPOSAL ######################## -################################################################# -file(GLOB_RECURSE SRC_FILES ${PROJECT_SOURCE_DIR}/src/PROPOSAL/*) -if (IN_CORSIKA8) - add_library(PROPOSAL STATIC ${SRC_FILES}) -else (IN_CORSIKA8) - add_library(PROPOSAL SHARED ${SRC_FILES}) -endif (IN_CORSIKA8) - -add_library(PROPOSAL::PROPOSAL ALIAS PROPOSAL) -#target_compile_features(PROPOSAL PUBLIC cxx_std_11) -#set_target_properties(PROPOSAL PROPERTIES CXX_EXTENSIONS OFF) -target_include_directories( - PROPOSAL PUBLIC - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> - $<INSTALL_INTERFACE:include> -) -target_compile_options(PROPOSAL PRIVATE -Wall -Wextra -Wnarrowing -Wpedantic -fdiagnostics-show-option -Wno-format-security) -install( - TARGETS PROPOSAL - EXPORT PROPOSALTargets - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - -# input version from the project call, so the library knows its own version -configure_file( - "${PROJECT_SOURCE_DIR}/include/PROPOSAL/version.h.in" - "${PROJECT_BINARY_DIR}/include/PROPOSAL/version.h" -) -install( - FILES ${PROJECT_BINARY_DIR}/include/PROPOSAL/version.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/include/PROPOSAL -) -target_include_directories( - PROPOSAL PUBLIC - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include> -) - -# install header files -file(GLOB_RECURSE INC_FILES ${PROJECT_SOURCE_DIR}/include/*) -foreach(INC_FILE ${INC_FILES}) - file(RELATIVE_PATH REL_FILE ${PROJECT_SOURCE_DIR}/include ${INC_FILE}) - get_filename_component(DIR ${REL_FILE} DIRECTORY) - install(FILES include/${REL_FILE} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${DIR}) -endforeach() - - -if(NOT IS_SYMLINK ${CMAKE_BINARY_DIR}/resources) - execute_process(COMMAND ln -sv ${CMAKE_CURRENT_SOURCE_DIR}/resources ${CMAKE_BINARY_DIR}/resources OUTPUT_VARIABLE link_msg OUTPUT_STRIP_TRAILING_WHITESPACE) - message(STATUS "Symlink to resources created:") - message(STATUS " ${link_msg}") -endif() - - -################################################################# -################# spdlog ####################### -################################################################# - -if (NOT IN_CORSIKA8) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) -add_subdirectory("vendor/spdlog") -endif (NOT IN_CORSIKA8) -target_link_libraries(PROPOSAL PRIVATE spdlog::spdlog) - - -################################################################# -################# Tests ######################## -################################################################# - -if (NOT IN_CORSIKA8) -if(CMAKE_PROJECT_NAME STREQUAL PROPOSAL) - include(CTest) -endif() -if(CMAKE_PROJECT_NAME STREQUAL PROPOSAL AND BUILD_TESTING) - add_subdirectory(tests) -else() - MESSAGE(STATUS "No tests will be build.") -endif() -endif (NOT IN_CORSIKA8) - -################################################################# -################# Documentation ######################## -################################################################# -if (NOT IN_CORSIKA8) -add_subdirectory(doc) -endif (NOT IN_CORSIKA8) - - -################################################################# -################# python ######################### -################################################################# -if (NOT IN_CORSIKA8) -IF(ADD_PYTHON) - message(STATUS "Building the python wrapper library.") - find_package(PythonLibs REQUIRED) - add_subdirectory("vendor/pybind11") - file(GLOB_RECURSE PYTHON_SRC_FILES ${PROJECT_SOURCE_DIR}/interface/python/*) - - pybind11_add_module(pyproposal SHARED ${PYTHON_SRC_FILES}) - set_target_properties(pyproposal PROPERTIES OUTPUT_NAME proposal) - target_include_directories(pyproposal PRIVATE ${PYTHON_INCLUDE_DIRS}) - target_include_directories(pyproposal PRIVATE ${PROJECT_SOURCE_DIR}/interface/python) - target_link_libraries(pyproposal PRIVATE PROPOSAL) - target_compile_options(pyproposal PRIVATE -fvisibility=hidden) - install(TARGETS pyproposal EXPORT PROPOSALTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) -ELSE(ADD_PYTHON) - MESSAGE(STATUS "No python wrapper library will be build.") -ENDIF(ADD_PYTHON) -endif (NOT IN_CORSIKA8) - - - -################################################################# -################# INSTALLATION ################### -################################################################# -if (NOT IN_CORSIKA8) -install( - EXPORT PROPOSALTargets - FILE PROPOSALConfig.cmake - NAMESPACE PROPOSAL:: - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/PROPOSAL -) - -include(CMakePackageConfigHelpers) -write_basic_package_version_file( - "PROPOSALConfigVersion.cmake" - VERSION ${PACKAGE_VERSION} - COMPATIBILITY SameMajorVersion -) -install( - FILES "${CMAKE_CURRENT_BINARY_DIR}/PROPOSALConfigVersion.cmake" - DESTINATION lib/cmake/PROPOSAL -) -endif (NOT IN_CORSIKA8) diff --git a/Processes/Proposal/ContinuousProcess.cc b/Processes/Proposal/ContinuousProcess.cc deleted file mode 100644 index fb4d528fa83d41178739c3a1c25888feff808a16..0000000000000000000000000000000000000000 --- a/Processes/Proposal/ContinuousProcess.cc +++ /dev/null @@ -1,161 +0,0 @@ -/* - * (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 <PROPOSAL/PROPOSAL.h> -#include <corsika/environment/IMediumModel.h> -#include <corsika/process/proposal/ContinuousProcess.h> -#include <corsika/process/proposal/Interaction.h> -#include <corsika/setup/SetupEnvironment.h> -#include <corsika/setup/SetupStack.h> -#include <corsika/setup/SetupTrajectory.h> -#include <corsika/units/PhysicalUnits.h> -#include <corsika/utl/COMBoost.h> -#include <corsika/logging/Logging.h> - -#include <iostream> - -namespace corsika::process::proposal { - - void ContinuousProcess::BuildCalculator(particles::Code code, - environment::NuclearComposition const& comp) { - // search crosssection builder for given particle - auto p_cross = cross.find(code); - if (p_cross == cross.end()) - throw std::runtime_error("PROPOSAL could not find corresponding builder"); - - // interpolate the crosssection for given media and energy cut. These may - // take some minutes if you have to build the tables and cannot read the - // from disk - auto c = p_cross->second(media.at(comp.hash()), emCut_); - - // Build displacement integral and scattering object and interpolate them too and - // saved in the calc map by a key build out of a hash of composed of the component and - // particle code. - auto disp = PROPOSAL::make_displacement(c, true); - auto scatter = - PROPOSAL::make_scattering("highland", particle[code], media.at(comp.hash())); - calc[std::make_pair(comp.hash(), code)] = - std::make_tuple(std::move(disp), std::move(scatter)); - } - - template <> - ContinuousProcess::ContinuousProcess(setup::Environment const& _env, - corsika::units::si::HEPEnergyType _emCut) - : ProposalProcessBase(_env, _emCut) {} - - template <> - void ContinuousProcess::Scatter(setup::Stack::ParticleType& vP, - corsika::units::si::HEPEnergyType const& loss, - corsika::units::si::GrammageType const& grammage) { - using namespace corsika::units::si; // required for operator::_MeV - - // Get or build corresponding calculators - auto c = GetCalculator(vP, calc); - - // Cast corsika vector to proposal vector - auto vP_dir = vP.GetDirection(); - auto d = vP_dir.GetComponents(); - auto direction = PROPOSAL::Vector3D(d.GetX().magnitude(), d.GetY().magnitude(), - d.GetZ().magnitude()); - - auto E_f = vP.GetEnergy() - loss; - - // draw random numbers required for scattering process - std::uniform_real_distribution<double> distr(0., 1.); - auto rnd = array<double, 4>(); - for (auto& it : rnd) it = distr(fRNG); - - // calculate deflection based on particle energy, loss - auto [mean_dir, final_dir] = get<eSCATTERING>(c->second)->Scatter( - grammage / 1_g * square(1_cm), vP.GetEnergy() / 1_MeV, E_f / 1_MeV, direction, - rnd); - - // TODO: neglect mean direction deflection because Trajectory is a const ref - (void)mean_dir; - - // update particle direction after continuous loss caused by multiple - // scattering - auto vec = corsika::geometry::QuantityVector( - final_dir.GetX() * E_f, final_dir.GetY() * E_f, final_dir.GetZ() * E_f); - vP.SetMomentum(corsika::stack::MomentumVector(vP_dir.GetCoordinateSystem(), vec)); - } - - template <> - EProcessReturn ContinuousProcess::DoContinuous(setup::Stack::ParticleType& vP, - setup::Trajectory const& vT) { - using namespace corsika::units::si; // required for operator::_MeV - - if (!CanInteract(vP.GetPID())) return process::EProcessReturn::eOk; - if (vT.GetLength() == 0_m) return process::EProcessReturn::eOk; - - // calculate passed grammage - auto dX = vP.GetNode()->GetModelProperties().IntegratedGrammage(vT, vT.GetLength()); - - // Get or build corresponding track integral calculator and solve the - // integral - auto c = GetCalculator(vP, calc); - auto final_energy = get<eDISPLACEMENT>(c->second)->UpperLimitTrackIntegral( - vP.GetEnergy() / 1_MeV, dX / 1_g * 1_cm * 1_cm) * - 1_MeV; - auto dE = vP.GetEnergy() - final_energy; - energy_lost_ += dE; - - // if the particle has a charge take multiple scattering into account - if (vP.GetChargeNumber() != 0) Scatter(vP, dE, dX); - vP.SetEnergy(final_energy); - vP.SetMomentum(vP.GetMomentum() * vP.GetEnergy() / vP.GetMomentum().GetNorm()); - return process::EProcessReturn::eOk; - } - - template <> - units::si::LengthType ContinuousProcess::MaxStepLength( - setup::Stack::ParticleType const& vP, setup::Trajectory const& vT) { - using namespace corsika::units::si; // required for operator::_MeV - - if (!CanInteract(vP.GetPID())) - return units::si::meter * std::numeric_limits<double>::infinity(); - - // Limit the step size of a conitnuous loss. The maximal continuous loss seems to be a - // hyper parameter which must be adjusted. - // - // in any case: never go below 0.99*emCut_ This needs to be - // slightly smaller than emCut_ since, either this Step is limited - // by energy_lim, then the particle is stopped in a very short - // range (before doing anythin else) and is then removed - // instantly. The exact position where it reaches emCut is not - // important, the important fact is that its E_kin is zero - // afterwards. - // - auto energy_lim = std::max(0.9 * vP.GetEnergy(), 0.99 * emCut_); - - // solving the track integral for giving energy lim - auto c = GetCalculator(vP, calc); - auto grammage = get<eDISPLACEMENT>(c->second)->SolveTrackIntegral( - vP.GetEnergy() / 1_MeV, energy_lim / 1_MeV) * - 1_g / square(1_cm); - - // return it in distance aequivalent - auto dist = vP.GetNode()->GetModelProperties().ArclengthFromGrammage(vT, grammage); - C8LOG_TRACE("PROPOSAL::MaxStepLength X={} g/cm2, l={} m ", - grammage / 1_g * square(1_cm), dist / 1_m); - return dist; - } - - void ContinuousProcess::showResults() const { - using namespace corsika::units::si; // required for operator::_MeV - std::cout << " ******************************" << std::endl - << " PROCESS::ContinuousProcess: " << std::endl; - std::cout << " energy lost dE (GeV) : " << energy_lost_ / 1_GeV << std::endl; - } - - void ContinuousProcess::reset() { - using namespace corsika::units::si; // required for operator::_MeV - energy_lost_ = 0_GeV; - } - -} // namespace corsika::process::proposal diff --git a/Processes/Proposal/ContinuousProcess.h b/Processes/Proposal/ContinuousProcess.h deleted file mode 100644 index 6d6641e529134d8ad6aa80a048caaba3acbc50af..0000000000000000000000000000000000000000 --- a/Processes/Proposal/ContinuousProcess.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <PROPOSAL/PROPOSAL.h> -#include <corsika/environment/Environment.h> -#include <corsika/particles/ParticleProperties.h> -#include <corsika/process/ContinuousProcess.h> -#include <corsika/process/proposal/ProposalProcessBase.h> -#include <corsika/random/RNGManager.h> -#include <corsika/random/UniformRealDistribution.h> -#include <unordered_map> - -namespace corsika::process::proposal { - - //! - //! Electro-magnetic and gamma continous losses produced by proposal. It makes - //! use of interpolation tables which are runtime intensive calculation, but can be - //! reused by setting the \param PROPOSAL::InterpolationDef::path_to_tables variable. - //! - class ContinuousProcess : public process::ContinuousProcess<ContinuousProcess>, - ProposalProcessBase { - - enum { eDISPLACEMENT, eSCATTERING }; - using calc_t = std::tuple<std::unique_ptr<PROPOSAL::Displacement>, - std::unique_ptr<PROPOSAL::Scattering>>; - - std::unordered_map<calc_key_t, calc_t, hash> - calc; //!< Stores the displacement and scattering calculators. - - units::si::HEPEnergyType energy_lost_ = 0 * units::si::electronvolt; - - //! - //! Build the displacement and scattering calculators and add it to calc. - //! - void BuildCalculator(particles::Code, environment::NuclearComposition const&) final; - - public: - //! - //! Produces the continuous loss calculator for leptons based on nuclear - //! compositions and stochastic description limited by the particle cut. - //! - template <typename TEnvironment> - ContinuousProcess(TEnvironment const&, corsika::units::si::HEPEnergyType _emCut); - - //! - //! Multiple Scattering of the lepton. Stochastic deflection is not yet taken into - //! account. Displacment of the track due to multiple scattering is not possible - //! because of the constant referernce. The final direction will be updated anyway. - //! - template <typename Particle> - void Scatter(Particle&, corsika::units::si::HEPEnergyType const&, - corsika::units::si::GrammageType const&); - - //! - //! Produces the loss and deflection after given distance for the particle. - //! If the particle if below the given energy threshold where it will be - //! considered stochastically, it will be absorbed. - //! - template <typename Particle, typename Track> - EProcessReturn DoContinuous(Particle&, Track const&); - - //! - //! Calculates maximal step length of process. - //! - template <typename Particle, typename Track> - corsika::units::si::LengthType MaxStepLength(Particle const&, Track const&); - - void showResults() const; - void reset(); - corsika::units::si::HEPEnergyType energyLost() const { return energy_lost_; } - }; -} // namespace corsika::process::proposal diff --git a/Processes/Proposal/Interaction.cc b/Processes/Proposal/Interaction.cc deleted file mode 100644 index f5ce68a800d56a2f855a46670638400b96fbffe5..0000000000000000000000000000000000000000 --- a/Processes/Proposal/Interaction.cc +++ /dev/null @@ -1,114 +0,0 @@ -/* - * (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/IMediumModel.h> -#include <corsika/environment/NuclearComposition.h> -#include <corsika/process/proposal/Interaction.h> -#include <corsika/setup/SetupEnvironment.h> -#include <corsika/setup/SetupStack.h> -#include <corsika/setup/SetupTrajectory.h> -#include <corsika/units/PhysicalUnits.h> -#include <corsika/utl/COMBoost.h> -#include <limits> -#include <memory> -#include <random> -#include <tuple> - -namespace corsika::process::proposal { - - template <> - Interaction::Interaction(setup::Environment const& _env, - corsika::units::si::HEPEnergyType _emCut) - : ProposalProcessBase(_env, _emCut) {} - - void Interaction::BuildCalculator(particles::Code code, - environment::NuclearComposition const& comp) { - // search crosssection builder for given particle - auto p_cross = cross.find(code); - if (p_cross == cross.end()) - throw std::runtime_error("PROPOSAL could not find corresponding builder"); - - // interpolate the crosssection for given media and energy cut. These may - // take some minutes if you have to build the tables and cannot read the - // from disk - auto c = p_cross->second(media.at(comp.hash()), emCut_); - - // Look which interactions take place and build the corresponding - // interaction and secondarie builder. The interaction integral will - // interpolated too and saved in the calc map by a key build out of a hash - // of composed of the component and particle code. - auto inter_types = PROPOSAL::CrossSectionVector::GetInteractionTypes(c); - calc[std::make_pair(comp.hash(), code)] = std::make_tuple( - PROPOSAL::make_secondaries(inter_types, particle[code], media.at(comp.hash())), - PROPOSAL::make_interaction(c, true)); - } - - template <> - corsika::process::EProcessReturn Interaction::DoInteraction(setup::StackView& view) { - using namespace corsika::units::si; // required for operator::_MeV - - auto const projectile = view.GetProjectile(); - - if (CanInteract(projectile.GetPID())) { - // Get or build corresponding calculators - auto c = GetCalculator(projectile, calc); - - // Get the rates of the interaction types for every component. - std::uniform_real_distribution<double> distr(0., 1.); - - // sample a interaction-type, loss and component - auto rates = get<eINTERACTION>(c->second)->Rates(projectile.GetEnergy() / 1_MeV); - auto [type, comp_ptr, v] = get<eINTERACTION>(c->second)->SampleLoss( - projectile.GetEnergy() / 1_MeV, rates, distr(fRNG)); - - // Read how much random numbers are required to calculate the secondaries. - // Calculate the secondaries and deploy them on the corsika stack. - auto rnd = - vector<double>(get<eSECONDARIES>(c->second)->RequiredRandomNumbers(type)); - for (auto& it : rnd) it = distr(fRNG); - auto point = PROPOSAL::Vector3D(projectile.GetPosition().GetX() / 1_cm, - projectile.GetPosition().GetY() / 1_cm, - projectile.GetPosition().GetZ() / 1_cm); - auto projectile_dir = projectile.GetDirection(); - auto d = projectile_dir.GetComponents(); - auto direction = PROPOSAL::Vector3D(d.GetX().magnitude(), d.GetY().magnitude(), - d.GetZ().magnitude()); - auto loss = make_tuple(static_cast<int>(type), point, direction, - v * projectile.GetEnergy() / 1_MeV, 0.); - auto sec = get<eSECONDARIES>(c->second)->CalculateSecondaries( - projectile.GetEnergy() / 1_MeV, loss, *comp_ptr, rnd); - for (auto& s : sec) { - auto E = get<PROPOSAL::Loss::ENERGY>(s) * 1_MeV; - auto vec = corsika::geometry::QuantityVector( - get<PROPOSAL::Loss::DIRECTION>(s).GetX() * E, - get<PROPOSAL::Loss::DIRECTION>(s).GetY() * E, - get<PROPOSAL::Loss::DIRECTION>(s).GetZ() * E); - auto p = - corsika::stack::MomentumVector(projectile_dir.GetCoordinateSystem(), vec); - auto sec_code = corsika::particles::ConvertFromPDG( - static_cast<particles::PDGCode>(get<PROPOSAL::Loss::TYPE>(s))); - view.AddSecondary( - make_tuple(sec_code, E, p, projectile.GetPosition(), projectile.GetTime())); - } - } - return process::EProcessReturn::eOk; - } - - template <> - corsika::units::si::GrammageType Interaction::GetInteractionLength( - setup::Stack::StackIterator const& projectile) { - using namespace corsika::units::si; // required for operator::_MeV - - if (CanInteract(projectile.GetPID())) { - auto c = GetCalculator(projectile, calc); - return get<eINTERACTION>(c->second)->MeanFreePath(projectile.GetEnergy() / 1_MeV) * - 1_g / (1_cm * 1_cm); - } - return std::numeric_limits<double>::infinity() * 1_g / (1_cm * 1_cm); - } -} // namespace corsika::process::proposal diff --git a/Processes/Proposal/Interaction.h b/Processes/Proposal/Interaction.h deleted file mode 100644 index 7617e8c27d229068ed95e7afefc975f5b957941b..0000000000000000000000000000000000000000 --- a/Processes/Proposal/Interaction.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * (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 <PROPOSAL/PROPOSAL.h> - -#include <corsika/environment/Environment.h> -#include <corsika/particles/ParticleProperties.h> -#include <corsika/process/InteractionProcess.h> -#include <corsika/process/proposal/ProposalProcessBase.h> -#include <corsika/random/RNGManager.h> -#include <corsika/random/UniformRealDistribution.h> -#include <array> - -namespace corsika::process::proposal { - - //! - //! Electro-magnetic and gamma stochastic losses produced by proposal. It makes - //! use of interpolation tables which are runtime intensive calculation, but can be - //! reused by setting the \param PROPOSAL::InterpolationDef::path_to_tables variable. - //! - class Interaction : public InteractionProcess<Interaction>, ProposalProcessBase { - - enum { eSECONDARIES, eINTERACTION }; - using calculator_t = tuple<unique_ptr<PROPOSAL::SecondariesCalculator>, - unique_ptr<PROPOSAL::Interaction>>; - - std::unordered_map<calc_key_t, calculator_t, hash> - calc; //!< Stores the secondaries and interaction calculators. - - //! - //! Build the secondaries and interaction calculators and add it to calc. - //! - void BuildCalculator(particles::Code, environment::NuclearComposition const&) final; - - public: - //! - //! Produces the stoachastic loss calculator for leptons based on nuclear - //! compositions and stochastic description limited by the particle cut. - //! - template <typename TEnvironment> - Interaction(TEnvironment const& env, corsika::units::si::HEPEnergyType emCut); - - //! - //! Calculate the rates for the different targets and interactions. Sample a - //! pair of interaction-type, component and rate, followed by sampling a loss and - //! produce the corresponding secondaries and store them on the particle stack. - //! - template <typename TSecondaryView> - corsika::process::EProcessReturn DoInteraction(TSecondaryView&); - - //! - //! Calculates the mean free path length - //! - template <typename TParticle> - corsika::units::si::GrammageType GetInteractionLength(TParticle const& p); - }; -} // namespace corsika::process::proposal diff --git a/Processes/Proposal/PROPOSAL b/Processes/Proposal/PROPOSAL deleted file mode 160000 index 92b9b9ca20826725cb805d135a1a5d5b29a7e06a..0000000000000000000000000000000000000000 --- a/Processes/Proposal/PROPOSAL +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 92b9b9ca20826725cb805d135a1a5d5b29a7e06a diff --git a/Processes/Proposal/ProposalProcessBase.cc b/Processes/Proposal/ProposalProcessBase.cc deleted file mode 100644 index a29dd15c2611a268a358094503d14a5b09c7a98c..0000000000000000000000000000000000000000 --- a/Processes/Proposal/ProposalProcessBase.cc +++ /dev/null @@ -1,79 +0,0 @@ -/* - * (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/IMediumModel.h> -#include <corsika/environment/NuclearComposition.h> -#include <corsika/process/proposal/ProposalProcessBase.h> -#include <corsika/setup/SetupEnvironment.h> -#include <corsika/setup/SetupStack.h> -#include <corsika/setup/SetupTrajectory.h> -#include <corsika/units/PhysicalUnits.h> -#include <corsika/utl/COMBoost.h> -#include <cstdlib> -#include <iostream> -#include <limits> -#include <memory> -#include <random> -#include <tuple> - -namespace corsika::process::proposal { - bool ProposalProcessBase::CanInteract(particles::Code pcode) const { - if (std::find(begin(tracked), end(tracked), pcode) != end(tracked)) return true; - return false; - } - - ProposalProcessBase::ProposalProcessBase(setup::Environment const& _env, - corsika::units::si::HEPEnergyType _emCut) - : emCut_(_emCut) - , fRNG(corsika::random::RNGManager::GetInstance().GetRandomStream("proposal")) { - using namespace corsika::units::si; // required for operator::_MeV - _env.GetUniverse()->walk([&](auto& vtn) { - if (vtn.HasModelProperties()) { - const auto& prop = vtn.GetModelProperties(); - const auto& medium = mediumData(prop.medium(corsika::geometry::Point( - geometry::RootCoordinateSystem::GetInstance().GetRootCoordinateSystem(), 0_cm, - 0_cm, 0_cm))); - - auto comp_vec = std::vector<PROPOSAL::Components::Component>(); - const auto& comp = prop.GetNuclearComposition(); - auto frac_iter = comp.GetFractions().cbegin(); - for (auto& pcode : comp.GetComponents()) { - comp_vec.emplace_back(GetName(pcode), GetNucleusZ(pcode), GetNucleusA(pcode), - *frac_iter); - ++frac_iter; - } - - media[comp.hash()] = - PROPOSAL::Medium(medium.name(), medium.Ieff(), -medium.Cbar(), medium.aa(), - medium.sk(), medium.x0(), medium.x1(), medium.dlt0(), - medium.corrected_density(), comp_vec); - } - }); - - PROPOSAL::InterpolationDef::order_of_interpolation = 2; - PROPOSAL::InterpolationDef::nodes_cross_section = 100; - PROPOSAL::InterpolationDef::nodes_propagate = 1000; - - //! If corsika data exist store interpolation tables to the corresponding - //! path, otherwise interpolation tables would only stored in main memory if - //! no explicit intrpolation def is specified. - if (auto data_path = std::getenv("CORSIKA_DATA")) { - PROPOSAL::InterpolationDef::path_to_tables = std::string(data_path) + "/PROPOSAL"; - } else { - throw std::runtime_error( - "It is not recommended to run PROPOSAL without its tables in " - "$CORSIKA_DATA/PROPOSAL. This would be extremely slow. Please provide the " - "table directory. "); - } - } - - size_t ProposalProcessBase::hash::operator()(const calc_key_t& p) const noexcept { - return p.first ^ std::hash<particles::Code>{}(p.second); - } - -} // namespace corsika::process::proposal diff --git a/Processes/Proposal/ProposalProcessBase.h b/Processes/Proposal/ProposalProcessBase.h deleted file mode 100644 index 6346721e77428db40666ad1765c0fd9052cb549d..0000000000000000000000000000000000000000 --- a/Processes/Proposal/ProposalProcessBase.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * (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 <PROPOSAL/PROPOSAL.h> - -#include <corsika/particles/ParticleProperties.h> -#include <corsika/random/RNGManager.h> -#include <corsika/setup/SetupEnvironment.h> -#include <array> - -namespace corsika::process::proposal { - - //! - //! Particles which can be handled by proposal. That means they can be - //! propagated and decayed if they decays. - //! - static constexpr std::array<particles::Code, 7> tracked{ - particles::Code::Gamma, particles::Code::Electron, particles::Code::Positron, - particles::Code::MuMinus, particles::Code::MuPlus, particles::Code::TauPlus, - particles::Code::TauMinus, - }; - - //! - //! Internal map from particle codes to particle properties required for - //! crosssections, decay and scattering algorithms. In the future the - //! particles may be created by reading out the Corsica constants. - //! - static std::map<particles::Code, PROPOSAL::ParticleDef> particle = { - {particles::Code::Gamma, PROPOSAL::GammaDef()}, - {particles::Code::Electron, PROPOSAL::EMinusDef()}, - {particles::Code::Positron, PROPOSAL::EPlusDef()}, - {particles::Code::MuMinus, PROPOSAL::MuMinusDef()}, - {particles::Code::MuPlus, PROPOSAL::MuPlusDef()}, - {particles::Code::TauMinus, PROPOSAL::TauMinusDef()}, - {particles::Code::TauPlus, PROPOSAL::TauPlusDef()}}; - - //! - //! Crosssection factories for different particle types. - //! - template <typename T> - static auto cross_builder = - [](PROPOSAL::Medium& m, corsika::units::si::HEPEnergyType emCut) { - using namespace corsika::units::si; - auto p_cut = - std::make_shared<const PROPOSAL::EnergyCutSettings>(emCut / 1_MeV, 1, true); - return PROPOSAL::DefaultCrossSections<T>::template Get<std::false_type>( - T(), m, p_cut, true); - }; - - //! - //! PROPOSAL default crosssections are maped to corresponding corsika particle - //! code. - //! - static std::map<particles::Code, - std::function<PROPOSAL::crosssection_list_t<PROPOSAL::ParticleDef, - PROPOSAL::Medium>( - PROPOSAL::Medium&, corsika::units::si::HEPEnergyType)>> - cross = {{particles::Code::Gamma, cross_builder<PROPOSAL::GammaDef>}, - {particles::Code::Electron, cross_builder<PROPOSAL::EMinusDef>}, - {particles::Code::Positron, cross_builder<PROPOSAL::EPlusDef>}, - {particles::Code::MuMinus, cross_builder<PROPOSAL::MuMinusDef>}, - {particles::Code::MuPlus, cross_builder<PROPOSAL::MuPlusDef>}, - {particles::Code::TauMinus, cross_builder<PROPOSAL::TauMinusDef>}, - {particles::Code::TauPlus, cross_builder<PROPOSAL::TauPlusDef>}}; - - //! - //! PROPOSAL base process which handels mapping of particle codes to - //! stored interpolation tables. - //! - class ProposalProcessBase { - protected: - corsika::units::si::HEPEnergyType - emCut_; //!< Stochastic losses smaller than the given cut - //!< will be handeled continuously. - corsika::random::RNG& fRNG; //!< random number generator used by proposal - - std::unordered_map<std::size_t, PROPOSAL::Medium> - media; //!< maps nuclear composition from univers to media to produce - //!< crosssections, which requires further ionization constants. - - //! - //! Store cut and nuclear composition of the whole universe in media which are - //! required for creating crosssections by proposal. - //! - ProposalProcessBase(corsika::setup::Environment const& _env, - corsika::units::si::HEPEnergyType _emCut); - - //! - //! Checks if a particle can be processed by proposal - //! - bool CanInteract(particles::Code pcode) const; - - using calc_key_t = std::pair<std::size_t, particles::Code>; - - //! - //! Hash to store interpolation tables related to a pair of particle and nuclear - //! composition. - //! - struct hash { - size_t operator()(const calc_key_t& p) const noexcept; - }; - - //! - //! Builds the calculator to the corresponding class - //! - virtual void BuildCalculator(particles::Code, - environment::NuclearComposition const&) = 0; - - //! - //! Searches the particle dependet calculator dependent of actuall medium composition - //! and particle type. If no calculator is found, the corresponding new calculator is - //! built and then returned. - //! - template <typename Particle, typename Calculators> - auto GetCalculator(Particle& vP, Calculators& calc) { - const auto& comp = vP.GetNode()->GetModelProperties().GetNuclearComposition(); - auto calc_it = calc.find(std::make_pair(comp.hash(), vP.GetPID())); - if (calc_it != calc.end()) return calc_it; - BuildCalculator(vP.GetPID(), comp); - return GetCalculator(vP, calc); - } - }; -} // namespace corsika::process::proposal diff --git a/Processes/Pythia/testPythia8.cc b/Processes/Pythia/testPythia8.cc deleted file mode 100644 index 71b7768e5c66f60929f9d9383035276e81f5d9e9..0000000000000000000000000000000000000000 --- a/Processes/Pythia/testPythia8.cc +++ /dev/null @@ -1,163 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <Pythia8/Pythia.h> -#include <corsika/process/pythia/Decay.h> -#include <corsika/process/pythia/Interaction.h> - -#include <corsika/random/RNGManager.h> - -#include <corsika/particles/ParticleProperties.h> - -#include <corsika/geometry/Point.h> - -#include <corsika/units/PhysicalUnits.h> - -#include <corsika/utl/CorsikaFenv.h> - -#include <catch2/catch.hpp> - -TEST_CASE("Pythia", "[processes]") { - - SECTION("linking pythia") { - using namespace Pythia8; - using std::cout; - using std::endl; - - // Generator. Process selection. LHC initialization. Histogram. - Pythia pythia; - - pythia.readString("Next:numberShowInfo = 0"); - pythia.readString("Next:numberShowProcess = 0"); - pythia.readString("Next:numberShowEvent = 0"); - - pythia.readString("ProcessLevel:all = off"); - - pythia.init(); - - Event& event = pythia.event; - event.reset(); - - pythia.particleData.mayDecay(321, true); - double pz = 100.; - double m = 0.49368; - event.append(321, 1, 0, 0, 0., 0., 100., sqrt(pz * pz + m * m), m); - - if (!pythia.next()) - cout << "decay failed!" << endl; - else - cout << "particles after decay: " << event.size() << endl; - event.list(); - - // loop over final state - for (int i = 0; i < pythia.event.size(); ++i) - if (pythia.event[i].isFinal()) { - cout << "particle: id=" << pythia.event[i].id() << endl; - } - } - - SECTION("pythia interface") { - using namespace corsika; - - random::RNGManager::GetInstance().RegisterRandomStream("pythia"); - - process::pythia::Decay model; - } -} - -#include <corsika/geometry/Point.h> -#include <corsika/geometry/RootCoordinateSystem.h> -#include <corsika/geometry/Vector.h> - -#include <corsika/units/PhysicalUnits.h> - -#include <corsika/particles/ParticleProperties.h> -#include <corsika/setup/SetupEnvironment.h> -#include <corsika/setup/SetupStack.h> -#include <corsika/setup/SetupTrajectory.h> - -using namespace corsika; -using namespace corsika::units::si; - -template <typename TStackView> -auto sumMomentum(TStackView const& view, geometry::CoordinateSystem const& vCS) { - geometry::Vector<hepenergy_d> sum{vCS, 0_eV, 0_eV, 0_eV}; - - for (auto const& p : view) { sum += p.GetMomentum(); } - - return sum; -} - -TEST_CASE("pythia process") { - - auto [env, csPtr, nodePtr] = setup::testing::setupEnvironment(particles::Code::Proton); - auto const& cs = *csPtr; - [[maybe_unused]] auto const& env_dummy = env; - [[maybe_unused]] auto const& node_dummy = nodePtr; - - SECTION("pythia decay") { - feenableexcept(FE_INVALID); - const HEPEnergyType P0 = 10_GeV; - auto [stackPtr, secViewPtr] = - setup::testing::setupStack(particles::Code::PiPlus, 0, 0, P0, nodePtr, *csPtr); - const auto plab = corsika::stack::MomentumVector( - cs, {P0, 0_eV, 0_eV}); // this is secret knowledge about setupStack - auto& stack = *stackPtr; - auto& view = *secViewPtr; - auto particle = stackPtr->first(); - - random::RNGManager::GetInstance().RegisterRandomStream("pythia"); - - process::pythia::Decay model; - - [[maybe_unused]] const TimeType time = model.GetLifetime(particle); - model.DoDecay(view); - CHECK(stack.getEntries() == 3); - auto const pSum = sumMomentum(view, cs); - CHECK((pSum - plab).norm() / 1_GeV == Approx(0).margin(1e-4)); - CHECK((pSum.norm() - plab.norm()) / 1_GeV == Approx(0).margin(1e-4)); - } - - SECTION("pythia decay config") { - process::pythia::Decay model({particles::Code::PiPlus, particles::Code::PiMinus}); - REQUIRE(model.IsDecayHandled(particles::Code::PiPlus)); - REQUIRE(model.IsDecayHandled(particles::Code::PiMinus)); - REQUIRE_FALSE(model.IsDecayHandled(particles::Code::KPlus)); - - const std::vector<particles::Code> particleTestList = { - particles::Code::PiPlus, particles::Code::PiMinus, particles::Code::KPlus, - particles::Code::Lambda0Bar, particles::Code::D0Bar}; - - // setup decays - model.SetHandleDecay(particleTestList); - for (auto& pCode : particleTestList) REQUIRE(model.IsDecayHandled(pCode)); - - // individually - model.SetHandleDecay(particles::Code::KMinus); - - // possible decays - REQUIRE_FALSE(model.CanHandleDecay(particles::Code::Proton)); - REQUIRE_FALSE(model.CanHandleDecay(particles::Code::Electron)); - REQUIRE(model.CanHandleDecay(particles::Code::PiPlus)); - REQUIRE(model.CanHandleDecay(particles::Code::MuPlus)); - } - - SECTION("pythia interaction") { - - feenableexcept(FE_INVALID); - auto [stackPtr, secViewPtr] = setup::testing::setupStack(particles::Code::PiPlus, 0, - 0, 100_GeV, nodePtr, *csPtr); - auto& view = *secViewPtr; - auto particle = stackPtr->first(); - - process::pythia::Interaction model; - - [[maybe_unused]] const process::EProcessReturn ret = model.DoInteraction(view); - [[maybe_unused]] const GrammageType length = model.GetInteractionLength(particle); - } -} diff --git a/Processes/QGSJetII/code_generator.py b/Processes/QGSJetII/code_generator.py deleted file mode 100755 index 6fd456083b4b669c046c93b2e4dfe57eebed0e49..0000000000000000000000000000000000000000 --- a/Processes/QGSJetII/code_generator.py +++ /dev/null @@ -1,203 +0,0 @@ -#!/usr/bin/env python3 - -# (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu -# -# See file AUTHORS for a list of contributors. -# -# This software is distributed under the terms of the GNU General Public -# Licence version 3 (GPL Version 3). See file LICENSE for a full version of -# the license. - - -import pickle, sys, itertools - - - -def load_particledb(filename): - ''' - loads the pickled particle_db (which is an OrderedDict) - definition of particle_db dict is: "name", "antiName", "pdg", "mass", "electric_charge", "lifetime", "ngc_code", "isNucleus", "isHadron" - ''' - with open(filename, "rb") as f: - particle_db = pickle.load(f) - return particle_db - - -def set_default_qgsjetII_definition(particle_db): - ''' - Also particles not explicitly known by QGSJetII may in fact interact via mapping - to cross section types (xsType) and hadron type (hadronType) - - This is achieved here. - - The function return nothing, but modified the input particle_db by adding the - fields 'xsType' and 'hadronType' - ''' - for identifier, pData in particle_db.items(): - # the cross-section types - xsType = "CannotInteract" - hadronType = "UndefinedType" - if (pData['isNucleus']): - xsType = "Baryons" - hadronType = "NucleusType" - elif (pData['isHadron']): - pdg = abs(pData['pdg']) - anti = pData['pdg'] < 0 - isBaryon = (1000 <= pdg < 4000) - charge = pData['electric_charge'] - if (pdg>=100 and pdg<300 and pdg!=130): # light mesons - xsType = "LightMesons" - if (charge==0): - hadronType = "NeutralLightMesonType" - else: - if (charge>0): - hadronType = "PiPlusType" - else: - hadronType = "PiMinusType" - elif ((pdg>=300 and pdg<400) or pdg in [130, 10313, 10323]): # kaons - xsType = "Kaons" - if (charge>0): - hadronType = "KaonPlusType" - else: - hadronType = "KaonMinusType" - if (charge==0): - hadronType = "Kaon0SType" - if (pdg == 130): - hadronType = "Kaon0LType" - elif (pdg == 310): - hadronType = "Kaon0SType" - elif (isBaryon or pData['isNucleus']): # baryons - xsType = "Baryons" - if (charge==0): - if (anti): - hadronType = "AntiNeutronType" - else: - hadronType = "NeutronType" - else: - if (charge>0): - hadronType = "ProtonType" - else: - hadronType = "AntiProtonType" - # all othe not-captured cased are hopefully irrelevant - - pData['qgsjetII_xsType'] = xsType - pData['qgsjetII_hadronType'] = hadronType - - -def read_qgsjetII_codes(filename, particle_db): - ''' - reads the qgsjet-codes data file. For particles known to QGSJetII the 'qgsjetII_code' is set in the particle_db, as - well as the 'xsType' is updated in case it is different from its default value set above. - ''' - with open(filename) as f: - for line in f: - line = line.strip() - if len(line)==0 or line[0] == '#': - continue - line = line.split('#')[0] - print (line) - identifier, model_code, xsType = line.split() - try: - particle_db[identifier]["qgsjetII_code"] = int(model_code) - particle_db[identifier]["qgsjetII_xsType"] = xsType - except KeyError as e: - raise Exception("Identifier '{:s}' not found in particle_db".format(identifier)) - - -def generate_qgsjetII_enum(particle_db): - ''' - generates the enum to access qgsjetII particles by readable names - ''' - output = "enum class QgsjetIICode : int8_t {\n" - for identifier, pData in particle_db.items(): - if 'qgsjetII_code' in pData: - output += " {:s} = {:d},\n".format(identifier, pData['qgsjetII_code']) - output += "};\n" - return output - - -def generate_corsika2qgsjetII(particle_db): - ''' - generates the look-up table to convert corsika codes to qgsjetII codes - ''' - string = "std::array<QgsjetIICode, {:d}> constexpr corsika2qgsjetII = {{\n".format(len(particle_db)) - for identifier, pData in particle_db.items(): - if 'qgsjetII_code' in pData: - string += " QgsjetIICode::{:s}, \n".format(identifier) - else: - string += " QgsjetIICode::Unknown, // {:s}\n".format(identifier + ' not implemented in QGSJetII') - string += "};\n" - return string - - -def generate_corsika2qgsjetII_xsType(particle_db): - ''' - generates the look-up table to convert corsika codes to qgsjetII codes - ''' - string = "std::array<QgsjetIIXSClass, {:d}> constexpr corsika2qgsjetIIXStype = {{\n".format(len(particle_db)) - for identifier, pData in particle_db.items(): - modelCodeXS = pData.get("qgsjetII_xsType", "CannotInteract") - string += " QgsjetIIXSClass::{:s}, // {:s}\n".format(modelCodeXS, identifier if modelCodeXS else identifier + " (not implemented in QGSJETII)") - string += "};\n" - return string - - -def generate_corsika2qgsjetII_hadronType(particle_db): - ''' - generates the look-up table to convert corsika codes to qgsjetII codes - ''' - string = "std::array<QgsjetIIHadronType, {:d}> constexpr corsika2qgsjetIIHadronType = {{\n".format(len(particle_db)) - for identifier, pData in particle_db.items(): - modelCode = pData.get("qgsjetII_hadronType", "UndefinedType") - string += " QgsjetIIHadronType::{:s}, // {:s}\n".format(modelCode, identifier if modelCode else identifier + " (not implemented in QGSJETII)") - string += "};\n" - return string - - -def generate_qgsjetII2corsika(particle_db) : - ''' - generates the look-up table to convert qgsjetII codes to corsika codes - ''' - minID = 0 - for identifier, pData in particle_db.items() : - if 'qgsjetII_code' in pData: - minID = min(minID, pData['qgsjetII_code']) - - string = "QgsjetIICodeIntType constexpr minQgsjetII = {:d};\n\n".format(minID) - - pDict = {} - for identifier, pData in particle_db.items() : - if 'qgsjetII_code' in pData: - model_code = pData['qgsjetII_code'] - minID - pDict[model_code] = identifier - - nPart = max(pDict.keys()) - min(pDict.keys()) + 1 - string += "std::array<corsika::particles::Code, {:d}> constexpr qgsjetII2corsika = {{\n".format(nPart) - - for iPart in range(nPart) : - identifier = pDict.get(iPart, "Unknown") - qgsID = iPart + minID - string += " corsika::particles::Code::{:s}, // {:d} \n".format(identifier, qgsID) - - string += "};\n" - return string - - -if __name__ == "__main__": - if len(sys.argv) != 3: - print("usage: {:s} <particle_db.pkl> <qgsjetII_codes.dat>".format(sys.argv[0]), file=sys.stderr) - sys.exit(1) - - print("code_generator.py for QGSJETII") - - particle_db = load_particledb(sys.argv[1]) - read_qgsjetII_codes(sys.argv[2], particle_db) - set_default_qgsjetII_definition(particle_db) - - with open("Generated.inc", "w") as f: - print("// this file is automatically generated\n// edit at your own risk!\n", file=f) - print(generate_qgsjetII_enum(particle_db), file=f) - print(generate_corsika2qgsjetII(particle_db), file=f) - print(generate_qgsjetII2corsika(particle_db), file=f) - print(generate_corsika2qgsjetII_xsType(particle_db), file=f) - print(generate_corsika2qgsjetII_hadronType(particle_db), file=f) diff --git a/Processes/QGSJetII/qgsjet-II-04-codes.dat b/Processes/QGSJetII/qgsjet-II-04-codes.dat deleted file mode 100644 index 8b1bee7c74fe678c6d8c1ca05f12d92c7fd634ad..0000000000000000000000000000000000000000 --- a/Processes/QGSJetII/qgsjet-II-04-codes.dat +++ /dev/null @@ -1,44 +0,0 @@ -# input file for particle conversion to/from QGSJet -# the format of this file is: "corsika-identifier" "qgsjet-id" "xs-class" - -# The 'Unknown' particle is needed to mark all particles qgsjetII does -# not know -# IMPORTANT Note: the code "20" MAY NOT BE USED by qgsjetII. Change to -# another positive integer if a conflict arises. Since we use std::array -# to store PID data keep the number as low as reasonable. -Unknown 20 CannotInteract - -# Note, we list here only the particles, which are produced by -# QGSJetII as secondaries. There is additional mapping of corsika -# particles on QGSJetII "xs-class"es and "hadron-type"s, which are -# programmed in code_generator.py - -# class 1 (-> as pions) -Pi0 0 LightMesons -PiPlus 1 LightMesons -PiMinus -1 LightMesons -Eta 10 LightMesons -Rho0 -10 LightMesons - -# class 2 (-> as proton) -Neutron 3 Baryons -AntiNeutron -3 Baryons -Proton 2 Baryons -AntiProton -2 Baryons -Lambda0 6 Baryons -Lambda0Bar -6 Baryons -LambdaCPlus 9 Baryons -LambdaCMinusBar -9 Baryons - -# class 3 (-> as kaon) -K0Short 5 Kaons -K0Long -5 Kaons -KPlus 4 Kaons -KMinus -4 Kaons - -# class 4 (-> charmed mesons, not in qgsjetII) -D0 8 Charmed -D0Bar -8 Charmed -DPlus 7 Charmed -DMinus -7 Charmed - diff --git a/Processes/Sibyll/sibyll2.3d.cc b/Processes/Sibyll/sibyll2.3d.cc deleted file mode 100644 index 16db131f7cede092ced66a7b8eebd4e22658c560..0000000000000000000000000000000000000000 --- a/Processes/Sibyll/sibyll2.3d.cc +++ /dev/null @@ -1,23 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/process/sibyll/sibyll2.3d.h> - -#include <corsika/random/RNGManager.h> -#include <random> - -int get_nwounded() { return s_chist_.nwd; } -double get_sibyll_mass2(int& id) { return s_mass1_.am2[abs(id) - 1]; } - -double s_rndm_(int&) { - static corsika::random::RNG& rng = - corsika::random::RNGManager::GetInstance().GetRandomStream("sibyll"); - - std::uniform_real_distribution<double> dist; - return dist(rng); -} diff --git a/Processes/Sibyll/sibyll2.3d.f b/Processes/Sibyll/sibyll2.3d.f deleted file mode 100644 index 8fccb7a42026eef3621cd80ef20797e27a65a4e1..0000000000000000000000000000000000000000 --- a/Processes/Sibyll/sibyll2.3d.f +++ /dev/null @@ -1,20471 +0,0 @@ -C======================================================================= -C SSSSSS IIIIIII BBBBB YY YY L L -C S I B B YY YY L L -C SSSSS I BBBBB YY L L -C S I B B YY L L -C SSSSSS IIIIIII BBBBB YY LLLLLLL LLLLLLL -C======================================================================= -C Code for SIBYLL: hadronic interaction Monte Carlo event generator -C======================================================================= -C Version 2.3d (Jun-01-2017, modified May-20-2020) -C -C with CHARM production -C -C By Eun-Joo Ahn -C Ralph Engel -C A. Fedynitch -C R.S. Fletcher -C T.K. Gaisser -C Paolo Lipari -C Felix Riehn -C Todor Stanev -C -C----------------------------------------------------------------------- -C*** Please have people who want this code contact one of the authors. -C*** Please report any problems. **** -C -C For a correct copy contact: -C sein@fnal.gov -C ralph.engel@kit.edu -C afedynitch@gmail.com -C gaisser@bartol.udel.edu -C paolo.lipari@roma1.infn.it -C friehn@lip.pt -C stanev@bartol.udel.edu -C -C last changes relative to Sibyll 2.3c: -C * no pi0 suppression in minijets -C * added cross section tables for hadron-nitrogen and hadron-oxygen -C (changed S_CCSIG common) -C * no remnant in high mass diff. events (pi0-had scattering) -C * repaired had-nuc. cross section routine for kaon beams -C routine remains inactive in ordinary calls. -C -C======================================================================= - - SUBROUTINE SIBYLL (K_beam, IATARG, Ecm) - -C----------------------------------------------------------------------- -C...Main routine for the production of hadronic events, -C. generates an inelastic hadronic interaction of -C. a `projectile particle' of code K_beam with a -C. target nucleus of mass number A = IATARG (integer) -C. IATARG = 0 is an "air" nucleus (superposition of oxygen and nitrogen) -C. with c.m. energy for the hadron-nucleon system Ecm (GeV) -C. -C. Allowed values of K_beam: 7,8,9,10,11,12,13,14,-13,-14 -C. pi+-,K+-,KL,KS,p,n,pbar,nbar -C. also: -C. hyperons: 34,35,36,37,38,39 -C. Sig+-,Sig0,Xi0-,Lam0 -C. -C. charmed: 59,60,71,72,74,75 -C. D+,D-,D0,D0b,Ds+,Ds- -C. 87,88,89,99 -C. Xic+,Xic0,LamC+,OmC0 -C. rho0:27 is allowed as well to emulate photons! -C. -C. The output is contained in COMMON /S_PLIST/ that contains: -C. -C. NP number of final particles -C. P(1:NP, 1:5) 4-momenta + masses of the final particles -C. LLIST (1:NP) codes of final particles. -C. the reaction is studied in the c.m. of hadron-nucleon system -C. -C. The COMMON block /S_CHIST/ contains information about -C. the structure of the generated event: -C. NW = number of wounded nucleons -C. NJET = total number of hard interactions -C. NSOF = total number of soft interactions -C. NNSOF (1:NW) = number of soft pomeron cuts in each interaction -C. NNJET (1:NW) = number of minijets produced in each interaction -C. XJ1 (1:Index) = x1 for each string -C. XJ2 (1:Index) = x2 " " " -C. PTJET (1:Index) = pT " " " -C. NNPJET (1:Index) = total number of particles in each string -C. NNPSTR (1:2*NW) = number of particles in each `beam string' -C. JDIF(1:NW) = diffraction code -C---------------------------------------------------------------------- - IMPLICIT NONE -c external type declarations - DOUBLE PRECISION ECM - INTEGER K_beam, IATARG - -c COMMONs - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER LDIFF - COMMON /S_CLDIF/ LDIFF -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - INTEGER NW_max - PARAMETER (NW_max = 20) -C parameters that represent: NW: max. number of wounded nucleons, -C NS,NH: max. number of soft and hard interactions -c PARAMETER (NW_max = 20) -C The COMMON block /S_CHIST/ contains information about the -C the structure of the generated event: -C NWD = number of wounded nucleons -C NJET = total number of hard interactions -C NSOF = total number of soft interactions -C NNSOF (1:NW) = number of soft pomeron cuts in each interaction -C NNJET (1:NW) = number of minijets produced in each interaction -C JDIF(1:NW) = diffraction code -C 0 : non-diff, -C 1 : beam-diff -C 2 : target-diff -C 3 : double-diff - INTEGER NNSOF,NNJET,JDIF,NWD,NJET,NSOF - COMMON /S_CHIST/ NNSOF(NW_max),NNJET(NW_max), - & JDIF(NW_max),NWD,NJET,NSOF - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - -c internal type declarations - DOUBLE PRECISION Esum,PXsum,PYsum,PZsum,xchgRate - INTEGER LL,IATARGET,IAIR,KBM,L,NW,IREJ,NF,J - DIMENSION LL(99) - SAVE - DATA LL /5*0,7*2,2*1,12*0,2,6*0,6*1,19*0,2,2,10*0, - & 2,2,0,2,2,11*0,1,1,1,9*0,1/ - - if(Ndebug.gt.0)then - WRITE(LUN,'(A42,I3,I3,1X,F10.2)') - & ' SIBYLL: called with (K_beam,IATARG,Ecm):', - & K_beam,IATARG,Ecm - WRITE(LUN,*)'Event type selection LDIFF: ',LDIFF - endif - - 100 CONTINUE - - Ncall = Ncall+1 - - IATARGET = IATARG - IAIR = IABS(MIN(IATARG-1,0)) - KBM = K_beam - - CALL INI_EVENT(ECM,KBM,IATARGET,1) - - L = LL(IABS(K_beam)) - IF(L.eq.0) THEN - WRITE(LUN,*)'SIB_MAIN: unknown beam particle! kbeam=',k_beam - WRITE(6,*)'SIB_MAIN: unknown beam particle! kbeam=',k_beam - CALL SIB_REJECT('SIB_MAIN ') - endif - -C...Generate number NW wounded nucleons, and diffraction code. - -1000 continue - CALL SIB_START_EV (Ecm, L, IATARGET, IAIR, NWD, JDIF) - NW = NWD -C...limits on simulation of pure diffraction dissociation - IF((LDIFF.NE.0).and.(NW.EQ.1)) THEN - IF((LDIFF.EQ.-1) .AND. (JDIF(1).NE.0) ) GOTO 1000 - IF((LDIFF.EQ. 1) .AND. ((JDIF(1).NE.0).AND.(JDIF(1).NE.3))) - + GOTO 1000 - IF((LDIFF.EQ. 5) .AND. (JDIF(1).EQ.2)) GOTO 1000 - IF((LDIFF.GE. 2) .AND. (LDIFF.LE.4)) THEN - JDIF(1) = LDIFF-1 - ENDIF - ENDIF - -C...Diffractive/non-diffractive interactions - - IF((NW.EQ.1).and.(JDIF(1).NE.0)) THEN - CALL SIB_DIFF (KBM, JDIF(1), Ecm, 1, IREJ) - ELSE - CALL SIB_NDIFF (KBM, NW, Ecm, 1, IREJ) - ENDIF - - IF (IREJ.NE.0) THEN - if(Ndebug.gt.0) WRITE(LUN,'(A38,F10.2,I3,I3,I3)') - & ' SIBYLL: rejection (Ecm,Ncall,Nw,JDIF):',Ecm,Ncall,NW,JDIF(1) - GOTO 100 - ENDIF - - do J=1,NP - if (P(J,4).lt.0.D0 ) then - if(Ndebug.gt.0)then - WRITE(LUN,*)' negative energy particle!' , P(J,4) - CALL SIB_LIST(LUN) - endif - goto 100 - endif - enddo - -C...Check energy-momentum conservation - - CALL PFSUM(1,NP,Esum,PXsum,PYsum,PZsum,NF) - IF (ABS(Esum/(0.5D0*Ecm*DBLE(NW+1)) - 1.D0) .GT. EPS3) THEN - WRITE(LUN,*) ' SIBYLL: energy not conserved (L,call): ',L,Ncall - WRITE(LUN,*) ' sqs_inp = ', Ecm, ' sqs_out = ', Esum - CALL PRNT_PRTN_STCK - CALL SIB_LIST(LUN) - WRITE(LUN,*) ' SIBYLL: event rejected' -c a = -1.D0 -c a = log(a) -c stop - goto 100 - ENDIF - IF (ABS(PZsum+0.5D0*Ecm*DBLE(NW-1)) .GT. 0.1D0) THEN - if(Ndebug.gt.0)THEN - WRITE(LUN,*) ' SIBYLL: momentum not conserved (L,call): ', - & L,Ncall - WRITE(LUN,*) ' pz_inp = ', 0., ' pz_out = ', pzsum - ENDIF - IF(ndebug.gt.0)then - CALL PRNT_PRTN_STCK - CALL SIB_LIST(LUN) - WRITE(LUN,*) ' SIBYLL: event rejected' - endif -c a = -1.D0 -c a = log(a) -c stop - goto 100 - ENDIF - -c exchange pions with vector mesons - IF(IPAR(45).ne.0) then - xchgRate = PAR(75) - CALL FORCE_VECTORS(xchgRate,1,NP) - endif - -c exchange pi0 with charged pions for meson projectiles - IF(IPAR(50).ne.0.and.IABS(KBM).lt.13) then - xchgrate = PAR(136) - CALL REMOVE_PI0(xchgRate,1,NP) - endif - - -C...list final state particles - if(Ndebug.gt.10) CALL SIB_LIST(LUN) - - END - - -C====================================================================== - - SUBROUTINE SIBNUC (IAB, IATG, ECM) - -C----------------------------------------------------------------------- -C. Routine that generates the interaction of a nucleus of -C. mass number IAB with a target nucleus of mass IATG -C. (IATG=0 : air). -C. SQS (GeV) is the center of mass energy of each -C. nucleon - nucleon cross section -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - COMMON /S_PLNUC/ PA(5,40000), LLA(40000), NPA - COMMON /CKFRAG/ KODFRAG - PARAMETER (IAMAX=56) - COMMON /CNUCMS/ B, BMAX, NTRY, NA, NB, NI, NAEL, NBEL - + ,JJA(IAMAX), JJB(IAMAX), JJINT(IAMAX,IAMAX) - + ,JJAEL(IAMAX), JJBEL(IAMAX) - COMMON /FRAGMENTS/ PPP(3,60) - DIMENSION SIGDIF(3) - DIMENSION IAF(60) - DOUBLE PRECISION FOX - SAVE - DATA FOX /0.21522D0/ !atomic percentage of 'non-nitrogen' in air - -C...Target mass - IF (IATG .EQ. 0) THEN -c select target IATARGET from air composition - R = S_RNDM(0) - IATARGET = 14 - IF (R .LT. FOX) IATARGET = 16 - ELSE - IATARGET = IATG - ENDIF - -C...Single nucleon (proton) case - - IF (IAB .EQ. 1) THEN - NPA = 0 - CALL SIBYLL (13,IATARGET, ECM) - CALL DECSIB - DO J=1,NP - LA = IABS(LLIST(J)) - IF (LA .LT. 10000) THEN - NPA = NPA + 1 - LLA(NPA) = LLIST(J) - DO K=1,5 - PA(K,NPA) = P(J,K) - ENDDO - ENDIF - ENDDO - RETURN - ENDIF - - -C...Nuclei - - CALL SIB_SIGMA_HP(1,ECM,SIGT,SIGEL,SIG0,SIGDIF,SLOPE,RHO) - CALL INT_NUC (IATARGET, IAB, SIG0, SIGEL) - -C...fragment spectator nucleons - NBT = NB + NBEL - IF (KODFRAG .EQ. 1) THEN - CALL FRAGM1(IAB,NBT, NF, IAF) - ELSE IF(KODFRAG .EQ. 2) THEN - CALL FRAGM2(IAB,NBT, NF, IAF) - ELSE - CALL FRAGM (IATARGET, IAB, NBT,B, NF, IAF) - ENDIF - -C...Spectator fragments - NPA = 0 - DO J=1,NF - NPA = NPA+1 - if(NPA.gt.40000) then - write(6,'(1x,a,2i8)') - & ' SIBNUC: no space left in S_PLNUC (NPA,NF)',NPA,NF - NPA = NPA-1 - return - endif - LLA(NPA) = 1000+IAF(J) - PA(1,NPA) = 0.D0 - PA(2,NPA) = 0.D0 - PA(3,NPA) = ECM/2.D0 - PA(4,NPA) = ECM/2.D0 - PA(5,NPA) = DBLE(IAF(J))*0.5D0*(AM(13)+AM(14)) - ENDDO - -C...Elastically scattered fragments - DO J=1,NBEL - NPA = NPA+1 - if(NPA.gt.40000) then - write(6,'(1x,a,2i8)') - & ' SIBNUC: no space left in S_PLNUC (NPA,NBEL)',NPA,NBEL - NPA = NPA-1 - return - endif - LLA(NPA) = 1001 - PA(1,NPA) = 0.D0 - PA(2,NPA) = 0.D0 - PA(3,NPA) = ECM/2.D0 - PA(4,NPA) = ECM/2.D0 - PA(5,NPA) = 0.5D0*(AM(13)+AM(14)) - ENDDO - -C...Superimpose NB nucleon interactions - DO JJ=1,NB - CALL SIBYLL (13,IATARGET, ECM) - CALL DECSIB - DO J=1,NP - LA = IABS(LLIST(J)) - IF (LA .LT. 10000) THEN - NPA = NPA + 1 - if(NPA.gt.40000) then - write(6,'(1x,a,2i8)') - & ' SIBNUC: no space left in S_PLNUC (NPA,NP)',NPA,NP - NPA = NPA-1 - return - endif - LLA(NPA) = LLIST(J) - DO K=1,5 - PA(K,NPA) = P(J,K) - ENDDO - ENDIF - ENDDO - ENDDO - - END -C======================================================================= - - SUBROUTINE SIBYLL_INI - -C----------------------------------------------------------------------- -C...Initialization routine for SYBILL -C. -C. the routine fills the COMMON block /CCSIG/ that contains -C. important information for the generation of events -C. -C PARAMETER (NS_max = 20, NH_max = 80) -C COMMON /S_CCSIG/ SSIG(61,3), PJETC(0:NS_max,0:NH_max,61,2), -C & SSIGN(61,3,3),SSIGNSD(61,3,3) ALINT(61,3,3), ASQSMIN, ASQSMAX, DASQS, NSQS -C. -C. NSQS = number of energy points (61 is current version) -C. ASQSMIN = log_10 [sqrt(s) GeV] minimum value -C. ASQSMIN = log_10 [sqrt(s) GeV] maximum value -C. DASQS = step in log_10[sqrt(s)] -C. DASQS = (ASQSMAX - ASQSMIN)/(NSQS-1) -C. -C. SSIG(J,1) inelastic cross section for pp interaction -C. at energy: sqrt(s)(GeV) = 10**[ASQSMIN+DASQS*(J-1)] -C. SSIG(J,2) inelastic cross section for pi-p interaction -C. SSIGN(J,1,1) inelastic cross section for p-Air interaction -C. SSIGN(J,2,1) inelastic cross section for pi-Air interaction -C. SSIGN(J,1,2) inelastic cross section for p-Nitrogen interaction -C. SSIGN(J,2,2) inelastic cross section for pi-Nitrogen interaction -C. -C. PJETC(n_s,n_j,J,1) Cumulative probability distribution -C. for the production of n_s soft interactions and -C. n_j (n_j=0:30) jet pairs at sqrt(s) labeled -C. by J, for p-p interaction -C. PJETC(n_s,n_j,J,2) Same as above for pi-p interaction -C. ALINT(J,1) proton-air interaction length (g cm-2) -C. ALINT(J,2) pi-air interaction length (g cm-2) -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - SAVE - - WRITE(*,100) - 100 FORMAT(' ','====================================================', - * /,' ','| |', - * /,' ','| S I B Y L L 2.3d |', - * /,' ','| |', - * /,' ','| HADRONIC INTERACTION MONTE CARLO |', - * /,' ','| BY |', - * /,' ','| Eun-Joo AHN, Felix RIEHN |', - * /,' ','| R. ENGEL, A. FEDYNITCH, R.S. FLETCHER, |', - * /,' ','| T.K. GAISSER, P. LIPARI, T. STANEV |', - * /,' ','| |', - * /,' ','| Publication to be cited when using this program: |', - * /,' ','| Eun-Joo AHN et al., Phys.Rev. D80 (2009) 094003 |', - * /,' ','| F. RIEHN et al., hep-ph: 1912.03300 |', - * /,' ','| last modifications: F. Riehn (05/20/2020) |', - * /,' ','====================================================', - * /) - - CALL PAR_INI - CALL DIFF_INI - CALL JET_INI - CALL PDF_INI - CALL BLOCK_INI - CALL NUC_GEOM_INI - CALL SIG_AIR_INI - -c... charm frag. normalisation - CALL ZNORMAL - - END - -C======================================================================= - - SUBROUTINE NO_CHARM - IMPLICIT NONE - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) -c turn off charm production -c global charm rate - PAR(24) = 0.D0 -c minijet string charm rate - PAR(156) = 0.D0 -c remnant string charm rate - PAR(107) = 0.D0 -c soft sea charm rate - PAR(97) = 0.D0 -c valence string charm rate - PAR(25) = 0.D0 -c minijet charm rate - PAR(27) = 0.D0 - END - -C======================================================================= - - SUBROUTINE PAR_INI - - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - DOUBLE PRECISION FAin, FB0in - COMMON /S_CZDIS/ FAin, FB0in - - DOUBLE PRECISION FAs1, fAs2 - COMMON /S_CZDISs/ FAs1, fAs2 - DOUBLE PRECISION ZDMAX, EPSI - COMMON /S_CZDISc/ ZDMAX, EPSI - - DOUBLE PRECISION CLEAD, FLEAD - COMMON /S_CZLEAD/ CLEAD, FLEAD - DOUBLE PRECISION CCHIK - COMMON /S_CPSPL/ CCHIK(4,99) - - PARAMETER ( NPARFIT = 22 ) - DOUBLE PRECISION PARS - COMMON /XSCTN_FIT/ PARS( 50 , 2 ) - DOUBLE PRECISION STR_mass_val, STR_mass_val_hyp, STR_mass_sea - COMMON /S_CUTOFF/ STR_mass_val, STR_mass_val_hyp, STR_mass_sea - SAVE - DATA (PARS(K,1),K= 1,NPARFIT) / - &3.9223D+01,4.2055D+01,5.0913D-02,-4.0000D-01,2.0000D-01, - &5.0000D-01,0.0000D+00,6.0000D-01,9.0000D-02,1.0000D+00, - &2.0000D+00,3.2327D+00,2.5000D-01,5.4000D-01,1.0000D+00, - &-8.8000D-01,5.4000D-01,5.0000D-01,9.0000D-01,5.4000D-01, - &6.5000D-02,9.0000D-01/ - DATA (PARS(K,2),K= 1,NPARFIT) / - &2.0590D+01,9.6579D+01,5.6069D-02,-7.6393D-01,2.0000D-01, - &5.0000D-01,0.0000D+00,6.0000D-01,9.0000D-02,1.0000D+00, - &2.0000D+00,2.9191D+00,2.5000D-01,5.4000D-01,1.0000D+00, - &-8.8000D-01,5.4000D-01,5.4895D-01,9.0000D-01,5.4000D-01, - &6.5000D-02,9.0000D-01/ -c -c adjusted central particle production -c 23rc5.4frgB1 aka retune5 aka Sibyll 2.3.5 - PAR(1) = 4.0000D-02 - PAR(2) = 2.5000D-01 - PAR(3) = 5.0000D-01 - PAR(4) = 1.4000D-01 - PAR(5) = 3.0000D-01 - PAR(6) = 3.0000D-01 - PAR(7) = 1.5000D-01 - PAR(8) = 1.3903D-02 - PAR(9) = 7.0000D+00 - PAR(10) = 1.0000D+00 - PAR(11) = 6.5000D-02 - PAR(12) = 9.0000D-01 - PAR(13) = 1.0000D-01 - PAR(14) = 6.0000D-02 - PAR(15) = 1.3000D-01 - PAR(16) = 4.0000D-02 - PAR(17) = 4.0000D-02 - PAR(18) = 5.0000D-01 - PAR(19) = 8.0000D-01 - PAR(20) = 8.0000D-01 - PAR(21) = 6.0000D-01 - PAR(22) = 4.0000D+00 - PAR(23) = 7.0000D-01 - PAR(24) = 4.0000D-03 - PAR(25) = 4.0000D-03 - PAR(26) = 2.0000D+01 - PAR(27) = 2.0000D-02 - PAR(28) = 2.0000D+01 - PAR(29) = 0.0000D+00 - PAR(30) = 2.0000D+00 - PAR(31) = 3.3000D-01 - PAR(32) = 0.0000D+00 - PAR(33) = 1.0000D-01 - PAR(34) = 0.0000D+00 - PAR(35) = 0.0000D+00 - PAR(36) = 7.0000D-01 - PAR(37) = 0.0000D+00 - PAR(38) = 5.0000D-01 - PAR(39) = 8.0000D-01 - PAR(40) = 0.0000D+00 - PAR(41) = 1.0000D+00 - PAR(42) = 0.0000D+00 - PAR(43) = 2.3564D-01 - PAR(44) = 9.9000D-01 - PAR(45) = 1.0000D+00 - PAR(46) = 1.8000D-01 - PAR(47) = 2.8000D-01 - PAR(48) = 2.7000D-01 - PAR(49) = 1.0000D-01 - PAR(50) = 6.0000D-01 - PAR(51) = 6.0000D-03 - PAR(52) = 6.0000D-03 - PAR(53) = 6.0000D+00 - PAR(54) = 2.0000D-01 - PAR(55) = 0.0000D+00 - PAR(56) = 0.0000D+00 - PAR(57) = 0.0000D+00 - PAR(58) = 0.0000D+00 - PAR(59) = 6.8345D-01 - PAR(60) = 8.0000D-01 - PAR(61) = 6.6000D-01 - PAR(62) = 0.0000D+00 - PAR(63) = 1.0000D+00 - PAR(64) = 2.5000D-01 - PAR(65) = 3.0000D-01 - PAR(66) = 3.0000D-01 - PAR(67) = 6.0000D-01 - PAR(68) = 6.0000D-03 - PAR(69) = 5.0000D-02 - PAR(70) = 7.0000D-03 - PAR(71) = 1.0000D+00 - PAR(72) = 3.8000D-01 - PAR(73) = 5.0000D-01 - PAR(74) = 6.0000D-01 - PAR(75) = 0.0000D+00 - PAR(76) = 3.5298D-01 - PAR(77) = 7.0000D-01 - PAR(78) = 2.0000D+00 - PAR(79) = 1.0000D+01 - PAR(80) = 5.0816D-01 - PAR(81) = 1.0000D+04 - PAR(82) = 1.0000D-01 - PAR(83) = 0.0000D+00 - PAR(84) = 6.0000D+00 - PAR(85) = 1.0000D+00 - PAR(86) = 1.0000D+00 - PAR(87) = 3.0000D-01 - PAR(88) = 8.0000D-01 - PAR(89) = 6.0000D-01 - PAR(90) = 1.1000D+01 - PAR(91) = -7.2000D+00 - PAR(92) = 3.5000D+00 - PAR(93) = 1.0000D+00 - PAR(94) = 4.0000D+00 - PAR(95) = 0.0000D+00 - PAR(96) = 1.0000D+00 - PAR(97) = 2.0000D-03 - PAR(98) = 1.5000D+00 - PAR(99) = 5.0000D-01 - PAR(100) = 2.0000D+00 - PAR(101) = 1.0000D+00 - PAR(102) = 0.0000D+00 - PAR(103) = 2.0000D+00 - PAR(104) = 4.0000D-01 - PAR(105) = 1.0000D-01 - PAR(106) = 0.0000D+00 - PAR(107) = 0.0000D+00 - PAR(108) = 0.0000D+00 - PAR(109) = 2.0000D+01 - PAR(110) = 1.5000D+00 - PAR(111) = 0.0000D+00 - PAR(112) = 7.0000D-01 - PAR(113) = 8.0000D-01 - PAR(114) = 2.0000D+00 - PAR(115) = 0.0000D+00 - PAR(116) = 1.0000D+00 - PAR(117) = 0.0000D+00 - PAR(118) = 5.0000D-03 - PAR(119) = 0.0000D+00 - PAR(120) = 1.0000D+00 - PAR(121) = 3.0000D-01 - PAR(122) = 0.0000D+00 - PAR(123) = 3.0000D-01 - PAR(124) = 1.0000D+00 - PAR(125) = 1.0000D+00 - PAR(126) = 1.0000D+00 - PAR(127) = 6.0000D+00 - PAR(128) = 1.0000D+00 - PAR(129) = 8.0000D-02 - PAR(130) = 1.2000D+01 - PAR(131) = 5.0000D-01 - PAR(132) = 5.0000D-01 - PAR(133) = 1.0000D+01 - PAR(134) = -5.0000D+00 - PAR(135) = 6.0000D+00 - PAR(136) = 0.0000D+00 - PAR(137) = 1.2000D+00 - PAR(138) = 0.0000D+00 - PAR(139) = 5.0000D-01 - PAR(140) = 4.5000D-01 - PAR(141) = 1.5000D+00 - PAR(142) = 0.0000D+00 - PAR(143) = 5.0000D-01 - PAR(144) = 9.5000D-01 - PAR(145) = 8.5000D-01 - PAR(146) = 0.0000D+00 - PAR(147) = 3.0000D-01 - PAR(148) = 5.0000D-01 - PAR(149) = 3.0000D-01 - PAR(150) = 4.0000D-03 - PAR(151) = 2.0000D+00 - PAR(152) = 4.0000D+00 - PAR(153) = 1.0000D+01 - PAR(154) = 3.0000D-01 - PAR(155) = 0.0000D+00 - PAR(156) = 5.0000D-01 - PAR(157) = 8.0000D-01 - PAR(158) = 0.0000D+00 - PAR(159) = 0.0000D+00 - PAR(160) = 0.0000D+00 - PAR(161) = 0.0000D+00 - PAR(162) = 0.0000D+00 - PAR(163) = 0.0000D+00 - PAR(164) = 0.0000D+00 - PAR(165) = 0.0000D+00 - PAR(166) = 0.0000D+00 - PAR(167) = 0.0000D+00 - PAR(168) = 0.0000D+00 - PAR(169) = 0.0000D+00 - PAR(170) = 0.0000D+00 - PAR(171) = 0.0000D+00 - PAR(172) = 0.0000D+00 - PAR(173) = 0.0000D+00 - PAR(174) = 0.0000D+00 - PAR(175) = 0.0000D+00 - PAR(176) = 0.0000D+00 - PAR(177) = 0.0000D+00 - PAR(178) = 0.0000D+00 - PAR(179) = 0.0000D+00 - PAR(180) = 0.0000D+00 - PAR(181) = 0.0000D+00 - PAR(182) = 0.0000D+00 - PAR(183) = 0.0000D+00 - PAR(184) = 0.0000D+00 - PAR(185) = 0.0000D+00 - PAR(186) = 0.0000D+00 - PAR(187) = 0.0000D+00 - PAR(188) = 0.0000D+00 - PAR(189) = 0.0000D+00 - PAR(190) = 0.0000D+00 - PAR(191) = 0.0000D+00 - PAR(192) = 0.0000D+00 - PAR(193) = 0.0000D+00 - PAR(194) = 0.0000D+00 - PAR(195) = 0.0000D+00 - PAR(196) = 0.0000D+00 - PAR(197) = 0.0000D+00 - PAR(198) = 0.0000D+00 - PAR(199) = 0.0000D+00 - PAR(200) = 0.0000D+00 - IPAR(1) = 1 - IPAR(2) = 0 - IPAR(3) = 8 - IPAR(4) = 0 - IPAR(5) = 1 - IPAR(6) = 0 - IPAR(7) = 0 - IPAR(8) = 1 - IPAR(9) = 1 - IPAR(10) = 1 - IPAR(11) = 0 - IPAR(12) = 3 - IPAR(13) = 0 - IPAR(14) = -2 - IPAR(15) = 9 - IPAR(16) = 8 - IPAR(17) = 1 - IPAR(18) = 4 - IPAR(19) = 1 - IPAR(20) = 0 - IPAR(21) = 0 - IPAR(22) = 0 - IPAR(23) = 0 - IPAR(24) = 0 - IPAR(25) = 1 - IPAR(26) = 0 - IPAR(27) = 0 - IPAR(28) = 4 - IPAR(29) = 1 - IPAR(30) = 0 - IPAR(31) = 1 - IPAR(32) = 0 - IPAR(33) = 0 - IPAR(34) = 0 - IPAR(35) = 0 - IPAR(36) = 1 - IPAR(37) = 0 - IPAR(38) = 1 - IPAR(39) = 0 - IPAR(40) = 0 - IPAR(41) = 0 - IPAR(42) = 3 - IPAR(43) = 1 - IPAR(44) = 0 - IPAR(45) = 0 - IPAR(46) = 2 - IPAR(47) = 6 - IPAR(48) = 1 - IPAR(49) = 4 - IPAR(50) = 0 - IPAR(51) = 2 - IPAR(52) = 0 - IPAR(53) = 1 - IPAR(54) = 0 - IPAR(55) = 0 - IPAR(56) = 0 - IPAR(57) = 1 - IPAR(58) = 3 - IPAR(59) = 1 - IPAR(60) = 0 - IPAR(61) = 100 - IPAR(62) = 1 - IPAR(63) = 0 - IPAR(64) = 0 - IPAR(65) = 1 - IPAR(66) = 3 - IPAR(67) = 0 - IPAR(68) = 0 - IPAR(69) = 1 - IPAR(70) = 1 - IPAR(71) = 0 - IPAR(72) = 0 - IPAR(73) = 0 - IPAR(74) = 1 - IPAR(75) = 0 - IPAR(76) = 0 - IPAR(77) = 0 - IPAR(78) = 2 - IPAR(79) = 1 - IPAR(80) = 1 - IPAR(81) = 5 - IPAR(82) = 2 - IPAR(83) = 0 - IPAR(84) = 2 - IPAR(85) = 1 - IPAR(86) = 0 - IPAR(87) = 3 - IPAR(88) = 1 - IPAR(89) = 0 - IPAR(90) = 1 - IPAR(91) = 0 - IPAR(92) = 1 - IPAR(93) = 1 - IPAR(94) = 0 - IPAR(95) = 1 - IPAR(96) = 0 - IPAR(97) = 0 - IPAR(98) = 0 - IPAR(99) = 0 - IPAR(100) = 0 - -C... valence quark distribution function -c large x suppression - do i=1,3 ! quark flavors - CCHIK(i,13)=PAR(62) - CCHIK(i,14)=PAR(62) - enddo -C...string fragmentation parameters -c effective quark mass - STR_mass_val = PAR(36) - STR_mass_sea = PAR(41) - -C...energy dependence of PTmin -c pt_cut offset - PAR(10) = PARS(10 , 1) -c lambda - PAR(11) = PARS(21 , 1) -c c parameter - PAR(12) = PARS(22 , 1) - -C...fragmentation function - FAin = PAR(20) - FB0in = PAR(21) - -C...Strange fragmentation function - FAs1 = PAR(35) - FAs2 = PAR(35) - -C...leading baryon fragmentation function -c hard proton mixing - CLEAD = PAR(50) - - END -C======================================================================= - - SUBROUTINE PAR_INI_FROM_FILE - IMPLICIT NONE -c locals - CHARACTER*10 FILENA - CHARACTER*6 CNAME - CHARACTER*70 NUMBER - - INTEGER ISTAT,J,IVAL,I - DOUBLE PRECISION VAL -c commons - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - - DOUBLE PRECISION STR_mass_val, STR_mass_val_hyp, STR_mass_sea - COMMON /S_CUTOFF/ STR_mass_val, STR_mass_val_hyp, STR_mass_sea - - DOUBLE PRECISION FAin, FB0in - COMMON /S_CZDIS/ FAin, FB0in - - DOUBLE PRECISION FAs1, fAs2 - COMMON /S_CZDISs/ FAs1, fAs2 - DOUBLE PRECISION ZDMAX, EPSI - COMMON /S_CZDISc/ ZDMAX, EPSI - - DOUBLE PRECISION CLEAD, FLEAD - COMMON /S_CZLEAD/ CLEAD, FLEAD - DOUBLE PRECISION CCHIK - COMMON /S_CPSPL/ CCHIK(4,99) - - SAVE - DATA FILENA /'sibyll.par'/ - 14 FORMAT(A6,A70) - 15 FORMAT(A5,I3,A2,I8) - 16 FORMAT(A5,I3,A2,F8.2) - OPEN(unit=4,file=filena,status='OLD') - istat = 1 -c set standard parameters (full set) - CALL PAR_INI -c read new parameters from file - IF(ndebug.gt.0)WRITE(LUN,*)'reading parameter file: sibyll.par' - DO WHILE (istat.ge.0) - READ(4,14,iostat=ISTAT) CNAME,NUMBER - IF(CNAME.eq.'IPAR ')THEN - READ(NUMBER,*) j, ival - IF(ndebug.gt.1)write(LUN,15) 'IPAR(',j,')=', ival - IPAR(J) = iVAL - ELSEif(CNAME.eq.'PAR ')THEN - READ(NUMBER,*) j, val - PAR(J) = VAL - IF(ndebug.gt.1)write(LUN,16) ' PAR(',j,')=', val - ELSE - WRITE(LUN,*)'wrong format in parameter file!' - WRITE(6,*)'wrong format in parameter file!' - WRITE(LUN,*) CNAME, NUMBER - stop - ENDIF - ENDDO -C copy parameter values to their respective COMMONs -C... valence quark distribution function -c large x suppression - do i=1,3 ! quark flavors - CCHIK(i,13)=PAR(62) - CCHIK(i,14)=PAR(62) - enddo -C...string fragmentation parameters -c effective quark mass - STR_mass_val = PAR(36) - STR_mass_sea = PAR(41) -C...fragmentation function - FAin = PAR(20) - FB0in = PAR(21) -C...Strange fragmentation function - FAs1 = PAR(35) - FAs2 = PAR(35) -C...leading baryon fragmentation function -c hard proton mixing - CLEAD = PAR(50) - END - -C======================================================================= - - SUBROUTINE MESON_FLV_MRG_INI - -C----------------------------------------------------------------------- -c change flavor merging for pions (favor spin) -C----------------------------------------------------------------------- - INTEGER KFLV - COMMON /S_KFLV/ KFLV(4,43) - -c pi+ --> rho+ - KFLV(2,1) = 25 -c pi- --> rho- - KFLV(1,2) = 26 -c pi0 --> rho0 - KFLV(1,1) = 27 - KFLV(2,2) = 27 - END -C======================================================================= - - BLOCK DATA PARAM_INI - -C----------------------------------------------------------------------- -C....This block data contains default values -C. of the parameters used in fragmentation -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - DOUBLE PRECISION STR_mass_val, STR_mass_val_hyp, STR_mass_sea - COMMON /S_CUTOFF/ STR_mass_val, STR_mass_val_hyp, STR_mass_sea - DOUBLE PRECISION FAin, FB0in - COMMON /S_CZDIS/ FAin, FB0in - - DOUBLE PRECISION FAs1, fAs2 - COMMON /S_CZDISs/ FAs1, fAs2 - DOUBLE PRECISION ZDMAX, EPSI - COMMON /S_CZDISc/ ZDMAX, EPSI - - DOUBLE PRECISION CLEAD, FLEAD - COMMON /S_CZLEAD/ CLEAD, FLEAD - DOUBLE PRECISION CCHIK - COMMON /S_CPSPL/ CCHIK(4,99) - - INTEGER ITRY, NREJ - COMMON /S_CNT/ ITRY(20), NREJ(20) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - COMMON /CKFRAG/ KODFRAG - SAVE - - DATA ITRY /20*0/ - DATA NREJ /5,5,20,10,20,20,14*0/ - DATA EPS3,EPS5,EPS8,EPS10 /1.D-3,1.D-5,1.D-8,1.D-10/ - DATA PI,TWOPI,CMBARN/3.14159265358979D0,6.283185308D0,0.389385D0/ - DATA FACN /2.D0,5.D0,15.D0,60.D0,250.D0,1500.D0,12000.D0, - & 120000.D0/ - -C... default output unit - DATA LUN /7/ -c...new fragmentation for charmed particles - DATA EPSI /2.D0/ -C...mass cutoff for soft strings - data STR_mass_val /0.35D0/ - data STR_mass_val_hyp /0.4D0/ - data STR_mass_sea /1.D0/ -C...Longitudinal Fragmentation function - DATA FAin /0.5D0/, FB0in /0.8D0/ -C...Longitudinal Fragmentation function for leading baryons - DATA CLEAD /0.6D0/, FLEAD /0.6D0/ -c strange fragmentation - data FAs1 /3.D0/, fAs2 /3.D0/ -C... Splitting parameters - DATA CCHIK /20*0.D0,28*2.D0,8*3.D0,48*0.D0,4*2.D0,24*0.D0, - & 24*3.D0,76*0.D0,8*2.D0,40*0.D0,12*2.D0,40*0.D0,24*3.D0, - & 40*0.D0/ -C...Parameters of flavor formation -c last in use: 158 - DATA PAR/0.04D0,0.3D0,0.3D0,0.14D0,0.3D0,0.3D0,0.15D0,0.D0,7.D0, ! 10 - & 2*0.D0,0.9D0,0.2D0,4*0.04D0,0.5D0,0.8D0,0.5D0, ! 20 - & 0.8D0,6.D0,0.5D0,0.004D0,5*0.D0,0.7D0, ! 30 - & 2*0.D0,0.1D0,0.D0,3.D0,0.35D0,0.D0,0.5D0,2*0.D0, ! 40 - & 1.D0,2.D0,0.D0,0.99D0,0.D0,0.3D0,0.45D0,0.6D0,0.6D0,0.6D0, ! 50 - & .03D0,.03D0,6.D0,0.2D0,4*0.D0,1.1D0,0.8D0, ! 60 - & .33D0,3.D0,1.D0,.25D0,.3D0,0.3D0,0.6D0,.007D0,.03D0,.007D0, ! 70 - & 1.D0,0.3D0,0.D0,0.3D0,0.0D0,0.2D0,0.5D0,1.0D0,10.D0,0.D0, ! 80 - & 1000.D0,1000.D0,1.D0,6.D0,1.D0,0.D0,0.3D0,0.8D0,0.3D0,31.D0,! 90 - & 1.D0,6.5D0,1.D0,1.D0,0.D0,1.0D0,0.004D0,1.D0,0.33D0,1.D0, ! 100 - & 1.D0,0.D0,2.D0,0.3D0,0.15D0,3*0.D0,20.D0,0.25D0, ! 110 - & 0.D0,0.7D0,0.3D0,0.D0,0.D0,1.D0,3*0.D0,1.D0, ! 120 - & 0.3D0,0.D0,0.3D0,1.D0,1.D0,1.D0,6.D0,1.D0,1.D0,6.D0, ! 130 - & 0.0001D0,0.5D0,31.10362D0,-15.29012D0,6.5D0, ! 135 - & 0.D0,4 *0.D0, ! 140 - & 1.D0,0.D0,0.5D0,0.D0,0.5D0,0.D0,0.3D0,0.8D0,0.08D0,0.004D0, ! 150 - & 2.D0,1.D0,1.D0,1.D0,1.D0,1.D0,0.D0,1.D0,2*0.D0, ! 160 - & 40*0.D0/ ! 200 -c last in use:93 - DATA IPAR /9*0,1,0,1,8*0,20*0, ! 40 - & 9*0,0,2,9*0, ! 60 - & 100,25*0,2,1,0,0,0,1,0,7*0/ ! 100 - -C...Fragmentation of nuclei - DATA KODFRAG /0/ -C...Debug label and event counter - DATA Ndebug /0/ - DATA Ncall /0/ - - END - -C======================================================================= - - SUBROUTINE PARAM_PRINT(LUN) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON /S_CZLEAD/ CLEAD, FLEAD - COMMON /S_CPSPL/ CCHIK(4,99) - COMMON /S_DEBUG/ Ncall, Ndebug, Lunn - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - DOUBLE PRECISION STR_mass_val, STR_mass_val_hyp, STR_mass_sea - COMMON /S_CUTOFF/ STR_mass_val, STR_mass_val_hyp, STR_mass_sea - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - DOUBLE PRECISION FAin, FB0in - COMMON /S_CZDIS/ FAin, FB0in - - DOUBLE PRECISION PPT02 - COMMON /S_CQDIS2/ PPT02(44) - DOUBLE PRECISION PPT0,ptflag - COMMON /S_CQDIS/ PPT0(35),ptflag - SAVE - - WRITE (LUN, 25) -25 FORMAT( /,1x,40('-'), / - + ' SIBYLL MONTE CARLO PROGRAM. Version 2.3.f',/, - + 1x,40('-'),/' List of parameters: ' ) - - WRITE (LUN, 31) FAin, FB0in -31 FORMAT (' Parameters of longitudinal fragmentation: ', /, - + ' f(z) = (1-z)**a * exp(-b * mt**2/z) ', /, - + ' a = ', f9.3, 3x, ' b = ', f9.3, ' GeV**-2' ) - WRITE (LUN, 32) CLEAD, 1.D0/FLEAD-1.D0 -32 FORMAT (' Parameters of leading fragmentation: ', /, - + ' f(z) = c + (1-z)**a ', /, - + ' c = ',f9.3,3x,' a = ',f9.3) - - WRITE (LUN, 33) str_mass_val, str_mass_sea - 33 FORMAT (' Mass cuts ', /, - + ' val = ', f9.3, 3x, ' sea = ', f9.3, ' GeV' ) - - WRITE (LUN, 35) PPT02(1), PPT02(3), PPT02(11),ppt02(10),ppt02(20) -35 FORMAT (' <pT> of sea partons ', /, - + 3x,'<pT>(u/d) ',F8.3,2x,'<pT>(s) ',f8.3,2x,'<pT>(qq) ',f8.3, - + 2x,'<pT>(val) ',f8.3,2x,'<pT>(sea) ',f8.3) - - WRITE (LUN, 120) (PAR(K),K=1,24) -120 FORMAT (1x, ' Parameters of flavor formation: ',/, - + 3x,'PAR(1) = Prob(qq)/Prob(q) = ',F10.2,/, - + 3x,'PAR(2) = Prob(s)/Prob(u) = ',F10.2,/, - + 3x,'PAR(3) = Prob(us)/Prob(ud) = ',F10.2,/, - + 3x,'PAR(4) = Prob(ud_0)/Prob(ud_1) = ',F10.2,/, - + 3x,'PAR(5) = Prob(Vector)/Prob(Scalar) = ',F10.2,/, - + 3x,'PAR(6) = Prob(K*)/Prob(K) = ',F10.2,/, - + 3x,'PAR(7) = Prob(spin 3/2)/Prob(spin=1/2) = ',F10.2,/, - + 3x,'PAR(8) = Prob(B-M-Bbar)/Prob(B-Bbar) = ',F10.2,/, - + 3x,'PAR(9) = Phase space suppression of MI = ',F10.2,/, - + 3x,'PAR(10)= Low-energy limit for pt cutoff= ',F10.2,/, - + 3x,'PAR(11)= Pt cutoff factor for exp = ',F10.2,/, - + 3x,'PAR(12)= Pt cutoff factor for exp = ',F10.2,/, - + 3x,'PAR(13)= max. mass in diffraction = ',F10.2,/, - + 3x,'PAR(14)= Prob(qq)/Prob(q) std. value = ',F10.2,/, - + 3x,'PAR(15)= Prob(qq)/Prob(q) in hard jets = ',F10.2,/, - + 3x,'PAR(16)= Prob(qq)/Prob(q) in diff. = ',F10.2,/, - + 3x,'PAR(17)= not used = ',F10.2,/, - + 3x,'PAR(18)= not used = ',F10.2,/, - + 3x,'PAR(19)= not used = ',F10.2,/, - + 3x,'PAR(20)= not used = ',F10.2,/, - + 3x,'PAR(21)= not used = ',F10.2,/, - + 3x,'PAR(22)= effective scale in PDF (Q2) = ',F10.2,/, - + 3x,'PAR(23)= not used = ',F10.2,/, - + 3x,'PAR(24)= Prob(s->c) = ',F10.2 ) - - WRITE (LUN, 130) (IPAR(K),K=1,17) -130 FORMAT (1x, ' Model switches: ',/, - + 3x,'IPAR(1) = not used =',I4,/, - + 3x,'IPAR(2) = not used =',I4,/, - + 3x,'IPAR(3) = exponential pt =',I4,/, - + 3x,'IPAR(4) = decouple qq/q in val. strings =',I4,/, - + 3x,'IPAR(5) = decouple qq/q in hm. diff. =',I4,/, - + 3x,'IPAR(6) = decouple qq/q in hard strings =',I4,/, - + 3x,'IPAR(7) = remnant (not implemented yet) =',I4,/, - + 3x,'IPAR(8) = jet kinematic pdf set (DO/GRV)=',I4,/, - + 3x,'IPAR(9) = smear lowest diff. mass =',I4,/, - + 3x,'IPAR(10)= high mass diff. mode (d:ON) =',I4,/, - + 3x,'IPAR(11)= leading vec. meson prod. model=',I4,/, - + 3x,'IPAR(12)= inel. screening in pAir =',I4,/, - + 3x,'IPAR(13)= decouple qq/q in val. strings =',I4,/, - + 3x,'IPAR(14)= fireball model =',I4,/, - + 3x,'IPAR(15)= charm production =',I4,/, - + 3x,'IPAR(16)= charmed transverse momentum =',I4,/, - + 3x,'IPAR(17)= full charm model =',I4 ) - - WRITE (LUN, 40) - WRITE (LUN, 41) CCHIK (1,13), CCHIK(2,13) - 40 FORMAT(' Parameters of hadron splitting ' ) - 41 FORMAT(' p -> [(ud) u] splitting: alpha = ', F10.3, /, - + ' p -> [(uu) d] splitting: alpha = ', F10.3 ) -c print rho0 splitting - WRITE (LUN, 42) CCHIK (1,27), CCHIK(2,27) - 42 FORMAT(' rho0 -> [u ubar] splitting: alpha = ', F10.3, /, - + ' rho0 -> [d dbar] splitting: alpha = ', F10.3 ) -c print d+ splitting - WRITE (LUN, 43) CCHIK (4,59), CCHIK(2,59) - 43 FORMAT(' dp -> [c ubar] splitting: alpha = ', F10.3, /, - + ' dp -> [dbar c] splitting: alpha = ', F10.3 ) - END - -C======================================================================= - - SUBROUTINE SIB_LIST(LUN) - -C----------------------------------------------------------------------- -C...This routine prints the event record for the -C. current event on unit LUN -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON /S_DEBUG/ Ncall, Ndebug, Lunn - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT - INTEGER LLIST1 - COMMON /S_PLIST1/ LLIST1(8000) -C parameters that represent: NW: max. number of wounded nucleons, -C NS,NH: max. number of soft and hard interactions -c PARAMETER (NW_max = 20) -C The COMMON block /S_CHIST/ contains information about the -C the structure of the generated event: -C NWD = number of wounded nucleons -C NJET = total number of hard interactions -C NSOF = total number of soft interactions -C NNSOF (1:NW) = number of soft pomeron cuts in each interaction -C NNJET (1:NW) = number of minijets produced in each interaction -C JDIF(1:NW) = diffraction code -C 0 : non-diff, -C 1 : beam-diff -C 2 : target-diff -C 3 : double-diff - INTEGER NNSOF,NNJET,JDIF,NWD,NJET,NSOF - COMMON /S_CHIST/ NNSOF(NW_max),NNJET(NW_max), - & JDIF(NW_max),NWD,NJET,NSOF - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - CHARACTER*6 NAMP - COMMON /S_CNAM/ NAMP (0:99) - INTEGER IRMNT,KRB,KRT - DOUBLE PRECISION XRMASS,XRMEX - COMMON /S_RMNT/ XRMASS(2),XRMEX(2),IRMNT(NW_max),KRB,KRT(NW_max) - - CHARACTER*7 CTGT(0:20) - CHARACTER CODE*18 - CHARACTER*18 NAMDIF(0:3) - CHARACTER*18 NAMRMNT(0:3) - SAVE - DATA CTGT /'Air ','Proton ',19*'Nucleus'/ - DATA NAMDIF /'Non-diff. event ', - & 'Beam diffraction ','Target diffraction','Double diffraction'/ - DATA NAMRMNT /'No resolvd remnant', - & 'Beam remnant ','Target remnant ','Double remnant '/ - - 50 FORMAT(3X,88('-'),/,25X,'SIBYLL EVENT SUMMARY',25X, - & /,3X,88('-')) - 52 FORMAT( 3X,'Beam + Target @ Energy:',2X,A6,2X,'+',2X,A7,2X, - & '@',1p,E11.3,' GeV') - 53 FORMAT( 3X,'Beam + Target @ Energy:',2X,'Anti-',A6,2X,'+',2X,A7, - & 2X,'@',1p,E11.3,' GeV') - - WRITE (LUN,50) - IF (KB .GT. 0 ) THEN - WRITE (LUN,52) - & NAMP(IABS(KB)),CTGT(IAT),SQS - ELSE - WRITE (LUN,53) - & NAMP(IABS(KB)),CTGT(IAT),SQS - ENDIF - if(NWD.eq.1)THEN - WRITE (LUN,*) ' ',NAMDIF(JDIF(1)) - IF(jdif(1).eq.0) - & WRITE (LUN,*) ' ',NAMRMNT(abs(IRMNT(1))) - else - WRITE (LUN,*) ' ',NAMDIF(0) - endif - - WRITE (LUN,*) ' A/N_w/N_s/N_j = ', IAT , NWD, NSOF, NJET - WRITE (LUN,100) - -C...Print particle list - kchar = 0 - ibary = 0 - ichmd = 0 - istrg = 0 - DO J=1,NP - L = MOD(LLIST(J),10000) - CODE = ' ' - CODE(1:6) = NAMP(IABS(L)) - IF (L .LT. 0) CODE(7:9) = 'bar' - IF(IABS(LLIST(J)) .GT. 10000) CODE(10:10) = '*' - WRITE (LUN,120) J, CODE, NIORIG(J),JDIF(NIORIG(J)),LLIST1(J), - & NPORIG(J), (P(J,K),K=1,4) - if(abs(LLIST(J)).LT.10000) then - kchar = kchar+sign(1,l)*ICHP(iabs(l)) - ibary = ibary+sign(1,l)*IBAR(iabs(l)) - ichmd = ichmd+sign(1,l)*ICHM(iabs(l)) - istrg = istrg+sign(1,l)*ISTR(iabs(l)) - endif - ENDDO - CALL PFSUM(1,NP,Esum,PXsum,PYsum,PZsum,NF) - WRITE(LUN,140) PXsum,PYsum,PZsum,Esum -100 FORMAT(3X,'N Particle',12X,'Int',2x,'Jdif',2x,'Prnt',2x,'Proc' - + ,6x,'PX',9x,'PY',9x,'PZ',9x,'E', /, 3X,88('-')) -120 FORMAT(I6,1X,A18,3I5,I8,2F10.3,1p,2E11.3) -140 FORMAT(3X,88('-'),/,' Tot =',41X,2F10.3,1p,2E11.3) - write(LUN,'(1x,a,i3,3x,a,i3)') ' Total charge: ',kchar, - & 'total baryon number:',ibary - write(LUN,'(1x,a,i3,3x,a,i3)') ' Total strangeness:',istrg, - & 'total charm number: ',ichmd - - RETURN - END - -C======================================================================= - - SUBROUTINE KCODE (J,CODE,NC) - -C----------------------------------------------------------------------- -C...Produce the code for parton J -C. Input K, Output CODE, NC=number of characters -C.................................................. - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - CHARACTER*5 CODE - CHARACTER*1 NAMQ(4) - SAVE - DATA NAMQ /'u','d','s','c'/ - - CODE = ' ' - IF(J.EQ.0) THEN - CODE(1:3) = 'glu' - NC = 3 - RETURN - ENDIF - JA = IABS(J) - J1 = MOD(JA,10) - J2 = (JA-J1)/10 - IF(JA .GT. 10) THEN - CODE(1:1) = NAMQ(J2) - CODE(2:2) = NAMQ(J1) - NC = 2 - ELSE - CODE(1:1) = NAMQ(J1) - NC = 1 - ENDIF - IF (J .LT. 0) THEN - CODE(NC+1:NC+3) = 'bar' - NC = NC+3 - ENDIF - RETURN - END -C======================================================================= - - SUBROUTINE SIB_PARTPR(LUN) - -C---------------------------------------------------------------- -C prints the particles known to SIBYLL with their internal -C and PDG labels \FR'13 -C---------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - - CHARACTER*6 NAMP - COMMON /S_CNAM/ NAMP (0:99) - SAVE - - WRITE(LUN,50) - 50 FORMAT(/,2X,16X,'SIBYLL PARTICLE TABLE:',/,2x,80('-')) - WRITE(LUN,100) - 100 FORMAT(2X,'Particle',4X,'SIB PID',6x,'SIB2PDG',6x,'SIB2PDG^-1', - & 4x,'MASS',4x,'STRG',4x,'CHRM',4x,'BRYN'/, 2X,80('-')) - - DO J=1,99 - IA = ISIB_PID2PDG( j ) - IF(IA.ne.0)THEN - ISIBPDG2PIDIA=ISIB_PDG2PID( IA ) - ELSE - WRITE(LUN,'(1X,A,I2)') 'PDG conversion not found! pid=', j - ENDIF - WRITE (LUN,120) NAMP(J), J, IA, ISIBPDG2PIDIA, AM(J), ISTR(J), - & ICHM(J), IBAR(J) - ENDDO - 120 FORMAT(4X,A6,4X,I4,7X,I7,8X,I4,5X,F9.3,3(6X,I2)) - - END - -C======================================================================= - - INTEGER FUNCTION ISIB_PID2PDG(Npid) - -C---------------------------------------------------------------- -C conversion of SIBYLL internal particle code to PDG standard -C -C input: Npid internal particle number -C output: sib_pid2pdg PDG particle number -C -C based on similar phojet function \FR'13 -C---------------------------------------------------------------- - COMMON /S_PDG2PID/ ID_PDG_LIST(99),ID_LIST(577) - INTEGER NPIDA,NPID - SAVE - - Npida = iabs(Npid) - ISIB_PID2PDG = ID_PDG_LIST(Npida) - IF(NPID.lt.0)ISIB_PID2PDG = isign(ISIB_PID2PDG,Npid) - RETURN - END - -C======================================================================= - - INTEGER FUNCTION ISIB_PDG2PID(Npdg) - -C----------------------------------------------------------------------- -C conversion of PDG standard particle code to SIBYLL internal -C -C input: Npdg PDG particle number -C output: sib_pdg2pid internal particle id -C -C based on similar phojet function \FR'13 -C---------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /S_PDG2PID/ IPID_PDG_LIST(99),ID_LIST(577) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - - DOUBLE PRECISION CBR - INTEGER KDEC,LBARP,IDB - COMMON /S_CSYDEC/ CBR(223+16+12+8), KDEC(1338+6*(16+12+8)), - & LBARP(99), IDB(99) - SAVE - - Nin = abs(Npdg) - if((Nin.gt.999999).or.(Nin.eq.0)) then -C invalid particle number - if(ndebug.gt.5) write(6,'(1x,A,I10)') - & ' ISIB_PDG2PID: invalid PDG ID number ',Npdg - ISIB_PDG2PID = 0 - return - else If(Nin.le.577) then -C simple case - Nout = Nin - else -C use hash algorithm - Nout = mod(Nin,577) - endif - - 100 continue - -C particle not in table - if(ID_list(Nout).Eq.0) then - if(ndebug.gt.0) write(6,'(1x,A,I10)') - & ' ISIB_PDG2PID: particle not in table ',Npdg - ISIB_PDG2PID = 0 - return - endif - ID_out = ID_list(Nout) - IF(abs(ID_out).gt.99)then - ISIB_PDG2PID = 0 - return - else - - if(IPID_PDG_LIST(ID_list(Nout)).eq.Nin) then -C particle ID found - ISIB_PDG2PID = ID_list(Nout) - if (NPDG.lt.0) ISIB_PDG2PID = lbarp( ISIB_PDG2PID ) - return - else -C increment and try again - Nout = Nout + 5 - If(Nout.gt.577) Nout = Mod(Nout,577) - goto 100 - endif - endif - END - -C======================================================================= - - SUBROUTINE PDG_INI - -C----------------------------------------------------------------------- -C PDG conversion blocks \FR'13 -C---------------------------------------------------------------- - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER ( ID_PDG_MAX = 260 ) - COMMON /S_PDG2PID/ ID_PDG_LIST(99),ID_LIST(577) - SAVE - DATA ID_PDG_LIST /22,-11,11,-13,13,111,211,-211,321,-321, !10 - & 130,310,2212,2112,12,-12,14,-14,-2212,-2112, !20 - & 311,-311,221,331,213,-213,113,323,-323,313, !30 - & -313,223,333,3222,3212,3112,3322,3312,3122,2224, !40 - & 2214,2114,1114,3224,3214,3114,3324,3314,3334,0, !50 - & 202212,202112,212212,212112,4*0,411,-411, !60 - & 900111,900211,-900211,7*0, !70 - & 421,-421,441,431,-431,433,-433,413,-413,423, !80 - & -423,0,443,4222,4212,4112,4232,4132,4122,-15, !90 - & 15,-16,16,4224,4214,4114,4324,4314,4332/ - - IF(Ndebug.gt.2) - & WRITE(LUN,*) ' INITIALIZING PDG TABLES..' - CALL SIB_CPCINI(ID_pdg_max,ID_pdg_list,ID_list) - - END - -C======================================================================= - - SUBROUTINE SIB_CPCINI(Nrows,Number,List) - -C----------------------------------------------------------------------- -C initialization of particle hash table -C -C input: Number vector with Nrows entries according to PDG -C convention -C -C output: List vector with hash table -C -C (this code is based on the function initpns written by -C Gerry Lynch, LBL, January 1990) -C -C*********************************************************************** - IMPLICIT NONE - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - integer Number(*),List(*),Nrows - Integer Nin,Nout,Ip,I - SAVE - - do I = 1,577 - List(I) = 0 - enddo - -C Loop over all of the elements in the Number vector - - Do 500 Ip = 1,Nrows - Nin = Number(Ip) - -C Calculate a list number for this particle id number - If(Nin.Gt.999999.or.Nin.Le.0) Then - Nout = -1 - Else If(Nin.Le.577) Then - Nout = Nin - Else - Nout = Mod(Nin,577) - End If - - 200 continue - - If(Nout.Lt.0) Then -C Count the bad entries - IF(Ndebug.gt.3) Write(LUN,'(1x,a,i10)') - & ' SIB_CPCINI: invalid particle ID',Nin - Go to 500 - End If - If(List(Nout).eq.0) Then - List(Nout) = Ip - Else - If(Nin.eq.Number(List(Nout))) Then - IF(Ndebug.gt.3)Write(LUN,'(1x,a,i10)') - & ' SIB_CPCINI: double particle ID',Nin - End If - Nout = Nout + 5 - If(Nout.Gt.577) Nout = Mod(Nout, 577) - - Go to 200 - End If - 500 Continue - - END -C======================================================================= - - SUBROUTINE PFSUM(N1,N2,ETOT,PXT,PYT,PZT,NF) - -C----------------------------------------------------------------------- -C...Return the energy,px,py,pz and the number of stable -C. particles in the list between N1 and N2 - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) -c COMMON /S_PLIST/ P(8000,5), LLIST(8000), NP -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - SAVE - - NF=0 - ETOT=0.D0 - PXT=0.D0 - PYT=0.D0 - PZT=0.D0 - DO J=N1,N2 - L = LLIST(J) - IF (IABS(L) .LT. 10000) THEN - NF = NF+1 - ETOT = ETOT + ABS( P(J,4) ) - PXT = PXT + P(J,1) - PYT = PYT + P(J,2) - PZT = PZT + P(J,3) - ENDIF - ENDDO - RETURN - END - -C======================================================================= - - SUBROUTINE QNUM (JQ,JS,JC,JB,JBA, NC, NF) - -C----------------------------------------------------------------------- -C...Return the quantum numbers of one event -C. JQ = charge, JB = baryon number, JS = strangeness, JC = charmedness -C. JBA = (number of baryons+antibaryons) -C. NC = number of charged particles -C. NF = number of final particles -C.................................................. - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - SAVE - - JQ = 0 - JB = 0 - JS = 0 - JC = 0 - JBA= 0 - NC = 0 - NF = 0 - DO J=1,NP - L = LLIST(J) - LL = IABS(L) - IF (LL .LT. 10000) THEN - IF(ICHP(LL) .NE. 0) NC = NC + 1 - NF = NF + 1 - JQ = JQ + ICHP(LL)*ISIGN(1,L) - JB = JB + IBAR(LL)*ISIGN(1,L) - JBA= JBA+ IBAR(LL) - JS = JS + ISTR(LL)*ISIGN(1,L) - JC = JC + ICHM(LL)*ISIGN(1,L) - ENDIF - ENDDO - RETURN - END - -C======================================================================= - - BLOCK DATA KFLV_INI - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - INTEGER KFLV - COMMON /S_KFLV/ KFLV(4,43) - SAVE - DATA (KFLV(1,i),i=1,4) /6,8,10,71/ - DATA (KFLV(1,i),i=5,43) /6*0,40,13,34,84,6*0,13,14,39,89,6*0, - & 34,39,37,87,6*0,84,85,87/ - DATA (KFLV(2,i),i=1,4) /7,6,21,59/ - DATA (KFLV(2,i),i=5,43) /6*0,13,14,39,89,6*0,14,43,36,86,6*0, - & 39,36,38,88,6*0,84,85,87/ - DATA (KFLV(3,i),i=1,4) /9,22,33,74/ - DATA (KFLV(3,i),i=5,43) /6*0,34,39,35,87,6*0,39,36,38,88,6*0, - & 35,36,49,99,6*0,84,85,87/ - DATA (KFLV(4,i),i=1,4) /72,60,75,83/ - DATA (KFLV(4,i),i=5,43) /6*0,84,85,87,0,6*0,85,86,88,0,6*0, - & 87,88,99,0,6*0,0,0,0/ - - END -C======================================================================= - - SUBROUTINE SIB_I4FLAV (IFL1, IFL2_A, IRNK, IFL2, KF) - -C----------------------------------------------------------------------- -C. This subroutine receives as input IFL1 the flavor code -C. of a quark (antiquark) and generates the antiquark (quark) -C. of flavor code IFL2 that combine with the original parton -C. to compose an hadron of code KF. -C. -C. updated to 4 FLAVORS \FR'13 -C. Baryon sector is from jetset code -C. assuming D*_s+- are J=1, only Charm=1 baryons -C. -C. If (IFL2_A.NE.0) returns an hadron KF composed of IFL1 and IFL2_A -c -c Input: IFL1 - flavor of first quark -c IFL2_A - flavor of second quark ( if 0 randomly chosen ) -c IRNK - position in hadron chain -c Output: IFL2 - flavor of second quark partner to be passed on -c KF - final hadron -C----------------------------------------------------------------------- -Cf2py integer,intent(out) :: ifl2 -Cf2py integer,intent(out) :: kf - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - DIMENSION KFLA(4,4,2), CDIAG(16), KDIAG(8) - DIMENSION KBAR(40), CFR(28), KFR(80) - SAVE - DATA KFLA /0,8,10,71,7,0,22,59,9,21,0,74,72,60,75,0, ! spin-zero mesons - + 0,26,29,80,25,0,31,78,28,30,0,76,81,79,77,0/ ! spin-one mesons - DATA CDIAG/.5D0,.25D0,.5D0,.25D0,1.D0,.5D0,2.D0,1.D0, !spin-zero diagonal mesons - + .5D0,0.D0,.5D0,0.D0,1.D0,1.D0,2.D0,1.D0/ ! spin-one diagonal mesons - DATA KDIAG /6,23,24,73,27,32,33,83/ - DATA KBAR /13,14,34,35,36,37,38,84,85,86, !jetset -> sibyll part. code map - + 87,88,99,3*0,39,89,87,88, - + 40,41,42,43,44,45,46,47,48,49, - + 94,95,96,97,98,99,4*0/ ! spin-3/2 css baryon added to 1/2 css - DATA CFR /0.75D0,0.D0,0.5D0,0.D0,0.D0,1.D0,0.1667D0,0.3333D0, - $ 0.0833D0,0.6667D0,0.1667D0,0.3333D0,-3.D0,1.D0,-2.D0, - $ -2.D0,1.D0,0.D0,0.D0,-3.D0,1.D0,1.D0,1.D0,5*0.D0/ - DATA KFR/0,16,17,19,100,104,109,115,0,26,27,29,122,126,131,137 - + ,0,40,42,47,144,158,178,205,0,1,3,6,10,15,21,28,0,0,56,57,240, - + 246,256,271,0,0,1,3,6,10,15,21,60,61,64,70,292,307,328,356, - + 0,1,3,6,10,15,21,28,16*0/ - - IF(NDEBUG.gt.6) - & WRITE(LUN,*)' SIB_FLAV: input:',IFL1, IFL2_A, IRNK, IFL2, KF - -c set rho0 / ( omega, phi ) ratio, i.e. I=1 to I=0 -c default: 0.5, 0.0 ( phi only created from s-sbar) - CDIAG(8+1) = 1.D0-PAR(143) ! u-flavor, Prob. I=1 vs 0 - CDIAG(8+3) = 1.D0-PAR(143) ! d-flavor, Prob. I=1 vs 0 - - XDIQ = 1.D0 - - IARNK = IABS(IRNK) - IFLA = IABS(IFL1) -c check if diq production allowed? -c for strings with leading diquarks the immediate formation of another diquark may be forbidden - if(ifla.gt.100.and.mod(ifla,100).lt.10)then - XDIQ = PAR(158) - ifl1 = mod(ifl1,100) - IFLA = IABS(IFL1) - endif - - IFL2A = IFL2_A - IF (IFL2A .NE. 0) THEN -c combine existing flavors to hadron -c three cases: input diquark (MB=2): need to sample additional quark, -c input quark (MB=0,1): sample quark (0) or diquark (1)? - IFL2A = MOD(IFL2A,100) - IFL2 = IFL2A - IFLB = IABS(IFL2A) - MB = 0 - IF (IFLB .GT. 10) MB=1 - IF (IFLA .GT. 10) MB=2 - ELSE -c sample new flavor - MB = 2 - IF (IFLA .LT. 10) THEN - MB = 1 - IF ((1.D0+PAR(1))*S_RNDM(0).LT. 1.D0) MB=0 - XDIQ = 1.D0 -c suppress baryons close to the string end -c IPAR(55) defines largest forbidden rank -c PAR(101) is the rejection probability - IF (IPAR(54).eq.1)THEN - IF(IARNK.le.IPAR(55).and.S_RNDM(1).lt.PAR(101)) MB=0 - ENDIF - ENDIF - ENDIF - - 50 IF (MB .EQ. 0) THEN -c flavor open, sample from u,d,s,c - IF (IFL2A.EQ.0)THEN - IF(IPAR(69).eq.2)THEN -c asymmetric between u,d - IFL2 = MIN(2,1+INT((2.D0+PAR(115))*S_RNDM(0))) - IFLS = 3*INT(INT((2.D0+PAR(2))*S_RNDM(1))*0.5D0) - IFL2 = MAX(IFL2,IFLS) - IFL2 = ISIGN(IFL2,-IFL1) - ELSE -c symmetric in u,d - IFL2=ISIGN(1+INT((2.D0+PAR(2))*S_RNDM(0)),-IFL1) - ENDIF - IF(IABS(IFL2).eq.3) THEN - IF(S_RNDM(1).lt.PAR(24)*PAR(125)) - + IFL2=ISIGN(4,-IFL1) - ENDIF - ENDIF - IFLD = MAX(IFL1,IFL2) - IFLE = MIN(IFL1,IFL2) - GOTO 100 - ENDIF - -C... Decide if the diquark must be split -c if diquark is from previous splitting (popcorn) do NOT split diquark -c jump to sample quark and form baryon - IF (MB .EQ. 2 .AND. IFLA .GT. 100) THEN - IFLA = MOD(IFLA,100) - GOTO 200 - ENDIF -c split diquark? if yes sample single flavor and form meson -c diquark with any flavor combination is passed on with id+100 - IF (MB .EQ. 2 .AND. IFL2A .EQ. 0) THEN - IF (S_RNDM(0) .LT. PAR(8)) THEN - MB = 0 - IFLG = MOD(IFL1,10) - IFLH =(IFL1-IFLG)/10 - IF (S_RNDM(1) .GT. 0.5D0) THEN - IFLDUM = IFLG - IFLG = IFLH - IFLH = IFLDUM - ENDIF - IFL11=IFLG - IFL22=ISIGN(1+INT((2.D0+PAR(2))*S_RNDM(2)),-IFL1) - IFLD = MAX(IFL11,IFL22) - IFLE = MIN(IFL11,IFL22) - IFL2 = -IFLH*10+IFL22 - IF (S_RNDM(3) .GT. 0.5D0) IFL2 = IFL22*10-IFLH -c limit diquark splitting to B-M-B (default: yes) - IF(IPAR(92).eq.1) IFL2 = IFL2+ISIGN(100,IFL2) - ENDIF - ENDIF - -C...Form a meson: consider spin and flavor mixing for the diagonal states - 100 IF (MB .EQ. 0) THEN - IF1 = IABS(IFLD) - IF2 = IABS(IFLE) - IFLC = MAX(IF1,IF2) - KSP = INT(PAR(5)+S_RNDM(0)) - KSP = MIN(KSP,1) - IF (IFLC.EQ.3) KSP = INT(PAR(6)+S_RNDM(1)) - IF (IFLC.EQ.4) KSP = INT(PAR(6)+S_RNDM(2)) - IF (IF1 .NE. IF2) THEN - KF = KFLA(IF1,IF2,KSP+1) - ELSE - R = S_RNDM(0) - JF=1+INT(R+CDIAG(8*KSP+2*IF1-1))+ - + INT(R+CDIAG(8*KSP+2*IF1)) - JF = MIN(JF,4) - KF=KDIAG(JF+4*KSP) -c suppress neutral pions - IF(KF.eq.6)THEN - IF(IPAR(82).eq.1.and. - + S_RNDM(kf).lt.PAR(137))then - IF(IFL2A.ne.0) goto 100 - IF(IFLA.gt.10) mb = 2 - GOTO 50 - endif -c suppress neutral pions, depending on rank - IF(IPAR(82).eq.2.and.S_RNDM(3).lt.PAR(137).and. - + irnk.gt.0.and.irnk.lt.2) then - IF(IFL2A.ne.0) goto 100 - IF(IFLA.gt.10) mb = 2 - GOTO 50 - endif - ENDIF -c suppress rank1 (leading) omega - IF(KF.eq.32)THEN - IF(IPAR(83).ne.0.and. - + S_RNDM(kf).lt.PAR(138))then - IF(IFL2A.ne.0) goto 100 - IF(IFLA.gt.10) mb = 2 - GOTO 50 - endif - ENDIF - ENDIF -c PRINT*,' I4FLAV returns :(IFL1,IFL2,LL)',IFL1,IFL2,KF - IF(NDEBUG.gt.6) - & WRITE(LUN,*)' SIB_FLAV: output:',IFL1, IFL2_A, IRNK, IFL2, KF - RETURN - ENDIF - -C...Form a baryon - 200 IF (IFL2A .NE. 0) THEN - IF (MB .EQ. 1) THEN - IFLD = IFLA - IFLE = IFLB/10 - IFLF = MOD(IFLB,10) - ELSE - IFLD = IFLB - IFLE = IFLA/10 - IFLF = MOD(IFLA,10) - ENDIF - LFR = 3+2*((2*(IFLE-IFLF))/(1+IABS(IFLE-IFLF))) - IF(IFLD.NE.IFLE.AND.IFLD.NE.IFLF) LFR=LFR+1 - ELSE - 110 CONTINUE - IF(MB.EQ.1) THEN ! generate diquark - IFLD = IFLA - 120 IFLE = 1+INT((2.D0+PAR(2)*PAR(3))*S_RNDM(0)) - IFLF = 1+INT((2.D0+PAR(2)*PAR(3))*S_RNDM(1)) - IF(IFLD.NE.4)THEN - IF(IFLE.EQ.3)THEN - IF(S_RNDM(2).lt.PAR(24)*PAR(125)) - + IFLE=4 - ENDIF - IF(IFLF.EQ.3.and.IFLE.NE.4)THEN - IF(S_RNDM(3).lt.PAR(24)*PAR(125)) - + IFLF=4 - ENDIF - ENDIF - IF(IFLE.GE.IFLF.AND.PAR(4).LT.S_RNDM(4)) GOTO 120 - IF(IFLE.LT.IFLF.AND.PAR(4)*S_RNDM(5).GT.1.D0) GOTO 120 - IFL2=ISIGN(10*IFLE+IFLF,IFL1) - ELSE ! generate quark - IF(IPAR(69).eq.2)THEN -c asymmetric between u,d - IFL2 = MIN(2,1+INT((2.D0+PAR(115))*S_RNDM(6))) - IFLS = 3*(INT((2.D0+PAR(2))*S_RNDM(7))/2) - IFL2 = MAX(IFL2,IFLS) - IFL2 = ISIGN(IFL2,IFL1) - ELSE -c symmetric in u,d - IFL2=ISIGN(1+INT((2.D0+PAR(2))*S_RNDM(8)),IFL1) - ENDIF - IFLE=IFLA/10 - IFLF=MOD(IFLA,10) - IF(IABS(IFL2).EQ.3.and.IFLF.ne.4.and.IFLE.ne.4) THEN - IF(S_RNDM(9).lt.PAR(24)*PAR(125)) - + IFL2=ISIGN(4,IFL1) - ENDIF - IFLD=IABS(IFL2) - ENDIF -C...SU(6) factors for baryon formation - LFR=3+2*((2*(IFLE-IFLF))/(1+IABS(IFLE-IFLF))) - IF(IFLD.NE.IFLE.AND.IFLD.NE.IFLF) LFR=LFR+1 - WT = CFR(2*LFR-1)+PAR(7)*CFR(2*LFR) - IF(IFLE.LT.IFLF) WT=WT/3.D0 - IF (WT.LT.S_RNDM(0)) GOTO 110 - ENDIF - -C...Form Baryon - IFLG=MAX(IFLD,IFLE,IFLF) - IFLI=MIN(IFLD,IFLE,IFLF) - IFLH=IFLD+IFLE+IFLF-IFLG-IFLI -c IF(IFLG+IFLH.gt.7) GOTO 200 ! forbid double charmed - KSP=2+2*INT(1.D0-CFR(2*LFR-1)+(CFR(2*LFR-1)+PAR(7)* - 1 CFR(2*LFR))*S_RNDM(0)) - -C...Distinguish Lambda- and Sigma- like particles - IF (KSP.EQ.2.AND.IFLG.GT.IFLH.AND.IFLH.GT.IFLI) THEN - IF(IFLE.GT.IFLF.AND.IFLD.NE.IFLG) KSP=2+INT(0.75D0+S_RNDM(1)) - IF(IFLE.LT.IFLF.AND.IFLD.EQ.IFLG) KSP=3 - IF(IFLE.LT.IFLF.AND.IFLD.NE.IFLG) KSP=2+INT(0.25D0+S_RNDM(2)) - ENDIF - KF=KFR(16*KSP-16+IFLG)+KFR(16*KSP-8+IFLH)+IFLI - IF(KBAR(KF-40).eq.0)THEN - WRITE(LUN,*)' jetset code missing,flvs:',kf,IFLG,IFLH,IFLI - CALL SIB_REJECT('SIB_I4FLAV ') - ENDIF - KF=KBAR(KF-40) - IF(KF.le.14)THEN - IF(PAR(106).gt.S_RNDM(3).and.IARNK.le.IPAR(61)) KF=KF-13+51 - & +2*INT(PAR(108)+S_RNDM(4)) - ENDIF - KF=ISIGN(KF,IFL1) -c if leading baryon, mark quark to supress baryon production in the next iteration -c i.e. forbid: Blead-Bbar-B combination - if(iarnk.eq.1.and.IPAR(93).eq.1.and.iabs(mod(ifl1,100)).gt.10)then - IFL2 = IFL2 + ISIGN(100,IFL2) - endif - - IF(NDEBUG.gt.6) - & WRITE(LUN,*)' SIB_FLAV: output:',IFL1, IFL2_A, IRNK, IFL2, KF - - RETURN - END -C======================================================================= - - SUBROUTINE SIB_ICFLAV( Q2, IS0, IS, IFL ) - -C----------------------------------------------------------------------- -C Routine that samples symmetric between the available flavors -C Input: Q2 - mass scale, usually filled with s_hat -C IS0 - input flavor sign -C -C Output: IFL - flavor code: u,d,s,c or anti-quarks -C IS - flavor sign: quark or anti-quark, if 0 passed then -C a new value is sampled -C Parameters: kT_s and kT_c i.e. width of the fermi function -C----------------------------------------------------------------------- -C f2py double precision,intent(in) :: q2 -Cf2py integer,intent(in) :: is0 -Cf2py integer,intent(out) :: is -Cf2py integer,intent(out) :: ifl - IMPLICIT NONE - DOUBLE PRECISION Q2 - INTEGER IFL,IS - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - DOUBLE PRECISION XMS2,XMC2,P_S,P_C,S_RNDM,QMASS,FERMI - INTEGER IFL1,IS0 - - IF( NDEBUG.gt.6 ) - & WRITE(LUN,*)' SIB_ICFLAV: input (Q2,IFL,IS):',Q2,IFL,IS - -c quark or antiquark, sampled if input is zero - IF(IS0.eq.0) THEN - IS = -1 + 2*INT((2.D0-EPS8)*S_RNDM(IS0)) - ELSE - IS = IS0 - ENDIF - -c strange and charm quark masses - XMS2 = 4*QMASS(3)**2 - XMC2 = 4*QMASS(4)**2 * PAR(153) - -c strange and charm parameters - IF(IPAR(89).eq.1)THEN -c exponential thresholds - P_S = PAR(154) * EXP(-PAR(151)/Q2) - P_C = PAR(156) * EXP(-PAR(152)/Q2) - ELSE -c fermi func. threshold -c P_s: 0 (u,d only) --> 1 (u,d,s equal) --> 2 (u+d,s+c equal) -c P_c: 0 (s only) --> 1 (s,c) equal - P_S = PAR(154) * FERMI( Q2, XMS2, -PAR(151) ) - & + PAR(155) * FERMI( Q2, XMC2, -PAR(152) ) - P_C = PAR(156) * 0.5D0*FERMI( Q2, XMC2, -PAR(152) ) - ENDIF - IF(NDEBUG.gt.6)THEN - WRITE(LUN,*)' SIB_ICFLAV: (4*M_S**2, P_S, kT):', - & xms2, P_s, PAR(151) - WRITE(LUN,*)' SIB_ICFLAV: (4*M_C**2, P_C, kT):', - & xmc2, P_c, PAR(152) - ENDIF - -c sample u,d,s - IFL1 = MIN(INT((2.D0+P_S)*S_RNDM(IS0))+1,3) - -c replace s with c - IFL1 = IFL1 + IFL1/3*MIN(INT(P_C+S_RNDM(IS0)),1) - - IFL = IS*IFL1 - - IF(NDEBUG.gt.6) - & WRITE(LUN,*)' SIB_ICFLAV: output (Q2,IFL,IS):',Q2,IFL,IS - - END -C======================================================================= - - SUBROUTINE SIB_DIFF (L0, JDIF1, Ecm, Irec, IREJ) - -C----------------------------------------------------------------------- -C...diffraction dissociation -C. INPUT L0 = index of "beam particle" -C. the target is assumed to be a proton. -C. JDIF1 = 1 "beam diffraction" -C. = 2 "target diffraction" -C. = 3 "double diffraction" -C Irec flag to avoid recursive calls of SIB_DIFF and SIB_NDIFF -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - DOUBLE PRECISION XM2MIN,ALXMIN,SLOP0,ASLOP,BSLOP,XMASS - COMMON /S_DIFMAss/ XM2MIN(6),ALXMIN(6),SLOP0,ASLOP,BSLOP,XMASS(2) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT - - INTEGER LRNK - COMMON /SIB_RNK/ LRNK(8000) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - DIMENSION P0(5),P1(5),P2(5) - -C mapping array from particle space to diff. mass -c six groups: proton, pion, kaons, hyperons, -c charmed mesons, charmed baryons - INTEGER KK,I - DIMENSION KK(99) - SAVE - DATA (KK(I), I= 1,39) /5*0,3*2,4*3,2*1,6*0,6*2,3,6*2,6*4/ - DATA (KK(I), I=40,99) /19*0,5,5,10*0,5,5,0,5,5,11*0,6,6,6,9*0,6/ - - if(Ndebug.gt.1) - & WRITE(LUN,*)' SIB_DIFF: called with (L0,JDIF1,Ecm):', - & L0,JDIF1,Ecm - - if(Irec.eq.1) THEN - Ipflag= -1 - IIFLAG = 1 -c add incoming target particles - PZ = PAWT(ECM,AM(IABS(L0)),AM(13)) - E2 = SQRT(PZ**2+AM2(13)) - CALL ADD_PRTN(0.D0,0.D0,-PZ,E2,AM(13),13,-2,0,IREFout) - -c add interactions - xjdif = dble(jdif1) - CALL ADD_PRTN(0.D0,0.D0,xjdif,ecm,0.D0,1,-1,IREFout,IREF) - ENDIF - CALL GET_NPP(NPP_0,NPP0_0) - - IDBAD = 0 - NTRY = 0 - 20 IREJ = 1 - CALL INI_PRTN_STCK(NPP_0,NPP0_0) - - IF(NTRY.gt.20*Irec) RETURN ! zero tolerance for recursive calls - NTRY = NTRY + 1 - - LL = L0 - LA = IABS(L0) - XM2MAX = PAR(13)*Ecm*Ecm - if(Ndebug.gt.1) - & WRITE(LUN,*)' SIB_DIFF: max diff. mass (M,Xi):',XM2MAX,PAR(13) - -C...Double diffraction - IF (JDIF1 .EQ. 3) THEN - K = MAX(1,2-IBAR(LA)-ISTR(LA)-ICHM(LA)) - IF(Irec.eq.1) K = KK(LA) -c minimal mass if larger than particle mass plus one pion - XMMIN = XM2MIN(K) - IF(Irec.eq.0) XMMIN = MAX(XMMIN,(AM(LA)+AM(7)+0.02D0)**2) - XMB2 = XM2DIS(XMMIN,XM2MAX,1.D0) - XMB = SQRT (XMB2) - XMT2 = XM2DIS(XM2MIN(1),XM2MAX,1.D0) - XMT = SQRT (XMT2) - CALL TRANSFONSHELL(ECM,XMB,XMT,XM2MAX,0,P1,P2,IBAD) - IF(IBAD.ne.0) goto 20 - XMASS(1) = XMB - IF(Irec.eq.1)THEN -c add diffractive system to parton stack - CALL ADD_PRTN_4VEC(P1,3,0,0,Iref) - CALL ADD_INT_REF(Iref,1) - CALL ADD_PRTN_4VEC(P2,-3,0,0,Iref) - CALL ADD_INT_REF(Iref,1) - ENDIF - if(Ndebug.gt.1) - & write(lun,*)' double-diff.: (kb,xmb,kt,xmt)',LL,xmb,13,xmt - CALL DIFDEC (LL, Irec, IDBAD, P1) - IF(IDBAD.eq.1)goto 20 - Ipflag= -2 - XMASS(2) = XMT - CALL DIFDEC (13, Irec, IDBAD, P2) - IF(IDBAD.eq.1)goto 20 - IREJ = 0 - RETURN - ENDIF - -C...Single diffraction - IF (JDIF1.EQ. 1) THEN - K = MAX(1,2-IBAR(LA)) - IF(Irec.eq.1) K = KK(LA) - EM = AM(13) - EM2 = AM2(13) - L = 13 - ZD = -1.D0 - if(Ndebug.gt.1) - & write(lun,*)' single-diff. (beam): (kb)',LL - ELSE - K = 1 - EM = AM(LA) - EM2 = AM2(LA) - L = LL - LL = 13 - ZD = +1.D0 - if(Ndebug.gt.1) - & write(lun,*)' single-diff. (target): (kt)', LL - - ENDIF -C...Generate the mass of the diffracted system Mx (1/Mx**2 distribution) - XMMIN = XM2MIN(K) - IF(Irec.eq.0) XMMIN = MAX(XMMIN,(AM(LA)+AM(7)+0.02D0)**2) - XM2 = XM2DIS(XMMIN,XM2MAX,1.D0) - ALX = log(XM2) -c... added part - X = XM2/XM2MAX*PAR(13) - IF (X.GT.PAR(13)-0.05D0) THEN - PRO = 0.5D0*(1.D0+(X-PAR(13))/0.05D0) - IF (S_RNDM(0).LT.PRO) X = 2.D0*PAR(13)-X - XM2 = XM2MAX*X/PAR(13) - ENDIF -c... - - XM = SQRT (XM2) - XMB = XM - XMT = XM - XMASS(1) = XMB - XMASS(2) = XMT - -C.. kinematics - CALL TRANSFONSHELL(ECM,XMB,EM,XM2MAX,0,P1,P2,IBAD) - IF(IBAD.ne.0) goto 20 - -C...Generate the Kinematics of the pseudoelastic hadron - NP = NP+1 - P(NP,4) = P2(4) - P(NP,3) = abs(P2(3))*ZD - P(NP,1) = p2(1) - P(NP,2) = p2(2) - P(NP,5) = EM - LLIST(NP) = L - NPORIG(NP) = IPFLAG - niorig(NP) = iiflag - LRNK(NP) = 0 - -C...Generating the hadronic system recoiling against the produced particle - P0(5) = SQRT(XM2) - P0(4) = P1(4) - DO J=1,3 - P0(J) = -P(NP,J) - ENDDO - IF(Irec.eq.1)THEN -c add diffractive system to parton stack - CALL ADD_PRTN_4VEC(P1,JDIF1,0,0,Iref) - CALL ADD_INT_REF(Iref,1) - CALL ADD_PRTN_4VEC(P2,int(zd),0,0,Iref) - CALL ADD_INT_REF(Iref,1) - ENDIF - CALL DIFDEC (LL, Irec, IDBAD, P0) - IF(IDBAD.eq.1)goto 20 - IREJ = 0 - - END - -C======================================================================= - - SUBROUTINE DIFF_INI - -C---------------------------------------------------------------------- - IMPLICIT NONE - INTEGER I,NPION - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - DOUBLE PRECISION XM2MIN,ALXMIN,SLOP0,ASLOP,BSLOP,XMASS - COMMON /S_DIFMAss/ XM2MIN(6),ALXMIN(6),SLOP0,ASLOP,BSLOP,XMASS(2) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - SAVE -C... Diffractive mass parameters from Sibyll 2.1 -c minimal mass - DATA (XM2MIN(I), I=1,3) /1.5D0, 0.2D0, 0.6D0/ ! M_x**2(min) GeV**2 - DATA (ALXMIN(I), I=1,3) ! log[M_x**2(min)] - & /0.405465D0,-1.6094379D0,-0.5108256D0/ -C... pt spectrum - DATA SLOP0 /6.5D0/ ! b (slope_ for Mx**2 > 5 GeV**2 - DATA ASLOP /31.10362D0/ ! fit to the slope parameter. - DATA BSLOP /-15.29012D0/ - -C minimal mass for strange and charmed hadrons: -C m_beam + n_pi * m_pi - NPION = IPAR(86) - -C hyperons (4), lowest mass: lambda - XM2MIN(4) = AM2(39) + NPION * AM2(7) - ALXMIN(4) = log(XM2MIN(4)) - -C charmed mesons (5), lowest mass: Dmeson - XM2MIN(5) = AM2(59) + NPION * AM2(7) - ALXMIN(5) = log(XM2MIN(5)) - -C charmed baryons (6), lowest mass: lambda_c - XM2MIN(6) = AM2(89) + NPION * AM2(7) - ALXMIN(6) = log(XM2MIN(6)) - -c debug output - IF(NDEBUG.gt.1)THEN - WRITE(LUN,*)'DIFF_INI: setting diff. mass parameters' - WRITE(LUN,*)' min mass: ', (XM2MIN(I), I=1,6) - WRITE(LUN,*)' log min mass: ', (ALXMIN(I), I=1,6) - ENDIF - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGELA_PN(plab) - -C----------------------------------------------------------------------- -C -C low-energy pn/np elastic cross section -C (based on spline interpolations) -C -C (R.Engel 02/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C pn elastic cross section - DATA (PTPP(K),K= 1, 18) / - & -1.0128D+00,-8.8365D-01,-7.8000D-01,-6.8973D-01,-5.7462D-01, - & -4.2138D-01,-2.9384D-01,-1.1581D-01, 1.1309D-01, 5.3273D-01, - & 9.6497D-01, 1.4860D+00, 2.0449D+00, 2.6798D+00, 3.5939D+00, - & 4.9903D+00, 6.2215D+00, 6.8942D+00/ - DATA (STPP(K),K= 1, 18) / - &1.0001D+02,8.2414D+01,6.5819D+01,5.4660D+01,4.7794D+01,4.0500D+01, - &3.5781D+01,3.3208D+01,2.9921D+01,2.3919D+01,1.8633D+01,1.4206D+01, - &1.1068D+01,9.0752D+00,7.5167D+00,6.6817D+00,6.8455D+00,6.8568D+00/ - - -C initialize cross section tables - - if(init) then - N = 18 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_PN: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigela_pn = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_PN: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigela_pn = FV(1) - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGELA_PP(plab) - -C----------------------------------------------------------------------- -C -C low-energy pp elastic cross section -C (based on spline interpolations) -C -C (R.Engel 02/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C pp elastic cross section - DATA (PTPP(K),K= 1, 20) / - & -1.0548D+00,-9.9070D-01,-8.2516D-01,-6.8608D-01,-4.7199D-01, - & -2.7085D-01,-1.0784D-01,-7.6152D-03, 1.6806D-01, 3.3154D-01, - & 5.4551D-01, 8.2275D-01, 1.3768D+00, 2.0058D+00, 2.9862D+00, - & 3.7151D+00, 4.3182D+00, 5.1348D+00, 5.6750D+00, 6.2152D+00/ - DATA (STPP(K),K= 1, 20) / - &4.2555D+01,3.7310D+01,2.8426D+01,2.4873D+01,2.2758D+01,2.2166D+01, - &2.3350D+01,2.4450D+01,2.5212D+01,2.4535D+01,2.2927D+01,1.9459D+01, - &1.4213D+01,1.0745D+01,8.4602D+00,7.3604D+00,6.8528D+00,6.6836D+00, - &6.6836D+00,6.6836D+00/ - - -C initialize cross section tables - - if(init) then - N = 20 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_PP: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigela_pp = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_PP: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigela_pp = FV(1) - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGTOT_PN(plab) - -C----------------------------------------------------------------------- -C -C low-energy pn and np total cross section -C (based on spline interpolations) -C -C (R.Engel 02/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C pn total cross section - DATA (PTPP(K),K= 1, 17) / - & -1.0129D+00,-8.4520D-01,-7.4136D-01,-5.3626D-01,-3.3210D-01, - & -1.2859D-01, 8.7237D-02, 3.1519D-01, 6.7022D-01, 1.0889D+00, - & 1.5714D+00, 2.0792D+00, 2.6760D+00, 3.9453D+00, 4.9226D+00, - & 5.6207D+00, 6.7629D+00/ - DATA (STPP(K),K= 1, 17) / - &1.0000D+02,7.9053D+01,6.0976D+01,4.5194D+01,3.6729D+01,3.3429D+01, - &3.3142D+01,3.7303D+01,4.0316D+01,4.1607D+01,4.0746D+01,3.9885D+01, - &3.8594D+01,3.8307D+01,3.8881D+01,3.9168D+01,4.1320D+01/ - - -C initialize cross section tables - - if(init) then - N = 17 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_PN: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigtot_pn = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_PN: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigtot_pn = FV(1) - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGTOT_PP(plab) - -C----------------------------------------------------------------------- -C -C low-energy pp -C (based on spline interpolations) -C -C (R.Engel 02/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C pp total cross section - DATA (PTPP(K),K= 1, 23) / - & -1.4202D+00,-1.2583D+00,-1.0464D+00,-8.3253D-01,-6.0471D-01, - & -3.6376D-01,-8.4289D-02, 6.8739D-02, 1.9666D-01, 3.2471D-01, - & 4.2673D-01, 5.5375D-01, 7.5675D-01, 1.0737D+00, 1.5176D+00, - & 2.1393D+00, 2.7230D+00, 3.5353D+00, 4.3223D+00, 5.1728D+00, - & 5.7949D+00, 6.2392D+00, 6.9122D+00/ - DATA (STPP(K),K= 1, 23) / - &9.2081D+01,7.0000D+01,4.2437D+01,2.8579D+01,2.3858D+01,2.2335D+01, - &2.3858D+01,2.8883D+01,3.5888D+01,4.3807D+01,4.7157D+01,4.7766D+01, - &4.7157D+01,4.4569D+01,4.1523D+01,3.9695D+01,3.8782D+01,3.8173D+01, - &3.8173D+01,3.8477D+01,3.9391D+01,4.0000D+01,4.1523D+01/ - - -C initialize cross section tables - - if(init) then - N = 23 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_PP: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigtot_pp = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_PP: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigtot_pp = FV(1) - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGELA_PIPP(plab) - -C----------------------------------------------------------------------- -C -C low-energy pi+p elastic cross section -C (based on spline interpolations) -C -C (R.Engel 05/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C pi+p elastic cross section - DATA (PTPP(K),K= 1, 24) / - & -9.1117D-01,-8.4887D-01,-7.8656D-01,-6.6196D-01,-5.3736D-01, - & -4.4390D-01,-3.6083D-01,-2.6738D-01,-1.8431D-01,-5.9706D-02, - & 5.4515D-02, 1.3758D-01, 2.4142D-01, 3.5564D-01, 4.0756D-01, - & 5.1140D-01, 6.9830D-01, 1.0410D+00, 1.6225D+00, 2.2455D+00, - & 2.9620D+00, 3.7407D+00, 4.6026D+00, 5.5163D+00/ - DATA (STPP(K),K= 1, 24) / - &7.3812D+01,5.8453D+01,4.5967D+01,3.1602D+01,2.2652D+01,1.6133D+01, - &1.2044D+01,9.2818D+00,8.3978D+00,9.9448D+00,1.2818D+01,1.4144D+01, - &1.6354D+01,1.8011D+01,1.7238D+01,1.2928D+01,1.0055D+01,7.1823D+00, - &5.5249D+00,4.6409D+00,3.6464D+00,2.9834D+00,3.2044D+00,3.0939D+00/ - - -C initialize cross section tables - - if(init) then - N = 24 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_PIPP: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigela_pipp = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_PIPP: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigela_pipp = FV(1) - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGTOT_PIPP(plab) - -C----------------------------------------------------------------------- -C -C low-energy pi+p total cross section -C (based on spline interpolations) -C -C (R.Engel 05/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C pi+p total cross section - DATA (PTPP(K),K= 1, 37) / - & -9.2155D-01,-8.6963D-01,-8.0733D-01,-7.2426D-01,-5.4774D-01, - & -4.7505D-01,-4.1275D-01,-3.6083D-01,-3.0891D-01,-2.2585D-01, - & -1.7393D-01,-8.0473D-02, 2.3363D-02, 1.5835D-01, 2.3104D-01, - & 2.9334D-01, 3.1411D-01, 3.5564D-01, 4.1794D-01, 4.2833D-01, - & 4.9063D-01, 5.7370D-01, 6.7754D-01, 7.2945D-01, 8.1252D-01, - & 8.8521D-01, 9.9943D-01, 1.1033D+00, 1.4044D+00, 1.7782D+00, - & 2.1313D+00, 2.6712D+00, 3.2942D+00, 3.8342D+00, 4.6441D+00, - & 5.4748D+00, 5.8382D+00/ - DATA (STPP(K),K= 1, 37) / - &7.3812D+01,6.4420D+01,5.0939D+01,3.7790D+01,2.3867D+01,1.8674D+01, - &1.6022D+01,1.5138D+01,1.4365D+01,1.5138D+01,1.7127D+01,2.0773D+01, - &2.4420D+01,2.7845D+01,3.3591D+01,3.9116D+01,4.0773D+01,4.1215D+01, - &4.0000D+01,3.8232D+01,3.3370D+01,3.0608D+01,2.9061D+01,2.8619D+01, - &2.9834D+01,3.0829D+01,3.0497D+01,2.9061D+01,2.7514D+01,2.5746D+01, - &2.4862D+01,2.3646D+01,2.3094D+01,2.2873D+01,2.3204D+01,2.3978D+01, - &2.4420D+01/ - - -C initialize cross section tables - - if(init) then - N = 37 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_PIPP: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigtot_pipp = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_PIPP: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigtot_pipp = FV(1) - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGELA_PIMP(plab) - -C----------------------------------------------------------------------- -C -C low-energy pi-p elastic cross section -C (based on spline interpolations) -C -C (R.Engel 05/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C pi-p elastic cross section - DATA (PTPP(K),K= 1, 56) / - & -1.8980D+00,-1.5458D+00,-1.4323D+00,-1.3602D+00,-1.2880D+00, - & -1.2571D+00,-1.1845D+00,-1.1531D+00,-1.1112D+00,-1.0691D+00, - & -1.0063D+00,-9.1252D-01,-8.2935D-01,-7.0477D-01,-6.0118D-01, - & -4.6652D-01,-4.1489D-01,-3.9435D-01,-3.6334D-01,-3.4267D-01, - & -3.0100D-01,-2.6966D-01,-2.4866D-01,-2.1741D-01,-1.6542D-01, - & -1.1357D-01,-9.2992D-02,-8.2923D-02,-4.1875D-02,-1.1054D-02, - & 3.0281D-02, 7.2145D-02, 8.2958D-02, 1.1458D-01, 1.5645D-01, - & 2.6051D-01, 3.4368D-01, 3.8539D-01, 4.7900D-01, 5.3080D-01, - & 6.3455D-01, 7.4898D-01, 9.1527D-01, 1.1023D+00, 1.3412D+00, - & 1.5594D+00, 1.9541D+00, 2.4007D+00, 2.7122D+00, 3.0653D+00, - & 3.4392D+00, 3.8130D+00, 4.2387D+00, 5.0175D+00, 5.3602D+00, - & 5.8897D+00/ - DATA (STPP(K),K= 1, 56) / - &2.9793D+00,9.7103D+00,1.5007D+01,1.9862D+01,2.3393D+01,2.5269D+01, - &2.6041D+01,2.4276D+01,2.1076D+01,1.6772D+01,1.3021D+01,1.0372D+01, - &9.6000D+00,9.8207D+00,1.1697D+01,1.4234D+01,1.6441D+01,1.8207D+01, - &1.9310D+01,2.0083D+01,1.8979D+01,1.7545D+01,1.5779D+01,1.5007D+01, - &1.4455D+01,1.5007D+01,1.6441D+01,1.8869D+01,2.2621D+01,2.5159D+01, - &2.6703D+01,2.4166D+01,2.0855D+01,1.7214D+01,1.4676D+01,1.2910D+01, - &1.2138D+01,1.0814D+01,9.6000D+00,1.0483D+01,1.1145D+01,9.6000D+00, - &8.3862D+00,7.5034D+00,6.6207D+00,6.0690D+00,4.9655D+00,4.4138D+00, - &4.4138D+00,3.7517D+00,3.3103D+00,3.2000D+00,3.3103D+00,3.3103D+00, - &3.3103D+00,3.5310D+00/ - - -C initialize cross section tables - - if(init) then - N = 56 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_PIMP: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigela_pimp = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_PIMP: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigela_pimp = FV(1) - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGTOT_PIMP(plab) - -C----------------------------------------------------------------------- -C -C low-energy pi-p total cross section -C (based on spline interpolations) -C -C (R.Engel 05/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C pi-p total cross section - DATA (PTPP(K),K= 1, 53) / - & -1.9302D+00,-1.8269D+00,-1.6617D+00,-1.5490D+00,-1.4577D+00, - & -1.3146D+00,-1.2630D+00,-1.2211D+00,-1.1686D+00,-1.1364D+00, - & -1.0937D+00,-1.0305D+00,-9.4645D-01,-8.5245D-01,-7.6915D-01, - & -6.7584D-01,-5.2057D-01,-4.3813D-01,-4.0781D-01,-3.6669D-01, - & -3.1507D-01,-2.8372D-01,-2.6240D-01,-2.0995D-01,-1.7861D-01, - & -1.1661D-01,-9.6329D-02,-7.6149D-02,-3.5817D-02,-5.0811D-03, - & 1.5958D-02, 5.8095D-02, 1.1175D-01, 1.7444D-01, 1.9540D-01, - & 2.8868D-01, 3.7173D-01, 4.5500D-01, 5.4845D-01, 6.4176D-01, - & 7.1436D-01, 8.3919D-01, 9.6397D-01, 1.3069D+00, 1.7018D+00, - & 2.0447D+00, 2.5952D+00, 3.1249D+00, 3.6130D+00, 4.1426D+00, - & 4.8175D+00, 5.3159D+00, 5.9284D+00/ - DATA (STPP(K),K= 1, 53) / - &1.1145D+01,1.5007D+01,2.2179D+01,3.4428D+01,5.0428D+01,6.7862D+01, - &7.0952D+01,6.7972D+01,6.3007D+01,5.5393D+01,4.6566D+01,3.9614D+01, - &3.1779D+01,2.7586D+01,2.5821D+01,2.6924D+01,3.0676D+01,3.5531D+01, - &4.1931D+01,4.5131D+01,4.7448D+01,4.5903D+01,4.1600D+01,3.7517D+01, - &3.6083D+01,3.8400D+01,4.2152D+01,4.6676D+01,5.5945D+01,5.9145D+01, - &5.7048D+01,5.2414D+01,3.9062D+01,3.6083D+01,3.4538D+01,3.5862D+01, - &3.6083D+01,3.4538D+01,3.4538D+01,3.5641D+01,3.6303D+01,3.4538D+01, - &3.3214D+01,3.1117D+01,2.8690D+01,2.7145D+01,2.5600D+01,2.4717D+01, - &2.4166D+01,2.4166D+01,2.3945D+01,2.4055D+01,2.5159D+01/ - - -C initialize cross section tables - - if(init) then - N = 53 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_PIMP: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigtot_pimp = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_PIMP: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigtot_pimp = FV(1) - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGELA_KPP(plab) - -C----------------------------------------------------------------------- -C -C low-energy K+p elastic cross section -C (based on spline interpolations) -C -C (R.Engel 05/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C K+p elastic cross section - DATA (PTPP(K),K= 1, 22) / - & -1.1500D+00,-8.0733D-01,-5.4774D-01,-4.1275D-01,-2.5700D-01, - & -8.0474D-02, 7.5281D-02, 2.5180D-01, 3.7641D-01, 5.3216D-01, - & 6.8792D-01, 8.4368D-01, 1.0929D+00, 1.5913D+00, 1.9340D+00, - & 2.3182D+00, 2.8166D+00, 3.2215D+00, 3.4708D+00, 3.9276D+00, - & 4.6233D+00, 5.5475D+00/ - DATA (STPP(K),K= 1, 22) / - &1.2227D+01,1.2570D+01,1.2499D+01,1.2498D+01,1.2428D+01,1.2012D+01, - &1.1183D+01,1.0284D+01,9.4544D+00,8.2796D+00,6.8977D+00,5.9300D+00, - &4.6854D+00,3.6461D+00,3.2293D+00,3.0193D+00,2.6704D+00,2.4602D+00, - &2.3203D+00,2.0407D+00,2.2426D+00,2.5809D+00/ - - -C initialize cross section tables - - if(init) then - N = 22 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_KPP: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigela_kpp = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_KPP: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigela_kpp = FV(1) - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGTOT_KPP(plab) - -C----------------------------------------------------------------------- -C -C low-energy K+p total cross section -C (based on spline interpolations) -C -C (R.Engel 05/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C K+p total cross section - DATA (PTPP(K),K= 1, 20) / - & -1.0981D+00,-7.1388D-01,-4.7505D-01,-3.1930D-01,-1.7393D-01, - & -8.0474D-02, 2.3363D-02, 9.6049D-02, 1.9989D-01, 3.2449D-01, - & 4.6986D-01, 6.2562D-01, 8.3329D-01, 1.0825D+00, 1.4355D+00, - & 2.1001D+00, 2.6920D+00, 3.5434D+00, 4.6337D+00, 5.7448D+00/ - DATA (STPP(K),K= 1, 20) / - &1.2158D+01,1.2362D+01,1.2429D+01,1.2428D+01,1.3187D+01,1.4429D+01, - &1.5809D+01,1.7327D+01,1.8224D+01,1.8430D+01,1.7945D+01,1.7806D+01, - &1.7459D+01,1.7250D+01,1.7041D+01,1.7381D+01,1.7446D+01,1.7853D+01, - &1.8881D+01,2.0529D+01/ - - -C initialize cross section tables - - if(init) then - N = 20 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_KPP: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigtot_kpp = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_KPP: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigtot_kpp = FV(1) - - END - - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGELA_KMP(plab) - -C----------------------------------------------------------------------- -C -C low-energy K-p elastic cross section -C (based on spline interpolations) -C -C (R.Engel 05/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C K-p elastic cross section - DATA (PTPP(K),K= 1, 36) / - & -1.7871D+00,-1.4709D+00,-1.2813D+00,-1.1867D+00,-1.0179D+00, - & -8.8055D-01,-8.0666D-01,-7.9648D-01,-7.7560D-01,-6.5951D-01, - & -5.6450D-01,-4.7995D-01,-3.9539D-01,-3.4256D-01,-2.7894D-01, - & -2.4691D-01,-2.0439D-01,-1.1952D-01,-1.3598D-02, 6.0479D-02, - & 1.1311D-01, 1.4462D-01, 2.0784D-01, 2.6053D-01, 3.2387D-01, - & 4.4022D-01, 5.5672D-01, 6.9424D-01, 8.6348D-01, 1.2127D+00, - & 1.6678D+00, 2.3770D+00, 3.2133D+00, 3.9226D+00, 4.6425D+00, - & 5.1612D+00/ - DATA (STPP(K),K= 1, 36) / - &6.8962D+01,5.6135D+01,4.7307D+01,4.0271D+01,3.5582D+01,3.2549D+01, - &3.0480D+01,2.6617D+01,2.3858D+01,2.0410D+01,1.7927D+01,1.6549D+01, - &1.5308D+01,1.4343D+01,1.5310D+01,1.7794D+01,1.9451D+01,2.1108D+01, - &2.1661D+01,2.1386D+01,1.8490D+01,1.6144D+01,1.3386D+01,1.1041D+01, - &9.3860D+00,8.4219D+00,8.8376D+00,7.8738D+00,6.4965D+00,4.7080D+00, - &3.8869D+00,3.3456D+00,2.6682D+00,2.5409D+00,2.6896D+00,2.6974D+00/ - - -C initialize cross section tables - - if(init) then - N = 36 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_KMP: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigela_kmp = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGELA_KMP: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigela_kmp = FV(1) - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIGTOT_KMP(plab) - -C----------------------------------------------------------------------- -C -C low-energy K-p total cross section -C (based on spline interpolations) -C -C (R.Engel 05/01) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - - dimension PTPP(100),STPP(100),DERIV(100,2),Z(10),FV(10),FD(10,2) - logical init - SAVE - data init /.true./ - -C K-p total cross section - DATA (PTPP(K),K= 1, 43) / - & -1.3500D+00,-1.2345D+00,-9.8216D-01,-8.2491D-01,-7.4143D-01, - & -6.1508D-01,-4.5679D-01,-3.7223D-01,-2.9802D-01,-2.6595D-01, - & -1.7037D-01,-1.0660D-01,-2.1599D-02,-2.5037D-04, 6.3445D-02, - & 8.4428D-02, 1.3703D-01, 1.5769D-01, 1.8898D-01, 2.4156D-01, - & 3.3667D-01, 3.5796D-01, 4.1106D-01, 5.1700D-01, 5.9099D-01, - & 6.5431D-01, 6.9651D-01, 7.7067D-01, 8.5538D-01, 9.6104D-01, - & 1.1303D+00, 1.3209D+00, 1.4266D+00, 1.5853D+00, 1.8075D+00, - & 1.9769D+00, 2.4743D+00, 3.0353D+00, 3.5222D+00, 4.0515D+00, - & 4.6550D+00, 5.1949D+00, 5.7455D+00/ - DATA (STPP(K),K= 1, 43) / - &9.7669D+01,8.8840D+01,7.2700D+01,5.8076D+01,4.6625D+01,4.0142D+01, - &3.5315D+01,3.4074D+01,3.5041D+01,3.7939D+01,4.0838D+01,4.3185D+01, - &4.6084D+01,4.7740D+01,4.9397D+01,4.7603D+01,4.4430D+01,3.9601D+01, - &3.5186D+01,3.1876D+01,3.0221D+01,3.1325D+01,3.2982D+01,3.3674D+01, - &3.2571D+01,3.0640D+01,2.9261D+01,2.9814D+01,2.9953D+01,2.8023D+01, - &2.6922D+01,2.6924D+01,2.5684D+01,2.4859D+01,2.4034D+01,2.3761D+01, - &2.2112D+01,2.1155D+01,2.0472D+01,2.0480D+01,2.0627D+01,2.0773D+01, - &2.1472D+01/ - - -C initialize cross section tables - - if(init) then - N = 43 - M = 0 - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,-1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_KMP: spline initialization failed: ',IERR - stop - endif - NXY_save = NXY - init = .false. - endif - -C spline interpolation - - sigtot_kmp = 0.D0 - Z(1) = log(plab) - - if((Z(1).gt.PTPP(1)).and.(Z(1).lt.PTPP(N))) then - M = 1 - NXY = NXY_save - CALL SPLIN3(PTPP,STPP,DERIV,N,100,Z,FV,FD,M,10,1) - if(IERR.ne.0) then - write(6,'(1x,a,i6)') - & ' SIGTOT_KMP: spline interpolation failed: ',IERR - return - endif - else - return - endif - - sigtot_kmp = FV(1) - - END - - -C======================================================================= - - SUBROUTINE SPLIN3(X,Y,DERIV,N,NC,Z,FVALUE,FDERIV,M,MC,IOP) - -C----------------------------------------------------------------------- -C -C CERN LIBRARY PROGRAM NO E-209. -C -C REVISED VERSION JULY 1973. -C -C CHANGED BY R.ENGEL (10/10/93) TO CONFORM WITH F77 STANDARD -C -C PURPOSE = TO COMPUTE A NATURAL SPLINE APPROXIMATION OF THIRD ORDER -C FOR A FUNCTION Y(X) GIVEN IN THE N POINTS (X(I),Y(I)) , -C I=1(1)N. -C -C PARAMETERS (IN LIST). -C -C X = AN ARRAY STORING THE INPUT ARGUMENTS.DIMENSION X(N). -C Y = AN ARRAY STORING THE INPUT FUNCTION VALUES.THE ELEMENT -C Y(I) REPRESENT THE FUNCTION VALUE Y(X) FOR X=X(I). -C DERIV = AN ARRAY USED FOR STORING THE COMPUTED DERIVATIVES OF -C THE FUNCTION Y(X).IN DERIV(I,1) AND DERIV(I,2) ARE STOR- -C ED THE FIRST-AND SECOND ORDER DERIVATIVES OF Y(X) FOR -C X=X(I) RESPECTIVELY. -C N = NUMBER OF INPUT FUNCTION VALUES. -C NC = ARRAY DERIV IS DIMENSIONED DERIV(NC,2) IN CALLING -C PROGRAM. -C Z = AN ARRAY STORING THE ARGUMENTS FOR THE INTERPOLATED -C VALUES TO BE COMPUTED. -C FVALUE = AN ARRAY STORING THE COMPUTED INTERPOLATED VALUES. -C FVALUE(J) REPRESENT THE FUNCTION VALUE FVALUE(Z) FOR -C Z=Z(J). -C FDERIV = AN ARRAY USED FOR STORING THE DERIVATIVES OF THE COM- -C PUTED INTERPOLATED VALUES.EXPLANATION AS FOR DERIV. -C M = NUMBER OF INTERPOLATED VALUES TO BE COMPUTED. -C MC = ARRAY FDERIV IS DIMENSIONED FDERIV(MC,2) IN CALLING -C PROGRAM. -C IOP = OPTION PARAMETER.FOR IOP.LE.0 THE DERIVATIVES FOR EACH -C SUB-INTERVAL IN THE SPLINE APPROXIMATION ARE COMPUTED. -C IOP=-1, THE SECOND ORDER END-POINT -C DERIVATIVES ARE COMPUTED BY -C LINEAR EXTRAPOLATION. -C IOP=0 , THE SECOND ORDER END-POINT -C DERIVATIVES ASSUMED TO BE GI- -C VEN (SEE COMMON /SPAPPR/). -C IOP=1 , COMPUTE SPLINE APPROXIMATIONS -C FOR THE ARGUMENTS GIVEN IN -C THE ARRAY Z,THE DERIVATIVES -C BEEING ASSUMED TO HAVE BEEN -C CALCULATED IN A PREVIOUS CALL -C ON THE ROUTINE. -C -C PARAMETERS (IN COMMON BLOCK / SPAPPR /). -C -C SECD1 = VALUE OF THE SECOND DERIVATIVE D2Y(X)/DX2 FOR THE INPUT -C ARGUMENT X=X(1). -C SECDN = VALUE OF THE SECOND DERIVATIVE D2Y(X)/DX2 FOR THE INPUT -C ARGUMENT X=X(N). -C NB. VALUES HAVE TO BE ASSIGNED TO SECD1 AND SECDN IN THE -C CALLING PROGRAM.IF A NATURAL SPLINE FIT IS WANTED PUT -C SECD1=SECDN=0. -C VOFINT = COMPUTED APPROXIMATION FOR THE INTEGRAL OF Y(X) TAKEN -C FROM X(1) TO X(N). -C IERR = ERROR PARAMETER.IERR=0,NO ERRORS OCCURED. -C IERR=1,THE NUMBER OF POINTS TOO SMALL -C I.E.N LESS THAN 4. -C IERR=2,THE ARGUMENTS X(I) NOT IN INCREA- -C SING ORDER. -C IERR=3,ARGUMENT TO BE USED IN INTERPOLA- -C TION ABOVE RANGE. -C IERR=4,ARGUMENT TO BE USED IN INTERPOLA- -C TION BELOW RANGE. -C NXY = N (SEE ABOVE),HAS TO BE STORED FOR ENTRIES CORRESPONDING -C TO IOP=1. -C -C********************************************************************** - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) -C - DIMENSION X(NC) , Y(NC) , DERIV(NC,2) , Z(MC) , FVALUE(MC) , - 1 FDERIV(MC,2) -C - COMMON / SPAPPR / SECD1 , SECDN , VOFINT , IERR , NXY - SAVE - DATA THIRD , SIXTH / .333333333333333D0 , .166666666666667D0 / -C -C 1000 - IF (IOP.GT.0) GO TO 1110 -C - IERR=0 -C -C CHECK IF ENOUGH DATA-POINTS ARE AVAILABLEI.E. IF N LESS THAN 4 NO -C THIRD ORDER SPLINE APPROXIMATION IS POSSIBLE. -C - IF (N.GE.4) GO TO 1010 -C - IERR=1 - GO TO 2000 -C -C START CALCULATION OF COEFFICIENTS TO BE USED IN THE SYSTEM OF EQU- -C ATIONS FOR THE SECOND ORDER DERIVATIVES OF Y(X). -C - 1010 IF (IOP.NE.-1) GO TO 1015 - SECD1=0.D0 - SECDN = 0.D0 - BET1=1.D0/(1.D0+0.5D0*(X(2)-X(1))/(X(3)-X(2))) - ALF1=BET1*(1.D0- ((X(2)-X(1))/(X(3)-X(2)))**2) - BETN=1.D0/(1.D0+0.5D0*(X(N)-X(N-1))/(X(N-1)-X(N-2))) - ALFN=BETN*(1.D0- ((X(N)-X(N-1))/(X(N-1)-X(N-2)))**2) -C - 1015 DERIV(1,2)=SECD1 - DERIV(N,2)=SECDN - DERIV(1,1)=0.D0 - DXPLUS=X(2)-X(1) -C -C CHECK IF ARGUMENTS ARE IN INCREASING ORDER.IF NOT PRINT ERROR -C MESSAGE AND STOP. -C - IF ( DXPLUS.GT.0.D0) GO TO 1020 - IN=1 - IERR=2 - GO TO 2000 -C - 1020 DYPLUS=(Y(2)-Y(1))/DXPLUS - IU=N-1 - DO 1040 I=2,IU - DXMIN =DXPLUS - DYMIN =DYPLUS - DXPLUS=X(I+1)-X(I) -C -C CHECK IF ARGUMENTS ARE IN INCREASING ORDER.IF NOT PRINT ERROR -C MESSAGE AND STOP. -C - IF (DXPLUS.GT.0.D0) GO TO 1030 -C - IN=I - IERR=2 - GO TO 2000 -C - 1030 DXINV =1.D0/(DXPLUS+DXMIN) - DYPLUS=(Y(I+1)-Y(I))/DXPLUS - DIVDIF=DXINV*(DYPLUS-DYMIN) - ALF =0.5D0*DXINV*DXMIN - BET =0.5D0-ALF -C - IF (I.EQ.2) DIVDIF=DIVDIF-THIRD*ALF*DERIV(1,2) - IF (I.EQ.IU) DIVDIF=DIVDIF-THIRD*BET*DERIV(N,2) - IF (I.EQ.2) ALF=0.D0 -C - IF (IOP.NE.-1) GO TO 1035 - IF (I.NE.2) GO TO 1032 - BET=BET*ALF1 - DIVDIF=DIVDIF*BET1 - GO TO 1035 - 1032 IF (I.NE.IU) GO TO 1035 - ALF=ALF*ALFN - DIVDIF=DIVDIF*BETN -C - 1035 DXINV =1.D0/(1.D0+ALF*DERIV(I-1,1)) - DERIV(I,1)=-DXINV*BET - DERIV(I,2)= DXINV*(3.D0*DIVDIF-ALF*DERIV(I-1,2)) - 1040 CONTINUE -C -C COMPUTE THE SECOND DERIVATIVES BY BACKWARDS RECURRENCE RELATION. -C THE SECOND ORDER DERIVATIVES FOR X=X(N-1) ALREADY COMPUTED. -C -C 1050 - DO 1060 I=2,IU - J=N-I - DERIV(J,2)=DERIV(J,1)*DERIV(J+1,2)+DERIV(J,2) - 1060 CONTINUE -C - IF (IOP.NE.-1) GO TO 1070 - DERIV(1,2)=((X(3)-X(1))/(X(3)-X(2)))*DERIV(2,2)-((X(2)-X(1))/(X(3) - $-X(2)))*DERIV(3,2) - DERIV(N,2)=-((X(N)-X(N-1))/(X(N-1)-X(N-2)))*DERIV(N-2,2)+((X(N)-X( - $N-2))/(X(N-1)-X(N-2)))*DERIV(N-1,2) -C -C CALCULATION OF THE SECOND ORDER DERIVATIVES FINISHED.START CAL- -C CULATION OF THE FIRST ORDER DERIVATIVES AND OF THE INTEGRAL. -C - 1070 VOFINT=0.D0 - DO 1080 I=1,IU - DXPLUS=X(I+1)-X(I) - DYPLUS=Y(I+1)-Y(I) - DIVDIF=DYPLUS/DXPLUS - DERIV(I,1)=DIVDIF-DXPLUS*(THIRD*DERIV(I,2)+SIXTH*DERIV(I+1,2)) - DXPLUS=0.5D0*DXPLUS - VOFINT=VOFINT+DXPLUS*(Y(I+1)+Y(I)-THIRD*(DERIV(I+1,2)+DERIV(I,2))* - $DXPLUS**2) - 1080 CONTINUE -C -C COMPUTE THE LAST FIRST ORDER DERIVATIVE. -C - DXPLUS=X(N)-X(N-1) - DYPLUS=Y(N)-Y(N-1) - DIVDIF=DYPLUS/DXPLUS - DERIV(N,1)=DIVDIF+DXPLUS*(SIXTH*DERIV(N-1,2)+THIRD*DERIV(N,2)) -C -C CALCULATION OF FIRST ORDER DERIVATIVES AND INTEGRAL FINISHED. -C -C SET VALUE OF N IN COMMON BLOCK / SPAPPR /. -C - NXY=N -C -C COMPUTE INTERPOLATED VALUES IF ANY. -C - 1110 IF (M.LT.1) RETURN -C - XL=X(1) - XU=X(2) - IP=3 - IL=0 -C -C 1120 - DO 1160 J=1,M - ARG=Z(J) - IF (ARG.GT.XU) GO TO 1170 - IF (ARG.LT.XL) GO TO 1190 -C -C ARGUMENT IN CORRECT RANGE.CHECK IF POLYNOMIAL COEFFICIENTS HAVE -C TO BE CALCULATED. -C -C 1130 - IF (IL.GT.0) GO TO 1150 -C -C COMPUTE POLYNOMIAL COEFFICIENTS. -C - 1140 II=IP-2 - A0=Y(II) - A1=DERIV(II,1) - A4=DERIV(II,2) - A6=(DERIV(II+1,2)-A4)/(XU-XL) - A2=0.5D0*A4 - A3=SIXTH*A6 - A5=0.5D0*A6 - IL=1 -C -C CALCULATION OF POLYNOMIAL COEFFICIENTS FINISHED.COMPUTE VALUES. -C - 1150 ARG=ARG-XL - FVALUE(J)=((A3*ARG+A2)*ARG+A1)*ARG+A0 - FDERIV(J,1)=(A5*ARG+A4)*ARG+A1 - FDERIV(J,2)=A6*ARG+A4 -C - 1155 CONTINUE - GOTO 1160 -C -C RANGE MOVING -C -C -C ARGUMENT ABOVE PRESENT RANGE.SHIFT RANGE UPWARDS. -C - 1170 IF(IP.GT.NXY) GO TO 1185 - IPP=IP - DO 1180 I=IPP,NXY - IF (ARG.GT.X(I)) GO TO 1180 - XL=X(I-1) - XU=X(I) - IP=I+1 - IL=0 - GO TO 1140 -C - 1180 CONTINUE -C -C ARGUMENT OUT OF RANGE,I.E. ARG GREATER THAN X(N). -C - 1185 IERR=3 - IP=NXY+1 - GO TO 2010 -C -C ARGUMENT BELOW PRESENT RANGE.SHIFT DOWNWARDS. -C - 1190 IPP=IP - DO 1200 I=1,IPP - II=IP-I-2 - IF (II.EQ.0) GO TO 1210 - IF (ARG.LT.X(II)) GO TO 1200 - XL=X(II) - XU=X(II+1) - IP=II+2 - IL=0 - GO TO 1140 -C - 1200 CONTINUE -C -C ARGUMENT OUT OF RANGE,I.E. ARG LESS THAN X(1). -C - 1210 IERR=4 - IP=3 - GO TO 2010 -C - 2010 WRITE(6,3000) IERR , ARG -C - FVALUE(J)=0.D0 - FDERIV(J,1)=0.D0 - FDERIV(J,2)=0.D0 -C - II=IP-2 - XL=X(II) - XU=X(II+1) - IL=0 - GO TO 1155 -C -C -C END OF INTERPOLATION LOOP -C - 1160 CONTINUE -C -C CALCULATION OF INTERPOLATED VALUES FINISHED. -C - RETURN -C -C PRINT ERROR MESSAGES. -C - 2000 IF (IERR.EQ.1) WRITE(6,3000) IERR - IF (IERR.EQ.2) WRITE(6,3000) IERR , X(IN) , X(IN+1) - RETURN -C - 3000 FORMAT(//5X,'*** SUBROUTINE SPLIN3 ERROR NO ',I2,' ***', - $ 2(4X,E21.14)) -C - END -C======================================================================= - - SUBROUTINE FRAG_VLNCE(IDX,LBAD) - -C----------------------------------------------------------------------- -C routine that fragments a quark - quark system \FR'14 -C -C INPUT: IDX : parton stack index of central string -C----------------------------------------------------------------------- - IMPLICIT NONE - INTEGER IDX,LBAD - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - INTEGER NW_max - PARAMETER (NW_max = 20) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) -C parameters that represent: NW: max. number of wounded nucleons, -C NS,NH: max. number of soft and hard interactions -c PARAMETER (NW_max = 20) -C The COMMON block /S_CHIST/ contains information about the -C the structure of the generated event: -C NWD = number of wounded nucleons -C NJET = total number of hard interactions -C NSOF = total number of soft interactions -C NNSOF (1:NW) = number of soft pomeron cuts in each interaction -C NNJET (1:NW) = number of minijets produced in each interaction -C JDIF(1:NW) = diffraction code -C 0 : non-diff, -C 1 : beam-diff -C 2 : target-diff -C 3 : double-diff - INTEGER NNSOF,NNJET,JDIF,NWD,NJET,NSOF - COMMON /S_CHIST/ NNSOF(NW_max),NNJET(NW_max), - & JDIF(NW_max),NWD,NJET,NSOF - - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - DOUBLE PRECISION PST,PBM,PTG,PSTH,P1,P2,GABE,EE, - & PAR1_def,PAR24_def,PX1,PY1,PX2,PY2,GAM,BET,P1TOT,P2TOT, - & SIF,COF,COD,SID,ANORF,PZ - DIMENSION PST(5),PBM(5),PTG(5),PSTH(5),P1(4),P2(4),GABE(4) - INTEGER LSTH,IPID,IBMST,ITGST,ISTH,IFLB,IFLT,IST,I,IFBAD,JJ, - & NOLD,II,K,J - SAVE - - LBAD = 2 - LSTH = 0 - -c references are: -c string --> bm-parton --> tg-parton (--> merged string/hadron) -c read string 4momentum from stack - CALL RD_PRTN_4VEC(IDX,PST,IPID,IBMST) - CALL RD_PRTN_4VEC(IBMST,PBM,IFLB,ITGST) - CALL RD_PRTN_4VEC(ITGST,PTG,IFLT,ISTH) - -C kinematic variables - EE = PST(5) ! string mass - - IF(NDEBUG.gt.1) WRITE(LUN,*)' FRAG_VLNCE: IDX,EE,IFLB,IFLT', - & IDX,EE,IFLB,IFLT - - IF(IDX.ne.ISTH) then -c read merged string and add hadron to final particle stack.. - CALL RD_PRTN_4VEC(ISTH,PstH,LSTH,IST) - IF(NDEBUG.gt.1) WRITE(LUN,*)' FRAG_VLNCE: found merged string', - & LSTH,(PSTH(I),I=1,5) - IF(IDX.ne.IST) then - write(lun,*) ' FRAG_VLNCE: reference loop broken!' , IDX - CALL SIB_REJECT('FRAG_VLNCE ') - endif - NP = NP + 1 - DO I=1,4 - P(NP,I) = PST(I) - ENDDO - P(NP,5) = AM(IABS(LSTH)) - LLIST(NP) = LSTH - NPORIG(NP) = IPFLAG*2+KINT - niorig(NP) = iiflag - LBAD = 0 - RETURN - ENDIF - -c baryon production setup - PAR1_def = PAR(1) - if( NSOF+NJET.gt.0) then - PAR(1)= PAR(15) - else - PAR(1)= PAR(14) - endif - -c charm fractions in different parameterizations - PAR24_def = PAR(24) - IF(IPAR(15).gt.2.and.IPAR(15).ne.7.and.IPAR(15).lt.12)THEN - PAR(24) = PAR(25)*EXP(-PAR(26)/EE) - ENDIF - - IF(NDEBUG.gt.1) - & WRITE(LUN,*)' FRAG_VLNCE: parameters (CHM,DIQ,STR,VEC,POP)', - & PAR(24),PAR(1),PAR(2),PAR(5),PAR(8) - - NOLD=NP - IF(IPAR(38).eq.1.or.IPAR(38).eq.2)THEN -C... rotate strings instead of attaching all pt to string end hadrons - PX1 = 0.D0 - PY1 = 0.D0 - PX2 = 0.D0 - PY2 = 0.D0 - ELSEIF(IPAR(38).eq.0.or.IPAR(38).eq.3)THEN -c assign pt to hadrons at string end (old model) - PX1 = PBM(1) - PY1 = PBM(2) - PX2 = PTG(1) - PY2 = PTG(2) - GAM = PST(4)/EE - BET = PST(3)/PST(4) - ENDIF - -C... fragment strings in string restframe - CALL STRING_FRAG_4FLV - & (EE,IFLB,IFLT,PX1,PY1,PX2,PY2,IFBAD,1) - - PAR(24) = PAR24_def - PAR(1) = PAR1_def - KINT= 0 - IF (IFBAD .EQ. 1) then - if(Ndebug.gt.1) - & WRITE(LUN,*)' STRING_FRAG: rejection (Ncall):',Ncall - RETURN - ENDIF - -C... rotate and boost string - IF(IPAR(38).eq.1.or.IPAR(38).eq.2)THEN -C boost quark momentum to string center-of-mass -c to calculate rotation angles in string center-of-mass - do jj=1,3 - gabe(jj) = PST(jj)/PST(5) - enddo - GABE(4) = PST(4)/PST(5) - CALL SIB_ALTRA(gabe(4),-gabe(1),-gabe(2),-gabe(3), - & PBM(1),pbm(2),pbm(3),pbm(4), - & P1TOT,p1(1),p1(2),p1(3),p1(4)) - CALL SIB_ALTRA(gabe(4),-gabe(1),-gabe(2),-gabe(3), - & PTG(1),pTG(2),ptg(3),ptg(4), - & P2TOT,p2(1),p2(2),p2(3),p2(4)) - -c should be back-to-back... - IF(ndebug.gt.1)THEN - write(lun,*) - & ' FRAG_VLNCE: string c.m. momentum, parton 1 (Pabs,P(i)):' , - & P1TOT, (P1(j),j=1,4) - write(lun,*) - & ' FRAG_VLNCE: string c.m. momentum, parton 2 (Pabs,P(i)):' , - & P2TOT, (P2(j),j=1,4) - write(lun,*) ' partons should be back to back...' - ENDIF -c rotation factors - COD= P1(3)/P1TOT - SID= DSQRT(P1(1)**2+P1(2)**2)/P1TOT - COF=1.D0 - SIF=0.D0 - IF(P1TOT*SID.GT.EPS5) THEN - COF=P1(1)/(SID*P1TOT) - SIF=P1(2)/(SID*P1TOT) - ANORF=DSQRT(COF*COF+SIF*SIF) - COF=COF/ANORF - SIF=SIF/ANORF - ENDIF -c rotate string final state - DO K=NOLD+1,NP - CALL SIB_TRANI(P(K,1),P(k,2),P(k,3),cod,sid,cof,sif - & ,P2(1),P2(2),P2(3)) - do ii=1,3 - P(K,ii)=P2(ii) - enddo - ENDDO -c boost to hadron - hadron center-of-mass - DO K=NOLD+1,NP - CALL SIB_ALTRA(gabe(4),gabe(1),gabe(2), - & gabe(3),P(k,1),p(k,2),p(k,3),p(k,4), - & P1TOT,p2(1),p2(2),p2(3),p2(4)) - do ii=1,4 - P(K,ii)=P2(ii) - enddo - ENDDO - ELSEIF(IPAR(38).eq.0.or.IPAR(38).eq.3)THEN -C... boost string - DO K=NOLD+1,NP - PZ = P(K,3) - P(K,3) = GAM*(PZ+BET*P(K,4)) - P(K,4) = GAM*(P(K,4)+BET*PZ) - ENDDO - ENDIF - LBAD = 0 - END - - -C----------------------------------------------------------------------- -C fragmentation functions in SIBYLL \FR'14 -C======================================================================= - - FUNCTION ZDIS_4FLV (IFL1,IFL2, XMT2) - -C----------------------------------------------------------------------- -C...z distribution -c includes charmed fragmentation (Peterson/SLAC) - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - DOUBLE PRECISION FAin, FB0in - COMMON /S_CZDIS/ FAin, FB0in - - DOUBLE PRECISION FAs1, fAs2 - COMMON /S_CZDISs/ FAs1, fAs2 - DOUBLE PRECISION ZDMAX, EPSI - COMMON /S_CZDISc/ ZDMAX, EPSI - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - - IAFL1 = IABS(mod(IFL1,100)) - IAFL2 = IABS(mod(IFL2,100)) -c SLAC-Peterson fragmentation function for charm - IF ((IAFL1/10.eq.4.or.mod(IAFL1,10).eq.4) - + .or.(IAFL2/10.eq.4.or.mod(IAFL2,10).eq.4))THEN - 90 z = max(S_RNDM(0),1.e-8) - tcp = zmefn(z,epsi)/zdmax - if (tcp .lt. S_RNDM(1)) goto 90 - zdis_4flv = z - else -c original lund function, non charm - fa=fain ! lund parameter a - fb0=fb0in ! lund parameter b -c parameters for hard scattering (gluon) fragmentation - IF(IPAR(6).eq.2)THEN - fa= PAR(18) - fb0= PAR(19) - ENDIF -c special parameters for strange fragmentation -c only active for baryon beams (or K0,K0bar) -C DH correction may 10-1996 - if (iabs(kb).ge.13) then ! baryons only - if (iafl2.eq.3) fa=fain+fas2 - if (iafl1.eq.3) fa=fain+fas1 - endif -c special parameters for baryon fragmentation -c similar to pythia - IF((IAFL1+IAFL2).gt.10.and. - & (IPAR(36).eq.1.or.IPAR(20).eq.3))then - fa = fain + PAR(45) - fb0 = PAR(60) - ENDIF - FB = FB0*XMT2 - IF(FA.GT.0.01D0.AND.ABS(FA-1.D0)/FB.LE.0.01D0) - + ZMAX=FB/(1.D0+FB)+(1.D0-FA)*FB**2/(1.D0+FB)**3 - IF(FA.GT.0.01D0.AND.ABS(FA-1.D0)/FB.GT.0.01D0) - + ZMAX=0.5D0*(1.D0+FB-DSQRT((1.D0-FB)**2+4.D0*FA*FB))/(1.D0-FA) - IF(ZMAX.LT.0.1D0) ZDIV=2.75D0*ZMAX - IF(ZMAX.GT.0.85D0) - + ZDIV=ZMAX-0.6D0/FB**2+(FA/FB)*dLOG((0.01D0+FA)/FB) -C... Choice if z, preweighted for peaks at low or high z - 100 Z=S_RNDM(0) - IDIV=1 - FPRE=1.D0 - IF (ZMAX.LT.0.1D0) THEN - IF(1.D0.LT.S_RNDM(1)*(1.D0-dLOG(ZDIV))) IDIV=2 - IF (IDIV.EQ.1) Z=ZDIV*Z - IF (IDIV.EQ.2) Z=ZDIV**Z - IF (IDIV.EQ.2) FPRE=ZDIV/Z - ELSEIF (ZMAX.GT.0.85D0) THEN - IF(1.D0.LT.S_RNDM(2)*(FB*(1.D0-ZDIV)+1.D0)) IDIV=2 - IF (IDIV.EQ.1) Z=ZDIV+dLOG(Z)/FB - IF (IDIV.EQ.1) FPRE=dEXP(FB*(Z-ZDIV)) - IF (IDIV.EQ.2) Z=ZDIV+Z*(1.D0-ZDIV) - ENDIF -C...weighting according to the correct formula - IF (Z.LE.FB/(50.D0+FB).OR.Z.GE.1.D0) GOTO 100 - FVAL=(ZMAX/Z)*dEXP(FB*(1.D0/ZMAX-1.D0/Z)) - IF(FA.GT.0.01D0) FVAL=((1.D0-Z)/(1.D0-ZMAX))**FA*FVAL - IF(FVAL.LT.S_RNDM(3)*FPRE) GOTO 100 - ZDIS_4FLV=Z - - ENDIF - - RETURN - END -C======================================================================= - - SUBROUTINE ZNORMAL - -C----------------------------------------------------------------------- -C... normalisation for Peterson/SLAC frag. func - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - DOUBLE PRECISION ZDMAX, EPSI - COMMON /S_CZDISc/ ZDMAX, EPSI - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - SAVE - -c get the maximum zmefn value first for normalisation - jmax = 1000 - zdmax = 1.D-10 - - DO j = 1, jmax - z = dble(j)/dble(jmax+1) - zdmax = max(zdmax, zmefn(z,epsi)) - enddo - if (ndebug .gt. 0) WRITE(LUN,*)' ZDMAX,EPS:',zdmax, epsi - RETURN - END -C======================================================================= - - FUNCTION ZMEFN(z,eps) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - SAVE - -C... Peterson/SLAC frag. func -cdh zmefn = (z*(1.D0-z**(-1)-eps/(1.D0-z))**2)**(-1) - zmefn = 1.D0/(z*(1.D0-z**(-1)-eps/(1.D0-z))**2) - RETURN - END - -C======================================================================= - - FUNCTION ZBLEAD (LB) - -C----------------------------------------------------------------------- -C...fragmentation function for leading baryon -C. simple form: f(z) = a + x**b -C INPUT : LB = particle code. -C.................................................. - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - DOUBLE PRECISION CLEAD, FLEAD - COMMON /S_CZLEAD/ CLEAD, FLEAD - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - -c ncall = ncall + 1 -c print*,'leading baryon frag. called:',lb,ncall - -C... leading z lower bound -c used for protons only in Sib21 (if ..) -c used for all baryons alike in Sib22 (else..) - ZLMIN = PAR(55) - ZSMR = PAR(56) - - IF(IPAR(30).ne.0)THEN -C Sibyll 2.1 hard fragmentation function - - IC = ICHP(LB)*ISIGN(1,LB) - - if (LB.ge.34.and.LB.le.39) then ! Lambda's and Sigma's - IF(IPAR(35).eq.1)then - zblead=zdisn(1) ! zblead**2 !soft - ELSE - 665 ZBLEAD = S_RNDM(LB) - if (zblead.le.0.01D0) goto 665 - ENDIF -c zblead=zdisn(1) ! blead**2 ! soft - elseif (ic.eq.0) then - if(IPAR(30).eq.2)then - 555 zblead = S_RNDM(1) - if (zblead .le. 0.01D0) goto 555 - else - zblead=zdisn(1) ! blead**2 !soft - endif - elseif (ic.eq.1) then ! fast protons only - if (abs(lb).eq.13) then - 661 IF (S_RNDM(2) .LT. CLEAD) THEN - 666 ZBLEAD = S_RNDM(0) - if (zblead.le.0.01D0) goto 666 - ELSE - zblead=1.D0-zdisn(1) ! zblead**2 !hard - ENDIF -c truncated zblead to fix antiprotons - if (zblead.le.ZLMIN+ZSMR*(1.D0-2.D0*S_RNDM(LB))) goto 661 - else - zblead=zdisn(1) ! zblead**2 !hard - endif - else if (ic.eq.2) then ! fast delta++ - zblead=1.D0- zdisn(1) ! (zblead)**.3333 - else - zblead=S_RNDM(0) ! zdisn(1) !hard - endif - RETURN - ELSE -C... Sein's flat baryon fragmentation function a.k.a. Sibyll 2.2 - 999 zblead = S_RNDM(0) - if (zblead .le. 0.01D0) goto 999 -c truncated zblead to fix instring pair production (antiprotons) - if (zblead.le.ZLMIN+ZSMR*(1.D0-2.D0*S_RNDM(LB))) goto 999 - RETURN - ENDIF - END - -C======================================================================= - - FUNCTION ZDISN (n) - -C----------------------------------------------------------------------- -C...Generate (1-x)**n - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - SAVE - -666 rmin=1.1D0 - do i=1,n+1 - R1=S_RNDM(i) - IF (R1.LE.RMIN) RMIN=R1 - ENDDO - ZDISn=RMIN - if (zdisn.le.0.01D0) goto 666 - if (zdisn.ge.0.99D0) goto 666 - END -C======================================================================= - - SUBROUTINE SIB_SIG(Jint,SIB_SQS,SIB_PTmin,SIB_SIG_tot, - & SIB_SIG_ine,SIB_diff,SIB_diff2,SIB_B_el,SIB_PJET) - -C----------------------------------------------------------------------- -C -C...SIBYLL 2.1 cross sections -C -C input parameter: SIB_SQS c.m.s. energy (GeV) -C Jint 1 p-p cross sections -C 2 pi-p cross sections -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - DOUBLE PRECISION SIB_PJET(0:NS_max,0:NH_max) - DOUBLE PRECISION SIB_SQS,SIB_PTmin, - & SIB_SIG_ine,SIB_SIG_tot,SIB_diff(3),SIB_diff2(3,2),SIB_B_el - - - COMMON /SIGMAS/SQS,SIGTOT,SIGEL,SIGINE, - & SIGSD1(2),SIGSD2(2),SIGDD(2), - & SLOPE,SLOPEc,RHO,PROB(0:NS_max,0:NH_max),SIGSUM - - - COMMON /PROFILE/XNUS2,XMUS2,XNUSPI2, - & XNUH2,XMUH2,XNUHPI2, - & ENHPP,ENHPIP,al1,be1,al2,be2 - - COMMON /S_CHDCNV/ABR(2,400),ABP(2,400),ABH(2,400),DB,NB - - DIMENSION XI(50) - - DIMENSION SIG_BRN(3) - DIMENSION SIG_dif_1(2),SIG_dif_2(2),SIG_dd(2) - - DIMENSION IHAR(2) - - PARAMETER ( NPARFIT = 22 ) - DOUBLE PRECISION PARS - COMMON /XSCTN_FIT/ PARS( 50 , 2 ) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - COMMON /QCD_XSCTN/SIGQCD(61,2),INIT - DOUBLE PRECISION SIGQCD - SAVE - DATA INIT /0/ - DATA (SIGQCD(K,1),K= 1, 61) / - &8.4663D-02,1.8246D-01,3.3880D-01,5.6845D-01,8.8686D-01,1.3116D+00, - &1.8626D+00,2.5645D+00,3.4445D+00,4.5343D+00,5.8715D+00,7.4962D+00, - &9.4579D+00,1.1811D+01,1.4620D+01,1.7955D+01,2.1890D+01,2.6522D+01, - &3.1952D+01,3.8303D+01,4.5704D+01,5.4307D+01,6.4284D+01,7.5818D+01, - &8.9121D+01,1.0447D+02,1.2213D+02,1.4240D+02,1.6562D+02,1.9221D+02, - &2.2260D+02,2.5733D+02,2.9694D+02,3.4207D+02,3.9348D+02,4.5194D+02, - &5.1838D+02,5.9376D+02,6.7921D+02,7.7609D+02,8.8578D+02,1.0099D+03, - &1.1504D+03,1.3090D+03,1.4882D+03,1.6903D+03,1.9183D+03,2.1754D+03, - &2.4650D+03,2.7912D+03,3.1582D+03,3.5707D+03,4.0341D+03,4.5538D+03, - &5.1360D+03,5.7883D+03,6.5193D+03,7.3358D+03,8.2428D+03,9.2498D+03, - &1.0369D+04/ - DATA (SIGQCD(K,2),K= 1, 61) / - &1.5665D-01,2.8800D-01,4.7863D-01,7.4235D-01,1.0949D+00,1.5547D+00, - &2.1433D+00,2.8859D+00,3.8118D+00,4.9547D+00,6.3534D+00,8.0525D+00, - &1.0103D+01,1.2563D+01,1.5498D+01,1.8986D+01,2.3111D+01,2.7971D+01, - &3.3678D+01,4.0358D+01,4.8154D+01,5.7228D+01,6.7762D+01,7.9965D+01, - &9.4071D+01,1.1034D+02,1.2909D+02,1.5063D+02,1.7536D+02,2.0370D+02, - &2.3613D+02,2.7321D+02,3.1553D+02,3.6379D+02,4.1875D+02,4.8129D+02, - &5.5238D+02,6.3311D+02,7.2470D+02,8.2854D+02,9.4614D+02,1.0792D+03, - &1.2298D+03,1.3999D+03,1.5920D+03,1.8089D+03,2.0534D+03,2.3291D+03, - &2.6396D+03,2.9892D+03,3.3825D+03,3.8248D+03,4.3219D+03,4.8803D+03, - &5.5072D+03,6.2109D+03,7.0001D+03,7.8849D+03,8.8764D+03,9.9871D+03, - &1.1231D+04/ - - - IF(INIT.EQ.0) THEN -* CALL HAR_INI - CALL FACT_INI - IHAR(1) = 0 - IHAR(2) = 0 - INIT = 1 - ENDIF - - ECM = SIB_SQS - - IF(JINT.EQ.1) THEN -c K = 1 , proton - DO K=1,NPARFIT - XI(K) = PARS(K,1) - ENDDO - - ELSE IF(JINT.EQ.2) THEN -c K = 2 , pion - DO K=1,NPARFIT - XI(K) = PARS(K,2) - ENDDO - - ENDIF - - XNUS2 = XI(12) - XMUS2 = XI(13) - XNUSPI2 = XI(14) - - XNUH2 = XI(15) - XMUH2 = XI(16) - XNUHPI2 = XI(17) - - CALL HAD_CONV(IABS(JINT)) - - PTCUT = XI(10)+XI(21)*dEXP(XI(22)*DSQRT(2.D0*dLOG(ECM))) - INDX = abs(JINT) - IHAR(INDX) = IHAR(INDX)+1 - SIGHAR = SIGQCD(IHAR(INDX),INDX) - - S = ECM**2 - - BREG = ABS(XI(18)) + XI(19)*dLOG(S) - BPOM = ABS(XI(12)) + XI(13)*dLOG(S) - IK = ABS(JINT) - DO JB=1,NB - B = DB*DBLE(JB-1) - ABR(IK,JB) = 2.D0/(8.D0*PI*BREG)*dEXP(-B**2/(4.D0*BREG)) - ABP(IK,JB) = 2.D0/(8.D0*PI*BPOM)*dEXP(-B**2/(4.D0*BPOM)) - ENDDO - -C reggeon - SIGSR = ABS(XI(2))*S**(-ABS(XI(4))) - SIG_BRN(1) = SIGSR/CMBARN -C pomeron (soft part) - SIGSP = ABS(XI(1))*S**ABS(XI(3)) - SIG_BRN(2) = SIGSP/CMBARN -C pomeron (hard part) - SIG_BRN(3) = SIGHAR/CMBARN - -C 2x2 channel low-mass model and separate high-mass diffraction - - al1 = XI(5) - be1 = XI(6) - al2 = al1 - be2 = be1 - EnhPP = XI(9) - EnhPiP = EnhPP - - CALL SIG_JET_3 (SIG_brn,JINT,SIG_tot,SIG_ela,SIG_ine,SIG_sum, - & SIG_dif_1,SIG_dif_2,SIG_dd,B_el,PROB) - - SIGTOT = SIG_tot*CMBARN - SIGINE = SIG_ine*CMBARN - SIGSUM = SIG_sum*CMBARN - SIGELc = SIGTOT-SIGINE - SIGEL = SIG_ela*CMBARN - SIGSD1(1) = SIG_dif_1(1)*CMBARN - SIGSD1(2) = SIG_dif_1(2)*CMBARN - SIGSD2(1) = SIG_dif_2(1)*CMBARN - SIGSD2(2) = SIG_dif_2(2)*CMBARN - SIGDD(1) = SIG_dd(1)*CMBARN - SIGDD(2) = SIG_dd(2)*CMBARN - SLOPE = B_EL - SLOPEc = SIG_tot**2/(16.D0*PI*SIG_ela) - - DE = ABS(SIGEL+SIGINE-SIGTOT)/SIGTOT - IF(DE.GT.0.01D0) THEN - print *,'SIBSIG: Ecm: ',ECM - print *,' SIGTOT: ',SIGTOT - print *,' SIGEL1/2: ',SIGEL,SIGELc - print *,' SLOPE1/2: ',SLOPE,SLOPEc - print *,' SIGDIF 1: ',SIGSD1 - print *,' SIGDIF 2: ',SIGSD2 - print *,' SIGDDIF: ',SIGDD - print *,' SUM-SIGTOT: ',SIGEL+SIGINE-SIGTOT - ENDIF - -C SIBYLL interface to single precision - - SIB_PTmin = PTCUT - SIB_SIG_tot = SIGTOT - SIB_SIG_ine = SIGINE - SIB_diff(1) = SIGSD1(1)+SIGSD1(2) - SIB_diff(2) = SIGSD2(1)+SIGSD2(2) - SIB_diff(3) = SIGDD(1)+SIGDD(2) - SIB_B_el = SLOPE - DO I=0,NS_max - DO K=0,NH_max - SIB_PJET(I,K) = PROB(I,K) - ENDDO - ENDDO -c full diff. cross section -c ( ( b.single , t.single , double ) , ( low mass , high mass ) ) - SIB_diff2(1,1) = SIGSD1(1) - SIB_diff2(1,2) = SIGSD1(2) - SIB_diff2(2,1) = SIGSD2(1) - SIB_diff2(2,2) = SIGSD2(2) - SIB_diff2(3,1) = SIGDD(1) - SIB_diff2(3,2) = SIGDD(2) - END - -C======================================================================= - - SUBROUTINE SIG_JET_3 (SIG_brn, JINT, SIG_TOT, SIG_ELA, - & SIG_INE, SIG_sum, SIG_DIF1, SIG_DIF2, SIG_DD, B_EL, P_int) - -C----------------------------------------------------------------------- -C -C...This subroutine receives in INPUT: -C. SIG_brn (GeV-2) Born graph cross sections -C. JINT (1 = pp interaction) (2 pi-p interaction) -C. neg. value: without calculation of interaction probabilities -C. -C. and returns as output: -C. SIG_??? , B_el -C. and P_int(0:NS_max,0:NH_max) interaction probabilities -C -C two x two -channel approximation for diffraction -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) - - DIMENSION SIG_brn(3) - PARAMETER (NS_max = 20, NH_max = 80) - - COMMON /S_CFACT/ FACT(0:NH_max), CO_BIN(0:NH_max,0:NH_max) - COMMON /S_CHDCNV/ABR(2,400),ABP(2,400),ABH(2,400),DB,NB - - COMMON /PROFILE/XNUS2,XMUS2,XNUSPI2, - & XNUH2,XMUH2,XNUHPI2, - & EnhPP,EnhPiP,al1,be1,al2,be2 - - DIMENSION SIG_DIF1(2),SIG_DIF2(2),SIG_DD(2), - & P_int(0:NS_max,0:NH_max) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - DOUBLE PRECISION EPS100 - SAVE - DATA EPS100 /1.D-100/ - - DO J=0,NH_max - DO I=0,NS_max - P_int(I,J) = 0.D0 - ENDDO - ENDDO - - ga1 = dsqrt(al1*al1+be1*be1) - ga2 = dsqrt(al2*al2+be2*be2) - - fe_a_1 = (1.D0+al1/ga1)/2.D0 - fe_a_2 = (1.D0-al1/ga1)/2.D0 - fd_a_1 = sqrt(1.D0-(al1/ga1)**2)/2.D0 - fd_a_2 = -fd_a_1 - - fe_b_1 = (1.D0+al2/ga2)/2.D0 - fe_b_2 = (1.D0-al2/ga2)/2.D0 - fd_b_1 = dsqrt(1.D0-(al2/ga2)**2)/2.D0 - fd_b_2 = -fd_b_1 - - fe_11 = fe_a_1*fe_b_1 - fe_22 = fe_a_2*fe_b_2 - fe_12 = fe_a_1*fe_b_2 - fe_21 = fe_a_2*fe_b_1 - - fd_a_11 = fd_a_1*fe_b_1 - fd_a_22 = fd_a_2*fe_b_2 - fd_a_12 = fd_a_1*fe_b_2 - fd_a_21 = fd_a_2*fe_b_1 - - fd_b_11 = fe_a_1*fd_b_1 - fd_b_22 = fe_a_2*fd_b_2 - fd_b_12 = fe_a_1*fd_b_2 - fd_b_21 = fe_a_2*fd_b_1 - - fdd_11 = fd_a_1*fd_b_1 - fdd_22 = fd_a_2*fd_b_2 - fdd_12 = fd_a_1*fd_b_2 - fdd_21 = fd_a_2*fd_b_1 - - - sum_abs = 0.D0 - sum_tot = 0.D0 - sum_ela = 0.D0 - sum_sd_a = 0.D0 - sum_sd_b = 0.D0 - sum_dd = 0.D0 - sum_B = 0.D0 - - IK = ABS(JINT) - if(JINT.GT.0) then - I0MAX = NS_max - J0MAX = NH_max - ELSE - I0MAX = 1 - J0MAX = 1 - ENDIF - SIG_REG = SIG_BRN(1) - SIG_POM = SIG_BRN(2) - SIG_HAR = SIG_BRN(3) - - DO JB=1,NB - - B = DB*DBLE(JB-1) - - ABREG = ABR(IK,JB) - ABPOM = ABP(IK,JB) - ABHAR = ABH(IK,JB) - - chi2_soft = ABREG*SIG_REG+ABPOM*SIG_POM - chi2_soft_11 = (1.D0-al1+ga1)*(1.D0-al2+ga2)*chi2_soft - chi2_soft_22 = (1.D0-al1-ga1)*(1.D0-al2-ga2)*chi2_soft - chi2_soft_12 = (1.D0-al1+ga1)*(1.D0-al2-ga2)*chi2_soft - chi2_soft_21 = (1.D0-al1-ga1)*(1.D0-al2+ga2)*chi2_soft - - chi2_hard = ABHAR*SIG_HAR - chi2_hard_11 = (1.D0-al1+ga1)*(1.D0-al2+ga2)*chi2_hard - chi2_hard_22 = (1.D0-al1-ga1)*(1.D0-al2-ga2)*chi2_hard - chi2_hard_12 = (1.D0-al1+ga1)*(1.D0-al2-ga2)*chi2_hard - chi2_hard_21 = (1.D0-al1-ga1)*(1.D0-al2+ga2)*chi2_hard - - ef_11 = max(-0.5D0*(chi2_soft_11+chi2_hard_11),log(EPS100)) - ef_22 = max(-0.5D0*(chi2_soft_22+chi2_hard_22),log(EPS100)) - ef_12 = max(-0.5D0*(chi2_soft_12+chi2_hard_12),log(EPS100)) - ef_21 = max(-0.5D0*(chi2_soft_21+chi2_hard_21),log(EPS100)) - - ef_11 = dexp(ef_11) - ef_22 = dexp(ef_22) - ef_12 = dexp(ef_12) - ef_21 = dexp(ef_21) - - esf_11 = max(ef_11,EPS100)**2 - esf_22 = max(ef_22,EPS100)**2 - esf_12 = max(ef_12,EPS100)**2 - esf_21 = max(ef_21,EPS100)**2 - - F_ine = B*(1.D0 - fe_11*esf_11 - fe_12*esf_12 - & - fe_21*esf_21 - fe_22*esf_22) - F_tot = 1.D0 - fe_11*ef_11 - fe_12*ef_12 - & - fe_21*ef_21 - fe_22*ef_22 - F_ela = B*F_tot**2 - F_tot = B*F_tot - - F_sd_a = B*(fd_a_11*ef_11 + fd_a_12*ef_12 - & + fd_a_21*ef_21 + fd_a_22*ef_22)**2 - F_sd_b = B*(fd_b_11*ef_11 + fd_b_12*ef_12 - & + fd_b_21*ef_21 + fd_b_22*ef_22)**2 - F_dd = B*(fdd_11*ef_11 + fdd_12*ef_12 - & + fdd_21*ef_21 + fdd_22*ef_22)**2 - - sum_abs = sum_abs+F_ine - sum_tot = sum_tot+F_tot - sum_ela = sum_ela+F_ela - - sum_sd_a = sum_sd_a+F_sd_a - sum_sd_b = sum_sd_b+F_sd_b - sum_dd = sum_dd +F_dd - - sum_B = sum_b+B**2*F_tot - - fac_11 = B*esf_11 - fac_22 = B*esf_22 - fac_12 = B*esf_12 - fac_21 = B*esf_21 - soft_rec_11 = 1.D0/chi2_soft_11 - soft_rec_22 = 1.D0/chi2_soft_22 - soft_rec_12 = 1.D0/chi2_soft_12 - soft_rec_21 = 1.D0/chi2_soft_21 - chi2_hard_11 = max(chi2_hard_11,EPS100) - chi2_hard_22 = max(chi2_hard_22,EPS100) - chi2_hard_12 = max(chi2_hard_12,EPS100) - chi2_hard_21 = max(chi2_hard_21,EPS100) - DO I=0,I0MAX - soft_rec_11 = max(soft_rec_11*chi2_soft_11,EPS100) - soft_rec_22 = max(soft_rec_22*chi2_soft_22,EPS100) - soft_rec_12 = max(soft_rec_12*chi2_soft_12,EPS100) - soft_rec_21 = max(soft_rec_21*chi2_soft_21,EPS100) - hard_rec_11 = max(1.D0/chi2_hard_11,EPS100) - hard_rec_22 = max(1.D0/chi2_hard_22,EPS100) - hard_rec_12 = max(1.D0/chi2_hard_12,EPS100) - hard_rec_21 = max(1.D0/chi2_hard_21,EPS100) - DO J=0,J0MAX - hard_rec_11 = max(hard_rec_11*chi2_hard_11,EPS100) - hard_rec_22 = max(hard_rec_22*chi2_hard_22,EPS100) - hard_rec_12 = max(hard_rec_12*chi2_hard_12,EPS100) - hard_rec_21 = max(hard_rec_21*chi2_hard_21,EPS100) - P_int(I,J) = P_int(I,J) - & + fe_11*soft_rec_11*hard_rec_11*fac_11 - & + fe_22*soft_rec_22*hard_rec_22*fac_22 - & + fe_12*soft_rec_12*hard_rec_12*fac_12 - & + fe_21*soft_rec_21*hard_rec_21*fac_21 - ENDDO - ENDDO - - ENDDO - - SIG_abs = SUM_abs*TWOPI*DB - SIG_tot = SUM_tot*4.D0*PI*DB - SIG_ela = SUM_ela*TWOPI*DB - SIG_dif1(1) = SUM_sd_a*TWOPI*DB - SIG_dif2(1) = SUM_sd_b*TWOPI*DB - SIG_dd(1) = SUM_dd*TWOPI*DB - SIG_ine = SIG_abs + SIG_dif1(1) + SIG_dif2(1) + SIG_dd(1) - B_EL = sum_B/SUM_tot/2.D0 - - SA = 0.D0 - P_int(0,0) = 0.D0 - DO I=0,I0MAX - DO J=0,J0MAX - fac = FACT(I)*FACT(J) - P_int(I,J) = P_int(I,J)/fac - SA = SA + P_int(I,J) - ENDDO - ENDDO - - SIG_hmsd = EnhPP*(P_int(1,0)+P_int(0,1))*TWOPI*DB - SIG_hmdd = be1**2*SIG_hmsd + be2**2*SIG_hmsd - & + EnhPP**2*P_int(1,1)*TWOPI*DB - - SIG_dif1(2) = SIG_hmsd - SIG_dif2(2) = SIG_hmsd - SIG_dd(2) = SIG_hmdd - - SIG_sum = SA*TWOPI*DB - - DO I=0,I0MAX - DO J=0,J0MAX - P_int(I,J) = P_int(I,J)/SA - ENDDO - ENDDO - - END - -C======================================================================= - - SUBROUTINE HAD_CONV(JINT) - -C----------------------------------------------------------------------- -C -C...Convolution of hadrons profile -C. [function A(b) of Durand and Pi] -C. precalculate and put in COMMON block -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) -C - COMMON /S_CHDCNV/ABR(2,400),ABP(2,400),ABH(2,400),DB,NB - - DOUBLE PRECISION NU2, MU2, NUPI2, NU, MU, NUPI - COMMON /S_CH0CNV/ NU2, MU2, NUPI2, NU, MU, NUPI - -C - COMMON /PROFILE/XNUS2,XMUS2,XNUSPI2, - & XNUH2,XMUH2,XNUHPI2, - & ENHPP,ENHPIP,al1,be1,al2,be2 - SAVE - -C...integration constants - BMAX = 50.D0 - NB = 400 - DB = BMAX/DBLE(NB) - -C soft reggeon interactions - - NU2 = XNUS2 - MU2 = XMUS2 - NUPI2 = XNUSPI2 - - NU = SQRT(NU2) - MU = SQRT(ABS(MU2)) - NUPI = SQRT(NUPI2) - - DO JB=1,NB - B = DB*DBLE(JB-1) - IF(JINT.EQ.1) THEN - ABR(JINT,JB) = A_PP(B) - ELSE - ABR(JINT,JB) = A_PIP(B) - ENDIF - ENDDO - -C soft pomeron interactions - - NU2 = XNUS2 - MU2 = XMUS2 - NUPI2 = XNUSPI2 - - NU = SQRT(NU2) - MU = SQRT(ABS(MU2)) - NUPI = SQRT(NUPI2) - - DO JB=1,NB - B = DB*DBLE(JB-1) - IF(JINT.EQ.1) THEN - ABP(JINT,JB) = A_PP(B) - ELSE - ABP(JINT,JB) = A_PIP(B) - ENDIF - ENDDO - -C hard pomeron interactions - - NU2 = XNUH2 - MU2 = XMUH2 - NUPI2 = XNUHPI2 - - NU = SQRT(NU2) - MU = SQRT(ABS(MU2)) - NUPI = SQRT(NUPI2) - - DB = BMAX/DBLE(NB) - DO JB=1,NB - B = DB*DBLE(JB-1) - IF(JINT.EQ.1) THEN - ABH(JINT,JB) = A_PP(B) - ELSE - ABH(JINT,JB) = A_PIP(B) - ENDIF - ENDDO - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION A_PP (b) - -C----------------------------------------------------------------------- -C...Convolution of parton distribution for pp interaction - IMPLICIT DOUBLE PRECISION (A-Z) -C - DOUBLE PRECISION NU2, MU2, NUPI2, NU, MU, NUPI - COMMON /S_CH0CNV/ NU2, MU2, NUPI2, NU, MU, NUPI - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - SAVE - - ETA = NU2/MU2 - - IF(ETA.LT.0.D0) THEN - - c = nu**5/(96.D0*PI) - if (b .gt. 0.0001D0) then - A_pp = c*b**3 * bessk (3, b*nu) - else - A_pp = nu**2/(12.D0*PI) - endif - - ELSE - - X = B*NU - Y = B*MU - C = NU2/(12.D0*PI)/(1.D0-ETA)**2 - IF(X.GT.0.0001D0) THEN - A_PP = C*(1.D0/8.D0*X**3*BESSK(3,X) - & -3.D0/2.D0*ETA/(1.D0-ETA)*X**2*BESSK(2,X) - & + 9.D0*ETA**2/(1.D0-ETA)**2*X*BESSK1(X) - & -24.D0*ETA**3/(1.D0-ETA)**3*(BESSK0(X)-BESSK0(Y)) - & + 3.D0*ETA**3/(1.D0-ETA)**2*Y*BESSK1(Y)) - ELSE - A_PP = C*(1.D0 /8.D0*8.D0 - & -3.D0/2.D0*ETA/(1.D0-ETA)*2.D0 - & +9.D0*ETA**2/(1.D0-ETA)**2*1.D0 - & -24.D0*ETA**3/(1.D0-ETA)**3*LOG(MU/NU) - & +3.D0*ETA**3/(1.D0-ETA)**2*1.D0) - ENDIF - - ENDIF - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION A_PIP (b) - -C----------------------------------------------------------------------- -C...Convolution of parton distribution for pip interaction -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-Z) -C - DOUBLE PRECISION NU2, MU2, NUPI2, NU, MU, NUPI - COMMON /S_CH0CNV/ NU2, MU2, NUPI2, NU, MU, NUPI - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - SAVE - - eta = nu2/nupi2 - c = nu2/(2.D0*PI) * 1.D0/(1.D0-eta) - - if (b .gt. 0.0001D0) then - b1 = b*nu - b2 = b*nupi - f1 = 0.5D0*b1 * bessk1(b1) - f2 = eta/(1.D0-eta)*(bessk0(b2)- bessk0(b1)) - A_pip = c*(f1+f2) - else - A_pip = c*(0.5D0 + eta/(1.D0-eta)*log(nu/nupi)) - endif - return - end -C -C -C----------------------------------------------------------------------- -C Bessel functions -C======================================================================= - - FUNCTION BESSK0(X) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) -C - DOUBLE PRECISION P1,P2,P3,P4,P5,P6,P7, - * Q1,Q2,Q3,Q4,Q5,Q6,Q7 - SAVE - DATA P1,P2,P3,P4,P5,P6,P7/-0.57721566D0,0.42278420D0, - * 0.23069756D0,0.3488590D-1,0.262698D-2,0.10750D-3,0.74D-5/ - DATA Q1,Q2,Q3,Q4,Q5,Q6,Q7/1.25331414D0,-0.7832358D-1, - * 0.2189568D-1,-0.1062446D-1,0.587872D-2,-0.251540D-2,0.53208D-3/ - - IF (X.LE.2.0D0) THEN - Y=X*X/4.D0 - BESSK0=(-LOG(X/2.D0)*BESSI0(X))+(P1+Y*(P2+Y*(P3+ - * Y*(P4+Y*(P5+Y*(P6+Y*P7)))))) - ELSE - Y=(2.D0/X) - BESSK0=(EXP(-X)/SQRT(X))*(Q1+Y*(Q2+Y*(Q3+ - * Y*(Q4+Y*(Q5+Y*(Q6+Y*Q7)))))) - ENDIF - RETURN - END -C -C======================================================================= - - FUNCTION BESSK1(X) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) -C - DOUBLE PRECISION P1,P2,P3,P4,P5,P6,P7, - * Q1,Q2,Q3,Q4,Q5,Q6,Q7 - SAVE - DATA P1,P2,P3,P4,P5,P6,P7/1.0D0,0.15443144D0,-0.67278579D0, - * -0.18156897D0,-0.1919402D-1,-0.110404D-2,-0.4686D-4/ - DATA Q1,Q2,Q3,Q4,Q5,Q6,Q7/1.25331414D0,0.23498619D0, - * -0.3655620D-1,0.1504268D-1,-0.780353D-2,0.325614D-2, - * -0.68245D-3/ - - IF (X.LE.2.D0) THEN - Y=X*X/4.D0 - BESSK1=(LOG(X/2.D0)*BESSI1(X))+(1.D0/X)*(P1+Y*(P2+ - * Y*(P3+Y*(P4+Y*(P5+Y*(P6+Y*P7)))))) - ELSE - Y=2.D0/X - BESSK1=(EXP(-X)/SQRT(X))*(Q1+Y*(Q2+Y*(Q3+ - * Y*(Q4+Y*(Q5+Y*(Q6+Y*Q7)))))) - ENDIF - RETURN - END -C -C======================================================================= - - FUNCTION BESSK(N,X) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) - SAVE -C - IF (N.LT.2) stop 'bad argument N in BESSK' - TOX=2.D0/X - BKM=BESSK0(X) - BK=BESSK1(X) - DO 11 J=1,N-1 - BKP=BKM+J*TOX*BK - BKM=BK - BK=BKP -11 CONTINUE - BESSK=BK - RETURN - END -C -C======================================================================= - - FUNCTION BESSI0(X) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) -C - DOUBLE PRECISION P1,P2,P3,P4,P5,P6,P7, - * Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9 - SAVE - DATA P1,P2,P3,P4,P5,P6,P7/1.0D0,3.5156229D0,3.0899424D0, - * 1.2067492D0, 0.2659732D0,0.360768D-1,0.45813D-2/ - DATA Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9/0.39894228D0,0.1328592D-1, - * 0.225319D-2,-0.157565D-2,0.916281D-2,-0.2057706D-1, - * 0.2635537D-1,-0.1647633D-1,0.392377D-2/ - - IF (ABS(X).LT.3.75D0) THEN - Y=(X/3.75D0)**2 - BESSI0=P1+Y*(P2+Y*(P3+Y*(P4+Y*(P5+Y*(P6+Y*P7))))) - ELSE - AX=ABS(X) - Y=3.75D0/AX - BESSI0=(EXP(AX)/SQRT(AX))*(Q1+Y*(Q2+Y*(Q3+Y*(Q4 - * +Y*(Q5+Y*(Q6+Y*(Q7+Y*(Q8+Y*Q9)))))))) - ENDIF - RETURN - END -C -C======================================================================= - - FUNCTION BESSI1(X) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) -C - DOUBLE PRECISION P1,P2,P3,P4,P5,P6,P7, - * Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9 - SAVE - DATA P1,P2,P3,P4,P5,P6,P7/0.5D0,0.87890594D0,0.51498869D0, - * 0.15084934D0,0.2658733D-1,0.301532D-2,0.32411D-3/ - DATA Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9/0.39894228D0,-0.3988024D-1, - * -0.362018D-2,0.163801D-2,-0.1031555D-1,0.2282967D-1, - * -0.2895312D-1,0.1787654D-1,-0.420059D-2/ - - IF (ABS(X).LT.3.75D0) THEN - Y=(X/3.75D0)**2 - BESSI1=X*(P1+Y*(P2+Y*(P3+Y*(P4+Y*(P5+Y*(P6+Y*P7)))))) - ELSE - AX=ABS(X) - Y=3.75D0/AX - BESSI1=(EXP(AX)/SQRT(AX))*(Q1+Y*(Q2+Y*(Q3+Y*(Q4+ - * Y*(Q5+Y*(Q6+Y*(Q7+Y*(Q8+Y*Q9)))))))) - ENDIF - RETURN - END - -C======================================================================= - - SUBROUTINE FACT_INI - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - COMMON /S_CFACT/ FACT(0:NH_max), CO_BIN(0:NH_max,0:NH_max) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - - FACT(0) = 1.D0 - FACT(NS_max) = 1.D0 ! avoid unused warning and keep parameter block - DO J=1,NH_max - FACT(J) = FACT(J-1)*DBLE(J) - ENDDO - DO J=0,NH_max - DO K=0,J - CO_BIN(J,K) = FACT(J)/(FACT(K)*FACT(J-K)) - ENDDO - ENDDO - - END -cC======================================================================= -c -c SUBROUTINE SAMPLE_SOFT (STR_mass_min, X1,X2,PT) -c -C----------------------------------------------------------------------- -C... Routine for the sampling the kinematical variables of sea quarks -C. according to (1-x)**b / x**2 -C. INPUT: STR_mass_min : minimal string mass ** 2 = x1 * x2 * s -C. SLOPE : large x suppression exponent -C. OUTPUT: gluon 4momenta on parton stack (GeV) /FR'14 -C----------------------------------------------------------------------- -c IMPLICIT DOUBLE PRECISION (A-H,O-Z) -c IMPLICIT INTEGER(I-N) -c -c INTEGER NW_max -c PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- -c -c EVENT INFO COMMON -c contains overall interaction properties, like -c SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target -c DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN -c INTEGER KB,IAT,KT -c COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT -c -c INTEGER NCALL, NDEBUG, LUN -c COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -c -c DOUBLE PRECISION PPT02 -c COMMON /S_CQDIS2/ PPT02(44) -c INTEGER NIPAR_max,NPAR_max -c PARAMETER (NPAR_max=200,NIPAR_max=100) -c DOUBLE PRECISION PAR -c INTEGER IPAR -c COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) -c -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- -c DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 -c COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 -c -c DOUBLE PRECISION PI,TWOPI,CMBARN -c COMMON /SIB_CST/ PI,TWOPI,CMBARN -c -c DOUBLE PRECISION FACN -c DIMENSION FACN(3:10) -c COMMON /SIB_FAC/ FACN -c SAVE -c -c SLOPE = max(1.D0,PAR(42)) -c ZSOF = 2.D0*dLOG(STR_mass_min/SQS) ! minim. mass ~ x1 * x2 -c 50 XMIN = dEXP(ZSOF) -c axmin = 1.D0/xmin -c 100 Z1 = -1.D0*dLOG(axmin-(axmin-1.D0)*S_RNDM(0)) -c x1 = dexp(z1) -c XR = dlog(1.D0-X1) - dlog(1.D0-xmin) -c if(SLOPE*XR.le.log(S_RNDM(0))) goto 100 -c -c 200 Z2 = -1.D0*dLOG(axmin-(axmin-1.D0)*S_RNDM(0)) -c X2 = dEXP(Z2) -c XR = dlog(1.D0-X2) - dlog(1.D0-dEXP(ZSOF)) -c if(SLOPE*XR.le.dlog(S_RNDM(0))) goto 200 -c -c IF(Z1+Z2.LE.ZSOF) GOTO 50 -c STR_mass2 = dsqrt(X1*X2*S)/2.D0 -c PPTT = PPT02(10) -c 150 PT = PPTT*dSQRT(-dLOG(MAX(EPS10,S_RNDM(0)))) -c IF(IPAR(3).eq.6)THEN -c XM = 0.D0 -c XM2 = XM**2 -c RNDM = MAX(EPS10,S_RNDM(IFL)) -c XMT = PPTT * dLOG(RNDM) - XM -c XMT2 = XMT**2 -c PT = dSQRT(XMT2-XM2) -c ENDIF -c IF(PT.GT.PTmin) GOTO 150 -c IF(PT.GE.STR_mass2) GOTO 150 -c END -c -cC======================================================================= -c -c SUBROUTINE SAMPLE_SOFT2 (STR_mass_min, X1,X2,PT) -c -C----------------------------------------------------------------------- -C...Routine for sampling the kinematical variables -C. that characterize a soft cut pomeron (x1,x2, pT) -C. from the differential cross section: -C. d3sigma/(dx1 dx2 dpT) -C. ~ 1/x_i**a .*. exp(-mT) -C. INPUT: STR_mass_min : minimal string mass defined by kinematic limits -C. of the string fragmentation -C. PAR: PAR(42) : exponent a -C. OUTPUT: X1, X2, PT (GeV) -C----------------------------------------------------------------------- -c IMPLICIT DOUBLE PRECISION (A-H,O-Z) -c IMPLICIT INTEGER(I-N) -c INTEGER NW_max -c PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- -c -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target -c DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN -c INTEGER KB,IAT,KT -c COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT -c -c INTEGER NCALL, NDEBUG, LUN -c COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -c -c DOUBLE PRECISION PPT02 -c COMMON /S_CQDIS2/ PPT02(44) -c INTEGER NIPAR_max,NPAR_max -c PARAMETER (NPAR_max=200,NIPAR_max=100) -c DOUBLE PRECISION PAR -c INTEGER IPAR -c COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) -c -cC-------------------------------------------------------------------- -cC SIBYLL utility common blocks containing constants \FR'14 -cC-------------------------------------------------------------------- -c DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 -c COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 -c -c DOUBLE PRECISION PI,TWOPI,CMBARN -c COMMON /SIB_CST/ PI,TWOPI,CMBARN -c -c DOUBLE PRECISION FACN -c DIMENSION FACN(3:10) -c COMMON /SIB_FAC/ FACN -c SAVE -c -c SLOPE = PAR(42) -c ZSOF = 2.D0*dLOG(STR_mass_min/SQS) ! zmin -c zsof = zsof * slope -c 100 Z1=1.D0/SLOPE*(-zsof*S_RNDM(0)+zsof) -c Z2=1.D0/SLOPE*(-zsof*S_RNDM(0)+zsof) -cc print *,'zsof,z1,z2',zsof,z1,z2 -c IF(Z1+Z2.LE.ZSOF) GOTO 100 -c X1=dEXP(Z1) -c X2=dEXP(Z2) -c STR_mass2 = sqrt(X1*X2*S)/2.D0 -c if(str_mass2.lt.0.9D0)goto 100 -c PPTT = PPT02(10) -cc print *,'ptmin,str_mass:',ptmin,str_mass2 -c 150 PT = PPTT*dSQRT(-dLOG(MAX(EPS10,S_RNDM(0)))) -c IF(IPAR(3).eq.6)THEN -c XM = 0.D0 -c XM2 = XM**2 -c RNDM = MAX(EPS10,S_RNDM(IFL)) -c XMT = PPTT * dLOG(RNDM) - XM -c XMT2 = XMT**2 -c PT = dSQRT(XMT2-XM2) -c ENDIF -c IF(PT.GT.PTmin) GOTO 150 -c IF(PT.GE.STR_mass2) GOTO 150 -c PHI = TWOPI*S_RNDM(L) -c END -cC======================================================================= -cc -c SUBROUTINE SAMPLE_SOFT3 (STR_mass_min, X1,X2,PT) -c -cC----------------------------------------------------------------------- -cC...Routine for the sampling the kinematical variables -cC. that characterize a soft cut pomeron (x1,x2, pT) -cC. from the differential cross section: -cC. d3sigma/(dx1 dx2 dpT) -cC. INPUT: L=1 incident proton, L=2 incident pi -cC. (soft strings identical for pi and p interactions) -cC. OUTPUT: X1, X2, PT (GeV) -cC----------------------------------------------------------------------- -c IMPLICIT DOUBLE PRECISION (A-H,O-Z) -c IMPLICIT INTEGER(I-N) -c INTEGER NW_max -c PARAMETER (NW_max = 20) -cC-------------------------------------------------------------------- -cC SIBYLL common blocks containing event information \FR'14 -cC-------------------------------------------------------------------- -c -cC EVENT INFO COMMON -cC contains overall interaction properties, like -cC SQS : center-of-mass energy -cC S : " " squared -cC PTmin : low pt cut of QCD cross section, -cC i.e. minimal pt of hard minijets -cC Xmin : low-x bound for PDFs, -cC i.e. minimal momentum fraction of hard partons -cC Zmin : logarithm of that -cC KB : PID of beam hadron -cC KT() : PID of target -cC IAT : mass number of target -c DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN -c INTEGER KB,IAT,KT -c COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT -c -c INTEGER NCALL, NDEBUG, LUN -c COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -c -c DOUBLE PRECISION PPT02 -c COMMON /S_CQDIS2/ PPT02(44) -c INTEGER NIPAR_max,NPAR_max -c PARAMETER (NPAR_max=200,NIPAR_max=100) -c DOUBLE PRECISION PAR -c INTEGER IPAR -c COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) -c -cC-------------------------------------------------------------------- -cC SIBYLL utility common blocks containing constants \FR'14 -cC-------------------------------------------------------------------- -c DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 -c COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 -c -c DOUBLE PRECISION PI,TWOPI,CMBARN -c COMMON /SIB_CST/ PI,TWOPI,CMBARN -c -c DOUBLE PRECISION FACN -c DIMENSION FACN(3:10) -c COMMON /SIB_FAC/ FACN -c SAVE -c -c SLOPE = max(1.D0,PAR(42)) -c ZSOF = 2.D0*dLOG(STR_mass_min/SQS) ! minim. mass ~ x1 * x2 -c 100 Z1=-ZSOF*S_RNDM(0)+ZSOF ! sample envelope 1/x -c X1 = dEXP(Z1) -cc print *,'z1,x1:',z1,x1 -c XR = dlog(1.D0-X1) - dlog(1.D0-dEXP(ZSOF)) -cc print *,'ratio:',(1.-X1)/(1.-EXP(ZSOF)),(1.-X1),1.-EXP(ZSOF) -cc print *,'log ratio:',xr,log(1.-X1),log(1.-EXP(ZSOF)) -c if(SLOPE*XR.le.dlog(S_RNDM(0))) goto 100 -c -c 200 Z2=-ZSOF*S_RNDM(0)+ZSOF ! sample envelope 1/x -c X2 = dEXP(Z2) -c XR = dlog(1.D0-X2) - dlog(1.D0-dEXP(ZSOF)) -c if(SLOPE*XR.le.dlog(S_RNDM(0))) goto 200 -cc print *,'zsof,z1,z2',zsof,z1,z2 -c IF(Z1+Z2.LE.ZSOF) GOTO 100 -c STR_mass2 = sqrt(X1*X2*S)/2.D0 -c PPTT = PPT02(10) -c IF(IPAR(3).eq.8) PPTT = PPT02(20) -c 150 PT = PPTT*dSQRT(-dLOG(MAX(EPS10,S_RNDM(0)))) -c IF(IPAR(3).ge.6)THEN -c XM = 0.D0 -c XM2 = XM**2 -c RNDM = MAX(EPS10,S_RNDM(IFL)) -c XMT = PPTT * dLOG(RNDM) - XM -c XMT2 = XMT**2 -c PT = dSQRT(XMT2-XM2) -c ENDIF -c IF(PT.GT.PTmin) GOTO 150 -c IF(PT.GE.STR_mass2) GOTO 150 -c PHI = TWOPI*S_RNDM(L) -c END -cC======================================================================= -c -c SUBROUTINE SAMPLE_SOFT5 (STR_mass_min, X1,X2,PT) -c -cC----------------------------------------------------------------------- -cC...Routine for the sampling the kinematical variables of sea quarks -cC. according to (1-x)**b / x**2 -cC. INPUT: STR_mass_min : minimal string mass ** 2 = x1 * x2 * s -cC. SLOPE : large x suppression exponent -cC. OUTPUT: X1, X2, PT (GeV) /FR'14 -cC----------------------------------------------------------------------- -c IMPLICIT DOUBLE PRECISION (A-H,O-Z) -c IMPLICIT INTEGER(I-N) -c INTEGER NW_max -c PARAMETER (NW_max = 20) -cc COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, kb ,kt -cC-------------------------------------------------------------------- -cC SIBYLL common blocks containing event information \FR'14 -cC-------------------------------------------------------------------- -c -cC EVENT INFO COMMON -cC contains overall interaction properties, like -cC SQS : center-of-mass energy -cC S : " " squared -cC PTmin : low pt cut of QCD cross section, -cC i.e. minimal pt of hard minijets -cC Xmin : low-x bound for PDFs, -cC i.e. minimal momentum fraction of hard partons -cC Zmin : logarithm of that -cC KB : PID of beam hadron -cC KT() : PID of target -cC IAT : mass number of target -c DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN -c INTEGER KB,IAT,KT -c COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT -c -c INTEGER NCALL, NDEBUG, LUN -c COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -c -c DOUBLE PRECISION PPT02 -c COMMON /S_CQDIS2/ PPT02(44) -c INTEGER NIPAR_max,NPAR_max -c PARAMETER (NPAR_max=200,NIPAR_max=100) -c DOUBLE PRECISION PAR -c INTEGER IPAR -c COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) -c -cC-------------------------------------------------------------------- -cC SIBYLL utility common blocks containing constants \FR'14 -cC-------------------------------------------------------------------- -c DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 -c COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 -c -c DOUBLE PRECISION PI,TWOPI,CMBARN -c COMMON /SIB_CST/ PI,TWOPI,CMBARN -c -c DOUBLE PRECISION FACN -c DIMENSION FACN(3:10) -c COMMON /SIB_FAC/ FACN -c SAVE -c -c SLOPE = max(1.D0,PAR(42)) -c ZSOF = 2.D0*dLOG(STR_mass_min/SQS) ! minim. mass ~ x1 * x2 -c 50 XMIN = dEXP(ZSOF) -c axmin = 1.D0/xmin -c 100 Z1 = -1.D0*dLOG(axmin-(axmin-1.D0)*S_RNDM(0)) -c x1 = dexp(z1) -c XR = dlog(1.D0-X1) - dlog(1.D0-xmin) -c if(SLOPE*XR.le.log(S_RNDM(0))) goto 100 -c -c 200 Z2 = -1.D0*dLOG(axmin-(axmin-1.D0)*S_RNDM(0)) -c X2 = dEXP(Z2) -c XR = dlog(1.D0-X2) - dlog(1.D0-dEXP(ZSOF)) -c if(SLOPE*XR.le.dlog(S_RNDM(0))) goto 200 -c -c IF(Z1+Z2.LE.ZSOF) GOTO 50 -c STR_mass2 = dsqrt(X1*X2*S)/2.D0 -c PPTT = PPT02(10) -c IF(IPAR(3).eq.8) PPTT = PPT02(20) -c 150 PT = PPTT*dSQRT(-dLOG(MAX(EPS10,S_RNDM(0)))) -c IF(IPAR(3).ge.6)THEN -c XM = 0.D0 -c XM2 = XM**2 -c RNDM = MAX(EPS10,S_RNDM(IFL)) -c XMT = PPTT * dLOG(RNDM) - XM -c XMT2 = XMT**2 -c PT = dSQRT(XMT2-XM2) -c ENDIF -c IF(PT.GT.PTmin) GOTO 150 -c IF(PT.GE.STR_mass2) GOTO 150 -c END -c -C======================================================================= - - SUBROUTINE SAMPLE_SOFT6 (STR_mass_min, X1,X2,PT) - -C----------------------------------------------------------------------- -C...Routine for the sampling the kinematical variables of sea quarks -C. according to (1-x)**b / x -C. INPUT: STR_mass_min : minimal string mass ** 2 = x1 * x2 * s -C. SLOPE : large x suppression exponent -C. OUTPUT: X1, X2, PT (GeV) /FR'14 -C----------------------------------------------------------------------- -Cf2py double precision, intent(in) :: STR_mass_min -Cf2py double precision, intent(out) :: X1 -Cf2py double precision, intent(out) :: X2 -Cf2py double precision, intent(out) :: PT - - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - DOUBLE PRECISION PPT02 - COMMON /S_CQDIS2/ PPT02(44) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - - NOSLOPE = 0 - SLOPE = PAR(42) - IF(SLOPE.lt.0.5D0) NOSLOPE = 1 - XMAX = 0.8D0 - ZSOF = 2.D0*LOG(STR_mass_min/SQS) ! minim. mass ~ x1 * x2 - XMINA = MAX(EXP(ZSOF),EPS10) - AXMINA = 1.D0/XMINA - IF(ndebug.gt.2) - & write(lun,*) ' SAMPLE_SOFT6: Mmin,ZSOF,XMINA,XMAX,SLOPE:', - & STR_mass_min,ZSOF,XMINA,XMAX,SLOPE - - 100 X1 = XM2DIS(XMINA,XMAX,1.D0) ! ~(1/x)**alpha - IF(NOSLOPE.eq.1) goto 200 - XRNDM = S_RNDM(0) - XR = LOG(1.D0-X1)-LOG(1.D0-XMINA) - IF(ndebug.gt.5) - & write(lun,*) ' X1,XR,SLOPE*XR:',X1,XR,SLOPE*XR - if(SLOPE*XR.le.LOG(max(xrndm,eps10))) goto 100 - - 200 X2 = XM2DIS(XMINA,XMAX,1.D0) ! ~(1/x)**alpha - IF(NOSLOPE.eq.1) goto 300 - XRNDM = S_RNDM(1) - XR = log(1.D0-X2) - log(1.D0-XMINA) - IF(ndebug.gt.5) - & write(lun,*) ' X2,XR,SLOPE*XR:',X2,XR,SLOPE*XR - if(SLOPE*XR.le.log(max(xrndm,eps10))) goto 200 - - 300 Z1 = log(X1) - Z2 = log(X2) - IF(Z1+Z2.LE.ZSOF) GOTO 100 - STR_mass2 = sqrt(X1*X2*S)/2.D0 - PPTT = PPT02(10) - IF(IPAR(3).eq.8) PPTT = PPT02(20) - IF(ndebug.gt.2) - & write(lun,*) ' SAMPLE_SOFT6: PPTT,Mmin2,PTmin:', - &PPTT,STR_mass2,PTmin - 150 PT = PPTT*SQRT(-LOG(MAX(EPS10,S_RNDM(0)))) - IF(IPAR(3).ge.6)THEN - XM = 0.D0 - XM2 = XM**2 - RNDM = MAX(EPS10,S_RNDM(1)) - XMT = PPTT * LOG(RNDM) - XM - XMT2 = XMT**2 - PT = SQRT(XMT2-XM2) - ENDIF - IF(ndebug.gt.2) - & write(lun,*) ' XM,XMT2,PT:',XM,XMT2,PT - IF(PT.GT.PTmin) GOTO 150 - IF(PT.GE.STR_mass2) GOTO 150 - END -C======================================================================= - - SUBROUTINE SIB_START_EV (SQS, L, IA, IAFLG, NW, JDIF) - -C----------------------------------------------------------------------- -C...Beginning of a SIBYLL interaction -C. -C. add l.m. Glauber SD cross section for pAir 13/FR -C. -C. INPUT : SQS = c.m.s. energy (GeV) -C. L = 1:proton, 2:charged pion -C. IA = mass of target nucleon -C. IAFLG = target is air -C. -C. OUTPUT: NW = number of wounded nucleons -C. JDIF(JW) = diffraction code !!!! changed to field !!!! -C. (0 : non-diffractive interaction) -C. (1 : forward diffraction) -C. (2 : backward diffraction) -C. (3 : double diffraction) -C. -C----------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -c external type declarations - INTEGER NW_max,JDIF,IA,L,IAFLG,NW - DOUBLE PRECISION SQS - PARAMETER (NW_max = 20) - DIMENSION JDIF(NW_max) - - DOUBLE PRECISION B, BMAX - INTEGER NTRY, NA - COMMON /S_CNCM0/ B, BMAX, NTRY, NA - DOUBLE PRECISION XM2MIN,ALXMIN,SLOP0,ASLOP,BSLOP,XMASS - COMMON /S_DIFMAss/ XM2MIN(6),ALXMIN(6),SLOP0,ASLOP,BSLOP,XMASS(2) - DOUBLE PRECISION XI_MAX, ALAM - COMMON /GLAUB_SCR/ XI_MAX, ALAM(61) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - -c local type declarations - DOUBLE PRECISION SIGT,SIGEL,SIGINEL,SIGDIF,SLOPE,RHO, - & SIGPROD,SIGBDIF,SIGELA,S_RNDM,S,PF,PB,PD,P0,P1,P2,R - DIMENSION SIGDIF(3) - INTEGER K - SAVE - - IF(NDEBUG.gt.0) - &WRITE(LUN,*)'SIB_START_EV:', SQS, L, IA, IAFLG, NW, JDIF - -C...sample number of wounded nucleons -c read hadron-nucleon cross section from table - CALL SIB_SIGMA_HP(L,SQS,SIGT,SIGEL,SIGINEL,SIGDIF,SLOPE,RHO) - - IF (IA .GT. 1) THEN - IF(IPAR(12).NE.0)THEN - IF(IPAR(12).eq.3)THEN -c distinguish between nuclear cross sections.. - IF(IAFLG.eq.0)THEN -c if target is nucleus calc. hadron-nucleus cross section - CALL SIB_SIGMA_HNUC(L,IA,SQS,SIGprod,SIGbdif,SIGela) - ELSE -c if target is air read hadron-air cross section from table - CALL SIB_SIGMA_HAIR(L,SQS,SIGprod,SIGbdif) - ENDIF - ELSE -c always use air cross section... - CALL SIB_SIGMA_HAIR(L,SQS,SIGprod,SIGbdif) - ENDIF -C 2channel low-mass (coherent) diffraction? - IF(S_RNDM(L).LT.SIGbdif/SIGprod)THEN - NW = 1 - JDIF(1) = 1 - RETURN - ENDIF - ENDIF -c sample number of wounded nucleons - CALL INT_H_NUC (IA, SIGT, SLOPE, RHO) - ELSE - NA = 1 - ENDIF - NW = NA - - IF(NDEBUG.gt.0) - & WRITE(LUN,'(A50,2I3,1P,3E10.3)') - & ' START_EVT: IA, NW, SIGT, SLOPE, RHO:',IA,NW,SIGT,SLOPE,RHO -C...new treatment of diffraction - IF(IA.GT.1) THEN -c hadron-nucleus case - IF(NW.eq.1)THEN - IF(IPAR(12).NE.0)THEN -c high mass (incoherent) diffraction? - S = SQS ** 2 - PF =(1.D0-dLOG(S*XI_MAX/XM2MIN(L))/ - & dLOG(S*PAR(13)/XM2MIN(L)))*SIGDIF(1)/SIGINEL - PB = SIGDIF(2)/SIGINEL - PD = SIGDIF(3)/SIGINEL - ELSE - PF = SIGDIF(1)/SIGINEL - PB = SIGDIF(2)/SIGINEL - PD = SIGDIF(3)/SIGINEL - ENDIF - ELSE -c Nw>1: - IF(IPAR(12).EQ.1)THEN -c all interactions with Nw>1 are non-diff. - DO K=1, NW - JDIF(K) = 0 - ENDDO - RETURN - ELSE -c some Nw>1 are attached by diff. - PF = PAR(124)*SIGDIF(1)/SIGINEL - PB = PAR(124)*SIGDIF(2)/SIGINEL - PD = PAR(124)*SIGDIF(3)/SIGINEL - ENDIF - ENDIF - ELSE -c hadron-nucleon case - PF = SIGDIF(1)/SIGINEL - PB = SIGDIF(2)/SIGINEL - PD = SIGDIF(3)/SIGINEL - ENDIF - P0 = 1.D0-PF-PB-PD - P1 = P0 + PF - P2 = P1 + PB - DO K=1, NW - R = S_RNDM(0) - IF (R .LT. P0) THEN - JDIF(K) = 0 - ELSE IF (R .LT. P1) THEN - JDIF(K) = 1 - ELSE IF (R .LT. P2) THEN - JDIF(K) = 2 - ELSE - JDIF(K) = 3 - ENDIF - ENDDO - - END -C======================================================================= - - SUBROUTINE INI_EVENT(ECM,KBEAM,IATARG,IMOD) - -C----------------------------------------------------------------------- -C initializes the stacks and event info common -c if Imod : 0 - initiate subevent in recursive call -c ( keeps the final hadron stack intact ) -C : 1 - initiate entire new event -C----------------------------------------------------------------------- - IMPLICIT NONE -c external type declarations - DOUBLE PRECISION ECM - INTEGER KBEAM,IATARG,IMOD - -c COMMONs - INTEGER NW_max - PARAMETER (NW_max = 20) - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP -C parameters that represent: NW: max. number of wounded nucleons, -C NS,NH: max. number of soft and hard interactions -c PARAMETER (NW_max = 20) -C The COMMON block /S_CHIST/ contains information about the -C the structure of the generated event: -C NWD = number of wounded nucleons -C NJET = total number of hard interactions -C NSOF = total number of soft interactions -C NNSOF (1:NW) = number of soft pomeron cuts in each interaction -C NNJET (1:NW) = number of minijets produced in each interaction -C JDIF(1:NW) = diffraction code -C 0 : non-diff, -C 1 : beam-diff -C 2 : target-diff -C 3 : double-diff - INTEGER NNSOF,NNJET,JDIF,NWD,NJET,NSOF - COMMON /S_CHIST/ NNSOF(NW_max),NNJET(NW_max), - & JDIF(NW_max),NWD,NJET,NSOF - - INTEGER IBMRDX,ITGRDX,IHMJDX,ISMJDX,ICSTDX,IINTDX - COMMON /S_INDX/ IBMRDX(3),ITGRDX(NW_max,3), - & IHMJDX(NW_max*NH_max),IINTDX(NW_max), - & ISMJDX(NW_max*NS_max),ICSTDX(2*NW_max,3) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - INTEGER II2,JJ2 - DOUBLE PRECISION U2,C2,CD2,CM2 - COMMON /SIB_RAND/ U2(97),C2,CD2,CM2,II2,JJ2 - -c local types - DOUBLE PRECISION PZ,E1,PAWT,S_RNDM,R,FOX - INTEGER KK,JJ,II,KBA,IREFout,JN - SAVE - DATA FOX /0.21522D0/ !atomic percentage of 'non-nitrogen' in air - - - IF(NDEBUG.gt.0.and.IMOD.eq.1) - & WRITE(LUN,'(A50,F10.2,I4,I3,I3)') - & ' INI_EVENT: called with (ECM,KBEAM,IATARG,NCALL):', - & ECM,KBEAM,IATARG,NCALL - -c set final particle stack to zero - IF(IMOD.eq.1)then - NP = 0 - NWD = 0 - NJET = 0 - NSOF = 0 - endif - - CALL INI_PRTN_STCK(0,0) - -c clear index cache - do kk=1,3 - IBMRDX(kk) = 0 - ENDDO - do jj=1,NW_max - do kk=1,3 - ICSTDX(jj,kk) = 0 - ICSTDX(jj+1,kk) = 0 - ITGRDX(jj,kk) = 0 - IINTDX(jj) = 0 - ENDDO - do ii=1,NH_max - IHMJDX(NH_max*(JJ-1)+II) = 0 - enddo - do ii=1,NS_max - ISMJDX(NS_max*(JJ-1)+II) = 0 - enddo - ENDDO - - SQS = Ecm - S = SQS*SQS - - KB = KBEAM - KBA = IABS(KBEAM) -c add beam particles to parton stack, lvl -2 - PZ = PAWT(SQS,AM(KBA),AM(13)) - E1 = SQRT(PZ**2+AM2(KBA)) - CALL ADD_PRTN(0.D0,0.D0,PZ,E1,AM(KBA),KB,-2,0,IREFout) - IF(IMOD.eq.1)THEN - IAT = IATARG - IF(IATARG.EQ.1)THEN - KT(1) = 13 - ELSE - IF(IATARG.eq.0)THEN -C... Generate an 'air' interaction by choosing Nitrogen or Oxygen - R = S_RNDM(0) - IATARG = 14 - IF (R .LT. FOX) IATARG = 16 - if (NDEBUG.gt.0) - * WRITE(lun,*)'fox,rndm,iatarg,eps:',fox,r,iatarg,eps8 - ENDIF - DO JN=1,IATARG -c for nuclear target: proton (13) or neutron (14) - KT(JN) = 13 + INT((2.D0-EPS8)*S_RNDM(JN)) - ENDDO - ENDIF - ELSE - KT(1) = IATARG - ENDIF - -C...energy-dependent transverse momentum cutoff -c...EJA correction 2007.03.27 - IF(IPAR(27).eq.1)THEN - PTmin = PAR(10)+PAR(11)*EXP(PAR(12)*SQRT(LOG(SQS))) - else - PTmin = PAR(10)+PAR(11)*EXP(PAR(12)*SQRT(LOG(S))) - endif - XMIN = 4.D0*PTmin**2/S - ZMIN = LOG(XMIN) - IF(ndebug.gt.0)then - write(lun,*) ' INI_EVENT: ncall:', ncall - write(lun,'(2X,A33,F10.2,1X,F16.2,F8.5,E10.3,F10.5)') - & 'INI_EVENT: (SQS,S,PTmin,Xmin,Zmin)', - & SQS,S,PTmin,Xmin,Zmin - write(lun,*) ' INI_EVENT: KB,IAT,IATARG,KT',KB,IAT,IATARG - write(lun,*) ' ',(KT(jj),jj=1,IATARG) - endif - - CALL PTSETUP_4FLV(ECM) - - return - END -C----------------------------------------------------------------------- -C parton level administration tools for SIBYLL \FR'14 -C----------------------------------------------------------------------- - -C... COMMON /S_PRTNS/ : parton stack -c PP: 4momentum of parton, px,py,pz,energy,mass -c LPID(1): parton id, i.e. flavor (u:1,d:2,s:3,c:4) for quarks -c LPID(2): level of parton -c fragmenting systems (strings,remnants) are marked as level0 -c partons that make up these systems are marked as level1 -c LPID(3): 'downward' reference -c pointer from level1 partons to their level0 parent -c LPID(4): 'upward' reference -c pointer from level0 partons to their level-1 parent -c LVL0IDX: index cache for level0 partons -c NPP: total number of partons on stack -c NPP0: number of level0 partons on stack - -C======================================================================= - - SUBROUTINE ADD_PRTN(PX,PY,PZ,E,XMS,IPID,LVL,IREFin,IREFout) - -C----------------------------------------------------------------------- -C routine to add a parton to the stack \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - - PP(NPP+1,1) = PX - PP(NPP+1,2) = PY - PP(NPP+1,3) = PZ - PP(NPP+1,4) = E - PP(NPP+1,5) = XMS - LPID(NPP+1,1) = IPID - LPID(NPP+1,2) = LVL - LPID(NPP+1,3) = IREFin - NPP = NPP + 1 -c level0 index - IF(LVL.eq.0)THEN - LVL0IDX(NPP0+1) = NPP - NPP0 = NPP0 + 1 - ENDIF - IREFout = NPP - IF(NDEBUG.gt.6)THEN - WRITE(LUN,*) ' ADD_PRTN: (#,PID,LEVEL,REF)', - & NPP,LPID(NPP,1),LPID(NPP,2),LPID(NPP,3) - WRITE(LUN,*) ' 4momentum: ',(PP(NPP,JJ),JJ=1,5) - ENDIF - END - -C======================================================================= - - SUBROUTINE ADD_PRTN_4VEC(PIN,IPID,LVL,IREFin,IREFout) - -C----------------------------------------------------------------------- -C wrapper for ADD_PRTN to add 4momentum directly \FR'14 -C---------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - DIMENSION PIN(5) - SAVE - - CALL ADD_PRTN - & (PIN(1),PIN(2),PIN(3),PIN(4),PIN(5),IPID,LVL,IREFin,IRF) - IREFout = IRF - END - -C======================================================================= - - SUBROUTINE ADD_REF(IDX,Irefin) - -C----------------------------------------------------------------------- -C routine to add a reference label to a particle -C after it has been added to the stack \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - -c IF(LPID(IDX,3).ne.0) WRITE(LUN,*) -c & ' ADD_REF: warning particle already has defined reference,', -c & IDX,' overwritting..' - IF(NDEBUG.gt.6) - &WRITE(LUN,*) ' ADD_REF: (IDX,REFin)',IDX,Irefin - LPID(IDX,3) = Irefin - END - -C======================================================================= - - SUBROUTINE RD_REF(IDX,Irefout) - -C----------------------------------------------------------------------- -C routine to add a reference label to a particle -C after it has been added to the stack \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - - Irefout = LPID(IDX,3) - IF(NDEBUG.gt.6) - & WRITE(LUN,*) ' RD_ref: (IDX,REFout)',IDX,Irefout - END - -C======================================================================= - - SUBROUTINE ADD_INT_REF(IDX,Irefin) - -C----------------------------------------------------------------------- -C routine to add a reference label to an interaction -C after it has been added to the stack \FR'15 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - - IF(NDEBUG.gt.6) - & WRITE(LUN,*) ' ADD_INT_REF: (IDX,REFin)',IDX,Irefin - LPID(IDX,4) = Irefin - END - -C======================================================================= - - SUBROUTINE RD_INT(IDX,Irefout,Iout) - -C----------------------------------------------------------------------- -C routine to add a reference label to an interaction -C after it has been added to the stack \FR'15 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - - Irefout = LPID(IDX,4) - IF(Irefout.ne.0) Iout = LPID(Irefout,1) - IF(NDEBUG.gt.6) - & WRITE(LUN,*) ' RD_INT: (IDX,REFout,Iint)',IDX,Irefout,Iout - END - -C======================================================================= - - SUBROUTINE EDT_PRTN(IDX,PX,PY,PZ,EN,XMS,IREFout) - -C----------------------------------------------------------------------- -C routine to edit a parton already on stack \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - - IF(NDEBUG.gt.6)THEN - WRITE(LUN,*) ' EDT_PRTN: (#,PID,LEVEL,REF)', - & IDX,LPID(IDX,1),LPID(IDX,2),LPID(IDX,3) - WRITE(LUN,*) ' initial 4momentum:',(PP(IDX,JJ),JJ=1,5) - ENDIF - PP(IDX,1) = PX - PP(IDX,2) = PY - PP(IDX,3) = PZ - PP(IDX,4) = EN - PP(IDX,5) = XMS -c return reference to other partons - IREFout = LPID(IDX,3) - IF(NDEBUG.gt.6) - & WRITE(LUN,*) ' final 4momentum: ',(PP(IDX,JJ),JJ=1,5) - END - -C======================================================================= - - SUBROUTINE RD_PRTN(IDX,PX,PY,PZ,EN,XMS,IFL,IREFout) - -C----------------------------------------------------------------------- -C routine to read a parton from the stack \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - - IF(NDEBUG.gt.6)THEN - WRITE(LUN,*) ' RD_PRTN: (#,PID,LEVEL,REF)', - & IDX,LPID(IDX,1),LPID(IDX,2),LPID(IDX,3) - WRITE(LUN,*) ' 4momentum: ',(PP(IDX,JJ),JJ=1,5) - ENDIF - PX = PP(IDX,1) - PY = PP(IDX,2) - PZ = PP(IDX,3) - EN = PP(IDX,4) - XMS = PP(IDX,5) - IFL = LPID(IDX,1) -c return reference to other partons - IREFout = LPID(IDX,3) - END - -C======================================================================= - - SUBROUTINE RD_PRTN_4VEC(IDX,Pin,IFL,IREFout) - -C----------------------------------------------------------------------- -C routine to read a parton from the stack \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - DIMENSION Pin(5) - SAVE - - IF(IDX.EQ.0) THEN - WRITE(LUN,*) ' RD_PRTN_4VEC: invalid index!',IDX - xa = -1.D0 - xa = log(xa) - RETURN - ELSE - do ii = 1,5 - PIN(ii) = PP(IDX,ii) - enddo - IFL = LPID(IDX,1) -c return reference to other partons - IREFout = LPID(IDX,3) - IF(NDEBUG.gt.6)THEN - WRITE(LUN,*) ' RD_PRTN: (#,PID,LEVEL,REF)', - & IDX,IFL,LPID(IDX,2),IREFout - WRITE(LUN,*) ' 4momentum: ',(PIN(JJ),JJ=1,5) - ENDIF - - ENDIF - END - -C======================================================================= - - SUBROUTINE ITR_LVL0_PRTN(JJ,IDX,LID) - -C----------------------------------------------------------------------- -C routine that serves as iterator over the level0 -C partons on the stack \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - - IDX = LVL0IDX(JJ) - IF(ndebug.gt.6) - & WRITE(LUN,*) ' ITR_LVL0_PRTN: JJ,IDX',JJ,IDX - LID = LPID(IDX,1) - IF(JJ+1.gt.NPP0) THEN - JJ = -1 - RETURN - ELSE - JJ = JJ + 1 - ENDIF - END - -C======================================================================= - - SUBROUTINE INI_PRTN_STCK(NOLD,N0OLD) - -C----------------------------------------------------------------------- -C reset parton stack \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - - IF(NDEBUG.gt.6) WRITE(LUN,*) ' PRTN_STCK: reset .. ' - IF(NDEBUG.gt.6) WRITE(LUN,*) ' old state: NPP,NPP0',NPP,NPP0 - - NPP = NOLD - NPP0 = N0OLD - - IF(NDEBUG.gt.6) WRITE(LUN,*) ' new state: NPP,NPP0',NPP,NPP0 - - END - -C======================================================================= - - SUBROUTINE GET_NPP(NPPLD,NPP0LD) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - - NPPLD = NPP - NPP0LD = NPP0 - END - -C======================================================================= - - SUBROUTINE GET_LVL0(NPP0LD,IDXLIST) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - DIMENSION IDXLIST(NPP0_max) - INTEGER N - SAVE - - NPP0LD = NPP0 - DO N = 1, NPP0_max - IDXLIST(N) = LVL0IDX(N) - ENDDO - - END - -C======================================================================= - - SUBROUTINE PRNT_PRTN_STCK - -C----------------------------------------------------------------------- -C as the name suggests, prints the current state -C of the parton stack -C print unit is defined in S_DEBUG:LUN \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - CHARACTER*5 CDE - CHARACTER*9 CODE - - CHARACTER*6 NAMP - COMMON /S_CNAM/ NAMP (0:99) - SAVE - - WRITE (LUN,50) - 50 FORMAT(3X,88('-'),/,21X,'SIBYLL PARTON LEVEL EVENT SUMMARY',21X, - & /,3X,75('-'),13('-')) - -c beam particles - WRITE(LUN,*) ' BEAM PARTICLES' - 52 FORMAT(4X,'#',3X,'PID',2x,'LVL',2x,'REF',20x,'PX',9x,'PY',7x, - + 'PZ',9x,'E',11X,'Mass', /, 3X,75('-'),13('-')) - WRITE (LUN,52) - DO J=1,NPP - IF(LPID(J,2).eq.-2)then - WRITE (LUN,60) J, (LPID(J,KK),KK=1,3), (PP(J,K),K=1,5) - ENDIF - ENDDO -c level -2 format - 60 FORMAT(4I5,14X,2F11.3,1p,2E11.3,0p,F9.3) - WRITE(LUN,61) - 61 FORMAT(3X,75('-'),13('-')) - -c interactions - WRITE(LUN,*) ' INTERACTIONS' - 62 FORMAT(4X,'#',3X,'PID',2x,'LVL',2x,'REF',20x,'NSOF',8x,'NJET',7x, - + 'JDIF',7x,'E',11X,'Mass', /, 3X,75('-'),13('-')) - WRITE (LUN,62) - DO J=1,NPP - IF(LPID(J,2).eq.-1)then - WRITE (LUN,63) J, (LPID(J,KK),KK=1,3), (PP(J,K),K=1,5) - ENDIF - ENDDO -c level -1 format - 63 FORMAT(4I5,12X,4F12.0,F11.3) - 64 FORMAT(3X,75('-'),13('-')) - WRITE(LUN,64) - -c partons - WRITE (LUN,100) - DO J=1,NPP - IF(LPID(J,2).eq.0)then - WRITE (LUN,120) J, (LPID(J,KK),KK=1,3), (PP(J,K),K=1,5) - elseif(LPID(J,2).eq.1)then - CALL KCODE(LPID(J,1),cde,nc) - WRITE (LUN,121) J, CDE(1:nc),(LPID(J,KK),KK=2,3), - & (PP(J,K),K=1,5) - elseif(LPID(J,2).eq.2)then - CODE = ' ' - L = LPID(J,1) - CODE(1:6) = NAMP(IABS(L)) - IF (L .LT. 0) CODE(7:9) = 'bar' - WRITE (LUN,122) J,CODE,(LPID(J,KK),KK=2,3), (PP(J,K),K=1,5) - endif - ENDDO - CALL PPSUM(1,NPP,Esum,PXsum,PYsum,PZsum,NF) - WRITE(LUN,140) PXsum,PYsum,PZsum,Esum - - 100 FORMAT(4X,'#',3X,'PID',2x,'LVL',2x,'REF',20x,'PX',9x,'PY',7x, - + 'PZ',9x,'E',11X,'Mass', /, 3X,75('-'),13('-')) -c level 0 format - 120 FORMAT(4I5,14X,2F11.3,1p,2E11.3,0p,F11.3) -c level 1 format cjoe - 121 FORMAT(I7,1X,A5,2I5,14X,2F11.3,1p,2E11.3,0p,F11.3) -c level 2 format - 122 FORMAT(I10,1X,A9,2I5,10X,2F11.3,1p,2E11.3,0p,F11.3) - 140 FORMAT(3X,75('-'),13('-'),/,' Tot = ',26X,2F11.3,1p,2e11.3) - - END - -C======================================================================= - - SUBROUTINE PPSUM(N1,N2,ETOT,PXT,PYT,PZT,NF) - -C----------------------------------------------------------------------- -C Return the energy,px,py,pz of level0 partons -C in the list between N1 and N2 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - - NF=0 - ETOT=0.D0 - PXT=0.D0 - PYT=0.D0 - PZT=0.D0 - DO J=N1,N2 - IF (LPID(J,2) .EQ. 0) THEN - NF = NF+1 - ETOT = ETOT + ABS( PP(J,4) ) - PXT = PXT + PP(J,1) - PYT = PYT + PP(J,2) - PZT = PZT + PP(J,3) - ENDIF - ENDDO - RETURN - END -C======================================================================= - - SUBROUTINE FOUR_LENGTH(XP,XM2) - -C----------------------------------------------------------------------- -C Calculate the length of a 4vector (+---) \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - DIMENSION XP(5) - SAVE - - XM2 = XP(4)**2 - XP(1)**2 - XP(2)**2 - XP(3)**2 - END -C======================================================================= - - DOUBLE PRECISION FUNCTION CALC_INVM(XP1,XP2) - -C----------------------------------------------------------------------- -C Calculate the invariant mass of two 4vectors FR'15 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - DIMENSION XP1(5),XP2(5) - SAVE - - CALC_INVM = (XP1(4)+ XP2(4))**2 - DO I=1,3 - CALC_INVM = CALC_INVM-(XP1(I)+XP2(I))**2 - ENDDO - CALC_INVM = SQRT(CALC_INVM) - END - -C======================================================================= - - SUBROUTINE GET_XMT2(IDX,XM2) - -C----------------------------------------------------------------------- -C Calculate the transverse mass of a parton -C on the stack \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - - XM2 = PP(IDX,1)**2 + PP(IDX,2)**2 + PP(IDX,5)**2 - END -C======================================================================= - - SUBROUTINE GET_IMASS2(IDX,XM2) - -C----------------------------------------------------------------------- -C Calculate the invariant mass squared of a parton -C on the stack (+---) \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - SAVE - - XM2 = PP(IDX,1)**2 + PP(IDX,2)**2 + PP(IDX,3)**2 - XM2 = PP(IDX,4)**2 - XM2 - END - -C======================================================================= - - SUBROUTINE GET_MASS(IDX,XM) - -C----------------------------------------------------------------------- -C read mass of parton on stack \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - - IF(IDX.EQ.0) THEN - XM2 = 0.D0 - else - XM = PP(IDX,5) - ENDIF - END -C======================================================================= - - SUBROUTINE GET_MASS2(IDX,XM2) - -C----------------------------------------------------------------------- -C read mass of parton on stack \FR'14 -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - - IF(IDX.EQ.0) THEN - XM2 = 0.D0 - else - XM2 = PP(IDX,5)**2 - ENDIF - END - -C======================================================================= - - SUBROUTINE GET_VRTLTY(IDX,XX) - -C----------------------------------------------------------------------- -C calculate virtuality of parton on stack \FR'14 -C = on-shell mass - inv. mass -C------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - PARAMETER (NPP_max = 1000, NPP0_max = 500) - COMMON /S_PRTNS/ PP(NPP_max,5), LPID(NPP_max,4), LVL0IDX(NPP0_max) - & ,NPP,NPP0 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - SAVE - - IF(IDX.EQ.0) XM2 = 0.D0 - CALL GET_IMASS2(IDX,xm2) - XX = PP(IDX,5)**2-xm2 - END - -C======================================================================= - - SUBROUTINE ADD_4VECS(P1,P2,POUT) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - DIMENSION P1(5),P2(5),POUT(5) - SAVE - - DO II=1,4 - POUT(II) = P1(II) + P2(II) - ENDDO - CALL FOUR_LENGTH(POUT,XM2) - IF(XM2.LT.0)THEN -c virtual particle - POUT(5) = -1.D0 - IF(NDEBUG.gt.6)then - WRITE(LUN,*) - & ' ADD_4VECS: resulting particle virtual!! (m**2):',XM2 - WRITE(LUN,*) ' p**2' , POUT(1)**2+POUT(2)**2+POUT(3)**2 - WRITE(LUN,*) ' E**2: ', POUT(4)**2 - ENDIF - ELSE - POUT(5) = sqrt(xm2) - ENDIF - END -C======================================================================= - - SUBROUTINE DECPAR (LA,P0,ND,LL,P) - -C----------------------------------------------------------------------- -C...This subroutine generates the decay of a particle -C. with ID = LA, and 5-momentum P0(1:5) -C. into ND particles of 5-momenta P(j,1:5) (j=1:ND) -C. -C. If the initial particle code is LA=0 -C. then ND and LL(1:ND) are considered as input and -C. the routine generates a phase space decay into ND -C. particles of codes LL(1:nd) -C. -C. june 1992 -C. This version contains the decay of polarized muons -C. The muon codes are L = 4 : mu+ R -C. -4 : mu+ L -C. 5 : mu- L -C. -5 : mu- R -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - DOUBLE PRECISION CBR - INTEGER KDEC,LBARP,IDB - COMMON /S_CSYDEC/ CBR(223+16+12+8), KDEC(1338+6*(16+12+8)), - & LBARP(99), IDB(99) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - DIMENSION P0(5), LL(10), P(10,5) - DIMENSION PV(10,5), RORD(10), UE(3),BE(3) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - -C...Phase space decay into the particles in the list - IF (LA .EQ. 0) THEN - MAT = 0 - MBST = 0 - PS = 0.D0 - DO J=1,ND -CDH following statements corrected by D.H. dec 20.,1995 - P (J,5) = AM(IABS(LL(J))) - PV(J,5) = AM(IABS(LL(J))) - PS = PS+P(J,5) - ENDDO - DO J=1,4 - PV(1,J) = P0(J) - ENDDO - PV(1,5) = P0(5) - GOTO 140 - ENDIF - -C...Choose decay channel - L = IABS(LA) - ND=0 - IDC = IDB(L)-1 - IF (IDC+1 .LE.0) RETURN - RBR = S_RNDM(0) -110 IDC=IDC+1 - IF(RBR.GT.CBR(IDC)) GOTO 110 - - KD =6*(IDC-1)+1 - ND = KDEC(KD) - MAT= KDEC(KD+1) - MBST=0 - IF (MAT .GT.0 .AND. P0(4) .GT. 20.D0*P0(5)) MBST=1 - IF (MAT .GT.0 .AND. MBST .EQ. 0) - + BETA = DSQRT(P0(1)**2+P0(2)**2+P0(3)**2)/P0(4) - PS = 0.D0 -c reduce omega mass by 50MeV to allow on-shell N(1710) decay - Xmomega = am(32) - IF(L.eq.53.or.L.eq.54) AM(32) = AM(32)-0.05D0 - DO J=1,ND - LL(J) = KDEC(KD+1+J) - P(J,5) = AM(LL(J)) - PV(J,5) = AM(LL(J)) - PS = PS + P(J,5) - ENDDO - AM(32) = Xmomega - DO J=1,4 - PV(1,J) = 0.D0 - IF (MBST .EQ. 0) PV(1,J) = P0(J) - ENDDO - IF (MBST .EQ. 1) PV(1,4) = P0(5) - PV(1,5) = P0(5) - -140 IF (ND .EQ. 2) GOTO 280 - - IF (ND .EQ. 1) THEN - DO J=1,4 - P(1,J) = P0(J) - ENDDO - RETURN - ENDIF - -C...Calculate maximum weight for ND-particle decay - WWTMAX = 1.D0/FACN(ND) - PMAX=PV(1,5)-PS+P(ND,5) - PMIN=0.D0 - DO IL=ND-1,1,-1 - PMAX = PMAX+P(IL,5) - PMIN = PMIN+P(IL+1,5) - WWTMAX = WWTMAX*PAWT(PMAX,PMIN,P(IL,5)) - ENDDO - -C...generation of the masses, compute weight, if rejected try again -240 RORD(1) = 1.D0 - DO 260 IL1=2,ND-1 - RSAV = S_RNDM(0) - DO 250 IL2=IL1-1,1,-1 - IF(RSAV.LE.RORD(IL2)) GOTO 260 -250 RORD(IL2+1)=RORD(IL2) -260 RORD(IL2+1)=RSAV - RORD(ND) = 0.D0 - WT = 1.D0 - DO 270 IL=ND-1,1,-1 - PV(IL,5)=PV(IL+1,5)+P(IL,5)+(RORD(IL)-RORD(IL+1))*(PV(1,5)-PS) -270 WT=WT*PAWT(PV(IL,5),PV(IL+1,5),P(IL,5)) - IF (WT.LT.S_RNDM(1)*WWTMAX) GOTO 240 - -C...Perform two particle decays in respective cm frame -280 DO 300 IL=1,ND-1 - PA=PAWT(PV(IL,5),PV(IL+1,5),P(IL,5)) - UE(3)=2.D0*S_RNDM(IL)-1.D0 - PHI=TWOPI*S_RNDM(3) - UT = DSQRT(1.D0-UE(3)**2) - UE(1) = UT*dCOS(PHI) - UE(2) = UT*dSIN(PHI) - DO 290 J=1,3 - P(IL,J)=PA*UE(J) -290 PV(IL+1,J)=-PA*UE(J) - P(IL,4)=DSQRT(PA**2+P(IL,5)**2) -300 PV(IL+1,4)=DSQRT(PA**2+PV(IL+1,5)**2) - -C...Lorentz transform decay products to lab frame - DO 310 J=1,4 -310 P(ND,J)=PV(ND,J) - DO 340 IL=ND-1,1,-1 - DO 320 J=1,3 -320 BE(J)=PV(IL,J)/PV(IL,4) - GA=PV(IL,4)/PV(IL,5) - DO 340 I=IL,ND - BEP = BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3) - DO 330 J=1,3 -330 P(I,J)=P(I,J)+GA*(GA*BEP/(1.D0+GA)+P(I,4))*BE(J) -340 P(I,4)=GA*(P(I,4)+BEP) - -C...Weak decays - IF (MAT .EQ. 1) THEN - F1=P(2,4)*P(3,4)-P(2,1)*P(3,1)-P(2,2)*P(3,2)-P(2,3)*P(3,3) - IF (MBST.EQ.1) THEN -C WT = P0(5)*P(1,4)*F1 - WT = P0(5)*(P(1,4)+DBLE(LA/L)*P(1,3))*F1 - ENDIF - IF (MBST.EQ.0) THEN - WT=F1*(P(1,4)*P0(4)-P(1,1)*P0(1)-P(1,2)*P0(2)-P(1,3)*P0(3)) - IF(L.lt.50) - + WT= WT-DBLE(LA/L)*(P0(4)*BETA*P(1,4)-P0(4)*P(1,3))*F1 - ENDIF - WTMAX = P0(5)**4/8.D0 - IF(WT.LT.S_RNDM(0)*WTMAX) GOTO 240 - ENDIF - -C...Boost back for rapidly moving particle - IF (MBST .EQ. 1) THEN - DO 440 J=1,3 -440 BE(J)=P0(J)/P0(4) - GA= P0(4)/P0(5) - DO 460 I=1,ND - BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3) - DO 450 J=1,3 -450 P(I,J)=P(I,J)+GA*(GA*BEP/(1.D0+GA)+P(I,4))*BE(J) -460 P(I,4)=GA*(P(I,4)+BEP) - ENDIF - -C...labels for antiparticle decay - IF (LA .LT. 0 .AND. L .GT. 18) THEN - DO J=1,ND - LL(J) = LBARP(LL(J)) - ENDDO - ENDIF - - RETURN - END - -C======================================================================= - - BLOCK DATA DATDEC - -C----------------------------------------------------------------------- -C...initialization of SIBYLL particle data -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - DOUBLE PRECISION CBR - INTEGER KDEC,LBARP,IDB - COMMON /S_CSYDEC/ CBR(223+16+12+8), KDEC(1338+6*(16+12+8)), - & LBARP(99), IDB(99) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - - DOUBLE PRECISION AW,AW2 - COMMON /S_WIDTH1/ AW(99), AW2(99) - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - - CHARACTER*6 NAMP - COMMON /S_CNAM/ NAMP (0:99) - SAVE -c CBR contains the normed sum of the branching ratios of the decay channels -c indexed by IDB, i.e. a particle with 4 decay channels will have the entries -c [B1/Btot, (B1+B2)/Btot, (B1+B2+B3)/Btot, 1.] - DATA CBR /3*1.D0,0.D0,1.D0,1.D0,0.6354D0,0.8422D0,0.8981D0, - + 0.9157D0,0.9492D0,1.D0,0.6354D0,0.8422D0,0.8981D0,0.9157D0, - + 0.9492D0,1.D0,0.1965D0,0.3224D0,0.4579D0,0.5934D0,0.7967D0,1.D0, - + 0.6925D0,1.D0,3*0.D0,0.5D0,1.D0,0.5D0,1.D0, - + 0.3941D0,0.7197D0,0.9470D0,0.9930D0,1.D0, ! eta - + 0.4285D0,0.7193D0,0.9487D0,0.9750D0,0.9973D0,0.9999D0,1.D0, ! eta' - + 3*1.D0, ! rho-mesons - + 0.6670D0,1.D0, ! K*+ - + 0.4894D0,0.8317D0,0.9850D0,0.9981D0,0.9994D0,0.9997D0,1.D0, ! phi(1020) - + 2*0.D0, ! (empty) - + 0.6670D0,1.D0, ! K*- - + 0.6670D0,1.D0, ! K*0 - + 0.6670D0,1.D0, ! K*0 bar - + 0.8940D0,0.9830D0,1.D0, ! omega - + 4*0.D0, ! (empty) - + 0.5160D0,5*1.D0,0.6410D0,2*1.D0,0.67D0,1.D0,0.33D0,2*1.D0, - + 0.88D0,0.94D0,1.D0,0.88D0,0.94D0,1.D0,0.88D0,0.94D0,1.D0,0.33D0, - + 1.D0,0.67D0,1.D0,0.678D0,0.914D0,1.D0,0.217D0,0.398D0,0.506D0, - + 0.595D0,0.684D0,0.768D0,0.852D0,0.923D0,0.976D0,1.D0,0.217D0, - + 0.398D0,0.506D0,0.595D0,0.684D0,0.768D0,0.852D0,0.923D0,0.976D0, - + 1.D0,0.2490D0,0.4604D0,0.5338D0,0.5703D0,0.7440D0,0.7840D0, - + 0.8460D0,0.8880D0,0.9230D0,0.9650D0,1.D0,0.2490D0,0.4604D0, - + 0.5338D0,0.5703D0,0.7440D0,0.7840D0,0.8460D0,0.8880D0,0.9230D0, - + 0.9650D0,1.D0,0.1666D0,0.3332D0,0.4998D0,0.6664D0,0.8330D0,1.D0, - + 0.6770D0,0.9840D0,1.D0, - + 0.6770D0,0.9840D0,1.D0,0.6190D0,1.D0,0.6190D0,1.D0,0.0602D0, - + 0.1203D0,1.D0,3*1.D0,0.06D0,0.08D0,0.14D0,0.16D0,0.73D0,0.855D0, - + 0.98D0,1.D0,0.08D0,0.16D0,0.92D0,1.D0,0.2335D0,0.4283D0,0.6446D0, - + 0.7099D0,0.8080D0,0.9080D0,0.9380D0,0.9540D0,0.9840D0,1.D0, - + 3*1.D0,0.5D0,1.D0,0.5D0,1.D0,0.08D0,0.16D0,0.92D0,1.D0,0.942D0, - + 1.D0,0.942D0,1.D0,0.2493D0,0.4061D0,0.5602D0,0.6860D0,0.7608D0, - + 0.8305D0,0.8818D0,0.9277D0,0.9691D0,1.D0,0.2493D0,0.4061D0, - + 0.5602D0,0.6860D0,0.7608D0,0.8305D0,0.8818D0,0.9277D0,0.9691D0, - + 1.D0, - & 0.466D0,0.7D0,0.899D0,1.D0,0.466D0,0.7D0,0.899D0,1.D0, ! N1440+- - & 0.3334D0,0.5D0,0.6334D0,0.7634D0,0.8734D0,0.9394D0,1.D0, ! N1710+ - & 0.3334D0,0.5D0,0.6334D0,0.7634D0,0.8734D0,0.9394D0,1.D0, ! N1710- - & 0.5D0, 1.D0, 0.5D0, 1.D0, 0.5D0, 1.0D0, ! pi1+-0 - & 0.6666D0,1.D0, 0.6666D0,1.D0,0.6666D0,1.D0,0.6666D0,1.D0/ ! K0* - DATA AM / 0.0,2*0.511D-3, 2*0.10566, 0.13497, 2*0.13957, - + 2*0.49368, 2*0.49761, 0.93827, 0.93957, 4*0.0,0.93827, - + 0.93957, 2*0.49761, 0.54785,0.95766,2*0.76690,0.76850, - + 2*0.89166D0,2*0.89600,0.78265,1.01946D0,1.18937D0,1.19264D0, - + 1.19745,1.31486,1.32171,1.11568,1.23100,1.23500, - + 1.23400,1.23300,1.38280,1.38370,1.38720, - + 1.53180,1.53500,1.67245,0.,1.44,1.44,1.71,1.71,4*0.0, - + 2*1.86926,1.30,1.30,1.30,4*1.430, 3*0.0, - + 2*1.86484,2.9803,2*1.9685,2*2.1123,2*2.01027,2*2.00697, - + 0.0,3.09692,2.45402,2.4529,2.45376,2.4679,2.4710, - + 2.28646, 2*1.777, 2*0.0, 2.5184,2.5175, 2.5180, 2.6466, - + 2.6461, 2.6975 / - DATA AM2 /0.0,2*2.61121D-07,2*0.011164,0.018217,0.019480, - + 0.019480,0.243720,0.243720,0.247616,0.247616,0.880351, - + 0.882792,0.000000,0.000000,0.000000,0.000000,0.880351, - + 0.882792,0.247616,0.247616,0.300140,0.917113,0.588136, - + 0.588136,0.590592,0.795058,0.795058,0.802816,0.802816, - + 0.612541,1.039299,1.414601,1.422390,1.433887,1.728857, - + 1.746917,1.244742,1.515361,1.525225,1.522765,1.520289, - + 1.912136,1.914626,1.924324,2.346411,2.356225,2.797022, - + 0.,2.0736,2.0736,2.9241,2.9241,4*0.0, 2*3.49414, - + 1.690, 1.690, 1.690, 4*2.0449, 3*0.0, 2*3.477628, 8.882188, - + 2*3.8750,2*4.4618,2*4.041186,2*4.027928, 0.0, 9.590914, 6.022214, - + 6.016718, 6.020938,6.09053, 6.105841, 5.227899, 2*3.158, 2*0.0, - + 6.342339, 6.337806, 6.340323,7.004492, 7.001845, 7.276506/ - DATA AW /24*0.D0,0.022231D0,0.022231D0,0.022231D0,0.002581D0, - & 0.002581D0,0.D0,0.D0,7.20801D-05,1.81476D-05,6*0.D0, - & 0.013689D0,0.013689D0,0.013689D0,0.013689D0,0.001296D0, - & 0.001295D0,0.00155D0,8.281D-05,9.801D-05,0.D0,0.D0,0.09D0, - & 0.01D0,0.09D0,0.01D0,6*0.D0,0.1D0,0.1D0,0.1D0,4*0.27D0, - & 32*0.D0/ - DATA AW2 /24*0.D0,0.022231D0,0.022231D0,0.022231D0,0.002581D0, - & 0.002581D0,0.D0,0.D0,7.20801D-05,1.81476D-05,6*0.D0, - & 0.013689D0,0.013689D0,0.013689D0,0.013689D0,0.001296D0, - & 0.001295D0,0.00155D0,8.281D-05,9.801D-05,0.D0,0.D0,0.09D0, - & 0.01D0,0.09D0,0.01D0,6*0.D0,0.01D0,0.01D0,0.01D0,4*0.0729D0, - & 32*0.D0/ -c IDB is the index to the branching ratios (CBR) and decay channels (KDEC). -c always indicates the first decay channel - DATA IDB / - + 0,0,0,1,2, ! leptons - + 3,5,6,7,13,19,25, ! pions and kaons - + 8*0,30,32,34,39,46,47,48,49,60,62,64,66,51, !69, ! meson resonances - + 73,75,76,77,78,79,81,82,84,86,87,90,93,96,98,100, ! baryons : Sibyll 2.1 - + 0,224,228,232,239,4*0, ! Nucleon resonaces - + 103,113,246,248,250, 252,254,256,258,3*0, - + 123,134,145,204,214,200,202,151,154,157,159,0, - + 161,164,165,166,167,175,179,4*0,189,190,191,192,194,196 / -c KDEC contains decay channels, format is [ND, MAT, LL(1:4)] -c where ND is the number of particles in the final state (max 4) -C MAT is 0, 1 for semi-leptonic (weak decay) or not -c (adds primitive matrix element) -c LL(1:4) are the particle ids of the final state particles - DATA KDEC / - + 3,1,15,2,18,0,3,1,16,3,17,0,2,0,1,1,8*0,2,0,4,17,0,0,2,0,5,18,0, - + 0,2,0,4,17,0,0,2,0,7,6,0,0,3,0,7,7,8,0,3,0,7,6,6,0,3,1,17,4,6,0, - + 3,1,15,2,6,0,2,0,5,18,0,0,2,0,8,6,0,0,3,0,8,8,7,0,3,0,8,6,6,0,3, - + 1,18,5,6,0,3,1,16,3,6,0,3,0,6,6,6,0,3,0,7,8,6,0,3,1,18,5,7,0,3, - + 1,17,4,8,0,3,1,16,3,7,0,3,1,15,2,8,0,2,0,7,8,0,0,2,0,6,6,20*0,1, - + 0,11,3*0,1,0,12,0,0,0,1,0,11,0,0,0,1,0,12,0,0,0,2,0,1,1,0,0,3,0, - + 6,6,6,0,3,0,7,8,6,0,3,0,1,7,8,0,3,0,1,3,2,0, - + 3,0,7,8,23,0, 3,0,6,6,23,0, 2,0,1,27,0,0, 2,0,1,32,0,0, ! eta' - + 2,0,1,1,0,0, 3,0,6,6,6,0, 3,0,1,4,5,0, ! eta' - + 2,0,7,6,0,0, ! rho+ - + 2,0,8,6,0,0, ! rho- - + 2,0,7,8,0,0, ! rho0 - + 2,0,21,7,0,0, 2,0,9,6,0,0, ! K*+ - + 2,0,9,10,0,0, 2,0,11,12,0,0, 3,0,7,8,6,0, 2,0,1,23,0,0, ! phi(1020) - + 2,0,1,6,0,0, 2,0,2,3,0,0, 2,0,4,5,0,0, ! phi(1020) - + 12*0, - + 2,0,22,8,0,0, 2,0,10,6,0,0, ! K*- - + 2,0,9,8,0,0, 2,0,21,6,0,0, ! K*0 - + 2,0,10,7,0,0, 2,0,22,6,0,0, ! K*0 bar - + 3,0,7,8,6,0, 2,0,1,6,0,0, 2,0,7,8,0,0, ! omega - + 24*0, - + 2,0,13,6,0,0,2,0,14,7,0,0,2,0,39,1,0,0,2, ! baryons - + 0,14,8,0,0,2,0,39,6,0,0,2,0,39,8,0,0,2,0,13,8,0,0,2,0, - + 14,6,0,0,2,0,13,7,0,0,2,0,13,6, - + 0,0,2,0,14,7,0,0,2,0,13,8,0,0,2,0,14,6,0,0,2,0,14,8,0,0,2,0, - + 39,7,0,0,2,0,34,6,0,0,2,0,35,7,0,0,2,0,39,6,0,0,2,0,34,8,0,0, - + 2,0,36,7,0,0,2,0,39,8,0,0,2, - + 0,35,8,0,0,2,0,36,6,0,0,2,0,37,6,0,0,2,0,38,7,0,0,2,0, - + 37,8,0,0,2,0,38,6,0,0,2,0,39,10,0,0,2,0,37,8,0,0,2,0,38,6,0,0, - + 3,0,22,7,6,0,3,0,22,9,22,0,2,0,22,7,0,0,3,1,2,15,22,0,3,1,4,17, - + 22,0,3,1,2,15,31,0,3,1,4,17,31,0,2,0,31,25,0,0,3,0,33,7,6,0, - + 3,0,10,7,7,0, - + 3,0,21,8,6,0,3,0,21,10,21,0,2,0,21,8,0,0,3,1,3,16,21,0,3,1,5,18, - + 21,0,3,1,3,16,30,0,3,1,5,18,30,0,2,0,30,26,0,0,3,0,33,8,6,0, - + 3,0,9,8,8,0, - + 2,0,29,7,0,0,2,0,31,6,0,0,2,0,22,6,0,0,2,0,10,7,0,0,2,0,31,27,0, - + 0,2,0,30,27,0,0,2,0,29,25,0,0,3,1,2,15,10,0,3,1,2,15,29,0, - + 3,1,4,17,10,0,3,1,4,17,29,0, - + 2,0,28,8,0,0,2,0,30,6,0,0,2,0,21,6,0,0,2,0,9,8,0,0,2,0,30,27,0, - + 0,2,0,31,27,0,0,2,0,28,26,0,0,3,1,3,16,9,0,3,1,3,16,28,0, - + 3,1,5,18,9,0,3,1,5,18,28,0, - + 3,0,6,21,22,0,3,0,6,9,10,0,3,0,23,6,6,0,3,0,23,7,8,0,3,0,24,6,6, - + 0,3,0,24,7,8,0, - + 2,0,71,7,0,0,2,0,59,6,0,0,2,0,59,1,0,0, - + 2,0,72,8,0,0,2,0,60,6,0,0,2,0,60,1,0,0, - + 2,0,71,6,0,0,2,0,71,1,0,0,2,0,72,6,0,0,2,0,72,1,0,0, - + 2,0,2,3,0,0,2,0,4,5,0,0,3,0,6,7,8,0, - + 2,0,89,7,0,0,2,0,89,6,0,0,2,0,89,8,0,0, - + 3,1,2,15,22,0,3,1,2,15,33,0,3,1,4,17,22,0,3,1,4,17,33,0,2,0,7,22, - + 0,0,2,0,9,22,0,0,2,0,7,33,0,0,2,0,9,33,0,0, - + 3,1,2,15,10,0,3,1,4,17,10,0,2,0,7,10,0,0,2,0,9,10,0,0, - + 3,0,7,10,13,0,3,0,7,22,14,0,3,0,7,8,13,0,3,0,9,10,13,0,3,0,9,22, - + 14,0,3,0,22,8,40,0,3,1,2,15,39,0,3,1,2,15,14,0,3,1,4,17,39,0,3, - + 1,4,17,14,0, - + 2,0,89,7,0,0,2,0,89,6,0,0,2,0,89,8,0,0, - + 2,0,87,6,0,0,2,0,87,1,0,0,2,0,88,6,0,0,2,0,88,1,0,0, - + 3,1,2,15,10,0,3,1,4,17,10,0,2,0,7,10,0,0,2,0,9,10,0,0 , - + 2,0,74,1,0,0 ,2,0,74,6,0,0 , 2,0,75,1,0,0 ,2,0,75,6,0,0, !C=1,S=1 mesons - + 2,0,23,25,0,0, 4,0,9,10,7,6, 3,0,9,10,7,0, 2,0,33,7,0,0, - + 3,1,23,2,15,0, 3,1,33,2,15,0, 2,0,23,7,0,0, 4,0,12,10,7,7, - + 2,0,9,12,0,0, 4,0,7,8,7,8, 2,0,23,26,0,0, 4,0,10,9,8,6, ! | D*(_s) - + 3,0,10,9,8,0, 2,0,33,8,0,0, 3,1,23,3,16,0, 3,1,33,3,16,0,! v - + 2,0,23,8,0,0, 4,0,12,9,8,8, 2,0,10,12,0,0, 4,0,7,8,7,8, ! ---- - & 2,0,14,7,0,0, 2,0,13,6,0,0, 3,0,14,7,6,0, 3,0,13,7,8,0, ! N-res - & 2,0,13,8,0,0, 2,0,14,6,0,0, 3,0,13,6,8,0, 3,0,14,7,8,0, - & 3,0,14,7,6,0, 3,0,13,7,8,0, 2,0,14,7,0,0, 2,0,13,32,0,0, - & 2,0,39,9,0,0, 2,0,13,6,0,0, 2,0,13,23,0,0, - & 3,0,13,8,6,0, 3,0,14,7,8,0, 2,0,13,8,0,0, 2,0,14,32,0,0, - & 2,0,39,21,0,0, 2,0,14,6,0,0, 2,0,14,23,0,0, ! --- - & 2,0,25,8,0,0, 2,0,26,7,0,0, ! pi10 | - & 2,0,25,6,0,0, 2,0,27,7,0,0, ! + v - & 2,0,27,8,0,0, 2,0,26,6,0,0, ! - --- - & 2,0,21,7,0,0, 2,0,9,6,0,0, 2,0,22,8,0,0, 2,0,10,6,0,0, ! k0* | - & 2,0,9,8,0,0, 2,0,21,6,0,0, 2,0,10,7,0,0, 2,0,22,6,0,0/ ! v - DATA LBARP/1,3,2,5,4,6,8,7,10,9,11,12,-13,-14,16,15,18,17,13,14, - + 22,21,23,24,26,25,27,29,28,31,30,32,33,-34,-35,-36,-37,-38,-39, - + -40,-41,-42,-43,-44,-45,-46,-47,-48,-49,0,-51,-52,-53,-54,4*0, - + 60,59,61,63,62,65,64,67,66,3*0,72,71, - + 73,75,74,77,76,79,78,81,80,0,83,-84,-85,-86,-87,-88,-89, - + 91,90,93,92,-94,-95,-96,-97,-98,-99 / - DATA ICHP /0,1,-1,1,-1,0,1,-1,1,-1,0,0,1,0,4*0,-1,0,4*0, !24 - + 1,-1,0,1,-1,4*0,1,0,-1,0,-1,0,2,1,0,-1,1,0,-1,0,-1,-1, !49 - + 0,1,0,1,0,4*0,1,-1,0,1,-1,1,-1,0,0,3*0, !70 - + 0,0,0,1,-1,1,-1,1,-1,0,0,0, !82 - + 0,2,1,0,1,0,1,1,-1,2*0,2,1,0,1,0,0 / ! charmed baryons + tau - - DATA ISTR /8*0,-1,+1,-1,-1,8*0,-1,+1,5*0,-1,+1,-1,+1,2*0, ! mesons - + 3*1,2*2,1,4*0,3*1,2*2,3,0,4*0, ! 54 - + 4*0,2*0,3*0,-1,1,-1,1,3*0,2*0,0,-1,1,-1,1,2*0,2*0,0,0, ! 83 - + 3*0,2*1,0,4*0,3*0,2*1,2 / ! charmed baryons - DATA IBAR /12*0,2*1,4*0,2*-1,13*0,16*1,0,4*1,4*0, - + 2*0,10*0,2*0,0,4*0,2*0,2*0,0,0,6*1,4*0,6*1 / - DATA ICHM /58*0,1,-1,10*0,1,-1,0,1,-1,+1,-1,1,-1,1,-1,0,0, - + 6*1,4*0,6*1/ - DATA NAMP / - + ' ','gam ','e+','e-','mu+','mu-','pi0', - + 'pi+','pi-','k+', 'k-', 'k0l','k0s', - + 'p', 'n', 'nue', 'nueb', 'num', 'numb', 'pbar', 'nbar', - + 'k0', 'k0b', 'eta', 'etap', 'rho+', 'rho-','rho0', - + 'k*+','k*-','k*0','k*0b','omeg', 'phi', 'SIG+', 'SIG0', - + 'SIG-','XI0','XI-','LAM','DELT++','DELT+','DELT0','DELT-', - + 'SIG*+','SIG*0','SIG*-', 'XI*0', 'XI*-', 'OME-', - + ' ','N144_+','N144_0','N171_+','N171_0', - + 4*' ', 'D+', 'D-','pi1_0 ','pi1_+ ','pi1_- ', - + 'k0*_+','k0*_-','k0*_0','k0*_0b', - + 3*' ', 'D0', 'D0b', 'eta_c', - + 'D_s+','D_s-','D*_s+','D*_s-','D*+', 'D*-', 'D*0', 'D*0b', - + ' ', 'J/psi', - + 'SIGc++', 'SIGc+', 'SIGc0','XI_c+','XI_c0','LAM_c+', - + 'tau+ ','tau- ','nut ','nutb ', - + 'SIc*++','SIGc*+','SIGc*0', 'XI_c*+', 'XI_c*0', - + 'OME_c0' / - END -C-> -C======================================================================= - - SUBROUTINE DECPR (LUN) - -C----------------------------------------------------------------------- -C...Print on unit LUN the list of particles and decay channels -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - DOUBLE PRECISION CBR - INTEGER KDEC,LBARP,IDB - COMMON /S_CSYDEC/ CBR(223+16+12+8), KDEC(1338+6*(16+12+8)), - & LBARP(99), IDB(99) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - - DOUBLE PRECISION AW,AW2 - COMMON /S_WIDTH1/ AW(99), AW2(99) - - CHARACTER*6 NAMP - COMMON /S_CNAM/ NAMP (0:99) - DIMENSION LL(4) - SAVE - - 100 FORMAT(/,1X,75('-'),/,28X,'SIBYLL DECAY TABLE') - WRITE(LUN,100) - 101 FORMAT(1X,75('-'),/,2X,'PID',1X,'Particle',6X,'Mass',9X,'Width',/, - + 4X,'Channel',1X,'Br.frac.',1X,'Nf',2X,'MAT',1X, - + 'Final Particles',/,1X,75('-')) - WRITE(LUN,101) - DO L=1,99 - IF(MOD(L,10).EQ.0)WRITE(LUN,101) - IDC = IDB(L)-1 - NC = 0 - WRITE (LUN,10) L,NAMP(L), AM(L), AW(L) - IF(IDC+1 .GT. 0) THEN - CB = 0.D0 -110 IDC=IDC+1 - NC = NC+1 - CBOLD = CB - CB = CBR(IDC) - BR = CB-CBOLD - KD = 6*(IDC-1)+1 - ND = KDEC(KD) - MAT= KDEC(KD+1) - DO J=1,ND - LL(J) = KDEC(KD+1+J) - ENDDO - WRITE (LUN,15) NC,BR,ND,MAT, (NAMP(LL(J)),J=1,ND) - IF (CB .LT. 1.D0) GOTO 110 - ENDIF - ENDDO - RETURN -10 FORMAT(2X,I3,2X,A6,3X,F10.4,3X,F10.4) -15 FORMAT(5X,I2,2X,F9.4,I4,I4,2X,3(A6,2X)) - END - -C======================================================================= - - SUBROUTINE DEC_DEBUG (L,P0, ND, LL, PD) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - CHARACTER*6 NAMP - COMMON /S_CNAM/ NAMP (0:99) - DIMENSION P0(5), LL(10), PD(10,5) - SAVE - - ETOT = 0.D0 - DO J=1,ND - ETOT = ETOT + PD(J,4) - ENDDO - WRITE(*,*) NAMP(IABS(L)),' -> ', (NAMP(IABS(LL(J))),J=1,ND) - WRITE(*,*) ' Ei, Ef = ', P0(4), ETOT, ' L = ', L - RETURN - END -C======================================================================= - - SUBROUTINE DEC_INI - -C----------------------------------------------------------------------- -C decay initialization routine -C sets which particles should decay and wich should be stable -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - DOUBLE PRECISION CBR - INTEGER KDEC,LBARP,IDB - COMMON /S_CSYDEC/ CBR(223+16+12+8), KDEC(1338+6*(16+12+8)), - & LBARP(99), IDB(99) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - SAVE - - if ( ndebug .gt. 0 ) then - write(lun,*)' -----------------------------------------' - write(lun,*)' SIBYLL DEC_INI: setting particle decays!' - write(lun,*)' to be used in stand-alone SIBYLL only ! ' - write(lun,*)' -----------------------------------------' - endif - -C... Definition of stable particles - DO J=4,12 - IDB(J) = -abs(IDB(J)) - ENDDO -c---------------------------------------------------------- -c if the folowing is commented out then all particles -c except leptons, protons and neutrons are UNSTABLE -c---------------------------------------------------------- -c all particles with t<0.3e-10s are considered unstable -c i.e. all the mesons from K0s onwards(K0l is stable) -c---------------------------------------------------------- -C K0s stable - if (ndebug .gt. 0 ) write(lun,*)' making K0s stable..' - IDB(12) = -abs(IDB(12)) - -C Lambda/Anti-lambda stable - if (ndebug .gt. 0 ) write(lun,*)' making LAMBDA stable..' - IDB(39) = -abs(IDB(39)) - -c Sigmas stable - if (ndebug .gt. 0 ) write(lun,*)' making SIGMAs stable..' - do i=34,36 - IDB(i) = -abs(IDB(i)) - enddo - IDB(35) = -abs(IDB(35)) -C Eta stable -cfr in reasonable contex eta is never stable ! - -cdh initializing the pythia routines is done in corsika/SIBINI -c IF(IPAR(44).eq.1)THEN -c use pythia decay routine -c if (ndebug .gt. 0 ) write(LUN,*) ' using PYTHIA decay routine...' -c CALL PYDEC_INI -c endif - - if (ndebug .gt. 0 ) - * write(lun,*)' ------------------------------------------' - end -C======================================================================= - - SUBROUTINE STRING_FRAG_4FLV - + (E0,IFL1,IFL2,PX1,PY1,PX2,PY2,IFBAD,IFQRK) - -C----------------------------------------------------------------------- -C. This routine fragments a string of energy E0 -C. the ends of the strings have flavors IFL1 and IFL2 -C. the particles produced are in the jet-jet frame -C. with IFL1 going in the +z direction -C. E0 = total energy in jet-jet system -C. This version consider also a primordial pT attached -C. to the ends of the string PX1,PY1, PX2,PY2 -C. OUTPUT: IFBAD =1 kinematically impossible decay -c 2010.03.11 ifqrk - leading quark flag -c 1 in valence quark, 0 in others -c -c Modified Nov. 91. RSF and TSS to fragment symmetrically -c ie forward and backward are fragmented as leading. -c Change- Dec. 92 RSF. call to ptdis moved- to use flavor -c of NEW quark in fragmentation. -c -c includes 4 FLAVORS \FR'13 -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - DOUBLE PRECISION ZLIST - COMMON /S_ZLIST/ ZLIST(8000) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT - DOUBLE PRECISION FAin, FB0in - COMMON /S_CZDIS/ FAin, FB0in - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - INTEGER LRNK - COMMON /SIB_RNK/ LRNK(8000) - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - - DIMENSION WW(2,2), PTOT(4), PX(3),PY(3),IFL(3),ILEAD(2) - DIMENSION LPOINT(8000), PMQ(3), IRNK(2), LRES(6:99) - LOGICAL LRANK - SAVE - DATA LRANK/.true./ - - DATA (LRES(I),I=6, 39) - & /27,25,26,28,29,9,9,41,42,19*0,44,45,46,47,48,39/ - DATA (LRES(I),I=40, 49) /40,41,42,43,44,45,46,47,48,49/ - DATA (LRES(I),I=50, 83) - & /0,51,52,53,54,4*0,78,79,10*0,71,72,73,76,77,76, - & 77,78,79,80,81,0,83/ - DATA (LRES(I),I=84, 99) /94,95,96,97,98,89,4*0,94,95,96,97,98,99/ - - IF(Ndebug.gt.3) THEN - WRITE(LUN,*) - & ' STRING_FRAG_4FLV: called with ', - & '(E0,IFL1,IFL2,PX1,PY1,PX2,PY2,IVAL)', - & E0,IFL1,IFL2,PX1,PY1,PX2,PY2,IFQRK - WRITE(LUN,*)' STRING_FRAG_4FLV: NP before fragmentation:',NP - ENDIF - -c... remember initial values -c strange fraction - par2_def = PAR(2) -c vector model - IPAR11_def = IPAR(11) -c vector fraction - PAR5_def = PAR(5) -c charm fraction - PAR24_def = PAR(24) -c popcorn fraction - PAR8_def = PAR(8) - -C...initialise - NTRY = 0 - IFBAD = 0 - 200 NTRY = NTRY + 1 - -c reset parameters after rejection - PAR(2) = PAR2_def - PAR(5) = PAR5_def - PAR(24) = PAR24_def - IPAR(11) = IPAR11_def - PAR(8) = PAR8_def - - IF (NTRY .GT. 50) THEN - IFBAD = 1 - RETURN - ENDIF - I = NP - DO K=1,2 - WW(K,1) = 1.D0 - WW(K,2) = 0.D0 - IRNK(K) = 0 - ENDDO - PX(1) = PX1 - PY(1) = PY1 - PX(2) = PX2 - PY(2) = PY2 - PX(3) = 0.D0 - PY(3) = 0.D0 - PTOT (1) = PX1+PX2 - PTOT (2) = PY1+PY2 - PTOT (3) = 0.D0 - PTOT (4) = E0 -c turn on/off splitting of leading diquark -c (1: no splitting, 0: diq may be split, producing leading meson) - IFL(1) = IFL1+ISIGN(100,IFL1)*MIN(1,IABS(IFL1)/10)*IPAR(90) - IFL(2) = IFL2+ISIGN(100,IFL2)*MIN(1,IABS(IFL2)/10)*IPAR(90) - PMQ(1) = QMASS(IFL(1)) - PMQ(2) = QMASS(IFL(2)) - - ILEAD(1) = 0 - ILEAD(2) = 0 - IBLEAD = 0 - IF(IABS(IFQRK).eq.1) THEN - ILEAD(1) = 1 - ILEAD(2) = 1 - ENDIF -c switch leading baryon fragmentation function on/off - IF(IPAR(20).eq.0) GOTO 300 -c set flags for leading baryon -C -C SET FLAG FOR GENERATION OF LEADING PARTICLES. -C "AND" IS FOR PPBAR ( DIQUARK AT BOTH ENDS) -C "OR" IS FOR PP, PPI, ( DIQUARK AT ONE END.) -C - IF (IABS(IFL1) .GT. 10 .AND. IABS(IFL2) .GT. 10) THEN - IBLEAD = 2 - I = I+1 - JT = INT(1.5D0+S_RNDM(0)) - GOTO 350 - ENDIF - IF (IABS(IFL1) .GT. 10 .OR. IABS(IFL2) .GT. 10) THEN - IBLEAD = 1 - I = I+1 - JT = 2 - IF (IABS(IFL2) .GT. 10) JT = 1 - GOTO 350 - ENDIF - -C...produce new particle: side, pT - 300 continue - I=I+1 - if(i.gt.8000) then - write(LUN,'(1x,a,i8)') - & ' STRING_FRAG_4FLV: no space left in S_PLIST:',I - CALL SIB_REJECT('STRING_FRAG_4FLV') - endif - IF (IBLEAD .GT. 0) THEN - JT = 3 - JT - GO TO 350 - ENDIF -c -c 349 continue -c choose side (1 or 2) - JT=INT(1.5D0+S_RNDM(0)) -c set 'other' side - 350 JR=3-JT -c remember side particle was produced - LPOINT(I) = JT -c increase rank counter - IRNK(JT) = ISIGN(ABS(IRNK(JT))+1,1-JT) -c set particle rank - LRNK(I) = IRNK(JT) - - nporig(I)= Ipflag*2 + KINT - niorig(I)= iiflag - IF(ILEAD(JT).eq.1) nporig(I)= -1 * nporig(I) - nforig(I) = 0 - - 555 CONTINUE -c -c.... CHARM config -c - charmPARdef=PAR(24) - IF(IPAR(15).lt.9)THEN -c no s->c - PAR(24) = 0.D0 - IF (IFQRK.EQ.1) THEN -c ifqrk = 1 (valence quark attatched) - IF(IPAR(15).ge.1) THEN -c enforce s->c at string end - IF(ILEAD(JT).eq.1) PAR(24)=charmPARdef -c produce charm in all strings - IF(IPAR(15).eq.8) PAR(24)=charmPARdef - ELSE -c compatibility to broken version - PAR(24)=charmPARdef - ENDIF - ELSE -c no val. quark at string end or diff - PAR(24)=charmPARdef - ENDIF - ENDIF -c -C.... Vector meson config -c -c increase vec.meson ratio for leading particle in str. diff. - IF(IFQRK.eq.-1)THEN - IF(IPAR(66).eq.1)THEN - IF(ILEAD(JT).EQ.1)THEN - IF(IBAR(IABS(kb)).eq.0.or.IPAR(70).eq.1) PAR(5) = PAR(113) - ENDIF - ELSEIF(IPAR(66).eq.2)THEN - IF(IBAR(IABS(kb)).eq.0.or.IPAR(70).eq.1) PAR(5) = PAR(113) - - ELSEIF(IPAR(66).eq.3)THEN -c increase vector meson rate for meson beam -c on beam side (rank+) only! - IF(ILEAD(JT).EQ.1)THEN - IF(IBAR(IABS(kb)).eq.0.and.IRNK(JT).gt.0) - & PAR(5) = PAR(113) -c always incr. vector rate for diff. strings independent of beam type - IF(IPAR(70).eq.1) PAR(5) = PAR(113) - ENDIF - - ENDIF - endif - -c... switch off for proton beam - IF(IPAR(31).eq.1)then -c print*,'ipar11,ipar11def,1-kb/13,kb',IPAR(11),ipar11_def, -c + max((1-iabs(kb)/13),0),kb - IPAR(11) = IPAR(11)*max((1-iabs(kb)/13),0) ! meson beam only - endif -c increase vec.meson ratio for leading quarks - IF(IABS(IFQRK).eq.1)THEN - IF(IPAR(11).le.-5.and.IPAR(11).ge.-7 - & .and.ilead(jt).eq.1) - & PAR(5) = 9.D0 - -c increase vec.meson ratio for diff. - IF(IFQRK.eq.-1.and.IPAR(11).le.-4.and.IPAR(11).ge.-7) - & PAR(5) = 9.D0 - -c increase vec.meson ratio for leading particle in str. diff. (lvec16) - IF(IFQRK.eq.-1.and.IPAR(11).le.-11.and.ILEAD(JT).EQ.1) - & PAR(5) = 99.D0 - ENDIF - -c... suppress leading charm for pion and kaon beams - IF(IPAR(15).eq.11)then - IF((1-IABS(KB)/13)*ILEAD(JT).gt.0) PAR(24)=0.D0 - ENDIF - -C... suppress rank-1 baryon through popcorn - IF(IBLEAD .GT. 0.and.abs(ifl(jt)).gt.10 - & .and.abs(ifl(3)).lt.10) PAR(8)=PAR(63)*PAR(8) - -C... leading strange/charm - IF(ILEAD(JT).eq.1.and.IPAR(39).gt.0) PAR(2) = PAR(65) - -c scale valence string end charm for assoc. prod. - IF(IPAR(41).eq.1)THEN - IF(ILEAD(JT).eq.1.and.IFQRK.eq.1) PAR(24) = PAR(71)*PAR(24) - ENDIF - -c suppress direct pi0 for meson projectiles -c rate set by par( 137 ) - ipar82_def = IPAR(82) -c skip if baryon projectile or minijet (i.e no flavor attached) - if(ibar(iabs(kb)).ne.0.or.ifqrk.eq.0) IPAR(82) = 0 - -c suppress direct omega for meson projectiles -c rate set by par( 138 ) - ipar83_def = IPAR(83) -c skip if baryon projectile or central string - if(ibar(iabs(kb)).ne.0.or.(ifqrk.gt.0.and.IPAR(83).eq.2)) - & IPAR(83) = 0 - -c change rho0 / omega ratio - PAR143_def = PAR(143) - IF(IPAR(81).eq.1)THEN -c change if beam is meson - if(ibar(iabs(kb)).eq.0) PAR(143) = PAR(144) - ELSEIF(IPAR(81).eq.2)THEN -c change if beam is meson, on meson side only - if(ibar(iabs(kb)).eq.0.and.IRNK(JT).gt.0) PAR(143) = PAR(144) - ELSEIF(IPAR(81).eq.3)THEN -c change if beam is meson, on meson side only, for leading only - if(ibar(iabs(kb)).eq.0.and.ISIGN(ILEAD(JT),IRNK(JT)).eq.1) - & PAR(143) = PAR(144) - ELSEIF(IPAR(81).eq.4)THEN -c change if beam is meson, on meson side only, for diff. strings only - if(ibar(iabs(kb)).eq.0.and.IFQRK.eq.-1) - & PAR(143) = PAR(144) - ELSEIF(IPAR(81).eq.5)THEN -c change if beam is meson, for leading on meson side only and -c for diff. strings only - if(ibar(iabs(kb)).eq.0.and.IFQRK.eq.-1.and. - & ISIGN(ILEAD(JT),IRNK(JT)).eq.1) PAR(143) = PAR(144) - ENDIF - -C...particle ID and pt. - - CALL SIB_I4FLAV (IFL(JT), 0, IRNK(JT), IFL(3), LLIST(I)) - -c reset strange fraction - PAR(2) = PAR2_def -c reset vec.meson production - PAR(5) = PAR5_def -c reset charm fraction - PAR(24) = PAR24_def -c reset popcorn - PAR(8) = par8_def - -c reset pi0 suppr. - IPAR(82) = ipar82_def - -c reset omega suppr. - IPAR(83) = ipar83_def - -c reset rho0 / omega ratio - PAR(143) = PAR143_def - -c reject iso 0 spin 1 for meson projectiles - IF(IBAR(IABS(KB)).eq.0)THEN -c reject leading spin1,isospin singlett - IF(ILEAD(JT).EQ.1.and.LLIST(I).eq.32.and. - + PAR(136).gt.S_RNDM(I)) LLIST(I) = 27 - endif - -c replace leading or all pi0 with rho0 - IF(IFQRK.eq.-1) THEN - IF(IPAR(67).eq.1)THEN - IF(ILEAD(JT).EQ.1) THEN -c replace leading pi0 with rho0 - IF(ABS(LLIST(I)).EQ.6) LLIST(I) = 27*isign(1,LLIST(I)) - ENDIF - ELSEIF(IPAR(67).eq.2)THEN -c replace all pi0 with rho0 for all beams - IF(ABS(LLIST(I)).EQ.6) LLIST(I) = 27*isign(1,LLIST(I)) - ELSEIF(IPAR(67).eq.3)THEN -c replace all pi0 with rho0 for meson beam only - IF(IBAR(IABS(KB)).eq.0)THEN - IF(ABS(LLIST(I)).EQ.6) LLIST(I) = 27*isign(1,LLIST(I)) - ENDIF - ELSEIF(IPAR(67).eq.4)THEN -c replace all pi0 with rho0 for meson beam only -c replace some beam mesons with their vector partner - IF(IBAR(IABS(KB)).eq.0)THEN - IF(ABS(LLIST(I)).EQ.6) LLIST(I) = 27*isign(1,LLIST(I)) -c reject leading spin1,isospin singlett - IF(ILEAD(JT).EQ.1.and.LLIST(I).eq.32.and. - + PAR(136).gt.S_RNDM(I)) LLIST(I) = 27 - IF(S_RNDM(0).lt.PAR(120).and.LLIST(I).eq.KB) - & LLIST(I) = LRES(LLIST(I)) - ENDIF - ENDIF - ENDIF - -c replace leading pi0 by rho0's - IF(IABS(IFQRK).eq.1)THEN - IF(ABS(IPAR(11)).ge.2.and.IPAR(11).ge.-3)THEN - IF(ilead(jt).EQ.1) then - IF(ABS(LLIST(I)).EQ.6) THEN - LLIST(I) = 27*isign(1,LLIST(I)) - endif - endif - -c replace leading pi0 in string diff by rho0's (lvec15) - ELSEIF(IFQRK.eq.-1.and.IPAR(11).eq.-10)THEN - IF(ILEAD(JT).EQ.1) THEN - IF(ABS(LLIST(I)).EQ.6) THEN - LLIST(I) = 27*isign(1,LLIST(I)) - ENDIF - ENDIF -c replace leading pi0 in string diff by rho0's -c in addition to increased leading vec.meson ratio (lvec20) - ELSEIF(IFQRK.eq.-1.and.IPAR(11).eq.-15)THEN - IF(ILEAD(JT).EQ.1) THEN - IF(ABS(LLIST(I)).EQ.6) THEN - LLIST(I) = 27*isign(1,LLIST(I)) - ENDIF - ENDIF -c replace leading omega in string diff by rho0's -c in addition to increased leading vec.meson ratio (lvec21) - ELSEIF(IFQRK.eq.-1.and.IPAR(11).eq.-16)THEN - IF(ILEAD(JT).EQ.1) THEN - IF(ABS(LLIST(I)).EQ.32) - & LLIST(I) = 27*isign(1,LLIST(I)) - ENDIF -c replace leading omega in string diff by rho0's -c suppress pi0 in diff. strings -c in addition to increased leading vec.meson ratio (lvec22) - ELSEIF(IFQRK.eq.-1.and.IPAR(11).eq.-17)THEN - IF(ILEAD(JT).EQ.1) THEN -c print*,'replacing leading omega with rho0' - IF(ABS(LLIST(I)).EQ.32) - & LLIST(I) = 27*isign(1,LLIST(I)) - ENDIF - IF(LLIST(I).EQ.6) then -c print*,'pi0 found! start again.. ' - GOTO 555 - endif - -c replace all for diff. - ELSEIF(IFQRK.eq.-1.and.IPAR(11).lt.0.and. - & IPAR(11).ge.-3) then - IF(ABS(LLIST(I)).EQ.6) LLIST(I) = 27*isign(1,LLIST(I)) - -c increased vec.meson ratio and replace pi0 with rho0 in str.diff - ELSEIF(IFQRK.eq.-1.and.IPAR(11).eq.-7) then - IF(ABS(LLIST(I)).EQ.6) LLIST(I) = 27*isign(1,LLIST(I)) - -c replace leading pi's by vec.mesons, iso-spin conserving - ELSEIF(IPAR(11).eq.-8.and.IPAR(11).lt.0)THEN - PAR(5) = 9.D0 - IF(ilead(jt).EQ.1.and. - $ INT((PAR(5)+1.D0)*S_RNDM(0)).gt.1) then - IF(ABS(LLIST(I)).EQ.6) LLIST(I) = 27*isign(1,LLIST(I)) - IF(ABS(LLIST(I)).EQ.7) LLIST(I) = 25*isign(1,LLIST(I)) -c IF(ABS(LLIST(I)).EQ.8) LLIST(I) = 26*isign(1,LLIST(I)) - endif - -c replace almost all for diff. - ELSEIF(IFQRK.eq.-1.and.IPAR(11).eq.-8.and.IPAR(11).lt.0) then - PAR(5) = 9.D0 - if( INT((PAR(5)+1.D0)*S_RNDM(0)).gt.1 ) then - IF(ABS(LLIST(I)).EQ.6) LLIST(I) = 27*isign(1,LLIST(I)) - IF(ABS(LLIST(I)).EQ.7) LLIST(I) = 25*isign(1,LLIST(I)) - endif - -c replace leading pi0's by vec.mesons - ELSEIF(IPAR(11).eq.-9.and.IPAR(11).lt.0)THEN - PCHF = 0.1D0 - IF(ilead(jt).EQ.1.and.ABS(LLIST(I)).EQ.6) - & LLIST(I) = 27*isign(1,LLIST(I)) - if(ilead(jt).EQ.1.and.ABS(LLIST(I)).EQ.7)then - if(S_RNDM(0).lt.PCHF) LLIST(I) = 25*isign(1,LLIST(I)) - endif - -c replace for string diff. - ELSEIF(IFQRK.eq.-1.and.IPAR(11).eq.-9) then - IF(ABS(LLIST(I)).EQ.6) - & LLIST(I) = 27*isign(1,LLIST(I)) - if(ABS(LLIST(I)).EQ.7)then - if(S_RNDM(0).lt.PCHF) - & LLIST(I) = 25*isign(1,LLIST(I)) - endif - ELSE - CONTINUE - ENDIF - ENDIF - -c reset vec.meson ratio - PAR(5) = 0.3D0 - IF(IABS(IFQRK).eq.1) ILEAD(JT) = 0 - - PMQ(3) = QMASS(IFL(3)) - P(I,5) = AM(IABS(LLIST(I))) - CALL PTDIS_4FLV (IFL(3), PX(3),PY(3)) - -C...fill transverse momentum - P(I,1) = PX(JT) + PX(3) - P(I,2) = PY(JT) + PY(3) - XMT2 = P(I,5)**2+P(I,1)**2+P(I,2)**2 - -C...test end of fragmentation - - WREM2 = PTOT(4)**2-PTOT(1)**2-PTOT(2)**2-PTOT(3)**2 -c IF (WREM2 .LT. 0.1) GOTO 200 - IF (WREM2 .LT. 0.1D0) GOTO 200 -c WMIN = PMQ(1)+PMQ(2)+2.*PMQ(3)+ 1.1 + (2.*S_RNDM(0)-1.)*0.2 - WMIN=PMQ(1)+PMQ(2)+2.D0*PMQ(3)+PAR(59)+(2.D0*S_RNDM(0)-1.D0)*0.2D0 - IF (WREM2 .LT. WMIN**2) Then - if (IABS(ifl(3)).ne.3.and.IABS(IFL(3)).ne.4) GOTO 400 - goto 200 - endif - -C...Choose z - IF(IABS(IFQRK).eq.1) THEN -c valence strings: ( str.diff and non diff. ) - IF(IPAR(11).EQ.1) THEN -c use hard distribution for leading quarks ( no exchange ) - IF(ILEAD(JT).eq.1) THEN - Z = ZBLEAD (IABS(LLIST(I))) - ELSE - IF(IBLEAD .GT. 0.and.iabs(ifl(jt)).gt.10 - & .and.iabs(ifl(3)).lt.10) THEN - Z = ZBLEAD (IABS(LLIST(I))) - IBLEAD = IBLEAD - 1 - ELSE - Z = ZDIS_4FLV (IFL(3),ifl(jt),XMT2) - ENDIF - ENDIF -c use hard frag. for leading particles - ELSEIF(IPAR(11).ge.3.or.IPAR(11).eq.-3.or.IPAR(11).eq.-6 - & .or.IPAR(11).eq.-7) THEN - IF(ILEAD(jt).eq.1) THEN - Z = ZBLEAD (IABS(LLIST(I))) - ELSE - IF(IBLEAD .GT. 0.and.iabs(ifl(jt)).gt.10 - & .and.iabs(ifl(3)).lt.10) THEN - Z = ZBLEAD (IABS(LLIST(I))) - IBLEAD = IBLEAD - 1 - ELSE - Z = ZDIS_4FLV (IFL(3),ifl(jt),XMT2) - ENDIF - ENDIF - ELSEIF(IPAR(11).EQ.-11) THEN -c very hard leading frag. for diff and non. diff val. strings (lvec16) - IF(IBLEAD .GT. 0.and.iabs(ifl(jt)).gt.10) THEN - Z = ZBLEAD (IABS(LLIST(I))) - ELSEIF(ILEAD(jt).eq.1)THEN - Z = 1.D0 - ZDISN(1) - ELSE - Z = ZDIS_4FLV (IFL(3),ifl(jt),XMT2) - ENDIF - - ELSEIF(IPAR(11).EQ.-12.OR.IPAR(11).LE.-15.or.IPAR(68).eq.1)THEN -c very hard leading frag. for diff. val. strings only (lvec17) - IF(IBLEAD .GT. 0.and.iabs(ifl(jt)).gt.10) THEN - Z = ZBLEAD (IABS(LLIST(I))) - ELSEIF(ILEAD(jt).eq.1.and.IFQRK.eq.-1)THEN - Z = 1.D0 - ZDISN(1) - ELSE - Z = ZDIS_4FLV (IFL(3),ifl(jt),XMT2) - ENDIF - - ELSEIF(IPAR(11).EQ.-13.AND.IFQRK.eq.-1) THEN -c hard leading frag. for diff. val. strings only (lvec18) - IF(IBLEAD .GT. 0.and.iabs(ifl(jt)).gt.10) THEN - Z = ZBLEAD (IABS(LLIST(I))) - ELSEIF(ILEAD(jt).eq.1)THEN - Z = S_RNDM(JT) - ELSE - Z = ZDIS_4FLV (IFL(3),ifl(jt),XMT2) - ENDIF - ELSEIF(IPAR(11).EQ.-14.AND.IFQRK.eq.-1) THEN -c hard leading frag. for diff. AND ndiff. val. strings (lvec19) - IF(IBLEAD .GT. 0.and.iabs(ifl(jt)).gt.10) THEN - Z = ZBLEAD (IABS(LLIST(I))) - ELSEIF(ILEAD(jt).eq.1)THEN - Z = S_RNDM(JT) - ELSE - Z = ZDIS_4FLV (IFL(3),ifl(jt),XMT2) - ENDIF - - ELSE - -c hard leading baryons only ( standard ) - IF(IBLEAD .GT. 0.and.iabs(ifl(jt)).gt.10 - & .and.abs(ifl(3)).lt.10) THEN -c print*,'calling zblead: i,id,jt,ncall', i,llist(i),jt,ncall - IF(IPAR(20).eq.3)THEN -c use lund function with different parameters for leading baryon - fa_def = FAin - fb_def = FB0in - FAin = PAR(57) - FB0in = PAR(58) - z = zdis_4flv(IFL(3),ifl(jt),xmt2) -c set parameters to initial values again - FAin = fa_def - FB0in = fb_def - ELSE - Z = ZBLEAD (IABS(LLIST(I))) - ENDIF - IBLEAD = IBLEAD - 1 - ELSE - Z = ZDIS_4FLV (IFL(3),ifl(jt),XMT2) - ENDIF - ENDIF - ELSE -c non valence string - IF (IBLEAD .GT. 0.and.iabs(ifl(jt)).gt.10 - & .and.iabs(ifl(3)).lt.10) THEN -C Special frag. for leading Baryon only -c print*,'calling zblead: i,id,jt,ncall', i,llist(i),jt,ncall - Z = ZBLEAD (IABS(LLIST(I))) - IBLEAD = IBLEAD - 1 - ELSE - Z = ZDIS_4FLV (IFL(3),ifl(jt),XMT2) - ENDIF - ENDIF - IF(IPAR(20).eq.2)IBLEAD = 2 - IF(IFQRK.eq.1) ILEAD(JT) = 0 - - ZLIST(I) = Z - WW(JT,2) = Z*WW(JT,1) - WW(JR,2) = XMT2/(WW(JT,2)*E0**2) - - P(I,3) = WW(1,2)*0.5D0*E0 - WW(2,2)*0.5D0*E0 - P(I,4) = WW(1,2)*0.5D0*E0 + WW(2,2)*0.5D0*E0 - - DO J=1,4 - PTOT (J) = PTOT(J) - P(I,J) - ENDDO - DO K=1,2 - WW(K,1) = WW(K,1) - WW(K,2) - ENDDO - -C...Reset pT and flavor at ends of the string - PX(JT) = -PX(3) - PY(JT) = -PY(3) - IFL(JT) =-IFL(3) - PMQ(JT) = PMQ(3) - - GOTO 300 - -C...Final two hadrons - 400 IAFL1 = IABS(mod(IFL(JR),100)) - IAFL2 = IABS(mod(IFL(3),100)) - IF(NDEBUG.gt.5) - & write(lun,*)'STRING_FRAG: final flavors:', IFL(JR), -IFL(3) - -C.. check if flavor combination is allowed.. - -c reject anti-baryon next to leading baryon -c remaining anti-quark from leading baryon is marked by id+100 - IF((IABS(IFL(JR)).gt.100.and.IAFL2.gt.10).or. - & (IABS(IFL(3)).gt.100.and.IAFL1.gt.10)) GOTO 200 - - IF(IPAR(40).eq.0)THEN -c reject two diquarks, two anti-diquarks AND diquark anti-diquark pairs - IF (IAFL1*IAFL2 .GT. 100) GOTO 200 - ELSE -c ONLY reject two diquarks or two anti-diquarks (unphysical) -c AND KEEP diquark anti-diquark pairs - IF (mod(IFL(JR),100)*mod(IFL(3),100).GT.100) GOTO 200 - ENDIF - - IF ((IAFL1/10.eq.4.or.mod(IAFL1,10).eq.4) - + .and.(IAFL2/10.eq.4.or.mod(IAFL2,10).eq.4)) - + GOTO 200 ! reject two charm quarks - -C.... Vector meson config -c increase vec.meson ration for diff. - IF(IFQRK.eq.-1.and.IPAR(11).le.-4.and.IPAR(11).gt.-8) PAR(5) =9.D0 -c increase vec.meson ration for leading quarks in valence interactions - IF(IABS(IFQRK).eq.1.and.IPAR(11).le.-5.and.ilead(jr).eq.1 - & .and.IPAR(11).gt.-8) PAR(5) = 9.D0 - -c suppress direct pi0 for meson projectiles -c rate set by par( 137 ) - 666 ipar82_def = IPAR(82) -c skip if baryon projectile - if(ibar(iabs(kb)).ne.0.or.ifqrk.eq.0) IPAR(82) = 0 - -c suppress direct omega for meson projectiles -c rate set by par( 138 ) - ipar83_def = IPAR(83) -c skip if baryon projectile or central string - if(ibar(iabs(kb)).ne.0.or.(ifqrk.gt.0.and.IPAR(83).eq.2)) - & IPAR(83) = 0 - -c set current rank - IRNK(JR)=ISIGN(IABS(IRNK(JR))+1,1-JR) - -c change rho0 / omega ratio - IF(IPAR(81).eq.1)THEN -c change if beam is meson - if(ibar(iabs(kb)).eq.0) PAR(143) = PAR(144) - ELSEIF(IPAR(81).eq.2)THEN -c change if beam is meson, on meson side only - if(ibar(iabs(kb)).eq.0.and.IRNK(JR).gt.0) PAR(143) = PAR(144) - ELSEIF(IPAR(81).eq.3)THEN -c change if beam is meson, on meson side only, for leading only - if(ibar(iabs(kb)).eq.0.and.ISIGN(ILEAD(JR),IRNK(JR)).eq.1) - & PAR(143) = PAR(144) - ELSEIF(IPAR(81).eq.4)THEN -c change if beam is meson, on meson side only, for diff. strings only - if(ibar(iabs(kb)).eq.0.and.IFQRK.eq.-1) - & PAR(143) = PAR(144) - ELSEIF(IPAR(81).eq.5)THEN -c change if beam is meson, for leading on meson side only and -c for diff. strings only - if(ibar(iabs(kb)).eq.0.and.IFQRK.eq.-1.and. - & ISIGN(ILEAD(JR),IRNK(JR)).eq.1) PAR(143) = PAR(144) - ENDIF - -c increase vec.meson ratio for leading particle in str. diff. - IF(IPAR(66).eq.1)THEN - IF(ILEAD(JT).EQ.1.and.IFQRK.eq.-1)THEN - IF(IBAR(IABS(kb)).eq.0.or.IPAR(70).eq.1) PAR(5) = PAR(113) - ENDIF - - ELSEIF(IPAR(66).eq.2)THEN - IF(IFQRK.eq.-1)THEN - IF(IBAR(IABS(kb)).eq.0.or.IPAR(70).eq.1) PAR(5) = PAR(113) - ENDIF - - ELSEIF(IPAR(66).eq.3)THEN -c increase vector meson rate for meson beam -c on beam side (rank+) only! - IF(IFQRK.eq.-1)THEN - IF(ILEAD(JR).EQ.1)THEN - IF(IBAR(IABS(kb)).eq.0.and.IRNK(JR).gt.0) - & PAR(5) = PAR(113) -c always incr. vector rate for diff. strings independent of beam type - IF(IPAR(70).eq.1) PAR(5) = PAR(113) - ENDIF - ENDIF - ENDIF - - CALL SIB_I4FLAV (IFL(JR), -IFL(3), IRNK(JR), IFLA, LLIST(I+1)) - - IPAR(82) = ipar82_def - IPAR(83) = ipar83_def - PAR(143) = PAR143_def - - nporig(I+1)= Ipflag*2 + KINT - niorig(I+1)= iiflag - IF(ILEAD(1).eq.1.or.ILEAD(2).eq.1) nporig(I+1)= -1 * nporig(I+1) - -c replace leading or all pi0 with rho0 - IF(IFQRK.eq.-1) THEN - IF(IPAR(67).eq.1)THEN - IF(ILEAD(JR).EQ.1) THEN - IF(IABS(LLIST(I+1)).EQ.6) - & LLIST(I+1) = 27*isign(1,LLIST(I+1)) - ENDIF - ELSEIF(IPAR(67).eq.2)THEN - IF(IABS(LLIST(I+1)).EQ.6) LLIST(I+1) =27*isign(1,LLIST(I+1)) - ELSEIF(IPAR(67).eq.3)THEN - IF(IBAR(IABS(KB)).eq.0)THEN - IF(ABS(LLIST(I+1)).EQ.6)LLIST(I+1)=27*isign(1,LLIST(I+1)) - ENDIF - ENDIF - ENDIF - -c replace all for diff. - IF(IABS(IFQRK).EQ.1)THEN - IF(IFQRK.eq.-1.and.IPAR(11).lt.0 - & .and.IPAR(11).ge.-3) then - IF(ABS(LLIST(I+1)).EQ.6) LLIST(I+1) = 27*isign(1,LLIST(I+1)) - endif -c replace all for leading val. - IF(IPAR(11).le.-2.and.IPAR(11).ge.-3) then - if( ilead(jr).eq.1 ) then - IF(IABS(LLIST(I+1)).EQ.6) - & LLIST(I+1) = 27*isign(1,LLIST(I+1)) - endif - endif - -c increased vec.meson ratio and replace pi0 with rho0 - IF(IFQRK.eq.-1.and.IPAR(11).eq.-7) then - IF(IABS(LLIST(I+1)).EQ.6) LLIST(I+1) = 27*isign(1,LLIST(I+1)) -c IF(ABS(LLIST(I+1)).EQ.7) LLIST(I+1) = 25*isign(1,LLIST(I+1)) - endif - -c replace all for diff. ( same as lvec6 but for rhop as well ) -c reset vec.meson ratio - IF(IFQRK.eq.-1.and.IPAR(11).eq.-8) then - PAR(5) = 9.D0 - if( INT((PAR(5)+1.D0)*S_RNDM(0)).gt.1 ) then - IF(IABS(LLIST(I+1)).EQ.6) - & LLIST(I+1) = 27*isign(1,LLIST(I+1)) - IF(IABS(LLIST(I+1)).EQ.7) - & LLIST(I+1) = 25*isign(1,LLIST(I+1)) - endif - endif -c replace leading pseudoscalar by vector - IF(IPAR(11).eq.-8.and.ilead(jr).eq.1) then - PAR(5) = 9.D0 - if( INT((PAR(5)+1.D0)*S_RNDM(0)).gt.1 ) then - IF(IABS(LLIST(I+1)).EQ.6) - & LLIST(I+1) = 27*isign(1,LLIST(I+1)) - IF(IABS(LLIST(I+1)).EQ.7) - & LLIST(I+1) = 25*isign(1,LLIST(I+1)) - endif - endif - -c replace all pi0 for string diff.( same as lvec7 but for rhop as well ) - IF(IFQRK.eq.-1.and.IPAR(11).eq.-9) then - if(IABS(LLIST(I+1)).EQ.6) LLIST(I+1) =27*isign(1,LLIST(I+1)) - endif -c replace leading pi0 by vector - IF(IPAR(11).eq.-9.and.ILEAD(JR).eq.1) then - if(IABS(LLIST(I+1)).EQ.6) LLIST(I+1) =27*isign(1,LLIST(I+1)) - endif - -c replace leading omega in string diff by rho0's -c suppress pi0 in diff. strings -c in addition to increased leading vec.meson ratio (lvec22) - IF(IFQRK.eq.-1.and.IPAR(11).eq.-17)THEN - IF(IABS(LLIST(I+1)).EQ.6)THEN -c print*,'found pi0, restarting..' - GOTO 666 - ENDIF - ENDIF - ILEAD(JR)= 0 - ENDIF - -c reject iso 0 spin 1 (omega) for meson projectiles - IF(IBAR(IABS(KB)).eq.0)THEN -c reject leading spin1,isospin singlett - IF(ILEAD(JR).EQ.1.and.LLIST(I+1).eq.32.and. - + PAR(136).gt.S_RNDM(I)) LLIST(I+1) = 27 - endif - -c reset vec.mes. ratio - PAR(5) = PAR5_def - PAR(24) = charmPARdef - IPAR(11) = IPAR11_def - - P(I,1) = PX(JT)+PX(3) - P(I,2) = PY(JT)+PY(3) - LPOINT(I) = JT - I1 = I+1 - nforig(I1) = 0 - P(I1,5) = AM(IABS(LLIST(I1))) - P(I1,1) = PX(JR)-PX(3) - P(I1,2) = PY(JR)-PY(3) - LPOINT(I1) = JR - LRNK(I1) = IRNK(JR) - XM1 = P(I,5)**2+P(I,1)**2+P(I,2)**2 - XM2 = P(I1,5)**2+P(I1,1)**2+P(I1,2)**2 - IF (DSQRT(XM1)+dSQRT(XM2) .GT. dSQRT(WREM2)) GOTO 200 - -c...RE & EJA fix - PT2 = (P(I,1)+P(I1,1))**2+(P(I,2)+P(I1,2))**2 - WREMPT = dsqrt(WREM2+PT2) - EA1 = (WREM2+XM1-XM2+PT2)/(2.D0*WREMPT) - - PA2 = (EA1**2-XM1) - if (pa2.gt.0.D0) then - PA = dSQRT(PA2) - else - goto 200 - endif - BA = PTOT(3)/PTOT(4) - GA = PTOT(4)/WREMPT - SGN = DBLE(3-2*JT) - P(I,3) = GA*(BA*EA1+SGN*PA) - P(I,4) = GA*(EA1+BA*SGN*PA) - P(I+1,3) = PTOT(3)-P(I,3) - P(I+1,4) = PTOT(4)-P(I,4) - -c mark as final hadrons - ZLIST(I) = 0.D0 - ZLIST(I+1) = 0.D0 - - NA= NP+1 - NP=I+1 - -C...reorder particles along chain (in rank) - IF (LRANK) THEN - N1 = NA-1 - N2 = 0 - DO J=NA,NP - IF(P(J,4).lt.0) THEN - NP=NA-1 - GOTO 200 ! negative energy bug 'fix' - ENDIF - IF(LPOINT(J) .EQ. 2) THEN - N2=N2+1 - LLIST (NP+N2) = LLIST(J) - LRNK(NP+N2) = LRNK(J) - ZLIST (NP+N2) = ZLIST(J) - nporig(NP+N2) = nporig(J) - niorig(NP+N2) = niorig(J) - nforig(NP+N2) = 0 - DO K=1,5 - P(NP+N2,K)=P(J,K) - ENDDO - ELSE - N1= N1+1 - IF (N1.LT.J) THEN - LLIST(N1) = LLIST(J) - LRNK(N1) = LRNK(J) - ZLIST(N1) = ZLIST(J) - nporig(N1) = nporig(J) - niorig(N1) = niorig(J) - nforig(N1) = nforig(J) - DO K=1,5 - P(N1,K) = P(J,K) - ENDDO - ENDIF - ENDIF - ENDDO - JJ=N1 - DO J=NP+N2,NP+1,-1 - JJ= JJ+1 - LLIST(JJ) = LLIST(J) - LRNK(JJ) = LRNK(J) - ZLIST(JJ) = ZLIST(J) - nporig(JJ) = nporig(J) - niorig(JJ) = niorig(J) - nforig(JJ) = nforig(J) - DO K=1,5 - P(JJ,K) = P(J,K) - ENDDO - ENDDO - ENDIF - - if(Ndebug.gt.3) - & WRITE(LUN,*)' STRING_FRAG_4FLV: NP after fragmentation:',NP - - END - - -C======================================================================= - - SUBROUTINE GG_FRAG_4FLV (E0) - -C----------------------------------------------------------------------- -C...This routine fragments a gluon-gluon system -C. of mass E0 (GeV) -C. the particles produced are in the jet-jet frame -C. oriented along the z axis -C........................................................... - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - DOUBLE PRECISION ZLIST - COMMON /S_ZLIST/ ZLIST(8000) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - DIMENSION WW(2,2),PTOT(4),PX(3),PY(3),IFL(3),PMQ(3) - SAVE - - if(Ndebug.gt.3) then - WRITE(LUN,*) - & ' GG_FRAG_4FLV: called with (E0)', - & E0 - WRITE(LUN,*)' GG_FRAG_4FLV: NP before fragmentation:',NP - endif - -C... 'leading' strange fraction - PAR2_def = PAR(2) - IF(IPAR(39).eq.2) PAR(2) = PAR(66) - - PAR24_def = PAR(24) -C leading charm fraction - IF(IPAR(87).eq.1) PAR(24) = PAR(150) - IF(IPAR(87).eq.2) PAR(24) = PAR(150)*PAR(24) - - E0S = E0**2 - -C...Generate the 'forward' leading particle. -100 I = NP+1 -c dummy rank argument - IDM = 5 -c sample new flavor, i.e. split gluon into quark-antiquark, quark or antiquark - if( IPAR(87).eq.3 )THEN -C flavor threshold model -c u,d -> u,d,s -> u,d,s,c - CALL SIB_ICFLAV(E0S,0,I0,IFL1) - ELSE -c default u,d,s model, same rates as in hadronization (string frag.) - I0 = INT(-1 + 2.D0*INT((2.D0-EPS8)*S_RNDM(I))) - CALL SIB_I4FLAV(I0,0,IDM,IFL1, LDUM) - ENDIF -c form first hadron from new flavor - CALL SIB_I4FLAV(IFL1,0,IDM,IFL2, LLIST(I)) - CALL PTDIS_4FLV(IFL1,PX1,PY1) - CALL PTDIS_4FLV(IFL2,PX2,PY2) - P(I,1) = PX1+PX2 - P(I,2) = PY1+PY2 - P(I,5) = AM(IABS(LLIST(I))) - XM1 = P(I,5)**2+P(I,1)**2+P(I,2)**2 - Z1 = ZDIS_4FLV (IFL1,1,0.25D0*XM1) - Z2 = ZDIS_4FLV (IFL2,1,0.25D0*XM1) - T1 = 4.D0*XM1/(E0S*(Z1+Z2)) - P(I,4) = 0.25D0*E0*(Z1+Z2 + T1) - P(I,3) = 0.25D0*E0*(Z1+Z2 - T1) - - nforig(I)= 0 - nporig(I)= Ipflag*3 + KINT - niorig(I)= iiflag - ZLIST(I) = Z1 + Z2 - -C...Generate the 'backward' leading particle. - I = I+1 - IF( IPAR(87).eq.3 )THEN - CALL SIB_ICFLAV(E0S,-I0,IDM,IFL3) - ELSE - CALL SIB_I4FLAV(-I0,0,IDM,IFL3, LDUM) - ENDIF - CALL SIB_I4FLAV(IFL3,0,IDM,IFL4, LLIST(I)) - CALL PTDIS_4FLV(IFL3,PX3,PY3) - CALL PTDIS_4FLV(IFL4,PX4,PY4) - P(I,1) = PX3+PX4 - P(I,2) = PY3+PY4 - P(I,5) = AM(IABS(LLIST(I))) - XM2 = P(I,5)**2+P(I,1)**2+P(I,2)**2 - Z3 = ZDIS_4FLV (IFL3,1,0.25D0*XM2) - Z4 = ZDIS_4FLV (IFL4,1,0.25D0*XM2) - T2 = 4.D0*XM2/(E0S*(Z3+Z4)) - P(I,4) = 0.25D0*E0*( Z3+Z4 + T2) - P(I,3) = 0.25D0*E0*(-Z3-Z4 + T2) - - nforig(I)= 0 - nporig(I)= Ipflag*3 + KINT - niorig(I)= iiflag - ZLIST(I) = Z3 + Z4 -c PAR24def = PAR(24) -c charm QCD fusion -c IF(IPAR(17).eq.2) PAR(24) = 0. - -c reset strange fraction - PAR(2) = PAR2_def - -c reset charm fraction - PAR(24) = PAR24_def - -C...Fragment the two remaning strings - N0 = 0 - DO KS=1,2 - - NTRY = 0 -200 NTRY = NTRY+1 - I = NP+2+N0 - IF (NTRY .GT. 30) GOTO 100 - - IF (KS .EQ. 1) THEN - WW(1,1) = 0.5D0 * (1.D0 - Z1 - 0.5D0*T2) - WW(2,1) = 0.5D0 * (1.D0 - Z3 - 0.5D0*T1) - PX(1) = -PX1 - PY(1) = -PY1 - PX(2) = -PX3 - PY(2) = -PY3 - IFL(1) = -IFL1 - IFL(2) = -IFL3 - ELSE - WW(1,1) = 0.5D0 * (1.D0 - Z2 - 0.5D0*T2) - WW(2,1) = 0.5D0 * (1.D0 - Z4 - 0.5D0*T1) - PX(1) = -PX2 - PY(1) = -PY2 - PX(2) = -PX4 - PY(2) = -PY4 - IFL(1) = -IFL2 - IFL(2) = -IFL4 - ENDIF - PX(3) = 0.D0 - PY(3) = 0.D0 - PTOT (1) = PX(1)+PX(2) - PTOT (2) = PY(1)+PY(2) - PTOT (3) = 0.5D0*E0*(WW(1,1)-WW(2,1)) - PTOT (4) = 0.5D0*E0*(WW(1,1)+WW(2,1)) - - PMQ(1) = QMASS(IFL(1)) - PMQ(2) = QMASS(IFL(2)) - -C...produce new particle: side, pT -300 I=I+1 - if(i.gt.8000) then - write(LUN,'(1x,a,i8)') - & ' GG_FRAG: no space left in S_PLIST:',I - CALL SIB_REJECT ('GG_FRAG ') - endif - nforig(I)= 0 - nporig(I)= Ipflag*2 + KINT - niorig(I)= iiflag - - JT=INT(1.5D0+S_RNDM(0)) - JR=3-JT -c CALL PTDIS (IFL(JT), PX(3),PY(3)) - -C...particle ID - CALL SIB_I4FLAV (IFL(JT), 0, IDM, IFL(3), LLIST(I)) - PMQ(3) = QMASS(IFL(3)) - P(I,5) = AM(IABS(LLIST(I))) - - CALL PTDIS_4FLV (IFL(3), PX(3),PY(3)) - -C...test end of fragmentation - WREM2 = PTOT(4)**2-PTOT(1)**2-PTOT(2)**2-PTOT(3)**2 - IF (WREM2 .LT. 0.1D0) GOTO 200 - WMIN = PMQ(1)+PMQ(2)+2.D0*PMQ(3)+1.1D0+(2.D0*S_RNDM(0)-1.D0)*0.2D0 - IF (WREM2 .LT. WMIN**2)THEN - GOTO 400 - ENDIF - -C...fill transverse momentum - P(I,1) = PX(JT) + PX(3) - P(I,2) = PY(JT) + PY(3) - -C...Choose z - XMT2 = P(I,5)**2+P(I,1)**2+P(I,2)**2 - Z = ZDIS_4FLV (ifl(3),IFL(JT), XMT2) - - ZLIST(I) = Z - WW(JT,2) = Z*WW(JT,1) - WW(JR,2) = XMT2/(WW(JT,2)*E0S) - - P(I,3) = WW(1,2)*0.5D0*E0 - WW(2,2)*0.5D0*E0 - P(I,4) = WW(1,2)*0.5D0*E0 + WW(2,2)*0.5D0*E0 - - DO J=1,4 - PTOT (J) = PTOT(J) - P(I,J) - ENDDO - DO K=1,2 - WW(K,1) = WW(K,1) - WW(K,2) - ENDDO - -C...Reset pT and flavor at ends of the string - PX(JT) = -PX(3) - PY(JT) = -PY(3) - IFL(JT) =-IFL(3) - PMQ(JT) = PMQ(3) - GOTO 300 - -C...Final two hadrons - 400 IAFL1 = mod(IABS(IFL(JR)),100) - IAFL2 = mod(IABS(IFL(3)),100) - IF (IAFL1*IAFL2 .GT. 100) GOTO 200 ! reject two diquarks - IF ((IAFL1/10.eq.4.or.mod(IAFL1,10).eq.4) - + .and.(IAFL2/10.eq.4.or.mod(IAFL2,10).eq.4)) - + GOTO 200 ! reject two charm quarks - - CALL SIB_I4FLAV (IFL(JR), -IFL(3), IDM, IFLA, LLIST(I+1)) - P(I+1,5) = AM(IABS(LLIST(I+1))) - P(I,1) = PX(JT)+PX(3) - P(I,2) = PY(JT)+PY(3) - nporig(I)= Ipflag*2 + KINT - niorig(I)= iiflag - I1 = I+1 - nporig(I1)= Ipflag*2 + KINT - niorig(I1)= iiflag - P(I1,1) = PX(JR)-PX(3) - P(I1,2) = PY(JR)-PY(3) - XM1 = P(I,5)**2+P(I,1)**2+P(I,2)**2 - XM2 = P(I1,5)**2+P(I1,1)**2+P(I1,2)**2 - IF (dSQRT(XM1)+dSQRT(XM2) .GT. dSQRT(WREM2)) GOTO 200 - if (ptot(4).le.0.D0) goto 200 - PT2 = (P(I,1)+P(I1,1))**2+(P(I,2)+P(I1,2))**2 - WREMPT = dsqrt(WREM2+PT2) - EA1 = (WREM2+XM1-XM2+PT2)/(2.D0*WREMPT) - PA2 = (EA1**2-XM1) - if (PA2.ge.0.D0) then - PA = dSQRT(PA2) - else - goto 200 - endif - BA = PTOT(3)/PTOT(4) - GA = PTOT(4)/WREMPT - SGN = DBLE(3-2*JT) - P(I,3) = GA*(BA*EA1+SGN*PA) - P(I,4) = GA*(EA1+BA*SGN*PA) - P(I+1,3) = PTOT(3)-P(I,3) - P(I+1,4) = PTOT(4)-P(I,4) - ZLIST(I) = 0.D0 - ZLIST(I+1) = 0.D0 - N0 = I-NP-1 - ENDDO ! loop on two `remaining strings' - - NP = I+1 -c PAR(24) = PAR24def - IF(Ndebug.gt.3) then - WRITE(LUN,*)' GG_FRAG_4FLV: NP after fragmentation:',NP - ENDIF - RETURN - END - -C======================================================================= - - SUBROUTINE DIFDEC (L0, Irec, IBAD, P0) - -C----------------------------------------------------------------------- -C..."decay" of an excited state with the quantum numbers -C. of particle L0 and the 5-momentum P0 -C. - low energy: phase space decay (fire ball model) -C. - intermediate energy: one-string decay (longitudinal phase space) -C. - high energy: pomeron-hadron scattering (multi-string model) -C----------------------------------------------------------------------- - IMPLICIT NONE - -c external types - INTEGER L0, Irec, IBAD - DOUBLE PRECISION P0 - DIMENSION P0(5) - - INTEGER NW_max - PARAMETER (NW_max = 20) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT - - INTEGER LRNK - COMMON /SIB_RNK/ LRNK(8000) - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - -c internal types - INTEGER LL,LCON,LRES,LRES1,NTRYS,NRJECT,LA,N1,IREJ,I,J,IFLA, - & IFL1,IFL2,IFBAD,NPI,IRES,LA1,JQQ,JQTOT,K,JQR, - & KB_0,IAT_0 - DOUBLE PRECISION PD,BE,EMIN,EMIN2,PCHEX,PRES,DELTAE, - & SQS_0,S_0,PTmin_0,XMIN_0,ZMIN_0, - & PAR1_def,PAR24_def,PAR53_def,GA,BEP,S_RNDM,AV,GASDEV,PCXG, - & XI1,XI2,XSMR !,FERMI - DIMENSION LL(10), PD(10,5), BE(3), LCON(6:99),LRES1(6:99) - DIMENSION LRES(6:99) - SAVE - EXTERNAL GASDEV - DATA (LRES(k),k=6,22) /27,25,26,28,29,0,0,51,52,6*0,30,31/ - DATA (LRES(k),k=23,33) /23,24,25,26,27,28,29,30,31,27,27/ - DATA (LRES(k),k=34,49) /34,35,36,37,38,39,40,41,42,43,34,35,36, - & 37,38,49/ - DATA (LRES(k),k=50,83) /0,51,52,53,54,4*0,78,79,10*0,80,81,73, - & 74,75,76,77,78,79,80,81,0,83/ - DATA (LRES(k),k=84,99) /94,95,96,97,98,89,4*0,94,95,96,97,98,99/ - - DATA EMIN /0.7D0/ - DATA EMIN2 /10.D0/ - DATA LCON /7,6,6,11,11,9,9,14,13,19*0,35,34,35,38,37,39, - & 19*0,71,72,10*0,59,60,73,10*0,85,86,85,88,87,89,10*0/ - DATA LRES1 /27,25,26,11,11,9,9,14,13,19*0,35,34,35,38,37,39, - & 19*0,78,79,10*0,80,81,83,10*0,94,95,96,97,98,89,10*0/ - DATA PCHEX /0.33D0/ ! probability of charge exchange - DATA PRES /0.7D0/ ! probability of forming a resonance - DATA NRJECT /0/ - - IF(NDEBUG.gt.2) - & WRITE(LUN,'(2X,A,1x,I2,1x,I2,/,5(2x,F10.3))') - & 'DIFDEC: (L0,Irec,P0):',L0,Irec,(P0(i),i=1,5) - - - NTRYS = 0 - - LA = IABS(L0) - DELTAE = P0(5) - AM(LA) - IF(IBAR(LA).ne.0.or.IPAR(65).eq.0)THEN -c baryons - EMIN = PAR(30) - ELSE -c mesons - EMIN = PAR(112) - ENDIF -c IBAD = 0 - PAR1_def= PAR(1) - if(Irec.gt.0) PAR(1)= PAR(16) -c XSMR = 0.5D0 -c XI2=FERMI(DELTAE,EMIN2,XSMR) -c XI1=FERMI(DELTAE,EMIN,XSMR) - XSMR=PAR(131)*EMIN - XI1=MAX((EMIN-DELTAE)/XSMR,0.D0) - XSMR=PAR(131)*EMIN2 - XI2=MAX((EMIN2-DELTAE)/XSMR,0.D0) - if(Ndebug.gt.2) - & WRITE(LUN,'(1x,A29,2(2x,F5.2),2(2x,F8.3))') - & ' DIFDEC: EMIN1,EMIN2,XI1,XI2', - & EMIN,EMIN2,Xi1,Xi2 - -C... pomeron-hadron scattering (pi0 is used instead of pomeron) - IF ((IPAR(10).gt.0).and.(Irec.gt.0).and. - & (DELTAE.gt.EMIN2.or.S_RNDM(LA).gt.XI2)) THEN - if(Ndebug.gt.2) - & WRITE(LUN,*)' DIFDEC: central (L0,DELTAE,NP,XI):', - & L0,DELTAE,NP,XI2 - N1 = NP+1 - if(irec.gt.0.and.IPAR(5).eq.1) par(1)= par(15) - 50 CONTINUE - IPFLAG= IPFLAG*100 -c create subevent - SQS_0 = SQS - S_0 = S - PTmin_0 = PTmin - XMIN_0 = XMIN - ZMIN_0 = ZMIN - KB_0 = KB - IAT_0 = IAT - CALL INI_EVENT(P0(5),L0,6,0) -c create L0 - pi0 interaction, pi0(pid=6) target - CALL SIB_NDIFF(L0, 1, P0(5), 0, IREJ) ! ori -c restore main event - SQS = SQS_0 - S = S_0 - PTmin = PTmin_0 - XMIN = XMIN_0 - ZMIN = ZMIN_0 - KB = KB_0 - IAT = IAT_0 - IF(IREJ.NE.0) THEN - NP = N1-1 - GOTO 50 - ENDIF - PAR(1) = PAR1_def - DO J=1,3 - BE(J)=P0(J)/P0(4) - ENDDO - GA=P0(4)/P0(5) - if(P0(3).lt.0.D0) then - do i=N1,NP - P(I,3) = -P(I,3) - enddo - endif - DO I=N1,NP - BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3) - DO J=1,3 - P(I,J)=P(I,J)+GA*(GA*BEP/(1.D0+GA)+P(I,4))*BE(J) - ENDDO - P(I,4)=GA*(P(I,4)+BEP) - ENDDO - -C..."string-like" decay - ELSE IF (DELTAE .GT. EMIN .or. S_RNDM(LA).gt.XI1) THEN - IF(NDEBUG.gt.2) - & WRITE(LUN,'(2X,A,3(2x,F8.3))') - & 'DIFDEC: string-like, (DELTAE,E0,central prob.):', - & DELTAE,P0(5),1.D0-XI2 -c set charge exchange probability, i.e. prob for p* -> n + pip - PAR53_def = PAR(53) - PAR(53) = PAR(130) - N1 = NP+1 - CALL HSPLI(L0,IFL1,IFL2) - PAR(53) = PAR53_def - IF (P0(3) .GT. 0.D0.and.L0.gt.0) THEN - IFLA = IFL2 - IFL2 = IFL1 - IFL1 = IFLA - ENDIF -c randomize flavor orientation in string - IF(IPAR(25).eq.1.and.S_RNDM(L0).gt.PAR(39))THEN - IFLA = IFL2 - IFL2 = IFL1 - IFL1 = IFLA - ENDIF - PAR24_def = PAR(24) - IF(IPAR(15).eq.2.and.IPAR(15).eq.3.and.IPAR(15).ne.7.and. - & IPAR(15).lt.12)THEN - PAR(24) = PAR(25)*dEXP(-PAR(26)/P0(5)) - ELSEIF(IPAR(15).eq.7)THEN - PAR(24) = PAR(25) - ENDIF - 10 CONTINUE - IPFLAG = IPFLAG*10 - CALL STRING_FRAG_4FLV - + (P0(5), IFL1, IFL2, 0.D0,0.D0,0.D0,0.D0,IFBAD,-1) - IF (IFBAD .EQ. 1)then - if(ndebug.gt.1) - & WRITE(lun,*)' SIB_DIFF: string-frag rejection! ', - & '(M,NCALL)',P0(5),NCALL - NTRYS = NTRYS + 1 - NP = N1-1 - IFBAD = 0 - IF(NTRYS.gt.5)then ! resample diff. mass - NP = 0 - IBAD = 1 - PAR(24) = PAR24_def - RETURN - endif - GOTO 10 - ENDIF - DO J=1,3 - BE(J)=P0(J)/P0(4) - ENDDO - GA=P0(4)/P0(5) - DO I=N1,NP - BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3) - DO J=1,3 - P(I,J)=P(I,J)+GA*(GA*BEP/(1.D0+GA)+P(I,4))*BE(J) - ENDDO - P(I,4)=GA*(P(I,4)+BEP) - ENDDO - PAR(24) = PAR24_def - -C...Phase space decay of the excited state - ELSEIF(DELTAE.GT.AM(7)+0.02D0)THEN - if(Ndebug.gt.2) - & WRITE(LUN,*)' DIFDEC: fireball, (DELTAE,string prob.):', - & DELTAE,1.D0-XI1 - IF(IPAR(14).GT.0.and.IPAR(14).NE.7)THEN - IF(IPAR(14).eq.5) PCHEX = 0.D0 - NPI=0 - IRES = 0 - IF (S_RNDM(0).LT.PRES) THEN - IF (LA.LT.9) THEN -c if kinematically possible produce rho0 in charge exchange - LL(1) = LRES(LA) - DELTAE = P0(5) - AM(LRES(LA)) - IF (DELTAE.GT.AM(7)+0.02D0) GOTO 100 - ENDIF - ENDIF -c switch charge exchange on/off - IF( S_RNDM(1).LT.PCHEX)THEN - LL(1) = LCON(LA)*ISIGN(1,L0) - IF( (L0 .EQ. 6) .OR. (L0 .EQ. 11) ) - . LL(1) = LL(1)+INT((2.D0-EPS8)*S_RNDM(2)) - ELSE - LL(1) = L0 - ENDIF - - DELTAE = P0(5) - AM(LA) - 100 AV = 2.D0*dSQRT(DELTAE) - LA1 = IABS(LL(1)) - NPI = INT(AV*(2.D0+0.5D0*GASDEV(LA))) - IF (IPAR(14).EQ.6)THEN - IF(NPI.LT.1.OR.NPI.GT.9.OR.AM(LA1)+NPI*AM(7)+0.02D0 - . .GT.P0(5)) GOTO 100 - ELSE - IF(NPI.LT.0.OR.NPI.GT.9.OR.AM(LA1)+NPI*AM(7)+0.02D0 - . .GT.P0(5)) GOTO 100 - ENDIF -c create resonances inside fireball.. - IF(IPAR(14).ge.2 - + .and.DELTAE.GE.AM(LA1)+AM(27)+(NPI-1)*AM(7)+0.02D0) - + IRES = 1 - IF(IPAR(14).ge.3.and.DELTAE.GE.AM(LA1)+NPI*AM(27)+0.02D0) - + IRES=3 - JQQ = ICHP(LA)*ISIGN(1,L0)- - . ICHP(IABS(LL(1)))*ISIGN(1,LL(1)) - 120 JQTOT = 0 - DO K=2,NPI - LL(K) = 6+INT(S_RNDM(K)*(3.D0-EPS8)) -c suppress pi0 in fireball - IF(IPAR(14).ge.4) - + LL(K) = 7+INT(S_RNDM(0)*(2.D0-EPS8)) -c IF(IRES.EQ.1.and.S_RNDM(LA).LT.0.5D0) - IF(IRES.EQ.1) THEN - LL(K) = 27-INT(S_RNDM(1)*(3.D0-EPS8)) - IRES = 2 - ENDIF - IF(IRES.EQ.3) - + LL(K) = 27-INT(S_RNDM(2)*(3.D0-EPS8)) - JQTOT = JQTOT + ICHP(LL(K)) - ENDDO - JQR = JQQ-JQTOT - IF (JQR.LT.-1.OR.JQR.GT.1) GOTO 120 - LL(NPI+1) = 6+JQR - IF (LL(NPI+1) .EQ. 5) LL(NPI+1)=8 - CALL DECPAR (0,P0,NPI+1,LL, PD) - DO J=1,NPI+1 - NP = NP+1 - LLIST(NP) = LL(J) - nporig(NP)= Ipflag*2 - lrnk(Np) = 0 - niorig(NP)= iiflag - DO K=1,5 - P(NP,K) = PD(J,K) - ENDDO - ENDDO - - ELSEIF (IPAR(14).EQ.7.AND.LA.LT.9) THEN -c all diff states go to resonances for pi beam .. - NPI=0 - IRES = 0 - LL(1) = LRES1(LA) - DELTAE = P0(5) - AM(LL(1)) -cdh IF( DELTAE.LT.AM(7)+0.02D0) GOTO 222 - IF( DELTAE.LT.AM(7)+0.02D0) THEN - IF(IPAR(14).EQ.7) DELTAE = P0(5) - AM(LA) - AV = 2.D0*DSQRT(DELTAE) - 201 NPI = INT(AV*(1.D0+0.5D0*GASDEV(LA))) -c print *,'npi:',npi,'av',av,'p05',p0(5),am(la),deltae - IF(NPI.LE.0.OR.NPI.GT.9.OR.AM(LA)+NPI*AM(7)+0.02D0 - . .GT.P0(5)) GOTO 201 - IF (S_RNDM(0).LT.PCHEX) THEN - LL(NPI+1) = LCON(LA)*ISIGN(1,L0) - IF( (L0 .EQ. 6) .OR. (L0 .EQ. 11) ) - . LL(NPI+1) = LL(NPI+1)+INT((2.D0-EPS8)*S_RNDM(1)) - ELSE - LL(NPI+1) = L0 - ENDIF - JQQ = ICHP(LA)*ISIGN(1,L0)- - . ICHP(IABS(LL(NPI+1)))*ISIGN(1,LL(NPI+1)) - 221 JQTOT = 0 - DO K=1,NPI-1 - LL(K) = 6+INT(S_RNDM(K)*(3.D0-EPS8)) - JQTOT = JQTOT + ICHP(LL(K)) - ENDDO - JQR = JQQ-JQTOT - IF (JQR.LT.-1.OR.JQR.GT.1) GOTO 221 - LL(NPI) = 6+JQR - IF (LL(NPI) .EQ. 5) LL(NPI)=8 - CALL DECPAR (0,P0,NPI+1,LL, PD) - DO J=1,NPI+1 - NP = NP+1 - LLIST(NP) = LL(J) - NPORIG(NP) = IPFLAG*2 - lrnk(Np) = 0 - niorig(NP)= iiflag - DO K=1,5 - P(NP,K) = PD(J,K) - ENDDO - ENDDO - - ELSE - IF( S_RNDM(0).LT.PAR(31))THEN - LL(1) = LRES1(LCON(LA)) - IF( (L0 .EQ. 6) .OR. (L0 .EQ. 11) ) - . LL(1) = LRES1(IABS(L0)+INT((2.D0-EPS8)*S_RNDM(1))) - ENDIF - 300 AV = 2.D0*dSQRT(DELTAE) - LA1 = IABS(LL(1)) - NPI = INT(AV*(2.D0+0.5D0*GASDEV(LA))) - IF(ABS(PAR(32)).gt.0.D0) - & NPI = INT(AV*(PAR(32)+0.5D0*GASDEV(LA))) - IF(NPI.LT.0.OR.NPI.GT.9.OR.AM(LA1)+NPI*AM(7)+0.02D0 - . .GT.P0(5)) GOTO 300 -c create resonances inside fireball.. -c IRES=3 - JQQ = ICHP(LA)*ISIGN(1,L0)- - . ICHP(IABS(LL(1)))*ISIGN(1,LL(1)) - 320 JQTOT = 0 - DO K=2,NPI - LL(K) = 6+INT(S_RNDM(K)*(3.D0-EPS8)) -c suppress pi0 in fireball -c IF(IPAR(14).ge.4) -c + LL(K) = 7+INT(S_RNDM(0)*1.99999D0) -c IF(IRES.EQ.1.and.S_RNDM(LA).LT.0.5D0) -c LL(K) = 27-INT(S_RNDM(0)*2.99999D0) - JQTOT = JQTOT + ICHP(LL(K)) - ENDDO - JQR = JQQ-JQTOT - IF (JQR.LT.-1.OR.JQR.GT.1) GOTO 320 - LL(NPI+1) = 6+JQR - IF (LL(NPI+1) .EQ. 5) LL(NPI+1)=8 - CALL DECPAR (0,P0,NPI+1,LL, PD) - DO J=1,NPI+1 - NP = NP+1 - LLIST(NP) = LL(J) - nporig(NP)= Ipflag*2 - lrnk(Np) = 0 - niorig(NP)= iiflag - DO K=1,5 - P(NP,K) = PD(J,K) - ENDDO - ENDDO - ENDIF - - ELSEIF (IPAR(14).LE.-1) THEN -C... generalized fireball model - IF(Ndebug.gt.2) - & WRITE(LUN,*)' DIFDEC: using generalized fireball!' -c set charge exchange probability, -c i.e. prob for p* -> n + pip - PCXG = PAR(61) - CALL FIREBALL_4FLV(L0,P0,PCXG,IFBAD) - IF(IFBAD.eq.1)THEN - IF(ndebug.gt.0)THEN - IF(NRJECT.le.10)THEN - WRITE(LUN,*) - & ' DIFDEC: warning: fireball rejection! ', - & 'diff. mass to low to dissociate beam!' - WRITE(LUN,*) - & ' DIFDEC: m_Beam, DELTAE ,AM(7)+0.02, NCALL: ', - & AM(LA),DELTAE,'>',AM(7)+0.02D0,NCALL - ENDIF - IF(NRJECT.eq.10) - & write(lun,*)' this was the last warning.. good luck!' - ENDIF - NRJECT = NRJECT + 1 - NP = 0 - IBAD = 1 - RETURN - ENDIF - - ELSE -cdh 222 IF(IPAR(14).EQ.7) DELTAE = P0(5) - AM(LA) - IF(IPAR(14).EQ.7) DELTAE = P0(5) - AM(LA) - AV = 2.D0*dSQRT(DELTAE) - 200 NPI = INT(AV*(1.D0+0.5D0*GASDEV(0))) -c print *,'npi:',npi,'av',av,'p05',p0(5),am(la),deltae - IF(NPI.LE.0.OR.NPI.GT.9.OR.AM(LA)+NPI*AM(7)+0.02D0 - . .GT.P0(5)) GOTO 200 - IF (S_RNDM(0).LT.PCHEX) THEN - LL(NPI+1) = LCON(LA)*ISIGN(1,L0) - IF( (L0 .EQ. 6) .OR. (L0 .EQ. 11) ) - . LL(NPI+1) = LL(NPI+1)+INT((2.D0-EPS8)*S_RNDM(1)) - ELSE - LL(NPI+1) = L0 - ENDIF - JQQ = ICHP(LA)*ISIGN(1,L0)- - . ICHP(IABS(LL(NPI+1)))*ISIGN(1,LL(NPI+1)) - 220 JQTOT = 0 - DO K=1,NPI-1 - LL(K) = 6+INT(S_RNDM(K)*(3.D0-EPS8)) - JQTOT = JQTOT + ICHP(LL(K)) - ENDDO - JQR = JQQ-JQTOT - IF (JQR.LT.-1.OR.JQR.GT.1) GOTO 220 - LL(NPI) = 6+JQR - IF (LL(NPI) .EQ. 5) LL(NPI)=8 - CALL DECPAR (0,P0,NPI+1,LL, PD) - DO J=1,NPI+1 - NP = NP+1 - LLIST(NP) = LL(J) - NPORIG(NP) = IPFLAG*2 - lrnk(Np) = 0 - niorig(NP)= iiflag - DO K=1,5 - P(NP,K) = PD(J,K) - ENDDO - ENDDO - ENDIF - ELSE - if (ndebug .gt. 0) then - IF(NRJECT.le.10)THEN - WRITE(LUN,*) ' DIFDEC rejection! ', - & 'diff. mass to low to dissociate beam!' - WRITE(LUN,*) ' DIFDEC: LA, m_Beam, DELTAE, NCALL : ', - & LA, AM(LA),DELTAE,'>',AM(7)+0.02D0,NCALL - IF(Irec.ne.1) - & WRITE(LUN,*) ' was recursive call! (ECM):',P0(5) - ENDIF - IF(NRJECT.eq.10) - & write(lun,*)' this was the last warning.. good luck!' - endif - NRJECT = NRJECT + 1 - NP = 0 - IBAD = 1 - RETURN - ENDIF - PAR(1) = PAR1_def - END -C======================================================================= - - SUBROUTINE EXCT_RMNT(JW,KRMNT,IREJ) - -C----------------------------------------------------------------------- -C routine to produce massive excitations of beam and/or target \FR'14 -C----------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - INTEGER NW_max - PARAMETER (NW_max = 20) - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTMIN,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - - INTEGER IBMRDX,ITGRDX,IHMJDX,ISMJDX,ICSTDX,IINTDX - COMMON /S_INDX/ IBMRDX(3),ITGRDX(NW_max,3), - & IHMJDX(NW_max*NH_max),IINTDX(NW_max), - & ISMJDX(NW_max*NS_max),ICSTDX(2*NW_max,3) - - INTEGER IRMNT,KRB,KRT - DOUBLE PRECISION XRMASS,XRMEX - COMMON /S_RMNT/ XRMASS(2),XRMEX(2),IRMNT(NW_max),KRB,KRT(NW_max) - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) -C parameters that represent: NW: max. number of wounded nucleons, -C NS,NH: max. number of soft and hard interactions -c PARAMETER (NW_max = 20) -C The COMMON block /S_CHIST/ contains information about the -C the structure of the generated event: -C NWD = number of wounded nucleons -C NJET = total number of hard interactions -C NSOF = total number of soft interactions -C NNSOF (1:NW) = number of soft pomeron cuts in each interaction -C NNJET (1:NW) = number of minijets produced in each interaction -C JDIF(1:NW) = diffraction code -C 0 : non-diff, -C 1 : beam-diff -C 2 : target-diff -C 3 : double-diff - INTEGER NNSOF,NNJET,JDIF,NWD,NJET,NSOF - COMMON /S_CHIST/ NNSOF(NW_max),NNJET(NW_max), - & JDIF(NW_max),NWD,NJET,NSOF - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - INTEGER ITRY, NREJ - COMMON /S_CNT/ ITRY(20), NREJ(20) - DOUBLE PRECISION XM2MIN,ALXMIN,SLOP0,ASLOP,BSLOP,XMASS - COMMON /S_DIFMAss/ XM2MIN(6),ALXMIN(6),SLOP0,ASLOP,BSLOP,XMASS(2) - - DOUBLE PRECISION P1(5),P2(5),P1N(5),P2N(5),PBM1(5),PBM2(5),PBM(5), - & PTG1(5),PTG2(5),PTG(5),PTT(5),GABE(4) - DOUBLE PRECISION XMB,XMB2,ALPHA,XMSQMIN,XM2MAX,XM2,SHAT,ECM,EE,EE2 - DOUBLE PRECISION XMFRAC,XSFRAC,XMT,XMT2,XMT12,XMT22,P1TOT,P2TOT - DOUBLE PRECISION DELTAE,XMMIN,COD,COF,SID,SIF,ANORF,PX,PY,PZ - DOUBLE PRECISION XM1,ETOT,XI,XM2DIS,S_RNDM -c DOUBLE PRECISION XDUMMY - - INTEGER IMRG2HAD,LL(99) - INTEGER IBM1,IBM2,IBMST1,IBMST2,ITG1,ITG2,ITGST1,ITGST2,ITGH - INTEGER IDM,IFL,IBMH, IREF,I, II,K,J,JJ,L01,L02,NP0LD,NPLD - INTEGER JW,IREJ,KRMNT,LREJ,IBD,ICST11,ICST21 - INTEGER IFLB1,IFLB2,IFLT1,IFLT2,L0,IDHAD,ISTH,IBMST,ITGST - INTEGER IFL1,IFL2,IMRG,IMST,IMST1,IMRGBAR,ICST2,LBD - INTEGER IMST11,IMST2,IMST21,ISTH1,ISTH2,IAFL1,IAFL2!,IMST22 - - SAVE - DATA LL /5*0,7*2,2*1,12*0,2,6*0,6*1,19*0,2,2,10*0, - & 2,2,0,2,2,11*0,1,1,1,9*0,1/ - - -c default return point, beam and target sampling -c IREJ = 1 - - IF(NDEBUG.gt.2) - & WRITE(LUN,*) ' EXCT_RMNT: input (JW,KRMNT,IREJ)', - & JW,KRMNT,IREJ - - IF(NDEBUG.gt.3)THEN - write(LUN,*)' beam remnant index: (lvl0,flv1,flv2) ',IBMRDX - write(LUN,*)' 1st central string index: (lvl0,bm,tg)', - & (ICSTDX(2*(JW-1)+1,ii),ii=1,3) - write(LUN,*)' 2nd central string index: (lvl0,bm,tg)', - & (ICSTDX(2*(JW-1)+2,ii),ii=1,3) - write(LUN,*)' target remnant index: (lvl0,flv1,flv2)', - & (ITGRDX(JW,ii),ii=1,3) - ENDIF - - ITRY(5) = 0 - -C... select indices depending on configuration -C krmnt = 0 : no excitation on either side -c = 1 : beam side excited remnant -c = 2 : target side -c = 3 : both sides - -c write remnant configuration to remnant common - IRMNT(JW) = KRMNT - IF(KRMNT.eq.1)THEN -c beam side remnant only -c proto-remnant position: IBMRDX(1) -c partons in : IBMRDX(2:3) - IBM1 = IBMRDX(2) - IBM2 = IBMRDX(3) -c target side to transfer energy from: -c (sofar always choose valence pair) - ITG1 = ICSTDX(2*(JW-1)+1,3) - ITG2 = ICSTDX(2*(JW-1)+2,3) -c beam-side partons to go into central strings - IBMST1 = ICSTDX(2*(JW-1)+1,2) - IBMST2 = ICSTDX(2*(JW-1)+2,2) -c target-side partons to go into central strings - ITGST1 = ITG1 - ITGST2 = ITG2 - - ELSEIF(KRMNT.eq.2)THEN -c target side remnant only -c proto-remnant in ITGRDX(JW,1) - ITG1 = ITGRDX(JW,2) - ITG2 = ITGRDX(JW,3) -c transfer energy from beam remnant or -c central strings with valence quarks -c in ICSTDX(JW+0:1,2) -c means no beam remnant --> get from valence strings - IBM1 = ICSTDX(2*(JW-1)+1,2) - IBM2 = ICSTDX(2*(JW-1)+2,2) -c beam-side partons to go into central strings - IBMST1 = IBM1 - IBMST2 = IBM2 -c target-side partons to go into central strings - ITGST1 = ICSTDX(2*(JW-1)+1,3) - ITGST2 = ICSTDX(2*(JW-1)+2,3) - - ELSEIF(KRMNT.eq.3)THEN -c beam and target side remnant -c transfer energy from pairs in rmnt or central strings -c listed in I?RDX and ICSTDX() - IBM1 = IBMRDX(2) - IBM2 = IBMRDX(3) - ITG1 = ITGRDX(JW,2) - ITG2 = ITGRDX(JW,3) - - ELSEIF(KRMNT.eq.0)THEN -c no excited remnant case, jump straight to central strings.. - GOTO 100 - - ENDIF - - IF(NDEBUG.gt.3)then - write(lun,*) ' beam parton1: ',IBM1 - write(lun,*) ' beam parton2: ',IBM2 - write(lun,*) ' target parton1:',ITG1 - write(lun,*) ' target parton2:',ITG2 - endif - -c save status of parton stack - CALL GET_NPP(NPLD,NP0LD) - - 10 ITRY(5) = ITRY(5) + 1 - IF(ITRY(5).GT.NREJ(5))THEN - IF(NDEBUG.gt.2) - & WRITE(LUN,*) ' EXCT_RMNT: no. of trials exceeded, ', - & NREJ(5), 'resample minijets ...' , IREJ - RETURN - ENDIF -c reset parton stack after rmnt mass rejection - CALL INI_PRTN_STCK(NPLD,NP0LD) - -C.. construct 4momenta of proto-remnants -c index of beam remnant on stack: IBMRDX(1) - -C.. center-of-mass energy of parton system (s hat) -c calculated in hadron-hadron frame -c for first interaction (jw=1) partons are massless and collinear (sum pt=0) -c in this case ecm = SQS*SQRT(XB*XT), xb,t=x1+x2 -c for jw>1 beam partons may have already acquired mass and additional pt -c therefore ecm = sqs*sqrt(xb*xt) + corr. -c IRDX: index of remnant on parton stack -c SHAT = S*XB*XT+XM2+(XT/XB)*XMT2 - -c with 4momenta of partons on stack, momentum fractions are obsolete -c center-of-mass energy is simply: shat = (pbm+ptg)**2 - -c construct total 4momentum -c add beam-side parton momenta, in had.-had. frame - CALL RD_PRTN_4VEC(IBM1,PBM1,IFL,IDM) - CALL RD_PRTN_4VEC(IBM2,PBM2,IFL,IBMH) - CALL ADD_4VECS(PBM1,PBM2,PBM) - -c target-side parton momenta, in had.-had. frame - CALL RD_PRTN_4VEC(ITG1,PTG1,IFL,IDM) - CALL RD_PRTN_4VEC(ITG2,PTG2,IFL,IDM) - CALL ADD_4VECS(PTG1,PTG2,PTG) - -c add beam and target side to get total 4momentum - CALL ADD_4VECS(PBM,PTG,PTT) - SHAT = PTT(5)**2 - ECM = PTT(5) -c catch virtual remnants - IF(PTT(5).LT.0.D0) THEN - IF(NDEBUG.GT.2)THEN - WRITE(LUN,*) ' EXCT_RMNT: too little mass left (Shat):', - & SHAT - WRITE(LUN,*) ' resample minijets...' - ENDIF - LREJ = 2 - RETURN ! resample minijets - ENDIF - - - IF(NDEBUG.GT.2) WRITE(LUN,*) ' EXCT_RMNT: try no.',ITRY(5) - IF(NDEBUG.GT.3)THEN - write(LUN,*) ' 4momenta before scattering:' - write(LUN,*) ' PBM1:' , (PBM1(jj),jj=1,5) - write(LUN,*) ' PBM2:' , (PBM2(jj),jj=1,5) - write(LUN,*) ' PBM:' , (PBM(jj),jj=1,5) - - write(LUN,*) ' PTG1:' , (PTG1(jj),jj=1,5) - write(LUN,*) ' PTG2:' , (PTG2(jj),jj=1,5) - write(LUN,*) ' PTG:' , (PTG(jj),jj=1,5) - - write(LUN,*) ' PTT:' , (PTT(jj),jj=1,5) - ENDIF - - IF(NDEBUG.gt.2) - & WRITE(LUN,*)' EXCT_RMNT: SHAT:',SHAT - - XMFRAC = PAR(81) - XSFRAC = PAR(82) - -c exponent of remnant mass distribution (1/Mx**2)**alpha -c by default: alpha = 1 -c different for baryons and mesons -c ALPHA = PAR(98) - -C.. Sample masses - IF(KRMNT.eq.1)THEN - XM2MAX = MIN(XSFRAC*S,XMFRAC*AM2(IABS(KB))) - XM2MAX = MAX(XM2MAX,1.D0) - -c mass of target-side: 0 - XMT = 0.D0 - XMT2 = 0.D0 -c get remnant mass -c (might have received mass from prior interaction) - CALL GET_MASS2(IBMRDX(1),XM2) -c allowing excitation to fallback to beam means min. -c mass is beam mass, or more exact smallest mass of hadrons -c with flavors in remnant - IF(IPAR(64).eq.1)THEN -c remnant mass can also decrease through interactions - XMSQMIN = AM2(IABS(KB)) - ELSE -c remnant mass only increased by multiple interactions.. - XMSQMIN = MAX(AM2(IABS(KB)),XM2) - ENDIF -C select exponent from COMMON - ALPHA = XRMEX(LL(IABS(KB))) -c sample beam mass - XMB2 = XM2DIS(XMSQMIN,XM2MAX,ALPHA) - IF(NDEBUG.gt.2) - & WRITE(LUN,*)' EXCT_RMNT: XM2min,XM2max,ALPHA,XM2:', - & XMSQMIN,XM2MAX,ALPHA,XMB2 -c check if resonance or massive hadron has to be formed - CALL SEL_RES(XMB2,KRB,IBMRDX(1),IBMH) - XMB = dsqrt(XMB2) - - ELSEIF(KRMNT.eq.2)THEN -c target side mass - XM2MAX = MIN(XSFRAC*S,XMFRAC*AM2(IABS(KT(JW)))) - XM2MAX = MAX(XM2MAX,1.D0) - - XMB = 0.D0 - XMB2 = 0.D0 - XMSQMIN = AM2(KT(JW)) -C select exponent from COMMON - ALPHA = XRMEX(LL(IABS(KT(JW)))) - XMT2 = XM2DIS(XMSQMIN,XM2MAX,ALPHA) - IF(NDEBUG.gt.2) - & WRITE(LUN,*)' EXCT_RMNT: XM2min,XM2max,ALPHA,XM2:', - & XMSQMIN,XM2MAX,ALPHA,XMT2 - -c check if resonance or massive hadron has to be formed - CALL SEL_RES(XMT2,KRT(JW),ITGRDX(JW,1),ITGH) - XMT = dsqrt(XMT2) - - ELSEIF(KRMNT.eq.3)THEN - XM2MAX = MIN(XSFRAC*S,XMFRAC*AM2(IABS(KB))) - XM2MAX = MAX(XM2MAX,1.D0) - - CALL GET_MASS2(IBMRDX(1),XM2) - IF(IPAR(64).eq.1)THEN -c remnant mass can also decrease through interactions - XMSQMIN = AM2(IABS(KB)) - ELSE -c remnant mass only increased by multiple interactions.. - XMSQMIN = MAX(AM2(IABS(KB)),XM2) - ENDIF -C select exponent from COMMON - ALPHA = XRMEX(LL(IABS(KB))) - XMB2 = XM2DIS(XMSQMIN,XM2MAX,ALPHA) - IF(NDEBUG.gt.2) - & WRITE(LUN,*)' EXCT_RMNT: XM2min,XM2max,ALPHA,xm2:', - & XMSQMIN,XM2MAX,ALPHA,XMB2 - -c check if resonance or massive hadron has to be formed - CALL SEL_RES(XMB2,KRB,IBMRDX(1),IBMH) - XMB = SQRT(XMB2) - -c target always nucleon - XM2MAX = MIN(XSFRAC*S,XMFRAC*AM2(IABS(KT(JW)))) - XM2MAX = MAX(XM2MAX,1.D0) - - XMSQMIN = AM2(IABS(KT(JW))) -C select exponent from COMMON - ALPHA = XRMEX(LL(IABS(KT(JW)))) - XMT2 = XM2DIS(XMSQMIN,XM2MAX,ALPHA) - IF(NDEBUG.gt.2) - & WRITE(LUN,*)' EXCT_RMNT: XM2min,XM2max,alpha,XM2:', - & XMSQMIN,XM2MAX,ALPHA,XMT2 - -c check if resonance or massive hadron has to be formed - CALL SEL_RES(XMT2,KRT(JW),ITGRDX(JW,1),ITGH) - XMT = SQRT(XMT2) - - ENDIF -c write excitation mass to output common - XRMASS(1) = XMB - XRMASS(2) = XMT - -c minimal mass requirement -c IF(SHAT.lt.XMB2+XMT2+0.3) GOTO 10 - IF(SHAT.lt.XMB2+XMT2+2.D0*XMB*XMT+0.3D0) GOTO 10 - -C transfer cm energy to mass of particle in parton-parton cm - CALL TRANSFONSHELL(ECM,XMB,XMT,XM2MAX,1,P1,P2,IBD) - IF(IBD.eq.1) THEN - IF(NDEBUG.gt.2) WRITE(LUN,*) ' EXCT_RMNT: excitation rejected!' - RETURN - ENDIF - -C... Boost 4momenta to hadron-hadron center-of-mass -c along z only if initial partons do not carry transverse momentum -c (cancels between val1 and val2) -c with multiple nucleons interacting beam val partons can aquire -c transverse momentum from the target. in this case need arbitrary boost - DO K = 1,4 - GABE(k) = PTT(k)/PTT(5) - ENDDO - CALL SIB_ALTRA(GABE(4), GABE(1), GABE(2), GABE(3), - & P1(1),P1(2),P1(3),P1(4), - & P1TOT,P1N(1),P1N(2),P1N(3),P1N(4)) - P1N(5)=P1(5) - CALL SIB_ALTRA(GABE(4), GABE(1), GABE(2), GABE(3), - & P2(1),P2(2),P2(3),P2(4), - & P2TOT,P2N(1),P2N(2),P2N(3),P2N(4)) - P2N(5)=P2(5) - -C... Calculate new 4momentum of partons in had.-had. frame -c P1,P2: momenta after scattering in parton-parton cm. -c P1n,P2n: momenta after scattering in had.-had. cm -c PBM1,2: momenta of beam partons in had.-had. before scattering -c PTG1,2: momenta of target partons in had.-had. before scattering -c PBM: combined momentum of all beam partons before scattering -c PTG: combined momentum of all target partons before scattering - -c energy and z component - DO II=3,4 - PBM1(II) = PBM1(II)*P1n(II)/PBM(II) - PBM2(II) = PBM2(II)*P1n(II)/PBM(II) - - PTG1(II) = PTG1(II)*abs(P2N(II)/PTG(II)) - PTG2(ii) = PTG2(ii)*abs(P2N(II)/PTG(II)) - ENDDO - -c if transverse momentum prior to interaction zero then -c assign transverse momentum of partons according to random fraction - IF(ABS(PBM(1)).LT.EPS10.or.ABS(PBM(2)).LT.EPS10)THEN - DO II = 1,2 - XI = S_RNDM(II) - PBM1(II) = XI*P1N(Ii) - PBM2(II) = (1.D0-XI)*P1N(II) - ENDDO - ELSE - DO II=1,2 - PBM1(II) = PBM1(II)*P1N(II)/PBM(II) - PBM2(II) = PBM2(II)*P1N(II)/PBM(II) - ENDDO - ENDIF - - IF(ABS(PTG(1)).LT.EPS10.or.ABS(PTG(2)).LT.EPS10)THEN - DO II=1,2 - XI = S_RNDM(II) - PTG1(II) = XI*P2N(II) - PTG2(II) = (1.D0-XI)*P2N(II) - ENDDO - ELSE - DO II=1,2 - PTG1(II) = PTG1(II)*P2N(II)/PTG(II) - PTG2(II) = PTG2(II)*P2N(II)/PTG(II) - ENDDO - ENDIF - - IF(NDEBUG.GT.3)THEN - write(LUN,*) ' parton 4momenta after scattering:' - write(LUN,*) ' PBM1:' , (PBM1(jj),jj=1,5) - write(LUN,*) ' PBM2:' , (PBM2(jj),jj=1,5) - write(LUN,*) ' sum: ' , (PBM2(jj)+PBM1(jj),jj=1,5) - write(LUN,*) ' PTG1:' , (PTG1(jj),jj=1,5) - write(LUN,*) ' PTG2:' , (PTG2(jj),jj=1,5) - write(LUN,*) ' sum: ' , (PTG2(jj)+PTG1(jj),jj=1,5) - ENDIF - -C... change parton 4momenta on stack - CALL EDT_PRTN(IBM1,PBM1(1),PBM1(2),PBM1(3),PBM1(4),PBM1(5),IDM) - CALL EDT_PRTN(IBM2,PBM2(1),PBM2(2),PBM2(3),PBM2(4),PBM2(5),IDM) - - CALL EDT_PRTN(ITG1,PTG1(1),PTG1(2),PTG1(3),PTG1(4),PTG1(5),IDM) - CALL EDT_PRTN(ITG2,PTG2(1),PTG2(2),PTG2(3),PTG2(4),PTG2(5),IDM) - -C... add remnants -c references are circular: -c rmnt --> parton1 --> parton2 --> lvl2 rmnt (hadron) --> rmnt - IF(KRMNT.eq.1)THEN -c beam side remnant, add only if does not exist yet otherwise edit - IF(IBMRDX(1).eq.0)THEN - CALL ADD_PRTN - & (P1N(1),P1N(2),P1N(3),P1N(4),P1N(5),2,0,IBM1,IBMRDX(1)) - ELSE - CALL EDT_PRTN - & (IBMRDX(1),P1N(1),P1N(2),P1N(3),P1N(4),P1N(5),IREF) - ENDIF -c add beam hadron as hypothetical final state - IF(IBMH.eq.0)THEN - CALL ADD_PRTN - & (P1N(1),P1N(2),P1N(3),P1N(4),P1N(5),KRB,2,IBMRDX(1),IBMH) - ELSE - CALL EDT_PRTN - & (IBMH,P1N(1),P1N(2),P1N(3),P1N(4),P1N(5),IREF) - ENDIF -c add references rmnt --> parton1 etc - CALL ADD_REF(IBMRDX(1),IBM1) - CALL ADD_REF(IBM1,IBM2) - CALL ADD_REF(IBM2,IBMH) - - ELSEIF(KRMNT.eq.2)THEN -c add target side remnant - IF(ITGRDX(JW,1).eq.0)THEN - CALL ADD_PRTN - & (P2N(1),P2N(2),P2N(3),P2N(4),P2N(5), - & -2,0,0,ITGRDX(JW,1)) - ELSE - CALL EDT_PRTN - & (ITGRDX(JW,1),P2N(1),P2N(2),P2N(3),P2N(4),P2N(5),IREF) - ENDIF - IF(ITGH.eq.0)THEN -c add target hadron as hypothetical final state, always nucleon - CALL ADD_PRTN - & (P2N(1),P2N(2),P2N(3),P2N(4),P2N(5), - & KRT(JW),2,ITGRDX(JW,1),ITGH) - ELSE - CALL EDT_PRTN - & (ITGH,P2N(1),P2N(2),P2N(3),P2N(4),P2N(5),IREF) - ENDIF - -c add references rmnt --> parton1 etc - CALL ADD_REF(ITGRDX(JW,1),ITG1) - CALL ADD_REF(ITG1,ITG2) - CALL ADD_REF(ITG2,ITGH) - - ELSEIF(KRMNT.eq.3)THEN -c beam side remnant, add only if does not exist yet, otherwise edit - IF(IBMRDX(1).EQ.0)THEN - CALL ADD_PRTN - & (P1N(1),P1N(2),P1N(3),P1N(4),P1N(5),2,0,0,IBMRDX(1)) - ELSE - CALL EDT_PRTN - & (IBMRDX(1),P1N(1),P1N(2),P1N(3),P1N(4),P1N(5),IREF) - ENDIF -c add beam hadron as hypothetical final state - IF(IBMH.EQ.0)THEN - CALL ADD_PRTN - & (P1N(1),P1N(2),P1N(3),P1N(4),P1N(5),KRB,2,IBMRDX(1),IBMH) - ELSE - CALL EDT_PRTN - & (IBMH,P1N(1),P1N(2),P1N(3),P1N(4),P1N(5),IREF) - ENDIF - CALL ADD_REF(IBMRDX(1),IBM1) - CALL ADD_REF(IBM1,IBM2) - CALL ADD_REF(IBM2,IBMH) - -c add target side remnant - IF(ITGRDX(JW,1).eq.0)THEN - CALL ADD_PRTN - & (P2N(1),P2N(2),P2N(3),P2N(4),P2N(5),-2,0,0,IREF) - ITGRDX(JW,1) = IREF - ELSE - CALL EDT_PRTN - & (ITGRDX(JW,1),P2N(1),P2N(2),P2N(3),P2N(4),P2N(5),IREF) - ENDIF - IF(ITGH.eq.0)THEN -c add target hadron as hypothetical final state - CALL ADD_PRTN - & (P2N(1),P2N(2),P2N(3),P2N(4),P2N(5), - & KRT(JW),2,ITGRDX(JW,1),ITGH) - ELSE - CALL EDT_PRTN - & (ITGH,P2N(1),P2N(2),P2N(3),P2N(4),P2N(5),IREF) - ENDIF -c add references rmnt --> parton1 etc - CALL ADD_REF(ITGRDX(JW,1),ITG1) - CALL ADD_REF(ITG1,ITG2) - CALL ADD_REF(ITG2,ITGH) - - ENDIF - - 100 IF(JDIF(JW).ne.0.and.NWD.ne.1)THEN -c incoherent diffraction case -c add parton 4momenta to obtain c.m energy - -c beam side - IBMST1 = ICSTDX(2*(JW-1)+1,2) - IBMST2 = ICSTDX(2*(JW-1)+2,2) - -c target side - ITGST1 = ICSTDX(2*(JW-1)+1,3) - ITGST2 = ICSTDX(2*(JW-1)+2,3) - - CALL RD_PRTN_4VEC(IBMST1,PBM1,IFLB1,IDM) - CALL RD_PRTN_4VEC(IBMST2,PBM2,IFLB2,IDM) - CALL ADD_4VECS(PBM1,PBM2,PBM) - CALL RD_PRTN_4VEC(ITGST1,PTG1,IFLT1,IDM) - CALL RD_PRTN_4VEC(ITGST2,PTG2,IFLT2,IDM) - CALL ADD_4VECS(PTG1,PTG2,PTG) -c total 4momentum - CALL ADD_4VECS(PBM,PTG,PTT) -c add diffractive system to parton stack -c references are: diff --> diff. hadron -c --> beam parton1 --> beam parton2 --> target parton1 etc - CALL ADD_PRTN_4VEC(PTT,-10*JDIF(JW),0,IBMST1,IREF) - CALL ADD_INT_REF(IREF,IINTDX(JW)) -c both string indices point to diff. system - ICSTDX(2*(JW-1)+1,1) = IREF - ICSTDX(2*(JW-1)+2,1) = IREF -c add diff. beam hadron to stack -c model assumes remnant always excited in first interaction - L0 = KB -c if not first interaction or remnant excited, merge sea pair to hadron - IF(KRMNT.ne.0.or.JW.ne.1) THEN - L0 = IMRG2HAD(IFLB1,IFLB2) -c CALL SIB_I4FLAV(IFLB1,IFLB2,IDM,IDM1,L0) - ENDIF -c check kinematic limits -c m2_max should be smaller than m2_min - IREJ = 1 - EE = PTT(5) - EE2 = PTT(5)**2 - K = 2-IBAR(IABS(L0)) - IF(JDIF(jw).gt.1)THEN - DELTAE = EE-AM(13) - XMMIN=max(XM2MIN(1),(AM(IABS(l0))+AM(7)+0.02D0)**2) - ELSE - DELTAE = EE-AM(IABS(L0)) - XMMIN=max(XM2MIN(K),(AM(IABS(l0))+AM(7)+0.02D0)**2) - ENDIF -c print *,'jw,jdif,nwd,l0,ifl1,ifl2,deltae,xmin,ee,xmax', -c & jw,jdif(jw),nwd,l0,ifl1,ifl2,deltae,xmmin,ee,par(13)*ee2 - IF(DELTAE.lt.AM(7)+0.02D0) THEN - IF(ndebug.gt.2) - & WRITE(lun,*) ' EXCT_RMNT: inchoherent diff. :', - & ' not enough mass left for excitation! (DELTAE,PION,', - & 'IREJ,NCALL)',DELTAE,AM(7)+0.02D0,IREJ,NCALL - RETURN - ENDIF - IF(PAR(13)*EE2.lt.XMMIN)THEN - IF(ndebug.gt.2) - & WRITE(lun,*) ' EXCT_RMNT: inchoherent diff. :', - & ' not enough mass left for excitation! (min,max,', - & 'IREJ,NCALL)',PAR(13)*EE2,XMMIN,IREJ,NCALL - RETURN - ENDIF - CALL ADD_PRTN_4VEC(PTT,L0,2,IBMST1,IDHAD) - CALL ADD_REF(IREF,IDHAD) -c reset references of partons - CALL ADD_REF(IBMST1,IBMST2) - CALL ADD_REF(IBMST2,ITGST1) - CALL ADD_REF(ITGST1,ITGST2) - CALL ADD_REF(ITGST2,IREF) - IF(ndebug.gt.2) THEN - WRITE(LUN,*) ' EXCT_RMNT: incoherent diff. ', - & '(IDX,IDX2,JDIF,ECM,L0)',IREF,IDHAD,JDIF(JW),PTT(5),L0 - WRITE(LUN,*) ' EXCT_RMNT: DELTAE,XM2MAX:',DELTAE,PAR(13)*EE2 - ENDIF - IREJ = 0 - RETURN - ENDIF - -C... add central strings to stack -c partons designated for central strings -c are indexed in ICSTDX(JW,2:3) -c pstr_j = p_j_bm + p_j_tg -c string mass ** 2 = pstr_j ** 2 -c --> read momenta from stack, add beam and target side, -c references are set in a loop: -c string --> beam-parton --> target-parton --> string -c then write string 4momentum on stack - IMRG = 0 - DO JJ=1,2 - ISTH = 0 - IBMST = ICSTDX(2*(JW-1)+JJ,2) - ITGST = ICSTDX(2*(JW-1)+JJ,3) - CALL RD_PRTN_4VEC(IBMST,PBM1,IFL1,IDM) - CALL RD_PRTN_4VEC(ITGST,PTG1,IFL2,IDM) - CALL ADD_4VECS(PBM1,PTG1,PTT) -c transverse mass of string end partons (pt**2) - CALL GET_XMT2(IBMST,XMT12) - CALL GET_XMT2(ITGST,XMT22) -c available mass for string - EE = SQRT(PTT(4)**2-PTT(3)**2) -c catch virtual strings - IF(PTT(5).lt.0.D0) THEN - IREJ = 1 - IF(ndebug.gt.2) - & write(LUN,*)' EXCT_RMNT: virt. string (M):',EE - IF(ndebug.gt.3)then - CALL GET_IMASS2(IBMST,XM2) - write(LUN,*) ' PBM1:', (PBM1(j),j=1,5),XM2 - CALL GET_IMASS2(ITGST,xm2) - write(LUN,*) ' PTG1:', (PTG1(j),j=1,5),XM2 - write(LUN,*) ' Ptot:', (PTT(j),j=1,5) - ENDIF -c stop - RETURN - ENDIF -c minimal string mass requirement - IF(EE.lt.sqrt(XMT12)+sqrt(XMT22)+PAR(123))THEN - IAFL1 = IABS(IFL1) - IAFL2 = IABS(IFL2) - IF(IPAR(74).eq.1)THEN -c try to form single meson, set merge flag - IF(IAFL1.gt.10.and.IAFL2.gt.10) THEN -c skip if two diquarks need merging.. - IREJ = 1 - RETURN - ENDIF - IF((IAFL1/10.eq.4.or.mod(IAFL1,10).eq.4) - + .and.(IAFL2/10.eq.4.or.mod(IAFL2,10).eq.4)) THEN -c skip if two charm quarks need merging.. - IREJ = 1 - RETURN - ENDIF - L0 = IMRG2HAD(IFL1,IFL2) - IF(EE.gt.AM(IABS(L0))) then - IMRG = IMRG + JJ - CALL ADD_PRTN_4VEC(PTT,L0,2,IBMST,ISTH) - IF(ndebug.gt.2)then - write(lun,*) - & ' EXCT_RMNT: c.string mass too low! ', - & 'merge into hadron..',l0 - ENDIF - ENDIF - ELSE - IF(ndebug.gt.2)then - write(lun,*) - & ' EXCT_RMNT: c.string kinematic rejection!' - write(lun,*) ' EE,limit,XMT1,XMT2:', - & EE,sqrt(XMT12)+sqrt(XMT22)+0.3D0,sqrt(XMT12), - & sqrt(XMT22) - write(lun,*) ' return to momentum sampling..' - endif - IREJ = 1 - RETURN - ENDIF - ENDIF -c add central string to stack, refering to beam-end parton - CALL ADD_PRTN_4VEC(PTT,1,0,IBMST,IREF) - ICSTDX(2*(JW-1)+JJ,1) = IREF - CALL ADD_INT_REF(Iref,IINTDX(JW)) -c add reference to target parton to beam parton - CALL ADD_REF(IBMST,ITGST) - IF(ISTH.ne.0) THEN -c if string merged to hadron add reference corresponding reference - CALL ADD_REF(ITGST,ISTH) - CALL ADD_REF(ISTH,IREF) - ELSE -c add reference to corresponding central string to target parton - CALL ADD_REF(ITGST,IREF) - ENDIF - ENDDO - -c form single hadron from string if mass was too low .. -c need to put hadron on shell by exchanging energy with other string - IF(IMRG.eq.1.or.IMRG.eq.2)THEN - IF(ndebug.gt.2) - & WRITE(LUN,*)' EXCT_RMNT: merging one string..',IMRG -c one string merged -c index of merged string and its last parton - IMST = ICSTDX(2*(JW-1)+IMRG,1) - IMST1 = ICSTDX(2*(JW-1)+IMRG,3) -c index of ordinary string - IMRGBAR = 3-IMRG - ICST2 = ICSTDX(2*(JW-1)+IMRGBAR,1) -c read 4momenta - CALL RD_REF(IMST1,ISTH) - CALL RD_PRTN_4VEC(ISTH,P1,L0,IREF) -c string two - CALL RD_PRTN_4VEC(ICST2,P2,IFL2,IDM) -c cm energy - CALL ADD_4VECS(P1,P2,PTT) - IF(ndebug.gt.2)THEN - write(lun,*)' EXCT_RMNT: string A :',(P1(i),i=1,5) - write(lun,*)' EXCT_RMNT: string B :',(P2(i),i=1,5) - write(lun,*)' EXCT_RMNT: total :',(PTT(i),i=1,5) - ENDIF - ECM = PTT(5) - XM1 = AM(IABS(L0)) - XM2 = P2(5) - CALL TRANSFONSHELL(ECM,XM1,XM2,1.D0,3,P1N,P2N,LBD) - IF(LBD.eq.1) THEN - IF(NDEBUG.gt.2) - & WRITE(LUN,*)' EXCT_RMNT: mass transfer failed!' - RETURN - ENDIF -c by definition p1n is along +z in string cm, need to invert if pzA < pzB -c IF(P2(3).gt.P1(3)) CALL SWTCH_LMNTS(P1N(3),P2N(3)) - -C.. rotate parton-parton axis onto string-string axis -c therefore boost to parton-parton cm -c to calc. rotation angles BEFORE interaction ! - DO K = 1,4 - GABE(K) = PTT(K)/PTT(5) - enddo - CALL SIB_ALTRA(GABE(4),-GABE(1),-GABE(2),-GABE(3), - & P1(1),P1(2),P1(3),P1(4), - & P1TOT,PBM1(1),PBM1(2),PBM1(3),PBM1(4)) -c rotation factors - COD= PBM1(3)/P1TOT - SID= DSQRT(PBM1(1)**2+PBM1(2)**2)/P1TOT - COF=1.D0 - SIF=0.D0 - IF(P1TOT*SID.GT.EPS5) THEN - COF=PBM1(1)/(SID*P1TOT) - SIF=PBM1(2)/(SID*P1TOT) - ANORF=DSQRT(COF*COF+SIF*SIF) - COF=COF/ANORF - SIF=SIF/ANORF - ENDIF - IF(ndebug.gt.2)THEN - write(lun,*)' EXCT_RMNT: momentum in cm:',(PBM1(i),i=1,5) - write(lun,*)' EXCT_RMNT: rotation factors:',COD,SID,COF,SIF - write(lun,*)' EXCT_RMNT: rotation angles (theta,phi):', - & ACOS(COD),ACOS(COF),ASIN(SID),ASIN(SIF) - write(lun,*)' EXCT_RMNT: momentum:', - & sqrt(P1N(1)**2+P1N(2)**2+P1N(3)**2) - ENDIF -c rotate parton momenta after interaction, still in parton-parton frame - CALL SIB_TRANI(P1N(1),P1N(2),P1N(3),COD,SID,COF,SIF - & ,PX,PY,PZ) - P1N(1)=PX - P1N(2)=PY - P1N(3)=PZ - CALL SIB_TRANI(P2N(1),P2N(2),P2N(3),COD,SID,COF,SIF - & ,PX,PY,PZ) - P2N(1)=PX - P2N(2)=PY - P2N(3)=PZ - IF(ndebug.gt.2) write(lun,*)' EXCT_RMNT: momentum*:', - & sqrt(P1N(1)**2+P1N(2)**2+P1N(3)**2) - -c boost back to hadron-hadron - DO K = 1,4 - GABE(K) = PTT(K)/PTT(5) - ENDDO - CALL SIB_ALTRA(GABE(4), GABE(1), GABE(2), GABE(3), - & P1N(1),P1N(2),P1N(3),P1N(4), - & P1TOT,P1(1),P1(2),P1(3),P1(4)) - P1(5)=P1N(5) - CALL SIB_ALTRA(GABE(4), GABE(1), GABE(2), GABE(3), - & P2N(1),P2N(2),P2N(3),P2N(4), - & P2TOT,P2(1),P2(2),P2(3),P2(4)) - p2(5)=p2n(5) - IF(ndebug.gt.2)THEN - write(lun,*)' EXCT_RMNT: momenta after scattering:' - write(lun,*)' EXCT_RMNT: hadron A :',(P1(i),i=1,5) - write(lun,*)' EXCT_RMNT: string B :',(P2(i),i=1,5) - ENDIF - -c edit partons on stack - CALL EDT_PRTN - & (ISTH,P1(1),P1(2),P1(3),P1(4),P1(5),IREF) - ICST11 = ICSTDX(2*(JW-1)+IMRG,2) - CALL EDT_PRTN - & (IMST,P1(1),P1(2),P1(3),P1(4),P1(5),ICST11) - ICST21 = ICSTDX(2*(JW-1)+IMRGBAR,2) - CALL EDT_PRTN - & (ICST2,P2(1),P2(2),P2(3),P2(4),P2(5),ICST21) - - ELSEIF(IMRG.eq.3)THEN - IF(ndebug.gt.2) - & WRITE(LUN,*)' EXCT_RMNT: merge both strings..' - -c both strings merged -c index of merged string and its last parton - IMST1 = ICSTDX(2*(JW-1)+1,1) - IMST11 = ICSTDX(2*(JW-1)+1,3) -c index of ordinary string - IMST2 = ICSTDX(2*(JW-1)+2,1) - IMST21 = ICSTDX(2*(JW-1)+2,3) -c read 4momenta - CALL RD_REF(IMST11,ISTH1) - CALL RD_PRTN_4VEC(ISTH1,P1,L01,IREF) -c string two - CALL RD_REF(IMST21,ISTH2) - CALL RD_PRTN_4VEC(ISTH2,P2,L02,IREF) - XM1 = AM(IABS(L01)) - XM2 = AM(IABS(L02)) -c cm energy - CALL ADD_4VECS(P1,P2,PTT) - ECM = PTT(5) - ETOT = PTT(4) - IF(ndebug.gt.2)THEN - write(lun,*)' EXCT_RMNT: string A :',(P1(i),i=1,5) - write(lun,*)' EXCT_RMNT: string B :',(P2(i),i=1,5) - write(lun,*)' EXCT_RMNT: total :',(PTT(i),i=1,5) - ENDIF - - CALL TRANSFONSHELL(ecm,xm1,xm2,1.D0,3,P1n,P2n,LBD) - IF(LBD.eq.1) THEN - IF(NDEBUG.gt.2) - & WRITE(LUN,*)' EXCT_RMNT: mass transfer failed!' - RETURN - ENDIF -c by definition p1n is along +z in string cm, need to invert if pzA < pzB -c IF(P2(3).gt.P1(3)) CALL SWTCH_LMNTS(P1N(3),P2N(3)) -c rotate parton-parton axis onto string-string axis -c boost to parton-parton cm to calc. rotation angles BEFORE interaction! - DO K = 1,4 - GABE(K) = PTT(K)/PTT(5) - ENDDO - CALL SIB_ALTRA(GABE(4),-GABE(1),-GABE(2),-GABE(3), - & P1(1),P1(2),P1(3),P1(4), - & P1TOT,PBM1(1),PBM1(2),PBM1(3),PBM1(4)) -c rotation factors - COD= PBM1(3)/P1TOT - SID= DSQRT(PBM1(1)**2+PBM1(2)**2)/P1TOT - COF=1.D0 - SIF=0.D0 - IF(P1TOT*SID.GT.EPS5) THEN - COF=PBM1(1)/(SID*P1TOT) - SIF=PBM1(2)/(SID*P1TOT) - ANORF=DSQRT(COF*COF+SIF*SIF) - COF=COF/ANORF - SIF=SIF/ANORF - ENDIF -c rotate parton momenta after interaction - CALL SIB_TRANI(P1N(1),P1N(2),P1N(3),COD,SID,COF,SIF - & ,PX,PY,PZ) - P1N(1)=PX - P1N(2)=PY - P1N(3)=PZ - CALL SIB_TRANI(P2N(1),P2N(2),P2N(3),COD,SID,COF,SIF - & ,PX,PY,PZ) - P2N(1)=PX - P2N(2)=PY - P2N(3)=PZ - -c boost massive hadrons back to hadron-hadron - CALL SIB_ALTRA(GABE(4), GABE(1), GABE(2), GABE(3), - & P1N(1),P1N(2),P1N(3),P1N(4), - & P1TOT,P1(1),P1(2),P1(3),P1(4)) - P1(5)=P1N(5) - CALL SIB_ALTRA(GABE(4), GABE(1), GABE(2), GABE(3), - & P2N(1),P2N(2),P2N(3),P2N(4), - & P2TOT,P2(1),P2(2),P2(3),P2(4)) - P2(5)=P2N(5) - IF(ndebug.gt.2)THEN - write(lun,*)' EXCT_RMNT: hadron A :',(P1(i),i=1,5) - write(lun,*)' EXCT_RMNT: hadron B :',(P2(i),i=1,5) - ENDIF - -c edit partons on stack - CALL EDT_PRTN - & (ISTH1,P1(1),P1(2),P1(3),P1(4),P1(5),IREF) - ICST11 = ICSTDX(2*(JW-1)+1,2) - CALL EDT_PRTN - & (IMST1,P1(1),P1(2),P1(3),P1(4),P1(5),ICST11) - - CALL EDT_PRTN - & (ISTH2,P2(1),P2(2),P2(3),P2(4),P2(5),IREF) - ICST21 = ICSTDX(2*(JW-1)+2,2) - CALL EDT_PRTN - & (IMST2,P2(1),P2(2),P2(3),P2(4),P2(5),ICST21) - - ENDIF - - IREJ = 0 - - RETURN - END -C======================================================================= - - SUBROUTINE FIREBALL_4FLV(L0,P0,PCHEXin,IREJ) - -C----------------------------------------------------------------------- -C... "decay" of an excited state with the quantum numbers -C. of particle L0 and the 5-momentum P0 -C. 4 flavor generalization /FR'13 -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - - CHARACTER*6 NAMP - COMMON /S_CNAM/ NAMP (0:99) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT - - DIMENSION P0(5), LL(10), PD(10,5), IFL(3), INONLEAD(2) - DIMENSION LRESCHEX(6:99), LRES(6:99), LCON(6:99), LPIC(-1:1) - DIMENSION LSTR(6:99), LPICS(-2:2) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE -c charge exchange map - DATA (LCON(I),I=6, 33) /7,6,6,21,22,9,9,14,13,4*0,20,19,9,10,23, - & 24,27,27,25,30,31,28,29,32,33/ - DATA (LCON(I),I=34, 49) - & /35,34,35,38,37,39,41,42,41,42,45,44,45,48,47,49/ - DATA (LCON(I),I=50, 83) /0,52,51,54,53,4*0,71,72,10*0, - & 59,60,73,74,75,76,77,80,81,78,79,0,83/ - DATA (LCON(I),I=84, 99) /84,85,86,87,88,89,4*0,94,95,96,97,98,99/ -c pion charge conversion map - DATA LPIC /8,6,7/ -c kaon charge conversion map - DATA LPICS /9,21,0,22,10/ -c charge exchange to resonances map - DATA (LRESCHEX(I),I=6, 33) /26,27,27,30,31,9,9,42,41,19*0/ - DATA (LRESCHEX(I),I=34, 39) /45,44,45,48,47,39/ - DATA (LRESCHEX(I),I=40, 49) /41,42,43,42,45,46,45,48,47,49/ - DATA (LRESCHEX(I),I=50, 83) - & /0,52,51,54,53,4*0,60,59,10*0,71,72,73,75,74, - & 77,76,79,78,80,81,0,83/ - DATA (LRESCHEX(I),I=84, 99) - & /84,85,86,87,88,89,4*0,94,95,96,97,98,99/ -c resonance excitation map - DATA (LRES(I),I=6, 39) - & /27,25,26,28,29,9,9,41,42,19*0,44,45,46,47,48,39/ - DATA (LRES(I),I=40, 49) /40,41,42,43,44,45,46,47,48,49/ - DATA (LRES(I),I=50, 83) - & /0,51,52,53,54,4*0,78,79,10*0,71,72,73,76,77,76, - & 77,78,79,80,81,0,83/ - DATA (LRES(I),I=84, 99) /94,95,96,97,98,89,4*0,94,95,96,97,98,99/ -c strangeness excitation map - DATA LSTR(6:27) /6,7,8,9,10,11,12,34,39,6*0,21,22,23,24,25,26,27/ - DATA LSTR(28:39) /28,29,30,31,32,33,44,45,46,47,48,39/ - DATA LSTR(40:49) /40,41,42,43,44,45,46,47,48,49/ - DATA LSTR(50:83) /0,51,52,53,54,4*0,78,79,10*0,71,72,73,76,77,76, - & 77,78,79,80,81,0,83/ - DATA LSTR(84:99) /94,95,96,97,98,89,4*0,94,95,96,97,98,99/ - -c... charge exchange reaction rate -c DATA PCHEX /0.33/ - -c default parameter: PAR(61) - PCHEX = PCHEXin - -c split charge exchange between 2 and 3+ fireballs - IF(IPAR(91).eq.1.and.NPI.gt.2)THEN - PCHEX = 1.D0-PCHEX - ENDIF - -c hyperon production rate - PLAM = PAR(157) - -c... suppression of high mass particles in fireball -c xmpsuppr = prob. accepting additional proton - XMPSUPPR=PAR(33) - IF(ABS(XMPSUPPR).lt.EPS3) THEN - WRITE(LUN,*) - & ' Error: too low mass suppression in 4 flv fireball!' - WRITE(LUN,*) - & ' Probably PAR(33)/IPAR(14) not properly set, aborting..' - STOP - ENDIF - XTEMPH=(AM(6)-AM(13))/dLOG(XMPSUPPR) - - IF(Ndebug.gt.3) THEN - WRITE(LUN,*)' FIRBALL_4FLV: called with (L0,P0):', - & L0,P0 - WRITE(LUN,*)' 2nd Proton rejection prob.:',XMPSUPPR - WRITE(LUN,*)' fireball temperature:',XTEMPH - WRITE(LUN,*)' charge exchange prob.:',PCHEX - WRITE(LUN,*)' multiplicity width:',PAR(38) - ENDIF - -c... special vector resonance treatment for meson projectiles -c i.e. spin exchange probability - PAR5def = PAR(5) - IF(IPAR(14).eq.-2.and.abs(kb).lt.13)THEN - PAR(5)=PAR(34) - ENDIF - - NTRY=0 - 100 NTRY=NTRY+1 - IF(NTRY.GT.20)THEN - WRITE(LUN,*)' FIRBALL_4FLV: unable to sample 4flv fireball!' - WRITE(LUN,*)' lacking rejection mechanism, abort..' - CALL SIB_REJECT ('FIRBALL_4FLV ') -c RETURN - ENDIF - - LA = ABS(L0) - ISGN = ISIGN(1,L0) - DELTAE = P0(5) - AM(LA) - IF(DELTAE.lt.AM(6)+0.02D0)THEN - IREJ = 1 - IF(ndebug.gt.3) - & WRITE(LUN,*)' FIRBALL_4FLV: too low mass!! aborting...',IREJ -c xa=-1. -c xa=log(xa) -c stop - RETURN - ENDIF - AV = 2.D0*SQRT(DELTAE) - -c... select number of particles in fireball -c at least two - 200 XRNDM = GASDEV(LA) - NPI = INT(AV*(1.D0+PAR(38)*XRNDM)) - XMMIN = AM(LA)+DBLE(NPI-1)*AM(6)+0.02D0 - IF(Ndebug.gt.3) - & WRITE(LUN,*)' NPI,av,rndm,xmin,delta', - & NPI,av,XRNDM,xmmin,P0(5)-XMMIN - - IF((NPI.LE.1).OR.(NPI.GT.9).OR.(P0(5).LT.XMMIN))THEN - GOTO 200 - ENDIF - IF(Ndebug.gt.3) - & WRITE(LUN,*)' FIRBALL_4FLV: No. of particles sampled. ', - & '(NPI,DELTAE,NTRY):',NPI,DELTAE,NTRY - -c... sample particle list - NTRYL=0 - 210 CONTINUE -c... special vector resonance treatment with meson projectile - IF(IPAR(14).eq.-3.and.LA.lt.13)THEN -c form resonance from meson beam -cdh IF(NTRY.GT.5) GOTO 211 - IF(NTRY.GT.5) THEN -c split last hadron again to start hadron chain - CALL HSPLI (LL(I+1),IFL(1),IFL(2)) - - IF(Ndebug.gt.3) - & WRITE(LUN,*)' FIRBALL_4FLV: Input hadron split. ', - & '(L0,IFL1,IFL2):',LL(I+1),IFL(1),IFL(2) - WREM = P0(5) - WREM2 = AM2(ABS(LL(1))) - INONLEAD(1)=0 - INONLEAD(2)=0 - ELSE - I=1 - IF(PCHEX.gt.S_RNDM(LA))THEN - LL(I)=LRESCHEX(LA) - CALL HSPLI(LCON(LA),IFL1,IFL2) - IFL(1)=IFL1 - IFL(2)=IFL2 - ELSE - LL(I)=LRES(LA) - CALL HSPLI(L0,IFL1,IFL2) - IFL(1)=-IFL1 - IFL(2)=-IFL2 - ENDIF - WREM = P0(5)-AM(ABS(LL(1))) - WREM2 = AM2(ABS(LL(1))) - INONLEAD(1)=1 - INONLEAD(2)=1 - ENDIF - - ELSE -c... baryon projectile -c first two particles defined by charge exchange - I=1 - LA1=LA -c add strangeness - XLIMLAM=sqrt(AM2(35)+AM2(9)+0.4) - IF(S_RNDM(LA1).lt.PLAM*(1-IABS(ISTR(LA))).and. - & DELTAE.gt.XLIMLAM)THEN - LA1 = LSTR(LA) -c print *,'xlim<deltae?: ',xlimlam,deltae - IF(Ndebug.gt.3) - &write(lun,*)' FIRBALL_4FLV: producing hyperon:',namp(LA),namp(LA1) - endif - IF(PCHEX.gt.S_RNDM(LA1))THEN - L1=LCON(LA1) - if(la.eq.42) l1 = l1 + 2 * int(2.D0*S_RNDM(L1)) - LL(I)=L1*ISGN -c WRITE(LUN,*)' charge exchange!',ISGN*LA,'->',L1 - ELSE - L1=LA1 - LL(I)=LA1*ISGN - ENDIF -c determine remaining charge and strangeness - IDQ=ICHP(LA1)*ISGN-ICHP(L1)*ISIGN(1,LL(I)) - IDS=ISTR(LA)*ISGN-ISTR(L1)*ISIGN(1,LL(I)) - IF(ABS(IDQ).gt.1) write(lun,*) 'LA,LA1,L1',LA,LA1,L1 - IF(IABS(IDS).gt.1) - & write(lun,*) 'too much strangeness,LA,LA1,L1:' - & ,namp(LA),namp(LA1),namp(L1) - IF(IDS.ne.0)THEN - IDX = IDS-IDQ - LL(I+1)=LPICS(IDX) ! compensate with strange meson if - ELSE - LL(I+1)=LPIC(IDQ) ! compensate with meson - ENDIF - IF(NPI.eq.2) GOTO 300 -c split last hadron again to start hadron chain -cdh 211 CALL HSPLI (LL(I+1),IFL(1),IFL(2)) - CALL HSPLI (LL(I+1),IFL(1),IFL(2)) - - IF(Ndebug.gt.3) - & WRITE(LUN,*)' FIRBALL_4FLV: Input hadron split. ', - & '(L0,IFL1,IFL2):',LL(I+1),IFL(1),IFL(2) - WREM = P0(5) - WREM2 = AM2(ABS(LL(1))) - INONLEAD(1)=0 - INONLEAD(2)=0 - ENDIF - - IF(NTRYL.gt.20) GOTO 100 - NTRYL=NTRYL+1 - - 230 I=I+1 - JT=INT(1.5D0+S_RNDM(I)) - JR=3-JT - NTRYS=0 - IFLB=IFL(JT) - IDM = 5 - 240 CALL SIB_I4FLAV (IFL(JT), 0, IDM, IFL(3), LL(I)) - IF(NTRYS.gt.50) GOTO 210 - NTRYS=NTRYS+1 - W=dEXP(-AM(ABS(LL(I)))/XTEMPH) - IF(Ndebug.gt.4) - & WRITE(LUN,*)' FIRBALL_4FLV: flavor added: ', - & '(I,NTRYS,LL(I),IFL3,W):',I,NTRYS,LL(I),IFL(3),W - IF(W.LT.S_RNDM(I).and.INONLEAD(JT).eq.1) GOTO 240 - -c... kinematic limits... - WREM = WREM-AM(IABS(LL(I))) - WREM2_2=WREM2+2.D0*dSQRT(WREM2)*AM(IABS(LL(I)))+AM2(IABS(LL(I))) - IF(Ndebug.gt.4) - & WRITE(LUN,*)' FIRBALL_4FLV: kinematic limits: ', - & '(I,NTRYS,P05**2,WREM2):',I,NTRYS,P0(5)**2,WREM2_2 - IF(WREM2_2+0.2D0*S_RNDM(I+1).ge.P0(5)**2) GOTO 240 - WREM2=WREM2_2 - IF(Ndebug.gt.3) - & WRITE(LUN,*) - & ' FIRBALL_4FLV: Hadron added: (KF,NAMP,I,NONlead,WRME2)', - & LL(I),NAMP(ABS(LL(I))),I,INONLEAD(JT),WREM2 - - IFL(JT)=-IFL(3) - INONLEAD(JT)=1 - IF(I.lt.NPI-1) GOTO 230 - IF(ABS(IFL(JT)).gt.3.and.ABS(IFL(JR)).gt.3) THEN - IFL(JT)=IFLB - GOTO 240 - ENDIF - -c... close list - I=I+1 - NTRYC=0 -c$$$ IAFL1 = IABS(mod(IFL(JR),100)) -c$$$ IAFL2 = IABS(mod(IFL(jt),100)) -c$$$ IF ((IAFL1/10.eq.4.or.mod(IAFL1,10).eq.4) -c$$$ + .and.(IAFL2/10.eq.4.or.mod(IAFL2,10).eq.4)) -c$$$ + GOTO 100 ! reject two charm quarks -c$$$ IF(IAFL1*IAFL2.GT.100) GOTO 100 - 250 CALL SIB_I4FLAV (IFL(JT), IFL(JR), IDM, IFL(3), LL(I)) - IF(NTRYC.gt.10) GOTO 210 - NTRYC=NTRYC+1 - WREM2_2=WREM2+2.D0*dSQRT(WREM2)*AM(ABS(LL(I)))+AM2(ABS(LL(I))) - IF(Ndebug.gt.5) - & WRITE(LUN,*)' FIRBALL_4FLV: closing List: (IFL1,IFL2,KF,', - & 'NAMP,I,NTRYC,WREM2)', - & IFL(JT),IFL(JR),LL(I),NAMP(ABS(LL(I))),I,NTRYC,WREM2_2 - - IF(WREM2_2+0.2D0*S_RNDM(I).ge.P0(5)**2) GOTO 250 - - 300 IF(Ndebug.gt.3) - & WRITE(LUN,*) - & ' FIRBALL_4FLV: flavors sampled. (NPI,LL,WREM,NTRYL):', - & NPI,(LL(ii),ii=1,NPI),WREM,NTRYL - -c... fill phasespace - CALL DECPAR (0,P0,NPI,LL,PD) - DO J=1,NPI - NP = NP+1 - LLIST(NP) = LL(J) - NPORIG(NP) = IPFLAG*2 - niorig(NP)= iiflag - DO K=1,5 - P(NP,K) = PD(J,K) - ENDDO - ENDDO - PAR(5)=PAR5def - IREJ = 0 - RETURN - END -C======================================================================= - - SUBROUTINE SIG_RPP2014(L,KT,SQS,SLOPE,SIGT,SIGEL,SIGINEL,RHO) - -C----------------------------------------------------------------------- -C implementation of the PDG RPP 2014 cross section fit -C proton-, pion-, kaon-nucleon interactions -C -c projectile dependent parameters are stored in amp array -c dimensions are: (beam,target,exchange mode) -c cross section is used for interaction length in AIR -c therefore proton and neutron cross sections are averaged. -c -C Input: -c L : beam id (1: proton, 2: pion, 3: kaon) -c KT: target id (0: Nucleon, 1: proton, 2: neutron) -c SQS: c.m. energy in GeV -c SLOPE: fit does not include elastic slope, need input to calc -c elastic and inelastic cross section -c Output: -c SIGT,SIGEL,SIGINEL,RHO -c cross sections and ratio of real and imaginary part of ela. amp. -C----------------------------------------------------------------------- - IMPLICIT NONE -c external types - DOUBLE PRECISION SQS,SIGT,SIGEL,SIGINEL,SLOPE,RHO!,SIGDIF - integer l,kt -c commons - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN -c internal types - DOUBLE PRECISION S,S0,SIG,RHO1,XI - INTEGER k,i,INIT -C universal constants and parameters - DOUBLE PRECISION M0,ETA1,ETA2,H - DOUBLE PRECISION AMP(3,2,3) - DOUBLE PRECISION XMA(3),XMB(2) - SAVE - DATA M0,ETA1,ETA2,H /2.076D0,0.412D0,0.5626D0,0.2838D0/ -c hadron-proton - DATA (AMP(1,1,i),i=1,3) /33.73D0, 13.67D0, 7.77D0 / - DATA (AMP(2,1,i),i=1,3) /18.08D0, 10.44D0, 1.977D0 / - DATA (AMP(3,1,i),i=1,3) /15.84D0, 5.12D0, 3.538D0 / -c hadron-neutron - DATA (AMP(1,2,i),i=1,3) /33.77D0, 14.05D0, 6.93D0 / - DATA (AMP(2,2,i),i=1,3) /18.08D0, 10.44D0, 1.977D0 / - DATA (AMP(3,2,i),i=1,3) /15.73D0, 4.81D0, 1.86D0 / - DATA INIT/0/ -c particle masses -c DATA XMA /0.93827D0,0.13957D0,0.493667D0/ -c DATA XMB /0.93827D0,0.939565D0/ - - IF(INIT.EQ.0) THEN -c use the masses from the mass table - XMA(1) = AM(13) ! proton - XMA(2) = AM(7) ! pi+ - XMA(3) = AM(9) ! K+ - XMB(1) = AM(13) ! proton - XMB(2) = AM(14) ! neutron - INIT = 1 - ENDIF - - s = SQS**2 - sigt = 0.D0 - rho = 0.D0 - k = kt - 100 if(kt.eq.0.and.k.lt.2) k = k + 1 - s0=XMA(l)+XMB(k)+M0 - s0=s0**2 - xi=s/s0 -c print *,'s,s0,xi',s,s0,xi -c print *,'eta1,eta2,h,M0',eta1,eta2,h,M0 -c print *,'P,R1,R2',amp(l,k,1),amp(l,k,2),amp(l,k,3) -c print *,H*log(xi)**2,amp(l,k,1),amp(l,k,2)*(1.D0/xi)**eta1, -c & amp(l,k,3)*(1.D0/xi)**eta2 - sig = H*log(xi)**2+amp(l,k,1)+amp(l,k,2)*(1.D0/xi)**eta1 - & +amp(l,k,3)*(1.D0/xi)**eta2 -c print *,'sig',sig -c print *,'pi,0.5D0,0.D0',pi,0.5D0,0.D0 -c print *,pi*h*log(xi),amp(l,k,2)*xi**(-eta1),tan(eta1*pi*0.5D0), -c & amp(l,k,3)*xi**(-eta2),(tan(pi*eta2*0.5D0)+EPS5) - rho1 = PI*h*log(xi)-amp(l,k,2)*xi**(-eta1)*tan(eta1*PI*0.5D0) - & +amp(l,k,3)*xi**(-eta2)/(tan(PI*eta2*0.5D0)+EPS5) -c print *,'rho:',rho1 - rho = rho + rho1/sig - sigt = sigt + sig -c write(LUN,*) ' l,k,sig,rho:',l,k,sig,rho - if(kt.eq.0.and.k.lt.2) goto 100 - if(kt.eq.0) then - sigt = sigt*0.5D0 - rho = rho*0.5D0 - endif -c derive elastic and inelastic cross section - sigel = sigt**2*(1.D0+rho**2)/(16.D0*PI*slope*cmbarn) - siginel = sigt-sigel - IF(ndebug.gt.2) - & write(LUN,*) - & ' SIG_RPP2014: L,KT,SQS,SIGT,SIGEL,SIGINEL,SLOPE,RHO', - & L,KT,SQS,SIGT,SIGEL,SIGINEL,SLOPE,RHO - end -C======================================================================= - - DOUBLE PRECISION FUNCTION FERMI(XARG,X0,XALPH) - -C----------------------------------------------------------------------- -C fermi function, used to smoothen samplings -C f = 1/(1+exp((x-x0)/alpha)) -C----------------------------------------------------------------------- - IMPLICIT NONE -c externals - DOUBLE PRECISION XARG,X0,XALPH,XE -c COMMONs - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - -c internals - xe = max((xarg-x0)/xalph,-10.D0) - fermi=1.D0+exp(xe) - fermi=1.D0/fermi - END -C======================================================================= - - SUBROUTINE SEL_RES(XM2in,KDin,IRDX,IKDH) - -C-------------------------------------------------------------------- -C routine that checks if excitation should go into resonant state -C or rather should fallback to on-shell beam hadron -C Input: XM2in : squared excitation mass -C KDin : projectile hadron code -C IRDX : reference to remnant on stack -C Output: adds hadron to stack -C IKDH : parton stack index of final hadron -C-------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - - DOUBLE PRECISION AW,AW2 - COMMON /S_WIDTH1/ AW(99), AW2(99) - INTEGER MRES(6:99,2) - DOUBLE PRECISION XM2,XM1,DELTAE,EMIN1,EMIN2 - INTEGER KD - SAVE - - DATA (MRES(k,1),k=6,22) /27,25,26,28,29,0,0,51,52,6*0,30,31/ - DATA (MRES(k,1),k=23,33) /23,24,25,26,27,28,29,30,31,27,27/ - DATA (MRES(k,1),k=34,49) /34,35,36,37,38,39,40,41,42,43,34,35,36, - & 37,38,49/ - DATA (MRES(k,1),k=50,83) /0,51,52,53,54,4*0,78,79,10*0,80,81,73, - & 74,75,76,77,78,79,80,81,0,83/ - DATA (MRES(k,1),k=84,99) /94,95,96,97,98,89,4*0,94,95,96,97,98,99/ - - DATA (MRES(k,2),k=6,22) /61,62,63,64,65,0,0,53,54,6*0,66,67/ - DATA (MRES(k,2),k=23,33) /61,61,62,63,61,64,65,66,67,61,61/ - DATA (MRES(k,2),k=34,49) /34,35,36,37,38,39,40,41,42,43,44,45,46, - & 47,48,49/ - DATA (MRES(k,2),k=50,83) /0,51,52,53,54,4*0,78,79,10*0,80,81,73,74 - & ,75,76,77,78,79,80,81,0,83/ - DATA (MRES(k,2),k=84,99) /94,95,96,97,98,89,4*0,94,95,96,97,98,99/ - - XM2 = XM2in - XM1 = sqrt(XM2) - KD = KDin - -C thresholds -c fallback threshold - EMIN1 = PAR(76) - -c resonance threshold - EMIN2 = PAR(77) - -c parton stack index of incoming hadron - IKDH = 0 - -c if too low, fallback on beam - IF(ndebug.gt.2) - & write(lun,*)' SEL_RES: input (XM2in,KDin,IRDX):',XM2,KD,IRDX - DELTAE = XM1-AM(ABS(KD)) - IF(ndebug.gt.1)then - write(lun,*)' SEL_RES: DELTAE,EMIN1,EMIN2',deltae,emin1,emin2 - write(lun,*)' SEL_RES: XM,XM1,XM2', - & XM1,emin1+AM(ABS(KD)),emin2+AM(ABS(KD)) - endif - IF(DELTAE.LT.EMIN1)THEN -c fallback to beam region - KDH = kd - XM1 = AM(abs(kd)) - XM2 = AM2(abs(kd)) - - ELSEIF(DELTAE.LT.EMIN2)THEN -c form resonance - II = 1 - KDH = KD - DO WHILE (II.le.2.and.KDH.eq.KD) - KDD = IABS(KD) - -c K0s and K0l projection on K0 and K0bar -cdh IF(KDD.eq.11.or.KDD.eq.12)KDD=21 -cdh & +INT((2.D0-EPS10)*S_RNDM(KD)) - IF(KDD.eq.11.or.KDD.eq.12)KDD=21 - & +INT(0.5D0+S_RNDM(KD)) - IL = MRES(KDD,II) - IF(ndebug.gt.2) then - write(lun,*) ' SEL_RES: res. select (KD,II,IL):', - & KD,II,IL - ENDif -cdh to prevent index of array AW2 out of range - IF(IL.eq.0) write(lun,*) ' SEL_RES: KD,KDD:' , KD,KDD - IF(IL.eq.0) CALL SIB_REJECT('SEL_RES ') -c sample probability for resonance to occur at this mass -c from the relativistic breit-wigner dist. -c scale widths to artificially increase or decrease resonance occurence - XWDTH = PAR(94)*AW2(IL) - PRES = BREIT_WIGNER(XM2,AM2(IL),XWDTH) - IF(ndebug.gt.2) - & write(lun,*) - & ' SEL_RES: res. proposal (AM2,AW2,Prob.):', - & AM2(IL),XWDTH,PRES - IF(S_RNDM(ii).lt.PRES) KDH = ISIGN(IL,KD) - II = II + 1 - ENDDO -c no resonance selected, fallback to beam or phasespace decay? - IF(IPAR(59).eq.1.and.KDH.eq.KD)THEN -c distinguish regions in deltaE - IF(DELTAE.LT.EMIN1)THEN -c fallback to beam - XM1 = AM(abs(kdh)) - XM2 = AM2(abs(kdh)) - ELSE - KDH = 0 - ENDIF - ELSE -c case where resonance has been selected -c or no overlap between resonance and phasespace region exists -c set mass to pole masses of selected particles - XM1 = AM(abs(kdh)) - XM2 = AM2(abs(kdh)) - ENDIF - ELSE -c neither resonance nor fallback - KDH = 0 - ENDIF - IF(KDH.ne.0)THEN -c add new beam hadron to stack - XM2in = XM2 - CALL ADD_PRTN - & (0.D0,0.D0,0.D0,0.D0,XM1,KDH,2,IRDX,IKDH) - endif - IF(ndebug.gt.2) - & write(lun,*)' SEL_RES: output (XM2in,KDin,KDH):',XM2,KD,KDH - - RETURN - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION BREIT_WIGNER(S,XM2,XWDTH2) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - SAVE - -C peak set to one - x1 = (s-xm2)**2+xm2*xwdth2 - breit_wigner = xm2*xwdth2/x1 - end -C======================================================================= - - DOUBLE PRECISION FUNCTION TBREIT_WIGNER(S,XM2,XWDTH2) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - SAVE -C breit-wigner truncated at 2*gamma from peak -C peak set to one - DATA N /10/ - - XMLOW = MAX(XM2-N*XWDTH2,0.D0) - XCUT = SIGN(1.D0,S-XMLOW) - XCUT = MAX(XCUT,0.D0) - x1 = (S-xm2)**2+xm2*xwdth2 - TBREIT_WIGNER = xcut * xm2*xwdth2/x1 - - end -C======================================================================= - - SUBROUTINE FRAG_MINIJET(IDX,IBAD) - -C----------------------------------------------------------------------- -C routine that fragments a gluon - gluon system \FR'14 -C----------------------------------------------------------------------- - IMPLICIT NONE - INTEGER IDX,IBAD - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) -C parameters that represent: NW: max. number of wounded nucleons, -C NS,NH: max. number of soft and hard interactions -c PARAMETER (NW_max = 20) -C The COMMON block /S_CHIST/ contains information about the -C the structure of the generated event: -C NWD = number of wounded nucleons -C NJET = total number of hard interactions -C NSOF = total number of soft interactions -C NNSOF (1:NW) = number of soft pomeron cuts in each interaction -C NNJET (1:NW) = number of minijets produced in each interaction -C JDIF(1:NW) = diffraction code -C 0 : non-diff, -C 1 : beam-diff -C 2 : target-diff -C 3 : double-diff - INTEGER NNSOF,NNJET,JDIF,NWD,NJET,NSOF - COMMON /S_CHIST/ NNSOF(NW_max),NNJET(NW_max), - & JDIF(NW_max),NWD,NJET,NSOF - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - DOUBLE PRECISION PGG,PST,PBM,PTG,E0,PT2JET,PTJET,TH,FI,S_RNDM, - & PAR1_def,PAR24_def,PAR3_def,PAR2_1_def,PAR2_2_def,PAR5_def, - & PAR6_def,PAR24_2_def,XM,QMASS,DBETJ - DIMENSION PST(5),PBM(5),PTG(5) - INTEGER IST,ITGST,IBMST,IPID,IFLB,IFLT,NOLD,IS,IFL1,IFBAD,IDM, - & ipar82_def - SAVE - DATA PGG /1.D0/ - -C read partons from stack -c references are string --> bm-parton --> tg-parton -c read string 4momentum from stack - CALL RD_PRTN_4VEC(IDX,PST,IPID,IBMST) - CALL RD_PRTN_4VEC(IBMST,PBM,IFLB,ITGST) - CALL RD_PRTN_4VEC(ITGST,PTG,IFLT,IST) - IF(IDX.ne.IST) then - write(lun,*) ' FRAG_MINIJET: reference loop broken!' , IDX - CALL SIB_REJECT('FRAG_MINIJET ') - endif - -C.. kinematic variables - E0 = PST(5) ! string mass - PT2JET = PBM(1)**2 + PBM(2)**2 - PTJET = sqrt(PT2JET) - TH = ASIN(MIN((1.D0-EPS8),2.D0*PTJET/E0)) -c FI = ASIN(MIN((1.D0-EPS8),PBM(2)/PTJET)) - FI = TWOPI*S_RNDM(IDX) -c TH = PST(1) -c FI = PST(2) - - IF(NDEBUG.gt.1) WRITE(LUN,*)' FRAG_MINIJET: IDX,EE,IFLB,IFLT,PT', - & IDX,E0,IFLB,IFLT,PTJET,IBAD - IF(NDEBUG.gt.1) WRITE(LUN,*)' FRAG_MINIJET: PTJET,TH,FI:', - & PTJET,TH,FI - -C... parameter setup (string fragmentation) - -c baryon production setup - PAR1_def = PAR(1) - if( NSOF+NJET.gt.0) then - PAR(1)= PAR(15) - else - PAR(1)= PAR(14) - endif - -C... charm setup - PAR24_def = PAR(24) - IF(IPAR(15).eq.2.or.IPAR(15).eq.3)THEN - PAR(24) = PAR(25)*EXP(-PAR(26)/E0) - ELSEIF(IPAR(15).eq.4)THEN - PAR(24) = PAR(27)*EXP(-PAR(26)/E0) - ELSEIF(IPAR(15).eq.5)THEN - PAR(24) = PAR(27)*EXP(-PAR(26)/E0) - PAR(29) = PAR(27)*EXP(-PAR(28)/E0) - ELSEIF(IPAR(15).eq.6.or.IPAR(15).eq.8.or.IPAR(15).eq.9.or. - & IPAR(15).eq.11)THEN - PAR(24) = PAR(27)*EXP(-PAR(28)/E0) - ELSEIF(IPAR(15).eq.7)THEN - PAR(24) = PAR(27) - ELSEIF(IPAR(15).eq.10)THEN - WRITE(LUN,*)' FRAG_minijet: charm model not implemented!' - CALL SIB_REJECT('FRAG_minijet ') - ENDIF - -C... strange setup - PAR2_1_def = PAR(2) - PAR3_def = PAR(3) - IF(IPAR(42).eq.1)THEN -c change to constant value - PAR(2) = PAR(72) - ELSEIF(IPAR(42).eq.2)THEN -c change according to string mass, saturating - PAR(2) = PAR(72)*EXP(-PAR(73)/E0) - ELSEIF(IPAR(42).eq.3)THEN -c change strange diq fraction as well - PAR(2) = PAR(72) ! P_s / P_ud - PAR(3) = PAR(73) ! P_us / P_ud - ENDIF - -C... vector setup - PAR5_def = PAR(5) - PAR6_def = PAR(6) - IF(IPAR(43).eq.1)THEN -c change vector rate and kaon vector rate - PAR(5) = PAR(74) ! P_vec - PAR(6) = PAR(74) ! P_K* from K - - ENDIF - -C... switch off pi0 suppression -c should only be applied for remnant, diff and valence -c in case of meson projectile - ipar82_def = IPAR(82) - IF(IPAR(95).eq.1)THEN - IPAR(82) = 0 - ENDIF - - NOLD = NP - IF ( (E0.LT.8.D0) .OR. (S_RNDM(0).GT.PGG)) THEN -C... one string case, q - qbar - -C sample flavor for q-qbar minijet - IF( IPAR(87).eq.3 )THEN -C flavor threshold model -c u,d -> u,d,s -> u,d,s,c -c s and transition from massive to massless at m_s and m_c thresholds -c beyond the charm mass all flavors are equally likely - CALL SIB_ICFLAV(E0**2,0,IDM,IFL1) - - ELSE -C default u,d,s model, same rates as in hadronization (string frag.) - PAR2_2_def = PAR(2) - PAR24_2_def = PAR(24) -C set 'leading' strange fraction - IF(IPAR(39).eq.2) PAR(2) = PAR(66) -c leading charm fraction - IF( IPAR(87).eq.1 )THEN - PAR(24) = PAR(150) - ELSEIF( IPAR(87).eq.2 )THEN - PAR(24) = PAR(150)*PAR(24) - ENDIF - - IS = -1 + 2*INT((2.D0-EPS8)*S_RNDM(0)) - 100 IFL1 = IS*(INT((2.D0+PAR(2))*S_RNDM(0))+1) - XM = 2.D0*QMASS(IFL1)+0.3D0 - if(E0.LE.XM) GOTO 100 - IF(IABS(IFL1).eq.3)THEN - IF(S_RNDM(IFL1).lt.PAR(24)*PAR(125))IFL1 = IS*4 - XM = 2.D0*QMASS(IFL1)+0.3D0 - if(E0.LE.XM) GOTO 100 - ENDIF - PAR(2) = PAR2_2_def - PAR(24) = PAR24_2_def - ENDIF - - CALL STRING_FRAG_4FLV - & (E0,IFL1,-IFL1,0.D0,0.D0,0.D0,0.D0,IFBAD,0) - if(IFBAD.gt.0) then - IF(ndebug.gt.1) - & WRITE(LUN,*) - & ' JET_FRAG: rejection in STRING_FRAG (IFL,E0,NCALL):', - & IFL1,E0,NCALL - PAR(24) = PAR24_def - PAR(1) = PAR1_def - PAR(2) = PAR2_1_def - PAR(5) = PAR5_def - PAR(6) = PAR6_def - PAR(3) = PAR3_def - IPAR(82) = ipar82_def - RETURN - ENDIF - ELSE -C... two string case, gluon - gluon - CALL GG_FRAG_4FLV(E0) - ENDIF - -c DBETJ = (DX1J-DX2J)/(DX1J+DX2J) - DBETJ = PST(3)/PST(4) - CALL SIROBO (NOLD+1,NP,TH,FI,0.D0,0.D0,DBETJ) - - if(Ndebug.gt.1) WRITE(LUN,*) - & ' JET_FRAG: particles produced:',NP-NOLD - PAR(24) = PAR24_def - PAR(1) = PAR1_def - PAR(2) = PAR2_1_def - PAR(5) = PAR5_def - PAR(6) = PAR6_def - PAR(3) = PAR3_def - IPAR(82) = ipar82_def - IBAD = 0 - END -C======================================================================= - - SUBROUTINE INT_H_NUC (IA, SIGT, SLOPE, RHO) - -C----------------------------------------------------------------------- -C...Compute with a montecarlo method the "multiple interaction structure" -C. of an hadron-nucleus collision. -C. -C. -C. INPUT : IA = mass of target nucleus -C. SIGT (mbarn) = total hp cross section -C. SLOPE (GeV**-2) = slope of hp elastic scattering -C. RHO = real/imaginary part of forward elastic -C. scattering amplitude -C. -C. OUTPUT : in COMMON block /CNCMS0/ -C. B = impact parameter (fm) -C. BMAX = maximum impact parameter for generation -C. NTRY = number of "trials" before one interaction -C. NA = number of wounded nucleons in A -C. Author : P.Lipari (may 1993) -C--------------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - PARAMETER (IAMAX=56) - COMMON /S_CNCM0/ B, BMAX, NTRY, NA - DIMENSION XA(IAMAX), YA(IAMAX) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - - - PI=4.d0*atan(1.d0) - - CC = SIGT/(4.D0*PI*SLOPE*CMBARN) - DEN = 2.D0*SLOPE*CMBARN*0.1D0 - BMAX = 1.D0*10.D0 ! fm - NTRY = 0 - CALL NUC_CONF (IA, XA, YA) -1000 CONTINUE - B = BMAX*dSQRT(S_RNDM(0)) - PHI = 2.D0*PI*S_RNDM(NTRY) - BX = B*DCOS(PHI) - BY = B*DSIN(PHI) - NTRY = NTRY + 1 - NA = 0 - DO JA=1,IA - S = (XA(JA)-BX)**2 + (YA(JA)-BY)**2 - F = dEXP(-S/DEN) - PEL = CC*CC*(1.D0+RHO*RHO)*F*F - PINEL = 2.D0*CC*F-PEL - R = S_RNDM(JA) - IF (R .LT. PINEL) THEN - NA = NA + 1 - ENDIF - ENDDO - IF (NA .EQ. 0 .and. NTRY .lt. 1000) GOTO 1000 - - RETURN - END -C======================================================================= - - SUBROUTINE SIB_REJECT(text) - -C----------------------------------------------------------------------- -c subroutine dumps state of random number generator -c at beginning of event to file then produces fpe/stops -C---------------------------------------------------------- - IMPLICIT NONE - - character*16 text - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER II2,JJ2 - DOUBLE PRECISION U2,C2,CD2,CM2 - COMMON /SIB_RAND/ U2(97),C2,CD2,CM2,II2,JJ2 - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - DOUBLE PRECISION XDM -c CHARACTER*13 FILENA - SAVE -c DATA FILENA /'sib_rjctn.rnd'/ - - WRITE(LUN,*) - & ' SIB_REJECT:(from,ncall,KB,iat,ECM) ', - & text,ncall,kb,iat,sqs -c produce floating point error - XDM = -1.D0 - XDM = LOG(XDM) - STOP - END -C======================================================================= - - SUBROUTINE CUT_PRO (L, SQS, PTmin, NSOFR, NJETR) - -C----------------------------------------------------------------------- -C... Generate a number of soft/hard (jet-)pairs for a 'projectile' -C (K=1:p),(K=2:pi) interacting with a nucleon at sqrt(s)=SQS(GeV) -C the interaction structure is only destinguished between nucleons -C (L=1) and mesons (L=2), for cross sections there is a -C distinction between pions and kaons as well (L=2 or 3). -C For Hyperons the same cross section and interaction structure -C as for nucleons is used (L=1). -C -C requires initialization by JET_INI /FR'14 -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -c COMMON /S_DEBUG/ Ncall, Ndebug, Lun - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - - DOUBLE PRECISION SSIG,PJETC,SSIGN,SSIGNSD,SSIGNEL,ALINT,ASQSMIN, - & ASQSMAX,DASQS - INTEGER NSQS - COMMON /S_CCSIG/ SSIG(61,3), PJETC(0:NS_max,0:NH_max,61,2), - & SSIGN(61,3,3), SSIGNSD(61,3,3), SSIGNEL(61,3,3), - & ALINT(61,3,3), ASQSMIN, ASQSMAX, DASQS, NSQS - DOUBLE PRECISION STR_mass_val, STR_mass_val_hyp, STR_mass_sea - COMMON /S_CUTOFF/ STR_mass_val, STR_mass_val_hyp, STR_mass_sea - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - -C check if tables initialized - IF(NSQS.eq.0) THEN - WRITE(LUN,*) ' CUT_PRO: tables not initialized! aborting...' - xa = -1.D0 - xa = log(xa) - stop - ENDIF - IF(NDEBUG.GT.1) - & WRITE(LUN,*) ' CUT_PRO: input: L, SQS, PTmin',L, SQS, PTmin - -c choose nucleon or meson table - K = L - if(K.eq.3) K = 2 - - AL = dLOG10 (SQS) - IF (AL .LT. ASQSMIN) THEN - WRITE(LUN,*) ' CUT_PRO: low sqrt(s) ', SQS - NSOFR = 1 - NJETR = 0 - RETURN - ENDIF - IF (AL .GT. ASQSMAX) THEN - WRITE(LUN,*) ' CUT_PRO: sqrt(s) out of bounds ', SQS - NJETR = 0 - RETURN - ENDIF - - J1 = INT((AL - ASQSMIN)/DASQS + 1) - J1 = MIN(J1,60) - J1 = MAX(J1,1) - J2 = J1+1 - T = (AL-ASQSMIN)/DASQS - DBLE(J1-1) - - R = (1.D0-EPS8)*S_RNDM(0) - DO I=0,NS_max - DO J=0,NH_max - IF (R.LT.(1.D0-T)*PJETC(I,J,J1,K)+T*PJETC(I,J,J2,K)) GOTO 100 - ENDDO - ENDDO -100 CONTINUE - -C...phase space limitation - - 120 CONTINUE - XM = DBLE(2*I)*STR_mass_sea + DBLE(2*J)*PTmin - PACC = EXP(PAR(9)*(2.D0-XM)/SQS) - IF(S_RNDM(0).GT.PACC) THEN - IF(I+J.GT.1) THEN - IF(I.GT.0) THEN - I = I-1 - GOTO 120 - ELSE IF(J.GT.0) THEN - J = J-1 - GOTO 120 - ENDIF - ENDIF - ENDIF - - NSOFR = I - NJETR = J - - if(Ndebug.gt.1) - & write(lun,*)' CUT_PRO: (L,SQS,PTmin,Ns,Nh) ',K,SQS,PTmin,I,J - - END - -C======================================================================= - - SUBROUTINE JET_INI - -C----------------------------------------------------------------------- -C...Compute table of cross sections, and table of probability -C. for the production of multiple soft and hard interactions -C. -C. The output of this routine is the COMMON block /S_CCSIG/ -C. that contains the cross sections h-p, h-Air, and the -C. cumulative probability of NS soft and NH hard interactions -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - - DOUBLE PRECISION SSIG,PJETC,SSIGN,SSIGNSD,SSIGNEL,ALINT,ASQSMIN, - & ASQSMAX,DASQS - INTEGER NSQS - COMMON /S_CCSIG/ SSIG(61,3), PJETC(0:NS_max,0:NH_max,61,2), - & SSIGN(61,3,3), SSIGNSD(61,3,3), SSIGNEL(61,3,3), - & ALINT(61,3,3), ASQSMIN, ASQSMAX, DASQS, NSQS - DOUBLE PRECISION SSIG_TOT,SSIG_SD1,SSIG_SD2,SSIG_DD,SSIG_B, - & SSIG_RHO - COMMON /S_CCSIG2/ SSIG_TOT(61,3),SSIG_SD1(61,3),SSIG_SD2(61,3), - & SSIG_DD(61,3),SSIG_B(61,3),SSIG_RHO(61,3) - DOUBLE PRECISION SSIG_SD1LM,SSIG_SD1HM,SSIG_SD2LM,SSIG_SD2HM, - & SSIG_DDLM,SSIG_DDHM - COMMON /S_CCSIG3/ SSIG_SD1LM(61,3),SSIG_SD1HM(61,3), - & SSIG_SD2LM(61,3),SSIG_SD2HM(61,3), - & SSIG_DDLM(61,3),SSIG_DDHM(61,3) - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - - DIMENSION Pjet(0:NS_max,0:NH_max) - DIMENSION SIG_df(3),SIG_df2(3,2),SIGDIF(3),SIGDIF_pi(3), - & PS_tab(61),PH_tab(61),PT_tab(61) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - -C...spacing in energy for table of cross sections. - - NSQS = 61 - ASQSMIN = 1.D0 - ASQSMAX = 7.D0 - DASQS = (ASQSMAX-ASQSMIN)/DBLE(NSQS-1) - -C...initialization of proton and pion tables - - IF(LUN.ne.6) WRITE(6,*)' Calculating cross section tables...' - DO KK=1,2 - - IF(NDEBUG.gt.0) - & WRITE(LUN,'(2(/,1X,A,A))') - & 'Table: J, sqs, PT_cut, SIG_tot, SIG_inel, B_el, ', - & 'rho, <n_s>, <n_h>, SIG_SD, SD1_lm, SD1_hm', - & '---------------------------------------------------', - & '----------------------------------------------' - - JINT = KK - DO J=1, NSQS - ASQS = ASQSMIN + DASQS*DBLE(J-1) - SQS = 10.D0**ASQS - - CALL SIB_SIG (JINT, SQS, PTmin, - & SIG_tot, SIG_inel, SIG_df, SIG_df2, B_el, Pjet) - -C...low-energy interpolation with data-parametrizations - CALL SIB_HADCSL(JINT,SQS, - & SIGTOT,SIGEL,SIGINEL,SIGDIF,SLOPE,RHO) - if(SQS.le.100.D0) then - SIG_TOT = SIGTOT - SIG_inel = SIGINEL - B_EL = SLOPE - else if(SQS.le.1000.D0) then - Xi = dlog(SQS/100.D0)/2.30258509299405D0 - SIG_TOT = Xi*SIG_TOT+(1.D0-Xi)*SIGTOT - SIG_inel = Xi*SIG_inel+(1.D0-Xi)*SIGINEL - B_EL = Xi*B_EL+(1.D0-Xi)*SLOPE - endif - - SSIG_TOT(J,KK) = SIG_TOT - SSIG(J,KK) = SIG_inel - SSIG_SD1(J,KK) = SIGDIF(1) - SSIG_SD2(J,KK) = SIGDIF(2) - SSIG_DD(J,KK) = SIG_df(3) - SSIG_B(J,KK) = B_EL - SSIG_RHO(J,KK) = RHO - - SSIG_SD1LM(J,KK) = SIG_df2(1,1) - SSIG_SD1HM(J,KK) = SIG_df2(1,2) - SSIG_SD2LM(J,KK) = SIG_df2(2,1) - SSIG_SD2HM(J,KK) = SIG_df2(2,2) - SSIG_DDLM(J,KK) = SIG_df2(3,1) - SSIG_DDHM(J,KK) = SIG_df2(3,2) - - PSUM = 0.D0 - PH = 0.D0 - PS = 0.D0 - DO NS=0,NS_max - DO NJ=0,NH_max - - PS = PS+DBLE(NS)*Pjet(NS,NJ) - PH = PH+DBLE(NJ)*Pjet(NS,NJ) - - PSUM = PSUM+Pjet(NS,NJ) - PJETC(NS,NJ,J,KK) = PSUM - - ENDDO - ENDDO - PS_tab(J) = PS - PH_tab(J) = PH - PT_tab(J) = PTmin - - IF(NDEBUG.gt.0) - & WRITE(LUN,'(3X,I2,1P,E12.3,0P,4F8.2,6F8.3)') - & JINT,SQS,PTmin,SIG_tot,SIG_inel,B_el,RHO,PS,PH - & ,SIGDIF(1)+SIGDIF(2),SIG_df2(1,1),SIG_df2(1,2) - - ENDDO - ENDDO - -C...initialization of kaon tables - - JINT = 3 - - IF(NDEBUG.gt.0) - & WRITE(LUN,'(2(/,1X,A,A))') - & 'Table: J, sqs, PT_cut, SIG_tot, SIG_inel, B_el, ', - & 'rho, <n_s>, <n_h>', - & '---------------------------------------------------', - & '---------------------' - DO J=1, NSQS - ASQS = ASQSMIN + DASQS*DBLE(J-1) - SQS = 10.D0**ASQS -C...use pion cross section rescaled for high-energy extrapolation - SIG_tot = SSIG_TOT(J,2) - SIG_inel = SSIG(J,2) - SIG_df(1) = SSIG_SD1(J,2) - SIG_df(2) = SSIG_SD2(J,2) - SIG_df(3) = SSIG_DD(J,2) - B_el = SSIG_B(J,2) - PTmin = PT_tab(J) - PS = PS_tab(J) - PH = PH_tab(J) - -C...low-energy interpolation with data-parametrizations - CALL SIB_HADCSL(2,SQS, - & SIGTOT_pi,SIGEL_pi,SIGINEL,SIGDIF_pi,SLOPE,RHO) - CALL SIB_HADCSL(3,SQS, - & SIGTOT,SIGEL,SIGINEL,SIGDIF,SLOPE,RHO) - SIG_el = (SIGEL/SIGEL_pi)*(SIG_TOT-SIG_inel) - SIG_TOT = (SIGTOT/SIGTOT_pi)*SIG_TOT - SIG_inel = SIG_TOT-SIG_el - SIG_df(3) = (SIGDIF(3)/SIGDIF_pi(3))*SIG_df(3) - if(SQS.le.100.D0) then - SIG_TOT = SIGTOT - SIG_inel = SIGINEL - B_EL = SLOPE - else if(SQS.le.1000.D0) then - Xi = dlog(SQS/100.D0)/2.30258509299405D0 - SIG_TOT = Xi*SIG_TOT+(1.D0-Xi)*SIGTOT - SIG_inel = Xi*SIG_inel+(1.D0-Xi)*SIGINEL - B_EL = Xi*B_EL+(1.D0-Xi)*SLOPE - endif - - SSIG_TOT(J,3) = SIG_TOT - SSIG(J,3) = SIG_inel - SSIG_SD1(J,3) = SIGDIF(1) - SSIG_SD2(J,3) = SIGDIF(2) - SSIG_DD(J,3) = SIG_df(3) - SSIG_B(J,3) = B_EL - SSIG_RHO(J,3) = RHO - - IF(NDEBUG.gt.0) - & WRITE(LUN,'(3X,I2,1P,E12.3,0P,4F8.2,3F8.3)') - & JINT,SQS,PTmin,SIG_tot,SIG_inel,B_el,RHO,PS,PH - - ENDDO - - END - -C======================================================================= - - SUBROUTINE INI_WRITE (LUN) - -C----------------------------------------------------------------------- -C This subroutine prints on unit LUN -C a table of the cross sections used in the program -C and of the average number of hard interactions, and the average -C number of wounded nucleons in a hadron-air interaction -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - - DOUBLE PRECISION SSIG,PJETC,SSIGN,SSIGNSD,SSIGNEL,ALINT,ASQSMIN, - & ASQSMAX,DASQS - INTEGER NSQS - COMMON /S_CCSIG/ SSIG(61,3), PJETC(0:NS_max,0:NH_max,61,2), - & SSIGN(61,3,3), SSIGNSD(61,3,3), SSIGNEL(61,3,3), - & ALINT(61,3,3), ASQSMIN, ASQSMAX, DASQS, NSQS - DIMENSION PJ(2),PS(2),PW(2) - - SAVE - DATA ATARGET /14.514D0/ - - if ( ndebug .gt. 3 ) CALL PARAM_PRINT(LUN) - if ( ndebug .gt. 0 ) THEN - WRITE (LUN, 10) - WRITE (LUN, 15) - WRITE (LUN, 16) - WRITE (LUN, 18) -10 FORMAT(//,' Table of cross sections, and average number', - & ' of minijets and wounded nucleons ') -15 FORMAT(' [sqrt(s) in GeV, cross sections in mbarn]. ') -16 FORMAT(' sqrt(s) sig(pp) sig(pA) <n_s> <n_j> <n_w>', - & ' sig(pip) sig(piA) <n_s> <n_j> <n_w>') -18 FORMAT(1X,77('-') ) - DO J=1,61,1 - SQS = 10.D0**(ASQSMIN + DASQS*DBLE(J-1)) - - DO K=1,2 - - PW(K) = ATARGET*SSIG(J,K)/SSIGN(J,K,1) - - PJ(K) = 0.D0 - PS(K) = 0.D0 - DO NS=0,NS_max - DO NJ=0,NH_max - IF(NJ.GT.0) THEN - PROB = PJETC(NS,NJ,J,K) - PJETC(NS,NJ-1,J,K) - ELSE IF(NS.GT.0) THEN - PROB = PJETC(NS,NJ,J,K) - PJETC(NS-1,NH_max,J,K) - ELSE - PROB = 0.D0 - ENDIF - PJ(K) = PJ(K)+DBLE(NJ)*PROB - PS(K) = PS(K)+DBLE(NS)*PROB - ENDDO - ENDDO - - ENDDO - - WRITE(LUN,20) SQS,SSIG(J,1),SSIGN(J,1,1),PS(1),PJ(1),PW(1) - & ,SSIG(J,2),SSIGN(J,2,1),PS(2),PJ(2),PW(2) - - ENDDO - - WRITE(LUN, 18) - endif -20 FORMAT(1p,E10.2,2(2F7.1,1X,3F6.2,1X)) - - return - END - -C======================================================================= - - SUBROUTINE SIG_AIR_INI - -C----------------------------------------------------------------------- -C... Initialize the cross section and interaction lengths on air, -C. nitrogen and oxygen -C. (this version initializes p-air, pi-air, and K-air cross sections) -C. -C. also calculates the low mass beam diffraction cross section in hAir \FR -C. using the same lambda for all hadrons -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - - DOUBLE PRECISION SSIG,PJETC,SSIGN,SSIGNSD,SSIGNEL,ALINT,ASQSMIN, - & ASQSMAX,DASQS - INTEGER NSQS - COMMON /S_CCSIG/ SSIG(61,3), PJETC(0:NS_max,0:NH_max,61,2), - & SSIGN(61,3,3), SSIGNSD(61,3,3), SSIGNEL(61,3,3), - & ALINT(61,3,3), ASQSMIN, ASQSMAX, DASQS, NSQS - COMMON /GLAUB_SCR/ XI_MAX , ALAM(61) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - DIMENSION SIGDIF(3) - DIMENSION ITARGC(3) - CHARACTER*3 TARGN - DIMENSION TARGN(3) - SAVE - DATA AVOG /6.0221367D-04/ - DATA ATARGET /14.514D0/ - DATA ITARGC /0,14,16/ - DATA TARGN /'air','nit','oxy'/ - - IF ( IPAR(12).GT.0 ) THEN - if (ndebug.gt.0) then - WRITE(LUN,*) ' SIG_AIR_INI:' - WRITE(LUN,*)' using Goulianos param. for res.coupling..' - endif - XI_MAX = 0.02D0 - if (ndebug.gt.0)WRITE(LUN,*)' low mass Xi_max: ' , XI_MAX - ENDIF - -C...target loop (air, N, O) - DO IK=1,3 - IAT = ITARGC(IK) - WRITE(6,*) 'SIG_AIR_INI: initializing target: (i,A)', - & ik, IAT, TARGN(IK) , '..' -C...particle loop (p, pi, K) - DO K=1,3 - - if (NDEBUG .gt. 0 ) then - WRITE(6,'(/,1X,A,A)') - & 'Table: J, IK, sqs, SIGtot, SIGprod, SIG_SD,', - &' Lambda ' - WRITE(6,*) - & '-------------------------------------------------', - & '-------------' - endif - DO J=1,NSQS - - ASQS = ASQSMIN + DASQS*DBLE(J-1) - SQS = 10.D0**ASQS - - IF (K.EQ.1) THEN -c Goulianos param. from GAP-2012-056, Mx**2s = 0.02 -c against PDG elastic cross section - CALL SIB_HADCS1 - & (K,SQS,SIGT1,SIGEL1,SIGINEL1,SLOPE1,RHO1) - SIGEFF = 0.68D0*(1.D0+36.D0/SQS**2)* - & dlog(0.6D0+XI_MAX/1.5D0*SQS**2) - ALAM(J) = dSQRT(SIGEFF/SIGEL1) - ENDIF - CALL SIB_SIGMA_HP(K,SQS, - & SIGT,SIGEL,SIGINEL,SIGDIF,SLOPE,RHO) - IF(IK.eq.1)THEN -c fixed O-N mixture - CALL SIG_H_AIR - & (SIGT, SLOPE, RHO, ALAM(J), - & SSIGT, SSIGEL, SSIGQE, SSIGSD, SSIGQSD) - ELSE - CALL SIG_H_NUC - & (IAT, SIGT, SLOPE, RHO, ALAM(J), - & SSIGT, SSIGEL, SSIGQE, SSIGSD, SSIGQSD) - ENDIF - if (ndebug .gt. 0 ) WRITE(6,'(1X,I2,1P,5E12.3)') - & K,SQS,SSIGT,SSIGT-SSIGQE,SSIGQSD,ALAM(J) -C particle production cross section - SSIGN(J,K,IK) = SSIGT-SSIGQE -c diffractive cross section - SSIGNSD(J,K,IK) = SSIGQSD -c elastic cross section - SSIGNEL(J,K,IK) = SSIGEL -c interaction length - IF(IK.eq.1)then - ALINT(J,K,IK) = 1.D0/(AVOG*SSIGn(j,K,IK)/ATARGET) - else - ALINT(J,K,IK) = 1.D0/(AVOG*SSIGn(j,K,IK)/IAT) - endif - ENDDO - ENDDO - - if (ndebug .gt. 0 ) then - WRITE(6,'(/,1X,A)') - & ' SIG_AIR_INI: NUCLIB interaction lengths [g/cm**2]' - WRITE(6,*) 'target:', TARGN(IK) - WRITE(6,'(1X,A)') - & ' sqs, p-targ, pi-targ, K-targ' - DO J=1,NSQS - ASQS = ASQSMIN + DASQS*DBLE(J-1) - SQS = 10.D0**ASQS - WRITE(6,'(1X,1P,4E12.3)') - & SQS,ALINT(J,1,IK),ALINT(J,2,IK),ALINT(J,3,IK) - ENDDO - endif - ENDDO - END -C======================================================================= - - SUBROUTINE SAMPLE_TARGET(NW,XCHG,KRMNT,XJET,Irec,IREJ) - -C-----------------------------------------------------------------------/ -C...Subroutine to sample valence and sea quark kinematic variables -C on the target side -C. fills IFLT,X2 and PXT,PYT -C. 1,2 are valence quarks, 3,4 are additional sea quarks -C. transverse momentum is shared between the val. and sea pairs -C. X and flv are exchanged occasionally, not pt so far -C------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER NW_max - PARAMETER (NW_max = 20) -c external types - DOUBLE PRECISION XJET,XCHG - DIMENSION XJET(NW_max) - INTEGER KRMNT,NW,IREC,IREJ - DIMENSION KRMNT(NW_max) - - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - DOUBLE PRECISION STR_mass_val, STR_mass_val_hyp, STR_mass_sea - COMMON /S_CUTOFF/ STR_mass_val, STR_mass_val_hyp, STR_mass_sea -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - - INTEGER IBMRDX,ITGRDX,IHMJDX,ISMJDX,ICSTDX,IINTDX - COMMON /S_INDX/ IBMRDX(3),ITGRDX(NW_max,3), - & IHMJDX(NW_max*NH_max),IINTDX(NW_max), - & ISMJDX(NW_max*NS_max),ICSTDX(2*NW_max,3) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - INTEGER IRMNT,KRB,KRT - DOUBLE PRECISION XRMASS,XRMEX - COMMON /S_RMNT/ XRMASS(2),XRMEX(2),IRMNT(NW_max),KRB,KRT(NW_max) - -c internal types - DOUBLE PRECISION XX,X2,PX,PXT,PY,PYT,PZ,PZ1,PZ2 - DIMENSION XX(2*NW_max+2),PX(2*NW_max+2),PY(2*NW_max+2) - DIMENSION X2(4*NW_max),PXT(4*NW_max),PYT(4*NW_max) - INTEGER IFL,IFLT,IREJ1,J,J1,J2,J3,J4,JJ,JJJ,JI,I,KID,Iref1, - & Iref,KID1 - DIMENSION IFL(2*NW_max+2),IFLT(4*NW_max) - SAVE - - IREJ1 = 1 - - IF(ndebug.gt.2) - + WRITE(LUN,*) - + ' SAMPLE_TARGET: NW,XCHG,LRMNT,XJET,IREC,IREJ', - + NW,XCHG,(KRMNT(j),j=1,NW),(XJET(j),j=1,NW),IREC,IREJ - - DO J=1,NW ! zero arrays - j1 = 1+4*(j-1) - j2 = j1 + 1 - j3 = j2 + 1 - j4 = j3 + 1 - X2(j1) = 0.D0 - X2(j2) = 0.D0 - X2(j3) = 0.D0 - X2(j4) = 0.D0 - PXT(j1) = 0.D0 - PXT(j2) = 0.D0 - PXT(j3) = 0.D0 - PXT(j4) = 0.D0 - PyT(j1) = 0.D0 - PyT(j2) = 0.D0 - PyT(j3) = 0.D0 - PyT(j4) = 0.D0 - ENDDO - - DO j=1,NW -c read target id from event info - KID = KT(J) -c reset rejection - IREJ = IREJ1 -c always fills remnant partons into 1,2 and c.strings into 3,4 -c so far only one interaction possible (beam is always a single hadron!) - CALL SAMPLE_PROJECTILE - + (KID,1,KRMNT(j),XCHG,XJET(j),XX,PX,PY,IFL,KID1,IREJ) - IF(IREJ.ne.0) RETURN - -c write to target variables - do jj=3-2*KRMNT(j),4 - ji = jj+4*(j-1) - IFLT(ji) = IFL(jj) - X2(ji) = XX(jj) - PXT(ji) = PX(jj) - PYT(ji) = PY(jj) - enddo - - IF(KRMNT(j).ne.0)THEN -c by convention hadron is split such that diq is 2nd flv -c for string frag routine argument flv1 is along +z, flv2 -z -c by convention again flv2 in the remnant is passed to +z and flv1 to -z -c therefor on the target side the flavors need to be switched such that -c the diq is along -z - j1 = 1+4*(j-1) - j2 = j1 + 1 - CALL ISWTCH_LMNTS(IFLT(j1),IFLT(j2)) - ENDIF - -c central strings -c flavors need to be switched as well (strictly speaking color) -c in dual-parton model: q : color , diq : anticolor -c need to combine q with diq for color neutral system.. - j3 = 3+4*(j-1) - j4 = j3 + 1 - CALL ISWTCH_LMNTS(IFLT(j3),IFLT(j4)) - CALL SWTCH_LMNTS(X2(j3),X2(j4)) - -c reset remnant id -c might have changed in flavor exchange (actually color)... - KRT(J) = KID1 - ENDDO - -C.. write target partons to stack - DO I=1,NW - IF(KRMNT(I).ne.0)THEN -c add proto-remnant - j1 = 1+4*(i-1) - j2 = j1 + 1 - CALL ADD_PRTN(PXT(J1)+PXT(J2),PYT(J1)+PYT(J2), - & -0.5D0*SQS*(X2(J1)+X2(j2)),0.5D0*SQS*(X2(J1)+X2(j2)), - & 0.D0,-2,0,0,Iref1) - ITGRDX(I,1) = Iref1 - CALL ADD_INT_REF(Iref1,IINTDX(I)) -c add quarks to stack - do j = 1,2 - jj = 4*(i-1)+j - jjj = 4*(i-1)+j + 2 - pz1 = (0.5D0*SQS*X2(JJ))**2 -c PZ1 = (0.5D0*SQS*X2(JJ))**2-PXT(JJ)**2-PYT(JJ)**2 - CALL ADD_PRTN(PXT(JJ),PYT(JJ),-sqrt(pz1), - & 0.5D0*SQS*X2(JJ),0.D0,IFLT(JJ),1,Iref1,Iref) - ITGRDX(I,j+1) = Iref - pz2 = (0.5D0*SQS*X2(JJj))**2 -c pz2 = (0.5D0*SQS*X2(JJj))**2-PXT(JJj)**2-PYT(JJj)**2 - CALL ADD_PRTN(PXT(JJj),PYT(JJj),-sqrt(pz2), - & 0.5D0*SQS*X2(JJj),0.D0,IFLT(JJj),1,0,Iref) - ICSTDX(2*(I-1)+j,3) = Iref - enddo - else - do j = 3,4 - jj = 4*(i-1)+j - pz = (0.5D0*SQS*X2(JJ))**2 -c pz = (0.5D0*SQS*X2(JJ))**2-PXT(JJ)**2-PYT(JJ)**2 - CALL ADD_PRTN(PXT(JJ),PYT(JJ),-sqrt(pz), - & 0.5D0*SQS*X2(JJ),0.D0,IFLT(JJ),1,0,Iref) - ICSTDX(2*(I-1)+(J-2),3) = Iref - enddo - ENDIF - ENDDO - IF(NDEBUG.GT.3) CALL PRNT_PRTN_STCK - - IREJ = 0 - END -C======================================================================= - - SUBROUTINE SIGMA_NUC_AIR(IA,ECM,KINT) - -C----------------------------------------------------------------------- -C. wrapping for SIGMA_NUC in NUCLIB -C...Compute with a montecarlo method the "production" -C. and "quasi-elastic" cross section for -C. a nucleus-nucleus interaction -C. nucleon - nucleon cross section is taken from -C. the table calculated by SIBYLL_INI -C. -C. INPUT : IA = mass of target nucleus -C. ECM = c.m. energy -C. KINT = number of interactions to generate -C. OUTPUT : SIGMA (mbarn) = "production" cross section -C. DSIGMA " = error -C. SIGQE " = "quasi-elastic" cross section -C. DSIGQE " = error -C. in COMMON /NUCNUCSIG/ -C. additional output is in the common block /CPROBAB/ -C. Prob(n_A), Prob(n_B), Prob(n_int) -C.......................................................................... - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /NUCNUCSIG/ SIGPROD,DSIGPROD,SIGQE,DSIGQE,IBE,ITG - DIMENSION SIGDIF(3) - SAVE - DATA NDB /0/ - - DSIGPROD = 0.D0 - DSIGQE = 0.D0 - - CALL SIB_SIGMA_HP(1,ECM,SIGT,SIGEL,SIGINEL,SIGDIF,SLOPE,RHO) - CALL SIGMA_AIR(IA,SIGINEL,SIGEL,KINT,SIGPROD,DSIGPROD, - + SIGQE,DSIGQE) - IBE = IA - ITG = 0 - IF(DSIGPROD/SIGPROD.gt.0.1D0)THEN - IF( NDB.EQ.0 ) - + PRINT*,'SIG_NUC_AIR: warning! : large error in cross section' - NDB = 1 - ENDIF - RETURN - END - -C======================================================================= - - SUBROUTINE SIG_NUC_AIR(IA,SIGPP,SIGPPEL,KINT) - -C----------------------------------------------------------------------- -C. wrapping for SIGMA_NUC in NUCLIB -C...Compute with a montecarlo method the "production" -C. and "quasi-elastic" cross section for -C. a nucleus-nucleus interaction -C. -C. INPUT : IA = mass of target nucleus -C. IB = mass of projectile nucleus -C. SIGPP (mbarn) = inelastic pp cross section -C. SIGPPEL = elastic pp cross section -C. KINT = number of interactions to generate -C. OUTPUT : SIGMA (mbarn) = "production" cross section -C. DSIGMA " = error -C. SIGQE " = "quasi-elastic" cross section -C. DSIGQE " = error -C. in COMMON /NUCNUCSIG/ -C. additional output is in the common block /CPROBAB/ -C. Prob(n_A), Prob(n_B), Prob(n_int) -C.......................................................................... - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /NUCNUCSIG/ SIGPROD,DSIGPROD,SIGQE,DSIGQE,IBE,ITG - SAVE - - DSIGPROD = 0.D0 - DSIGQE = 0.D0 - CALL SIGMA_AIR(IA,SIGPP,SIGPPEL,KINT,SIGPROD,DSIGPROD, - + SIGQE,DSIGQE) - IBE = IA - ITG = 0 - IF(DSIGPROD/SIGPROD.gt.0.1D0)THEN - IF( NDB.EQ.0 ) - + PRINT*,'SIG_NUC_AIR: warning! : large error in cross section' - NDB = 1 - ENDIF - RETURN - END - -C======================================================================= - - SUBROUTINE SIG_NUC_NUC(IA,IB,SIGPP,SIGPPEL,KINT) - -C----------------------------------------------------------------------- -C. wrapping for SIGMA_NUC in NUCLIB -C...Compute with a montecarlo method the "production" -C. and "quasi-elastic" cross section for -C. a nucleus-nucleus interaction -C. -C. INPUT : IA = mass of target nucleus -C. IB = mass of projectile nucleus -C. SIGPP (mbarn) = inelastic pp cross section -C. SIGPPEL = elastic pp cross section -C. KINT = number of interactions to generate -C. OUTPUT : SIGMA (mbarn) = "production" cross section -C. DSIGMA " = error -C. SIGQE " = "quasi-elastic" cross section -C. DSIGQE " = error -C. in COMMON /NUCNUCSIG/ -C. additional output is in the common block /CPROBAB/ -C. Prob(n_A), Prob(n_B), Prob(n_int) -C.......................................................................... - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /NUCNUCSIG/ SIGPROD,DSIGPROD,SIGQE,DSIGQE,IBE,ITG - SAVE - - DSIGPROD = 0.D0 - DSIGQE = 0.D0 - CALL SIGMA_MC(IA,IB,SIGPP,SIGPPEL,KINT,SIGPROD,DSIGPROD, - + SIGQE,DSIGQE) - IBE = IA - ITG = IB - IF(DSIGPROD/SIGPROD.gt.0.1D0)THEN - IF( NDB.EQ.0 ) - + PRINT*,'SIG_NUC_NUC: warning! : large error in cross section' - NDB = 1 - ENDIF - RETURN - END -C======================================================================= - - SUBROUTINE SIG_HAD_NUC(L,IA,ECM,ALAM,ICSMOD,IPARM) - -C----------------------------------------------------------------------- -C********************************************************************** -C...Subroutine to compute hadron-nucleus cross sections -C. according to: -C. R.J. Glauber and G.Matthiae Nucl.Phys. B21, 135, (1970) -C. -C. -C. INPUT : L projectile particle (1:p , 2:pi, 3:K ) -C. IA mass-number of target nucleus -C. SSIG (mbarn) total pp cross section -C. SLOPE (GeV**-2) elastic scattering slope for pp -C. ALPHA real/imaginary part of the forward pp elastic -C. scattering amplitude -C. ALAM: inel. screening coupling -C. -C. OUTPUT : ( in COMMON block /NUCSIG/ ) -C. SIGT = Total cross section -C. SIGEL = Elastic cross section -C. SIGQEL = Elastic + Quasi elastic cross section -C. SIGSD = beam single diff. cross section -C...................................................................... - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /NUCSIG/ SIGT,SIGEL,SIGINEL,SIGQE,SIGSD, - + SIGQSD,SIGPPT,SIGPPEL,SIGPPSD,ITG - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) -c double precision dplab -c double precision DSSIG,DSLOPE,DALPHA,DALAM -c DOUBLE PRECISION SG1,SGEL1,SGQE1,SGSD1,SGQSD1 - DIMENSION SSIGDIF(3),XM(4) - SAVE -c DATA XM / 0.93956563, 0.13956995, 0.493677, 0.93956563 / - DATA GEV2MB /0.3893D0/ - DATA INIT/0/ - - IF(INIT.EQ.0) THEN -c use the masses from the mass table -cdh XM(1) = AM(14) ! neutron - XM(1) = AM(13) ! proton - XM(2) = AM(7) ! pi+ - XM(3) = AM(9) ! K+ - XM(4) = AM(14) ! neutron - INIT = 1 - ENDIF - - xma = XM(L) - xmb = (XM(1)+XM(4))/2.D0 - - Plab = dsqrt(((ecm**2-xma**2-xmb**2)/(2.D0*xmb))**2-xma**2) - -C hadron proton cross section to be used for calculation - - IF( ICSMOD.EQ.1 ) THEN -c sibyll 2.1 cross section - - CALL SIB_SIGMA_HP(L,ECM,SSIG,SSIGEL,SSIGINEL,SSIGDIF,SLOPE,RHO) - - ELSEIF( ICSMOD.EQ.0 ) THEN -c cross section parametrizations - - if(Ecm.gt.12.D0) then - - CALL SIB_HADCSL(L,ECM,SSIG,SSIGEL,SSIGINEL,SSIGDIF,SLOPE,RHO) - - else -c low energy parametrization - SSIG = (sigtot_pp(Plab)+sigtot_pn(plab))/2.D0 - SSIGEL = (sigela_pp(Plab)+sigela_pn(plab))/2.D0 -C parametrization from U. Dersch et al. Nucl Phys. B579 (2000) 277 - RHO = 6.8D0/plab**0.742D0-6.6D0/plab**0.599D0+0.124D0 - SLOPE = (1.D0+RHO**2)*SIGTOT**2/(16.D0*PI*SIGEL)/GEV2MB - SSIGDIF(1) = 0.D0 - SSIGDIF(2) = 0.D0 - SSIGDIF(3) = 0.D0 - endif - ENDIF - SSIGSD = SSIGDIF(1) + SSIGDIF(2) - -c energy dependence of lambda parameter - if( IPARM.eq.1 ) then - -c empirical parametrization - SIGEFF = 0.25D0*Ecm**2/(Ecm**2+10.D0**2)*dLOG(1000.D0*Ecm**2) - & -1.5D0/2.D0 - SIGEFF = MAX(0.D0,SIGEFF) - - ALAM = dsqrt(SIGEFF/SSIGEL) - - SSIGSD = 2.D0 * SIGEFF - - elseif( IPARM.EQ.2 ) then - -c lambda derived from proton interactions - CALL SIB_HADCS1(1,ECM,SIGT1,SSIGEL1,SIGINEL1,SLOPE1,RHO1) -C parametrization by Goulianos for diff. interaction - SIGEFF = 0.68D0*(1.D0+36.D0/Ecm**2) - & *LOG(0.6D0+0.02D0/1.5D0*Ecm**2) - SIGEFF = MAX(0.D0,SIGEFF) - ALAM = sqrt(SIGEFF/SSIGEL1) - - SSIGSD = 2.D0 * SIGEFF - - elseif( IPARM.eq.3)then - -C data from Paolo Lipari's note - SIGTOT = 129.D0 - SIGEL = 0.3D0*SIGTOT - SIGEFF = ECM*0.01D0*SIGTOT - RHO = 0.D0 - SLOPE = (1.D0+RHO**2)*SIGTOT**2/(16.D0*PI*SIGEL)/GEV2MB - ALAM = dsqrt(SIGEFF/SIGEL) - - SSIG = SIGTOT - SSIGEL = SIGEL - SSIGSD = 2.D0 * SIGEFF - endif - - ALPHA = RHO - -C hadron - nucleon cross section - - IF( IA.EQ.0 ) THEN - CALL SIG_H_AIR - + (SSIG,SLOPE,ALPHA,ALAM,SG1,SGEL1,SGQE1,SGSD1,SGQSD1) - else - CALL GLAUBER2 - + (IA,SSIG,SLOPE,ALPHA,ALAM,SG1,SGEL1,SGQE1,SGSD1,SGQSD1) - endif - - ITG = IA - - SIGPPT = SSIG - SIGPPEL = SSIGEL - SIGPPSD = SSIGSD - SIGT = SG1 - SIGEL = SGEL1 - SIGQE = SGQE1 - SIGSD = SGSD1 - SIGQSD = SGQSD1 - SIGINEL = SIGT - SIGEL - - RETURN - END -C======================================================================= - - SUBROUTINE SIG_H_AIR - + (SSIG,SLOPE,ALPHA,ALAM,SIGT,SIGEL,SIGQE,SIGSD,SIGQSD) - -C----------------------------------------------------------------------- -C********************************************************************** -C...Subroutine to compute hadron-air cross sections -C. according to: -C. R.J. Glauber and G.Matthiae Nucl.Phys. B21, 135, (1970) -C. -C. Air is a linear combination of Nitrogen and oxygen -C. -C. INPUT : SSIG (mbarn) total pp cross section -C. SLOPE (GeV**-2) elastic scattering slope for pp -C. ALPHA real/imaginary part of the forward pp elastic -C. scattering amplitude -C. ALAM coupling to inel. intermediat states -C. OUTPUT : SIGT = Total cross section -C. SIGEL = Elastic cross section -C. SIGQEL = Elastic + Quasi elastic cross section -C. SIGSD = single diff. cross section (beam) -C. SIGQSD = Elastic + Quasi elastic SD cross section (beam) -C. -C. ALSO including interface from single precision in SIBYLL to -C. double precision in GLAUBER2 -C...................................................................... - IMPLICIT DOUBLE PRECISION(A-H,O-Z) - IMPLICIT INTEGER(I-N) - SAVE - DATA FOX /0.21522D0/ !atomic percentage of 'non-nitrogen' in air - - CALL GLAUBER2 - + (14,SSIG,SLOPE,ALPHA,ALAM,SIG1,SIGEL1,SIGQE1,SIGSD1,SIGQSD1) - CALL GLAUBER2 - + (16,SSIG,SLOPE,ALPHA,ALAM,SIG2,SIGEL2,SIGQE2,SIGSD2,SIGQSD2) - - SIGT = (1.D0-FOX)*SIG1 + FOX*SIG2 - SIGEL = (1.D0-FOX)*SIGEL1 + FOX*SIGEL2 - SIGQE = (1.D0-FOX)*SIGQE1 + FOX*SIGQE2 - SIGSD = (1.D0-FOX)*SIGSD1 + FOX*SIGSD2 - SIGQSD = (1.D0-FOX)*SIGQSD1 + FOX*SIGQSD2 - RETURN - END - -C======================================================================= - - SUBROUTINE SIG_H_NUC - + (IAT,SSIG,SLOPE,ALPHA,ALAM,SIGT,SIGEL,SIGQE,SIGSD,SIGQSD) - -C----------------------------------------------------------------------- -C********************************************************************** -C...Subroutine to compute hadron-nucleus cross sections -C. according to: -C. R.J. Glauber and G.Matthiae Nucl.Phys. B21, 135, (1970) -C. -C. INPUT : IAT nucleon number in target nucleus -C. SSIG (mbarn) total pp cross section -C. SLOPE (GeV**-2) elastic scattering slope for pp -C. ALPHA real/imaginary part of the forward pp elastic -C. scattering amplitude -C. OUTPUT : SIGT = Total cross section -C. SIGEL = Elastic cross section -C. SIGQEL = Elastic + Quasi elastic cross section -C. SIGSD = single diff. cross section (beam) -C. SIGQSD = Elastic + Quasi elastic SD cross section (beam) -C. -C...................................................................... - IMPLICIT NONE - INTEGER IAT - DOUBLE PRECISION SSIG,SLOPE,ALPHA,ALAM - DOUBLE PRECISION SIG1,SIGEL1,SIGQE1,SIGSD1,SIGQSD1 - DOUBLE PRECISION SIGT,SIGEL,SIGQE,SIGSD,SIGQSD - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - SAVE - IF(IAT.eq.0.or.IAT.gt.18) THEN - WRITE(LUN,'(//,1X,A)') - & ' SIG_H_NUC: number of target nucleons too large!', - & ' (1<=IAT<=18)' - SIGT = -1.D0 - STOP - ENDIF - - CALL GLAUBER2 - + (IAT,SSIG,SLOPE,ALPHA,ALAM,SIG1,SIGEL1,SIGQE1,SIGSD1,SIGQSD1) - SIGT = SIG1 - SIGEL = SIGEL1 - SIGQE = SIGQE1 - SIGSD = SIGSD1 - SIGQSD = SIGQSD1 - RETURN - END - -C======================================================================= - - SUBROUTINE GLAUBER2 - + (JA,SSIG,SLOPE,ALPHA,ALAM,SIGT,SIGEL,SIGQEL,SIGSD,SIGQSD) - -C----------------------------------------------------------------------- -C...Subroutine to compute hadron-Nucleus cross sections -C. according to: -C. R.J. Glauber and G.Matthiae Nucl.Phys. B21, 135, (1970) -C. -C. This formulas assume that the target nucleus density is -C. modeled by a shell-model form. A reasonable range of models -C. is 4 < JA < 18 -C. -C. This is a modified version with a two-channel model for inelastic -C. intermediate states of low mass (R. Engel 2012/03/26) -C. -C. INPUT : A = mass number of the nucleus -C. SSIG (mbarn) total pp cross section -C. SLOPE (GeV**-2) elastic scattering slope for pp -C. ALAM enhancement factor (sqrt of sigma_sd1/sigma_ela) -C. ALPHA real/imaginary part of the forward pp elastic -C. scattering amplitude -C. OUTPUT : SIGT = Total cross section -C. SIGEL = Elastic cross section -C. SIGQEL = Elastic + Quasi elastic cross section -C. SIGSD = single diff. cross section -C. SIGQSD = Quasi single diff. cross section -C. -C. Internally everything is computed in GeV (length = GeV**-1) -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /CA0SH/ R0, R02 - COMPLEX*16 ZS1, ZS2, ZP1, ZP2, Z1, Z2, OM12 - DIMENSION RR(18) - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - SAVE - DATA BMAX /100.D0/ ! GeV**-1 - DATA NB /500/ -C...data on Sqrt[<r**2>] (fm). (A=5,8 are not correct). -C From Barett and Jackson - DATA RR /0.81,2.095,1.88,1.674, 2.56,2.56,2.41,2.5,2.519,2.45 - + ,2.37, 2.460, 2.440, 2.54, 2.58, 2.718, 2.662,2.789 / - - A = DBLE(JA) -C...Parameter of shell model density - R0 = RR(JA)/0.197D0/dSQRT(5.D0/2.D0 - 4.D0/A) ! GeV**-1 - R02 = R0*R0 - - SIG1 = (1.D0+ALAM) * SSIG/CMBARN ! GeV**-2 - SIG2 = (1.D0-ALAM) * SSIG/CMBARN - SIG12 = dSQRT((1.D0+ALAM)*(1.D0-ALAM)) * SSIG/CMBARN - DB = BMAX/DBLE(NB) - SUM0 = 0.D0 - SUM1 = 0.D0 - SUM2 = 0.D0 - SUM3 = 0.D0 - SUM4 = 0.D0 - DO JB=1,NB - - B = DB*(DBLE(JB)-0.5D0) - - GS1 = GLAUBGS_D (B,SLOPE, SIG1) - XS1 = (1.D0- GS1) - YS1 = GS1*ALPHA - ZS1 = DCMPLX(XS1,YS1) - - GP1 = GLAUBGP_D (B,SLOPE, SIG1) - XP1 = (1.D0- GP1) - YP1 = GP1*ALPHA - ZP1 = DCMPLX(XP1,YP1) - - Z1 = ZS1**4 * ZP1**(A-4.D0) - - GS2 = GLAUBGS_D (B,SLOPE, SIG2) - XS2 = (1.D0- GS2) - YS2 = GS2*ALPHA - ZS2 = DCMPLX(XS2,YS2) - - GP2 = GLAUBGP_D (B,SLOPE, SIG2) - XP2 = (1.D0- GP2) - YP2 = GP2*ALPHA - ZP2 = DCMPLX(XP2,YP2) - - Z2 = ZS2**4 * ZP2**(A-4.D0) - - XZ = 0.5D0 * DREAL(Z1+Z2) - YZ = 0.5D0 * DIMAG(Z1+Z2) - - XZ2 = 0.5D0 * DREAL(Z2-Z1) - YZ2 = 0.5D0 * DIMAG(Z2-Z1) - - SUM0 = SUM0 + (1.D0-XZ)*B - - SUM1 = SUM1 + ((1.D0-XZ)**2 + YZ**2)*B - - SUM3 = SUM3 + (XZ2**2 + YZ2**2)*B - - OMS1 = OMEGAS_D(B,SIG1,SLOPE,ALPHA) - OMS2 = OMEGAS_D(B,SIG2,SLOPE,ALPHA) - OMS12 = OMEGAS_D(B,SIG12,SLOPE,ALPHA) - - OMP1 = OMEGAP_D(B,SIG1,SLOPE,ALPHA) - OMP2 = OMEGAP_D(B,SIG2,SLOPE,ALPHA) - OMP12 = OMEGAP_D(B,SIG12,SLOPE,ALPHA) - - OM1 = (1.D0 - 2.D0*GS1 + OMS1)**4 - & * (1.D0 - 2.D0*GP1 + OMP1)**(A-4.D0) - OM2 = (1.D0 - 2.D0*GS2 + OMS2)**4 - & * (1.D0 - 2.D0*GP2 + OMP2)**(A-4.D0) - OM12 = (1.D0 - GS1*DCMPLX(1.D0,ALPHA)-GS2*DCMPLX(1.D0,-ALPHA) - & + OMS12)**4 - & * (1.D0 - GP1*DCMPLX(1.D0,ALPHA)-GP2*DCMPLX(1.D0,-ALPHA) - & + OMP12)**(A-4.D0) - SUM2 = SUM2 + (1.D0-2.D0*XZ + (OM1+OM2)/4.D0 - & + DREAL(OM12)/2.D0)*B - SUM4 = SUM4 + ((OM1+OM2)/4.D0 - & - DREAL(OM12)/2.D0)*B - - ENDDO - - SIGT = SUM0 * DB * 4.D0*PI * CMBARN - SIGEL = SUM1 * DB * TWOPI * CMBARN - SIGQEL = SUM2 * DB * TWOPI * CMBARN - SIGSD = SUM3 * DB * TWOPI * CMBARN - SIGQSD = SUM4 * DB * TWOPI * CMBARN - END - -C======================================================================= - - FUNCTION GLAUBGS_D (B,SLOPE, SIG) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /CA0SH/ A0, A02 - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - SAVE - - GAMMA2 = A02/4.D0 + 0.5D0*SLOPE - ARG = B**2/(4.D0*GAMMA2) - GLAUBGS_D = SIG/(8.D0*PI*GAMMA2) * EXP(-ARG) - RETURN - END - -C======================================================================= - - FUNCTION GLAUBGP_D (B,SLOPE, SIG) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /CA0SH/ A0, A02 - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - SAVE - - GAMMA2 = A02/4.D0 + 0.5D0*SLOPE - ARG = B**2/(4.D0*GAMMA2) - C1 = 1.D0- A02/(6.D0*GAMMA2)*(1.D0-ARG) - GLAUBGP_D = SIG/(8.D0*PI*GAMMA2) * C1 * EXP(-ARG) - RETURN - END - -C======================================================================= - - FUNCTION OMEGAS_D (B, SIG, SLOPE, RHO) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /CA0SH/ A0, A02 - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - SAVE - - ETA2 = 0.25D0*(A02 + SLOPE) - F02 = SIG*SIG*(1.D0+RHO*RHO)/(16.D0*PI**2) - ARG = -B*B/(4.D0*ETA2) - OMEGAS_D = F02/(4.D0*ETA2*SLOPE) *EXP(ARG) - RETURN - END - -C======================================================================= - - FUNCTION OMEGAP_D (B, SIG, SLOPE, RHO) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /CA0SH/ A0, A02 - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - SAVE - - ETA2 = 0.25D0*(A02 + SLOPE) - F02 = SIG*SIG*(1.D0+RHO*RHO)/(16.D0*PI**2) - ARG = -B*B/(4.D0*ETA2) - OMEGAP_D=F02/(4.D0*ETA2*SLOPE)*(1.D0-A02/(6.D0*ETA2)*(1.D0+ARG)) - $ *EXP(ARG) - RETURN - END -C======================================================================= - - SUBROUTINE REMOVE_PI0(XRATE,N1,N2) - -C----------------------------------------------------------------------- -C routine to exchange pi0 on stack with charged pions -C violating charge conservation. -C final pions will be off-shell -C -C Input: exchange rate and stack positions inbetween -C which pions shall be exchanged. -C -C--------------------------------------------------------- - IMPLICIT NONE -c Commons - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN -C external types - DOUBLE PRECISION XRATE - INTEGER N1,N2 -C internals - INTEGER I,LL,LA,IFPI0 - DOUBLE PRECISION S_RNDM - SAVE - - IF(NDEBUG.gt.0)write(lun,*) - & ' REMOVE_PI0: Rate,Mode:',xrate,IPAR(50) -C select exchange model - IF(IPAR(50).eq.1)THEN -C stack loop - DO I=N1,N2 - LL = MOD(LLIST(I),10000) - LA = IABS(LL) -c IF(LA.eq.6)THEN - IFPI0=(1-MIN(IABS(1-LA/6),1))*MAX(1-MOD(LA,6),0) -c replace with pi+ or pi- - LL=LL+IFPI0*(2-INT(MIN((2.D0+XRATE)*S_RNDM(LA), - & 3.D0-EPS10))) - LLIST(I) = LL - IF(NDEBUG.gt.1) - & WRITE(LUN,*) ' REMOVE_PI0: LA,IFPI0,LNEW:',LA,IFPI0,LL - ENDDO - ENDIF - END -C======================================================================= - - SUBROUTINE SAMPLE_SEA_INDV(KRMNT,XMINA,XMINA_SEA,NSEA, - & XREM0,ALPHA,ASUP,XQMASS,XMAX,XX,IREJ) - -C----------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - INTEGER NW_max - PARAMETER (NW_max = 20) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - INTEGER ITRY, NREJ - COMMON /S_CNT/ ITRY(20), NREJ(20) - - DOUBLE PRECISION XMINA,XMINA_SEA,XREM0,ALPHA,ASUP,XQMASS,XMAX - INTEGER NSEA,KRMNT - DOUBLE PRECISION XX - DIMENSION XX(2*NW_max+2) - INTEGER IREJ - - DOUBLE PRECISION XREM,XKIN,X1,X2,pt,S_RNDM,XQM - INTEGER ICNT2,J,jj1,jj2 - SAVE - DATA ICNT2 /0/ - - IF(ndebug.gt.2) - & write(lun,*)' SAMPLE_SEA_INDV: called with ', - & '(KRMNT,XMINA,XMINA_SEA,NSEA,XREM0,ALPHA,ASUP,XQMASS,XMAX):', - & KRMNT,XMINA,XMINA_SEA,NSEA,XREM0,ALPHA,ASUP,XQMASS,XMAX - XREM = 0.D0 - XKIN = 0.1D0 - XQM = XQMASS - ITRY(4) = 0 - DO WHILE ( XREM .lt. XMINA ) - XREM = XREM0 - IF ( XREM .LT. 2.D0*XMINA + Nsea*XMINA_SEA - & +XKIN*(1.5D0-S_RNDM(ICNT2)) ) THEN - IREJ = 2 ! resample event - RETURN - ENDIF - IF(ITRY(4).gt.Nsea/2*NREJ(4))THEN - ICNT2 = ICNT2 + 1 - IF(ndebug.gt.2)THEN - IF(ICNT2.le.5)THEN - write(lun,*)' SAMPLE_SEA_INDV: rejection!' - write(lun,*)' reached max. no. of trials!', NREJ(4) - write(lun,*)' XREM0,N,XMIN:' ,XREM0,Nsea,XMINA_SEA - ENDIF - IF(ICNT2.eq.5) - & write(lun,*)' last warning of this type..' - ENDIF - IREJ = IPAR(51) - RETURN - ENDIF - DO j=1,Nsea/2 -c scale for interactions other than first if Nw>1 - IF(IPAR(75).eq.1.and.J.gt.1) XQM = XQM*PAR(118) - CALL SAMPLE_SEA(ALPHA,ASUP,XQM,XMAX,x1,x2,pt) - jj1 = 2 + 2*(j-1) + 1 - IF(KRMNT.eq.0) jj1 = 4+2*(j-1) + 1 - jj2 = jj1 + 1 - XX(jj1) = x1 - XX(jj2) = x2 - XREM = XREM - XX(jj1) - XX(jj2) - IF(NDEBUG.gt.2) - & WRITE(LUN,*) ' x-frac: JW,X3,X4,XREM', - & J,XX(jj1),XX(jj2),XREM - ENDDO - ITRY(4) = ITRY(4) + 1 - IF(NDEBUG.gt.1) WRITE(LUN,*) - & ' SAMPLE_SEA_INDV: ISMPL,XREM0,XREM,XMINA,XMINSEA', - & ITRY(4),XREM0,XREM,XMINA,XMINA_SEA - ENDDO - XREM0 = XREM - IREJ = 0 - END -C======================================================================= - - SUBROUTINE FORCE_VECTORS(XRATE,N1,N2) - -C----------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - -c external types - double precision xrate - integer n1,n2 - -c internal types - integer ipi2vec,lcon,lreschex,ll,la,la_new,i,j,kba - DIMENSION IPI2VEC(99) - double precision pz2,xmts,xf,xfs,S_RNDM!,pts - - DIMENSION LCON(6:43),LRESCHEX(6:39) - INTEGER IFIRST - SAVE -c charge exchange map, i.e. pip -> pi0 ... - DATA LCON /7,6,6,22,21,9,9,14,13,4*0,20,19,10,9,23,24,27,27,25, - & 31,30,29,28,32,33,35,34,35,38,37,39,41,42,41,42/ -c charge and spin exchange map, i.e. pip -> rho0 -c approximate, proton and neutron should go to N(1520) not Delta - DATA LRESCHEX /26,27,27,31,30,9,9,42,41,19*0,45,44,45,48,47,39/ - DATA IFIRST /0/ - - if(ifirst.eq.0)then - print *,'initializing..' - do j=1,99 - IPI2VEC(J) = J - enddo - IPI2VEC(6) = 27 ! pi(0) ---> rho(0) - IPI2VEC(7) = 25 ! pi+ ---> rho+ - IPI2VEC(8) = 26 ! pi- ---> rho- - ifirst = 1 - endif - - KBA = IABS(KB) - - IF(IPAR(45).eq.1)THEN -c trivial exchange model - do I=N1,N2 -c replace pions with vector mesons - LL = mod(llist(I),10000) - LA = abs(LL) - IF(S_RNDM(I).lt.xrate)then -c put back on mass shell - la_new = IPI2VEC(LA) - xmts = p(i,1)**2 + p(i,2)**2 + am2(la_new) - pz2 = p(i,4)**2 - xmts - if(pz2.gt.EPS8)then - p(i,3) = sign(sqrt(pz2),p(i,3)) - p(i,5) = am(la_new) - LLIST(I) = ISIGN(la_new,ll) - endif - endif - enddo - - ELSEIF(IPAR(45).eq.2)THEN -c large xf only, neutral pions only - do I=N1,N2 - LL = mod(llist(I),10000) - LA = abs(LL) - IF(LA.eq.6)then - xf = 2.D0*p(i,3)/SQS - IF(S_RNDM(I).lt.xrate*xf)then -c exhcange and put back on mass shell - la_new = IPI2VEC(la) - xmts = p(i,1)**2 + p(i,2)**2 + am2(la_new) - pz2 = p(i,4)**2 - xmts - if(pz2.gt.EPS8)then - p(i,3) = sign(dsqrt(pz2),p(i,3)) - p(i,5) = am(la_new) - LLIST(I) = ISIGN(la_new,ll) - endif - endif - endif - enddo - - ELSEIF(IPAR(45).eq.3)THEN -c large xf only, charge and spin exchange - do I=N1,N2 - LL = mod(llist(I),10000) - LA = abs(LL) - IF(ll.eq.LCON(KBA))then - xf = 2.D0*p(i,3)/sqs - IF(S_RNDM(I).lt.xrate*xf)then -c replace charge exchange product of beam with -c charge and spin exchange product, i.e. -c pip-beam -> rho0 instead of pip-beam -> pi0 -c so replace pi0 with rho0 in final state - la_new = LRESCHEX(KBA) -c put back on mass shell - xmts = p(i,1)**2 + p(i,2)**2 + am2(la_new) - pz2 = p(i,4)**2 - xmts - if(pz2.gt.EPS8)then - p(i,3) = sign(dsqrt(pz2),p(i,3)) - p(i,5) = am(la_new) - LLIST(I) = ISIGN(la_new,ll) - endif - endif - endif - enddo - - ELSEIF(IPAR(45).eq.4)THEN -c large xf only, charge and spin exchange - do I=N1,N2 - LL = mod(llist(I),10000) - LA = abs(ll) - IF(LL.eq.LCON(KBA))then - xf = 2.D0*p(i,3)/sqs - xfs = xf ** 2 - IF(S_RNDM(I).lt.xrate*xfs)then -c replace charge exchange product of beam with -c charge and spin exchange product, i.e. -c pip-beam -> rho0 instead of pip-beam -> pi0 -c so replace pi0 with rho0 in final state - la_new = LRESCHEX(KBA) -c put back on mass shell - xmts = p(i,1)**2 + p(i,2)**2 + am2(la_new) - pz2 = p(i,4)**2 - xmts - if(pz2.gt.EPS8)then - p(i,3) = sign(dsqrt(pz2),p(i,3)) - p(i,5) = am(la_new) - LLIST(I) = ISIGN(la_new,ll) - endif - endif - endif - enddo - ENDIF - if(ndebug.ge.5) CALL SIB_LIST(6) - END -C======================================================================= - - SUBROUTINE SAMPLE_BEAM(KID,NW,XCHG,KRMNT,XJET,IREJ) - -C----------------------------------------------------------------------- -C...Subroutine to sample valence and sea quark kinematics -C. fills IFL?,X? and PX?,PY? -C. 1,2 are valence quarks, 3,4 are additional sea quarks -C. transverse momentum is shared between the val. and sea pairs -C. X and flv are exchanged occasionally -C------------------------------------------------------------------- - IMPLICIT NONE - - DOUBLE PRECISION XCHG,XJET - INTEGER KID,NW,KRMNT,IREJ - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - INTEGER NW_max - PARAMETER (NW_max = 20) - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - - INTEGER IBMRDX,ITGRDX,IHMJDX,ISMJDX,ICSTDX,IINTDX - COMMON /S_INDX/ IBMRDX(3),ITGRDX(NW_max,3), - & IHMJDX(NW_max*NH_max),IINTDX(NW_max), - & ISMJDX(NW_max*NS_max),ICSTDX(2*NW_max,3) - - INTEGER IRMNT,KRB,KRT - DOUBLE PRECISION XRMASS,XRMEX - COMMON /S_RMNT/ XRMASS(2),XRMEX(2),IRMNT(NW_max),KRB,KRT(NW_max) - - DOUBLE PRECISION X1,PXB,PYB - DIMENSION X1(2*NW_max+2),PXB(2*NW_max+2),PYB(2*NW_max+2) - INTEGER IFLB,KID1,J,J1,J2,J3,J4,Iref1,Iref,Idm - DIMENSION IFLB(2*NW_max+2) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - -c default rejection -c options are: 1: resample minijets (Xjet).. -c 2: resample non-diff event (Ns,Nh).. -c 3: resample event (Nw,diff,ndiff).. - IREJ = 1 - - IF(ndebug.gt.2) - + WRITE(LUN,*) - + ' SAMPLE_BEAM: KID,NW,XCHG,KRMNT,XJET,IREJ', - + KID,NW,XCHG,KRMNT,XJET,IREJ - - CALL SAMPLE_PROJECTILE - + (KID,NW,KRMNT,XCHG,XJET,X1,PXB,PYB,IFLB,KID1,IREJ) - IF(IREJ.ne.0) RETURN - -c set remnant id to beam -c will be changed if flavor is exchanged between central strings and remnant - KRB = KID1 - -C.. write beam partons to stack -c order is: val1, val2, q, qbar etc - IF(KRMNT.ne.0)THEN - j1 = 1 - j2 = 2 -c add proto-remnant (still massless) - CALL ADD_PRTN(PXB(J1)+PXB(J2),PYB(J1)+PYB(J2), - & 0.5D0*SQS*(X1(J1)+X1(J2)), - & 0.5D0*SQS*(X1(J1)+X1(J2)),0.D0,2,0,0,Iref1) - IBMRDX(1) = Iref1 -c beam remnant always associated with first interaction - CALL ADD_INT_REF(Iref1,IINTDX(1)) -c add quarks designated for remnant - IF(KID.lt.0)THEN -c if beam is antibaryon then hspli puts diq into 1st flv -c need to switch to fit call to string frag routine -c such that diq is along +z - CALL ISWTCH_LMNTS(IFLB(j1),IFLB(j2)) - ENDIF - CALL ADD_PRTN(PXB(J1),PYB(J1),0.5D0*SQS*X1(J1), - & 0.5D0*SQS*X1(J1),0.D0,IFLB(J1),1,Iref1,Iref) - IBMRDX(2) = Iref - CALL ADD_PRTN(PXB(J2),PYB(J2),0.5D0*SQS*X1(J2), - & 0.5D0*SQS*X1(J2),0.D0,IFLB(J2),1,Idm,Iref) - IBMRDX(3) = Iref - ENDIF - DO j=1,NW - j3 = 3+(j-1)*2 - j4 = j3+1 -c add sea quarks - CALL ADD_PRTN(PXB(J3),PYB(J3),0.5D0*SQS*X1(J3), - & 0.5D0*SQS*X1(J3),0.D0,IFLB(J3),1,0,Iref) - ICSTDX(2*(J-1)+1,2) = Iref - CALL ADD_PRTN(PXB(J4),PYB(J4),0.5D0*SQS*X1(J4), - & 0.5D0*SQS*X1(J4),0.D0,IFLB(J4),1,0,Iref) - ICSTDX(2*(J-1)+2,2) = Iref -c add parton index to cache - ENDDO - IF(NDEBUG.GT.3) CALL PRNT_PRTN_STCK - - IREJ = 0 - - END -C======================================================================= - - SUBROUTINE FRAG_INCHRNT_DIFF(IDX,LBAD) - -C----------------------------------------------------------------------- -C routine that fragments a diffractive system \FR'15 -C -C INPUT: IDX : parton stack index of 4momentum -C----------------------------------------------------------------------- - IMPLICIT NONE - INTEGER IDX,LBAD - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - - DOUBLE PRECISION PST,PDIFF,GABE,P2,EE,P1TOT - DIMENSION PST(5),PDIFF(5),GABE(4),P2(4) - INTEGER IDIFF1,IDIFF,IPID,L0,JDIFF,NOLD,LXBAD,K,II - SAVE - - LBAD = 2 - -c references are diff --> diff.hadron --> bm-partons --> tg-partons -c only diff and diff. hadron are read out -c read diff 4momentum from stack - CALL RD_PRTN_4VEC(IDX,PST,IPID,IDIFF1) - CALL RD_PRTN_4VEC(IDIFF1,PDIFF,L0,IDIFF) - -C kinematic variables - EE = PDIFF(5) ! center of mass energy in diff. system - -c set diffraction code of system (1:beam,2:target,3:double) - JDIFF = ABS(IPID)/10 - - IF(NDEBUG.gt.1) WRITE(LUN,*)' FRAG_INCHRNT_DIFF: IDX,EE,L0', - & IDX,EE,L0 - - IPFLAG = -1 - - NOLD = NP - -c diffractive interaction in center-of-mass system of (sea,rmnt)-nuc - CALL SIB_DIFF(L0,JDIFF,EE,0,LXBAD) - IF(LXBAD.ne.0) THEN - IF(NDEBUG.gt.1) - & WRITE(LUN,*)' FRAG_INCHRNT_DIFF: fragmentation rejection' - RETURN - ENDIF - IF(NDEBUG.gt.1) - & WRITE(LUN,*)' FRAG_INCHRNT_DIFF: particles before/after :', - & NOLD,NP - -c boost to hadron - hadron center-of-mass - do ii=1,4 - gabe(ii) = PDIFF(ii)/PDIFF(5) - enddo - DO K=NOLD+1,NP - CALL SIB_ALTRA(gabe(4),gabe(1),gabe(2), - & gabe(3),P(k,1),p(k,2),p(k,3),p(k,4), - & P1TOT,p2(1),p2(2),p2(3),p2(4)) - do ii=1,4 - P(K,ii)=P2(ii) - enddo - ENDDO - - LBAD = 0 - END -C======================================================================= - - SUBROUTINE SAMPLE_MINIJET - & (L,NW,NNJET,NNSOF,NJET,NSOF,X1JET,X2JET,LBAD) - -C----------------------------------------------------------------------- -C routine to sample minijets -C INPUT: L - hadron type (1:nucleon,2:pion or 3:kaon) -C NW - number of hadron-nucleon interactions -C NNJET(1:NW) - number of hard interactions per nucleon -C NNSOF(1:NW) - number of soft interactions per nucleon -C OUTPUT: X1JET - momentum fraction of beam in minijets -C X2JET(1:NW) - momentum fraction of target in minijets -C -C in addition minijets are added to parton stack -C----------------------------------------------------------------------- - IMPLICIT NONE - -c external types - INTEGER L,NW,NNJET,NNSOF,NJET,NSOF,LBAD - DOUBLE PRECISION X1JET,X2JET - - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - INTEGER NW_max - PARAMETER (NW_max = 20) - -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - DOUBLE PRECISION STR_mass_val, STR_mass_val_hyp, STR_mass_sea - COMMON /S_CUTOFF/ STR_mass_val, STR_mass_val_hyp, STR_mass_sea - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - - INTEGER IBMRDX,ITGRDX,IHMJDX,ISMJDX,ICSTDX,IINTDX - COMMON /S_INDX/ IBMRDX(3),ITGRDX(NW_max,3), - & IHMJDX(NW_max*NH_max),IINTDX(NW_max), - & ISMJDX(NW_max*NS_max),ICSTDX(2*NW_max,3) - DIMENSION NNSOF(NW_max),NNJET(NW_max),X2JET(NW_max) - -c internal types - INTEGER NALL,JW,JJ,IREF,IREFG1,IREFG2,NSOF_JW,II - DOUBLE PRECISION X1JJ,X2JJ,PTJET,FI,S_RNDM,SQSHALF,XM, - & X1S,X2S,PTSOF,PZ,EN - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - - if(Ndebug.gt.1) WRITE(LUN,*) - & ' SAMPLE_MINIJETS: (L,NW,NNJET,NNSOF):', - & L,NW,(NNJET(ii),ii=1,nw),(NNSOF(ii),ii=1,nw) - - IF(L.eq.0) THEN - WRITE(LUN,*) 'SAMPLE_minijets: unknown particle? L=',L - CALL SIB_REJECT('SAMPLE_minijets ') - ENDIF - - NJET = 0 - NSOF = 0 - Nall = 0 - X1JET = 0.D0 - DO JW=1,NW -C...hard sea-sea interactions - X2JET(JW) = 0.D0 - DO JJ=1,NNJET(JW) - Nall = Nall+1 - NJET = NJET+1 - CALL SAMPLE_HARD (L,X1Jj,X2Jj,PTJET) - X1JET = X1JET + X1Jj - X2JET(JW) = X2JET(JW)+X2Jj - if(Ndebug.gt.2) THEN - WRITE(LUN,*) - & ' SAMPLE_MINIJETS: hard JJ,JW,X1JET,X2JET(JW):', - & JJ,JW,X1JET,X2JET(JW) - WRITE(LUN,*) - & ' X1,X2,PT:',X1JJ,X2JJ,PTJET - ENDIF - IF ((X2JET(JW).GT.0.9D0).OR.(X1JET.GT.0.9D0)) then - if(Ndebug.gt.2) WRITE(LUN,*) - & ' SAMPLE_MINIJETS: not enough phase space', - & ' (Ncall,Njet,lbad):',Ncall,Njet,lBAD - return - ENDIF - FI = TWOPI*S_RNDM(JJ) - XM = SQS*sqrt(X1jj*X2jj) - SQSHALF = 0.5D0*SQS -c TH = ASIN(MIN((1.D0-EPS8),2.D0*PTJET/XM)) -c add gluon-gluon string to stack - CALL ADD_PRTN - & (0.D0,0.D0,SQSHALF*(X1jj-X2jj),SQSHALF*(X1jj+X2jj), - & XM,100,0,0,Iref) - CALL ADD_INT_REF(Iref,IINTDX(JW)) -c add gluon-gluon system to hard minijet index - IHMJDX(NJET) = Iref -c add gluons to stack - CALL ADD_PRTN(PTJET*COS(FI),PTJET*SIN(FI), - & SQSHALF*X1jj,SQSHALF*X1jj,0.D0,0,1,0,Irefg1) - CALL ADD_PRTN(-PTJET*COS(FI),-PTJET*SIN(FI), - & -SQSHALF*X2jj,SQSHALF*X2jj,0.D0,0,1,Iref,Irefg2) -c set up references -c minijet --> gluon1 --> gluon2 --> minijet - CALL ADD_REF(Irefg1,Irefg2) - CALL ADD_REF(Iref,Irefg1) - - ENDDO - -C...soft sea-sea interactions - NSOF_JW = 0 - DO JJ=1,NNSOF(JW)-1 -c different soft distributions - CALL SAMPLE_SOFT6 (STR_mass_sea,X1S,X2S,PTSOF) - IF ((X2JET(JW)+X2S.LT.0.9D0).AND.(X1JET+X1S.LT.0.9D0)) THEN - NSOF = NSOF+1 - Nall = Nall+1 - NSOF_JW = NSOF_JW+1 - X1JET = X1JET + X1S - X2JET(JW) = X2JET(JW)+X2S -c add to stack -c add gluon-gluon string to stack - XM = SQS*SQRT(X1S*X2S) - SQSHALF = 0.5D0*SQS - PZ = SQSHALF*(X1S-X2S) - EN = SQSHALF*(X1S+X2S) - FI = TWOPI*S_RNDM(JJ) - CALL ADD_PRTN(0.D0,0.D0,PZ,EN,XM,10,0,0,Iref) - CALL ADD_INT_REF(Iref,IINTDX(JW)) -c add gluons to stack -c add gluon-gluon system to soft minijet index - ISMJDX(NSOF) = Iref - CALL ADD_PRTN(PTSOF*COS(FI),PTSOF*SIN(FI), - & SQSHALF*X1S,SQSHALF*X1S,0.D0,0,1,0,Irefg1) - CALL ADD_PRTN(-PTSOF*COS(FI),-PTSOF*SIN(FI), - & -SQSHALF*X2S,SQSHALF*X2S,0.D0,0,1,Iref,Irefg2) -c set up references -c minijet --> gluon1 --> gluon2 --> minijet - CALL ADD_REF(Irefg1,Irefg2) - CALL ADD_REF(Iref,Irefg1) - IF(Ndebug.gt.2)THEN - WRITE(LUN,*) - & ' SAMPLE_MINIJETS: soft JJ,JW,X1JET,X2JET(JW):', - & JJ,JW,X1JET,X2JET(JW) - WRITE(LUN,*) - & ' X1,X2,PT:',X1s,X2s,PTSOF - ENDIF - ELSE - IF(Ndebug.gt.1) WRITE(LUN,*) - & ' SAMPLE_MINIJETS: not enough phase space', - & ' (Ncall,Nsof,lbad):',Ncall,Njet,lBAD - RETURN - ENDIF - ENDDO - NNSOF(JW) = NSOF_JW+1 - ENDDO - lbad = 0 - - END -C======================================================================= - - SUBROUTINE SIB_SIGMA_EXT - & (L0,SQS,SIGT,SIGEL,SIGINEL,SLOPE,RHO) - -C----------------------------------------------------------------------- -C Hadron-proton cross sections -C taken from EXTERNAL(!) interpolation table (calculated elsewhere) -C can be used to run NUCLIB with alternative cross section/int.length -C -C input: L 1,2,3 proton-,pion-,kaon-proton -C SQS sqrt(s) -C -C output: SIGT total cross section (mb) -C SIGEL elastic cross section (mb) -C SIGINEL inelastic cross section (mb) -C SLOPE elastic slope parameter (GeV^-2) -C RHO real/imaginary part of forward amplitude -C----------------------------------------------------------------------- - IMPLICIT NONE - -c external types - DOUBLE PRECISION SQS,SIGT,SIGEL,SIGINEL,SLOPE,RHO - INTEGER L0 - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - -c external cross section tables -C cross sections in model: 23rc1_sib23 - INTEGER K - DOUBLE PRECISION SSIG_TOT(61,3) - DOUBLE PRECISION SSIG(61,3) - DOUBLE PRECISION SSIG_B(61,3) - DOUBLE PRECISION SSIG_RHO(61,3) -c internal type declarations - DOUBLE PRECISION T,AL,ASQSMIN,ASQSMAX,DASQS - INTEGER LL,L,J1,NSQS - DIMENSION LL(39) - SAVE -C proton-proton: -C total cross section - DATA (SSIG_TOT(K,1),K= 1, 61) / - &3.8328D+01,3.8267D+01,3.8435D+01,3.8838D+01,3.9463D+01, - &4.0288D+01,4.1277D+01,4.2391D+01,4.3586D+01,4.4918D+01, - &4.6354D+01,4.7836D+01,4.9394D+01,5.1050D+01,5.2835D+01, - &5.4789D+01,5.6957D+01,5.9392D+01,6.2151D+01,6.5294D+01, - &6.8883D+01,7.2529D+01,7.6458D+01,8.0673D+01,8.5172D+01, - &8.9955D+01,9.5017D+01,1.0035D+02,1.0595D+02,1.1181D+02, - &1.1790D+02,1.2423D+02,1.3077D+02,1.3751D+02,1.4444D+02, - &1.5156D+02,1.5885D+02,1.6631D+02,1.7392D+02,1.8169D+02, - &1.8960D+02,1.9766D+02,2.0584D+02,2.1416D+02,2.2260D+02, - &2.3115D+02,2.3982D+02,2.4860D+02,2.5749D+02,2.6648D+02, - &2.7556D+02,2.8475D+02,2.9403D+02,3.0340D+02,3.1287D+02, - &3.2242D+02,3.3206D+02,3.4179D+02,3.5159D+02,3.6149D+02, - &3.7146D+02/ -C inel. cross section - DATA (SSIG(K,1),K= 1, 61) / - &3.0881D+01,3.1156D+01,3.1540D+01,3.2046D+01,3.2673D+01, - &3.3410D+01,3.4236D+01,3.5126D+01,3.6050D+01,3.7062D+01, - &3.8139D+01,3.9280D+01,4.0476D+01,4.1740D+01,4.3092D+01, - &4.4556D+01,4.6161D+01,4.7937D+01,4.9918D+01,5.2137D+01, - &5.4629D+01,5.7057D+01,5.9635D+01,6.2361D+01,6.5230D+01, - &6.8236D+01,7.1376D+01,7.4643D+01,7.8029D+01,8.1529D+01, - &8.5138D+01,8.8847D+01,9.2654D+01,9.6552D+01,1.0054D+02, - &1.0461D+02,1.0875D+02,1.1298D+02,1.1727D+02,1.2164D+02, - &1.2607D+02,1.3057D+02,1.3512D+02,1.3974D+02,1.4441D+02, - &1.4914D+02,1.5393D+02,1.5877D+02,1.6365D+02,1.6859D+02, - &1.7357D+02,1.7860D+02,1.8368D+02,1.8880D+02,1.9397D+02, - &1.9918D+02,2.0443D+02,2.0972D+02,2.1505D+02,2.2042D+02, - &2.2583D+02/ -C slope parameter - DATA (SSIG_B(K,1),K= 1, 61) / - &1.0828D+01,1.1096D+01,1.1363D+01,1.1629D+01,1.1894D+01, - &1.2159D+01,1.2424D+01,1.2688D+01,1.2953D+01,1.3217D+01, - &1.3482D+01,1.3728D+01,1.3980D+01,1.4237D+01,1.4500D+01, - &1.4770D+01,1.5047D+01,1.5333D+01,1.5632D+01,1.5945D+01, - &1.6278D+01,1.6613D+01,1.6961D+01,1.7324D+01,1.7703D+01, - &1.8100D+01,1.8515D+01,1.8949D+01,1.9404D+01,1.9880D+01, - &2.0378D+01,2.0899D+01,2.1443D+01,2.2010D+01,2.2600D+01, - &2.3212D+01,2.3845D+01,2.4499D+01,2.5173D+01,2.5867D+01, - &2.6579D+01,2.7309D+01,2.8055D+01,2.8819D+01,2.9599D+01, - &3.0394D+01,3.1205D+01,3.2031D+01,3.2870D+01,3.3724D+01, - &3.4590D+01,3.5470D+01,3.6362D+01,3.7266D+01,3.8181D+01, - &3.9109D+01,4.0047D+01,4.0995D+01,4.1955D+01,4.2924D+01, - &4.3903D+01/ -C - DATA (SSIG_RHO(K,1),K= 1, 61) / - &-1.8490D-01,-1.2654D-01,-7.7648D-02,-3.7250D-02,-4.2495D-03, - &2.2457D-02,4.3908D-02,6.1032D-02,7.4637D-02,8.5403D-02, - &9.3897D-02,1.0058D-01,1.0583D-01,1.0995D-01,1.1318D-01, - &1.1571D-01,1.1768D-01,1.1923D-01,1.2044D-01,1.2138D-01, - &1.2212D-01,1.2269D-01,1.2314D-01,1.2349D-01,1.2376D-01, - &1.2398D-01,1.2414D-01,1.2427D-01,1.2437D-01,1.2445D-01, - &1.2451D-01,1.2456D-01,1.2460D-01,1.2463D-01,1.2465D-01, - &1.2467D-01,1.2468D-01,1.2470D-01,1.2470D-01,1.2471D-01, - &1.2472D-01,1.2472D-01,1.2472D-01,1.2473D-01,1.2473D-01, - &1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01/ -C pion-proton: -C total cross section - DATA (SSIG_TOT(K,2),K= 1, 61) / - &2.3119D+01,2.3225D+01,2.3487D+01,2.3867D+01,2.4328D+01, - &2.4886D+01,2.5529D+01,2.6249D+01,2.7038D+01,2.7890D+01, - &2.8802D+01,2.9725D+01,3.0766D+01,3.1961D+01,3.3355D+01, - &3.4994D+01,3.6931D+01,3.9223D+01,4.1928D+01,4.5104D+01, - &4.8811D+01,5.2129D+01,5.5692D+01,5.9498D+01,6.3545D+01, - &6.7832D+01,7.2350D+01,7.7094D+01,8.2059D+01,8.7235D+01, - &9.2612D+01,9.8183D+01,1.0394D+02,1.0987D+02,1.1596D+02, - &1.2221D+02,1.2862D+02,1.3518D+02,1.4188D+02,1.4871D+02, - &1.5568D+02,1.6278D+02,1.7001D+02,1.7735D+02,1.8481D+02, - &1.9239D+02,2.0008D+02,2.0788D+02,2.1578D+02,2.2378D+02, - &2.3189D+02,2.4009D+02,2.4839D+02,2.5679D+02,2.6528D+02, - &2.7386D+02,2.8253D+02,2.9129D+02,3.0014D+02,3.0908D+02, - &3.1810D+02/ -C inel. cross section - DATA (SSIG(K,2),K= 1, 61) / - &1.9941D+01,2.0212D+01,2.0566D+01,2.0995D+01,2.1492D+01, - &2.1955D+01,2.2477D+01,2.3056D+01,2.3685D+01,2.4360D+01, - &2.5076D+01,2.5721D+01,2.6455D+01,2.7304D+01,2.8298D+01, - &2.9466D+01,3.0844D+01,3.2465D+01,3.4364D+01,3.6574D+01, - &3.9128D+01,4.1429D+01,4.3864D+01,4.6428D+01,4.9117D+01, - &5.1926D+01,5.4847D+01,5.7875D+01,6.1006D+01,6.4233D+01, - &6.7551D+01,7.0956D+01,7.4444D+01,7.8010D+01,8.1651D+01, - &8.5363D+01,8.9145D+01,9.2994D+01,9.6906D+01,1.0088D+02, - &1.0491D+02,1.0901D+02,1.1315D+02,1.1736D+02,1.2161D+02, - &1.2592D+02,1.3028D+02,1.3469D+02,1.3915D+02,1.4366D+02, - &1.4821D+02,1.5281D+02,1.5746D+02,1.6215D+02,1.6688D+02, - &1.7166D+02,1.7648D+02,1.8134D+02,1.8625D+02,1.9119D+02, - &1.9618D+02/ -C slope parameter - DATA (SSIG_B(K,2),K= 1, 61) / - &1.0120D+01,1.0270D+01,1.0416D+01,1.0559D+01,1.0698D+01, - &1.0836D+01,1.0971D+01,1.1105D+01,1.1238D+01,1.1371D+01, - &1.1502D+01,1.1435D+01,1.1392D+01,1.1377D+01,1.1395D+01, - &1.1452D+01,1.1549D+01,1.1690D+01,1.1878D+01,1.2118D+01, - &1.2413D+01,1.2781D+01,1.3163D+01,1.3558D+01,1.3967D+01, - &1.4391D+01,1.4829D+01,1.5282D+01,1.5751D+01,1.6236D+01, - &1.6738D+01,1.7256D+01,1.7791D+01,1.8343D+01,1.8912D+01, - &1.9498D+01,2.0100D+01,2.0718D+01,2.1351D+01,2.1999D+01, - &2.2661D+01,2.3338D+01,2.4029D+01,2.4733D+01,2.5451D+01, - &2.6182D+01,2.6926D+01,2.7682D+01,2.8450D+01,2.9231D+01, - &3.0023D+01,3.0827D+01,3.1642D+01,3.2468D+01,3.3305D+01, - &3.4152D+01,3.5010D+01,3.5878D+01,3.6757D+01,3.7645D+01, - &3.8543D+01/ -C - DATA (SSIG_RHO(K,2),K= 1, 61) / - &-6.7332D-02,-3.0879D-02,-5.4256D-04,2.4410D-02,4.4739D-02, - &6.1172D-02,7.4371D-02,8.4920D-02,9.3315D-02,9.9976D-02, - &1.0525D-01,1.0941D-01,1.1269D-01,1.1528D-01,1.1731D-01, - &1.1891D-01,1.2016D-01,1.2115D-01,1.2192D-01,1.2253D-01, - &1.2300D-01,1.2338D-01,1.2367D-01,1.2390D-01,1.2408D-01, - &1.2422D-01,1.2433D-01,1.2442D-01,1.2449D-01,1.2454D-01, - &1.2458D-01,1.2462D-01,1.2464D-01,1.2466D-01,1.2468D-01, - &1.2469D-01,1.2470D-01,1.2471D-01,1.2471D-01,1.2472D-01, - &1.2472D-01,1.2472D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01/ -C kaon-proton: -C total cross section - DATA (SSIG_TOT(K,3),K= 1, 61) / - &1.8299D+01,1.8827D+01,1.9408D+01,2.0016D+01,2.0633D+01, - &2.1318D+01,2.2044D+01,2.2810D+01,2.3615D+01,2.4458D+01, - &2.5339D+01,2.6253D+01,2.7209D+01,2.8235D+01,2.9372D+01, - &3.0683D+01,3.2250D+01,3.4173D+01,3.6576D+01,3.9602D+01, - &4.3417D+01,4.6380D+01,4.9560D+01,5.2954D+01,5.6563D+01, - &6.0384D+01,6.4411D+01,6.8639D+01,7.3062D+01,7.7674D+01, - &8.2464D+01,8.7426D+01,9.2551D+01,9.7831D+01,1.0326D+02, - &1.0883D+02,1.1454D+02,1.2037D+02,1.2634D+02,1.3243D+02, - &1.3864D+02,1.4496D+02,1.5139D+02,1.5793D+02,1.6458D+02, - &1.7133D+02,1.7817D+02,1.8512D+02,1.9215D+02,1.9928D+02, - &2.0650D+02,2.1380D+02,2.2119D+02,2.2867D+02,2.3623D+02, - &2.4387D+02,2.5160D+02,2.5940D+02,2.6728D+02,2.7524D+02, - &2.8328D+02/ -C inel. cross section - DATA (SSIG(K,3),K= 1, 61) / - &1.6131D+01,1.6687D+01,1.7256D+01,1.7835D+01,1.8414D+01, - &1.8990D+01,1.9596D+01,2.0228D+01,2.0887D+01,2.1572D+01, - &2.2282D+01,2.3007D+01,2.3748D+01,2.4525D+01,2.5373D+01, - &2.6337D+01,2.7475D+01,2.8859D+01,3.0574D+01,3.2718D+01, - &3.5399D+01,3.7521D+01,3.9768D+01,4.2138D+01,4.4626D+01, - &4.7228D+01,4.9939D+01,5.2752D+01,5.5666D+01,5.8673D+01, - &6.1770D+01,6.4952D+01,6.8215D+01,7.1555D+01,7.4969D+01, - &7.8453D+01,8.2007D+01,8.5626D+01,8.9308D+01,9.3052D+01, - &9.6855D+01,1.0072D+02,1.0463D+02,1.0861D+02,1.1263D+02, - &1.1671D+02,1.2084D+02,1.2501D+02,1.2924D+02,1.3352D+02, - &1.3784D+02,1.4220D+02,1.4662D+02,1.5107D+02,1.5558D+02, - &1.6012D+02,1.6471D+02,1.6934D+02,1.7401D+02,1.7872D+02, - &1.8348D+02/ -C slope parameter - DATA (SSIG_B(K,3),K= 1, 61) / - &8.8352D+00,9.1363D+00,9.4011D+00,9.6374D+00,9.8515D+00, - &1.0048D+01,1.0230D+01,1.0402D+01,1.0564D+01,1.0720D+01, - &1.0870D+01,1.1058D+01,1.1205D+01,1.1322D+01,1.1419D+01, - &1.1511D+01,1.1611D+01,1.1734D+01,1.1897D+01,1.2116D+01, - &1.2413D+01,1.2781D+01,1.3163D+01,1.3558D+01,1.3967D+01, - &1.4391D+01,1.4829D+01,1.5282D+01,1.5751D+01,1.6236D+01, - &1.6738D+01,1.7256D+01,1.7791D+01,1.8343D+01,1.8912D+01, - &1.9498D+01,2.0100D+01,2.0718D+01,2.1351D+01,2.1999D+01, - &2.2661D+01,2.3338D+01,2.4029D+01,2.4733D+01,2.5451D+01, - &2.6182D+01,2.6926D+01,2.7682D+01,2.8450D+01,2.9231D+01, - &3.0023D+01,3.0827D+01,3.1642D+01,3.2468D+01,3.3305D+01, - &3.4152D+01,3.5010D+01,3.5878D+01,3.6757D+01,3.7645D+01, - &3.8543D+01/ -C - DATA (SSIG_RHO(K,3),K= 1, 61) / - &-2.4506D-02,9.2028D-03,3.5513D-02,5.5961D-02,7.1799D-02, - &8.4036D-02,9.3471D-02,1.0074D-01,1.0632D-01,1.1061D-01, - &1.1391D-01,1.1643D-01,1.1837D-01,1.1986D-01,1.2100D-01, - &1.2187D-01,1.2254D-01,1.2305D-01,1.2345D-01,1.2375D-01, - &1.2398D-01,1.2416D-01,1.2429D-01,1.2439D-01,1.2447D-01, - &1.2453D-01,1.2458D-01,1.2462D-01,1.2464D-01,1.2467D-01, - &1.2468D-01,1.2469D-01,1.2470D-01,1.2471D-01,1.2472D-01, - &1.2472D-01,1.2472D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01,1.2473D-01, - &1.2473D-01/ - - DATA LL /5*0,3*2,4*3,2*1,19*0,6*1/ - - - L = L0 - NSQS = 61 - ASQSMIN = 1.D0 - ASQSMAX = 7.D0 - DASQS = (ASQSMAX-ASQSMIN)/DBLE(NSQS-1) - - IF(NSQS.LE.0) THEN - WRITE(LUN,'(//,1X,A)') - & 'SIB_SIGMA_EXT: interpolation table not initialized.' - STOP - ENDIF - IF(IABS(L).gt.39)THEN - WRITE(LUN,*) - & ' SIB_SIGMA_EXT: unknown beam particle!',L - STOP - ENDIF - IF(L.GT.3) L=LL(IABS(L)) - IF(L.EQ.0)THEN - WRITE(LUN,*) - & ' SIB_SIGMA_EXT: unknown beam particle!', L - STOP - ENDIF - - AL = LOG10(SQS) - J1 = INT((AL-1.D0)*10.D0 + 1) - if((j1.lt.1).or.(j1.gt.NSQS)) then - if (ndebug .gt. 0) - * write (LUN,'(1x,a,i3,1p,e12.3)') - & ' SIB_SIGMA_EXT: energy out of range ',L,sqs - endif - if((j1.lt.1).or.(j1.ge.NSQS)) then - J1 = min(J1,NSQS-1) - J1 = max(J1,1) - endif - T = (AL-1.D0)*10.D0 - DBLE(J1-1) - SIGT = SSIG_TOT(J1,L)*(1.D0-T) + SSIG_TOT(J1+1,L)*T - SIGINEL = SSIG(J1,L)*(1.D0-T) + SSIG(J1+1,L)*T - SIGEL = SIGT-SIGINEL - SLOPE = SSIG_B(J1,L) *(1.D0-T) + SSIG_B(J1+1,L)*T - RHO = SSIG_RHO(J1,L) *(1.D0-T) + SSIG_RHO(J1+1,L)*T - - END -C======================================================================= - - SUBROUTINE SAMPLE_PROJECTILE - + (KID,KINT,LRMNT,XCHG,XJET,XX,PX,PY,IFL,KID1,IREJ) - -C----------------------------------------------------------------------- -C... Subroutine to sample sea and valence quarks in a hadron. -C. variables are stored in xx,px,py and ifl arrays. -C. for each interaction the hadron undergoes there is one -C. pair of partons attached to the ends of two strings -C. (one cut pomeron) -C. In addition flavor and momentum may be set aside for the remnant -C. arrays are filled: rmnt1,rmnt2, c.str1,c.str2, etc.. -C. i.e. positions 1 and 2 are reserved for remnant. -C. -C. Input: KINT : number of interactions the hadron takes part in -C. KID : particle id of hadron -C. LRMNT : remnant excitation flag, -C. defines if valence quarks need to be sampled -C. XCHG : flavor exchange prob. between remnant and -C. central strings -C. XJET : momentum fraction already asigned to minijets -C. IREJ : rejection flag, default set in calling routine -C. -C. Output: XX,IFL,PX,PY : arrays of momentum fractions, flavor -C. and transverse momentum -C. KID1 : new hadron id (in case of flavor exchange) -C------------------------------------------------------------------- - IMPLICIT NONE - -C include COMMONs - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - DOUBLE PRECISION STR_mass_val, STR_mass_val_hyp, STR_mass_sea - COMMON /S_CUTOFF/ STR_mass_val, STR_mass_val_hyp, STR_mass_sea - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - INTEGER ITRY, NREJ - COMMON /S_CNT/ ITRY(20), NREJ(20) - -C input type declarations - INTEGER KID,KINT,LRMNT - DOUBLE PRECISION XCHG,XJET - -C output type declarations - DOUBLE PRECISION XX,PX,PY - INTEGER IFL,KID1,IREJ - DIMENSION XX(2*NW_max+2),PX(2*NW_max+2),PY(2*NW_max+2), - & IFL(2*NW_max+2) - -c local type declarations - INTEGER ICNT1,ICNT2,J,JJ,j1,j2,j3,j4,KRMNT,IRNK, - & IDXVAL,IDX,ISWTD,i,IFLS,NVAL,NSEA,IR,IDUM,IDUM2,KIDA,IMRG2HAD - DOUBLE PRECISION XSEAJET,XVAL,XMINA,XMINA_SEA,GAMMA,XREM,XMINA2, - & XMAX2,ALPHA,XM2DIS,ASUP,XMAX,XQM,S_RNDM, - & CHIDIS,CHI,GAMDIQ,XSUPP,XSUPP1,PAR53_def,PAR5_def,PAR6_def, - & PAR7_def,PAR143_def,XSUM,STR_mass,PTS,XSCL - SAVE - DATA ICNT1,ICNT2 /0,0/ - -C.. initialization - ITRY(3) = 0 - XVAL = 0.D0 - XSCL = 1.D0 - XSEAJET = 0.D0 - XSUM = 0.D0 - DO J=1,KINT ! zero arrays - j1 = 1+2*(j-1) - j2 = j1 + 1 - j3 = 3+2*(j-1) - j4 = j3 + 1 - XX(j1) = 0.D0 - XX(j2) = 0.D0 - XX(j3) = 0.D0 - XX(j4) = 0.D0 - PX(j1) = 0.D0 - PX(j2) = 0.D0 - PX(j3) = 0.D0 - PX(j4) = 0.D0 - ENDDO - - KRMNT = MIN(LRMNT,1) - - IF(ndebug.gt.3) - + WRITE(LUN,*) - + ' SAMPLE_PROJECTILE: KID,KINT,KRMNT,XCHG,XJET,IREJ', - + KID,KINT,KRMNT,XCHG,XJET,IREJ - - KID1 = KID - KIDA = IABS(KID) - -c number of valence quarks to sample -c if remnant is resolved (krmnt=1) no valence pair needed - Nval = 2*(1-KRMNT) - -c number of sea quarks to sample (one pair per interaction) -c if remnant is not resolved then on pair less is needed -c (valence pair takes role of one sea pair) - Nsea = 2*(KINT-(1-KRMNT)) - - IF(ndebug.gt.3) - + WRITE(LUN,*) - + ' SAMPLE_PROJECTILE: number of partons to sample ', - + '(tot,val,sea):',Nval+Nsea,Nval,Nsea - -c change proton splitting to enhance charge exchange by allowing -c ud more often than uu, default scenario is ud,du,uu: 3:1:2 - PAR53_def = PAR(53) - PAR(53) = PAR(84) -c change proton splitting in case no remnant is present - IF(LRMNT.eq.0) PAR(53) = PAR(127) - - 20 ITRY(3) = ITRY(3) + 1 - IF(ITRY(3).gt.NREJ(3)) THEN - ICNT1 = ICNT1 + 1 - IF(ICNT1.lt.10)THEN - if (NDEBUG.gt.0) then - WRITE(LUN,*)' SAMPLE_PROJECTILE: trials exceeded! return..' - WRITE(LUN,*) - + ' KID,KINT,KRMNT,XCHG,XJET,XVAL,IREJ,NCALL', - + KID,KINT,KRMNT,XCHG,XJET,XVAL,IREJ,NCALL - endif - ENDIF - PAR(53) = PAR53_def - RETURN - ENDIF - -C... kinematic limits - 22 XSEAJET = XJET - IF(KRMNT.eq.0)THEN -c minimal momentum fraction for valences - XMINA = 2.D0*STR_mass_val/SQS -c default for valence quarks: 0.35 , xmin@10GeV = 0.07 -c taken from COMMON s_cutoff - IF(ISTR(KIDA)*IBAR(KIDA).ne.0) - & XMINA = 2.D0*STR_mass_val_hyp/SQS - ELSE - IF(IPAR(47).eq.4.or.IPAR(47).eq.4.or.IPAR(47).eq.6)then -c no valence sampling model -c if remnant present then the minimal remnant mass has to be provided - XMINA = PAR(96)*AM(IABS(KID))/SQS - ELSEIF(IPAR(47).lt.4)THEN -c valences sampled, even if combined again in remnant - XMINA = 2.D0*STR_mass_val/SQS - ELSEIF(IPAR(47).eq.7)THEN -c minimal remnant mass not requiered, -c mass is taken from central strings anyway.. - XMINA = AM(IABS(KID))/SQS - ENDIF - ENDIF - -c minimal momentum fraction for sea partons - IF(IPAR(47).eq.0.or.IPAR(47).eq.3)THEN -c same as valence quarks - STR_mass = STR_mass_val - ELSEIF(IPAR(47).eq.1.or.IPAR(47).eq.2.or.IPAR(47).gt.4)THEN -c set by parameter - STR_mass = PAR(87) - ELSEIF(IPAR(47).eq.4)THEN -c same as soft minijets - STR_mass = STR_mass_sea - ENDIF - IF(IPAR(72).eq.2.and.KINT.gt.1)THEN - STR_mass = STR_mass * PAR(118) - ENDIF - XMINA_SEA = 2.D0*STR_mass/SQS -c default for sea quarks: 1.0 , xmin@10GeV = 0.2 -c taken from COMMON s_cutoff or s_cflafr -c should be the same as min. string mass in SAMPLE_SOFT ! - -c dependence on number of interactions - IF(IPAR(72).eq.1.and.KINT.gt.1)THEN - XMINA_SEA = XMINA_SEA * PAR(118) - ENDIF - -C.. check if enough energy left to sample all partons - IF (1.D0-XJET.LT.(Nsea*XMINA_SEA+2.D0*XMINA))THEN - ICNT2 = ICNT2 + 1 - IF(ICNT2.le.10)THEN - IF(NDEBUG.gt.3)THEN - write(lun,*)' SAMPLE_PROJECTILE: rejection!' - write(lun,*)' too little energy to sample all partons!' - write(lun,*)' (NW,Ntot,Nval,Nsea,XMIN,XMIN*N', - & 'XREM,XALL,NCALL,ICNT:)',KINT,nval+nsea,Nval,nsea, - & 2*xmina,nsea*xmina_sea,1.D0-xjet, - & Nsea*XMINA_SEA+2*XMINA,NCALL,ICNT2 - IF(ICNT2.eq.10) write(lun,*)' last warning ! good luck..' - ENDIF - ENDIF - - IREJ = 2 - PAR(53) = PAR53_def - RETURN - ENDIF - - -C... sample sea partons -c if no additional partons need to be sampled -C jump straight to valence quarks - IF(Nsea.EQ.0) GOTO 100 - -C select sea quark model - IF(IPAR(47).eq.0.or.IPAR(47).eq.3.or.IPAR(47).eq.4.or. - & IPAR(47).eq.5.or.IPAR(47).eq.7)THEN - GAMMA = PAR(103) - IF(IPAR(73).eq.1.and.KINT.gt.1) GAMMA = PAR(119) - CALL SAMPLE_SEA_TOT - & (KRMNT,KINT,NSEA,GAMMA,XJET,STR_MASS,XSEAJET,XX) - - ELSEIF(IPAR(47).eq.1)THEN -c sample from 1/x individually then reject if too large - XREM = 0.D0 - XMINA2 = XMINA_SEA ** 2 - XMAX2 = 0.8D0**2 - ALPHA = 1.D0 - DO WHILE ( XREM .lt. 2*XMINA ) - XREM = 1.D0-XJET - IF(NDEBUG.gt.3) - & WRITE(LUN,*) ' N,XREM,XMINA,XMIN2,XMAX2,ALPHA', - & Nsea,XREM,XMINA_SEA,XMINA2,XMAX2,ALPHA - DO j=1,Nsea - jj = 2 + j - IF(KRMNT.eq.0) jj = 4+j - XX(jj) = XM2DIS(XMINA2,XMAX2,ALPHA) - IF(NDEBUG.gt.3) - & WRITE(LUN,*) ' J,X,XREM',JJ,XX(JJ),XREM - XREM = XREM - XX(jj) - ENDDO - ENDDO - XSEAJET = 1.D0-XREM - - ELSEIF(IPAR(47).eq.2.or.IPAR(47).eq.6)THEN -c sample from (1-x)**b / x with common mass constraint - XREM = 1.D0-XJET - XMAX = PAR(88) - ALPHA = PAR(85) - ASUP = PAR(86) - XQM = STR_mass - CALL SAMPLE_SEA_INDV(KRMNT,XMINA,XMINA_SEA,NSEA, - & XREM,ALPHA,ASUP,XQM,XMAX,XX,IR) - IF(IR.ne.0)THEN - IREJ = IR - PAR(53) = PAR53_def - RETURN - ENDIF - - XSEAJET = 1.D0-XREM - ENDIF - -C... sample sea flavor: u,d,s,c -c write to ifl after valences.. - DO J=1+Nval/2,KINT - j3 = 3+2*(j-1) - j4 = j3 + 1 -c turn on strange sea.. - IF(IPAR(29).eq.1)THEN - IF(IPAR(69).ne.0)THEN -c sample asymmetric u,d - IFL(j3) = MIN(2,1+INT((2.D0+PAR(114))*S_RNDM(KID))) -c sample strange - IFLS = 3*(INT((2+PAR(43))*S_RNDM(j3))/2) - IFL(j3) = MAX(IFL(j3),IFLS) - else - IFL(j3) = 1+INT((2.D0+PAR(43))*S_RNDM(j4)) - endif -c sample charm -c scale up for mesons - IF(IPAR(76).eq.1) XSCL=XSCL+(1-IABS(IBAR(KIDA)))*PAR(126) - IF(IFL(j3).eq.3.and.S_RNDM(kid).lt.PAR(97)*PAR(125)*XSCL) - & IFL(j3) = 4 - ELSE - IFL(j3) = INT(1.5D0+S_RNDM(KID)) - ENDIF - IFL(j4) = -IFL(j3) - IF(NDEBUG.gt.3) - & WRITE(LUN,*) ' flavor: JW,FLV1,FLV2',J,IFL(j3),IFL(j4) - -C... sample sea pt - 33 IF(IPAR(49).eq.1)THEN -c in-string pt for sea partons -c flavor and cm energy dependent avg, exponential dist. -c avg pt (defined in subroutine ptsetup ): -c u,d : PAR(46)+PAR(68)*log10(sqs/20.D0)**2 -c s: PAR(47)+PAR(70)*log10(sqs/20.D0)**2 -c diq: PAR(48)+PAR(69)*log10(sqs/20.D0)**2 - CALL PTDIS_4FLV (IFL(j3),PX(j3),PY(j3)) - PX(j4) = -PX(j3) - PY(j4) = -PY(j3) - - ELSEIF(IPAR(49).eq.2)THEN -c 'primordial' pt -c c.m. energy dependent avg, exponential -c same for all flavors -c avg: PAR(49)+PAR(69)*log10(sqs/20.)**2 - CALL PTDIS_4FLV (10,PX(j3),PY(j3)) - PX(j4) = -PX(j3) - PY(j4) = -PY(j3) - - ELSEIF(IPAR(49).eq.3)THEN -c constant pt - PX(j3) = EPS5 - PY(j3) = EPS5 - PX(j4) = -PX(j3) - PY(j4) = -PY(j3) - - ELSEIF(IPAR(49).eq.4)THEN -c sea pt, same as primordial but different params.. -c c.m. energy dependent avg, exponential -c same for all flavors -c avg: PAR(132) - CALL PTDIS_4FLV (30,PX(j3),PY(j3)) - PX(j4) = -PX(j3) - PY(j4) = -PY(j3) - ENDIF -c limit parton virtuality - PTS = MAX(PX(j3)**2+PY(j3)**2,EPS10) - IF((XX(j3)**2+XX(J4)**2)/PTS.lt.8.D0*PAR(122)/S) GOTO 33 - IF(NDEBUG.gt.3) - & WRITE(LUN,*)' pt: JW,PX,PY,pt',J,Px(j3),Py(j3),sqrt(pts) - ENDDO - -C... Prepare the valence partons - 100 XVAL=1.D0-XSEAJET - IF(ndebug.gt.3) - & write(lun,*) ' SAMPLE_PROJECTILE: val. fraction remaining:', - & XVAL - - IF(IPAR(47).eq.7)THEN -c no remnant, sample valence quarks - IF(KRMNT.eq.0) THEN -c enough momentum left? - IF (XVAL.LT.XMINA) goto 20 ! reject sea kinematics - ELSE -c sample remnant - IF(IPAR(53).eq.1)THEN -c momentum dis: x**alpha - IF(S_RNDM(KID).gt.XVAL**(PAR(100)+1)) GOTO 22 - ENDIF -c split remnant momentum into partons, just to fill slots - - ENDIF - ELSE - IF(KRMNT.eq.0.or.IPAR(47).lt.4)THEN - IF (XVAL.LT.XMINA) goto 20 ! reject sea kinematics - ENDIF -c remnant momentum fraction - IF(KRMNT.ne.0.and.IPAR(53).eq.1)THEN - IF(S_RNDM(KID).gt.XVAL**(PAR(100)+1)) GOTO 22 - ENDIF - ENDIF -c valence quarks are in 1,2 of IFL,XX etc. - IDXVAL = 3 - IF(KRMNT.ne.0) IDXVAL = 1 - CALL HSPLI (KID,IFL(IDXVAL),IFL(IDXVAL+1)) - 110 CHI = CHIDIS(KID,IFL(IDXVAL),IFL(IDXVAL+1)) - XX(IDXVAL) = MAX(CHI*XVAL,XMINA) - XX(IDXVAL) = MIN(XX(IDXVAL),XVAL-XMINA) -C FOR MESONS, SPLIT ENERGY SYMMETRICALLY. - IF (IABS(KID).LT.13.AND.S_RNDM(0).LE.0.5D0) - & XX(IDXVAL)=XVAL-XX(IDXVAL) - XX(IDXVAL+1)=XVAL-XX(IDXVAL) - IF(ndebug.gt.3) - & write(lun,*) ' SAMPLE_PROJECTILE: val. sampled (x1,x2):', - & XX(IDXVAL),XX(IDXVAL+1) -c for baryons force diq distribution - IF(IBAR(IABS(KID)).ne.0.and.IPAR(47).ne.7)THEN - IF(IPAR(52).eq.1)THEN - GAMDIQ=PAR(95) - IF(S_RNDM(KID).gt.XX(IDXVAL+1)**(GAMDIQ+1)) GOTO 110 - ELSE - IF(KRMNT.eq.0.or.IPAR(47).lt.4.and.IPAR(53).eq.0)THEN -c force diquark distribution - GAMDIQ=PAR(95) - IF(S_RNDM(KID).gt.XX(IDXVAL+1)**(GAMDIQ+1)) GOTO 20 - ENDIF - ENDIF - ENDIF -C... val. quark transverse momentum - CALL PTDIS_4FLV (10,PX(IDXVAL),PY(IDXVAL)) - PX(IDXVAL+1) = -PX(IDXVAL) - PY(IDXVAL+1) = -PY(IDXVAL) - IF(ndebug.gt.3) - & write(lun,*) ' SAMPLE_PROJECTILE: val. pt (px,py):', - & PX(IDXVAL),PY(IDXVAL) - -C... exchange flavor between central strings and remnant -c there is one pair of strings for each interaction with another hadron -c in general allowed for both flavors but diquarks usually strongly suppressed -c Xchg : prob. of flv exchange between strgs and rmnt - IF(KRMNT.ne.0)THEN - do idx=1,2 - iswtd = 0 - i = 1 - XSUPP = 1.D0 - IF(iabs(ifl(idx)).gt.10)THEN -c suppress exchange of diq: prob_exchange = prob0 * xsupp - XSUPP = PAR(83) - ELSEIF(IPAR(46).eq.2)THEN -c suppress exchange for fast quark ( usually in mesons ) - IF(xx(idx).gt.xx(3-idx)) XSUPP = PAR(139) - ENDIF - DO WHILE (ISWTD.eq.0.and.i.le.KINT) -c sea flavor index - jj = idx+2*i -c forbid exchange for charmed hadrons if sea pair is charmed too -c needed to avoid double charmed particles - XSUPP1 = XSUPP - IF(IABS(KID).gt.50.and.IABS(IFL(JJ)).eq.4) XSUPP1 = 0.D0 - if(S_RNDM(I).lt.XCHG*XSUPP1) THEN -c exchange flavor between remnant and sea - CALL ISWTCH_LMNTS(ifl(jj),ifl(idx)) -c also exchange momentum fraction - IF(IPAR(46).ne.0) CALL SWTCH_LMNTS(xx(jj),xx(idx)) -c change flavor id accordingly, i.e. reassamble remnant from new flavor - IF(IPAR(58).eq.0)THEN -c combine to any hadron that matches flavor wise, ignoring (iso)spin - CALL SIB_I4FLAV(ifl(1),ifl(2),idum,idum2,KID1) - ELSEIF(IPAR(58).eq.1)THEN -c combine to lightest hadron - KID1 = IMRG2HAD(IFL(1),IFL(2)) - ELSEIF(IPAR(58).eq.2.or.IPAR(58).eq.3)THEN -c combine to any hadron that matches flavor wise, ignoring (iso)spin -c set vector meson rate - PAR5_def = PAR(5) - PAR(5) = PAR(104) -c set strange vector rate - PAR6_def = PAR(6) - PAR(6) = PAR(121) -c set spin3/2 vs spin1/2 rate - PAR7_def = PAR(7) - PAR(7) = PAR(105) -c set rho / omega-phi rate - PAR143_def = PAR(143) - if(ibar(iabs(kb)).eq.0.and.IPAR(85).eq.1) - & PAR(143) = PAR(145) - irnk = 0 - IF(IPAR(58).eq.3) irnk = 1 - CALL SIB_I4FLAV(ifl(1),ifl(2),irnk,idum2,KID1) - PAR(5) = PAR5_def - PAR(6) = PAR6_def - PAR(7) = PAR7_def - PAR(143) = PAR143_def - -c reject spin1,isospin singlett - IF(KID1.eq.32.and.PAR(111).gt.S_RNDM(KID1)) - & KID1 = 27 - ENDIF - iswtd = 1 - endif - i = i + 1 - ENDDO - enddo - ENDIF - IF(ndebug.gt.3)THEN - WRITE(LUN,*)' SAMPLE_PROJECTILE: rmnt PID,NTRY: ',KID1,ITRY(3) - WRITE(LUN,*)' SAMPLE_PROJECTILE: output: I,FLV,PX,PY,X,XSUM' - ENDIF - XSUM = XJET - DO j=IDXVAL,2*(KINT+Krmnt)+2*(1-Krmnt) - XSUM = XSUM + XX(j) - IF(NDEBUG.gt.3) WRITE(LUN,*) j,IFL(j),PX(J),PY(J),XX(j),XSUM - ENDDO - IF(ABS(XSUM-1.D0).gt.EPS3) THEN - WRITE(LUN,*)' SAMPLE_PROJECTILE: parton sum incomplete!', - & '(ID,XSUM,NCALL):' , KID1,XSUM, NCALL,' aborting..' - CALL SIB_REJECT('SAMPLE_PROJECTIL') - ENDIF - IREJ = 0 - - END -C======================================================================= - - SUBROUTINE DECSIB - -C----------------------------------------------------------------------- -C...Decay all unstable particle in Sibyll -C. decayed particle have the code increased by 10000 -C -C changed to allow for multiple calls to DECSIB in one event -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - DOUBLE PRECISION CBR - INTEGER KDEC,LBARP,IDB - COMMON /S_CSYDEC/ CBR(223+16+12+8), KDEC(1338+6*(16+12+8)), - & LBARP(99), IDB(99) -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - INTEGER LLIST1 - COMMON /S_PLIST1/ LLIST1(8000) - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - INTEGER LRNK - COMMON /SIB_RNK/ LRNK(8000) - DIMENSION P0(5), LL(10), PD(10,5) - SAVE - -c call pythia decay routine -c IF(IPAR(44).eq.1) CALL PYDEC - -c decay with sibyll - NN = 1 - IF(IPAR(44).ne.1)THEN - DO J=1,NP - LLIST1(J) = 0 - ENDDO - ENDIF - DO WHILE (NN .LE. NP) - L= LLIST(NN) - LA = IABS(L) - if(LA.lt.100) then - IF (IDB(LA) .GT. 0) THEN - DO K=1,5 - P0(K) = P(NN,K) - ENDDO - CALL DECPAR (L,P0,ND,LL,PD) - LLIST(NN) = LLIST(NN)+ISIGN(10000,LLIST(NN)) - DO J=1,ND - NP = NP+1 - if(NP.gt.8000) then - write(LUN,'(1x,a,2i8)') - & ' DECSIB: no space left in S_PLIST (NP,ND):',NP,ND - NP = NP-1 - return - endif - DO K=1,5 - P(NP,K) = PD(J,K) - ENDDO - LLIST(NP)=LL(J) - LLIST1(NP)=NN - LRNK(NP)=LRNK(NN) - NPORIG(NP)= NPORIG(NN) - niorig(NP)= NIORIG(NN) - NFORIG(NP) = L - ENDDO - ENDIF - endif - NN = NN+1 - ENDDO - -c CALL SIB_LIST(20) - - END -C======================================================================= - - SUBROUTINE SIB_SIGMA_HP - & (L0,SQS,SIGT,SIGEL,SIGINEL,SIGDIF,SLOPE,RHO) - -C----------------------------------------------------------------------- -C Hadron-proton cross sections, taken from interpolation table -C calculated by SIBYLL_INI -C -C input: L 1 proton-proton -C 2 pi-proton -C 3 K-proton -C SQS sqrt(s) -C -C output: SIGT total cross section (mb) -C SIGEL elastic cross section (mb) -C SIGINEL inelastic cross section (mb) -C SIGDIF diffraction dissociation CS (mb) -C SLOPE elastic slope parameter (GeV^-2) -C RHO real/imaginary part of forward amplitude -C----------------------------------------------------------------------- -Cf2py integer, intent(in) :: L0 -Cf2py double precision, intent(in) :: SQS -Cf2py double precision, intent(out) :: SIGT,SIGEL,SIGINEL,SLOPE,RHO -Cf2py double precision(3), intent(out) :: SIGDIF - IMPLICIT NONE - -c external types - DOUBLE PRECISION SQS,SIGT,SIGEL,SIGINEL,SIGDIF,SLOPE,RHO - DIMENSION SIGDIF(3) - INTEGER L0 - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - - DOUBLE PRECISION SSIG,PJETC,SSIGN,SSIGNSD,SSIGNEL,ALINT,ASQSMIN, - & ASQSMAX,DASQS - INTEGER NSQS - COMMON /S_CCSIG/ SSIG(61,3), PJETC(0:NS_max,0:NH_max,61,2), - & SSIGN(61,3,3), SSIGNSD(61,3,3), SSIGNEL(61,3,3), - & ALINT(61,3,3), ASQSMIN, ASQSMAX, DASQS, NSQS - DOUBLE PRECISION SSIG_TOT,SSIG_SD1,SSIG_SD2,SSIG_DD,SSIG_B, - & SSIG_RHO - COMMON /S_CCSIG2/ SSIG_TOT(61,3),SSIG_SD1(61,3),SSIG_SD2(61,3), - & SSIG_DD(61,3),SSIG_B(61,3),SSIG_RHO(61,3) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - -c internal type declarations - DOUBLE PRECISION T,AL - INTEGER LL,L,J1 - DIMENSION LL(39) - SAVE - DATA LL /5*0,3*2,4*3,2*1,19*0,6*1/ - - - L = L0 - IF(NSQS.LE.0) THEN - WRITE(LUN,'(//,1X,A)') - & ' SIB_SIGMA_HP: interpolation table not initialized.' - STOP - ENDIF - IF(IABS(L).gt.39)THEN - WRITE(LUN,*) - & ' SIB_SIGMA_HP: unknown beam particle!',L - STOP - ENDIF - IF(L.GT.3) L=LL(IABS(L)) - IF(L.EQ.0)THEN - WRITE(LUN,*) - & ' SIB_SIGMA_HP: unknown beam particle!', L - STOP - ENDIF - - AL = LOG10(SQS) - J1 = INT((AL-1.D0)*10.D0 + 1) - if((j1.lt.1).or.(j1.gt.NSQS)) then - if(ndebug.gt.0) - & write (LUN,'(1x,a,i3,1p,e12.3)') - & ' SIB_SIGMA_HP: energy out of range ',L,sqs - endif - if((j1.lt.1).or.(j1.ge.NSQS)) then - J1 = min(J1,NSQS-1) - J1 = max(J1,1) - endif - T = (AL-1.D0)*10.D0 - DBLE(J1-1) - SIGT = SSIG_TOT(J1,L)*(1.D0-T) + SSIG_TOT(J1+1,L)*T - SIGINEL = SSIG(J1,L)*(1.D0-T) + SSIG(J1+1,L)*T - SIGEL = SIGT-SIGINEL - SIGDIF(1) = SSIG_SD1(J1,L)*(1.D0-T) + SSIG_SD1(J1+1,L)*T - SIGDIF(2) = SSIG_SD2(J1,L)*(1.D0-T) + SSIG_SD2(J1+1,L)*T - SIGDIF(3) = SSIG_DD(J1,L)*(1.D0-T) + SSIG_DD(J1+1,L)*T - SLOPE = SSIG_B(J1,L) *(1.D0-T) + SSIG_B(J1+1,L)*T - RHO = SSIG_RHO(J1,L) *(1.D0-T) + SSIG_RHO(J1+1,L)*T - - END - -C======================================================================= - - SUBROUTINE SIB_SIGMA_HP2 - + (L,SQS,SIGT,SIGEL,SIGINEL,SIGDIF,SLOPE,RHO) - -C----------------------------------------------------------------------- -C Hadron-proton cross sections, taken from interpolation table -C calculated by SIBYLL_INI -C -C input: L 1 proton-proton -C 2 pi-proton -C 3 K-proton -C SQS sqrt(s) -C -C output: SIGT total cross section (mb) -C SIGEL elastic cross section (mb) -C SIGINEL inelastic cross section (mb) -C SIGDIF diffraction dissociation CS (mb) -C split in high and low mass !! -C ( taken from S_CCSIG3 ) -C SLOPE elastic slope parameter (GeV^-2) -C RHO real/imaginary part of forward amplitude -C----------------------------------------------------------------------- - IMPLICIT NONE -c external types - DOUBLE PRECISION SQS,SIGT,SIGEL,SIGINEL,SIGDIF,SLOPE,RHO - DIMENSION SIGDIF(3,2) - INTEGER L - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - - DOUBLE PRECISION SSIG,PJETC,SSIGN,SSIGNSD,SSIGNEL,ALINT,ASQSMIN, - & ASQSMAX,DASQS - INTEGER NSQS - COMMON /S_CCSIG/ SSIG(61,3), PJETC(0:NS_max,0:NH_max,61,2), - & SSIGN(61,3,3), SSIGNSD(61,3,3), SSIGNEL(61,3,3), - & ALINT(61,3,3), ASQSMIN, ASQSMAX, DASQS, NSQS - DOUBLE PRECISION SSIG_TOT,SSIG_SD1,SSIG_SD2,SSIG_DD,SSIG_B, - & SSIG_RHO - COMMON /S_CCSIG2/ SSIG_TOT(61,3),SSIG_SD1(61,3),SSIG_SD2(61,3), - & SSIG_DD(61,3),SSIG_B(61,3),SSIG_RHO(61,3) - DOUBLE PRECISION SSIG_SD1LM,SSIG_SD1HM,SSIG_SD2LM,SSIG_SD2HM, - & SSIG_DDLM,SSIG_DDHM - COMMON /S_CCSIG3/ SSIG_SD1LM(61,3),SSIG_SD1HM(61,3), - & SSIG_SD2LM(61,3),SSIG_SD2HM(61,3), - & SSIG_DDLM(61,3),SSIG_DDHM(61,3) - -c internal types - INTEGER J1 - DOUBLE PRECISION T,AL - SAVE - - IF(NSQS.LE.0) THEN - WRITE(LUN,'(//,1X,A)') - & ' SIB_SIGMA_HP2: interpolation table not initialized.' - STOP - ENDIF - - AL = dLOG10(SQS) - J1 = INT((AL - 1.D0)*10.D0 + 1) - if((j1.lt.1).or.(j1.gt.NSQS)) then - if(ndebug.gt.0)write(LUN,'(1x,a,i3,1p,e12.3)') - & ' SIB_SIGMA_HP2: energy out of range ',L,sqs - endif - if((j1.lt.1).or.(j1.ge.NSQS)) then - J1 = min(J1,NSQS-1) - J1 = max(J1,1) - endif - T = (AL-1.D0)*10.D0 - DBLE(J1-1) - SIGT = SSIG_TOT(J1,L)*(1.D0-T) + SSIG_TOT(J1+1,L)*T - SIGINEL = SSIG(J1,L)*(1.D0-T) + SSIG(J1+1,L)*T - SIGEL = SIGT-SIGINEL - SIGDIF(1,1) = SSIG_SD1LM(J1,L)*(1.D0-T) + SSIG_SD1LM(J1+1,L)*T - SIGDIF(1,2) = SSIG_SD1HM(J1,L)*(1.D0-T) + SSIG_SD1HM(J1+1,L)*T - SIGDIF(2,1) = SSIG_SD2LM(J1,L)*(1.D0-T) + SSIG_SD2LM(J1+1,L)*T - SIGDIF(2,2) = SSIG_SD2HM(J1,L)*(1.D0-T) + SSIG_SD2HM(J1+1,L)*T - SIGDIF(3,1) = SSIG_DDLM(J1,L)*(1.D0-T) + SSIG_DDLM(J1+1,L)*T - SIGDIF(3,2) = SSIG_DDHM(J1,L)*(1.D0-T) + SSIG_DDHM(J1+1,L)*T - SLOPE = SSIG_B(J1,L) *(1.D0-T) + SSIG_B(J1+1,L)*T - RHO = SSIG_RHO(J1,L) *(1.D0-T) + SSIG_RHO(J1+1,L)*T - - END - -C======================================================================= - - SUBROUTINE SIB_SIGMA_HAIR (L,SQS,SIGprod,SIGbdif) - -C----------------------------------------------------------------------- -C Hadron-air cross sections, taken from interpolation table -C calculated by SIBYLL_INI -C -C input: L 1 proton-air -C 2 pi-air -C 3 K-air -C SQS sqrt(s) -C -C output: SIGprod particle production cross section (mb) -C SIGbdif q.ela and ela beam diff. cross section -C----------------------------------------------------------------------- -Cf2py integer, intent(in) :: L -Cf2py double precision, intent(in) :: SQS -Cf2py double precision, intent(out) :: SIGprod,SIGbdif - IMPLICIT NONE - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - - DOUBLE PRECISION SSIG,PJETC,SSIGN,SSIGNSD,SSIGNEL,ALINT,ASQSMIN, - & ASQSMAX,DASQS - INTEGER NSQS - COMMON /S_CCSIG/ SSIG(61,3), PJETC(0:NS_max,0:NH_max,61,2), - & SSIGN(61,3,3), SSIGNSD(61,3,3), SSIGNEL(61,3,3), - & ALINT(61,3,3), ASQSMIN, ASQSMAX, DASQS, NSQS - -c external - DOUBLE PRECISION SQS,SIGPROD,SIGBDIF - INTEGER L - -c internal - DOUBLE PRECISION AL,T - INTEGER J1 - SAVE - - IF(NSQS.LE.0) THEN - WRITE(LUN,'(//,1X,A)') - & ' SIB_SIGMA_HAIR: interpolation table not initialized.' - STOP - ENDIF - - AL = LOG10(SQS) - J1 = INT((AL - 1.D0)*10.D0 + 1) - if((j1.lt.1).or.(j1.gt.NSQS)) then - if (ndebug .gt. 0) - & write (LUN,'(1x,a,i3,1p,e12.3)') - & ' SIB_SIGMA_HAIR: energy out of range ',L,sqs - endif - if((j1.lt.1).or.(j1.ge.NSQS)) then - J1 = min(J1,NSQS-1) - J1 = max(J1,1) - endif - T = (AL-1.D0)*10.D0 - DBLE(J1-1) - SIGprod = SSIGN(J1,L,1)*(1.D0-T) + SSIGN(J1+1,L,1)*T - SIGbdif = SSIGNSD(J1,L,1)*(1.D0-T) + SSIGNSD(J1+1,L,1)*T - - END -C======================================================================= - SUBROUTINE SIB_SIGMA_HNUC (L,IAT,SQS,SIGprod,SIGbdif,SIGela) - -C----------------------------------------------------------------------- -C calculate Hadron-nucleus cross sections -C -C input: L 1 proton-nuc -C 2 pi-nuc -C 3 K-nuc -C IAT 0-18 mass number of target nucleus -C (beyond A=18 nuclear profiles are inaccurate) -C SQS sqrt(s) -C -C output: SIGprod particle production cross section (mb) -C SIGbdif q.ela and ela beam diff. cross section -C SIGela elastic cross section -C----------------------------------------------------------------------- -Cf2py integer, intent(in) :: L,IAT -Cf2py double precision, intent(in) :: SQS -Cf2py double precision, intent(out) :: SIGprod,SIGbdif,SIGela - IMPLICIT NONE - - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - DOUBLE PRECISION SSIG,PJETC,SSIGN,SSIGNSD,SSIGNEL,ALINT,ASQSMIN, - & ASQSMAX,DASQS - INTEGER NSQS - COMMON /S_CCSIG/ SSIG(61,3), PJETC(0:NS_max,0:NH_max,61,2), - & SSIGN(61,3,3), SSIGNSD(61,3,3), SSIGNEL(61,3,3), - & ALINT(61,3,3), ASQSMIN, ASQSMAX, DASQS, NSQS - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - DOUBLE PRECISION SIGT,SIGEL,SIGINEL,SIGQE,SIGSD,SIGQSD,SIGPPT, - & SIGPPEL,SIGPPSD - INTEGER ITG - COMMON /NUCSIG/ SIGT,SIGEL,SIGINEL,SIGQE,SIGSD, - + SIGQSD,SIGPPT,SIGPPEL,SIGPPSD,ITG - -c external - DOUBLE PRECISION SQS,SIGPROD,SIGBDIF,SIGELA - INTEGER L,IAT - -c internal - DOUBLE PRECISION ALAM,T,AL - INTEGER IPARM,ICSMOD,IK,J1 - SAVE - IF(NSQS.LE.0) THEN - WRITE(LUN,'(//,1X,A)') - & ' SIB_SIGMA_HNUC: interpolation table not initialized.' - STOP - ENDIF - IF(IAT.eq.0.or.IAT.eq.14.or.IAT.eq.16)THEN -c read cross section from table - IF(IAT.eq.0) THEN - IK=1 - ELSEIF(IAT.eq.14)THEN - IK=2 - ELSE - IK=3 - ENDIF - AL = LOG10(SQS) - J1 = INT((AL - 1.D0)*10.D0 + 1) - if((j1.lt.1).or.(j1.gt.NSQS)) then - if (ndebug .gt. 0) - & write (LUN,'(1x,a,i3,1p,e12.3)') - & ' SIB_SIGMA_HNUC: energy out of range ',L,sqs - endif - if((j1.lt.1).or.(j1.ge.NSQS)) then - J1 = min(J1,NSQS-1) - J1 = max(J1,1) - endif - T = (AL-1.D0)*10.D0 - DBLE(J1-1) - SIGprod = SSIGN(J1,L,IK)*(1.D0-T) + SSIGN(J1+1,L,IK)*T - SIGbdif = SSIGNSD(J1,L,IK)*(1.D0-T) + SSIGNSD(J1+1,L,IK)*T - SIGela = SSIGNEL(J1,L,IK)*(1.D0-T) + SSIGNEL(J1+1,L,IK)*T - ELSEIF(IAT.lt.19)THEN -c calculate cross section - IF(ndebug.gt.0)THEN - WRITE(LUN,'(1X,A,2I4,F8.2)') - & 'SIB_SIGMA_HNUC: L,IAT,SQS:',L,IAT,SQS - ENDIF -c calculate hadron - nucleus cross section -c dummy arg, coupling derived from dif xsctn - ALAM = 1.D0 -c use Sibyll p-p cross section as input - ICSMOD = 1 -c use Goulianos param. for inel. coupling param. - IPARM = 2 - CALL SIG_HAD_NUC(L,IAT,SQS,ALAM,ICSMOD,IPARM) -C particle production cross section - SIGprod = SIGT-SIGQE -C quasi elastic + elastic singl. diff cross section - SIGbdif = SIGQSD -c elastic cross section - SIGela = SIGel - if(ndebug.gt.0)THEN - WRITE(LUN,'(1X,A,3F8.2)') - & 'SIB_SIGMA_HNUC: SIGprod, SIGbdif, ALAM:', - & SIGprod, SIGbdif, ALAM - ENDIF - ELSE - WRITE(LUN,'(//,1X,A)') - & ' SIB_SIGMA_HNUC: number of target nucleons too large!', - & ' (0<=IAT<=18)' - SIGprod = -1.D0 - ENDIF - RETURN - END - -C---------------------------------------------------------------------- -C sampling routines for hard partons in SIBYLL -C includes GRV98 pdf table and initialization routines -C---------------------------------------------------------------------- -C======================================================================= - - SUBROUTINE SAMPLE_HARD (L,X1,X2,PT) - -C----------------------------------------------------------------------- -C...Routine for sampling the kinematical variables -C. that determine a jet-jet (gluon - gluon) system (x1,x2, pT) -C. from the differential cross section: -C. d3sigma/(dx1 dx2 dpT) -C. This version assumes the `single parton approximation' -C. INPUT: L=1 incident proton, L=2 incident pi -C. NPLD: position on parton stack -C. OUTPUT: gluon 4momenta -C----------------------------------------------------------------------- - IMPLICIT NONE - -c external types - INTEGER L - DOUBLE PRECISION X1,X2,PT - - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN -c internal types - DOUBLE PRECISION Z1,Z2,SIG,S_RNDM,Q2,ZSAMPLE - SAVE - - IF(ndebug.gt.2)then - write(lun,*) ' SAMPLE_HARD: (SQS,S,PTmin,Xmin,Zmin)', - & SQS,S,PTmin,Xmin,Zmin - endif - - 100 Z1=ZSAMPLE (ZMIN,L) ! beam L=1,2 for proton or pion - Z2=ZSAMPLE (ZMIN,1) ! target always a nucleon - SIG=1.D0-XMIN*dEXP(-Z1-Z2) - IF (SIG .LT. S_RNDM(0)) GOTO 100 - X1=dEXP(Z1) - X2=dEXP(Z2) - IF (X1.gt.0.9D0.or.X2.gt.0.9D0) GOTO 100 - Q2=PTmin**2/(1.D0-S_RNDM(L)*SIG) - IF(Q2.gt.S*X1*X2) goto 100 - PT=dSQRT(Q2*(1.D0-Q2/(S*X1*X2))) - - IF(ndebug.gt.2)then - write(lun,*) ' SAMPLE_HARD: (X1,X2,PT)', - & X1,X2,PT - endif - - RETURN - END - -C======================================================================= - - FUNCTION ZSAMPLE (ZMIN,L) - -C----------------------------------------------------------------------- -C...This function returns as output a value z=log(x) -C. distributed as f(x) = g(x) + 4/9 *(q(x) + qbar(x)) -C. from a minimum value ZMIN to 0, -C. for a proton (L=1) or a pi (L=2) -C. needs to be initialised with: CALL ZSAMPLE_INI -C..................................................... - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - COMMON /S_CZGEN/ XA(2),XB(2),XMAX,ZA(2),ZB(2),ZMAX, - + DX(2),DZ(2),APART(2),FFA(2),FFB(2), - + DFX(2),DFZ(2),XX(200,2),ZZ(200,2),FFX(200,2),FFZ(200,2), - + NX,NZ - PARAMETER (b=0.268D0) - PARAMETER (bpi=3.7D0) - PARAMETER (cpi=0.698D0) - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - SAVE - - F = PART_INT(ZMIN,L)*S_RNDM(0) - IF (F .GE. FFA(L)) THEN - IF(IPAR(8).EQ.0)THEN - ZSAMPLE = ZA(L) - (F-FFA(L))/APART(L) - ELSE - if(L.eq.1) then - ZSAMPLE = -1.D0/b * dLOG( 1.D0 - F / APART(L) ) - else - ZSAMPLE = -1.D0 * ( (F - cpi)/APART(L) )**(1.D0/bpi) - endif - ENDIF - ELSE IF (F .GE. FFB(L)) THEN - JF = INT((F-FFB(L))/DFZ(L) + 1.D0) - JF = min(JF,199) - F0 = FFB(L) + DFZ(L)*DBLE(JF-1) - T = (F-F0)/DFZ(L) - ZSAMPLE = ZZ(JF,L)*(1.D0-T)+ZZ(JF+1,L)*T - ELSE - JF = INT(F/DFX(L)+1.D0) - JF = min(JF,199) - F0 = DFX(L)*DBLE(JF-1) - T = (F-F0)/DFX(L) - X = XX(JF,L)*(1.D0-T)+XX(JF+1,L)*T - ZSAMPLE = dLOG(X) - ENDIF - - RETURN - END - -C======================================================================= - - FUNCTION PART_INT (ZMIN,L) - -C----------------------------------------------------------------------- -C...This function returns as output the integral of -C. the parton structure function: -C. f(x) = g(x) + 4/9 *(q(x) + qbar(x)) -C. from xmin = exp(zmin) to 1 -C. for a proton (L=1) or a pi (L=2) -C. needs to be initialised with: CALL ZSAMPLE_INI -C..................................................... - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - COMMON /S_CZGEN/ XA(2),XB(2),XMAX,ZA(2),ZB(2),ZMAX, - + DX(2),DZ(2),APART(2),FFA(2),FFB(2), - + DFX(2),DFZ(2),XX(200,2),ZZ(200,2),FFX(200,2),FFZ(200,2), - + NX,NZ - DOUBLE PRECISION b,bpi,cpi - PARAMETER (b=0.268D0) - PARAMETER (bpi=3.7D0) - PARAMETER (cpi=0.698D0) - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - SAVE - - IF (ZMIN .LT. ZA(L)) THEN - IF(IPAR(8).EQ.0)THEN - PART_INT = FFA(L) + APART(L) * (ZA(L) - ZMIN) - ELSE - if(L.eq.1) then - PART_INT = APART(L) * ( 1.D0 - dEXP(-b*ZMIN) ) - else - PART_INT = APART(L) * ( -ZMIN )**bpi + cpi - endif - ENDIF - ELSE IF (ZMIN .LT. ZB(L)) THEN - JZ = INT((ZB(L)-ZMIN)/DZ(L)+1.D0) - JZ = min(JZ,199) - Z0 = ZB(L)-DZ(L)*DBLE(JZ-1) - T = (Z0-ZMIN)/DZ(L) - PART_INT = FFZ(JZ,L)*(1.D0-T) + FFZ(JZ+1,L)*T - - ELSE - X = EXP(ZMIN) - JX = INT((XMAX-X)/DX(L)+1.D0) - JX = min(JX,199) - X0 = XMAX-DX(L)*DBLE(JX-1) - T = (X0-X)/DX(L) - PART_INT = FFX(JX,L)*(1.D0-T) + FFX(JX+1,L)*T - - ENDIF - RETURN - END - -C======================================================================= - - SUBROUTINE GRV_INI - -C----------------------------------------------------------------------- -C...This subroutine initializes the COMMON block -C used for sampling z, according to the GRV98LO -C pdf set -C.................................................. - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - COMMON /S_CZGEN/ XA(2),XB(2),XMAX,ZA(2),ZB(2),ZMAX, - + DX(2),DZ(2),APART(2),FFA(2),FFB(2), - + DFX(2),DFZ(2),XX(200,2),ZZ(200,2),FFX(200,2),FFZ(200,2), - + NX,NZ - DOUBLE PRECISION b,bpi,cpi - PARAMETER (b=0.268D0) - PARAMETER (bpi=3.7D0) - PARAMETER (cpi=0.698D0) - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - SAVE - - IPAR(8) = 1 - - XA(1) = 1.D-06 - XB(1) = 1.D-01 - - XA(2) = 1.D-04 - XB(2) = 1.D-01 - - XMAX = 0.8D0 - ZMAX = dLOG(XMAX) - NX = 200 - NZ = 200 - - DO L=1,2 - - ZA(L) = dLOG(XA(L)) - ZB(L) = dLOG(XB(L)) - DX(L) = (XMAX-XB(L))/DBLE(NX) - DZ(L) = (ZB(L)-ZA(L))/DBLE(NZ) - -C large x: interpolation in x - FFX(1,L) = 0.D0 - DO J=2,NX - X = XMAX - DX(L)*(DBLE(J)-1.D0) - G = PARTON(X,L)/X - FFX(J,L) = FFX(J-1,L)+G*DX(L) - ENDDO - CALL INVERT_ARRAY (FFX(1,L),XMAX,-DX(L),NX,XX(1,L),FMIN,DFX(L)) - -C small x: interpolation in log(x) - FFZ(1,L) = FFX(NX,L) - DO J=2,NZ - Z = ZB(L) - DZ(L)*(DBLE(J)-1.D0) - X = dEXP(Z) - G = PARTON(X,L) - FFZ(J,L) = FFZ(J-1,L)+G*DZ(L) - ENDDO - CALL INVERT_ARRAY(FFZ(1,L),ZB(L),-DZ(L),NZ,ZZ(1,L),FMIN,DFZ(L)) - FFA(L) = FFZ(NZ,L) - FFB(L) = FFX(NX,L) - -C very small x: f(x) = A/x**b b=1.268 - IF(L.eq.1) THEN - APART(L) = FFA(L) / ( 1.D0 - dEXP(-b*ZA(L)) ) - ELSE - APART(L) = ( FFA(L) - cpi ) / ( -ZA(L) )**bpi - ENDIF - ENDDO - - RETURN - END - -C======================================================================= - - SUBROUTINE ZSAMPLE_INI - -C----------------------------------------------------------------------- -C...This subroutine initialise the generation of -C. z = log(x) for the generation of z according -C. to the structure functions -C.................................................. - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - COMMON /S_CZGEN/ XA(2),XB(2),XMAX,ZA(2),ZB(2),ZMAX, - + DX(2),DZ(2),APART(2),FFA(2),FFB(2), - + DFX(2),DFZ(2),XX(200,2),ZZ(200,2),FFX(200,2),FFZ(200,2), - + NX,NZ - SAVE - - IPAR(8) = 0 - - XA(1) = 1.D-04 - XB(1) = 1.D-01 - XMAX = 0.8D0 - ZA(1) = dLOG(XA(1)) - ZB(1) = dLOG(XB(1)) - ZMAX = dLOG(XMAX) - NX = 200 - NZ = 200 - DX(1) = (XMAX-XB(1))/DBLE(NX-1) - DZ(1) = (ZB(1)-ZA(1))/DBLE(NZ-1) - - XA(2) = 1.D-04 - XB(2) = 1.D-01 - XMAX = 0.8D0 - ZA(2) = dLOG(XA(2)) - ZB(2) = dLOG(XB(2)) - ZMAX = dLOG(XMAX) - NX = 200 - NZ = 200 - DX(2) = (XMAX-XB(2))/DBLE(NX-1) - DZ(2) = (ZB(2)-ZA(2))/DBLE(NZ-1) - - DO L=1,2 - -C very small x: f(x) = A/x - APART(L) = PARTON(0.D0,L) - -C large x: interpolation in x - FFX(1,L) = 0.D0 - DO J=2,NX - X = XMAX - DX(L)*(DBLE(J)-0.5D0) - G = PARTON(X,L)/X - FFX(J,L) = FFX(J-1,L)+G*DX(L) - ENDDO - CALL INVERT_ARRAY (FFX(1,L),XMAX,-DX(L),NX,XX(1,L),FMIN,DFX(L)) - -C small x: interpolation in log(x) - FFZ(1,L) = FFX(NX,L) - DO J=2,NZ - Z = ZB(L) - DZ(L)*(DBLE(J)-0.5D0) - X = dEXP(Z) - G = PARTON(X,L) - FFZ(J,L) = FFZ(J-1,L)+G*DZ(L) - ENDDO - CALL INVERT_ARRAY(FFZ(1,L),ZB(L),-DZ(L),NZ,ZZ(1,L),FMIN,DFZ(L)) - FFA(L) = FFZ(NZ,L) - FFB(L) = FFX(NX,L) - - ENDDO - RETURN - END - -C======================================================================= - - FUNCTION PARTON(X,L) - -C----------------------------------------------------------------------- -C...This function returns the structure function -C. f(x) = x * [ g(x) + 4/9 *(q(x) + qbar(x)) ] -C. for a proton. -C................................................ - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - PARAMETER (beta=1.925978D0) - SAVE - DATA NOUTP /0/ - -c effective scale - Q2inp = PAR(22) - IF (L .EQ. 2) GOTO 1000 - - IF(IPAR(8).eq.0) THEN -C... Eichten et al. (set 1) -c tp060203 100 uv = 1.78 * x**0.5 * (1.-x**1.51)**3.5 - uv = 1.78D0 * x**0.5D0 * (1.D0-x**1.51D0)**3.5D0 - dv = 0.67D0 * x**0.4D0 * (1.D0-x**1.51D0)**4.5D0 - us = 0.182D0 * (1.D0-x)**8.54D0 - ss = 0.081D0 * (1.D0-x)**8.54D0 - qq0 = uv + dv + 4.D0*us + 2.D0*ss - glu0 = (2.62D0 + 9.17D0*x)* (1.D0-x)**5.9D0 - ELSE - IF( NOUTP.eq.0 ) print *,' using GRV pdf set' - IF( NOUTP.eq.0 ) print *,' Q2 scale in pdf:',Q2INP - NOUTP = 1 - - CALL SIB_DOR98LO (X, Q2inp, UV, DV, US, DS, SS, GL) - qq0 = uv + dv + 4.D0* (us + ds) + 2.D0*ss - glu0 = gl - ENDIF - parton = glu0 + 4.D0/9.D0*qq0 - RETURN - - 1000 CONTINUE - IF(IPAR(8).eq.0) THEN -C...Owens set 1 from STRF from Wisc. Pheno. group. for q2=q2_min - AV=0.4D0 - BV=0.7D0 -c BETA=GGAMMA(AV)*GGAMMA(BV+1.)/GGAMMA(AV+BV+1.) =1.925978 - uv=X**(AV)*(1.D0-X)**BV/BETA - dv=uv - - A=0.9D0 - BET=5.D0 - us=(A*(1.D0-X)**BET)/6.D0 - - A=0.888D0 - BET=3.11D0 - GA1=6.D0 - glu0=A*(1.D0-X)**BET*(1.D0+GA1*X) -c Bug Fix thanks to Sue Kashahara- correct factor in front of -c sea quarks for Owens S.F. 5-94 - qq0 = uv + dv + 6.D0*us - parton = (glu0 + 4.D0/9.D0*qq0) - RETURN - ELSE - -c duv = valence quark distribution -c dgl = gluon distribution -c dus = sea quark distribution (u,d,s) -c dds = sea charm quark ( neglected ) -c dss = sea bottom quark ( neglected ) - CALL DORPLO (X, Q2inp, uv, gl, us, ds, ss) - qq0 = uv + dv + 4.D0*us - glu0 = gl - parton = (glu0 + 4.D0/9.D0*qq0) - RETURN - ENDIF - END -C======================================================================= - - SUBROUTINE PDF_INI - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - COMMON /S_CZGEN/ XA(2),XB(2),XMAX,ZA(2),ZB(2),ZMAX, - + DX(2),DZ(2),APART(2),FFA(2),FFB(2), - + DFX(2),DFZ(2),XX(200,2),ZZ(200,2),FFX(200,2),FFZ(200,2), - + NX,NZ - SAVE - - IF(IPAR(8).eq.0) THEN - if (ndebug .gt. 0 ) WRITE(LUN,*) - * ' PDF_INI: calcuLating pdf table using Eichten param..' - CALL ZSAMPLE_INI - ELSEIF(IPAR(8).eq.2) THEN - if (ndebug .gt. 0 ) then - WRITE(LUN,*)' PDF_INI: calculating pdf table using GRV', - * ' param..' - WRITE(LUN,*)' does not work with -fbounds-check !!' - endif - CALL GRV_INI - ELSE - if (ndebug .gt. 0 ) WRITE(LUN,*) - * ' PDF_INI: using common table of GRV parametrization..' - ENDIF - if (ndebug .gt. 0 ) THEN - WRITE(LUN,*)APART(1),FFA(1),FFB(1),DX(1),DZ(1) - WRITE(LUN,*)APART(2),FFA(2),FFB(2),DX(2),DZ(2) - ENDIF - END - -C======================================================================= - - BLOCK DATA PDFINI - -C----------------------------------------------------------------------- -C.. tabled parton distribution function -c Proton: GRV98LO , Eur.Phys.J. C5(1998) 461-470 -c Pion: GRV91 , Z. Phys. C53, 651-655 (1992) - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /S_CZGEN/ XA(2),XB(2),XMAX,ZA(2),ZB(2),ZMAX, - + DX(2),DZ(2),APART(2),FFA(2),FFB(2), - + DFX(2),DFZ(2),XX(200,2),ZZ(200,2),FFX(200,2),FFZ(200,2), - + NX,NZ - SAVE - DATA XA /1.D-06,0.0001D0/ - DATA XB /0.1D0,0.1D0/ - DATA XMAX /0.800000011921D0/ - DATA ZMAX /-0.223143532872D0/ - DATA NX /200/ - DATA NZ /200/ - DATA ZA /-13.8155D0,-9.21034D0/ - DATA ZB /-2.30259D0,-2.30259D0/ - DATA DX /0.00351759D0,0.00351759D0/ - DATA DZ /0.0578539D0,0.0347123D0/ - DATA DFX /0.00952501D0,0.00847474D0/ - DATA DFZ /1.93863D0,0.326082D0/ - DATA APART /-9.80215D0,0.0178207D0/ - DATA FFA /387.684D0,66.5767D0/ - DATA FFB /1.89548D0,1.68647D0/ - - DATA (FFX(K,1),K=1,200 ) / - &0.000D+00,6.380D-05,1.315D-04,2.034D-04,2.795D-04, - &3.601D-04,4.454D-04,5.356D-04,6.309D-04,7.315D-04, - &8.377D-04,9.497D-04,1.068D-03,1.192D-03,1.323D-03, - &1.460D-03,1.605D-03,1.756D-03,1.916D-03,2.083D-03, - &2.258D-03,2.441D-03,2.633D-03,2.835D-03,3.045D-03, - &3.265D-03,3.496D-03,3.736D-03,3.988D-03,4.250D-03, - &4.524D-03,4.810D-03,5.108D-03,5.418D-03,5.742D-03, - &6.078D-03,6.429D-03,6.794D-03,7.174D-03,7.570D-03, - &7.981D-03,8.408D-03,8.852D-03,9.313D-03,9.793D-03, - &1.029D-02,1.081D-02,1.134D-02,1.190D-02,1.247D-02, - &1.307D-02,1.369D-02,1.433D-02,1.500D-02,1.568D-02, - &1.640D-02,1.714D-02,1.790D-02,1.869D-02,1.951D-02, - &2.035D-02,2.123D-02,2.213D-02,2.307D-02,2.403D-02, - &2.503D-02,2.607D-02,2.713D-02,2.823D-02,2.937D-02, - &3.054D-02,3.176D-02,3.301D-02,3.430D-02,3.563D-02, - &3.701D-02,3.842D-02,3.989D-02,4.139D-02,4.295D-02, - &4.455D-02,4.620D-02,4.791D-02,4.966D-02,5.147D-02, - &5.334D-02,5.526D-02,5.724D-02,5.927D-02,6.137D-02, - &6.353D-02,6.576D-02,6.805D-02,7.041D-02,7.284D-02, - &7.534D-02,7.791D-02,8.056D-02,8.329D-02,8.609D-02, - &8.898D-02,9.195D-02,9.500D-02,9.814D-02,1.014D-01, - &1.047D-01,1.081D-01,1.116D-01,1.153D-01,1.190D-01, - &1.228D-01,1.267D-01,1.308D-01,1.350D-01,1.392D-01, - &1.436D-01,1.481D-01,1.528D-01,1.575D-01,1.624D-01, - &1.674D-01,1.725D-01,1.778D-01,1.832D-01,1.888D-01, - &1.946D-01,2.005D-01,2.066D-01,2.128D-01,2.193D-01, - &2.259D-01,2.327D-01,2.397D-01,2.469D-01,2.543D-01, - &2.619D-01,2.698D-01,2.778D-01,2.862D-01,2.947D-01, - &3.035D-01,3.125D-01,3.218D-01,3.314D-01,3.413D-01, - &3.514D-01,3.618D-01,3.726D-01,3.836D-01,3.950D-01, - &4.067D-01,4.188D-01,4.312D-01,4.440D-01,4.572D-01, - &4.708D-01,4.848D-01,4.992D-01,5.141D-01,5.294D-01, - &5.452D-01,5.615D-01,5.783D-01,5.956D-01,6.134D-01, - &6.319D-01,6.509D-01,6.706D-01,6.909D-01,7.118D-01, - &7.334D-01,7.558D-01,7.789D-01,8.029D-01,8.276D-01, - &8.532D-01,8.797D-01,9.072D-01,9.356D-01,9.650D-01, - &9.956D-01,1.027D+00,1.060D+00,1.094D+00,1.130D+00, - &1.167D+00,1.205D+00,1.245D+00,1.287D+00,1.331D+00, - &1.376D+00,1.423D+00,1.473D+00,1.525D+00,1.579D+00, - &1.636D+00,1.696D+00,1.759D+00,1.826D+00,1.895D+00/ - - DATA (FFX(K,2),K=1,200 ) / - &0.000D+00,7.266D-04,1.470D-03,2.231D-03,3.009D-03, - &3.805D-03,4.619D-03,5.450D-03,6.300D-03,7.168D-03, - &8.055D-03,8.961D-03,9.886D-03,1.083D-02,1.179D-02, - &1.278D-02,1.378D-02,1.481D-02,1.585D-02,1.692D-02, - &1.800D-02,1.911D-02,2.024D-02,2.139D-02,2.256D-02, - &2.376D-02,2.498D-02,2.622D-02,2.748D-02,2.877D-02, - &3.008D-02,3.142D-02,3.278D-02,3.416D-02,3.557D-02, - &3.701D-02,3.847D-02,3.996D-02,4.147D-02,4.301D-02, - &4.458D-02,4.617D-02,4.779D-02,4.945D-02,5.112D-02, - &5.283D-02,5.457D-02,5.634D-02,5.813D-02,5.996D-02, - &6.182D-02,6.371D-02,6.563D-02,6.759D-02,6.957D-02, - &7.159D-02,7.365D-02,7.573D-02,7.786D-02,8.001D-02, - &8.221D-02,8.443D-02,8.670D-02,8.900D-02,9.134D-02, - &9.372D-02,9.614D-02,9.860D-02,1.011D-01,1.036D-01, - &1.062D-01,1.088D-01,1.115D-01,1.142D-01,1.170D-01, - &1.197D-01,1.226D-01,1.255D-01,1.284D-01,1.314D-01, - &1.344D-01,1.375D-01,1.406D-01,1.438D-01,1.470D-01, - &1.503D-01,1.536D-01,1.570D-01,1.605D-01,1.640D-01, - &1.675D-01,1.712D-01,1.748D-01,1.786D-01,1.824D-01, - &1.862D-01,1.901D-01,1.941D-01,1.982D-01,2.023D-01, - &2.065D-01,2.107D-01,2.151D-01,2.195D-01,2.239D-01, - &2.285D-01,2.331D-01,2.378D-01,2.426D-01,2.474D-01, - &2.524D-01,2.574D-01,2.625D-01,2.677D-01,2.730D-01, - &2.784D-01,2.839D-01,2.895D-01,2.951D-01,3.009D-01, - &3.068D-01,3.128D-01,3.189D-01,3.251D-01,3.314D-01, - &3.378D-01,3.443D-01,3.510D-01,3.578D-01,3.647D-01, - &3.717D-01,3.789D-01,3.862D-01,3.937D-01,4.012D-01, - &4.090D-01,4.169D-01,4.249D-01,4.331D-01,4.415D-01, - &4.500D-01,4.587D-01,4.676D-01,4.767D-01,4.859D-01, - &4.954D-01,5.050D-01,5.148D-01,5.249D-01,5.352D-01, - &5.457D-01,5.564D-01,5.674D-01,5.786D-01,5.901D-01, - &6.019D-01,6.139D-01,6.262D-01,6.388D-01,6.517D-01, - &6.649D-01,6.785D-01,6.923D-01,7.066D-01,7.212D-01, - &7.362D-01,7.516D-01,7.673D-01,7.836D-01,8.002D-01, - &8.174D-01,8.350D-01,8.532D-01,8.718D-01,8.911D-01, - &9.109D-01,9.313D-01,9.524D-01,9.742D-01,9.966D-01, - &1.020D+00,1.044D+00,1.069D+00,1.094D+00,1.121D+00, - &1.149D+00,1.177D+00,1.207D+00,1.238D+00,1.271D+00, - &1.304D+00,1.339D+00,1.376D+00,1.414D+00,1.454D+00, - &1.496D+00,1.540D+00,1.586D+00,1.635D+00,1.686D+00/ - - DATA (FFZ(K,1),K=1,200 ) / - &1.895D+00,2.014D+00,2.137D+00,2.263D+00,2.393D+00, - &2.527D+00,2.665D+00,2.807D+00,2.953D+00,3.103D+00, - &3.257D+00,3.417D+00,3.580D+00,3.748D+00,3.921D+00, - &4.098D+00,4.281D+00,4.469D+00,4.663D+00,4.861D+00, - &5.065D+00,5.274D+00,5.489D+00,5.710D+00,5.937D+00, - &6.170D+00,6.409D+00,6.654D+00,6.906D+00,7.164D+00, - &7.430D+00,7.702D+00,7.981D+00,8.267D+00,8.561D+00, - &8.862D+00,9.171D+00,9.487D+00,9.811D+00,1.014D+01, - &1.048D+01,1.083D+01,1.119D+01,1.156D+01,1.193D+01, - &1.232D+01,1.271D+01,1.311D+01,1.352D+01,1.395D+01, - &1.438D+01,1.482D+01,1.527D+01,1.573D+01,1.621D+01, - &1.669D+01,1.718D+01,1.769D+01,1.821D+01,1.874D+01, - &1.928D+01,1.983D+01,2.040D+01,2.097D+01,2.156D+01, - &2.217D+01,2.278D+01,2.341D+01,2.406D+01,2.471D+01, - &2.539D+01,2.607D+01,2.677D+01,2.749D+01,2.822D+01, - &2.896D+01,2.973D+01,3.050D+01,3.130D+01,3.211D+01, - &3.293D+01,3.378D+01,3.464D+01,3.552D+01,3.642D+01, - &3.733D+01,3.827D+01,3.922D+01,4.020D+01,4.119D+01, - &4.220D+01,4.323D+01,4.429D+01,4.536D+01,4.646D+01, - &4.758D+01,4.872D+01,4.988D+01,5.106D+01,5.227D+01, - &5.350D+01,5.476D+01,5.604D+01,5.735D+01,5.868D+01, - &6.003D+01,6.142D+01,6.282D+01,6.426D+01,6.572D+01, - &6.721D+01,6.873D+01,7.028D+01,7.186D+01,7.346D+01, - &7.510D+01,7.677D+01,7.847D+01,8.020D+01,8.196D+01, - &8.375D+01,8.558D+01,8.744D+01,8.934D+01,9.127D+01, - &9.324D+01,9.524D+01,9.728D+01,9.936D+01,1.015D+02, - &1.036D+02,1.058D+02,1.080D+02,1.103D+02,1.126D+02, - &1.150D+02,1.174D+02,1.198D+02,1.223D+02,1.248D+02, - &1.274D+02,1.300D+02,1.327D+02,1.354D+02,1.381D+02, - &1.409D+02,1.438D+02,1.467D+02,1.496D+02,1.526D+02, - &1.557D+02,1.588D+02,1.619D+02,1.652D+02,1.684D+02, - &1.718D+02,1.751D+02,1.786D+02,1.821D+02,1.856D+02, - &1.892D+02,1.929D+02,1.967D+02,2.005D+02,2.043D+02, - &2.083D+02,2.122D+02,2.163D+02,2.204D+02,2.246D+02, - &2.289D+02,2.332D+02,2.376D+02,2.421D+02,2.467D+02, - &2.513D+02,2.560D+02,2.608D+02,2.656D+02,2.706D+02, - &2.756D+02,2.807D+02,2.859D+02,2.911D+02,2.965D+02, - &3.019D+02,3.074D+02,3.130D+02,3.187D+02,3.245D+02, - &3.304D+02,3.364D+02,3.425D+02,3.486D+02,3.549D+02, - &3.612D+02,3.677D+02,3.743D+02,3.809D+02,3.877D+02/ - - DATA (FFZ(K,2),K=1,200 ) / - &1.686D+00,1.738D+00,1.791D+00,1.844D+00,1.899D+00, - &1.955D+00,2.011D+00,2.069D+00,2.128D+00,2.188D+00, - &2.249D+00,2.311D+00,2.374D+00,2.438D+00,2.504D+00, - &2.570D+00,2.638D+00,2.708D+00,2.778D+00,2.850D+00, - &2.923D+00,2.997D+00,3.072D+00,3.149D+00,3.228D+00, - &3.307D+00,3.388D+00,3.471D+00,3.555D+00,3.640D+00, - &3.727D+00,3.815D+00,3.905D+00,3.997D+00,4.090D+00, - &4.184D+00,4.281D+00,4.378D+00,4.478D+00,4.579D+00, - &4.682D+00,4.787D+00,4.893D+00,5.002D+00,5.112D+00, - &5.224D+00,5.337D+00,5.453D+00,5.571D+00,5.690D+00, - &5.811D+00,5.935D+00,6.060D+00,6.188D+00,6.317D+00, - &6.449D+00,6.583D+00,6.719D+00,6.857D+00,6.997D+00, - &7.139D+00,7.284D+00,7.431D+00,7.580D+00,7.732D+00, - &7.886D+00,8.042D+00,8.201D+00,8.363D+00,8.526D+00, - &8.693D+00,8.862D+00,9.033D+00,9.207D+00,9.384D+00, - &9.563D+00,9.746D+00,9.930D+00,1.012D+01,1.031D+01, - &1.050D+01,1.070D+01,1.090D+01,1.110D+01,1.130D+01, - &1.151D+01,1.172D+01,1.194D+01,1.215D+01,1.237D+01, - &1.260D+01,1.283D+01,1.306D+01,1.329D+01,1.353D+01, - &1.377D+01,1.401D+01,1.426D+01,1.451D+01,1.476D+01, - &1.502D+01,1.528D+01,1.554D+01,1.581D+01,1.608D+01, - &1.636D+01,1.664D+01,1.692D+01,1.721D+01,1.750D+01, - &1.780D+01,1.810D+01,1.840D+01,1.871D+01,1.902D+01, - &1.934D+01,1.966D+01,1.998D+01,2.031D+01,2.065D+01, - &2.098D+01,2.133D+01,2.167D+01,2.203D+01,2.238D+01, - &2.274D+01,2.311D+01,2.348D+01,2.385D+01,2.423D+01, - &2.462D+01,2.501D+01,2.541D+01,2.581D+01,2.621D+01, - &2.662D+01,2.704D+01,2.746D+01,2.789D+01,2.832D+01, - &2.875D+01,2.920D+01,2.965D+01,3.010D+01,3.056D+01, - &3.103D+01,3.150D+01,3.198D+01,3.246D+01,3.295D+01, - &3.344D+01,3.395D+01,3.445D+01,3.497D+01,3.549D+01, - &3.601D+01,3.655D+01,3.709D+01,3.763D+01,3.819D+01, - &3.875D+01,3.931D+01,3.989D+01,4.047D+01,4.105D+01, - &4.165D+01,4.225D+01,4.286D+01,4.347D+01,4.410D+01, - &4.473D+01,4.537D+01,4.601D+01,4.666D+01,4.732D+01, - &4.799D+01,4.867D+01,4.935D+01,5.005D+01,5.075D+01, - &5.146D+01,5.217D+01,5.290D+01,5.363D+01,5.437D+01, - &5.512D+01,5.588D+01,5.665D+01,5.743D+01,5.821D+01, - &5.901D+01,5.981D+01,6.062D+01,6.145D+01,6.228D+01, - &6.312D+01,6.397D+01,6.483D+01,6.570D+01,6.658D+01/ - - DATA (XX(K,1),K=1,200 ) / - &8.000D-01,6.472D-01,5.944D-01,5.597D-01,5.335D-01, - &5.121D-01,4.941D-01,4.785D-01,4.647D-01,4.522D-01, - &4.409D-01,4.306D-01,4.210D-01,4.122D-01,4.039D-01, - &3.961D-01,3.887D-01,3.817D-01,3.751D-01,3.688D-01, - &3.628D-01,3.571D-01,3.516D-01,3.463D-01,3.413D-01, - &3.365D-01,3.318D-01,3.273D-01,3.230D-01,3.188D-01, - &3.147D-01,3.108D-01,3.070D-01,3.033D-01,2.998D-01, - &2.963D-01,2.929D-01,2.896D-01,2.864D-01,2.833D-01, - &2.802D-01,2.773D-01,2.744D-01,2.715D-01,2.688D-01, - &2.661D-01,2.634D-01,2.608D-01,2.583D-01,2.558D-01, - &2.534D-01,2.510D-01,2.487D-01,2.464D-01,2.442D-01, - &2.420D-01,2.398D-01,2.377D-01,2.356D-01,2.336D-01, - &2.316D-01,2.296D-01,2.277D-01,2.257D-01,2.239D-01, - &2.220D-01,2.202D-01,2.184D-01,2.167D-01,2.150D-01, - &2.132D-01,2.116D-01,2.099D-01,2.083D-01,2.067D-01, - &2.051D-01,2.036D-01,2.020D-01,2.005D-01,1.990D-01, - &1.976D-01,1.961D-01,1.947D-01,1.933D-01,1.919D-01, - &1.905D-01,1.891D-01,1.878D-01,1.865D-01,1.852D-01, - &1.839D-01,1.826D-01,1.814D-01,1.801D-01,1.789D-01, - &1.777D-01,1.765D-01,1.753D-01,1.741D-01,1.730D-01, - &1.718D-01,1.707D-01,1.696D-01,1.685D-01,1.674D-01, - &1.663D-01,1.653D-01,1.642D-01,1.632D-01,1.622D-01, - &1.611D-01,1.601D-01,1.591D-01,1.581D-01,1.572D-01, - &1.562D-01,1.552D-01,1.543D-01,1.534D-01,1.524D-01, - &1.515D-01,1.506D-01,1.497D-01,1.488D-01,1.479D-01, - &1.471D-01,1.462D-01,1.453D-01,1.445D-01,1.437D-01, - &1.428D-01,1.420D-01,1.412D-01,1.404D-01,1.396D-01, - &1.388D-01,1.380D-01,1.372D-01,1.365D-01,1.357D-01, - &1.349D-01,1.342D-01,1.335D-01,1.327D-01,1.320D-01, - &1.313D-01,1.306D-01,1.299D-01,1.292D-01,1.284D-01, - &1.278D-01,1.271D-01,1.264D-01,1.257D-01,1.251D-01, - &1.244D-01,1.237D-01,1.231D-01,1.224D-01,1.218D-01, - &1.212D-01,1.205D-01,1.199D-01,1.193D-01,1.187D-01, - &1.181D-01,1.175D-01,1.169D-01,1.163D-01,1.157D-01, - &1.151D-01,1.145D-01,1.139D-01,1.134D-01,1.128D-01, - &1.123D-01,1.117D-01,1.112D-01,1.106D-01,1.101D-01, - &1.095D-01,1.090D-01,1.085D-01,1.079D-01,1.074D-01, - &1.069D-01,1.064D-01,1.059D-01,1.054D-01,1.049D-01, - &1.044D-01,1.039D-01,1.034D-01,1.029D-01,1.024D-01, - &1.019D-01,1.014D-01,1.010D-01,1.005D-01,1.000D-01/ - - DATA (XX(K,2),K=1,200 ) / - &8.000D-01,7.632D-01,7.331D-01,7.073D-01,6.846D-01, - &6.643D-01,6.458D-01,6.289D-01,6.132D-01,5.986D-01, - &5.849D-01,5.721D-01,5.600D-01,5.485D-01,5.376D-01, - &5.272D-01,5.172D-01,5.077D-01,4.986D-01,4.899D-01, - &4.815D-01,4.734D-01,4.656D-01,4.581D-01,4.508D-01, - &4.438D-01,4.370D-01,4.304D-01,4.240D-01,4.178D-01, - &4.118D-01,4.059D-01,4.002D-01,3.947D-01,3.893D-01, - &3.840D-01,3.789D-01,3.739D-01,3.690D-01,3.643D-01, - &3.597D-01,3.551D-01,3.507D-01,3.464D-01,3.421D-01, - &3.380D-01,3.340D-01,3.300D-01,3.261D-01,3.223D-01, - &3.186D-01,3.150D-01,3.114D-01,3.079D-01,3.045D-01, - &3.011D-01,2.978D-01,2.945D-01,2.914D-01,2.883D-01, - &2.852D-01,2.822D-01,2.792D-01,2.763D-01,2.735D-01, - &2.707D-01,2.679D-01,2.652D-01,2.625D-01,2.599D-01, - &2.574D-01,2.548D-01,2.523D-01,2.499D-01,2.475D-01, - &2.451D-01,2.428D-01,2.405D-01,2.382D-01,2.360D-01, - &2.338D-01,2.316D-01,2.295D-01,2.274D-01,2.254D-01, - &2.233D-01,2.213D-01,2.193D-01,2.174D-01,2.155D-01, - &2.136D-01,2.117D-01,2.099D-01,2.081D-01,2.063D-01, - &2.045D-01,2.028D-01,2.011D-01,1.994D-01,1.977D-01, - &1.961D-01,1.944D-01,1.929D-01,1.913D-01,1.897D-01, - &1.882D-01,1.867D-01,1.851D-01,1.837D-01,1.822D-01, - &1.808D-01,1.793D-01,1.779D-01,1.765D-01,1.752D-01, - &1.738D-01,1.725D-01,1.711D-01,1.698D-01,1.686D-01, - &1.673D-01,1.660D-01,1.648D-01,1.635D-01,1.623D-01, - &1.611D-01,1.599D-01,1.588D-01,1.576D-01,1.564D-01, - &1.553D-01,1.542D-01,1.531D-01,1.520D-01,1.509D-01, - &1.498D-01,1.488D-01,1.477D-01,1.467D-01,1.457D-01, - &1.447D-01,1.437D-01,1.427D-01,1.417D-01,1.407D-01, - &1.398D-01,1.388D-01,1.379D-01,1.369D-01,1.360D-01, - &1.351D-01,1.342D-01,1.333D-01,1.324D-01,1.316D-01, - &1.307D-01,1.299D-01,1.290D-01,1.282D-01,1.273D-01, - &1.265D-01,1.257D-01,1.249D-01,1.241D-01,1.233D-01, - &1.225D-01,1.218D-01,1.210D-01,1.203D-01,1.195D-01, - &1.188D-01,1.180D-01,1.173D-01,1.166D-01,1.159D-01, - &1.152D-01,1.144D-01,1.138D-01,1.131D-01,1.124D-01, - &1.117D-01,1.110D-01,1.104D-01,1.097D-01,1.091D-01, - &1.084D-01,1.078D-01,1.072D-01,1.065D-01,1.059D-01, - &1.053D-01,1.047D-01,1.041D-01,1.035D-01,1.029D-01, - &1.023D-01,1.017D-01,1.012D-01,1.006D-01,1.000D-01/ - - DATA (ZZ(K,1),K=1,200 ) / - &-2.303D+00,-3.084D+00,-3.649D+00,-4.098D+00, - &-4.472D+00,-4.795D+00,-5.080D+00,-5.335D+00, - &-5.568D+00,-5.781D+00,-5.978D+00,-6.161D+00, - &-6.333D+00,-6.494D+00,-6.647D+00,-6.792D+00, - &-6.929D+00,-7.060D+00,-7.186D+00,-7.306D+00, - &-7.421D+00,-7.532D+00,-7.639D+00,-7.742D+00, - &-7.842D+00,-7.938D+00,-8.031D+00,-8.122D+00, - &-8.210D+00,-8.295D+00,-8.378D+00,-8.459D+00, - &-8.538D+00,-8.614D+00,-8.689D+00,-8.762D+00, - &-8.834D+00,-8.904D+00,-8.972D+00,-9.039D+00, - &-9.104D+00,-9.168D+00,-9.231D+00,-9.293D+00, - &-9.353D+00,-9.412D+00,-9.470D+00,-9.528D+00, - &-9.584D+00,-9.639D+00,-9.693D+00,-9.746D+00, - &-9.799D+00,-9.851D+00,-9.901D+00,-9.951D+00, - &-1.000D+01,-1.005D+01,-1.010D+01,-1.014D+01, - &-1.019D+01,-1.024D+01,-1.028D+01,-1.033D+01, - &-1.037D+01,-1.041D+01,-1.046D+01,-1.050D+01, - &-1.054D+01,-1.058D+01,-1.062D+01,-1.066D+01, - &-1.070D+01,-1.074D+01,-1.078D+01,-1.082D+01, - &-1.086D+01,-1.089D+01,-1.093D+01,-1.097D+01, - &-1.101D+01,-1.104D+01,-1.108D+01,-1.111D+01, - &-1.115D+01,-1.118D+01,-1.122D+01,-1.125D+01, - &-1.128D+01,-1.132D+01,-1.135D+01,-1.138D+01, - &-1.141D+01,-1.145D+01,-1.148D+01,-1.151D+01, - &-1.154D+01,-1.157D+01,-1.160D+01,-1.163D+01, - &-1.166D+01,-1.169D+01,-1.172D+01,-1.175D+01, - &-1.178D+01,-1.181D+01,-1.184D+01,-1.186D+01, - &-1.189D+01,-1.192D+01,-1.195D+01,-1.198D+01, - &-1.200D+01,-1.203D+01,-1.206D+01,-1.208D+01, - &-1.211D+01,-1.214D+01,-1.216D+01,-1.219D+01, - &-1.221D+01,-1.224D+01,-1.226D+01,-1.229D+01, - &-1.231D+01,-1.234D+01,-1.236D+01,-1.239D+01, - &-1.241D+01,-1.244D+01,-1.246D+01,-1.248D+01, - &-1.251D+01,-1.253D+01,-1.255D+01,-1.258D+01, - &-1.260D+01,-1.262D+01,-1.264D+01,-1.267D+01, - &-1.269D+01,-1.271D+01,-1.273D+01,-1.276D+01, - &-1.278D+01,-1.280D+01,-1.282D+01,-1.284D+01, - &-1.286D+01,-1.289D+01,-1.291D+01,-1.293D+01, - &-1.295D+01,-1.297D+01,-1.299D+01,-1.301D+01, - &-1.303D+01,-1.305D+01,-1.307D+01,-1.309D+01, - &-1.311D+01,-1.313D+01,-1.315D+01,-1.317D+01, - &-1.319D+01,-1.321D+01,-1.323D+01,-1.325D+01, - &-1.327D+01,-1.329D+01,-1.330D+01,-1.332D+01, - &-1.334D+01,-1.336D+01,-1.338D+01,-1.340D+01, - &-1.342D+01,-1.343D+01,-1.345D+01,-1.347D+01, - &-1.349D+01,-1.351D+01,-1.352D+01,-1.354D+01, - &-1.356D+01,-1.358D+01,-1.360D+01,-1.361D+01, - &-1.363D+01,-1.365D+01,-1.366D+01,-1.368D+01, - &-1.370D+01,-1.372D+01,-1.373D+01,-1.375D+01, - &-1.377D+01,-1.378D+01,-1.380D+01,-1.382D+01/ - - DATA (ZZ(K,2),K=1,200 ) / - &-2.303D+00,-2.512D+00,-2.700D+00,-2.871D+00, - &-3.029D+00,-3.175D+00,-3.310D+00,-3.438D+00, - &-3.557D+00,-3.670D+00,-3.778D+00,-3.880D+00, - &-3.977D+00,-4.070D+00,-4.159D+00,-4.245D+00, - &-4.328D+00,-4.407D+00,-4.484D+00,-4.558D+00, - &-4.630D+00,-4.699D+00,-4.767D+00,-4.832D+00, - &-4.896D+00,-4.958D+00,-5.019D+00,-5.078D+00, - &-5.135D+00,-5.191D+00,-5.246D+00,-5.300D+00, - &-5.352D+00,-5.403D+00,-5.453D+00,-5.503D+00, - &-5.551D+00,-5.598D+00,-5.645D+00,-5.690D+00, - &-5.735D+00,-5.779D+00,-5.822D+00,-5.864D+00, - &-5.906D+00,-5.947D+00,-5.988D+00,-6.027D+00, - &-6.067D+00,-6.105D+00,-6.143D+00,-6.181D+00, - &-6.217D+00,-6.254D+00,-6.290D+00,-6.325D+00, - &-6.360D+00,-6.394D+00,-6.428D+00,-6.462D+00, - &-6.495D+00,-6.528D+00,-6.560D+00,-6.592D+00, - &-6.624D+00,-6.655D+00,-6.686D+00,-6.716D+00, - &-6.746D+00,-6.776D+00,-6.805D+00,-6.835D+00, - &-6.863D+00,-6.892D+00,-6.920D+00,-6.948D+00, - &-6.976D+00,-7.003D+00,-7.030D+00,-7.057D+00, - &-7.084D+00,-7.110D+00,-7.136D+00,-7.162D+00, - &-7.188D+00,-7.213D+00,-7.238D+00,-7.263D+00, - &-7.288D+00,-7.312D+00,-7.336D+00,-7.360D+00, - &-7.384D+00,-7.408D+00,-7.431D+00,-7.455D+00, - &-7.478D+00,-7.501D+00,-7.523D+00,-7.546D+00, - &-7.568D+00,-7.590D+00,-7.612D+00,-7.634D+00, - &-7.656D+00,-7.677D+00,-7.698D+00,-7.720D+00, - &-7.741D+00,-7.761D+00,-7.782D+00,-7.803D+00, - &-7.823D+00,-7.843D+00,-7.863D+00,-7.883D+00, - &-7.903D+00,-7.923D+00,-7.943D+00,-7.962D+00, - &-7.981D+00,-8.001D+00,-8.020D+00,-8.039D+00, - &-8.057D+00,-8.076D+00,-8.095D+00,-8.113D+00, - &-8.132D+00,-8.150D+00,-8.168D+00,-8.186D+00, - &-8.204D+00,-8.222D+00,-8.239D+00,-8.257D+00, - &-8.274D+00,-8.292D+00,-8.309D+00,-8.326D+00, - &-8.343D+00,-8.360D+00,-8.377D+00,-8.394D+00, - &-8.411D+00,-8.427D+00,-8.444D+00,-8.460D+00, - &-8.476D+00,-8.493D+00,-8.509D+00,-8.525D+00, - &-8.541D+00,-8.557D+00,-8.572D+00,-8.588D+00, - &-8.604D+00,-8.619D+00,-8.635D+00,-8.650D+00, - &-8.666D+00,-8.681D+00,-8.696D+00,-8.711D+00, - &-8.726D+00,-8.741D+00,-8.756D+00,-8.771D+00, - &-8.786D+00,-8.800D+00,-8.815D+00,-8.829D+00, - &-8.844D+00,-8.858D+00,-8.872D+00,-8.887D+00, - &-8.901D+00,-8.915D+00,-8.929D+00,-8.943D+00, - &-8.957D+00,-8.971D+00,-8.985D+00,-8.998D+00, - &-9.012D+00,-9.026D+00,-9.039D+00,-9.053D+00, - &-9.066D+00,-9.080D+00,-9.093D+00,-9.106D+00, - &-9.119D+00,-9.133D+00,-9.146D+00,-9.159D+00, - &-9.172D+00,-9.185D+00,-9.197D+00,-9.210D+00/ - END -C======================================================================= - - DOUBLE PRECISION FUNCTION CHIDIS (KPARTin, IFL1, IFL2) - -C----------------------------------------------------------------------- -C...Generate CHI (fraction of energy of a hadron carried by -C. the valence quark, or diquark, as specified by IFL1) -C. INPUT KPART = code of particle -C. IFL1, IFL2 = codes of partons (3, 3bar of color) -C......................................................... - IMPLICIT NONE -c external types - INTEGER KPARTIN,IFL1,IFL2 -c COMMONs - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - DOUBLE PRECISION CCHIK - COMMON /S_CPSPL/ CCHIK(4,99) - - DOUBLE PRECISION STR_mass_val, STR_mass_val_hyp, STR_mass_sea - COMMON /S_CUTOFF/ STR_mass_val, STR_mass_val_hyp, STR_mass_sea -c internal types - DOUBLE PRECISION CUT,S_RNDM - INTEGER KPART,IFQ - SAVE - - kpart=IABS(kpartin) - IFQ=IABS(IFL1) - IF (IFQ.GT.10) IFQ=IABS(IFL2) - CUT=2.D0*STR_mass_val/SQS -c hyperon beam cut - IF(kpart.gt.14) CUT=2.D0*STR_mass_val_hyp/SQS -100 CHIDIS=S_RNDM(0)**2 - if (chidis.lt.cut) goto 100 - if (chidis.gt.(1.D0-cut)) goto 100 - IF((CHIDIS**2/(CHIDIS**2+CUT**2))**0.5D0 - + *(1.D0-CHIDIS)**CCHIK(IFQ,KPART).LT.S_RNDM(1)) GOTO 100 - CHIDIS = MAX(0.5D0*CUT,CHIDIS) - CHIDIS = MIN(1.D0-CUT,CHIDIS) -c diquarks or charm quarks - IF (IABS(IFL1).GT.3) CHIDIS=1.D0-CHIDIS - RETURN - END -C======================================================================= - - FUNCTION QMASS(IFL) - -C----------------------------------------------------------------------- -C...Return quark or diquark constituent masses -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - DIMENSION QMAS(4) - SAVE - DATA QMAS /0.325D0,0.325D0,0.5D0,1.5D0/ - - IFLA = IABS(IFL) - IFLA = MOD(IFLA,100) - IF (IFLA .LE. 4) THEN - QMASS = QMAS(IFLA) - ELSE - QMA = QMAS(IFLA/10) - QMB = QMAS(MOD(IFLA,10)) - QMASS = QMA+QMB - ENDIF - RETURN - END -C======================================================================= - - FUNCTION XM2DIS(XM2MIN,XM2MAX,ALPHA) - -C----------------------------------------------------------------------- -C function that samples mass**2 from (1/M**2)**alpha -C with alpha <= 1 -C INPUT: Mmin**2 : minimal mass -C Mmax**2 : maximal mass -C alpha : slope \FR'14 -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - -c reduced alpha - ALPHArdc = 2.d0*(ALPHA-1.d0) - AMIN = LOG(XM2MIN) - AMAX = LOG(XM2MAX) - ADLT = AMAX-AMIN - IF(ABS(ALPHArdc).LT.1.d-3)THEN -c alpha = 1 - XRNDM = MAX(S_RNDM(0),1.D-10) - AX = AMIN+ADLT*XRNDM - XM2DIS = EXP(AX) - ELSEIF(ALPHArdc.LT.0.D0.and.ALPHA.gt.0.D0)THEN -c 0 < alpha < 1 - XRNDM = MAX(S_RNDM(0),1.D-10) -c AX = AMAX-LOG(XRNDM)*ALPHArdc - DX = XM2MAX**(1.D0-ALPHA)*XRNDM + - + XM2MIN**(1.D0-ALPHA)*(1.D0-XRNDM) - AX = LOG(DX)/(1.D0-ALPHA) - XM2DIS = EXP(AX) - ELSEIF(ALPHArdc.GE.1.D0)THEN -c alpha >= 1 - ALPHAr = 1.D0-ALPHA - XMINA = XM2MIN**ALPHAr - XMAXA = XM2MAX**ALPHAr - XDLT = XMAXA-XMINA - XRNDM = MAX(S_RNDM(0),1.D-10) - Z = LOG(XMINA+XDLT*XRNDM)/ALPHAR - XM2DIS = EXP(Z) - ELSE - WRITE(6,*) 'M2DIS: undefined exponent in mass distribution!', - & ALPHA - XM2DIS = 0.D0 - CALL SIB_REJECT('M2DIS ') - ENDIF - END -C======================================================================= - - SUBROUTINE EXCTDEC( IDX, LBAD) - -C----------------------------------------------------------------------- -C routine to fragment an excited system with known flavor via -C resonance decay -C----------------------------------------------------------------------- - IMPLICIT NONE -c external variables - INTEGER IDX,LBAD - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT - - INTEGER LRNK - COMMON /SIB_RNK/ LRNK(8000) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - -c local variables - DOUBLE PRECISION P0,BE,PR1,PR2,PRH,GABE,P2, - & PAR2_def,PAR8_def,PAR24_def,DELTAE,PCXG, - & EMIN1,EMIN2,EMIN3,EMIN4,S_RNDM,GA,PTR,PTOT,P1TOT,PX,PY, - & COD,SID,COF,SIF,ANORF,BEP - DIMENSION P0(5),BE(3),PR1(5),PR2(5),PRH(5),GABE(4), - & P2(5) - INTEGER IPID,IR1DX,IFLR1,IR2DX,IFLR2,IRH,IRHPID,IR, - & KK,KD,IFAIL,N1,IFBAD,J,K,I - SAVE - -c LBAD = 1 - -c initial parameters - PAR2_def = PAR(2) ! ud/s rate - PAR8_def = PAR(8) ! popcorn rate - PAR24_def = PAR(24) ! c/s rate - if(ndebug.gt.1) - & WRITE(LUN,*) ' EXCTDEC: IDX,IREJ',IDX,LBAD - -c read remnant 4momentum from stack - CALL RD_PRTN_4VEC(IDX,P0,IPID,IR1DX) - CALL RD_PRTN_4VEC(IR1DX,PR1,IFLR1,IR2DX) - CALL RD_PRTN_4VEC(IR2DX,PR2,IFLR2,IRH) - CALL RD_PRTN_4VEC(IRH,PRH,IRHPID,IR) - IPFLAG = IPID - IF(IDX.ne.IR)then - write(lun,*) ' EXCTDEC: reference loop broken!',IDX,IR - CALL SIB_REJECT('EXCTDEC ') - endif - IF(NDEBUG.GT.2)THEN - WRITE(LUN,*) ' EXCTDEC: P0:' , (P0(kk),kk=1,5) - WRITE(LUN,*) ' EXCTDEC: PR1:' , (PR1(kk),kk=1,5) - WRITE(LUN,*) ' EXCTDEC: PR2:' , (PR2(kk),kk=1,5) - WRITE(LUN,*) ' EXCTDEC: PH:' , (PRH(kk),kk=1,5) - ENDIF - -C identity of remnant -c form hadron from flavors in remnant -c (not preserving spin or isospin!) -c CALL SIB_I4FLAV(iflr1,iflr2,Idm, KD ) - KD = IRHPID - -c available kinetic energy - DELTAE = P0(5)-AM(ABS(KD)) -c fallback region: 0 < DELTAE < EMIN1 - EMIN1 = PAR(76) -c resonance region: EMIN1 < DELTAE < EMIN2 - EMIN2 = PAR(77) -c phasespace decay region: EMIN2 < DELTAE < EMIN3 - EMIN3 = PAR(78) -c string decay region: EMIN3 < DELTAE < EMIN4 - EMIN4 = PAR(79) - - IF(NDEBUG.gt.2)THEN - WRITE(LUN,*) - & ' EXCTDEC: MASS,IFL1,IFL2,PID',P0(5),IFLR1,IFLR2,KD - WRITE(LUN,*) ' EXCTDEC: DELTAE,EMIN1,EMIN2,EMIN3', - & DELTAE,EMIN1,EMIN2,EMIN3 - ENDIF - -c strange quark rate - IF(IPAR(48).eq.1)THEN - PAR(2) = PAR(89) - ENDIF - -c charm quark rate - IF(IPAR(62).eq.1)THEN - PAR(24) = PAR(107) - ENDIF - -c popcorn rate in remnant - IF(IPAR(56).eq.1)THEN - PAR(8) = PAR(102) - ENDIF - - IF(DELTAE.lt.EMIN2)THEN -c beam or resonance region - IF(NDEBUG.gt.1) then - if(DELTAE.lt.EMIN1)then - WRITE(LUN,*)' EXCTDEC: fallback to beam..' - else - WRITE(LUN,*)' EXCTDEC: forming resonance..' - endif - endif - NP = NP + 1 - LLIST(NP) = KD - NPORIG(NP) = IPFLAG - LRNK(NP) = 0 - niorig(NP) = iiflag - DO kk=1,5 - P(NP,KK) = P0(KK) - ENDDO - LBAD = 0 - PAR(2) = PAR2_def - PAR(8) = PAR8_def - PAR(24) = PAR24_def - RETURN - - ELSEIF(DELTAE.lt.EMIN3)THEN -c phasespace decay region - IF(NDEBUG.gt.1) WRITE(LUN,*)' EXCTDEC: phasespace decay ..' - IPFLAG = IPID/iabs(IPID) + ISIGN(1000,IPID) -c set charge exchange probability, -c i.e. prob for p* -> n + pip - PCXG = PAR(99) - CALL FIREBALL_4FLV(KD,P0,PCXG,IFAIL) - PAR(2) = PAR2_def - PAR(8) = PAR8_def - PAR(24) = PAR24_def - IF(IFAIL.eq.1) THEN - IF(ndebug.gt.0) - & WRITE(LUN,*) ' EXCTDEC: remnant frag. rejection!' - LBAD = 1 - RETURN - ENDIF - LBAD = 0 - RETURN - -c ELSEIF(DELTAE.lt.EMIN4)THEN - ELSE -C string fragmentation region - IF(NDEBUG.gt.1) WRITE(LUN,*)' EXCTDEC: string decay ..' - N1 = NP+1 - IPFLAG = IPFLAG + ISIGN(3000,IPID) -c for meson remnant quark and anti-quark should be treated equally -c therefor switch randomly - IF(IBAR(ABS(KD)).eq.0.and.S_RNDM(KD).lt.0.5D0) - & CALL ISWTCH_LMNTS(IFLR1,IFLR2) - -c turn remnant string around - IF(IPAR(23).eq.1)THEN - IF(S_RNDM(0).gt.PAR(39)) - & CALL ISWTCH_LMNTS(IFLR1,IFLR2) - ENDIF - - CALL STRING_FRAG_4FLV - + (P0(5), IFLR2, IFLR1, 0.D0,0.D0,0.D0,0.D0,IFBAD,1) - IF (IFBAD .EQ. 1)THEN - IF(ndebug.gt.0) - & WRITE(LUN,*) ' EXCTDEC: remnant frag. rejection!' - LBAD = 1 - PAR(2) = PAR2_def - PAR(8) = PAR8_def - PAR(24) = PAR24_def - RETURN - ENDIF - DO J=1,3 - BE(J)=P0(J)/P0(4) - GABE(J)=P0(J)/P0(5) - ENDDO - GA=P0(4)/P0(5) - GABE(4)=P0(4)/P0(5) -C... rotate and boost string - IF(IPAR(38).eq.1.or.IPAR(38).eq.3)THEN -c sample additional soft pt for remnant partons - CALL PTDIS_4FLV(0,PX,PY) - PTR = SQRT(PX**2+PY**2) - PTOT = SQRT(4.D0*PTR**2+P0(5)**2)*0.5D0 -c rotation factors - COD = 0.5D0*P0(5)/PTOT - SID = PTR/PTOT -c COD= 1.D0/SQRT(1.D0+4.D0*PTR**2/P0(5)) -c SID= 2.D0*PTR/P0(5)*COD - COF=1.D0 - SIF=0.D0 - IF(PTOT*SID.GT.EPS5) THEN - COF=PX/(SID*PTOT) - SIF=PY/(SID*PTOT) - ANORF=DSQRT(COF*COF+SIF*SIF) - COF=COF/ANORF - SIF=SIF/ANORF - ENDIF - IF(ndebug.gt.3)THEN - write(lun,*)' EXCTDEC: rotation factors (cod,sid,cof,sif):', - & cod,sid,cof,sif - write(lun,*)' EXCTDEC: rotation angles (theta,phi):', - & ACOS(cod),ACOS(cof) - ENDIF -c rotate string final state - DO K=N1,NP - CALL SIB_TRANI(P(K,1),P(k,2),P(k,3),cod,sid,cof,sif - & ,P2(1),P2(2),P2(3)) - do j=1,3 - P(K,j)=P2(j) - enddo - ENDDO -c boost to hadron-hadron center-of-mass - IF(ndebug.gt.3) - & write(lun,*) ' EXCTDEC: boost to had-had (gabe,gam):', - & (gabe(j),j=1,4) - DO K=N1,NP - NPORIG(K) = IPFLAG - niorig(K) = iiflag - CALL SIB_ALTRA(gabe(4),gabe(1),gabe(2), - & gabe(3),P(k,1),p(k,2),p(k,3),p(k,4), - & P1TOT,p2(1),p2(2),p2(3),p2(4)) - do j=1,4 - P(K,j)=P2(j) - enddo - ENDDO - ELSEIF(IPAR(38).eq.2.or.IPAR(38).eq.0)THEN -C... boost string - DO I=N1,NP - NPORIG(I) = IPFLAG - niorig(I) = iiflag - BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3) - DO J=1,3 - P(I,J)=P(I,J)+GA*(GA*BEP/(1.D0+GA)+P(I,4))*BE(J) - ENDDO - P(I,4)=GA*(P(I,4)+BEP) - ENDDO - ENDIF - ENDIF - LBAD = 0 - PAR(2) = PAR2_def - PAR(8) = PAR8_def - PAR(24) = PAR24_def - return - END -C======================================================================= - - SUBROUTINE PTDIS_4FLV (IFL,PX,PY) - -C----------------------------------------------------------------------- -C...Generate pT -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - DOUBLE PRECISION PPT02 - COMMON /S_CQDIS2/ PPT02(44) - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - SAVE - - IF(IFL.eq.0)THEN -c quark confinement pt - PPTT = PAR(110) - XM = 0.325D0 - XM2 = XM**2 - RNDM = MAX(EPS10,S_RNDM(IFL)) - XMT = PPTT * LOG(RNDM) - XM - XMT2 = XMT**2 - PT = SQRT(XMT2-XM2) - ELSE - IFLA = IABS(IFL) - IFLA = MOD(IFLA,100) - PPTT = PPT02(IFLA) -c Gaussian distribution - PT = PPTT*SQRT(-LOG(MAX(EPS10,S_RNDM(IFL)))) - IF (IPAR(3).GE.1) THEN - IF(MOD(IFLA,10).NE.0) THEN - XM = QMASS(IFL) - ELSE - XM = 0.5D0 ! pomeron mass - IF(IPAR(3).ge.6) XM = 0.D0 - ENDIF -c exponential transverse mass - XM2 = XM**2 - RNDM = MAX(EPS10,S_RNDM(IFL)) - XMT = PPTT * LOG(RNDM) - XM - XMT2 = XMT**2 - PT = SQRT(XMT2-XM2) - ENDIF - ENDIF - PHI= TWOPI*S_RNDM(IFL) - PX=PT*COS(PHI) - PY=PT*SIN(PHI) - RETURN - END - -C======================================================================= - - SUBROUTINE PTSETUP_4FLV(ECM) - -C----------------------------------------------------------------------- -C moved from sib_ndiff to seperate subroutine -c so that changes will affect diff. /FR'13 -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - - DOUBLE PRECISION PPT02 - COMMON /S_CQDIS2/ PPT02(44) - SAVE - - SQS = ECM - -c NA22 piC retune - PTU=.3D0+.08D0*dlog10(sqs/30.D0) - PTS=.45D0+.08D0*dlog10(sqs/30.D0) - PTQQ=.6D0+.08D0*dlog10(sqs/30.D0) - PTPOM= .6D0+.08D0*dlog10(sqs/30.D0) - if ( IPAR(3).eq.1 ) then -c pt0 - ptu=.15D0+.007D0*dlog10(sqs/20.D0)**2 - pts=.3D0+.007D0*dlog10(sqs/20.D0)**2 - ptqq=.3D0+.03D0*dlog10(sqs/20.D0)**2 - ptpom= .6D0+.08D0*dlog10(sqs/30.D0) - elseif ( IPAR(3).eq.2 ) then -C pt1 - ptu=.15D0+.007D0*dlog10(sqs/20.D0)**2 - pts=.32D0+.007D0*dlog10(sqs/20.D0)**2 - ptqq=.4D0+.007D0*dlog10(sqs/20.D0)**2 - ptpom= .6D0+.08D0*dlog10(sqs/30.D0) -c pt2 - elseif ( IPAR(3).eq.3 ) then - ptu=.17D0+.007D0*dlog10(sqs/20.D0)**2 - pts=.3D0+.007D0*dlog10(sqs/20.D0)**2 - ptqq=.3D0+.03D0*dlog10(sqs/20.D0)**2 - ptpom = .6D0+.08D0*dlog10(sqs/30.D0) - elseif ( IPAR(3).eq.5 ) then - PTU=.16D0+.007D0*dlog10(sqs/20.D0)**2 - PTS=.28D0+.007D0*dlog10(sqs/20.D0)**2 - PTQQ= .3D0+.03D0*dlog10(sqs/20.D0)**2 - PTPOM = .23D0+.03D0*dlog10(sqs/20.D0)**2 - elseif ( IPAR(3).eq.6 ) then - PTU=.16D0+.007D0*dlog10(sqs/20.D0)**2 - PTS=.28D0+.007D0*dlog10(sqs/20.D0)**2 - PTQQ= .3D0+.03D0*dlog10(sqs/20.D0)**2 - PTPOM = .23D0+.03D0*dlog10(sqs/20.D0)**2 - elseif ( IPAR(3).eq.7 ) then - PTU= PAR(46) + .007D0*dlog10(sqs/20.D0)**2 - PTS= PAR(47) + .007D0*dlog10(sqs/20.D0)**2 - PTQQ= PAR(48) + .03D0*dlog10(sqs/20.D0)**2 - PTPOM = PAR(49) + .03D0*dlog10(sqs/20.D0)**2 - elseif ( IPAR(3).eq.8 ) then - ASQS = MAX(log10(SQS/PAR(109)),0.D0) - PTU= PAR(46) + PAR(68)*ASQS**2 - PTS= PAR(47) + PAR(70)*ASQS**2 - PTQQ= PAR(48) + PAR(69)*ASQS**2 - PTPOM = PAR(49) + PAR(51)*ASQS**2 - PTSEA = PAR(67) + PAR(52)*ASQS**2 - endif - PPT02 (1) = PTU - PPT02 (2) = PTU - PPT02 (3) = PTS -c valence pt - PPT02 (10) = PTPOM - DO J=11,33 - PPT02(J) = PTQQ - ENDDO -c soft minijet pt - PPT02 (20) = PTSEA -c sea quark pt - PPT02 (30) = PAR(132) -c charm pt - ASQS = MAX(log10(SQS/30.D0),0.D0) - IF(IPAR(16).eq.8)THEN - PTCHM= PAR(147) + PAR(149)*ASQS - PTCHB= PAR(148) + PAR(149)*ASQS - ELSE -c rc4a charm pt - PTCHM=0.308D0 + .165D0*ASQS - PTCHB=0.5D0 + .165D0*ASQS - ENDIF - PPT02(4) = PTCHM - PPT02(14) = PTCHB - PPT02(24) = PTCHB - DO J=34,44 - PPT02(J) = PTCHB - ENDDO - - IF(ndebug.gt.2)THEN - WRITE(LUN,*)' PTSETUP_4FLV: (sqs,(u,d),s,diq,pom,cm,cb)',sqs - + ,ppt02(1),ppt02(3),ppt02(11), ppt02(10),ppt02(4),ppt02(34) - ENDIF - - RETURN - END -C======================================================================= - - INTEGER FUNCTION IMRG2HAD(IFLB1,IFLB2) - -C----------------------------------------------------------------------- -C ----------------------------------------------------- -C function that merges two flavors into lightest hadron -C ----------------------------------------------------- - IMPLICIT NONE -c flavor merging array - INTEGER KFLV - COMMON /S_KFLV/ KFLV(4,43) - INTEGER IFLB1,IFLB2,IFLA,IFLB,IFL1,IFL2 - SAVE - - IFLA = IFLB1 - IFLB = IFLB2 -c order by flavor, meson: antiquark-quark, baryon: quark-diquark - IF(IFLB.lt.IFLA) CALL ISWTCH_LMNTS(ifla,iflb) -c if antibaryon switch again.. - IF(IFLB.lt.0) CALL ISWTCH_LMNTS(ifla,iflb) - IFL1 = IABS(IFLA) - IFL2 = IABS(IFLB) - IMRG2HAD = ISIGN(KFLV(IFL1,IFL2),IFLB) - END - -C======================================================================= - - SUBROUTINE SAMPLE_SEA_TOT - & (KRMNT,KINT,NSEA,XGAM,XJET,STR_MASS,XSJ,XX) - -C----------------------------------------------------------------------- -C input parameter: xgam,xjet,str_mass, Nsea,KINT,krmnt -c outpt parameter: xsj,xx -C----------------------------------------------------------------------- - IMPLICIT NONE - -c include COMMON blocks - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - -c input/output type definitions - DOUBLE PRECISION XGAM,XJET,STR_MASS,XSEA,XX,XSJ - DIMENSION XX(2*NW_max+2) - - INTEGER NSEA,KINT,KRMNT - -c local type definitions - DOUBLE PRECISION AC,GAMMAX,S_RNDM,XA,XREM,R,Z,Z1,Z2,XMINA - INTEGER j,jj,ilast - SAVE - DATA AC /-0.2761856692D0/ ! log(2) - gamma(Eulero) - - GAMMAX = xgam - XMINA = 2.D0*STR_mass/SQS - IF(IPAR(73).eq.1.and.KINT.gt.1) GAMMAX = PAR(119) - IF(ndebug.gt.3) THEN - WRITE(LUN,*)' IMRG2HAD: called with ', - & '(KRMNT,KINT,NSEA,XGAM,XJET,STR_MASS):', - & KRMNT,KINT,NSEA,XGAM,XJET,STR_MASS - - WRITE(LUN,*)' IMRG2HAD: XMIN,XMIN*N,XREM:', - & XMINA,NSEA*XMINA,1.D0-XJET - ENDIF -c sample total fraction for sea partons.. - Z1 = LOG(DBLE(NSEA)) - 50 Z2 = LOG(0.5D0*SQS*(1.D0-XJET)/STR_MASS-2.D0) - R = S_RNDM(0) - Z=(Z1+AC)*(1.D0+R*(((Z2+AC)/(Z1+AC))**NSEA-1.D0)) - & **(1.D0/DBLE(NSEA))-AC - XSEA = XMINA*EXP(Z) - IF(ndebug.gt.3) WRITE(LUN,*) ' total SEA fraction:' , xsea - IF ( (1.D0-XSEA)**GAMMAX .LT. S_RNDM(1)) GOTO 50 -c maximal fraction remaining for valence.. - 60 XREM = XSEA - DBLE(Nsea)*XMINA - IF(ndebug.gt.3) - & WRITE(LUN,*) ' Xsea,xval,xjet:', - & xsea,1.D0-XSEA-XJET,xjet - -C... Split the energy of sea partons among the different partons - DO j=1,Nsea-1 - jj = 2+j - IF(KRMNT.eq.0) jj = 4+j -c fraction for first parton - XA = XREM*S_RNDM(J) -c for interactions other than first decrease energy fraction -c (beam side hadron can participate in multiple binary collisions) -c IF(KINT.gt.1.and.j.gt.2*KRMNT) XA=SIGN(ABS(XA)**PAR(116),XA) - XX(jj) = XMINA + XA -c new remainder - XREM = XREM - XA - IF(ndebug.gt.3) write(lun,*)' x1,j,rem,xa',xX(jj),jj,xrem,xa - ENDDO -c last parton.. - ilast = 2+Nsea - IF(KRMNT.eq.0) ilast = 4+Nsea - XX(ILAST) = XMINA + XREM - -c break symmetry between nucleon interactions -c first interaction takes most energy - IF(KINT.gt.1.and.IPAR(71).eq.1)THEN - JJ = 3 - IF(KRMNT.eq.0) JJ = 5 - if(ndebug.gt.4) write(lun,*) ' x1+x2,p*xeq:', - & XX(JJ)+XX(JJ+1),PAR(117)*XSEA/KINT - IF(XX(JJ)+XX(JJ+1).lt.PAR(117)*XSEA/KINT) GOTO 60 - ENDIF - - XSJ = XSJ + XSEA - IF(ndebug.gt.3)THEN - write(lun,*)' x1,N,rem',xx(ilast),ilast,xrem - write(lun,*) ' xseajet',xsj - endif - - END -C----------------------------------------------------------------------- -C -C dummy subroutines, remove to link PDFLIB -C -C======================================================================= -c -c SUBROUTINE PDFSET(PARAM,VALUE) -c -c----------------------------------------------------------------------- -c IMPLICIT DOUBLE PRECISION (A-H,O-Z) -c IMPLICIT INTEGER(I-N) -c DIMENSION PARAM(20),VALUE(20) -c CHARACTER*20 PARAM -c END -c -c======================================================================= -c -c SUBROUTINE STRUCTM(XI,SCALE2,UV,DV,US,DS,SS,CS,BS,TS,GL) -c -c----------------------------------------------------------------------- -c IMPLICIT DOUBLE PRECISION (A-H,O-Z) -c IMPLICIT INTEGER(I-N) -c END -c -c======================================================================= -c -c SUBROUTINE STRUCTP(XI,SCALE2,P2,IP2,UV,DV,US,DS,SS,CS,BS,TS,GL) -c -c----------------------------------------------------------------------- -c IMPLICIT DOUBLE PRECISION (A-H,O-Z) -c IMPLICIT INTEGER(I-N) -c END -c -C----------------------------------------------------------------------- -C -C======================================================================= - - SUBROUTINE SIB_NDIFF(K_beam, NW, Ecm, Irec, IREJ) - -C----------------------------------------------------------------------- -C routine that samples and fragments a non-diffractive interaction -C -C 3 stages: 0: setup -C 1: sampling of event structure (number of parton interactions) -C (labeled as 2000) -C 2: sampling of kinematics -C (labeled as 3000) -C 3: fragmentation -C----------------------------------------------------------------------- - IMPLICIT NONE - -c external types - DOUBLE PRECISION ECM - INTEGER K_beam, NW, Irec, IREJ - -c COMMONs - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT -C The final particle output is contained in COMMON /S_PLIST/ -C NP : number of final particles -C P(1:NP, 1:5) : 4-momenta + masses of the final particles -C LLIST (1:NP) : codes of final particles - DOUBLE PRECISION P - INTEGER NP,LLIST,NP_max - PARAMETER (NP_max=8000) - COMMON /S_PLIST/ P(NP_max,5), LLIST(NP_max), NP - - INTEGER NFORIG,NPORIG,NIORIG,IPFLAG,IIFLAG,KINT - COMMON /S_PARTO/ NFORIG(NP_max),NPORIG(NP_max),NIORIG(NP_max), - &IPFLAG,IIFLAG,KINT -C parameters that represent: NW: max. number of wounded nucleons, -C NS,NH: max. number of soft and hard interactions -c PARAMETER (NW_max = 20) -C The COMMON block /S_CHIST/ contains information about the -C the structure of the generated event: -C NWD = number of wounded nucleons -C NJET = total number of hard interactions -C NSOF = total number of soft interactions -C NNSOF (1:NW) = number of soft pomeron cuts in each interaction -C NNJET (1:NW) = number of minijets produced in each interaction -C JDIF(1:NW) = diffraction code -C 0 : non-diff, -C 1 : beam-diff -C 2 : target-diff -C 3 : double-diff - INTEGER NNSOF,NNJET,JDIF,NWD,NJET,NSOF - COMMON /S_CHIST/ NNSOF(NW_max),NNJET(NW_max), - & JDIF(NW_max),NWD,NJET,NSOF - INTEGER NS_max, NH_max - PARAMETER (NS_max = 20, NH_max = 80) - - INTEGER IBMRDX,ITGRDX,IHMJDX,ISMJDX,ICSTDX,IINTDX - COMMON /S_INDX/ IBMRDX(3),ITGRDX(NW_max,3), - & IHMJDX(NW_max*NH_max),IINTDX(NW_max), - & ISMJDX(NW_max*NS_max),ICSTDX(2*NW_max,3) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - INTEGER ITRY, NREJ - COMMON /S_CNT/ ITRY(20), NREJ(20) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - -c internal type declarations - DOUBLE PRECISION X2JET,SQS_0,PZ,E2,PAWT,xnsof,xnjet,xjdif,x1jet, - & Esum,PXsum,PYsum,PZsum - DIMENSION X2JET(NW_max) - INTEGER LL,LXBAD,NP_0,NPP_0,NPP0_0,J,JJ,I,KBA,L,NPP_1,NPP0_1, - & IREFout,IREF,nj,ns,nv,II,Idm,LPID,NF,NPP,NPP0 - DIMENSION LL(99) - SAVE - DATA LL /5*0,7*2,2*1,12*0,2,6*0,6*1,19*0,2,2,10*0, - & 2,2,0,2,2,11*0,1,1,1,9*0,1/ - - -C.. setup stage - IREJ = 1 -c default return point is kinematic sampling stage - LXBAD = 3 - -c remember initial setup - NP_0 = NP - SQS_0 = SQS -c remember position on parton stack - CALL GET_NPP(NPP_0,NPP0_0) - -c set interaction properties -c IF(Irec.ne.1) CALL INI_EVENT(ECM,K_beam,Idm,Irec) - - IF(ndebug.gt.0)then - IF(Irec.eq.0)THEN - WRITE(LUN,*) - & ' SIB_NDIFF: recursive call with (ecm,kb,kt,np,jdif):', - & ecm,k_beam,kt(1),(jdif(j),j=1,NW),NP - ELSE - WRITE(LUN,*)' SIB_NDIFF: regular call with (ECM,KB,NW,KT,', - & 'JDIF,NP):',ecm,k_beam,NW,(kt(ii),ii=1,NW), - & (jdif(j),j=1,NW),NP - ENDIF - ENDIF - - 2000 CONTINUE - -c reset parton stack - CALL INI_PRTN_STCK(NPP_0,NPP0_0) - -C... sample multiple interaction configuration - KBA = IABS(K_beam) - L = LL(KBA) - DO I=1,NW - if(JDIF(I).eq.0) then - CALL CUT_PRO(L, SQS, PTmin, NNSOF(I), NNJET(I)) - else - NNSOF(I) = 1 - NNJET(I) = 0 - endif -c add incoming target particles - PZ = PAWT(SQS,AM(KBA),AM(KT(I))) - E2 = SQRT(PZ**2+AM2(KT(I))) - CALL ADD_PRTN(0.D0,0.D0,-PZ,E2,AM(KT(I)),KT(I),-2,0,IREFout) - -c add interactions - xjdif = dble(jdif(I)) - xnjet = dble(nnjet(I)) - xnsof = dble(nnsof(I)) - CALL ADD_PRTN(xnsof,xnjet,xjdif,sqs,0.D0,I,-1,IREFout,IREF) -c write parton stack index to interaction index - IINTDX(I) = IREF - ENDDO -c remember state of parton stack - CALL GET_NPP(NPP_1,NPP0_1) - -C... kinematic sampling stage - -C... sample x values - ITRY(1) = 0 - 3000 CONTINUE - ITRY(1) = ITRY(1)+1 - IF(ITRY(1).GT.NREJ(1)) THEN -c NCALL = NCALL + 1 - GOTO 2000 - ENDIF - NP = NP_0 - CALL INI_PRTN_STCK(NPP_1,NPP0_1) - - CALL SAMPLE_MINIJET(L,NW,NNJET,NNSOF,NJET,NSOF,x1jet,x2jet,lxbad) - IF(LXBAD.eq.3)THEN -c reject kinematics - GOTO 3000 - ELSEIF(LXBAD.eq.2)THEN -c reject kinematics and event structure -c NCALL = NCALL + 1 - GOTO 2000 - ELSEIF(LXBAD.eq.1)THEN -c reject entire event - if(Ndebug.gt.0) - & WRITE(LUN,*)' SIB_NDIFF: minijet rejection (Ncall):',Ncall -c restore initial state - NP = NP_0 - CALL INI_PRTN_STCK(NPP_0,NPP0_0) - SQS = SQS_0 - S = SQS*SQS - RETURN - ENDIF - -C... Prepare 2*NW valence/sea color strings and/or remnant. - -c default return point, jump back to sampling interaction structure -c LXBAD = 2 - CALl SAMPLE_RMNT(K_beam,NW,X1Jet,X2JET,Irec,LXBAD) - IF(LXBAD.eq.3)THEN -c reject kinematics - GOTO 3000 - ELSEIF(LXBAD.eq.2)THEN -c reject kinematics and event structure -c NCALL = NCALL + 1 - GOTO 2000 - ELSEIF(LXBAD.eq.1)THEN -c reject entire event - if(Ndebug.gt.0) - & WRITE(LUN,*)' SIB_NDIFF: rmnt rejection (Ncall,NW):',Ncall,NW -c restore initial state - NP = NP_0 - CALL INI_PRTN_STCK(NPP_0,NPP0_0) - SQS = SQS_0 - S = SQS*SQS - RETURN - ENDIF - -C Check parton final state.. - CALL GET_NPP(NPP,NPP0) - CALL PPSUM(1,NPP,Esum,PXsum,PYsum,PZsum,NF) - IF(ABS(Esum/(0.5D0*Ecm*DBLE(NW+1))-1.D0).GT.EPS3)THEN - WRITE(LUN,*) ' SIB_NDIFF: energy not conserved! : ',Ncall - WRITE(LUN,*) ' sqs_inp = ', Ecm, ' sqs_out = ', Esum - CALL PRNT_PRTN_STCK - WRITE(LUN,*) ' SIB_NDIFF: event rejected! ', - & 'partons do not conserve energy' - WRITE(LUN,*)' (Ncall,NW,NPP,NJET,NSOF):',Ncall,NW,NPP,NJET,NSOF -c CALL SIB_REJECT('SIB_NDIFF ') -c restore initial state - NP = NP_0 - CALL INI_PRTN_STCK(NPP_0,NPP0_0) - SQS = SQS_0 - S = SQS*SQS - RETURN - ENDIF - IF(NDEBUG.gt.0) THEN - IF(NDEBUG.gt.1) CALL PRNT_PRTN_STCK - WRITE(LUN,*) ' SIB_NDIFF: entering fragmentation stage...' - ENDIF - -C... Fragmentation stage - nj = 0 - ns = 0 - nv = 0 - II = NPP0_0+1 - DO WHILE (II.gt.0) -c default return point: reject event if fragmentation fails - LXBAD = 1 -c loop over level0 partons - CALL ITR_LVL0_PRTN(II,JJ,LPID) -c read interaction - CALL RD_INT(jj,Idm,iiflag) - -C... Fragmentation of soft/hard sea color strings - IF(LPID.eq.100)THEN - nj = nj + 1 - ipflag = 100 - KINT = nj - CALL FRAG_MINIJET(jj,LXBAD) - IF(LXBAD.ne.0) RETURN - - ELSEIF(LPID.eq.10)THEN - ns = ns + 1 - ipflag = 10 - KINT = ns - CALL FRAG_MINIJET(jj,LXBAD) - IF(LXBAD.ne.0) RETURN - -C... fragment 'valence' strings - ELSEIF(LPID.eq.1)THEN - nv = nv + 1 - KINT = nv - ipflag = 1 - CALL FRAG_VLNCE(jj,LXBAD) - IF(LXBAD.ne.0) RETURN - -C... fragment remnants - ELSEIF(IABS(LPID).eq.2)THEN - CALL EXCTDEC(JJ,LXBAD) - IF(LXBAD.ne.0) RETURN - -C... fragment incoherent diffraction - ELSEIF(LPID.eq.-10.or.LPID.eq.-20.or.LPID.eq.-30)THEN - CALL FRAG_INCHRNT_DIFF(jj,lxbad) - IF(LXBAD.ne.0) RETURN - - ENDIF - ENDDO - IREJ = 0 - - END -C======================================================================= - - SUBROUTINE SAMPLE_RMNT(Kbeam,NW,X1JET,X2JET,Irec,LBAD) - -C----------------------------------------------------------------------- -C routine to sample remnants -C----------------------------------------------------------------------- - IMPLICIT NONE - INTEGER NW_max - PARAMETER (NW_max = 20) - INTEGER ITRY, NREJ - COMMON /S_CNT/ ITRY(20), NREJ(20) - -c external type declarations - DOUBLE PRECISION X1JET,X2JET - DIMENSION X2JET(NW_max) - INTEGER KBEAM,NW,IREC,LBAD - -C COMMONs - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) -C parameters that represent: NW: max. number of wounded nucleons, -C NS,NH: max. number of soft and hard interactions -c PARAMETER (NW_max = 20) -C The COMMON block /S_CHIST/ contains information about the -C the structure of the generated event: -C NWD = number of wounded nucleons -C NJET = total number of hard interactions -C NSOF = total number of soft interactions -C NNSOF (1:NW) = number of soft pomeron cuts in each interaction -C NNJET (1:NW) = number of minijets produced in each interaction -C JDIF(1:NW) = diffraction code -C 0 : non-diff, -C 1 : beam-diff -C 2 : target-diff -C 3 : double-diff - INTEGER NNSOF,NNJET,JDIF,NWD,NJET,NSOF - COMMON /S_CHIST/ NNSOF(NW_max),NNJET(NW_max), - & JDIF(NW_max),NWD,NJET,NSOF - - INTEGER IRMNT,KRB,KRT - DOUBLE PRECISION XRMASS,XRMEX - COMMON /S_RMNT/ XRMASS(2),XRMEX(2),IRMNT(NW_max),KRB,KRT(NW_max) - - INTEGER ICHP,ISTR,IBAR - COMMON /S_CHP/ ICHP(99), ISTR(99), IBAR(99) - - INTEGER IISO,ISPN - COMMON /S_SPN/ IISO(99), ISPN(99) - - INTEGER ICHM - COMMON /S_CHM/ ICHM(99) - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - -c internals - DOUBLE PRECISION PREM,PREM_NUC,R,R2,S_RNDM,FLVXCHG,ALPH - INTEGER ITGRMNT,IBMRMNT,I,j,jj,K,NPPLD,NPP0LD,IBMRMNT_OLD, - & IBAD,IKBAD,KBM - DIMENSION ITGRMNT(NW_max) - SAVE - DATA PREM /0.D0/ , PREM_NUC /0.D0/ - - IF(Ndebug.gt.1) - & WRITE(LUN,*)' SAMPLE_RMNT: called with (Kbeam,NW,X1JET,', - & 'X2JET,JDIF,Irec):',Kbeam,NW,X1JET,(X2JET(JJ),JJ=1,NW), - & (JDIF(JJ),JJ=1,NW),Irec - - IF(Irec.eq.0.and.NW.ne.1)then - WRITE(LUN,*)' SAMPLE_RMNT: recursive call inconsistent!' - CALL SIB_REJECT('SAMPLE_RMNT ') - endif - -c default return point for remnant excitation routine: -c beam and target sampling - IBAD = 1 - -c set trial counter - ITRY(2) = 0 -c remember position on parton stack - CALL GET_NPP(NPPLD,NPP0LD) - -C... sample no. of remnants -c ibmrmnt: 0,1..NW : number of excitations on beamside -C itgrmnt: 0,1 : target side excitation - -c prob. of remnant excitation - IF(IPAR(78).ne.0)THEN - PREM = PAR(23) - PREM_NUC = PAR(23) - IF(IPAR(84).eq.2.and.IBAR(IABS(KBeam)).eq.0) - & PREM = PAR(140) - ENDIF - -c define Prem as probablility for remnant survival -c switch to sampling of remnant de-excitation - IF(IPAR(79).ne.0) PREM = 1.D0-PREM - -c prob. of remnant excitation target side - IF(IPAR(79).ne.0) PREM_NUC = 1.D0-PAR(23) - IF(IPAR(63).eq.1) PREM_NUC = PREM_NUC/dble(NW) - -c turn of remnant for Nw>1 - IF(IPAR(77).eq.1)THEN -c only beamside - IF(NW.gt.1) PREM = 0 - ELSEIF(IPAR(77).eq.2)THEN -c target and beam-side - IF(NW.gt.1) then - PREM = 0.D0 - PREM_NUC = 0.D0 - endif - ELSE - CONTINUE - ENDIF - -C... remnant mass dis. exponents - XRMEX(1) = PAR(98) ! baryons - IF(IPAR(84).gt.0)THEN - XRMEX(2) = PAR(141) ! mesons - else - XRMEX(2) = PAR(98) ! mesons same as baryons - endif - - IBMRMNT = 0 - DO K=1, NW -c additionally penalize remnant survival for multiple nucleon interactions - IF(IPAR(79).eq.2.and.K.gt.1) PREM=1.D0-PAR(23)*PAR(128) -c penalize remnant survival for multiple parton interactions - IF(IPAR(80).ne.0) THEN -c multiple interaction penalty for remnant survival, individual interaction - ALPH = 1.D0+PAR(129)*DBLE(NNSOF(K)+NNJET(K)-1) - PREM = 1.D0-(1.D0-PREM)**ALPH - PREM_NUC = 1.D0-(1.D0-PREM_NUC)**ALPH - ENDIF - IF(JDIF(K).eq.0)THEN - R = S_RNDM(k) - R2 = S_RNDM(0) - IF(R.LT.PREM) IBMRMNT = IBMRMNT + 1 -c no target side excitation if recursive call (irec=0)! - IF(R2.LT.PREM_NUC*Irec) THEN - ITGRMNT(K) = 1 - ELSE - ITGRMNT(K) = 0 - ENDIF - ELSE - ITGRMNT(K) = 0 - ENDIF - IF(Ndebug.gt.1) - & WRITE(LUN,'(2X,A,1X,I2,1X,F5.3,1X,I2,1X,I2,1X,I2,1X,I2)') - & 'SAMPLE_RMNT: (JW,PREM,NS,NH,IBMRMNT,LTGRMNT):', - & K,PREM,NNSOF(k),NNJET(k),IBMRMNT,ITGRMNT(k) - ENDDO - IF(IPAR(79).ne.0)THEN -c Prem was redefined as probablility for remnant destruction -c therefore invert configuration.. - DO K=1, NW - IF(JDIF(K).eq.0)THEN - ITGRMNT(K)=IABS(ITGRMNT(K)-1) - ENDIF - ENDDO -c multiple de-excitations not possible.. - IBMRMNT=MIN(IBMRMNT,1) - IBMRMNT=IABS(IBMRMNT-1)*Irec - ENDIF - IF(Ndebug.gt.1) - & WRITE(LUN,*) - & ' SAMPLE_RMNT: remnant sampling (PREM,NW,LBMRMNT,LTGRMNT): ', - & PREM,NW,IBMRMNT,(ITGRMNT(j),j=1,NW) - - IBMRMNT_OLD = IBMRMNT - -C... Sample flavor and momentum fractions - 20 ITRY(2) = ITRY(2) + 1 -c reset parton stack - CALL INI_PRTN_STCK(NPPLD,NPP0LD) - IBMRMNT = IBMRMNT_OLD - -c retry without counting -c 22 CONTINUE - IF(ITRY(2).gt.NREJ(2))THEN - LBAD = 2 - IF(ndebug.gt.1)then - WRITE(LUN,*)' SAMPLE_RMNT: number of trials exceeded' - WRITE(LUN,*)' resample minijets...(IREJ,NW,NCALL)', - & LBAD, NW, NCALL - endif -c raise event call counter -c NCALL = NCALL + 1 - RETURN - ENDIF - - Kbm = Kbeam - -C.. sample central strings and remnant flavor - flvXchg = PAR(80) ! prob. of flv exchange between strgs and rmnt -c remnant and sea on beam side - CALL SAMPLE_BEAM(Kbm,NW,flvXchg,IBMRMNT,X1JET,IKBAD) - IF(IKBAD.eq.1)THEN -c resample minijets event - LBAD = 3 - RETURN - ELSEIF(IKBAD.eq.2)THEN -c too many partons, reject NW, i.e. entire event - LBAD = 1 - RETURN - ENDIF - -c remnants and sea on target side - CALL SAMPLE_TARGET(NW,flvXchg,ITGRMNT,X2JET,Irec,IKBAD) - IF(IKBAD.eq.1)THEN -c resample minijets event - LBAD = 3 - RETURN - ELSEIF(IKBAD.eq.2)THEN -c too many partons, reject NW, i.e. entire event - LBAD = 1 - RETURN - ENDIF - -C... sample remnant excitation masses and add to parton stack -c beam-side (one remnant, formed by several interactions) -c target-side (possibly NW remnants) - - DO I=1,NW -c default return point - IBAD = 1 - IF(IPAR(78).EQ.1)THEN -c$$$ write(lun,*) -c$$$ & ' SIB_RMNT: multiple excitation model', -c$$$ & ' not implemented yet!' -c$$$ stop -c model where beam side remnant can receive mass from multiple target nucleons - IF(IBMRMNT.gt.0)THEN -c beam side remnant excited - if(ITGRMNT(I).eq.0)then - CALL EXCT_RMNT(I,1,IBAD) - else - CALL EXCT_RMNT(I,3,IBAD) - endif - IBMRMNT = IBMRMNT - 1 - ELSE -c beam side remnant not excited - if(ITGRMNT(I).ne.0)then - CALL EXCT_RMNT(I,2,IBAD) - else - CALL EXCT_RMNT(I,0,IBAD) - endif - ENDIF - - ELSEIF(IPAR(78).eq.2)then - IF(IBMRMNT.gt.0)then -c beam side remnant excited, only once! - IF(ITGRMNT(I).eq.0)then - CALL EXCT_RMNT(I,1,IBAD) - else - CALL EXCT_RMNT(I,3,IBAD) - endif - IBMRMNT = 0 - ELSE -c beam side remnant not excited - IF(ITGRMNT(I).ne.0)then - CALL EXCT_RMNT(I,2,IBAD) - else - CALL EXCT_RMNT(I,0,IBAD) - endif - ENDIF - ELSE -c no remnant model - CALL EXCT_RMNT(I,0,IBAD) - ENDIF -c catch remant excitation exception, redo sea kinematics.. - IF(IBAD.eq.1) GOTO 20 -c catch severe exception, resample minijet kinematics.. - IF(IBAD.eq.2) THEN - LBAD = 3 - RETURN ! resample event - ENDIF - ENDDO - LBAD = 0 - - END -C======================================================================= - - SUBROUTINE SIB_HADCSL(L,ECM,SIGTOT,SIGEL,SIGINEL,SIGDIF,SLOPE,RHO) - -C----------------------------------------------------------------------- -C low-energy cross section parametrizations (target always proton) -C -C input: L beam particle: (1 - proton, -C 2 - pion, -C 3 - kaon) -C target is always proton -C ECM c.m. energy (GeV) -C -C output: SIGTOT total cross section (mb) -C SIGEL elastic cross section (mb) -C SIGDIF diffractive cross section (sd-1,sd-2,dd, mb) -C SLOPE forward elastic slope (GeV**-2) -C RHO real/imaginary part of elastic amplitude -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - DIMENSION SIGDIF(3) - - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - SAVE - -C proton-proton cross section as reference - CALL SIB_HADCS1(1,ECM,SIGTOT,SIGEL,SIGINEL,SLOPE,RHO) - -C parametrization for diffraction - Xi_min = 1.5D0/(ECM*ECM) - Xi_max = PAR(13) - SIGeff = SIGEL - CALL SIB_HADCS2(ECM,Xi_min,Xi_max,SIGeff,SIGDIF) - - if(L.eq.1) return - -C regge motivated rescaling of diffraction dissociation - sigtot_pp = SIGTOT - sigel_pp = SIGEL - slope_pp = SLOPE - CALL SIB_HADCS1(L,ECM,SIGTOT,SIGEL,SIGINEL,SLOPE,RHO) - SIGDIF(1) = slope_pp/SLOPE*SIGTOT/sigtot_pp*SIGDIF(1) - SIGDIF(2) = slope_pp/SLOPE*SIGEL/sigel_pp*SIGDIF(2) - SIGDIF(3) = SIGTOT/sigtot_pp*SIGDIF(3) - - END - -C======================================================================= - - SUBROUTINE SIB_HADCS1(L,ECM,SIGTOT,SIGEL,SIGINEL,SLOPE,RHO) - -C----------------------------------------------------------------------- -C low-energy cross section parametrizations -C -C input: L beam particle: (1 - proton, -C 2 - pion, -C 3 - kaon) -C target is always proton -C ECM c.m. energy (GeV) -C -C output: SIGTOT total cross section (mb) -C SIGEL elastic cross section (mb) -C SIGDIF diffractive cross section (sd-1,sd-2,dd, mb) -C SLOPE forward elastic slope (GeV**-2) -C RHO real/imaginary part of elastic amplitude -C -C comments: -C - low-energy data interpolation uses PDG fits from 1992 -C - slopes from ???, new fit to pp data -C - high-energy extrapolation by Donnachie-Landshoff like fit made -C by PDG 1996 -C - analytic extension of amplitude to calculate rho -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - DIMENSION TPDG92(7,2,6),TPDG96(9,6),BURQ83(3,6),XMA(6) - SAVE - - DATA TPDG92 / - & 3.D0, 2100.D0, 48.D0, 0.D0, 1.D0, 0.522D0, -4.51D0, - & 3.D0, 2100.D0, 11.9D0, 26.9D0, -1.21D0, 0.169D0, -1.85D0, - & 5.D0, 2100.D0, 38.4D0, 77.6D0, -0.64D0, 0.26D0, -1.2D0, - & 5.D0, 2100.D0, 10.2D0, 52.7D0, -1.16D0, 0.125D0, -1.28D0, - & 4.D0, 340.D0, 16.4D0, 19.3D0, -0.42D0, 0.19D0, 0.D0, - & 4.D0, 340.D0, 0.D0, 11.4D0, -0.4D0, 0.079D0, 0.D0, - & 2.5D0, 370.D0, 33.D0, 14.D0, -1.36D0, 0.456D0, -4.03D0, - & 2.5D0, 370.D0, 1.76D0, 11.2D0, -0.64D0, 0.043D0, 0.D0, - & 2.D0, 310.D0, 18.1D0, 0.D0, 1.D0, 0.26D0, -1.D0, - & 2.D0, 310.D0, 5.D0, 8.1D0, -1.8D0, 0.16D0, -1.3D0, - & 3.D0, 310.D0, 32.1D0, 0.D0, 1.D0, 0.66D0, -5.6D0, - & 3.D0, 310.D0, 7.3D0, 0.D0, 1.D0, 0.29D0, -2.4D0 / - - DATA TPDG96 / - & 50.D0, 22.D0,0.079D0,0.25D0,0.D0, - & 77.15D0,-21.05D0,0.46D0,0.9D0, - & 50.D0, 22.D0,0.079D0,0.25D0,0.D0, - & 77.15D0,21.05D0,0.46D0,0.9D0, - & 10.D0, 13.70D0,0.079D0,0.25D0,0.D0, - & 31.85D0,-4.05D0,0.45D0,0.9D0, - & 10.D0, 13.70D0,0.079D0,0.25D0,0.D0, - & 31.85D0,4.05D0,0.45D0,0.9D0, - & 10.D0, 12.20D0,0.079D0,0.25D0,0.D0, - & 17.35D0,-9.05D0,0.50D0,0.9D0, - & 10.D0, 12.20D0,0.079D0,0.25D0,0.D0, - & 17.35D0,9.05D0,0.50D0,0.9D0 / - - DATA BURQ83 / - & 8.557D0, 0.00D0, 0.574D0, - & 11.13D0, 7.23D0, 0.30D0, - & 9.11D0, -0.73D0, 0.28D0, - & 9.11D0, 0.65D0, 0.28D0, - & 8.55D0, -5.98D0, 0.28D0, - & 8.55D0, 1.60D0, 0.28D0 / - -c DATA XMA / 2*0.93956563D0, 2*0.13956995D0, 2*0.493677D0 / - DATA GEV2MB /0.389365D0/ - DATA INIT/0/ - - IF(INIT.EQ.0) THEN -c use the internal masses - XMA(1) = AM(13) ! proton - XMA(2) = AM(14) ! neutron - XMA(3) = AM(7) ! pi+ - XMA(4) = AM(8) ! pi- - XMA(5) = AM(9) ! K+ - XMA(6) = AM(10) ! K- - INIT = 1 - ENDIF - -C find index - IF (L.eq.1) THEN - K = 1 ! p p - ELSEIF(L.eq.2) THEN - K = 3 ! pi+ p -* K = 4 ! pi- p - ELSEIF(L.eq.3) THEN - K = 5 ! K+ p -* K = 6 ! K- p - ELSE - GOTO 100 - ENDIF - -C calculate lab momentum - SS = ECM**2 - E1 = (SS-XMA(1)**2-XMA(K)**2)/(2.D0*XMA(1)) - PL = dSQRT((E1-XMA(K))*(E1+XMA(K))) - PLL = dLOG(PL) - -C check against lower limit - IF(ECM.LE.XMA(1)+XMA(K)) GOTO 200 - - XP = TPDG96(2,K)*SS**TPDG96(3,K) - YP = TPDG96(6,K)/SS**TPDG96(8,K) - YM = TPDG96(7,K)/SS**TPDG96(8,K) - - PHR = dTAN(PI/2.D0*(1.D0-TPDG96(8,K))) - PHP = dTAN(PI/2.D0*(1.D0+TPDG96(3,K))) - RHO = (-YP/PHR + YM*PHR - XP/PHP)/(YP+YM+XP) - - SLOPE = BURQ83(1,K)+BURQ83(2,K)/dSQRT(PL)+BURQ83(3,K)*PLL - -C select energy range and interpolation method - IF(PL.LT.TPDG96(1,K)) THEN - SIGTOT = TPDG92(3,1,K)+TPDG92(4,1,K)*PL**TPDG92(5,1,K) - & + TPDG92(6,1,K)*PLL**2+TPDG92(7,1,K)*PLL - SIGEL = TPDG92(3,2,K)+TPDG92(4,2,K)*PL**TPDG92(5,2,K) - & + TPDG92(6,2,K)*PLL**2+TPDG92(7,2,K)*PLL - ELSE IF(PL.LT.TPDG92(2,1,K)) THEN - SIGTO1 = TPDG92(3,1,K)+TPDG92(4,1,K)*PL**TPDG92(5,1,K) - & + TPDG92(6,1,K)*PLL**2+TPDG92(7,1,K)*PLL - SIGEL1 = TPDG92(3,2,K)+TPDG92(4,2,K)*PL**TPDG92(5,2,K) - & + TPDG92(6,2,K)*PLL**2+TPDG92(7,2,K)*PLL - SIGTO2 = YP+YM+XP - SIGEL2 = SIGTO2**2/(16.D0*PI*SLOPE*GEV2MB)*(1.D0+RHO**2) - X2 = dLOG(PL/TPDG96(1,K))/dLOG(TPDG92(2,1,K)/TPDG96(1,K)) - X1 = 1.D0 - X2 - SIGTOT = SIGTO2*X2 + SIGTO1*X1 - SIGEL = SIGEL2*X2 + SIGEL1*X1 - ELSE - SIGTOT = YP+YM+XP - SIGEL = SIGTOT**2/(16.D0*PI*SLOPE*GEV2MB)*(1.D0+RHO**2) - ENDIF - SIGINEL = SIGTOT-SIGEL - - RETURN - - 100 CONTINUE - WRITE(LUN,'(1X,2A,2I7)') ' SIB_HADCS1: ', - & 'invalid beam particle: ',L - RETURN - - 200 CONTINUE - WRITE(LUN,'(1X,2A,1P,E12.4)') ' SIB_HADCS1: ', - & 'energy too small (Ecm): ',ECM - - END -C======================================================================= - - SUBROUTINE SIB_HADCS2(SQS,Xi_min,Xi_max,SIGeff,SIGDIF) - -C----------------------------------------------------------------------- -C cross section for diffraction dissociation -C -C - single diffraction dissociation: -C Goulianos' parametrization (Ref: PL B358 (1995) 379) -C - double diffration dissociation: simple scaling model using -C single diff. cross section -C -C in addition rescaling for different particles is applied using -C internal rescaling tables (not implemented yet) -C -C input: SQS c.m. energy (GeV) -C Xi_min min. diff mass (squared) = Xi_min*SQS**2 -C Xi_max max. diff mass (squared) = Xi_max*SQS**2 -C SIGeff effective cross section for DD scaling -C -C output: sig_sd1 cross section for diss. of particle 1 (mb) -C sig_sd2 cross section for diss. of particle 2 (mb) -C sig_dd cross section for diss. of both particles -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - DIMENSION SIGDIF(3) - DIMENSION Xpos1(96),Xwgh1(96),Xpos2(96),Xwgh2(96) - DOUBLE PRECISION xil,xiu,tl,tu - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - SAVE - -C model parameters - DATA delta / 0.104D0 / - DATA alphap / 0.25D0 / - DATA beta0 / 6.56D0 / - DATA gpom0 / 1.21D0 / - DATA xm_p / 0.938D0 / - DATA x_rad2 / 0.71D0 / - -C integration precision - DATA Ngau1 / 32 / - DATA Ngau2 / 32 / - - DATA GEV2MB /0.389365D0/ - - SIGDIF(1) = 0.D0 - SIGDIF(2) = 0.D0 - SIGDIF(3) = 0.D0 - - XIL = dLOG(Xi_min) - XIU = dLOG(Xi_max) - - if(XIL.ge.XIU) return - - SS = SQS*SQS - xm4_p2 = 4.D0*xm_p**2 - fac = beta0**2/(16.D0*PI) - - t1 = -5.D0 - t2 = 0.D0 - tl = x_rad2/3.D0/(1.D0-t1/x_rad2)**3 - tu = x_rad2/3.D0/(1.D0-t2/x_rad2)**3 - -C flux renormalization and cross section for pp/ppbar case - - Xnorm = 0.D0 - - xil = dlog(1.5D0/SS) - xiu = dlog(0.1D0) - - IF(xiu.LE.xil) goto 1000 - - CALL SIB_GAUSET(xil,xiu,Ngau1,xpos1,xwgh1) - CALL SIB_GAUSET(tl,tu,Ngau2,xpos2,xwgh2) - - do i1=1,Ngau1 - - xi = dexp(xpos1(i1)) - w_xi = Xwgh1(i1) - - do i2=1,Ngau2 - - tt = x_rad2-x_rad2*(x_rad2/(3.D0*xpos2(i2)))**(1.D0/3.D0) - - alpha_t = 1.D0+delta+alphap*tt - f2_t = ((xm4_p2-2.8D0*tt)/(xm4_p2-tt))**2 - - Xnorm = Xnorm - & + f2_t*xi**(2.D0-2.D0*alpha_t)*Xwgh2(i2)*w_xi - - enddo - enddo - - Xnorm = Xnorm*fac - - 1000 continue - - XIL = dLOG(Xi_min) - XIU = dLOG(Xi_max) - - T1 = -5.D0 - T2 = 0.D0 - - TL = x_rad2/3.D0/(1.D0-t1/x_rad2)**3 - TU = x_rad2/3.D0/(1.D0-t2/x_rad2)**3 - -C single diffraction diss. cross section - - CSdiff = 0.D0 - - CALL SIB_GAUSET(XIL,XIU,NGAU1,XPOS1,XWGH1) - CALL SIB_GAUSET(TL,TU,NGAU2,XPOS2,XWGH2) - - do i1=1,Ngau1 - - xi = dexp(xpos1(i1)) - w_xi = Xwgh1(i1)*beta0*gpom0*(xi*ss)**delta - - do i2=1,Ngau2 - - tt = x_rad2-x_rad2*(x_rad2/(3.D0*xpos2(i2)))**(1.D0/3.D0) - - alpha_t = 1.D0+delta+alphap*tt - f2_t = ((xm4_p2-2.8D0*tt)/(xm4_p2-tt))**2 - - CSdiff = CSdiff - & + f2_t*xi**(2.D0-2.D0*alpha_t)*Xwgh2(i2)*w_xi - - enddo - enddo - - CSdiff = CSdiff*fac*GEV2MB/MAX(1.D0,Xnorm) - -* write(LUN,'(1x,1p,4e14.3)') -* & sqrt(SS),Xnorm,2.d0*CSdiff*MAX(1.d0,Xnorm),2.d0*CSdiff - - SIGDIF(1) = CSdiff - SIGDIF(2) = CSdiff - -C double diff. dissociation from simple probability consideration -* Pdiff = 0.5d0-sqrt(0.25d0-CSdiff/SIGeff) - Pdiff = CSdiff/SIGeff - SIGDIF(3) = Pdiff*Pdiff*SIGeff - - END -C======================================================================= - - SUBROUTINE SIB_GAUSET(AX,BX,NX,Z,W) - -C----------------------------------------------------------------------- -C -C N-point gauss zeros and weights for the interval (AX,BX) are -C stored in arrays Z and W respectively. -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) -C - COMMON /GQCOM/A(273),X(273),KTAB(96) - DIMENSION Z(NX),W(NX) - SAVE - DATA INIT/0/ -C - ALPHA=0.5D0*(BX+AX) - BETA=0.5D0*(BX-AX) - N=NX -* -* the N=1 case: - IF(N.NE.1) GO TO 1 - Z(1)=ALPHA - W(1)=BX-AX - RETURN -* -* the Gauss cases: - 1 IF((N.LE.16).AND.(N.GT.1)) GO TO 2 - IF(N.EQ.20) GO TO 2 - IF(N.EQ.24) GO TO 2 - IF(N.EQ.32) GO TO 2 - IF(N.EQ.40) GO TO 2 - IF(N.EQ.48) GO TO 2 - IF(N.EQ.64) GO TO 2 - IF(N.EQ.80) GO TO 2 - IF(N.EQ.96) GO TO 2 -* -* the extended Gauss cases: - IF((N/96)*96.EQ.N) GO TO 3 -* -C jump to center of intervall intrgration: - GO TO 100 -* -C get Gauss point array -* - 2 CALL PO106BD -C -print out message -* IF(INIT.LE.20)THEN -* INIT=init+1 -* WRITE (6,*) ' initialization of Gauss int. N=',N -* ENDIF -C extract real points - K=KTAB(N) - M=N/2 - DO 21 J=1,M -C extract values from big array - JTAB=K-1+J - WTEMP=BETA*A(JTAB) - DELTA=BETA*X(JTAB) -C store them backward - Z(J)=ALPHA-DELTA - W(J)=WTEMP -C store them forward - JP=N+1-J - Z(JP)=ALPHA+DELTA - W(JP)=WTEMP - 21 CONTINUE -C store central point (odd N) - IF((N-M-M).EQ.0) RETURN - Z(M+1)=ALPHA - JMID=K+M - W(M+1)=BETA*A(JMID) - RETURN -C -C get ND96 times chained 96 Gauss point array -C - 3 CALL PO106BD -C print out message - IF(INIT.LE.20)THEN - INIT=init+1 - WRITE (6,*) ' initialization of extended Gauss int. N=',N - ENDIF -C -extract real points - K=KTAB(96) - ND96=N/96 - DO 31 J=1,48 -C extract values from big array - JTAB=K-1+J - WTEMP=BETA*A(JTAB) - DELTA=BETA*X(JTAB) - WTeMP=WTEMP/ND96 - DeLTA=DELTA/ND96 - DO 32 JD96=0,ND96-1 - ZCNTR= (ALPHA-BETA)+ BETA*DBLE(2*JD96+1)/DBLE(ND96) -C store them backward - Z(J+JD96*96)=ZCNTR-DELTA - W(J+JD96*96)=WTEMP -C store them forward - JP=96+1-J - Z(JP+JD96*96)=ZCNTR+DELTA - W(JP+JD96*96)=WTEMP - 32 CONTINUE - 31 CONTINUE - RETURN -* -C the center of intervall cases: - 100 CONTINUE -C print out message - IF(INIT.LE.20)THEN - INIT=init+1 - WRITE (6,*) ' init. of center of intervall int. N=',N - ENDIF -C put in constant weight and equally spaced central points - N=IABS(N) - DO 111 IN=1,N - WIN=(BX-AX)/DBLE(N) - Z(IN)=AX + (DBLE(IN)-.5D0)*WIN - 111 W(IN)=WIN - RETURN - END - -C======================================================================= - - SUBROUTINE PO106BD - -C----------------------------------------------------------------------- -C -C store big arrays needed for Gauss integral, CERNLIB D106BD -C (arrays A,X,ITAB copied on B,Y,LTAB) -C -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) -C - COMMON /GQCOM/ B(273),Y(273),LTAB(96) - DIMENSION A(273),X(273),KTAB(96) - SAVE -C -C-----TABLE OF INITIAL SUBSCRIPTS FOR N=2(1)16(4)96 - DATA KTAB(2)/1/ - DATA KTAB(3)/2/ - DATA KTAB(4)/4/ - DATA KTAB(5)/6/ - DATA KTAB(6)/9/ - DATA KTAB(7)/12/ - DATA KTAB(8)/16/ - DATA KTAB(9)/20/ - DATA KTAB(10)/25/ - DATA KTAB(11)/30/ - DATA KTAB(12)/36/ - DATA KTAB(13)/42/ - DATA KTAB(14)/49/ - DATA KTAB(15)/56/ - DATA KTAB(16)/64/ - DATA KTAB(20)/72/ - DATA KTAB(24)/82/ - DATA KTAB(28)/82/ - DATA KTAB(32)/94/ - DATA KTAB(36)/94/ - DATA KTAB(40)/110/ - DATA KTAB(44)/110/ - DATA KTAB(48)/130/ - DATA KTAB(52)/130/ - DATA KTAB(56)/130/ - DATA KTAB(60)/130/ - DATA KTAB(64)/154/ - DATA KTAB(68)/154/ - DATA KTAB(72)/154/ - DATA KTAB(76)/154/ - DATA KTAB(80)/186/ - DATA KTAB(84)/186/ - DATA KTAB(88)/186/ - DATA KTAB(92)/186/ - DATA KTAB(96)/226/ -C -C-----TABLE OF ABSCISSAE (X) AND WEIGHTS (A) FOR INTERVAL (-1,+1). -C -C-----N=2 - DATA X(1)/0.577350269189626D0 /, A(1)/1.000000000000000D0 / -C-----N=3 - DATA X(2)/0.774596669241483D0 /, A(2)/0.555555555555556D0 / - DATA X(3)/0.000000000000000D0 /, A(3)/0.888888888888889D0 / -C-----N=4 - DATA X(4)/0.861136311594053D0 /, A(4)/0.347854845137454D0 / - DATA X(5)/0.339981043584856D0 /, A(5)/0.652145154862546D0 / -C-----N=5 - DATA X(6)/0.906179845938664D0 /, A(6)/0.236926885056189D0 / - DATA X(7)/0.538469310105683D0 /, A(7)/0.478628670499366D0 / - DATA X(8)/0.000000000000000D0 /, A(8)/0.568888888888889D0 / -C-----N=6 - DATA X(9)/0.932469514203152D0 /, A(9)/0.171324492379170D0 / - DATA X(10)/0.661209386466265D0 /, A(10)/0.360761573048139D0 / - DATA X(11)/0.238619186083197D0 /, A(11)/0.467913934572691D0 / -C-----N=7 - DATA X(12)/0.949107912342759D0 /, A(12)/0.129484966168870D0 / - DATA X(13)/0.741531185599394D0 /, A(13)/0.279705391489277D0 / - DATA X(14)/0.405845151377397D0 /, A(14)/0.381830050505119D0 / - DATA X(15)/0.000000000000000D0 /, A(15)/0.417959183673469D0 / -C-----N=8 - DATA X(16)/0.960289856497536D0 /, A(16)/0.101228536290376D0 / - DATA X(17)/0.796666477413627D0 /, A(17)/0.222381034453374D0 / - DATA X(18)/0.525532409916329D0 /, A(18)/0.313706645877887D0 / - DATA X(19)/0.183434642495650D0 /, A(19)/0.362683783378362D0 / -C-----N=9 - DATA X(20)/0.968160239507626D0 /, A(20)/0.081274388361574D0 / - DATA X(21)/0.836031107326636D0 /, A(21)/0.180648160694857D0 / - DATA X(22)/0.613371432700590D0 /, A(22)/0.260610696402935D0 / - DATA X(23)/0.324253423403809D0 /, A(23)/0.312347077040003D0 / - DATA X(24)/0.000000000000000D0 /, A(24)/0.330239355001260D0 / -C-----N=10 - DATA X(25)/0.973906528517172D0 /, A(25)/0.066671344308688D0 / - DATA X(26)/0.865063366688985D0 /, A(26)/0.149451349150581D0 / - DATA X(27)/0.679409568299024D0 /, A(27)/0.219086362515982D0 / - DATA X(28)/0.433395394129247D0 /, A(28)/0.269266719309996D0 / - DATA X(29)/0.148874338981631D0 /, A(29)/0.295524224714753D0 / -C-----N=11 - DATA X(30)/0.978228658146057D0 /, A(30)/0.055668567116174D0 / - DATA X(31)/0.887062599768095D0 /, A(31)/0.125580369464905D0 / - DATA X(32)/0.730152005574049D0 /, A(32)/0.186290210927734D0 / - DATA X(33)/0.519096129206812D0 /, A(33)/0.233193764591990D0 / - DATA X(34)/0.269543155952345D0 /, A(34)/0.262804544510247D0 / - DATA X(35)/0.000000000000000D0 /, A(35)/0.272925086777901D0 / -C-----N=12 - DATA X(36)/0.981560634246719D0 /, A(36)/0.047175336386512D0 / - DATA X(37)/0.904117256370475D0 /, A(37)/0.106939325995318D0 / - DATA X(38)/0.769902674194305D0 /, A(38)/0.160078328543346D0 / - DATA X(39)/0.587317954286617D0 /, A(39)/0.203167426723066D0 / - DATA X(40)/0.367831498998180D0 /, A(40)/0.233492536538355D0 / - DATA X(41)/0.125233408511469D0 /, A(41)/0.249147045813403D0 / -C-----N=13 - DATA X(42)/0.984183054718588D0 /, A(42)/0.040484004765316D0 / - DATA X(43)/0.917598399222978D0 /, A(43)/0.092121499837728D0 / - DATA X(44)/0.801578090733310D0 /, A(44)/0.138873510219787D0 / - DATA X(45)/0.642349339440340D0 /, A(45)/0.178145980761946D0 / - DATA X(46)/0.448492751036447D0 /, A(46)/0.207816047536889D0 / - DATA X(47)/0.230458315955135D0 /, A(47)/0.226283180262897D0 / - DATA X(48)/0.000000000000000D0 /, A(48)/0.232551553230874D0 / -C-----N=14 - DATA X(49)/0.986283808696812D0 /, A(49)/0.035119460331752D0 / - DATA X(50)/0.928434883663574D0 /, A(50)/0.080158087159760D0 / - DATA X(51)/0.827201315069765D0 /, A(51)/0.121518570687903D0 / - DATA X(52)/0.687292904811685D0 /, A(52)/0.157203167158194D0 / - DATA X(53)/0.515248636358154D0 /, A(53)/0.185538397477938D0 / - DATA X(54)/0.319112368927890D0 /, A(54)/0.205198463721296D0 / - DATA X(55)/0.108054948707344D0 /, A(55)/0.215263853463158D0 / -C-----N=15 - DATA X(56)/0.987992518020485D0 /, A(56)/0.030753241996117D0 / - DATA X(57)/0.937273392400706D0 /, A(57)/0.070366047488108D0 / - DATA X(58)/0.848206583410427D0 /, A(58)/0.107159220467172D0 / - DATA X(59)/0.724417731360170D0 /, A(59)/0.139570677926154D0 / - DATA X(60)/0.570972172608539D0 /, A(60)/0.166269205816994D0 / - DATA X(61)/0.394151347077563D0 /, A(61)/0.186161000015562D0 / - DATA X(62)/0.201194093997435D0 /, A(62)/0.198431485327111D0 / - DATA X(63)/0.000000000000000D0 /, A(63)/0.202578241925561D0 / -C-----N=16 - DATA X(64)/0.989400934991650D0 /, A(64)/0.027152459411754D0 / - DATA X(65)/0.944575023073233D0 /, A(65)/0.062253523938648D0 / - DATA X(66)/0.865631202387832D0 /, A(66)/0.095158511682493D0 / - DATA X(67)/0.755404408355003D0 /, A(67)/0.124628971255534D0 / - DATA X(68)/0.617876244402644D0 /, A(68)/0.149595988816577D0 / - DATA X(69)/0.458016777657227D0 /, A(69)/0.169156519395003D0 / - DATA X(70)/0.281603550779259D0 /, A(70)/0.182603415044924D0 / - DATA X(71)/0.095012509837637D0 /, A(71)/0.189450610455069D0 / -C-----N=20 - DATA X(72)/0.993128599185094D0 /, A(72)/0.017614007139152D0 / - DATA X(73)/0.963971927277913D0 /, A(73)/0.040601429800386D0 / - DATA X(74)/0.912234428251325D0 /, A(74)/0.062672048334109D0 / - DATA X(75)/0.839116971822218D0 /, A(75)/0.083276741576704D0 / - DATA X(76)/0.746331906460150D0 /, A(76)/0.101930119817240D0 / - DATA X(77)/0.636053680726515D0 /, A(77)/0.118194531961518D0 / - DATA X(78)/0.510867001950827D0 /, A(78)/0.131688638449176D0 / - DATA X(79)/0.373706088715419D0 /, A(79)/0.142096109318382D0 / - DATA X(80)/0.227785851141645D0 /, A(80)/0.149172986472603D0 / - DATA X(81)/0.076526521133497D0 /, A(81)/0.152753387130725D0 / -C-----N=24 - DATA X(82)/0.995187219997021D0 /, A(82)/0.012341229799987D0 / - DATA X(83)/0.974728555971309D0 /, A(83)/0.028531388628933D0 / - DATA X(84)/0.938274552002732D0 /, A(84)/0.044277438817419D0 / - DATA X(85)/0.886415527004401D0 /, A(85)/0.059298584915436D0 / - DATA X(86)/0.820001985973902D0 /, A(86)/0.073346481411080D0 / - DATA X(87)/0.740124191578554D0 /, A(87)/0.086190161531953D0 / - DATA X(88)/0.648093651936975D0 /, A(88)/0.097618652104113D0 / - DATA X(89)/0.545421471388839D0 /, A(89)/0.107444270115965D0 / - DATA X(90)/0.433793507626045D0 /, A(90)/0.115505668053725D0 / - DATA X(91)/0.315042679696163D0 /, A(91)/0.121670472927803D0 / - DATA X(92)/0.191118867473616D0 /, A(92)/0.125837456346828D0 / - DATA X(93)/0.064056892862605D0 /, A(93)/0.127938195346752D0 / -C-----N=32 - DATA X(94)/0.997263861849481D0 /, A(94)/0.007018610009470D0 / - DATA X(95)/0.985611511545268D0 /, A(95)/0.016274394730905D0 / - DATA X(96)/0.964762255587506D0 /, A(96)/0.025392065309262D0 / - DATA X(97)/0.934906075937739D0 /, A(97)/0.034273862913021D0 / - DATA X(98)/0.896321155766052D0 /, A(98)/0.042835898022226D0 / - DATA X(99)/0.849367613732569D0 /, A(99)/0.050998059262376D0 / - DATA X(100)/0.794483795967942D0/, A(100)/0.058684093478535D0/ - DATA X(101)/0.732182118740289D0/, A(101)/0.065822222776361D0/ - DATA X(102)/0.663044266930215D0/, A(102)/0.072345794108848D0/ - DATA X(103)/0.587715757240762D0/, A(103)/0.078193895787070D0/ - DATA X(104)/0.506899908932229D0/, A(104)/0.083311924226946D0/ - DATA X(105)/0.421351276130635D0/, A(105)/0.087652093004403D0/ - DATA X(106)/0.331868602282127D0/, A(106)/0.091173878695763D0/ - DATA X(107)/0.239287362252137D0/, A(107)/0.093844399080804D0/ - DATA X(108)/0.144471961582796D0/, A(108)/0.095638720079274D0/ - DATA X(109)/0.048307665687738D0/, A(109)/0.096540088514727D0/ -C-----N=40 - DATA X(110)/0.998237709710559D0/, A(110)/0.004521277098533D0/ - DATA X(111)/0.990726238699457D0/, A(111)/0.010498284531152D0/ - DATA X(112)/0.977259949983774D0/, A(112)/0.016421058381907D0/ - DATA X(113)/0.957916819213791D0/, A(113)/0.022245849194166D0/ - DATA X(114)/0.932812808278676D0/, A(114)/0.027937006980023D0/ - DATA X(115)/0.902098806968874D0/, A(115)/0.033460195282547D0/ - DATA X(116)/0.865959503212259D0/, A(116)/0.038782167974472D0/ - DATA X(117)/0.824612230833311D0/, A(117)/0.043870908185673D0/ - DATA X(118)/0.778305651426519D0/, A(118)/0.048695807635072D0/ - DATA X(119)/0.727318255189927D0/, A(119)/0.053227846983936D0/ - DATA X(120)/0.671956684614179D0/, A(120)/0.057439769099391D0/ - DATA X(121)/0.612553889667980D0/, A(121)/0.061306242492928D0/ - DATA X(122)/0.549467125095128D0/, A(122)/0.064804013456601D0/ - DATA X(123)/0.483075801686178D0/, A(123)/0.067912045815233D0/ - DATA X(124)/0.413779204371605D0/, A(124)/0.070611647391286D0/ - DATA X(125)/0.341994090825758D0/, A(125)/0.072886582395804D0/ - DATA X(126)/0.268152185007253D0/, A(126)/0.074723169057968D0/ - DATA X(127)/0.192697580701371D0/, A(127)/0.076110361900626D0/ - DATA X(128)/0.116084070675255D0/, A(128)/0.077039818164247D0/ - DATA X(129)/0.038772417506050D0/, A(129)/0.077505947978424D0/ -C-----N=48 - DATA X(130)/0.998771007252426D0/, A(130)/0.003153346052305D0/ - DATA X(131)/0.993530172266350D0/, A(131)/0.007327553901276D0/ - DATA X(132)/0.984124583722826D0/, A(132)/0.011477234579234D0/ - DATA X(133)/0.970591592546247D0/, A(133)/0.015579315722943D0/ - DATA X(134)/0.952987703160430D0/, A(134)/0.019616160457355D0/ - DATA X(135)/0.931386690706554D0/, A(135)/0.023570760839324D0/ - DATA X(136)/0.905879136715569D0/, A(136)/0.027426509708356D0/ - DATA X(137)/0.876572020274247D0/, A(137)/0.031167227832798D0/ - DATA X(138)/0.843588261624393D0/, A(138)/0.034777222564770D0/ - DATA X(139)/0.807066204029442D0/, A(139)/0.038241351065830D0/ - DATA X(140)/0.767159032515740D0/, A(140)/0.041545082943464D0/ - DATA X(141)/0.724034130923814D0/, A(141)/0.044674560856694D0/ - DATA X(142)/0.677872379632663D0/, A(142)/0.047616658492490D0/ - DATA X(143)/0.628867396776513D0/, A(143)/0.050359035553854D0/ - DATA X(144)/0.577224726083972D0/, A(144)/0.052890189485193D0/ - DATA X(145)/0.523160974722233D0/, A(145)/0.055199503699984D0/ - DATA X(146)/0.466902904750958D0/, A(146)/0.057277292100403D0/ - DATA X(147)/0.408686481990716D0/, A(147)/0.059114839698395D0/ - DATA X(148)/0.348755886292160D0/, A(148)/0.060704439165893D0/ - DATA X(149)/0.287362487355455D0/, A(149)/0.062039423159892D0/ - DATA X(150)/0.224763790394689D0/, A(150)/0.063114192286254D0/ - DATA X(151)/0.161222356068891D0/, A(151)/0.063924238584648D0/ - DATA X(152)/0.097004699209462D0/, A(152)/0.064466164435950D0/ - DATA X(153)/0.032380170962869D0/, A(153)/0.064737696812683D0/ -C-----N=64 - DATA X(154)/0.999305041735772D0/, A(154)/0.001783280721696D0/ - DATA X(155)/0.996340116771955D0/, A(155)/0.004147033260562D0/ - DATA X(156)/0.991013371476744D0/, A(156)/0.006504457968978D0/ - DATA X(157)/0.983336253884625D0/, A(157)/0.008846759826363D0/ - DATA X(158)/0.973326827789910D0/, A(158)/0.011168139460131D0/ - DATA X(159)/0.961008799652053D0/, A(159)/0.013463047896718D0/ - DATA X(160)/0.946411374858402D0/, A(160)/0.015726030476024D0/ - DATA X(161)/0.929569172131939D0/, A(161)/0.017951715775697D0/ - DATA X(162)/0.910522137078502D0/, A(162)/0.020134823153530D0/ - DATA X(163)/0.889315445995114D0/, A(163)/0.022270173808383D0/ - DATA X(164)/0.865999398154092D0/, A(164)/0.024352702568710D0/ - DATA X(165)/0.840629296252580D0/, A(165)/0.026377469715054D0/ - DATA X(166)/0.813265315122797D0/, A(166)/0.028339672614259D0/ - DATA X(167)/0.783972358943341D0/, A(167)/0.030234657072402D0/ - DATA X(168)/0.752819907260531D0/, A(168)/0.032057928354851D0/ - DATA X(169)/0.719881850171610D0/, A(169)/0.033805161837141D0/ - DATA X(170)/0.685236313054233D0/, A(170)/0.035472213256882D0/ - DATA X(171)/0.648965471254657D0/, A(171)/0.037055128540240D0/ - DATA X(172)/0.611155355172393D0/, A(172)/0.038550153178615D0/ - DATA X(173)/0.571895646202634D0/, A(173)/0.039953741132720D0/ - DATA X(174)/0.531279464019894D0/, A(174)/0.041262563242623D0/ - DATA X(175)/0.489403145707052D0/, A(175)/0.042473515123653D0/ - DATA X(176)/0.446366017253464D0/, A(176)/0.043583724529323D0/ - DATA X(177)/0.402270157963991D0/, A(177)/0.044590558163756D0/ - DATA X(178)/0.357220158337668D0/, A(178)/0.045491627927418D0/ - DATA X(179)/0.311322871990210D0/, A(179)/0.046284796581314D0/ - DATA X(180)/0.264687162208767D0/, A(180)/0.046968182816210D0/ - DATA X(181)/0.217423643740007D0/, A(181)/0.047540165714830D0/ - DATA X(182)/0.169644420423992D0/, A(182)/0.047999388596458D0/ - DATA X(183)/0.121462819296120D0/, A(183)/0.048344762234802D0/ - DATA X(184)/0.072993121787799D0/, A(184)/0.048575467441503D0/ - DATA X(185)/0.024350292663424D0/, A(185)/0.048690957009139D0/ -C-----N=80 - DATA X(186)/0.999553822651630D0/, A(186)/0.001144950003186D0/ - DATA X(187)/0.997649864398237D0/, A(187)/0.002663533589512D0/ - DATA X(188)/0.994227540965688D0/, A(188)/0.004180313124694D0/ - DATA X(189)/0.989291302499755D0/, A(189)/0.005690922451403D0/ - DATA X(190)/0.982848572738629D0/, A(190)/0.007192904768117D0/ - DATA X(191)/0.974909140585727D0/, A(191)/0.008683945269260D0/ - DATA X(192)/0.965485089043799D0/, A(192)/0.010161766041103D0/ - DATA X(193)/0.954590766343634D0/, A(193)/0.011624114120797D0/ - DATA X(194)/0.942242761309872D0/, A(194)/0.013068761592401D0/ - DATA X(195)/0.928459877172445D0/, A(195)/0.014493508040509D0/ - DATA X(196)/0.913263102571757D0/, A(196)/0.015896183583725D0/ - DATA X(197)/0.896675579438770D0/, A(197)/0.017274652056269D0/ - DATA X(198)/0.878722567678213D0/, A(198)/0.018626814208299D0/ - DATA X(199)/0.859431406663111D0/, A(199)/0.019950610878141D0/ - DATA X(200)/0.838831473580255D0/, A(200)/0.021244026115782D0/ - DATA X(201)/0.816954138681463D0/, A(201)/0.022505090246332D0/ - DATA X(202)/0.793832717504605D0/, A(202)/0.023731882865930D0/ - DATA X(203)/0.769502420135041D0/, A(203)/0.024922535764115D0/ - DATA X(204)/0.744000297583597D0/, A(204)/0.026075235767565D0/ - DATA X(205)/0.717365185362099D0/, A(205)/0.027188227500486D0/ - DATA X(206)/0.689637644342027D0/, A(206)/0.028259816057276D0/ - DATA X(207)/0.660859898986119D0/, A(207)/0.029288369583267D0/ - DATA X(208)/0.631075773046871D0/, A(208)/0.030272321759557D0/ - DATA X(209)/0.600330622829751D0/, A(209)/0.031210174188114D0/ - DATA X(210)/0.568671268122709D0/, A(210)/0.032100498673487D0/ - DATA X(211)/0.536145920897131D0/, A(211)/0.032941939397645D0/ - DATA X(212)/0.502804111888784D0/, A(212)/0.033733214984611D0/ - DATA X(213)/0.468696615170544D0/, A(213)/0.034473120451753D0/ - DATA X(214)/0.433875370831756D0/, A(214)/0.035160529044747D0/ - DATA X(215)/0.398393405881969D0/, A(215)/0.035794393953416D0/ - DATA X(216)/0.362304753499487D0/, A(216)/0.036373749905835D0/ - DATA X(217)/0.325664370747701D0/, A(217)/0.036897714638276D0/ - DATA X(218)/0.288528054884511D0/, A(218)/0.037365490238730D0/ - DATA X(219)/0.250952358392272D0/, A(219)/0.037776364362001D0/ - DATA X(220)/0.212994502857666D0/, A(220)/0.038129711314477D0/ - DATA X(221)/0.174712291832646D0/, A(221)/0.038424993006959D0/ - DATA X(222)/0.136164022809143D0/, A(222)/0.038661759774076D0/ - DATA X(223)/0.097408398441584D0/, A(223)/0.038839651059051D0/ - DATA X(224)/0.058504437152420D0/, A(224)/0.038958395962769D0/ - DATA X(225)/0.019511383256793D0/, A(225)/0.039017813656306D0/ -C-----N=96 - DATA X(226)/0.999689503883230D0/, A(226)/0.000796792065552D0/ - DATA X(227)/0.998364375863181D0/, A(227)/0.001853960788946D0/ - DATA X(228)/0.995981842987209D0/, A(228)/0.002910731817934D0/ - DATA X(229)/0.992543900323762D0/, A(229)/0.003964554338444D0/ - DATA X(230)/0.988054126329623D0/, A(230)/0.005014202742927D0/ - DATA X(231)/0.982517263563014D0/, A(231)/0.006058545504235D0/ - DATA X(232)/0.975939174585136D0/, A(232)/0.007096470791153D0/ - DATA X(233)/0.968326828463264D0/, A(233)/0.008126876925698D0/ - DATA X(234)/0.959688291448742D0/, A(234)/0.009148671230783D0/ - DATA X(235)/0.950032717784437D0/, A(235)/0.010160770535008D0/ - DATA X(236)/0.939370339752755D0/, A(236)/0.011162102099838D0/ - DATA X(237)/0.927712456722308D0/, A(237)/0.012151604671088D0/ - DATA X(238)/0.915071423120898D0/, A(238)/0.013128229566961D0/ - DATA X(239)/0.901460635315852D0/, A(239)/0.014090941772314D0/ - DATA X(240)/0.886894517402420D0/, A(240)/0.015038721026994D0/ - DATA X(241)/0.871388505909296D0/, A(241)/0.015970562902562D0/ - DATA X(242)/0.854959033434601D0/, A(242)/0.016885479864245D0/ - DATA X(243)/0.837623511228187D0/, A(243)/0.017782502316045D0/ - DATA X(244)/0.819400310737931D0/, A(244)/0.018660679627411D0/ - DATA X(245)/0.800308744139140D0/, A(245)/0.019519081140145D0/ - DATA X(246)/0.780369043867433D0/, A(246)/0.020356797154333D0/ - DATA X(247)/0.759602341176647D0/, A(247)/0.021172939892191D0/ - DATA X(248)/0.738030643744400D0/, A(248)/0.021966644438744D0/ - DATA X(249)/0.715676812348967D0/, A(249)/0.022737069658329D0/ - DATA X(250)/0.692564536642171D0/, A(250)/0.023483399085926D0/ - DATA X(251)/0.668718310043916D0/, A(251)/0.024204841792364D0/ - DATA X(252)/0.644163403784967D0/, A(252)/0.024900633222483D0/ - DATA X(253)/0.618925840125468D0/, A(253)/0.025570036005349D0/ - DATA X(254)/0.593032364777572D0/, A(254)/0.026212340735672D0/ - DATA X(255)/0.566510418561397D0/, A(255)/0.026826866725591D0/ - DATA X(256)/0.539388108324357D0/, A(256)/0.027412962726029D0/ - DATA X(257)/0.511694177154667D0/, A(257)/0.027970007616848D0/ - DATA X(258)/0.483457973920596D0/, A(258)/0.028497411065085D0/ - DATA X(259)/0.454709422167743D0/, A(259)/0.028994614150555D0/ - DATA X(260)/0.425478988407300D0/, A(260)/0.029461089958167D0/ - DATA X(261)/0.395797649828908D0/, A(261)/0.029896344136328D0/ - DATA X(262)/0.365696861472313D0/, A(262)/0.030299915420827D0/ - DATA X(263)/0.335208522892625D0/, A(263)/0.030671376123669D0/ - DATA X(264)/0.304364944354496D0/, A(264)/0.031010332586313D0/ - DATA X(265)/0.273198812591049D0/, A(265)/0.031316425596861D0/ - DATA X(266)/0.241743156163840D0/, A(266)/0.031589330770727D0/ - DATA X(267)/0.210031310460567D0/, A(267)/0.031828758894411D0/ - DATA X(268)/0.178096882367618D0/, A(268)/0.032034456231992D0/ - DATA X(269)/0.145973714654896D0/, A(269)/0.032206204794030D0/ - DATA X(270)/0.113695850110665D0/, A(270)/0.032343822568575D0/ - DATA X(271)/0.081297495464425D0/, A(271)/0.032447163714064D0/ - DATA X(272)/0.048812985136049D0/, A(272)/0.032516118713868D0/ - DATA X(273)/0.016276744849602D0/, A(273)/0.032550614492363D0/ - DATA IBD/0/ - - IF(IBD.NE.0) RETURN - IBD=1 - DO 10 I=1,273 - B(I) = A(I) -10 Y(I) = X(I) - DO 20 I=1,96 -20 LTAB(I) = KTAB(I) - RETURN - END -C======================================================================= - - SUBROUTINE SIB_ALTRA(GA,BGX,BGY,BGZ,PCX,PCY,PCZ,EC,P,PX,PY,PZ,E) - -C----------------------------------------------------------------------- -C -C arbitrary Lorentz transformation -C -C Input: GA : gamma factor -C BG? : components of gamma * beta -C PC?,EC : components of initial 4 vector -C -C Output: P?,E : components of 4vector in final frame -C P : 3-norm in final frame, a.k.a momentum -C -C PHO_ALTRA taken from PHOJET /FR'14 -C********************************************************************* - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - DOUBLE PRECISION P,E - SAVE - -c consistency check: (gamma*beta)**2 = gamma**2 - 1 - BETGAM2 = BGX**2+BGY**2+BGZ**2 - xtst = 1.D0-BETGAM2/GA**2 - 1.D0/GA**2 - IF(abs(xtst).gt.1.D-5) THEN - WRITE(LUN,*) ' SIB_ALTRA: transf. inconsistent!' - WRITE(LUN,*) ' SIB_ALTRA: input (GA,GABE):',GA,BGX,BGY,BGZ - ENDIF - IF(GA.LT.1.D0) THEN - WRITE(LUN,*) ' SIB_ALTRA: you are joking right? GAMMA=',GA - CALL SIB_REJECT('SIB_ALTRA ') - ENDIF - EP=PCX*BGX+PCY*BGY+PCZ*BGZ - PE=EP/(GA+1.D0)+EC - PX=PCX+BGX*PE - PY=PCY+BGY*PE - PZ=PCZ+BGZ*PE - P=DSQRT(PX*PX+PY*PY+PZ*PZ) - E=GA*EC+EP - END - -C======================================================================= - - SUBROUTINE SIB_TRANS(XO,YO,ZO,CDE,SDE,CFE,SFE,X,Y,Z) - -C----------------------------------------------------------------------- -C -C rotation of coordinate frame (1) de rotation around y axis -C (2) fe rotation around z axis -C (inverse rotation to SIB_TRANI) -C -C Input: ?0 : vector components in initial frame -C C? : cosine of rotation angle -C S? : sine of rotation angle -C DE : angle of rotation around y axis -C (polar angle in spherical coord.) -C FE : angle of rotation around z axis -C (azimuthal angle in spherical coord.) -C -C Output: X,Y,Z: components of vector in rotated frame -C -C PHO_TRANS taken from PHOJET \FR'14 -C********************************************************************** - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - SAVE - - X= CDE*CFE*XO-SFE*YO+SDE*CFE*ZO - Y= CDE*SFE*XO+CFE*YO+SDE*SFE*ZO - Z=-SDE *XO +CDE *ZO - END - -C======================================================================= - - SUBROUTINE SIB_TRANI(XO,YO,ZO,CDE,SDE,CFE,SFE,X,Y,Z) - -C----------------------------------------------------------------------- -C -C rotation of coordinate frame (1) -fe rotation around z axis -C (2) -de rotation around y axis -C (inverse rotation to SIB_TRANS) -C -C Input: ?0 : vector components in initial frame -C C? : cosine of rotation angle -C S? : sine of rotation angle -C DE : angle of rotation around y axis -C (polar angle in spherical coord.) -C FE : angle of rotation around z axis -C (azimuthal angle in spherical coord.) -C -C Output: X,Y,Z: components of vector in rotated frame -C -C PHO_TRANS taken from PHOJET \FR'14 -C********************************************************************** - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - SAVE - - X= CDE*CFE*XO+CDE*SFE*YO-SDE*ZO - Y=-SFE *XO+CFE* YO - Z= SDE*CFE*XO+SDE*SFE*YO+CDE*ZO - END - -C======================================================================= - - SUBROUTINE SIROBO( NBEG, NEND, THE, PHI, DBEX, DBEY, DBEZ) - -C----------------------------------------------------------------------- -C THIS IS A SLIGHTLY ALTERED VERSION OF "LUROBO" [JETSET63.PYTHIA] * -C SET TO WORK IN THE SIBYL ENVIROMENT. THE TRANSFORMATION IS PERFORMED * -C ON PARTICLES NUMBER FROM NBEG TO NEND. COMMON BLOCKS CHANGED. * -C TSS, Oct '87 * -C modification use directly BETA in double precision in input (PL) * -C ********************************************************************** - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - COMMON /S_PLIST/ P(8000,5), LLIST(8000), NP - DIMENSION ROT(3,3),PV(3),DP(4) - SAVE - - IF(THE**2+PHI**2 .LE. 1.D-20) GO TO 131 -C...ROTATE (TYPICALLY FROM Z AXIS TO DIRECTION THETA,PHI) - ROT(1,1)=dCOS(THE)*dCOS(PHI) - ROT(1,2)=-dSIN(PHI) - ROT(1,3)=dSIN(THE)*dCOS(PHI) - ROT(2,1)=dCOS(THE)*dSIN(PHI) - ROT(2,2)=dCOS(PHI) - ROT(2,3)=dSIN(THE)*dSIN(PHI) - ROT(3,1)=-dSIN(THE) - ROT(3,2)=0.D0 - ROT(3,3)=dCOS(THE) - DO 120 I=NBEG,NEND - DO 100 J=1,3 - 100 PV(J)=P(I,J) - DO 110 J=1,3 - 110 P(I,J)=ROT(J,1)*PV(1)+ROT(J,2)*PV(2)+ROT(J,3)*PV(3) - 120 CONTINUE - 131 IF(DBEX**2+DBEY**2+DBEZ**2 .LE. 1.D-20) GO TO 151 -C...LORENTZ BOOST (TYPICALLY FROM REST TO MOMENTUM/ENERGY=BETA) - DGA=1.D0/DSQRT(1D0-DBEX**2-DBEY**2-DBEZ**2) - DO 140 I=NBEG, NEND - DO 130 J=1,4 - 130 DP(J)=P(I,J) - DBEP=DBEX*DP(1)+DBEY*DP(2)+DBEZ*DP(3) - DGABEP=DGA*(DGA*DBEP/(1.D0+DGA)+DP(4)) - P(I,1)=DP(1)+DGABEP*DBEX - P(I,2)=DP(2)+DGABEP*DBEY - P(I,3)=DP(3)+DGABEP*DBEZ - P(I,4)=DGA*(DP(4)+DBEP) - 140 CONTINUE - 151 RETURN - END - - -C======================================================================= - - SUBROUTINE ISWTCH_LMNTS(ia,ib) - -C----------------------------------------------------------------------- - IMPLICIT INTEGER(I-N) - SAVE - - itmp = ia - ia = ib - ib = itmp - end -C======================================================================= - - SUBROUTINE SWTCH_LMNTS(a,b) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - SAVE - - tmp = a - a = b - b = tmp - end -C======================================================================= - - DOUBLE PRECISION FUNCTION PAWT(A,B,C) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - SAVE - -C... c.m.s. Momentum in two particle decays - PAWT = SQRT((A**2-(B+C)**2+EPS10)*(A**2-(B-C)**2))/(2.D0*A) - END - -C======================================================================= - - SUBROUTINE HSPLI (KF,KP1,KP2) - -C----------------------------------------------------------------------- -C...This subroutine splits one hadron of code KF -C. into 2 partons of code KP1 and KP2 -C. KP1 refers to a color triplet [q or (qq)bar] -C. KP2 to a a color anti-triplet [qbar or (qq)] -C. allowed inputs: -C. KF = 6:14 pi0,pi+-,k+-,k0L,k0s, p,n -C. = -13,-14 pbar,nbar -C. = 34:39 Sig+, Sig0, Sig-, Xi0, Xi-, Lam0 -C. = 49: Omega- -C. \FR'16 -C------------------------------------------------ - IMPLICIT NONE - -c external types - INTEGER KF,KP1,KP2 - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - -c internal types - INTEGER KPP - DOUBLE PRECISION R,XBUG,S_RNDM - SAVE - - IF(IABS(KF).eq.6.or.IABS(KF).eq.27)THEN ! pi0, rho0 - R = S_RNDM(0) - XBUG = 0.D0 - IF(IPAR(19).eq.1) XBUG = 0.5D0 - IF (R.LE.XBUG) THEN - KP1 = 1 - KP2 = -1 - ELSE - KP1 = 2 - KP2 = -2 - ENDIF - - ELSEIF(IABS(KF).eq.7)THEN ! pi+ - KP1 = 1 - KP2 = -2 - - ELSEIF(IABS(KF).eq.8)THEN ! pi- - KP1 = 2 - KP2 = -1 - - ELSEIF(IABS(KF).eq.9)THEN ! K+ - KP1 = 1 - KP2 = -3 - ELSEIF(IABS(KF).eq.10)THEN ! K- - KP1 = 3 - KP2 = -1 - ELSEIF(IABS(KF).eq.11.or.IABS(KF).eq.12)THEN ! K0S/K0L - KP1 = 2 - KP2 = -3 - IF (S_RNDM(1).GT. 0.5D0) THEN - KP1 = 3 - KP2 = -2 - ENDIF - ELSEIF(IABS(KF).eq.21)THEN ! K0 - KP1 = 2 - KP2 = -3 - ELSEIF(IABS(KF).eq.22)THEN ! K0bar - KP1 = 3 - KP2 = -2 - ELSEIF(IABS(KF).eq.33)THEN ! phi - KP1 = 3 - KP2 = -3 - ELSEIF(IABS(KF).eq.13.or.IABS(KF).eq.41)THEN ! p/pbar,delta+ - R = PAR(53)*S_RNDM(KF) - IF (R .LT.3.D0) THEN - KP1 = 1 - KP2 = 12 - ELSEIF (R .LT. 4.D0) THEN - KP1 = 1 - KP2 = 21 - ELSE - KP1 = 2 - KP2 = 11 - ENDIF - ELSEIF(IABS(KF).eq.14.or.IABS(KF).eq.42)THEN ! n/nbar,delta0 - R = 6.D0*S_RNDM(0) - IF (R .LT.3.D0) THEN - KP1 = 2 - KP2 = 12 - ELSEIF (R .LT. 4.D0) THEN - KP1 = 2 - KP2 = 21 - ELSE - KP1 = 1 - KP2 = 22 - ENDIF - ELSEIF(IABS(KF).eq.40)THEN ! delta++ - KP1 = 1 - KP2 = 11 - ELSEIF(IABS(KF).eq.43)THEN ! delta- - KP1 = 2 - KP2 = 22 - ELSEIF(IABS(KF).eq.34)THEN !Sigma+ - R = 6.D0*S_RNDM(0) - IF (R .LT.3.D0) THEN - KP1 = 3 - KP2 = 11 - ELSEIF (R .LT. 4.D0) THEN - KP1 = 1 - KP2 = 31 - ELSE - KP1 = 1 - KP2 = 13 - ENDIF - ELSEIF(IABS(KF).eq.35.or.IABS(KF).eq.39)THEN !Sigma0/Lambda0 -c all configurations equally likely --> Knuth shuffle -c setup quarks: u,d,s - CALL SHFFL_QRKS(1,2,3,KP1,KP2) - - ELSEIF(IABS(KF).eq.36)THEN !Sigma- - R = 6.D0*S_RNDM(0) - IF (R .LT.3.D0) THEN - KP1 = 3 - KP2 = 22 - ELSEIF (R .LT. 4.D0) THEN - KP1 = 2 - KP2 = 32 - ELSE - KP1 = 2 - KP2 = 23 - ENDIF - ELSEIF(IABS(KF).eq.37)THEN !Xi0 - R = 6.D0*S_RNDM(0) - IF (R .LT.3.D0) THEN - KP1 = 1 - KP2 = 33 - ELSEIF (R .LT. 4.D0) THEN - KP1 = 3 - KP2 = 13 - ELSE - KP1 = 1 - KP2 = 33 - ENDIF - ELSEIF(IABS(KF).eq.38)THEN !Xi- - R = 6.D0*S_RNDM(0) - IF (R .LT.3.D0) THEN - KP1 = 2 - KP2 = 33 - ELSEIF (R .LT. 4.D0) THEN - KP1 = 3 - KP2 = 23 - ELSE - KP1 = 2 - KP2 = 33 - ENDIF - ELSEIF(IABS(KF).eq.49)THEN ! Omega- - KP1 = 3 - KP2 = 33 - - ELSEIF(IABS(KF).eq.59)THEN ! D+ - KP1 = 4 - KP2 = -2 - - ELSEIF(IABS(KF).eq.60)THEN ! D- - KP1 = 2 - KP2 = -4 - - ELSEIF(IABS(KF).eq.71)THEN ! D0 - KP1 = 4 - KP2 = -1 - - ELSEIF(IABS(KF).eq.72)THEN ! D0bar - KP1 = 1 - KP2 = -4 - - ELSEIF(IABS(KF).eq.73)THEN ! eta_c - KP1 = 4 - KP2 = -4 - - ELSEIF(IABS(KF).eq.74)THEN ! Ds+ - KP1 = 4 - KP2 = -3 - - ELSEIF(IABS(KF).eq.75)THEN ! Ds- - KP1 = 3 - KP2 = -4 - - ELSEIF(IABS(KF).eq.76)THEN ! Ds*+ - KP1 = 4 - KP2 = -3 - - ELSEIF(IABS(KF).eq.77)THEN ! Ds*- - KP1 = 3 - KP2 = -4 - - ELSEIF(IABS(KF).eq.78)THEN ! D*+ - KP1 = 4 - KP2 = -2 - - ELSEIF(IABS(KF).eq.79)THEN ! D*- - KP1 = 2 - KP2 = -4 - - ELSEIF(IABS(KF).eq.80)THEN ! D*0 - KP1 = 4 - KP2 = -1 - - ELSEIF(IABS(KF).eq.81)THEN ! D*0bar - KP1 = 1 - KP2 = -4 - - ELSEIF(IABS(KF).eq.83)THEN ! J/psi - KP1 = 4 - KP2 = -4 - - ELSEIF(IABS(KF).eq.84)THEN ! Sigma_c++ - R = 6.D0*S_RNDM(0) - IF (R .LT.3.D0) THEN - KP1 = 4 - KP2 = 11 - ELSEIF (R .LT. 4.D0) THEN - KP1 = 1 - KP2 = 41 - ELSE - KP1 = 1 - KP2 = 14 - ENDIF - - ELSEIF(IABS(KF).eq.85.or.IABS(KF).eq.89)THEN ! Sigma_c+ / Lambda_c+ -c setup quarks: u,d,c - CALL SHFFL_QRKS(1,2,4,KP1,KP2) - - ELSEIF(IABS(KF).eq.86)THEN ! Sigma_c0 - R = 6.D0*S_RNDM(0) - IF (R .LT.3.D0) THEN - KP1 = 4 - KP2 = 22 - ELSEIF (R .LT. 4.D0) THEN - KP1 = 2 - KP2 = 42 - ELSE - KP1 = 2 - KP2 = 24 - ENDIF - - ELSEIF(IABS(KF).eq.87)THEN ! Xi_c+ -c setup quarks: u,s,c - CALL SHFFL_QRKS(1,3,4,KP1,KP2) - - ELSEIF(IABS(KF).eq.88)THEN ! Xi_c0 - CALL SHFFL_QRKS(2,3,4,KP1,KP2) - - ELSEIF(IABS(KF).eq.99)THEN ! Omega_c0 - R = 6.D0*S_RNDM(0) - IF (R .LT.3.D0) THEN - KP1 = 4 - KP2 = 33 - ELSEIF (R .LT. 4.D0) THEN - KP1 = 3 - KP2 = 43 - ELSE - KP1 = 3 - KP2 = 34 - ENDIF - - ELSE -C... Test for good input - WRITE(LUN,*) - & ' HSPLI : Routine entered with illegal particle code ',KF - CALL SIB_REJECT('HSPLI ') - ENDIF - -C if anti-baryon, invert valences - IF (KF .LT. 0) THEN - KPP = KP1 - KP1 = -KP2 - KP2 = -KPP - ENDIF - RETURN - END - -C======================================================================= - - SUBROUTINE SHFFL_QRKS(IQF1,IQF2,IQF3,KF1,KF2) - -C----------------------------------------------------------------------- -c routine to shuffle 3 quark flavors -C----------------------------------------------------------------------- - IMPLICIT NONE - INTEGER IQF1,IQF2,IQF3,KF1,KF2 - INTEGER KPL,JJ,II,IFL - DOUBLE PRECISION S_RNDM - DIMENSION KPL(3) -c quark flavors to shuffle - KPL(1) = IQF1 - KPL(2) = IQF2 - KPL(3) = IQF3 -c Knuth shuffle.. - DO II=3,2,-1 - JJ=1+INT(II*S_RNDM(II)) - IFL=KPL(jj) - KPL(jj)=KPL(ii) - KPL(ii)=IFL - ENDDO - KF1=KPL(1) - KF2=KPL(2)*10+KPL(3) - END - - - SUBROUTINE TRANSFONSHELL(ECM,XM1in,XM2in,XMAX,IMOD,P1,P2,LBAD) - -C----------------------------------------------------------------------- -C samples 2 --> 2 scattering that puts a particle on its mass shell -C -C particle1 is along +z, always receives mass -C particle2 is along -z, mass only sampled if both aquire mass -C -C DEPENDS: slope-parameter in s_difmass -C -C INPUT: ECM : center-of-mass energy of scattering particles -C M1in : mass of first particle -C M2in : mass of second particle -C XMAX : maximal mass that can be obtained -C IMOD : remnant or diffraction mode -C -C OUTPUT: P1,P2 : final state 4vectors in two-particle c.m. \FR'14 -C----------------------------------------------------------------------- - IMPLICIT NONE - -c external types - DOUBLE PRECISION ECM,XM1in,XM2in,XMAX,P1,P2 - DIMENSION P1(5),P2(5) - INTEGER IMOD,LBAD - - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NIPAR_max,NPAR_max - PARAMETER (NPAR_max=200,NIPAR_max=100) - DOUBLE PRECISION PAR - INTEGER IPAR - COMMON /S_CFLAFR/ PAR(NPAR_max), IPAR(NIPAR_max) - INTEGER ITRY, NREJ - COMMON /S_CNT/ ITRY(20), NREJ(20) - DOUBLE PRECISION AM,AM2 - COMMON /S_MASS1/ AM(99), AM2(99) - -c internal types - DOUBLE PRECISION XMB2,XMT2,AXMX,S,X1,X2,ALX,SLOP0,SLOPE,DB, - & T,PTS,PZB2,PZT2,PT,PHI,XMB,XMT,S_RNDM,PTSWTCH - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - DOUBLE PRECISION SLOP0_0,ASLOP,BSLOP - INTEGER II - SAVE - DATA SLOP0_0 /6.5D0/ ! b (slope_ for Mx**2 > 5 GeV**2 - DATA ASLOP /31.10362D0/ ! fit to the slope parameter. - DATA BSLOP /-15.29012D0/ - - IF(NDEBUG.gt.3) - & WRITE(LUN,*) ' TRANSFONSHELL: called with (Ecm,M1,M2,XMAX):', - & ECM,XM1in,XM2in,XMAX - - XMB2 = XM1in**2 - XMT2 = XM2in**2 - - AXMX = LOG(XMAX) - - ITRY(6) = 0 - LBAD = 1 - -C remnant pt parameters -c distribution is: exp(-slope*t) -c slope = aslop + bslop * log(Mx**2) -c (by default same as in diff. -c scale with paramterers 90 and 91) - -c diff. pt paramters - ASLOP = PAR(133) - BSLOP = PAR(134) - SLOP0_0 = PAR(135) - - S = ECM*ECM - X1 = 1.D0-(XMT2-XMB2)/S - X2 = 2.D0-X1 - IF(X2.LT.EPS5) RETURN - - 60 ITRY(6) = ITRY(6) + 1 - IF(ITRY(6).GT.NREJ(6)) RETURN -c sample transverse momentum - ALX = LOG(MAX(XMT2,XMB2)) -c set slope of pt distribution - IF(IMOD.eq.0)THEN -c diffraction dissociation - SLOP0 = SLOP0_0*PAR(93) - SLOPE = MAX(SLOP0,ASLOP+BSLOP*ALX) - PTSWTCH = 1.D0 - - ELSEIF(IMOD.eq.1)THEN -c remnant excitation - IF(IPAR(57).eq.0)THEN - ALX = ALX-LOG(AM2(13)) - SLOP0 = PAR(92) - DB = (SLOP0-PAR(90))/AXMX - SLOPE = MAX(SLOP0,PAR(90)+DB*PAR(91)*ALX) - ELSE - ALX = ALX-LOG(AM2(13)) - SLOP0 = PAR(92) - SLOPE = MAX(SLOP0,PAR(90)+PAR(91)*ALX) - ENDIF - PTSWTCH = 1.D0 - - ELSEIF(IMOD.eq.3)THEN -c no pt - PTSWTCH = 0.D0 - SLOPE = 1.D0 - ENDIF - IF(ndebug.gt.3) - & WRITE(LUN,*) ' TRANSFONSHELL: (SLOP0,SLOPE,log(M**2)):', - & SLOP0,SLOPE,ALX - T = -DLOG(MAX(EPS10,S_RNDM(0)))/SLOPE - PTS = T*X1*PTSWTCH - PZB2 = S*0.5D0*0.5D0*X1*X1-XMB2-PTS - PZT2 = S*0.5D0*0.5D0*X2*X2-XMT2-PTS - IF(NDEBUG.gt.3) - & WRITE(LUN,*) ' TRANSFONSHELL: (PTS,PZB2,PZT2):',PTS,PZB2,PZT2 -c IF (ABS(PZB2)-PZT2.GT.EPS10) GOTO 60 - IF (PZB2.lt.0.D0.or.PZT2.LT.0.D0) GOTO 60 - PT = DSQRT(PTS) - PHI = TWOPI*S_RNDM(1) - XMB = sqrt(XMB2) - XMT = sqrt(XMT2) - P2(4) = 0.5D0*ECM*X2 - P2(3) = -DSQRT(PZT2) - P2(1) = PT*dCOS(PHI) - P2(2) = PT*dSIN(PHI) - P2(5) = XMT - - P1(4) = 0.5D0*ECM*X1 - P1(3) = DSQRT(PZB2) - do ii = 1,2 - P1(ii) = -P2(ii) - enddo - P1(5) = XMB - IF(NDEBUG.gt.3) THEN - WRITE(LUN,*) ' TRANSFONSHELL: (P1):',(p1(ii),ii=1,5) - WRITE(LUN,*) ' TRANSFONSHELL: (P2):',(p2(ii),ii=1,5) - ENDIF - LBAD = 0 - END -C======================================================================= - - SUBROUTINE SAMPLE_SEA (ALPHA,ASUP,XMASS,XMAX,X1,X2,PT) - -C----------------------------------------------------------------------- -C. Routine that samples the kinematical variables of a sea quark pair. -C. INPUT: STR_mass_min : minimal string mass ** 2 = x1 * x2 * s -C. ASUP : large x suppression exponent -C. OUTPUT: X1, X2, PT (GeV) /FR'14 -C----------------------------------------------------------------------- -Cf2py double precision, intent(in) :: ALPHA,ASUP,XMASS,XMAX -Cf2py double precision, intent(out) :: X1,X2,PT - IMPLICIT NONE - -c include COMMONs - INTEGER NCALL, NDEBUG, LUN - COMMON /S_DEBUG/ NCALL, NDEBUG, LUN - INTEGER NW_max - PARAMETER (NW_max = 20) -C-------------------------------------------------------------------- -C SIBYLL common blocks containing event information \FR'14 -C-------------------------------------------------------------------- - -C EVENT INFO COMMON -C contains overall interaction properties, like -C SQS : center-of-mass energy -C S : " " squared -C PTmin : low pt cut of QCD cross section, -C i.e. minimal pt of hard minijets -C Xmin : low-x bound for PDFs, -C i.e. minimal momentum fraction of hard partons -C Zmin : logarithm of that -C KB : PID of beam hadron -C KT() : PID of target -C IAT : mass number of target - DOUBLE PRECISION SQS,S,PTmin,XMIN,ZMIN - INTEGER KB,IAT,KT - COMMON /S_RUN/ SQS, S, PTmin, XMIN, ZMIN, KB, KT(NW_max), IAT - -C-------------------------------------------------------------------- -C SIBYLL utility common blocks containing constants \FR'14 -C-------------------------------------------------------------------- - DOUBLE PRECISION EPS3,EPS5,EPS8,EPS10 - COMMON /SIB_EPS/ EPS3,EPS5,EPS8,EPS10 - - DOUBLE PRECISION PI,TWOPI,CMBARN - COMMON /SIB_CST/ PI,TWOPI,CMBARN - - DOUBLE PRECISION FACN - DIMENSION FACN(3:10) - COMMON /SIB_FAC/ FACN - -c external type declarations - DOUBLE PRECISION ALPHA,ASUP,XMASS,XMAX,X1,X2,PT - -c internal types - DOUBLE PRECISION XMINA,XM2DIS,XR,SLOPE,S_RNDM,XRNDM - SAVE - - IF(ndebug.gt.3) - & write(lun,*) ' SAMPLE_SEA: alpha,asup,qmass,xmax', - & ALPHA,ASUP,XMASS,XMAX - -c min. momentum fraction for massive quarks -c i.e. sample from 1/(x+x_min) - XMINA = 2.D0*XMASS/SQS - IF(ndebug.gt.3) - & write(lun,*) ' SAMPLE_SEA: xmina:',XMINA -c exponent of large x suppression: (1-x)**b, b=0 or b>1 - IF(ABS(ASUP).lt.EPS3)THEN -c b = 0 , no suppression, sample bare 1/(x+xmin) - X1 = XM2DIS(XMINA,XMAX,ALPHA) ! ~(1/x)**alpha - X2 = XM2DIS(XMINA,XMAX,ALPHA) ! ~(1/x)**alpha - - ELSEIF(ASUP.ge.EPS3)THEN -c b >= 1 , sample bare (1-x)**b/(x+xmin) - SLOPE = MAX(ASUP,EPS3) -c quark - 100 X1 = XM2DIS(XMINA,XMAX,ALPHA) ! ~(1/x)**alpha - XR = LOG(1.D0-X1)-LOG(1.D0-XMINA) - XRNDM = S_RNDM(1) - IF(ndebug.gt.4) - & write(lun,*) ' X1,XR,SLOPE*XR:',X1,XR,SLOPE*XR - if(SLOPE*XR.le.LOG(max(XRNDM,eps10))) goto 100 - -c anti-quark - 200 X2 = XM2DIS(XMINA,XMAX,ALPHA) ! ~(1/x)**alpha - XR = log(1.D0-X2)-log(1.D0-XMINA) - XRNDM = S_RNDM(2) - IF(ndebug.gt.4) - & write(lun,*) ' X2,XR,SLOPE*XR,XRNDM:', - & X2,XR,SLOPE*XR,XRNDM - if(SLOPE*XR.le.log(max(XRNDM,eps10))) goto 200 - ELSE - WRITE(LUN,*) ' SAMPLE_SEA: suppression exponent out of range.' - WRITE(LUN,*) ' SAMPLE_SEA: ASUP:',ASUP - STOP - ENDIF - -c sample pt -c not yet implemented... to avoid problem with virtual partons - pt = 0.D0 - IF(ndebug.gt.3) - & write(lun,*) ' SAMPLE_SEA: X1,X2,PT:',X1,X2,PT - - END -C********************************************** -C -C contains the src for pion and proton pdf -C parametrizations according to GRV -C ( see function head for refs. ) -C -C 1 pion pdf -C 2 proton pdf GRV98LO -C -C********************************************** - -* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -* * -* G R V - P I O N - P A R A M E T R I Z A T I O N S * -* * -* FOR A DETAILED EXPLANATION SEE : * -* M. GLUECK, E.REYA, A.VOGT: DO-TH 91/16 * -* * -* THE PARAMETRIZATIONS ARE FITTED TO THE PARTON DISTRIBUTIONS * -* FOR Q ** 2 BETWEEN MU ** 2 (= 0.25 / 0.30 GEV ** 2 IN LO * -* / HO) AND 1.E8 GEV ** 2 AND FOR X BETWEEN 1.E-5 AND 1. * -* REGIONS, WHERE THE DISTRIBUTION UNDER CONSIDERATION IS NEG- * -* LIGIBLE, I.E. BELOW ABOUT 1.E-4, WERE EXCLUDED FROM THE FIT. * -* * -* HEAVY QUARK THRESHOLDS Q(H) = M(H) : * -* M(C) = 1.5, M(B) = 4.5, M(T) = 100 GEV * -* * -* CORRESPONDING LAMBDA(F) VALUES FOR F ACTIVE FLAVOURS : * -* LO : LAMBDA(3) = 0.232, LAMBDA(4) = 0.200, * -* LAMBDA(5) = 0.153, LAMBDA(6) = 0.082 GEV * -* HO : LAMBDA(3) = 0.248, LAMBDA(4) = 0.200, * -* LAMBDA(5) = 0.131, LAMBDA(6) = 0.053 GEV * -* * -* HO DISTRIBUTION REFER TO THE MS-BAR SCHEME OF BARDEEN ET AL. * -* * -* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -C======================================================================= - - SUBROUTINE DORPLO (X, Q2, VAP, GLP, QBP, CBP, BBP) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A - Z) - SAVE - - MU2 = 0.25D0 - LAM2 = 0.232D0 * 0.232D0 - S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2)) - DS = SQRT (S) - S2 = S * S -C...X * VALENCE : - NV = 0.519D0 + 0.180D0 * S - 0.011D0 * S2 - AKV = 0.499D0 - 0.027D0 * S - AGV = 0.381D0 - 0.419D0 * S - DV = 0.367D0 + 0.563D0 * S - VAP = DORFVP (X, NV, AKV, AGV, DV) -C...X * GLUON : - ALG = 0.599D0 - BEG = 1.263D0 - AKG = 0.482D0 + 0.341D0 * DS - BKG = 0.0D0 - AGG = 0.678D0 + 0.877D0 * S - 0.175D0 * S2 - BGG = 0.338D0 - 1.597D0 * S - CG = 0.0D0 - 0.233D0 * S + 0.406D0 * S2 - DG = 0.390D0 + 1.053D0 * S - EG = 0.618D0 + 2.070D0 * S - ESG = 3.676D0 - GLP =DORFGP(X, S, ALG, BEG, AKG, BKG, AGG, BGG, CG, DG, EG, ESG) -C...X * QBAR (SU(3)-SYMMETRIC SEA) : - SL = 0.0D0 - ALS = 0.55D0 - BES = 0.56D0 - AKS = 2.538D0 - 0.763D0 * S - AGS = -0.748D0 - BS = 0.313D0 + 0.935D0 * S - DS = 3.359D0 - EST = 4.433D0 + 1.301D0 * S - ESS = 9.30D0 - 0.887D0 * S - QBP = DORFQP (X, S, SL, ALS, BES, AKS, AGS, BS, DS, EST, ESS) -C...X * CBAR = X * C : - SC = 0.888D0 - ALC = 1.02D0 - BEC = 0.39D0 - AKC = 0.0D0 - AGC = 0.0D0 - BC = 1.008D0 - DC = 1.208D0 + 0.771D0 * S - EC = 4.40D0 + 1.493D0 * S - ESC = 2.032D0 + 1.901D0 * S - CBP = DORFQP (X, S, SC, ALC, BEC, AKC, AGC, BC, DC, EC, ESC) -C...X * BBAR = X * B : - SBO = 1.351D0 - ALB = 1.03D0 - BEB = 0.39D0 - AKB = 0.0D0 - AGB = 0.0D0 - BBO = 0.0D0 - DB = 0.697D0 + 0.855D0 * S - EB = 4.51D0 + 1.490D0 * S - ESB = 3.056D0 + 1.694D0 * S - BBP = DORFQP (X, S, SBO, ALB, BEB, AKB, AGB, BBO, DB, EB, ESB) - RETURN - END -C -C======================================================================= - - SUBROUTINE DORPHO (X, Q2, VAP, GLP, QBP, CBP, BBP) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A - Z) - SAVE - - MU2 = 0.3D0 - LAM2 = 0.248D0 * 0.248D0 - S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2)) - DS = SQRT (S) - S2 = S * S -C...X * VALENCE : - NV = 0.456D0 + 0.150D0 * DS + 0.112D0 * S - 0.019D0 * S2 - AKV = 0.505D0 - 0.033D0 * S - AGV = 0.748D0 - 0.669D0 * DS - 0.133D0 * S - DV = 0.365D0 + 0.197D0 * DS + 0.394D0 * S - VAP = DORFVP (X, NV, AKV, AGV, DV) -C...X * GLUON : - ALG = 1.096D0 - BEG = 1.371D0 - AKG = 0.437D0 - 0.689D0 * DS - BKG = -0.631D0 - AGG = 1.324D0 - 0.441D0 * DS - 0.130D0 * S - BGG = -0.955D0 + 0.259D0 * S - CG = 1.075D0 - 0.302D0 * S - DG = 1.158D0 + 1.229D0 * S - EG = 0.0D0 + 2.510D0 * S - ESG = 2.604D0 + 0.165D0 * S - GLP =DORFGP(X, S, ALG, BEG, AKG, BKG, AGG, BGG, CG, DG, EG, ESG) -C...X * QBAR (SU(3)-SYMMETRIC SEA) : - SL = 0.0D0 - ALS = 0.85D0 - BES = 0.96D0 - AKS = -0.350D0 + 0.806D0 * S - AGS = -1.663D0 - BS = 3.148D0 - DS = 2.273D0 + 1.438D0 * S - EST = 3.214D0 + 1.545D0 * S - ESS = 1.341D0 + 1.938D0 * S - QBP = DORFQP (X, S, SL, ALS, BES, AKS, AGS, BS, DS, EST, ESS) -C...X * CBAR = X * C : - SC = 0.820D0 - ALC = 0.98D0 - BEC = 0.0D0 - AKC = 0.0D0 - 0.457D0 * S - AGC = 0.0D0 - BC = -1.00D0 + 1.40 D0* S - DC = 1.318D0 + 0.584D0 * S - EC = 4.45D0 + 1.235D0 * S - ESC = 1.496D0 + 1.010D0 * S - CBP = DORFQP (X, S, SC, ALC, BEC, AKC, AGC, BC, DC, EC, ESC) -C...X * BBAR = X * B : - SBO = 1.297D0 - ALB = 0.99D0 - BEB = 0.0D0 - AKB = 0.0D0 - 0.172D0 * S - AGB = 0.0D0 - BBO = 0.0D0 - DB = 1.447D0 + 0.485D0 * S - EB = 4.79D0 + 1.164D0 * S - ESB = 1.724D0 + 2.121D0 * S - BBP = DORFQP (X, S, SBO, ALB, BEB, AKB, AGB, BBO, DB, EB, ESB) - RETURN - END -C -C======================================================================= - - FUNCTION DORFVP (X, N, AK, AG, D) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A - Z) - SAVE - - DX = SQRT (X) - DORFVP = N * X**AK * (1.D0+ AG*DX) * (1.D0- X)**D - RETURN - END -C -C======================================================================= - - FUNCTION DORFGP (X, S, AL, BE, AK, BK, AG, BG, C, D, E, ES) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A - Z) - SAVE - - DX = SQRT (X) - LX = LOG (1.D0/X) - DORFGP = (X**AK * (AG + BG*DX + C*X) * LX**BK + S**AL - 1 * EXP (-E + SQRT (ES * S**BE * LX))) * (1.D0- X)**D - RETURN - END -C -C======================================================================= - - FUNCTION DORFQP (X, S, ST, AL, BE, AK, AG, B, D, E, ES) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A - Z) - SAVE - - DX = SQRT (X) - LX = LOG (1./X) - IF (S .LE. ST) THEN - DORFQP = 0.0D0 - ELSE - DORFQP = (S-ST)**AL / LX**AK * (1.D0+AG*DX+B*X) * (1.D0- X)**D - 1 * EXP(-E + SQRT(ES * S**BE * LX)) - END IF - RETURN - END -C======================================================================= - - DOUBLE PRECISION FUNCTION SIB_DOR92FS(X,S,ST,AL,BE,AK,AG,B,D,E,ES) - -C----------------------------------------------------------------------- - IMPLICIT DOUBLE PRECISION (A - Z) - SAVE - - DX = SQRT (X) - LX = LOG (1.D0/X) - IF (S .LE. ST) THEN - SIB_DOR92FS = 0.D0 - ELSE - SIB_DOR92FS = (S-ST)**AL/LX**AK*(1.D0+AG*DX+B*X)*(1.D0-X)**D - 1 * EXP (-E + SQRT (ES * S**BE * LX)) - END IF - - END - -C======================================================================= - - DOUBLE PRECISION FUNCTION SIB_DBFINT(NARG,ARG,NA,ENT,TABLE) - -C----------------------------------------------------------------------- -C -C routine based on CERN library E104 -C -C multi-dimensional interpolation routine, needed for PHOJET -C internal cross section tables and several PDF sets (GRV98 and AGL) -C -C changed to avoid recursive function calls (R.Engel, 09/98) -C -C*********************************************************************** - IMPLICIT DOUBLE PRECISION (A-H,O-Z) - IMPLICIT INTEGER(I-N) - - INTEGER NA(NARG), INDE(32) - DOUBLE PRECISION ARG(NARG),ENT(NARG),TABLE(*),WEIGHT(32) - SAVE - - - DBFINT = 0.D0 - SIB_DBFINT = 0.D0 - IF(NARG .LT. 1 .OR. NARG .GT. 5) RETURN - - LMAX = 0 - ISTEP = 1 - KNOTS = 1 - INDE(1) = 1 - WEIGHT(1) = 1.D0 - DO 100 N = 1, NARG - X = ARG(N) - NDIM = NA(N) - LOCA = LMAX - LMIN = LMAX + 1 - LMAX = LMAX + NDIM - IF(NDIM .GT. 2) GOTO 10 - IF(NDIM .EQ. 1) GOTO 100 - H = X - ENT(LMIN) - IF(ABS(H) .LT. 0.D-8) GOTO 90 - ISHIFT = ISTEP - IF(ABS(X-ENT(LMIN+1)) .LT. 0.D-8) GOTO 21 - ISHIFT = 0 - ETA = H / (ENT(LMIN+1) - ENT(LMIN)) - GOTO 30 - 10 LOCB = LMAX + 1 - 11 LOCC = (LOCA+LOCB) / 2 - IF(X-ENT(LOCC)) 12, 20, 13 - 12 LOCB = LOCC - GOTO 14 - 13 LOCA = LOCC - 14 IF(LOCB-LOCA .GT. 1) GOTO 11 - LOCA = MIN ( MAX (LOCA,LMIN), LMAX-1 ) - ISHIFT = (LOCA - LMIN) * ISTEP - ETA = (X - ENT(LOCA)) / (ENT(LOCA+1) - ENT(LOCA)) - GOTO 30 - 20 ISHIFT = (LOCC - LMIN) * ISTEP - 21 DO 22 K = 1, KNOTS - INDE(K) = INDE(K) + ISHIFT - 22 CONTINUE - GOTO 90 - 30 DO 31 K = 1, KNOTS - INDE(K) = INDE(K) + ISHIFT - INDE(K+KNOTS) = INDE(K) + ISTEP - WEIGHT(K+KNOTS) = WEIGHT(K) * ETA - WEIGHT(K) = WEIGHT(K) - WEIGHT(K+KNOTS) - 31 CONTINUE - KNOTS = 2*KNOTS - 90 ISTEP = ISTEP * NDIM - 100 CONTINUE - DO 200 K = 1, KNOTS - I = INDE(K) - DBFINT = DBFINT + WEIGHT(K) * TABLE(I) - 200 CONTINUE - - SIB_DBFINT = DBFINT - - END - -C======================================================================= - - SUBROUTINE SIB_DOR98LO (Xinp, Q2inp, UV, DV, US, DS, SS, GL) - -C----------------------------------------------------------------------- -C*********************************************************************** -C -C GRV98 parton densities, leading order set -C -C For a detailed explanation see -C M. Glueck, E. Reya, A. Vogt : -C hep-ph/9806404 = DO-TH 98/07 = WUE-ITP-98-019 -C (To appear in Eur. Phys. J. C) -C -C interpolation routine based on the original GRV98PA routine, -C adapted to define interpolation table as DATA statements -C -C (R.Engel, 09/98) -C -C -C INPUT: X = Bjorken-x (between 1.E-9 and 1.) -C Q2 = scale in GeV**2 (between 0.8 and 1.E6) -C -C OUTPUT: UV = u - u(bar), DV = d - d(bar), US = u(bar), -C DS = d(bar), SS = s = s(bar), GL = gluon. -C Always x times the distribution is returned. -C -C******************************************************i**************** - IMPLICIT DOUBLE PRECISION (A-H, O-Z) - IMPLICIT INTEGER(I-N) - - PARAMETER (NX=68, NQ=27, NARG=2) - DIMENSION XUVF(NX,NQ), XDVF(NX,NQ), XDEF(NX,NQ), XUDF(NX,NQ), - 1 XSF(NX,NQ), XGF(NX,NQ), - 2 XT(NARG), NA(NARG), ARRF(NX+NQ) - - DIMENSION XUVF_L(NX*NQ), XDVF_L(NX*NQ), XDEF_L(NX*NQ), - & XUDF_L(NX*NQ), XSF_L(NX*NQ), XGF_L(NX*NQ) - - EQUIVALENCE (XUVF(1,1),XUVF_L(1)) - EQUIVALENCE (XDVF(1,1),XDVF_L(1)) - EQUIVALENCE (XDEF(1,1),XDEF_L(1)) - EQUIVALENCE (XUDF(1,1),XUDF_L(1)) - EQUIVALENCE (XSF(1,1),XSF_L(1)) - EQUIVALENCE (XGF(1,1),XGF_L(1)) - SAVE - - DATA (ARRF(K),K= 1, 95) / - & -2.0723D+01,-2.0135D+01,-1.9560D+01,-1.8983D+01,-1.8421D+01, - & -1.7833D+01,-1.7258D+01,-1.6680D+01,-1.6118D+01,-1.5530D+01, - & -1.4955D+01,-1.4378D+01,-1.3816D+01,-1.3479D+01,-1.3122D+01, - & -1.2717D+01,-1.2311D+01,-1.1913D+01,-1.1513D+01,-1.1176D+01, - & -1.0820D+01,-1.0414D+01,-1.0009D+01,-9.6108D+00,-9.2103D+00, - & -8.8739D+00,-8.5172D+00,-8.1117D+00,-7.7063D+00,-7.3082D+00, - & -6.9078D+00,-6.5713D+00,-6.2146D+00,-5.8091D+00,-5.4037D+00, - & -5.0056D+00,-4.6052D+00,-4.2687D+00,-3.9120D+00,-3.5066D+00, - & -3.1011D+00,-2.8134D+00,-2.5257D+00,-2.3026D+00,-2.0794D+00, - & -1.8971D+00,-1.7430D+00,-1.6094D+00,-1.4917D+00,-1.3863D+00, - & -1.2910D+00,-1.2040D+00,-1.1239D+00,-1.0498D+00,-9.8083D-01, - & -9.1629D-01,-7.9851D-01,-6.9315D-01,-5.9784D-01,-5.1083D-01, - & -4.3078D-01,-3.5667D-01,-2.8768D-01,-2.2314D-01,-1.6252D-01, - & -1.0536D-01,-5.1293D-02, 0.0000D+00,-2.2314D-01, 0.0000D+00, - & 2.6236D-01, 5.8779D-01, 9.9325D-01, 1.3863D+00, 1.8563D+00, - & 2.3026D+00, 2.7726D+00, 3.2189D+00, 3.6889D+00, 4.1589D+00, - & 4.6052D+00, 5.1930D+00, 5.7683D+00, 6.3456D+00, 6.9078D+00, - & 7.4955D+00, 8.0709D+00, 8.6482D+00, 9.2103D+00, 9.9988D+00, - & 1.0736D+01, 1.1513D+01, 1.2301D+01, 1.3039D+01, 1.3816D+01/ - DATA (XUVF_L(K),K= 1, 114) / - &2.3186D+00,2.2915D+00,2.2645D+00,2.2385D+00,2.2140D+00,2.1876D+00, - &2.1623D+00,2.1366D+00,2.1121D+00,2.0862D+00,2.0612D+00,2.0358D+00, - &2.0110D+00,1.9963D+00,1.9806D+00,1.9624D+00,1.9446D+00,1.9263D+00, - &1.9072D+00,1.8904D+00,1.8724D+00,1.8515D+00,1.8294D+00,1.8085D+00, - &1.7865D+00,1.7680D+00,1.7483D+00,1.7249D+00,1.6993D+00,1.6715D+00, - &1.6385D+00,1.6141D+00,1.5884D+00,1.5597D+00,1.5337D+00,1.5121D+00, - &1.4985D+00,1.4980D+00,1.5116D+00,1.5555D+00,1.6432D+00,1.7434D+00, - &1.8861D+00,2.0327D+00,2.2174D+00,2.4015D+00,2.5849D+00,2.7671D+00, - &2.9488D+00,3.1308D+00,3.3142D+00,3.4998D+00,3.6885D+00,3.8826D+00, - &4.0815D+00,4.2069D+00,4.5481D+00,4.8830D+00,5.2116D+00,5.5351D+00, - &5.8553D+00,6.1665D+00,6.4745D+00,6.7767D+00,7.0735D+00,7.3628D+00, - &7.6283D+00,0.0000D+00,2.3948D+00,2.3665D+00,2.3388D+00,2.3126D+00, - &2.2860D+00,2.2592D+00,2.2327D+00,2.2065D+00,2.1810D+00,2.1541D+00, - &2.1284D+00,2.1020D+00,2.0760D+00,2.0605D+00,2.0443D+00,2.0259D+00, - &2.0068D+00,1.9873D+00,1.9676D+00,1.9500D+00,1.9312D+00,1.9081D+00, - &1.8860D+00,1.8635D+00,1.8406D+00,1.8221D+00,1.8007D+00,1.7764D+00, - &1.7489D+00,1.7195D+00,1.6855D+00,1.6600D+00,1.6332D+00,1.6031D+00, - &1.5760D+00,1.5532D+00,1.5397D+00,1.5376D+00,1.5507D+00,1.5929D+00, - &1.6784D+00,1.7759D+00,1.9129D+00,2.0531D+00,2.2292D+00,2.4032D+00/ - DATA (XUVF_L(K),K= 115, 228) / - &2.5752D+00,2.7449D+00,2.9135D+00,3.0810D+00,3.2491D+00,3.4183D+00, - &3.5898D+00,3.7650D+00,3.9437D+00,4.0443D+00,4.3402D+00,4.6262D+00, - &4.9009D+00,5.1640D+00,5.4156D+00,5.6530D+00,5.8759D+00,6.0779D+00, - &6.2540D+00,6.3836D+00,6.4062D+00,0.0000D+00,2.4808D+00,2.4513D+00, - &2.4236D+00,2.3948D+00,2.3680D+00,2.3397D+00,2.3127D+00,2.2853D+00, - &2.2585D+00,2.2307D+00,2.2026D+00,2.1762D+00,2.1490D+00,2.1332D+00, - &2.1164D+00,2.0964D+00,2.0766D+00,2.0565D+00,2.0353D+00,2.0171D+00, - &1.9969D+00,1.9738D+00,1.9501D+00,1.9258D+00,1.9026D+00,1.8821D+00, - &1.8594D+00,1.8330D+00,1.8046D+00,1.7734D+00,1.7378D+00,1.7112D+00, - &1.6829D+00,1.6514D+00,1.6228D+00,1.5994D+00,1.5840D+00,1.5808D+00, - &1.5927D+00,1.6334D+00,1.7157D+00,1.8093D+00,1.9406D+00,2.0735D+00, - &2.2394D+00,2.4019D+00,2.5615D+00,2.7178D+00,2.8718D+00,3.0246D+00, - &3.1766D+00,3.3284D+00,3.4820D+00,3.6370D+00,3.7952D+00,3.8716D+00, - &4.1225D+00,4.3580D+00,4.5798D+00,4.7847D+00,4.9730D+00,5.1395D+00, - &5.2832D+00,5.3945D+00,5.4634D+00,5.4612D+00,5.2940D+00,0.0000D+00, - &2.5823D+00,2.5527D+00,2.5226D+00,2.4928D+00,2.4650D+00,2.4358D+00, - &2.4071D+00,2.3783D+00,2.3505D+00,2.3212D+00,2.2928D+00,2.2636D+00, - &2.2360D+00,2.2185D+00,2.2005D+00,2.1801D+00,2.1591D+00,2.1376D+00, - &2.1153D+00,2.0960D+00,2.0747D+00,2.0505D+00,2.0247D+00,1.9991D+00/ - DATA (XUVF_L(K),K= 229, 342) / - &1.9746D+00,1.9523D+00,1.9287D+00,1.9000D+00,1.8693D+00,1.8361D+00, - &1.7994D+00,1.7711D+00,1.7409D+00,1.7076D+00,1.6772D+00,1.6517D+00, - &1.6345D+00,1.6302D+00,1.6408D+00,1.6789D+00,1.7574D+00,1.8457D+00, - &1.9692D+00,2.0939D+00,2.2474D+00,2.3969D+00,2.5419D+00,2.6837D+00, - &2.8216D+00,2.9573D+00,3.0915D+00,3.2246D+00,3.3583D+00,3.4917D+00, - &3.6273D+00,3.6791D+00,3.8823D+00,4.0673D+00,4.2350D+00,4.3813D+00, - &4.5072D+00,4.6083D+00,4.6757D+00,4.7055D+00,4.6825D+00,4.5674D+00, - &4.2566D+00,0.0000D+00,2.7025D+00,2.6705D+00,2.6393D+00,2.6093D+00, - &2.5790D+00,2.5484D+00,2.5184D+00,2.4880D+00,2.4590D+00,2.4277D+00, - &2.3971D+00,2.3669D+00,2.3380D+00,2.3200D+00,2.3002D+00,2.2782D+00, - &2.2557D+00,2.2331D+00,2.2092D+00,2.1887D+00,2.1660D+00,2.1400D+00, - &2.1126D+00,2.0859D+00,2.0586D+00,2.0351D+00,2.0094D+00,1.9786D+00, - &1.9453D+00,1.9096D+00,1.8707D+00,1.8406D+00,1.8084D+00,1.7728D+00, - &1.7392D+00,1.7128D+00,1.6933D+00,1.6875D+00,1.6949D+00,1.7295D+00, - &1.8023D+00,1.8845D+00,1.9991D+00,2.1134D+00,2.2525D+00,2.3868D+00, - &2.5160D+00,2.6405D+00,2.7609D+00,2.8781D+00,2.9929D+00,3.1059D+00, - &3.2180D+00,3.3292D+00,3.4407D+00,3.4675D+00,3.6225D+00,3.7573D+00, - &3.8710D+00,3.9617D+00,4.0270D+00,4.0642D+00,4.0675D+00,4.0263D+00, - &3.9240D+00,3.7262D+00,3.3217D+00,0.0000D+00,2.8135D+00,2.7813D+00/ - DATA (XUVF_L(K),K= 343, 456) / - &2.7489D+00,2.7166D+00,2.6850D+00,2.6527D+00,2.6212D+00,2.5898D+00, - &2.5592D+00,2.5267D+00,2.4943D+00,2.4636D+00,2.4320D+00,2.4129D+00, - &2.3929D+00,2.3695D+00,2.3453D+00,2.3211D+00,2.2959D+00,2.2740D+00, - &2.2496D+00,2.2221D+00,2.1931D+00,2.1653D+00,2.1356D+00,2.1112D+00, - &2.0830D+00,2.0503D+00,2.0147D+00,1.9766D+00,1.9361D+00,1.9037D+00, - &1.8696D+00,1.8318D+00,1.7966D+00,1.7677D+00,1.7459D+00,1.7378D+00, - &1.7430D+00,1.7738D+00,1.8407D+00,1.9169D+00,2.0223D+00,2.1273D+00, - &2.2537D+00,2.3742D+00,2.4892D+00,2.5990D+00,2.7043D+00,2.8056D+00, - &2.9038D+00,3.0000D+00,3.0936D+00,3.1864D+00,3.2782D+00,3.2867D+00, - &3.4021D+00,3.4971D+00,3.5691D+00,3.6188D+00,3.6422D+00,3.6335D+00, - &3.5908D+00,3.5036D+00,3.3552D+00,3.1085D+00,2.6634D+00,0.0000D+00, - &2.9406D+00,2.9062D+00,2.8726D+00,2.8385D+00,2.8060D+00,2.7720D+00, - &2.7392D+00,2.7058D+00,2.6734D+00,2.6399D+00,2.6057D+00,2.5722D+00, - &2.5390D+00,2.5194D+00,2.4975D+00,2.4728D+00,2.4471D+00,2.4216D+00, - &2.3945D+00,2.3712D+00,2.3458D+00,2.3152D+00,2.2856D+00,2.2545D+00, - &2.2237D+00,2.1966D+00,2.1672D+00,2.1312D+00,2.0926D+00,2.0521D+00, - &2.0093D+00,1.9748D+00,1.9384D+00,1.8975D+00,1.8601D+00,1.8275D+00, - &1.8036D+00,1.7924D+00,1.7948D+00,1.8206D+00,1.8808D+00,1.9499D+00, - &2.0450D+00,2.1390D+00,2.2512D+00,2.3570D+00,2.4564D+00,2.5501D+00/ - DATA (XUVF_L(K),K= 457, 570) / - &2.6391D+00,2.7240D+00,2.8053D+00,2.8834D+00,2.9590D+00,3.0326D+00, - &3.1042D+00,3.0942D+00,3.1727D+00,3.2289D+00,3.2628D+00,3.2739D+00, - &3.2574D+00,3.2103D+00,3.1297D+00,3.0047D+00,2.8211D+00,2.5467D+00, - &2.0897D+00,0.0000D+00,3.0557D+00,3.0193D+00,2.9840D+00,2.9497D+00, - &2.9150D+00,2.8801D+00,2.8454D+00,2.8109D+00,2.7771D+00,2.7412D+00, - &2.7065D+00,2.6716D+00,2.6360D+00,2.6149D+00,2.5923D+00,2.5663D+00, - &2.5395D+00,2.5120D+00,2.4834D+00,2.4589D+00,2.4330D+00,2.4011D+00, - &2.3676D+00,2.3363D+00,2.3027D+00,2.2736D+00,2.2422D+00,2.2040D+00, - &2.1629D+00,2.1194D+00,2.0750D+00,2.0384D+00,1.9996D+00,1.9565D+00, - &1.9160D+00,1.8811D+00,1.8541D+00,1.8409D+00,1.8399D+00,1.8611D+00, - &1.9143D+00,1.9764D+00,2.0622D+00,2.1459D+00,2.2457D+00,2.3385D+00, - &2.4249D+00,2.5051D+00,2.5806D+00,2.6515D+00,2.7182D+00,2.7823D+00, - &2.8427D+00,2.9008D+00,2.9564D+00,2.9332D+00,2.9828D+00,3.0094D+00, - &3.0142D+00,2.9955D+00,2.9537D+00,2.8796D+00,2.7735D+00,2.6260D+00, - &2.4242D+00,2.1388D+00,1.6900D+00,0.0000D+00,3.1718D+00,3.1348D+00, - &3.0971D+00,3.0610D+00,3.0260D+00,2.9896D+00,2.9533D+00,2.9173D+00, - &2.8818D+00,2.8449D+00,2.8072D+00,2.7709D+00,2.7340D+00,2.7121D+00, - &2.6877D+00,2.6605D+00,2.6319D+00,2.6032D+00,2.5732D+00,2.5471D+00, - &2.5180D+00,2.4851D+00,2.4511D+00,2.4170D+00,2.3817D+00,2.3505D+00/ - DATA (XUVF_L(K),K= 571, 684) / - &2.3172D+00,2.2762D+00,2.2328D+00,2.1868D+00,2.1400D+00,2.1012D+00, - &2.0601D+00,2.0136D+00,1.9704D+00,1.9335D+00,1.9035D+00,1.8868D+00, - &1.8827D+00,1.8990D+00,1.9452D+00,2.0005D+00,2.0763D+00,2.1507D+00, - &2.2377D+00,2.3179D+00,2.3917D+00,2.4592D+00,2.5218D+00,2.5799D+00, - &2.6336D+00,2.6843D+00,2.7314D+00,2.7753D+00,2.8166D+00,2.7824D+00, - &2.8054D+00,2.8081D+00,2.7893D+00,2.7474D+00,2.6818D+00,2.5888D+00, - &2.4646D+00,2.3032D+00,2.0902D+00,1.8025D+00,1.3740D+00,0.0000D+00, - &3.2793D+00,3.2385D+00,3.2014D+00,3.1643D+00,3.1270D+00,3.0888D+00, - &3.0517D+00,3.0141D+00,2.9773D+00,2.9392D+00,2.9009D+00,2.8610D+00, - &2.8230D+00,2.8000D+00,2.7754D+00,2.7459D+00,2.7163D+00,2.6858D+00, - &2.6545D+00,2.6270D+00,2.5962D+00,2.5617D+00,2.5271D+00,2.4903D+00, - &2.4527D+00,2.4207D+00,2.3851D+00,2.3421D+00,2.2960D+00,2.2476D+00, - &2.1987D+00,2.1578D+00,2.1146D+00,2.0670D+00,2.0202D+00,1.9796D+00, - &1.9468D+00,1.9282D+00,1.9203D+00,1.9319D+00,1.9712D+00,2.0197D+00, - &2.0872D+00,2.1524D+00,2.2288D+00,2.2981D+00,2.3606D+00,2.4177D+00, - &2.4692D+00,2.5159D+00,2.5591D+00,2.5981D+00,2.6339D+00,2.6669D+00, - &2.6962D+00,2.6528D+00,2.6566D+00,2.6395D+00,2.6028D+00,2.5437D+00, - &2.4622D+00,2.3555D+00,2.2200D+00,2.0488D+00,1.8335D+00,1.5506D+00, - &1.1442D+00,0.0000D+00,3.3868D+00,3.3470D+00,3.3075D+00,3.2689D+00/ - DATA (XUVF_L(K),K= 685, 798) / - &3.2300D+00,3.1909D+00,3.1517D+00,3.1129D+00,3.0747D+00,3.0335D+00, - &2.9946D+00,2.9537D+00,2.9140D+00,2.8896D+00,2.8638D+00,2.8337D+00, - &2.8021D+00,2.7705D+00,2.7373D+00,2.7075D+00,2.6767D+00,2.6403D+00, - &2.6031D+00,2.5649D+00,2.5258D+00,2.4917D+00,2.4537D+00,2.4080D+00, - &2.3597D+00,2.3091D+00,2.2580D+00,2.2150D+00,2.1692D+00,2.1186D+00, - &2.0701D+00,2.0257D+00,1.9901D+00,1.9679D+00,1.9571D+00,1.9629D+00, - &1.9955D+00,2.0378D+00,2.0963D+00,2.1529D+00,2.2178D+00,2.2766D+00, - &2.3287D+00,2.3749D+00,2.4162D+00,2.4529D+00,2.4850D+00,2.5140D+00, - &2.5392D+00,2.5617D+00,2.5798D+00,2.5298D+00,2.5151D+00,2.4811D+00, - &2.4282D+00,2.3561D+00,2.2611D+00,2.1439D+00,2.0005D+00,1.8252D+00, - &1.6091D+00,1.3345D+00,9.5375D-01,0.0000D+00,3.4912D+00,3.4507D+00, - &3.4100D+00,3.3696D+00,3.3310D+00,3.2893D+00,3.2496D+00,3.2088D+00, - &3.1686D+00,3.1278D+00,3.0865D+00,3.0438D+00,3.0020D+00,2.9766D+00, - &2.9494D+00,2.9180D+00,2.8850D+00,2.8520D+00,2.8174D+00,2.7877D+00, - &2.7550D+00,2.7169D+00,2.6762D+00,2.6369D+00,2.5958D+00,2.5594D+00, - &2.5195D+00,2.4721D+00,2.4211D+00,2.3680D+00,2.3145D+00,2.2695D+00, - &2.2214D+00,2.1684D+00,2.1154D+00,2.0706D+00,2.0303D+00,2.0058D+00, - &1.9909D+00,1.9920D+00,2.0177D+00,2.0531D+00,2.1031D+00,2.1511D+00, - &2.2060D+00,2.2548D+00,2.2972D+00,2.3339D+00,2.3655D+00,2.3927D+00/ - DATA (XUVF_L(K),K= 799, 912) / - &2.4159D+00,2.4357D+00,2.4520D+00,2.4644D+00,2.4735D+00,2.4171D+00, - &2.3878D+00,2.3397D+00,2.2743D+00,2.1907D+00,2.0861D+00,1.9611D+00, - &1.8128D+00,1.6351D+00,1.4227D+00,1.1584D+00,8.0371D-01,0.0000D+00, - &3.5892D+00,3.5473D+00,3.5055D+00,3.4637D+00,3.4230D+00,3.3809D+00, - &3.3396D+00,3.2976D+00,3.2571D+00,3.2126D+00,3.1696D+00,3.1272D+00, - &3.0840D+00,3.0569D+00,3.0286D+00,2.9959D+00,2.9619D+00,2.9273D+00, - &2.8910D+00,2.8598D+00,2.8266D+00,2.7863D+00,2.7448D+00,2.7029D+00, - &2.6598D+00,2.6219D+00,2.5804D+00,2.5305D+00,2.4773D+00,2.4214D+00, - &2.3662D+00,2.3191D+00,2.2698D+00,2.2126D+00,2.1577D+00,2.1092D+00, - &2.0674D+00,2.0393D+00,2.0210D+00,2.0173D+00,2.0367D+00,2.0654D+00, - &2.1076D+00,2.1485D+00,2.1942D+00,2.2338D+00,2.2678D+00,2.2959D+00, - &2.3193D+00,2.3386D+00,2.3539D+00,2.3660D+00,2.3738D+00,2.3789D+00, - &2.3799D+00,2.3197D+00,2.2776D+00,2.2186D+00,2.1426D+00,2.0495D+00, - &1.9397D+00,1.8097D+00,1.6583D+00,1.4814D+00,1.2736D+00,1.0200D+00, - &6.8880D-01,0.0000D+00,3.7157D+00,3.6699D+00,3.6275D+00,3.5842D+00, - &3.5420D+00,3.4972D+00,3.4542D+00,3.4107D+00,3.3678D+00,3.3234D+00, - &3.2774D+00,3.2332D+00,3.1870D+00,3.1600D+00,3.1297D+00,3.0952D+00, - &3.0595D+00,3.0231D+00,2.9850D+00,2.9534D+00,2.9160D+00,2.8740D+00, - &2.8312D+00,2.7872D+00,2.7408D+00,2.7014D+00,2.6568D+00,2.6045D+00/ - DATA (XUVF_L(K),K= 913, 1026) / - &2.5481D+00,2.4895D+00,2.4315D+00,2.3817D+00,2.3283D+00,2.2697D+00, - &2.2106D+00,2.1591D+00,2.1128D+00,2.0807D+00,2.0578D+00,2.0477D+00, - &2.0583D+00,2.0796D+00,2.1122D+00,2.1433D+00,2.1777D+00,2.2069D+00, - &2.2299D+00,2.2483D+00,2.2618D+00,2.2718D+00,2.2778D+00,2.2803D+00, - &2.2797D+00,2.2749D+00,2.2668D+00,2.2019D+00,2.1468D+00,2.0761D+00, - &1.9902D+00,1.8883D+00,1.7711D+00,1.6370D+00,1.4847D+00,1.3103D+00, - &1.1091D+00,8.7047D-01,5.6856D-01,0.0000D+00,3.8327D+00,3.7877D+00, - &3.7424D+00,3.6981D+00,3.6540D+00,3.6083D+00,3.5637D+00,3.5184D+00, - &3.4753D+00,3.4271D+00,3.3800D+00,3.3325D+00,3.2860D+00,3.2564D+00, - &3.2258D+00,3.1893D+00,3.1519D+00,3.1135D+00,3.0738D+00,3.0389D+00, - &3.0010D+00,2.9580D+00,2.9118D+00,2.8654D+00,2.8178D+00,2.7758D+00, - &2.7289D+00,2.6738D+00,2.6146D+00,2.5530D+00,2.4924D+00,2.4399D+00, - &2.3845D+00,2.3213D+00,2.2605D+00,2.2040D+00,2.1540D+00,2.1186D+00, - &2.0908D+00,2.0749D+00,2.0772D+00,2.0914D+00,2.1145D+00,2.1368D+00, - &2.1613D+00,2.1804D+00,2.1941D+00,2.2037D+00,2.2088D+00,2.2101D+00, - &2.2083D+00,2.2031D+00,2.1942D+00,2.1826D+00,2.1665D+00,2.0987D+00, - &2.0321D+00,1.9516D+00,1.8571D+00,1.7497D+00,1.6281D+00,1.4923D+00, - &1.3406D+00,1.1697D+00,9.7635D-01,7.5209D-01,4.7638D-01,0.0000D+00, - &3.9497D+00,3.9009D+00,3.8555D+00,3.8080D+00,3.7630D+00,3.7163D+00/ - DATA (XUVF_L(K),K= 1027, 1140) / - &3.6699D+00,3.6231D+00,3.5765D+00,3.5285D+00,3.4807D+00,3.4305D+00, - &3.3810D+00,3.3511D+00,3.3185D+00,3.2805D+00,3.2414D+00,3.2016D+00, - &3.1598D+00,3.1244D+00,3.0837D+00,3.0383D+00,2.9908D+00,2.9424D+00, - &2.8919D+00,2.8477D+00,2.7990D+00,2.7403D+00,2.6784D+00,2.6142D+00, - &2.5507D+00,2.4960D+00,2.4362D+00,2.3710D+00,2.3058D+00,2.2463D+00, - &2.1931D+00,2.1539D+00,2.1216D+00,2.0996D+00,2.0940D+00,2.1012D+00, - &2.1154D+00,2.1294D+00,2.1444D+00,2.1543D+00,2.1597D+00,2.1610D+00, - &2.1585D+00,2.1523D+00,2.1432D+00,2.1307D+00,2.1155D+00,2.0964D+00, - &2.0742D+00,2.0035D+00,1.9273D+00,1.8396D+00,1.7387D+00,1.6273D+00, - &1.5032D+00,1.3665D+00,1.2164D+00,1.0501D+00,8.6515D-01,6.5470D-01, - &4.0284D-01,0.0000D+00,4.0572D+00,4.0093D+00,3.9616D+00,3.9140D+00, - &3.8670D+00,3.8185D+00,3.7706D+00,3.7224D+00,3.6746D+00,3.6251D+00, - &3.5744D+00,3.5233D+00,3.4720D+00,3.4406D+00,3.4062D+00,3.3671D+00, - &3.3263D+00,3.2847D+00,3.2414D+00,3.2046D+00,3.1620D+00,3.1150D+00, - &3.0653D+00,3.0145D+00,2.9619D+00,2.9153D+00,2.8641D+00,2.8032D+00, - &2.7388D+00,2.6715D+00,2.6056D+00,2.5481D+00,2.4880D+00,2.4171D+00, - &2.3496D+00,2.2862D+00,2.2282D+00,2.1865D+00,2.1502D+00,2.1217D+00, - &2.1086D+00,2.1086D+00,2.1149D+00,2.1216D+00,2.1275D+00,2.1295D+00, - &2.1273D+00,2.1212D+00,2.1119D+00,2.0992D+00,2.0837D+00,2.0653D+00/ - DATA (XUVF_L(K),K= 1141, 1254) / - &2.0442D+00,2.0194D+00,1.9912D+00,1.9193D+00,1.8359D+00,1.7412D+00, - &1.6366D+00,1.5214D+00,1.3956D+00,1.2594D+00,1.1115D+00,9.5033D-01, - &7.7356D-01,5.7585D-01,3.4506D-01,0.0000D+00,4.1710D+00,4.1201D+00, - &4.0712D+00,4.0213D+00,3.9730D+00,3.9228D+00,3.8734D+00,3.8233D+00, - &3.7726D+00,3.7217D+00,3.6699D+00,3.6160D+00,3.5640D+00,3.5311D+00, - &3.4960D+00,3.4549D+00,3.4121D+00,3.3689D+00,3.3237D+00,3.2848D+00, - &3.2425D+00,3.1917D+00,3.1399D+00,3.0866D+00,3.0319D+00,2.9838D+00, - &2.9306D+00,2.8668D+00,2.7992D+00,2.7291D+00,2.6605D+00,2.6007D+00, - &2.5375D+00,2.4631D+00,2.3919D+00,2.3261D+00,2.2643D+00,2.2183D+00, - &2.1772D+00,2.1426D+00,2.1222D+00,2.1155D+00,2.1135D+00,2.1130D+00, - &2.1102D+00,2.1039D+00,2.0941D+00,2.0815D+00,2.0652D+00,2.0466D+00, - &2.0251D+00,2.0014D+00,1.9746D+00,1.9450D+00,1.9116D+00,1.8381D+00, - &1.7481D+00,1.6484D+00,1.5404D+00,1.4225D+00,1.2963D+00,1.1611D+00, - &1.0161D+00,8.6047D-01,6.9193D-01,5.0691D-01,2.9581D-01,0.0000D+00, - &4.2754D+00,4.2238D+00,4.1737D+00,4.1233D+00,4.0740D+00,4.0219D+00, - &3.9713D+00,3.9196D+00,3.8675D+00,3.8160D+00,3.7618D+00,3.7060D+00, - &3.6510D+00,3.6173D+00,3.5808D+00,3.5380D+00,3.4941D+00,3.4493D+00, - &3.4027D+00,3.3623D+00,3.3163D+00,3.2647D+00,3.2114D+00,3.1563D+00, - &3.0989D+00,3.0489D+00,2.9929D+00,2.9263D+00,2.8563D+00,2.7837D+00/ - DATA (XUVF_L(K),K= 1255, 1368) / - &2.7122D+00,2.6501D+00,2.5825D+00,2.5073D+00,2.4327D+00,2.3623D+00, - &2.2962D+00,2.2474D+00,2.2020D+00,2.1616D+00,2.1335D+00,2.1209D+00, - &2.1113D+00,2.1034D+00,2.0929D+00,2.0795D+00,2.0634D+00,2.0439D+00, - &2.0222D+00,1.9982D+00,1.9716D+00,1.9428D+00,1.9113D+00,1.8773D+00, - &1.8394D+00,1.7649D+00,1.6692D+00,1.5658D+00,1.4547D+00,1.3360D+00, - &1.2095D+00,1.0761D+00,9.3485D-01,7.8430D-01,6.2380D-01,4.5010D-01, - &2.5625D-01,0.0000D+00,4.3798D+00,4.3275D+00,4.2762D+00,4.2239D+00, - &4.1730D+00,4.1196D+00,4.0674D+00,4.0143D+00,3.9623D+00,3.9056D+00, - &3.8502D+00,3.7935D+00,3.7370D+00,3.7018D+00,3.6642D+00,3.6200D+00, - &3.5742D+00,3.5277D+00,3.4786D+00,3.4371D+00,3.3901D+00,3.3359D+00, - &3.2800D+00,3.2235D+00,3.1639D+00,3.1115D+00,3.0537D+00,2.9847D+00, - &2.9116D+00,2.8364D+00,2.7623D+00,2.6973D+00,2.6275D+00,2.5497D+00, - &2.4705D+00,2.3972D+00,2.3281D+00,2.2747D+00,2.2253D+00,2.1793D+00, - &2.1444D+00,2.1253D+00,2.1081D+00,2.0939D+00,2.0755D+00,2.0555D+00, - &2.0332D+00,2.0081D+00,1.9814D+00,1.9522D+00,1.9205D+00,1.8875D+00, - &1.8520D+00,1.8139D+00,1.7725D+00,1.6968D+00,1.5976D+00,1.4911D+00, - &1.3772D+00,1.2577D+00,1.1320D+00,1.0005D+00,8.6242D-01,7.1750D-01, - &5.6466D-01,4.0150D-01,2.2333D-01,0.0000D+00,4.4809D+00,4.4265D+00, - &4.3735D+00,4.3193D+00,4.2670D+00,4.2128D+00,4.1585D+00,4.1039D+00/ - DATA (XUVF_L(K),K= 1369, 1482) / - &4.0509D+00,3.9928D+00,3.9351D+00,3.8769D+00,3.8180D+00,3.7821D+00, - &3.7434D+00,3.6974D+00,3.6501D+00,3.6019D+00,3.5513D+00,3.5093D+00, - &3.4594D+00,3.4035D+00,3.3456D+00,3.2870D+00,3.2250D+00,3.1715D+00, - &3.1110D+00,3.0396D+00,2.9639D+00,2.8863D+00,2.8096D+00,2.7429D+00, - &2.6702D+00,2.5884D+00,2.5068D+00,2.4296D+00,2.3560D+00,2.3003D+00, - &2.2464D+00,2.1951D+00,2.1530D+00,2.1283D+00,2.1045D+00,2.0843D+00, - &2.0591D+00,2.0328D+00,2.0047D+00,1.9749D+00,1.9429D+00,1.9096D+00, - &1.8740D+00,1.8369D+00,1.7978D+00,1.7560D+00,1.7116D+00,1.6360D+00, - &1.5322D+00,1.4233D+00,1.3084D+00,1.1885D+00,1.0637D+00,9.3449D-01, - &7.9961D-01,6.6020D-01,5.1453D-01,3.6103D-01,1.9641D-01,0.0000D+00, - &4.6169D+00,4.5608D+00,4.5060D+00,4.4504D+00,4.3960D+00,4.3395D+00, - &4.2837D+00,4.2262D+00,4.1710D+00,4.1106D+00,4.0517D+00,3.9908D+00, - &3.9300D+00,3.8920D+00,3.8509D+00,3.8030D+00,3.7538D+00,3.7035D+00, - &3.6494D+00,3.6055D+00,3.5556D+00,3.4966D+00,3.4351D+00,3.3738D+00, - &3.3090D+00,3.2518D+00,3.1888D+00,3.1141D+00,3.0348D+00,2.9533D+00, - &2.8730D+00,2.8020D+00,2.7264D+00,2.6400D+00,2.5551D+00,2.4732D+00, - &2.3941D+00,2.3329D+00,2.2742D+00,2.2147D+00,2.1644D+00,2.1317D+00, - &2.0986D+00,2.0700D+00,2.0363D+00,2.0021D+00,1.9668D+00,1.9299D+00, - &1.8922D+00,1.8532D+00,1.8125D+00,1.7704D+00,1.7270D+00,1.6809D+00/ - DATA (XUVF_L(K),K= 1483, 1596) / - &1.6327D+00,1.5570D+00,1.4497D+00,1.3373D+00,1.2215D+00,1.1020D+00, - &9.7897D-01,8.5304D-01,7.2349D-01,5.9074D-01,4.5411D-01,3.1307D-01, - &1.6547D-01,0.0000D+00,4.7403D+00,4.6834D+00,4.6262D+00,4.5696D+00, - &4.5140D+00,4.4557D+00,4.3978D+00,4.3393D+00,4.2817D+00,4.2191D+00, - &4.1578D+00,4.0941D+00,4.0310D+00,3.9917D+00,3.9492D+00,3.8995D+00, - &3.8481D+00,3.7958D+00,3.7411D+00,3.6937D+00,3.6405D+00,3.5806D+00, - &3.5171D+00,3.4520D+00,3.3840D+00,3.3254D+00,3.2596D+00,3.1812D+00, - &3.0985D+00,3.0137D+00,2.9301D+00,2.8556D+00,2.7782D+00,2.6879D+00, - &2.5974D+00,2.5119D+00,2.4281D+00,2.3629D+00,2.2982D+00,2.2324D+00, - &2.1730D+00,2.1332D+00,2.0922D+00,2.0570D+00,2.0152D+00,1.9739D+00, - &1.9323D+00,1.8902D+00,1.8474D+00,1.8039D+00,1.7589D+00,1.7129D+00, - &1.6654D+00,1.6163D+00,1.5652D+00,1.4896D+00,1.3789D+00,1.2649D+00, - &1.1487D+00,1.0300D+00,9.0896D-01,7.8619D-01,6.6149D-01,5.3498D-01, - &4.0654D-01,2.7586D-01,1.4208D-01,0.0000D+00,4.8699D+00,4.8107D+00, - &4.7518D+00,4.6928D+00,4.6350D+00,4.5750D+00,4.5152D+00,4.4524D+00, - &4.3956D+00,4.3299D+00,4.2674D+00,4.2014D+00,4.1350D+00,4.0939D+00, - &4.0503D+00,3.9982D+00,3.9448D+00,3.8905D+00,3.8328D+00,3.7846D+00, - &3.7300D+00,3.6664D+00,3.5991D+00,3.5326D+00,3.4620D+00,3.3998D+00, - &3.3311D+00,3.2494D+00,3.1632D+00,3.0752D+00,2.9881D+00,2.9120D+00/ - DATA (XUVF_L(K),K= 1597, 1710) / - &2.8299D+00,2.7339D+00,2.6398D+00,2.5493D+00,2.4611D+00,2.3911D+00, - &2.3215D+00,2.2482D+00,2.1812D+00,2.1342D+00,2.0854D+00,2.0427D+00, - &1.9932D+00,1.9453D+00,1.8978D+00,1.8504D+00,1.8030D+00,1.7545D+00, - &1.7059D+00,1.6565D+00,1.6056D+00,1.5535D+00,1.4989D+00,1.4245D+00, - &1.3108D+00,1.1959D+00,1.0798D+00,9.6219D-01,8.4358D-01,7.2422D-01, - &6.0451D-01,4.8425D-01,3.6380D-01,2.4286D-01,1.2189D-01,0.0000D+00, - &4.9964D+00,4.9356D+00,4.8755D+00,4.8147D+00,4.7550D+00,4.6935D+00, - &4.6315D+00,4.5697D+00,4.5062D+00,4.4406D+00,4.3752D+00,4.3061D+00, - &4.2380D+00,4.1962D+00,4.1500D+00,4.0963D+00,4.0405D+00,3.9832D+00, - &3.9245D+00,3.8728D+00,3.8172D+00,3.7504D+00,3.6811D+00,3.6108D+00, - &3.5381D+00,3.4734D+00,3.4018D+00,3.3164D+00,3.2269D+00,3.1352D+00, - &3.0446D+00,2.9657D+00,2.8794D+00,2.7800D+00,2.6821D+00,2.5867D+00, - &2.4930D+00,2.4184D+00,2.3433D+00,2.2634D+00,2.1877D+00,2.1342D+00, - &2.0772D+00,2.0279D+00,1.9713D+00,1.9172D+00,1.8642D+00,1.8120D+00, - &1.7600D+00,1.7076D+00,1.6553D+00,1.6027D+00,1.5491D+00,1.4938D+00, - &1.4374D+00,1.3637D+00,1.2481D+00,1.1325D+00,1.0166D+00,9.0047D-01, - &7.8428D-01,6.6889D-01,5.5381D-01,4.3953D-01,3.2652D-01,2.1461D-01, - &1.0498D-01,0.0000D+00,5.1134D+00,5.0511D+00,4.9886D+00,4.9273D+00, - &4.8660D+00,4.8016D+00,4.7382D+00,4.6744D+00,4.6106D+00,4.5420D+00/ - DATA (XUVF_L(K),K= 1711, 1824) / - &4.4742D+00,4.4028D+00,4.3320D+00,4.2892D+00,4.2413D+00,4.1858D+00, - &4.1281D+00,4.0682D+00,4.0067D+00,3.9556D+00,3.8955D+00,3.8271D+00, - &3.7556D+00,3.6829D+00,3.6071D+00,3.5401D+00,3.4662D+00,3.3777D+00, - &3.2849D+00,3.1898D+00,3.0960D+00,3.0140D+00,2.9244D+00,2.8224D+00, - &2.7183D+00,2.6191D+00,2.5219D+00,2.4431D+00,2.3628D+00,2.2767D+00, - &2.1931D+00,2.1332D+00,2.0695D+00,2.0145D+00,1.9514D+00,1.8920D+00, - &1.8340D+00,1.7775D+00,1.7215D+00,1.6664D+00,1.6108D+00,1.5553D+00, - &1.4995D+00,1.4421D+00,1.3839D+00,1.3103D+00,1.1944D+00,1.0782D+00, - &9.6271D-01,8.4822D-01,7.3481D-01,6.2240D-01,5.1184D-01,4.0291D-01, - &2.9618D-01,1.9206D-01,9.1846D-02,0.0000D+00,5.2367D+00,5.1713D+00, - &5.1071D+00,5.0425D+00,4.9800D+00,4.9141D+00,4.8489D+00,4.7833D+00, - &4.7181D+00,4.6457D+00,4.5768D+00,4.5034D+00,4.4300D+00,4.3847D+00, - &4.3353D+00,4.2782D+00,4.2182D+00,4.1570D+00,4.0921D+00,4.0385D+00, - &3.9782D+00,3.9074D+00,3.8331D+00,3.7575D+00,3.6781D+00,3.6086D+00, - &3.5313D+00,3.4401D+00,3.3439D+00,3.2455D+00,3.1483D+00,3.0623D+00, - &2.9694D+00,2.8629D+00,2.7561D+00,2.6527D+00,2.5508D+00,2.4669D+00, - &2.3816D+00,2.2887D+00,2.1979D+00,2.1317D+00,2.0613D+00,2.0002D+00, - &1.9307D+00,1.8659D+00,1.8033D+00,1.7426D+00,1.6834D+00,1.6247D+00, - &1.5668D+00,1.5085D+00,1.4504D+00,1.3916D+00,1.3311D+00,1.2591D+00/ - DATA (XUVF_L(K),K= 1825, 1836) / - &1.1415D+00,1.0256D+00,9.1107D-01,7.9840D-01,6.8736D-01,5.7902D-01, - &4.7260D-01,3.6895D-01,2.6838D-01,1.7161D-01,8.0264D-02,0.0000D+00/ - DATA (XDVF_L(K),K= 1, 114) / - &1.4230D+00,1.4064D+00,1.3903D+00,1.3749D+00,1.3590D+00,1.3424D+00, - &1.3271D+00,1.3114D+00,1.2962D+00,1.2803D+00,1.2647D+00,1.2492D+00, - &1.2340D+00,1.2246D+00,1.2155D+00,1.2044D+00,1.1927D+00,1.1814D+00, - &1.1695D+00,1.1589D+00,1.1479D+00,1.1347D+00,1.1214D+00,1.1080D+00, - &1.0944D+00,1.0824D+00,1.0700D+00,1.0544D+00,1.0371D+00,1.0188D+00, - &9.9884D-01,9.8287D-01,9.6563D-01,9.4645D-01,9.2847D-01,9.1313D-01, - &9.0246D-01,8.9955D-01,9.0461D-01,9.2737D-01,9.7648D-01,1.0343D+00, - &1.1168D+00,1.2030D+00,1.3129D+00,1.4240D+00,1.5357D+00,1.6492D+00, - &1.7643D+00,1.8818D+00,2.0016D+00,2.1253D+00,2.2535D+00,2.3853D+00, - &2.5225D+00,2.5620D+00,2.7906D+00,3.0230D+00,3.2574D+00,3.4983D+00, - &3.7459D+00,4.0062D+00,4.2803D+00,4.5790D+00,4.9150D+00,5.3263D+00, - &5.9228D+00,0.0000D+00,1.4698D+00,1.4526D+00,1.4360D+00,1.4199D+00, - &1.4030D+00,1.3864D+00,1.3702D+00,1.3542D+00,1.3386D+00,1.3221D+00, - &1.3059D+00,1.2896D+00,1.2740D+00,1.2644D+00,1.2544D+00,1.2425D+00, - &1.2309D+00,1.2185D+00,1.2061D+00,1.1953D+00,1.1836D+00,1.1697D+00, - &1.1558D+00,1.1417D+00,1.1275D+00,1.1154D+00,1.1011D+00,1.0844D+00, - &1.0663D+00,1.0471D+00,1.0261D+00,1.0092D+00,9.9133D-01,9.7103D-01, - &9.5184D-01,9.3560D-01,9.2380D-01,9.1922D-01,9.2378D-01,9.4563D-01, - &9.9235D-01,1.0474D+00,1.1262D+00,1.2078D+00,1.3110D+00,1.4146D+00/ - DATA (XDVF_L(K),K= 115, 228) / - &1.5192D+00,1.6241D+00,1.7298D+00,1.8375D+00,1.9471D+00,2.0592D+00, - &2.1741D+00,2.2925D+00,2.4144D+00,2.4425D+00,2.6407D+00,2.8375D+00, - &3.0361D+00,3.2345D+00,3.4343D+00,3.6388D+00,3.8488D+00,4.0682D+00, - &4.3043D+00,4.5737D+00,4.9280D+00,0.0000D+00,1.5226D+00,1.5047D+00, - &1.4874D+00,1.4702D+00,1.4530D+00,1.4363D+00,1.4193D+00,1.4023D+00, - &1.3860D+00,1.3690D+00,1.3520D+00,1.3351D+00,1.3190D+00,1.3083D+00, - &1.2983D+00,1.2858D+00,1.2733D+00,1.2606D+00,1.2476D+00,1.2362D+00, - &1.2237D+00,1.2092D+00,1.1943D+00,1.1795D+00,1.1645D+00,1.1509D+00, - &1.1365D+00,1.1185D+00,1.0994D+00,1.0784D+00,1.0566D+00,1.0388D+00, - &1.0195D+00,9.9801D-01,9.7765D-01,9.6019D-01,9.4712D-01,9.4158D-01, - &9.4524D-01,9.6454D-01,1.0088D+00,1.0604D+00,1.1346D+00,1.2112D+00, - &1.3076D+00,1.4038D+00,1.4995D+00,1.5957D+00,1.6918D+00,1.7888D+00, - &1.8877D+00,1.9877D+00,2.0896D+00,2.1940D+00,2.2999D+00,2.3168D+00, - &2.4844D+00,2.6497D+00,2.8098D+00,2.9678D+00,3.1219D+00,3.2743D+00, - &3.4260D+00,3.5742D+00,3.7237D+00,3.8717D+00,4.0300D+00,0.0000D+00, - &1.5849D+00,1.5662D+00,1.5482D+00,1.5298D+00,1.5130D+00,1.4944D+00, - &1.4769D+00,1.4593D+00,1.4423D+00,1.4243D+00,1.4066D+00,1.3894D+00, - &1.3720D+00,1.3607D+00,1.3499D+00,1.3366D+00,1.3237D+00,1.3101D+00, - &1.2963D+00,1.2840D+00,1.2709D+00,1.2553D+00,1.2396D+00,1.2232D+00/ - DATA (XDVF_L(K),K= 229, 342) / - &1.2075D+00,1.1932D+00,1.1776D+00,1.1584D+00,1.1377D+00,1.1152D+00, - &1.0922D+00,1.0729D+00,1.0524D+00,1.0294D+00,1.0074D+00,9.8843D-01, - &9.7377D-01,9.6751D-01,9.6901D-01,9.8606D-01,1.0264D+00,1.0745D+00, - &1.1435D+00,1.2136D+00,1.3018D+00,1.3894D+00,1.4758D+00,1.5619D+00, - &1.6474D+00,1.7332D+00,1.8194D+00,1.9063D+00,1.9941D+00,2.0832D+00, - &2.1725D+00,2.1789D+00,2.3166D+00,2.4460D+00,2.5708D+00,2.6884D+00, - &2.7987D+00,2.9025D+00,2.9974D+00,3.0823D+00,3.1538D+00,3.2013D+00, - &3.2043D+00,0.0000D+00,1.6586D+00,1.6391D+00,1.6202D+00,1.6014D+00, - &1.5830D+00,1.5638D+00,1.5457D+00,1.5267D+00,1.5087D+00,1.4899D+00, - &1.4711D+00,1.4517D+00,1.4340D+00,1.4224D+00,1.4107D+00,1.3972D+00, - &1.3827D+00,1.3684D+00,1.3535D+00,1.3404D+00,1.3263D+00,1.3096D+00, - &1.2927D+00,1.2758D+00,1.2575D+00,1.2422D+00,1.2250D+00,1.2046D+00, - &1.1821D+00,1.1579D+00,1.1331D+00,1.1127D+00,1.0905D+00,1.0655D+00, - &1.0415D+00,1.0207D+00,1.0042D+00,9.9612D-01,9.9507D-01,1.0089D+00, - &1.0451D+00,1.0887D+00,1.1514D+00,1.2146D+00,1.2936D+00,1.3711D+00, - &1.4469D+00,1.5220D+00,1.5960D+00,1.6694D+00,1.7428D+00,1.8159D+00, - &1.8894D+00,1.9620D+00,2.0344D+00,2.0313D+00,2.1357D+00,2.2333D+00, - &2.3215D+00,2.4009D+00,2.4706D+00,2.5292D+00,2.5750D+00,2.6036D+00, - &2.6096D+00,2.5783D+00,2.4673D+00,0.0000D+00,1.7269D+00,1.7065D+00/ - DATA (XDVF_L(K),K= 343, 456) / - &1.6866D+00,1.6676D+00,1.6480D+00,1.6279D+00,1.6089D+00,1.5891D+00, - &1.5701D+00,1.5502D+00,1.5307D+00,1.5113D+00,1.4910D+00,1.4799D+00, - &1.4673D+00,1.4526D+00,1.4373D+00,1.4221D+00,1.4060D+00,1.3922D+00, - &1.3771D+00,1.3596D+00,1.3414D+00,1.3234D+00,1.3045D+00,1.2879D+00, - &1.2689D+00,1.2468D+00,1.2227D+00,1.1966D+00,1.1706D+00,1.1487D+00, - &1.1248D+00,1.0980D+00,1.0724D+00,1.0495D+00,1.0310D+00,1.0212D+00, - &1.0181D+00,1.0291D+00,1.0609D+00,1.1002D+00,1.1563D+00,1.2136D+00, - &1.2840D+00,1.3528D+00,1.4201D+00,1.4854D+00,1.5492D+00,1.6125D+00, - &1.6751D+00,1.7368D+00,1.7981D+00,1.8579D+00,1.9157D+00,1.9057D+00, - &1.9875D+00,2.0577D+00,2.1190D+00,2.1700D+00,2.2094D+00,2.2370D+00, - &2.2484D+00,2.2403D+00,2.2047D+00,2.1261D+00,1.9567D+00,0.0000D+00, - &1.8047D+00,1.7833D+00,1.7626D+00,1.7418D+00,1.7220D+00,1.7009D+00, - &1.6810D+00,1.6603D+00,1.6403D+00,1.6193D+00,1.5986D+00,1.5775D+00, - &1.5570D+00,1.5441D+00,1.5309D+00,1.5156D+00,1.4991D+00,1.4828D+00, - &1.4658D+00,1.4510D+00,1.4350D+00,1.4160D+00,1.3966D+00,1.3772D+00, - &1.3565D+00,1.3386D+00,1.3184D+00,1.2942D+00,1.2680D+00,1.2404D+00, - &1.2125D+00,1.1887D+00,1.1631D+00,1.1342D+00,1.1064D+00,1.0813D+00, - &1.0608D+00,1.0480D+00,1.0426D+00,1.0500D+00,1.0774D+00,1.1111D+00, - &1.1608D+00,1.2107D+00,1.2719D+00,1.3315D+00,1.3886D+00,1.4445D+00/ - DATA (XDVF_L(K),K= 457, 570) / - &1.4984D+00,1.5505D+00,1.6020D+00,1.6524D+00,1.7009D+00,1.7480D+00, - &1.7926D+00,1.7763D+00,1.8327D+00,1.8794D+00,1.9154D+00,1.9405D+00, - &1.9531D+00,1.9537D+00,1.9362D+00,1.8986D+00,1.8325D+00,1.7203D+00, - &1.5163D+00,0.0000D+00,1.8755D+00,1.8533D+00,1.8314D+00,1.8106D+00, - &1.7890D+00,1.7672D+00,1.7464D+00,1.7248D+00,1.7038D+00,1.6817D+00, - &1.6601D+00,1.6385D+00,1.6160D+00,1.6033D+00,1.5889D+00,1.5721D+00, - &1.5552D+00,1.5380D+00,1.5199D+00,1.5042D+00,1.4871D+00,1.4670D+00, - &1.4463D+00,1.4249D+00,1.4036D+00,1.3843D+00,1.3630D+00,1.3364D+00, - &1.3086D+00,1.2791D+00,1.2500D+00,1.2245D+00,1.1971D+00,1.1662D+00, - &1.1361D+00,1.1090D+00,1.0858D+00,1.0721D+00,1.0641D+00,1.0676D+00, - &1.0898D+00,1.1195D+00,1.1627D+00,1.2069D+00,1.2603D+00,1.3118D+00, - &1.3607D+00,1.4079D+00,1.4534D+00,1.4968D+00,1.5392D+00,1.5794D+00, - &1.6181D+00,1.6552D+00,1.6888D+00,1.6690D+00,1.7073D+00,1.7353D+00, - &1.7530D+00,1.7595D+00,1.7531D+00,1.7338D+00,1.6988D+00,1.6428D+00, - &1.5583D+00,1.4293D+00,1.2136D+00,0.0000D+00,1.9470D+00,1.9238D+00, - &1.9021D+00,1.8782D+00,1.8570D+00,1.8343D+00,1.8123D+00,1.7898D+00, - &1.7680D+00,1.7449D+00,1.7222D+00,1.6994D+00,1.6760D+00,1.6624D+00, - &1.6469D+00,1.6299D+00,1.6118D+00,1.5933D+00,1.5742D+00,1.5574D+00, - &1.5392D+00,1.5179D+00,1.4955D+00,1.4738D+00,1.4506D+00,1.4300D+00/ - DATA (XDVF_L(K),K= 571, 684) / - &1.4069D+00,1.3792D+00,1.3492D+00,1.3178D+00,1.2868D+00,1.2597D+00, - &1.2307D+00,1.1976D+00,1.1654D+00,1.1363D+00,1.1108D+00,1.0945D+00, - &1.0840D+00,1.0845D+00,1.1017D+00,1.1268D+00,1.1637D+00,1.2016D+00, - &1.2473D+00,1.2910D+00,1.3324D+00,1.3719D+00,1.4090D+00,1.4450D+00, - &1.4784D+00,1.5109D+00,1.5404D+00,1.5681D+00,1.5925D+00,1.5689D+00, - &1.5916D+00,1.6043D+00,1.6067D+00,1.5981D+00,1.5779D+00,1.5449D+00, - &1.4949D+00,1.4262D+00,1.3303D+00,1.1932D+00,9.7657D-01,0.0000D+00, - &2.0122D+00,1.9881D+00,1.9640D+00,1.9418D+00,1.9190D+00,1.8954D+00, - &1.8721D+00,1.8492D+00,1.8262D+00,1.8024D+00,1.7784D+00,1.7550D+00, - &1.7300D+00,1.7157D+00,1.6999D+00,1.6818D+00,1.6627D+00,1.6435D+00, - &1.6233D+00,1.6058D+00,1.5866D+00,1.5643D+00,1.5417D+00,1.5178D+00, - &1.4926D+00,1.4705D+00,1.4465D+00,1.4174D+00,1.3856D+00,1.3527D+00, - &1.3198D+00,1.2914D+00,1.2605D+00,1.2257D+00,1.1915D+00,1.1601D+00, - &1.1326D+00,1.1142D+00,1.1016D+00,1.0982D+00,1.1114D+00,1.1321D+00, - &1.1637D+00,1.1958D+00,1.2352D+00,1.2722D+00,1.3071D+00,1.3397D+00, - &1.3704D+00,1.3995D+00,1.4267D+00,1.4516D+00,1.4736D+00,1.4942D+00, - &1.5100D+00,1.4848D+00,1.4955D+00,1.4964D+00,1.4873D+00,1.4675D+00, - &1.4366D+00,1.3933D+00,1.3349D+00,1.2585D+00,1.1565D+00,1.0171D+00, - &8.0601D-01,0.0000D+00,2.0789D+00,2.0539D+00,2.0294D+00,2.0053D+00/ - DATA (XDVF_L(K),K= 685, 798) / - &1.9820D+00,1.9581D+00,1.9336D+00,1.9096D+00,1.8860D+00,1.8609D+00, - &1.8367D+00,1.8106D+00,1.7860D+00,1.7706D+00,1.7543D+00,1.7350D+00, - &1.7150D+00,1.6945D+00,1.6735D+00,1.6550D+00,1.6349D+00,1.6112D+00, - &1.5864D+00,1.5617D+00,1.5356D+00,1.5128D+00,1.4868D+00,1.4555D+00, - &1.4224D+00,1.3876D+00,1.3532D+00,1.3231D+00,1.2904D+00,1.2536D+00, - &1.2173D+00,1.1838D+00,1.1545D+00,1.1338D+00,1.1185D+00,1.1113D+00, - &1.1199D+00,1.1362D+00,1.1627D+00,1.1895D+00,1.2222D+00,1.2529D+00, - &1.2813D+00,1.3080D+00,1.3324D+00,1.3546D+00,1.3756D+00,1.3938D+00, - &1.4103D+00,1.4232D+00,1.4319D+00,1.4055D+00,1.4052D+00,1.3959D+00, - &1.3768D+00,1.3480D+00,1.3084D+00,1.2576D+00,1.1928D+00,1.1110D+00, - &1.0066D+00,8.6804D-01,6.6615D-01,0.0000D+00,2.1434D+00,2.1178D+00, - &2.0930D+00,2.0676D+00,2.0440D+00,2.0184D+00,1.9935D+00,1.9686D+00, - &1.9439D+00,1.9179D+00,1.8915D+00,1.8663D+00,1.8400D+00,1.8239D+00, - &1.8067D+00,1.7863D+00,1.7654D+00,1.7440D+00,1.7219D+00,1.7025D+00, - &1.6814D+00,1.6565D+00,1.6311D+00,1.6045D+00,1.5766D+00,1.5526D+00, - &1.5250D+00,1.4925D+00,1.4574D+00,1.4213D+00,1.3849D+00,1.3532D+00, - &1.3191D+00,1.2800D+00,1.2418D+00,1.2062D+00,1.1743D+00,1.1517D+00, - &1.1338D+00,1.1237D+00,1.1272D+00,1.1399D+00,1.1608D+00,1.1828D+00, - &1.2092D+00,1.2341D+00,1.2570D+00,1.2774D+00,1.2962D+00,1.3135D+00/ - DATA (XDVF_L(K),K= 799, 912) / - &1.3280D+00,1.3406D+00,1.3511D+00,1.3588D+00,1.3613D+00,1.3335D+00, - &1.3246D+00,1.3067D+00,1.2801D+00,1.2441D+00,1.1985D+00,1.1418D+00, - &1.0724D+00,9.8806D-01,8.8293D-01,7.4746D-01,5.5665D-01,0.0000D+00, - &2.2035D+00,2.1769D+00,2.1514D+00,2.1259D+00,2.1000D+00,2.0743D+00, - &2.0488D+00,2.0226D+00,1.9973D+00,1.9702D+00,1.9428D+00,1.9166D+00, - &1.8890D+00,1.8729D+00,1.8548D+00,1.8337D+00,1.8116D+00,1.7895D+00, - &1.7662D+00,1.7461D+00,1.7239D+00,1.6980D+00,1.6714D+00,1.6436D+00, - &1.6146D+00,1.5889D+00,1.5604D+00,1.5266D+00,1.4895D+00,1.4515D+00, - &1.4138D+00,1.3806D+00,1.3448D+00,1.3040D+00,1.2638D+00,1.2261D+00, - &1.1920D+00,1.1669D+00,1.1469D+00,1.1341D+00,1.1335D+00,1.1420D+00, - &1.1583D+00,1.1760D+00,1.1971D+00,1.2168D+00,1.2343D+00,1.2501D+00, - &1.2640D+00,1.2762D+00,1.2866D+00,1.2942D+00,1.2996D+00,1.3020D+00, - &1.3003D+00,1.2725D+00,1.2557D+00,1.2312D+00,1.1982D+00,1.1569D+00, - &1.1068D+00,1.0465D+00,9.7460D-01,8.8884D-01,7.8459D-01,6.5333D-01, - &4.7359D-01,0.0000D+00,2.2800D+00,2.2524D+00,2.2256D+00,2.1987D+00, - &2.1730D+00,2.1459D+00,2.1192D+00,2.0922D+00,2.0656D+00,2.0374D+00, - &2.0100D+00,1.9802D+00,1.9520D+00,1.9346D+00,1.9156D+00,1.8937D+00, - &1.8706D+00,1.8475D+00,1.8228D+00,1.8017D+00,1.7783D+00,1.7509D+00, - &1.7221D+00,1.6937D+00,1.6627D+00,1.6354D+00,1.6050D+00,1.5688D+00/ - DATA (XDVF_L(K),K= 913, 1026) / - &1.5301D+00,1.4898D+00,1.4503D+00,1.4150D+00,1.3772D+00,1.3339D+00, - &1.2911D+00,1.2510D+00,1.2138D+00,1.1866D+00,1.1637D+00,1.1458D+00, - &1.1403D+00,1.1441D+00,1.1548D+00,1.1669D+00,1.1817D+00,1.1950D+00, - &1.2065D+00,1.2163D+00,1.2249D+00,1.2313D+00,1.2355D+00,1.2379D+00, - &1.2379D+00,1.2348D+00,1.2275D+00,1.1987D+00,1.1744D+00,1.1427D+00, - &1.1035D+00,1.0570D+00,1.0018D+00,9.3862D-01,8.6494D-01,7.7913D-01, - &6.7747D-01,5.5266D-01,3.8741D-01,0.0000D+00,2.3524D+00,2.3243D+00, - &2.2963D+00,2.2689D+00,2.2420D+00,2.2137D+00,2.1858D+00,2.1579D+00, - &2.1301D+00,2.1011D+00,2.0718D+00,2.0424D+00,2.0120D+00,1.9937D+00, - &1.9743D+00,1.9509D+00,1.9267D+00,1.9020D+00,1.8763D+00,1.8541D+00, - &1.8295D+00,1.8006D+00,1.7713D+00,1.7402D+00,1.7077D+00,1.6794D+00, - &1.6475D+00,1.6087D+00,1.5679D+00,1.5259D+00,1.4840D+00,1.4470D+00, - &1.4072D+00,1.3615D+00,1.3163D+00,1.2738D+00,1.2336D+00,1.2045D+00, - &1.1783D+00,1.1563D+00,1.1459D+00,1.1457D+00,1.1504D+00,1.1577D+00, - &1.1662D+00,1.1742D+00,1.1807D+00,1.1857D+00,1.1886D+00,1.1902D+00, - &1.1899D+00,1.1878D+00,1.1830D+00,1.1751D+00,1.1633D+00,1.1345D+00, - &1.1039D+00,1.0667D+00,1.0230D+00,9.7228D-01,9.1417D-01,8.4905D-01, - &7.7478D-01,6.9004D-01,5.9155D-01,4.7371D-01,3.2191D-01,0.0000D+00, - &2.4233D+00,2.3947D+00,2.3653D+00,2.3365D+00,2.3090D+00,2.2800D+00/ - DATA (XDVF_L(K),K= 1027, 1140) / - &2.2512D+00,2.2220D+00,2.1934D+00,2.1628D+00,2.1319D+00,2.1007D+00, - &2.0700D+00,2.0512D+00,2.0301D+00,2.0057D+00,1.9809D+00,1.9549D+00, - &1.9281D+00,1.9049D+00,1.8791D+00,1.8497D+00,1.8175D+00,1.7854D+00, - &1.7507D+00,1.7209D+00,1.6878D+00,1.6474D+00,1.6047D+00,1.5603D+00, - &1.5164D+00,1.4777D+00,1.4358D+00,1.3879D+00,1.3403D+00,1.2952D+00, - &1.2523D+00,1.2206D+00,1.1913D+00,1.1661D+00,1.1505D+00,1.1462D+00, - &1.1460D+00,1.1481D+00,1.1518D+00,1.1545D+00,1.1559D+00,1.1562D+00, - &1.1548D+00,1.1523D+00,1.1478D+00,1.1414D+00,1.1331D+00,1.1212D+00, - &1.1055D+00,1.0763D+00,1.0405D+00,9.9877D-01,9.5130D-01,8.9815D-01, - &8.3813D-01,7.7188D-01,6.9792D-01,6.1492D-01,5.2020D-01,4.0920D-01, - &2.7020D-01,0.0000D+00,2.4906D+00,2.4607D+00,2.4307D+00,2.4014D+00, - &2.3730D+00,2.3427D+00,2.3127D+00,2.2828D+00,2.2528D+00,2.2213D+00, - &2.1903D+00,2.1577D+00,2.1250D+00,2.1053D+00,2.0839D+00,2.0583D+00, - &2.0318D+00,2.0051D+00,1.9771D+00,1.9527D+00,1.9259D+00,1.8935D+00, - &1.8607D+00,1.8269D+00,1.7917D+00,1.7606D+00,1.7253D+00,1.6833D+00, - &1.6387D+00,1.5925D+00,1.5465D+00,1.5061D+00,1.4624D+00,1.4121D+00, - &1.3623D+00,1.3152D+00,1.2700D+00,1.2349D+00,1.2036D+00,1.1745D+00, - &1.1544D+00,1.1457D+00,1.1410D+00,1.1389D+00,1.1378D+00,1.1357D+00, - &1.1332D+00,1.1290D+00,1.1244D+00,1.1176D+00,1.1099D+00,1.0996D+00/ - DATA (XDVF_L(K),K= 1141, 1254) / - &1.0875D+00,1.0729D+00,1.0538D+00,1.0249D+00,9.8511D-01,9.3994D-01, - &8.8948D-01,8.3410D-01,7.7332D-01,7.0681D-01,6.3377D-01,5.5280D-01, - &4.6214D-01,3.5755D-01,2.2965D-01,0.0000D+00,2.5589D+00,2.5291D+00, - &2.4979D+00,2.4676D+00,2.4370D+00,2.4060D+00,2.3753D+00,2.3443D+00, - &2.3135D+00,2.2809D+00,2.2486D+00,2.2146D+00,2.1810D+00,2.1602D+00, - &2.1376D+00,2.1114D+00,2.0841D+00,2.0557D+00,2.0265D+00,2.0011D+00, - &1.9730D+00,1.9392D+00,1.9055D+00,1.8697D+00,1.8327D+00,1.8003D+00, - &1.7635D+00,1.7197D+00,1.6727D+00,1.6246D+00,1.5770D+00,1.5346D+00, - &1.4890D+00,1.4363D+00,1.3841D+00,1.3341D+00,1.2867D+00,1.2492D+00, - &1.2151D+00,1.1824D+00,1.1578D+00,1.1451D+00,1.1356D+00,1.1298D+00, - &1.1233D+00,1.1169D+00,1.1105D+00,1.1027D+00,1.0940D+00,1.0840D+00, - &1.0726D+00,1.0592D+00,1.0444D+00,1.0265D+00,1.0045D+00,9.7613D-01, - &9.3249D-01,8.8451D-01,8.3193D-01,7.7510D-01,7.1373D-01,6.4749D-01, - &5.7554D-01,4.9725D-01,4.1072D-01,3.1254D-01,1.9551D-01,0.0000D+00, - &2.6244D+00,2.5927D+00,2.5615D+00,2.5299D+00,2.4990D+00,2.4671D+00, - &2.4356D+00,2.4034D+00,2.3717D+00,2.3377D+00,2.3034D+00,2.2689D+00, - &2.2340D+00,2.2126D+00,2.1892D+00,2.1616D+00,2.1331D+00,2.1040D+00, - &2.0736D+00,2.0471D+00,2.0180D+00,1.9830D+00,1.9472D+00,1.9112D+00, - &1.8717D+00,1.8375D+00,1.7996D+00,1.7538D+00,1.7053D+00,1.6548D+00/ - DATA (XDVF_L(K),K= 1255, 1368) / - &1.6053D+00,1.5612D+00,1.5138D+00,1.4590D+00,1.4045D+00,1.3516D+00, - &1.3023D+00,1.2626D+00,1.2251D+00,1.1889D+00,1.1601D+00,1.1441D+00, - &1.1302D+00,1.1201D+00,1.1098D+00,1.0996D+00,1.0888D+00,1.0782D+00, - &1.0659D+00,1.0531D+00,1.0388D+00,1.0228D+00,1.0047D+00,9.8480D-01, - &9.6040D-01,9.3234D-01,8.8589D-01,8.3563D-01,7.8162D-01,7.2366D-01, - &6.6215D-01,5.9658D-01,5.2617D-01,4.5043D-01,3.6787D-01,2.7575D-01, - &1.6826D-01,0.0000D+00,2.6886D+00,2.6564D+00,2.6234D+00,2.5908D+00, - &2.5600D+00,2.5268D+00,2.4943D+00,2.4612D+00,2.4283D+00,2.3924D+00, - &2.3582D+00,2.3219D+00,2.2860D+00,2.2642D+00,2.2394D+00,2.2113D+00, - &2.1817D+00,2.1512D+00,2.1198D+00,2.0920D+00,2.0618D+00,2.0268D+00, - &1.9890D+00,1.9503D+00,1.9098D+00,1.8739D+00,1.8343D+00,1.7867D+00, - &1.7365D+00,1.6843D+00,1.6329D+00,1.5870D+00,1.5377D+00,1.4807D+00, - &1.4239D+00,1.3692D+00,1.3169D+00,1.2751D+00,1.2350D+00,1.1954D+00, - &1.1624D+00,1.1425D+00,1.1247D+00,1.1110D+00,1.0963D+00,1.0827D+00, - &1.0687D+00,1.0547D+00,1.0396D+00,1.0240D+00,1.0070D+00,9.8853D-01, - &9.6834D-01,9.4569D-01,9.1962D-01,8.9220D-01,8.4321D-01,7.9105D-01, - &7.3592D-01,6.7777D-01,6.1620D-01,5.5143D-01,4.8272D-01,4.0962D-01, - &3.3102D-01,2.4455D-01,1.4574D-01,0.0000D+00,2.7496D+00,2.7153D+00, - &2.6835D+00,2.6504D+00,2.6180D+00,2.5834D+00,2.5502D+00,2.5161D+00/ - DATA (XDVF_L(K),K= 1369, 1482) / - &2.4824D+00,2.4466D+00,2.4095D+00,2.3736D+00,2.3360D+00,2.3124D+00, - &2.2875D+00,2.2580D+00,2.2274D+00,2.1960D+00,2.1631D+00,2.1347D+00, - &2.1032D+00,2.0670D+00,2.0277D+00,1.9882D+00,1.9458D+00,1.9086D+00, - &1.8675D+00,1.8179D+00,1.7658D+00,1.7122D+00,1.6586D+00,1.6112D+00, - &1.5600D+00,1.5010D+00,1.4420D+00,1.3855D+00,1.3294D+00,1.2858D+00, - &1.2435D+00,1.2006D+00,1.1641D+00,1.1410D+00,1.1193D+00,1.1023D+00, - &1.0837D+00,1.0664D+00,1.0496D+00,1.0329D+00,1.0157D+00,9.9745D-01, - &9.7803D-01,9.5735D-01,9.3539D-01,9.1075D-01,8.8302D-01,8.5608D-01, - &8.0509D-01,7.5168D-01,6.9580D-01,6.3743D-01,5.7619D-01,5.1233D-01, - &4.4547D-01,3.7496D-01,2.9995D-01,2.1862D-01,1.2745D-01,0.0000D+00, - &2.8331D+00,2.7978D+00,2.7648D+00,2.7299D+00,2.6960D+00,2.6609D+00, - &2.6263D+00,2.5910D+00,2.5561D+00,2.5197D+00,2.4802D+00,2.4424D+00, - &2.4030D+00,2.3791D+00,2.3526D+00,2.3216D+00,2.2897D+00,2.2570D+00, - &2.2225D+00,2.1925D+00,2.1595D+00,2.1199D+00,2.0799D+00,2.0383D+00, - &1.9938D+00,1.9551D+00,1.9121D+00,1.8601D+00,1.8054D+00,1.7494D+00, - &1.6932D+00,1.6435D+00,1.5898D+00,1.5280D+00,1.4659D+00,1.4056D+00, - &1.3471D+00,1.3010D+00,1.2550D+00,1.2078D+00,1.1652D+00,1.1383D+00, - &1.1114D+00,1.0902D+00,1.0668D+00,1.0451D+00,1.0248D+00,1.0039D+00, - &9.8353D-01,9.6205D-01,9.4076D-01,9.1705D-01,8.9229D-01,8.6577D-01/ - DATA (XDVF_L(K),K= 1483, 1596) / - &8.3604D-01,8.0985D-01,7.5687D-01,7.0190D-01,6.4516D-01,5.8700D-01, - &5.2660D-01,4.6452D-01,3.9995D-01,3.3310D-01,2.6289D-01,1.8826D-01, - &1.0655D-01,0.0000D+00,2.9096D+00,2.8732D+00,2.8390D+00,2.8027D+00, - &2.7690D+00,2.7325D+00,2.6961D+00,2.6597D+00,2.6231D+00,2.5833D+00, - &2.5456D+00,2.5047D+00,2.4650D+00,2.4391D+00,2.4120D+00,2.3799D+00, - &2.3462D+00,2.3123D+00,2.2763D+00,2.2451D+00,2.2108D+00,2.1692D+00, - &2.1276D+00,2.0835D+00,2.0378D+00,1.9974D+00,1.9525D+00,1.8983D+00, - &1.8413D+00,1.7827D+00,1.7243D+00,1.6725D+00,1.6166D+00,1.5520D+00, - &1.4872D+00,1.4244D+00,1.3627D+00,1.3136D+00,1.2649D+00,1.2130D+00, - &1.1663D+00,1.1352D+00,1.1040D+00,1.0787D+00,1.0514D+00,1.0264D+00, - &1.0021D+00,9.7883D-01,9.5548D-01,9.3171D-01,9.0763D-01,8.8283D-01, - &8.5596D-01,8.2732D-01,7.9601D-01,7.7056D-01,7.1598D-01,6.6027D-01, - &6.0340D-01,5.4514D-01,4.8601D-01,4.2556D-01,3.6359D-01,2.9984D-01, - &2.3396D-01,1.6486D-01,9.0844D-02,0.0000D+00,2.9880D+00,2.9510D+00, - &2.9150D+00,2.8782D+00,2.8430D+00,2.8048D+00,2.7677D+00,2.7301D+00, - &2.6924D+00,2.6517D+00,2.6110D+00,2.5696D+00,2.5280D+00,2.5017D+00, - &2.4728D+00,2.4393D+00,2.4042D+00,2.3687D+00,2.3313D+00,2.2988D+00, - &2.2631D+00,2.2204D+00,2.1768D+00,2.1312D+00,2.0828D+00,2.0405D+00, - &1.9928D+00,1.9364D+00,1.8772D+00,1.8164D+00,1.7558D+00,1.7018D+00/ - DATA (XDVF_L(K),K= 1597, 1710) / - &1.6434D+00,1.5762D+00,1.5084D+00,1.4432D+00,1.3783D+00,1.3261D+00, - &1.2741D+00,1.2182D+00,1.1669D+00,1.1315D+00,1.0961D+00,1.0671D+00, - &1.0360D+00,1.0071D+00,9.7992D-01,9.5371D-01,9.2801D-01,9.0200D-01, - &8.7588D-01,8.4862D-01,8.2038D-01,7.9020D-01,7.5770D-01,7.3298D-01, - &6.7721D-01,6.2090D-01,5.6394D-01,5.0631D-01,4.4841D-01,3.8970D-01, - &3.3019D-01,2.6973D-01,2.0791D-01,1.4420D-01,7.7416D-02,0.0000D+00, - &3.0661D+00,3.0288D+00,2.9911D+00,2.9537D+00,2.9160D+00,2.8778D+00, - &2.8392D+00,2.8000D+00,2.7610D+00,2.7200D+00,2.6782D+00,2.6345D+00, - &2.5900D+00,2.5625D+00,2.5329D+00,2.4982D+00,2.4617D+00,2.4247D+00, - &2.3857D+00,2.3518D+00,2.3145D+00,2.2697D+00,2.2245D+00,2.1764D+00, - &2.1269D+00,2.0819D+00,2.0331D+00,1.9746D+00,1.9126D+00,1.8497D+00, - &1.7862D+00,1.7303D+00,1.6696D+00,1.5995D+00,1.5285D+00,1.4608D+00, - &1.3929D+00,1.3377D+00,1.2826D+00,1.2228D+00,1.1669D+00,1.1279D+00, - &1.0882D+00,1.0555D+00,1.0205D+00,9.8876D-01,9.5876D-01,9.2969D-01, - &9.0171D-01,8.7356D-01,8.4551D-01,8.1668D-01,7.8701D-01,7.5564D-01, - &7.2196D-01,6.9797D-01,6.4121D-01,5.8469D-01,5.2810D-01,4.7131D-01, - &4.1460D-01,3.5783D-01,3.0063D-01,2.4338D-01,1.8544D-01,1.2660D-01, - &6.6270D-02,0.0000D+00,3.1379D+00,3.0995D+00,3.0600D+00,3.0213D+00, - &2.9840D+00,2.9442D+00,2.9047D+00,2.8641D+00,2.8239D+00,2.7813D+00/ - DATA (XDVF_L(K),K= 1711, 1824) / - &2.7383D+00,2.6928D+00,2.6470D+00,2.6191D+00,2.5880D+00,2.5519D+00, - &2.5145D+00,2.4761D+00,2.4357D+00,2.4004D+00,2.3615D+00,2.3153D+00, - &2.2678D+00,2.2180D+00,2.1669D+00,2.1208D+00,2.0699D+00,2.0087D+00, - &1.9447D+00,1.8795D+00,1.8139D+00,1.7558D+00,1.6930D+00,1.6205D+00, - &1.5467D+00,1.4759D+00,1.4054D+00,1.3484D+00,1.2895D+00,1.2267D+00, - &1.1663D+00,1.1242D+00,1.0808D+00,1.0449D+00,1.0065D+00,9.7194D-01, - &9.3967D-01,9.0840D-01,8.7834D-01,8.4891D-01,8.1928D-01,7.8930D-01, - &7.5803D-01,7.2562D-01,6.9124D-01,6.6796D-01,6.1058D-01,5.5392D-01, - &4.9752D-01,4.4176D-01,3.8633D-01,3.3127D-01,2.7648D-01,2.2186D-01, - &1.6735D-01,1.1268D-01,5.7652D-02,0.0000D+00,3.2129D+00,3.1726D+00, - &3.1325D+00,3.0928D+00,3.0540D+00,3.0127D+00,2.9717D+00,2.9303D+00, - &2.8887D+00,2.8449D+00,2.8001D+00,2.7537D+00,2.7060D+00,2.6766D+00, - &2.6453D+00,2.6073D+00,2.5683D+00,2.5286D+00,2.4866D+00,2.4501D+00, - &2.4107D+00,2.3628D+00,2.3125D+00,2.2620D+00,2.2079D+00,2.1597D+00, - &2.1067D+00,2.0440D+00,1.9778D+00,1.9097D+00,1.8421D+00,1.7819D+00, - &1.7169D+00,1.6416D+00,1.5664D+00,1.4922D+00,1.4189D+00,1.3583D+00, - &1.2971D+00,1.2300D+00,1.1652D+00,1.1200D+00,1.0729D+00,1.0343D+00, - &9.9254D-01,9.5513D-01,9.2006D-01,8.8711D-01,8.5555D-01,8.2426D-01, - &7.9305D-01,7.6193D-01,7.2963D-01,6.9636D-01,6.6128D-01,6.3868D-01/ - DATA (XDVF_L(K),K= 1825, 1836) / - &5.8093D-01,5.2428D-01,4.6858D-01,4.1372D-01,3.5972D-01,3.0648D-01, - &2.5392D-01,2.0208D-01,1.5083D-01,1.0018D-01,5.0068D-02,0.0000D+00/ - DATA (XDEF_L(K),K= 1, 114) / - &4.3007D-01,4.2474D-01,4.1967D-01,4.1458D-01,4.0970D-01,4.0443D-01, - &3.9925D-01,3.9397D-01,3.8864D-01,3.8302D-01,3.7707D-01,3.7100D-01, - &3.6470D-01,3.6080D-01,3.5639D-01,3.5109D-01,3.4531D-01,3.3914D-01, - &3.3238D-01,3.2609D-01,3.1913D-01,3.1062D-01,3.0152D-01,2.9176D-01, - &2.8100D-01,2.7114D-01,2.5952D-01,2.4467D-01,2.2784D-01,2.0937D-01, - &1.9117D-01,1.7470D-01,1.5685D-01,1.3678D-01,1.1825D-01,1.0349D-01, - &9.4854D-02,9.5054D-02,1.0589D-01,1.3527D-01,1.8584D-01,2.3426D-01, - &2.9021D-01,3.3527D-01,3.7670D-01,4.0255D-01,4.1326D-01,4.0880D-01, - &3.8831D-01,3.5045D-01,2.9287D-01,2.1298D-01,1.0773D-01,0.0000D+00, - &0.0000D+00,2.0644D-01,1.5422D-01,1.0950D-01,7.3614D-02,4.6726D-02, - &2.7433D-02,1.4144D-02,6.5080D-03,2.4719D-03,0.0000D+00,0.0000D+00, - &0.0000D+00,0.0000D+00,4.4398D-01,4.3864D-01,4.3346D-01,4.2809D-01, - &4.2290D-01,4.1747D-01,4.1205D-01,4.0650D-01,4.0098D-01,3.9480D-01, - &3.8873D-01,3.8226D-01,3.7560D-01,3.7145D-01,3.6678D-01,3.6108D-01, - &3.5488D-01,3.4833D-01,3.4123D-01,3.3464D-01,3.2718D-01,3.1811D-01, - &3.0838D-01,2.9811D-01,2.8670D-01,2.7630D-01,2.6412D-01,2.4861D-01, - &2.3110D-01,2.1209D-01,1.9355D-01,1.7681D-01,1.5878D-01,1.3870D-01, - &1.2044D-01,1.0620D-01,9.8341D-02,9.9345D-02,1.1086D-01,1.4055D-01, - &1.9033D-01,2.3696D-01,2.8983D-01,3.3137D-01,3.6834D-01,3.8982D-01/ - DATA (XDEF_L(K),K= 115, 228) / - &3.9672D-01,3.8896D-01,3.6609D-01,3.2678D-01,2.6933D-01,1.9181D-01, - &9.1683D-02,0.0000D+00,0.0000D+00,1.8955D-01,1.4041D-01,9.8873D-02, - &6.5928D-02,4.1462D-02,2.3905D-02,1.2324D-02,5.6113D-03,2.1050D-03, - &0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,4.5980D-01,4.5420D-01, - &4.4884D-01,4.4319D-01,4.3780D-01,4.3208D-01,4.2642D-01,4.2053D-01, - &4.1457D-01,4.0824D-01,4.0181D-01,3.9484D-01,3.8780D-01,3.8328D-01, - &3.7831D-01,3.7223D-01,3.6559D-01,3.5853D-01,3.5072D-01,3.4400D-01, - &3.3590D-01,3.2633D-01,3.1598D-01,3.0508D-01,2.9301D-01,2.8197D-01, - &2.6915D-01,2.5289D-01,2.3470D-01,2.1511D-01,1.9623D-01,1.7918D-01, - &1.6098D-01,1.4092D-01,1.2294D-01,1.0928D-01,1.0224D-01,1.0401D-01, - &1.1623D-01,1.4620D-01,1.9488D-01,2.3948D-01,2.8894D-01,3.2681D-01, - &3.5905D-01,3.7613D-01,3.7908D-01,3.6817D-01,3.4299D-01,3.0266D-01, - &2.4596D-01,1.7115D-01,7.6792D-02,0.0000D+00,0.0000D+00,1.7267D-01, - &1.2670D-01,8.8446D-02,5.8458D-02,3.6380D-02,2.0551D-02,1.0608D-02, - &4.7732D-03,1.7670D-03,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00, - &4.7845D-01,4.7258D-01,4.6687D-01,4.6107D-01,4.5540D-01,4.4938D-01, - &4.4336D-01,4.3728D-01,4.3070D-01,4.2403D-01,4.1702D-01,4.0968D-01, - &4.0210D-01,3.9723D-01,3.9181D-01,3.8522D-01,3.7808D-01,3.7047D-01, - &3.6211D-01,3.5469D-01,3.4619D-01,3.3582D-01,3.2478D-01,3.1314D-01/ - DATA (XDEF_L(K),K= 229, 342) / - &3.0021D-01,2.8848D-01,2.7488D-01,2.5781D-01,2.3886D-01,2.1865D-01, - &1.9932D-01,1.8196D-01,1.6359D-01,1.4359D-01,1.2596D-01,1.1295D-01, - &1.0678D-01,1.0933D-01,1.2234D-01,1.5242D-01,1.9969D-01,2.4187D-01, - &2.8742D-01,3.2112D-01,3.4825D-01,3.6067D-01,3.5959D-01,3.4546D-01, - &3.1813D-01,2.7719D-01,2.2151D-01,1.5037D-01,6.2862D-02,0.0000D+00, - &0.0000D+00,1.5516D-01,1.1270D-01,7.7856D-02,5.0916D-02,3.1337D-02, - &1.7279D-02,8.9355D-03,3.9672D-03,1.4465D-03,0.0000D+00,0.0000D+00, - &0.0000D+00,0.0000D+00,5.0059D-01,4.9450D-01,4.8826D-01,4.8213D-01, - &4.7610D-01,4.6972D-01,4.6326D-01,4.5655D-01,4.4999D-01,4.4265D-01, - &4.3505D-01,4.2703D-01,4.1870D-01,4.1345D-01,4.0758D-01,4.0034D-01, - &3.9260D-01,3.8434D-01,3.7539D-01,3.6725D-01,3.5804D-01,3.4696D-01, - &3.3492D-01,3.2231D-01,3.0852D-01,2.9601D-01,2.8154D-01,2.6348D-01, - &2.4363D-01,2.2272D-01,2.0295D-01,1.8526D-01,1.6669D-01,1.4678D-01, - &1.2956D-01,1.1726D-01,1.1212D-01,1.1548D-01,1.2910D-01,1.5906D-01, - &2.0458D-01,2.4395D-01,2.8508D-01,3.1418D-01,3.3593D-01,3.4343D-01, - &3.3827D-01,3.2104D-01,2.9189D-01,2.5067D-01,1.9688D-01,1.3016D-01, - &5.0498D-02,0.0000D+00,0.0000D+00,1.3742D-01,9.8602D-02,6.7357D-02, - &4.3555D-02,2.6444D-02,1.4175D-02,7.3561D-03,3.2181D-03,1.1530D-03, - &0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,5.2114D-01,5.1454D-01/ - DATA (XDEF_L(K),K= 343, 456) / - &5.0806D-01,5.0160D-01,4.9520D-01,4.8843D-01,4.8165D-01,4.7456D-01, - &4.6738D-01,4.5962D-01,4.5149D-01,4.4293D-01,4.3400D-01,4.2833D-01, - &4.2194D-01,4.1420D-01,4.0580D-01,3.9678D-01,3.8741D-01,3.7848D-01, - &3.6878D-01,3.5682D-01,3.4416D-01,3.3062D-01,3.1602D-01,3.0269D-01, - &2.8749D-01,2.6857D-01,2.4798D-01,2.2641D-01,2.0626D-01,1.8828D-01, - &1.6960D-01,1.4976D-01,1.3293D-01,1.2126D-01,1.1684D-01,1.2099D-01, - &1.3505D-01,1.6471D-01,2.0841D-01,2.4521D-01,2.8248D-01,3.0770D-01, - &3.2484D-01,3.2845D-01,3.1999D-01,3.0047D-01,2.7030D-01,2.2924D-01, - &1.7739D-01,1.1482D-01,4.2174D-02,0.0000D+00,0.0000D+00,1.2330D-01, - &8.7586D-02,5.9211D-02,3.7890D-02,2.2733D-02,1.1877D-02,6.1865D-03, - &2.6713D-03,9.4247D-04,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00, - &5.4423D-01,5.3740D-01,5.3068D-01,5.2385D-01,5.1700D-01,5.0982D-01, - &5.0256D-01,4.9509D-01,4.8731D-01,4.7895D-01,4.7023D-01,4.6094D-01, - &4.5130D-01,4.4506D-01,4.3820D-01,4.2973D-01,4.2069D-01,4.1108D-01, - &4.0069D-01,3.9131D-01,3.8063D-01,3.6796D-01,3.5430D-01,3.3991D-01, - &3.2433D-01,3.1014D-01,2.9407D-01,2.7418D-01,2.5281D-01,2.3056D-01, - &2.0999D-01,1.9171D-01,1.7291D-01,1.5321D-01,1.3677D-01,1.2578D-01, - &1.2220D-01,1.2696D-01,1.4132D-01,1.7056D-01,2.1212D-01,2.4603D-01, - &2.7912D-01,3.0023D-01,3.1274D-01,3.1234D-01,3.0087D-01,2.7925D-01/ - DATA (XDEF_L(K),K= 457, 570) / - &2.4820D-01,2.0782D-01,1.5841D-01,1.0056D-01,3.5470D-02,0.0000D+00, - &0.0000D+00,1.0941D-01,7.6864D-02,5.1391D-02,3.2506D-02,1.9250D-02, - &9.7741D-03,5.1192D-03,2.1775D-03,0.0000D+00,0.0000D+00,0.0000D+00, - &0.0000D+00,0.0000D+00,5.6542D-01,5.5814D-01,5.5101D-01,5.4385D-01, - &5.3670D-01,5.2913D-01,5.2140D-01,5.1352D-01,5.0533D-01,4.9639D-01, - &4.8702D-01,4.7710D-01,4.6670D-01,4.6011D-01,4.5270D-01,4.4365D-01, - &4.3394D-01,4.2383D-01,4.1271D-01,4.0253D-01,3.9137D-01,3.7783D-01, - &3.6325D-01,3.4810D-01,3.3163D-01,3.1674D-01,2.9988D-01,2.7922D-01, - &2.5706D-01,2.3429D-01,2.1333D-01,1.9484D-01,1.7592D-01,1.5634D-01, - &1.4028D-01,1.2985D-01,1.2692D-01,1.3218D-01,1.4678D-01,1.7535D-01, - &2.1492D-01,2.4628D-01,2.7582D-01,2.9349D-01,3.0215D-01,2.9865D-01, - &2.8479D-01,2.6176D-01,2.3025D-01,1.9073D-01,1.4372D-01,9.0030D-02, - &3.1431D-02,0.0000D+00,0.0000D+00,9.8561D-02,6.8571D-02,4.5400D-02, - &2.8439D-02,1.6650D-02,8.2414D-03,4.3377D-03,1.8226D-03,0.0000D+00, - &0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,5.8660D-01,5.7912D-01, - &5.7170D-01,5.6412D-01,5.5660D-01,5.4858D-01,5.4040D-01,5.3194D-01, - &5.2336D-01,5.1383D-01,5.0381D-01,4.9326D-01,4.8220D-01,4.7515D-01, - &4.6719D-01,4.5756D-01,4.4719D-01,4.3619D-01,4.2441D-01,4.1376D-01, - &4.0188D-01,3.8750D-01,3.7220D-01,3.5617D-01,3.3884D-01,3.2317D-01/ - DATA (XDEF_L(K),K= 571, 684) / - &3.0561D-01,2.8413D-01,2.6132D-01,2.3801D-01,2.1667D-01,1.9794D-01, - &1.7898D-01,1.5951D-01,1.4381D-01,1.3395D-01,1.3154D-01,1.3722D-01, - &1.5183D-01,1.7978D-01,2.1726D-01,2.4615D-01,2.7227D-01,2.8668D-01, - &2.9185D-01,2.8560D-01,2.6981D-01,2.4566D-01,2.1405D-01,1.7560D-01, - &1.3093D-01,8.1317D-02,2.8821D-02,0.0000D+00,0.0000D+00,8.9016D-02, - &6.1335D-02,4.0241D-02,2.4960D-02,1.4451D-02,6.9787D-03,3.6912D-03, - &1.5320D-03,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00, - &6.0621D-01,5.9821D-01,5.9043D-01,5.8253D-01,5.7470D-01,5.6625D-01, - &5.5768D-01,5.4870D-01,5.3948D-01,5.2962D-01,5.1919D-01,5.0796D-01, - &4.9620D-01,4.8867D-01,4.8027D-01,4.7003D-01,4.5907D-01,4.4740D-01, - &4.3484D-01,4.2392D-01,4.1127D-01,3.9627D-01,3.8010D-01,3.6326D-01, - &3.4524D-01,3.2900D-01,3.1064D-01,2.8853D-01,2.6510D-01,2.4135D-01, - &2.1970D-01,2.0080D-01,1.8175D-01,1.6242D-01,1.4701D-01,1.3753D-01, - &1.3572D-01,1.4160D-01,1.5623D-01,1.8343D-01,2.1902D-01,2.4571D-01, - &2.6885D-01,2.8059D-01,2.8292D-01,2.7441D-01,2.5704D-01,2.3223D-01, - &2.0062D-01,1.6317D-01,1.2079D-01,7.4733D-02,2.7461D-02,0.0000D+00, - &0.0000D+00,8.1334D-02,5.5577D-02,3.6150D-02,2.2243D-02,1.2749D-02, - &6.0264D-03,3.2009D-03,1.3143D-03,0.0000D+00,0.0000D+00,0.0000D+00, - &0.0000D+00,0.0000D+00,6.2581D-01,6.1778D-01,6.0953D-01,6.0134D-01/ - DATA (XDEF_L(K),K= 685, 798) / - &5.9310D-01,5.8428D-01,5.7523D-01,5.6587D-01,5.5625D-01,5.4565D-01, - &5.3457D-01,5.2280D-01,5.1030D-01,5.0236D-01,4.9350D-01,4.8267D-01, - &4.7104D-01,4.5899D-01,4.4560D-01,4.3381D-01,4.2066D-01,4.0485D-01, - &3.8801D-01,3.7047D-01,3.5165D-01,3.3476D-01,3.1574D-01,2.9293D-01, - &2.6889D-01,2.4469D-01,2.2279D-01,2.0369D-01,1.8458D-01,1.6537D-01, - &1.5025D-01,1.4125D-01,1.3980D-01,1.4589D-01,1.6046D-01,1.8686D-01, - &2.2052D-01,2.4502D-01,2.6530D-01,2.7444D-01,2.7406D-01,2.6361D-01, - &2.4491D-01,2.1954D-01,1.8819D-01,1.5193D-01,1.1170D-01,6.9146D-02, - &2.6829D-02,0.0000D+00,0.0000D+00,7.4387D-02,5.0398D-02,3.2529D-02, - &1.9840D-02,1.1260D-02,5.2109D-03,2.7796D-03,1.1291D-03,0.0000D+00, - &0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,6.4510D-01,6.3663D-01, - &6.2809D-01,6.1948D-01,6.1090D-01,6.0165D-01,5.9256D-01,5.8263D-01, - &5.7237D-01,5.6121D-01,5.4960D-01,5.3710D-01,5.2390D-01,5.1555D-01, - &5.0615D-01,4.9474D-01,4.8273D-01,4.6980D-01,4.5603D-01,4.4343D-01, - &4.2983D-01,4.1325D-01,3.9561D-01,3.7731D-01,3.5765D-01,3.4017D-01, - &3.2063D-01,2.9709D-01,2.7258D-01,2.4795D-01,2.2572D-01,2.0647D-01, - &1.8735D-01,1.6824D-01,1.5339D-01,1.4470D-01,1.4366D-01,1.4990D-01, - &1.6437D-01,1.8986D-01,2.2169D-01,2.4408D-01,2.6175D-01,2.6863D-01, - &2.6585D-01,2.5363D-01,2.3397D-01,2.0813D-01,1.7714D-01,1.4205D-01/ - DATA (XDEF_L(K),K= 799, 912) / - &1.0396D-01,6.4602D-02,2.6785D-02,0.0000D+00,0.0000D+00,6.8343D-02, - &4.5962D-02,2.9434D-02,1.7812D-02,1.0015D-02,4.5458D-03,2.4331D-03, - &9.7866D-04,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00, - &6.6281D-01,6.5407D-01,6.4523D-01,6.3631D-01,6.2740D-01,6.1775D-01, - &6.0821D-01,5.9770D-01,5.8724D-01,5.7535D-01,5.6321D-01,5.5021D-01, - &5.3640D-01,5.2763D-01,5.1775D-01,5.0583D-01,4.9310D-01,4.7946D-01, - &4.6520D-01,4.5225D-01,4.3811D-01,4.2074D-01,4.0247D-01,3.8355D-01, - &3.6315D-01,3.4516D-01,3.2502D-01,3.0091D-01,2.7589D-01,2.5090D-01, - &2.2842D-01,2.0903D-01,1.8987D-01,1.7087D-01,1.5631D-01,1.4790D-01, - &1.4709D-01,1.5345D-01,1.6771D-01,1.9243D-01,2.2253D-01,2.4307D-01, - &2.5846D-01,2.6327D-01,2.5857D-01,2.4493D-01,2.2441D-01,1.9832D-01, - &1.6773D-01,1.3380D-01,9.7606D-02,6.1077D-02,2.7123D-02,4.1687D-04, - &0.0000D+00,6.3316D-02,4.2290D-02,2.6899D-02,1.6166D-02,9.0143D-03, - &4.0214D-03,2.1587D-03,8.6042D-04,0.0000D+00,0.0000D+00,0.0000D+00, - &0.0000D+00,0.0000D+00,6.8558D-01,6.7623D-01,6.6716D-01,6.5776D-01, - &6.4840D-01,6.3825D-01,6.2778D-01,6.1697D-01,6.0589D-01,5.9350D-01, - &5.8071D-01,5.6677D-01,5.5220D-01,5.4293D-01,5.3246D-01,5.1980D-01, - &5.0630D-01,4.9221D-01,4.7690D-01,4.6348D-01,4.4839D-01,4.3024D-01, - &4.1112D-01,3.9125D-01,3.7016D-01,3.5134D-01,3.3054D-01,3.0571D-01/ - DATA (XDEF_L(K),K= 913, 1026) / - &2.8005D-01,2.5463D-01,2.3186D-01,2.1230D-01,1.9311D-01,1.7422D-01, - &1.5985D-01,1.5187D-01,1.5138D-01,1.5783D-01,1.7178D-01,1.9543D-01, - &2.2331D-01,2.4162D-01,2.5415D-01,2.5666D-01,2.4964D-01,2.3438D-01, - &2.1293D-01,1.8681D-01,1.5680D-01,1.2430D-01,9.0488D-02,5.7352D-02, - &2.7942D-02,7.0995D-03,2.4780D-03,5.7612D-02,3.8138D-02,2.4057D-02, - &1.4329D-02,7.9111D-03,3.4566D-03,1.8603D-03,7.3347D-04,0.0000D+00, - &0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,7.0709D-01,6.9744D-01, - &6.8784D-01,6.7803D-01,6.6830D-01,6.5763D-01,6.4678D-01,6.3540D-01, - &6.2360D-01,6.1071D-01,5.9715D-01,5.8240D-01,5.6710D-01,5.5722D-01, - &5.4625D-01,5.3291D-01,5.1856D-01,5.0380D-01,4.8797D-01,4.7363D-01, - &4.5801D-01,4.3900D-01,4.1917D-01,3.9846D-01,3.7656D-01,3.5717D-01, - &3.3564D-01,3.1017D-01,2.8397D-01,2.5816D-01,2.3508D-01,2.1538D-01, - &1.9615D-01,1.7737D-01,1.6324D-01,1.5559D-01,1.5535D-01,1.6175D-01, - &1.7537D-01,1.9793D-01,2.2384D-01,2.4005D-01,2.5009D-01,2.5051D-01, - &2.4150D-01,2.2495D-01,2.0291D-01,1.7668D-01,1.4739D-01,1.1625D-01, - &8.4583D-02,5.4470D-02,2.9013D-02,1.3147D-02,1.4553D-02,5.2777D-02, - &3.4672D-02,2.1686D-02,1.2821D-02,7.0105D-03,3.0093D-03,1.6226D-03, - &6.3321D-04,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00, - &7.2796D-01,7.1795D-01,7.0799D-01,6.9776D-01,6.8760D-01,6.7649D-01/ - DATA (XDEF_L(K),K= 1027, 1140) / - &6.6523D-01,6.5299D-01,6.4099D-01,6.2720D-01,6.1289D-01,5.9763D-01, - &5.8140D-01,5.7108D-01,5.5954D-01,5.4555D-01,5.3082D-01,5.1501D-01, - &4.9841D-01,4.8352D-01,4.6718D-01,4.4758D-01,4.2678D-01,4.0543D-01, - &3.8267D-01,3.6267D-01,3.4052D-01,3.1445D-01,2.8771D-01,2.6154D-01, - &2.3817D-01,2.1835D-01,1.9910D-01,1.8043D-01,1.6662D-01,1.5905D-01, - &1.5900D-01,1.6548D-01,1.7871D-01,2.0015D-01,2.2403D-01,2.3835D-01, - &2.4610D-01,2.4469D-01,2.3394D-01,2.1634D-01,1.9372D-01,1.6761D-01, - &1.3910D-01,1.0920D-01,7.9530D-02,5.2165D-02,3.0250D-02,1.8723D-02, - &2.5275D-02,4.8575D-02,3.1676D-02,1.9677D-02,1.1540D-02,6.2533D-03, - &2.6411D-03,1.4253D-03,5.5072D-04,0.0000D+00,0.0000D+00,0.0000D+00, - &0.0000D+00,0.0000D+00,7.4788D-01,7.3751D-01,7.2708D-01,7.1644D-01, - &7.0580D-01,6.9430D-01,6.8256D-01,6.6975D-01,6.5712D-01,6.4276D-01, - &6.2791D-01,6.1180D-01,5.9490D-01,5.8409D-01,5.7199D-01,5.5739D-01, - &5.4166D-01,5.2544D-01,5.0821D-01,4.9288D-01,4.7590D-01,4.5544D-01, - &4.3393D-01,4.1178D-01,3.8837D-01,3.6775D-01,3.4513D-01,3.1844D-01, - &2.9125D-01,2.6472D-01,2.4110D-01,2.2115D-01,2.0189D-01,1.8330D-01, - &1.6955D-01,1.6237D-01,1.6243D-01,1.6875D-01,1.8164D-01,2.0201D-01, - &2.2410D-01,2.3665D-01,2.4236D-01,2.3927D-01,2.2710D-01,2.0852D-01, - &1.8563D-01,1.5962D-01,1.3170D-01,1.0314D-01,7.5292D-02,5.0347D-02/ - DATA (XDEF_L(K),K= 1141, 1254) / - &3.1513D-02,2.3688D-02,3.4520D-02,4.4988D-02,2.9140D-02,1.7975D-02, - &1.0472D-02,5.6268D-03,2.3442D-03,1.2646D-03,4.8432D-04,0.0000D+00, - &0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,7.6812D-01,7.5731D-01, - &7.4653D-01,7.3551D-01,7.2440D-01,7.1234D-01,6.9989D-01,6.8692D-01, - &6.7357D-01,6.5855D-01,6.4312D-01,6.2624D-01,6.0850D-01,5.9719D-01, - &5.8457D-01,5.6934D-01,5.5297D-01,5.3626D-01,5.1802D-01,5.0223D-01, - &4.8440D-01,4.6329D-01,4.4109D-01,4.1826D-01,3.9408D-01,3.7291D-01, - &3.4966D-01,3.2243D-01,2.9475D-01,2.6790D-01,2.4406D-01,2.2399D-01, - &2.0470D-01,1.8621D-01,1.7262D-01,1.6558D-01,1.6576D-01,1.7201D-01, - &1.8441D-01,2.0372D-01,2.2403D-01,2.3482D-01,2.3856D-01,2.3398D-01, - &2.2040D-01,2.0103D-01,1.7782D-01,1.5205D-01,1.2492D-01,9.7540D-02, - &7.1452D-02,4.8817D-02,3.2832D-02,2.8412D-02,4.3068D-02,4.1684D-02, - &2.6819D-02,1.6431D-02,9.5049D-03,5.0674D-03,2.0840D-03,1.1231D-03, - &4.2643D-04,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00, - &7.8709D-01,7.7617D-01,7.6509D-01,7.5353D-01,7.4210D-01,7.2955D-01, - &7.1666D-01,7.0326D-01,6.8906D-01,6.7364D-01,6.5743D-01,6.3988D-01, - &6.2140D-01,6.0962D-01,5.9645D-01,5.8083D-01,5.6382D-01,5.4630D-01, - &5.2750D-01,5.1079D-01,4.9267D-01,4.7078D-01,4.4780D-01,4.2425D-01, - &3.9948D-01,3.7773D-01,3.5398D-01,3.2619D-01,2.9811D-01,2.7093D-01/ - DATA (XDEF_L(K),K= 1255, 1368) / - &2.4686D-01,2.2668D-01,2.0735D-01,1.8888D-01,1.7555D-01,1.6865D-01, - &1.6887D-01,1.7500D-01,1.8693D-01,2.0522D-01,2.2377D-01,2.3300D-01, - &2.3501D-01,2.2902D-01,2.1428D-01,1.9427D-01,1.7084D-01,1.4533D-01, - &1.1889D-01,9.2655D-02,6.8174D-02,4.7575D-02,3.4123D-02,3.2605D-02, - &5.0454D-02,3.8820D-02,2.4822D-02,1.5113D-02,8.6857D-03,4.5962D-03, - &1.8704D-03,1.0050D-03,3.7856D-04,0.0000D+00,0.0000D+00,0.0000D+00, - &0.0000D+00,0.0000D+00,8.0606D-01,7.9455D-01,7.8312D-01,7.7128D-01, - &7.5940D-01,7.4610D-01,7.3287D-01,7.1917D-01,7.0456D-01,6.8825D-01, - &6.7140D-01,6.5313D-01,6.3390D-01,6.2170D-01,6.0798D-01,5.9180D-01, - &5.7419D-01,5.5596D-01,5.3636D-01,5.1934D-01,5.0050D-01,4.7790D-01, - &4.5436D-01,4.3012D-01,4.0458D-01,3.8238D-01,3.5808D-01,3.2984D-01, - &3.0133D-01,2.7388D-01,2.4957D-01,2.2930D-01,2.0996D-01,1.9168D-01, - &1.7832D-01,1.7159D-01,1.7177D-01,1.7770D-01,1.8921D-01,2.0651D-01, - &2.2344D-01,2.3117D-01,2.3152D-01,2.2426D-01,2.0844D-01,1.8790D-01, - &1.6440D-01,1.3914D-01,1.1342D-01,8.8280D-02,6.5276D-02,4.6578D-02, - &3.5360D-02,3.6411D-02,5.6986D-02,3.6256D-02,2.3040D-02,1.3948D-02, - &7.9676D-03,4.1856D-03,1.6876D-03,9.0394D-04,3.3789D-04,0.0000D+00, - &0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,8.2409D-01,8.1223D-01, - &8.0027D-01,7.8810D-01,7.7580D-01,7.6250D-01,7.4852D-01,7.3383D-01/ - DATA (XDEF_L(K),K= 1369, 1482) / - &7.1879D-01,7.0216D-01,6.8466D-01,6.6571D-01,6.4580D-01,6.3303D-01, - &6.1887D-01,6.0161D-01,5.8362D-01,5.6485D-01,5.4490D-01,5.2736D-01, - &5.0788D-01,4.8465D-01,4.6048D-01,4.3549D-01,4.0949D-01,3.8678D-01, - &3.6198D-01,3.3325D-01,3.0435D-01,2.7667D-01,2.5212D-01,2.3179D-01, - &2.1241D-01,1.9410D-01,1.8093D-01,1.7428D-01,1.7445D-01,1.8022D-01, - &1.9133D-01,2.0758D-01,2.2299D-01,2.2941D-01,2.2823D-01,2.1990D-01, - &2.0319D-01,1.8211D-01,1.5852D-01,1.3371D-01,1.0856D-01,8.4430D-02, - &6.2776D-02,4.5758D-02,3.6514D-02,3.9756D-02,6.2597D-02,3.4019D-02, - &2.1502D-02,1.2943D-02,7.3506D-03,3.8366D-03,1.5351D-03,8.1923D-04, - &3.0383D-04,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00, - &8.4844D-01,8.3627D-01,8.2378D-01,8.1114D-01,7.9820D-01,7.8411D-01, - &7.6977D-01,7.5436D-01,7.3871D-01,7.2101D-01,7.0269D-01,6.8280D-01, - &6.6180D-01,6.4849D-01,6.3365D-01,6.1605D-01,5.9682D-01,5.7721D-01, - &5.5628D-01,5.3805D-01,5.1772D-01,4.9378D-01,4.6868D-01,4.4295D-01, - &4.1599D-01,3.9262D-01,3.6722D-01,3.3788D-01,3.0847D-01,2.8040D-01, - &2.5562D-01,2.3513D-01,2.1572D-01,1.9746D-01,1.8447D-01,1.7787D-01, - &1.7810D-01,1.8358D-01,1.9394D-01,2.0894D-01,2.2227D-01,2.2689D-01, - &2.2385D-01,2.1408D-01,1.9620D-01,1.7461D-01,1.5108D-01,1.2667D-01, - &1.0243D-01,7.9635D-02,5.9715D-02,4.4804D-02,3.7997D-02,4.3894D-02/ - DATA (XDEF_L(K),K= 1483, 1596) / - &6.9391D-02,3.1240D-02,1.9603D-02,1.1712D-02,6.6036D-03,3.4150D-03, - &1.3549D-03,7.1812D-04,2.6373D-04,0.0000D+00,0.0000D+00,0.0000D+00, - &0.0000D+00,0.0000D+00,8.7089D-01,8.5819D-01,8.4535D-01,8.3207D-01, - &8.1860D-01,8.0424D-01,7.8877D-01,7.7320D-01,7.5642D-01,7.3822D-01, - &7.1895D-01,6.9816D-01,6.7640D-01,6.6244D-01,6.4701D-01,6.2817D-01, - &6.0860D-01,5.8841D-01,5.6672D-01,5.4767D-01,5.2667D-01,5.0182D-01, - &4.7599D-01,4.4955D-01,4.2190D-01,3.9787D-01,3.7196D-01,3.4199D-01, - &3.1220D-01,2.8382D-01,2.5874D-01,2.3816D-01,2.1874D-01,2.0063D-01, - &1.8770D-01,1.8107D-01,1.8121D-01,1.8638D-01,1.9622D-01,2.0994D-01, - &2.2156D-01,2.2456D-01,2.1986D-01,2.0892D-01,1.9015D-01,1.6817D-01, - &1.4465D-01,1.2070D-01,9.7309D-02,7.5665D-02,5.7234D-02,4.4095D-02, - &3.9289D-02,4.7307D-02,7.4739D-02,2.8958D-02,1.8046D-02,1.0716D-02, - &6.0010D-03,3.0801D-03,1.2145D-03,6.3833D-04,2.3251D-04,0.0000D+00, - &0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,8.9366D-01,8.8058D-01, - &8.6727D-01,8.5353D-01,8.3950D-01,8.2436D-01,8.0890D-01,7.9205D-01, - &7.7476D-01,7.5566D-01,7.3557D-01,7.1393D-01,6.9120D-01,6.7672D-01, - &6.6059D-01,6.4145D-01,6.2086D-01,5.9962D-01,5.7716D-01,5.5756D-01, - &5.3584D-01,5.1022D-01,4.8344D-01,4.5615D-01,4.2780D-01,4.0320D-01, - &3.7671D-01,3.4621D-01,3.1594D-01,2.8727D-01,2.6196D-01,2.4126D-01/ - DATA (XDEF_L(K),K= 1597, 1710) / - &2.2177D-01,2.0361D-01,1.9078D-01,1.8427D-01,1.8432D-01,1.8918D-01, - &1.9834D-01,2.1079D-01,2.2065D-01,2.2210D-01,2.1587D-01,2.0383D-01, - &1.8424D-01,1.6197D-01,1.3849D-01,1.1505D-01,9.2463D-02,7.1949D-02, - &5.4952D-02,4.3474D-02,4.0525D-02,5.0376D-02,7.9517D-02,2.6835D-02, - &1.6616D-02,9.8004D-03,5.4489D-03,2.7768D-03,1.0900D-03,5.6728D-04, - &2.0489D-04,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00, - &9.1643D-01,9.0298D-01,8.8901D-01,8.7472D-01,8.6030D-01,8.4449D-01, - &8.2790D-01,8.1090D-01,7.9278D-01,7.7287D-01,7.5201D-01,7.2942D-01, - &7.0580D-01,6.9067D-01,6.7395D-01,6.5357D-01,6.3264D-01,6.1082D-01, - &5.8728D-01,5.6718D-01,5.4478D-01,5.1825D-01,4.9075D-01,4.6263D-01, - &4.3360D-01,4.0844D-01,3.8138D-01,3.5032D-01,3.1963D-01,2.9065D-01, - &2.6511D-01,2.4428D-01,2.2479D-01,2.0678D-01,1.9385D-01,1.8735D-01, - &1.8722D-01,1.9179D-01,2.0029D-01,2.1158D-01,2.1961D-01,2.1971D-01, - &2.1194D-01,1.9894D-01,1.7862D-01,1.5609D-01,1.3279D-01,1.0972D-01, - &8.8007D-02,6.8578D-02,5.2905D-02,4.2942D-02,4.1624D-02,5.3065D-02, - &8.3506D-02,2.4920D-02,1.5334D-02,8.9876D-03,4.9653D-03,2.5112D-03, - &9.8300D-04,5.0629D-04,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00, - &0.0000D+00,0.0000D+00,9.3762D-01,9.2325D-01,9.0916D-01,8.9432D-01, - &8.7930D-01,8.6312D-01,8.4579D-01,8.2807D-01,8.0954D-01,7.8866D-01/ - DATA (XDEF_L(K),K= 1711, 1824) / - &7.6704D-01,7.4360D-01,7.1911D-01,7.0343D-01,6.8612D-01,6.6512D-01, - &6.4349D-01,6.2048D-01,5.9676D-01,5.7574D-01,5.5261D-01,5.2556D-01, - &4.9731D-01,4.6862D-01,4.3881D-01,4.1318D-01,3.8556D-01,3.5408D-01, - &3.2299D-01,2.9375D-01,2.6794D-01,2.4706D-01,2.2744D-01,2.0939D-01, - &1.9662D-01,1.9016D-01,1.8990D-01,1.9412D-01,2.0192D-01,2.1208D-01, - &2.1863D-01,2.1745D-01,2.0845D-01,1.9458D-01,1.7365D-01,1.5094D-01, - &1.2783D-01,1.0526D-01,8.4228D-02,6.5746D-02,5.1203D-02,4.2521D-02, - &4.2531D-02,5.5238D-02,8.6619D-02,2.3321D-02,1.4266D-02,8.3142D-03, - &4.5684D-03,2.2945D-03,8.9721D-04,4.5700D-04,0.0000D+00,0.0000D+00, - &0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,9.5912D-01,9.4446D-01, - &9.2967D-01,9.1446D-01,8.9890D-01,8.8176D-01,8.6424D-01,8.4567D-01, - &8.2630D-01,8.0492D-01,7.8242D-01,7.5817D-01,7.3271D-01,7.1653D-01, - &6.9849D-01,6.7725D-01,6.5433D-01,6.3091D-01,6.0625D-01,5.8456D-01, - &5.6088D-01,5.3305D-01,5.0402D-01,4.7461D-01,4.4411D-01,4.1800D-01, - &3.8988D-01,3.5790D-01,3.2644D-01,2.9690D-01,2.7087D-01,2.4987D-01, - &2.3039D-01,2.1219D-01,1.9955D-01,1.9298D-01,1.9248D-01,1.9636D-01, - &2.0355D-01,2.1258D-01,2.1752D-01,2.1512D-01,2.0490D-01,1.9021D-01, - &1.6876D-01,1.4586D-01,1.2296D-01,1.0090D-01,8.0587D-02,6.3034D-02, - &4.9591D-02,4.2122D-02,4.3355D-02,5.7203D-02,8.9336D-02,2.1802D-02/ - DATA (XDEF_L(K),K= 1825, 1836) / - &1.3258D-02,7.6843D-03,4.1967D-03,2.0952D-03,8.1932D-04,4.1202D-04, - &0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00,0.0000D+00/ - DATA (XUDF_L(K),K= 1, 114) / - &1.8987D-02,1.9947D-02,2.0980D-02,2.2068D-02,2.3225D-02,2.4540D-02, - &2.5957D-02,2.7526D-02,2.9229D-02,3.1232D-02,3.3453D-02,3.6003D-02, - &3.8855D-02,4.0763D-02,4.2980D-02,4.5778D-02,4.8895D-02,5.2320D-02, - &5.6174D-02,5.9765D-02,6.3980D-02,6.9315D-02,7.5299D-02,8.1888D-02, - &8.9292D-02,9.6162D-02,1.0414D-01,1.1410D-01,1.2505D-01,1.3674D-01, - &1.4937D-01,1.6060D-01,1.7296D-01,1.8730D-01,2.0166D-01,2.1531D-01, - &2.2821D-01,2.3833D-01,2.4848D-01,2.6049D-01,2.7586D-01,2.9166D-01, - &3.1456D-01,3.3942D-01,3.7230D-01,4.0597D-01,4.3921D-01,4.7071D-01, - &4.9846D-01,5.2057D-01,5.3433D-01,5.3610D-01,5.2141D-01,4.8433D-01, - &4.1719D-01,6.3794D-01,6.7411D-01,7.2040D-01,7.8812D-01,8.9495D-01, - &1.0702D+00,1.3629D+00,1.8763D+00,2.8399D+00,4.8968D+00,1.0506D+01, - &3.7793D+01,0.0000D+00,3.1111D-02,3.2336D-02,3.3580D-02,3.4906D-02, - &3.6247D-02,3.7773D-02,3.9337D-02,4.1056D-02,4.2876D-02,4.5001D-02, - &4.7299D-02,4.9897D-02,5.2761D-02,5.4666D-02,5.6867D-02,5.9620D-02, - &6.2679D-02,6.6018D-02,6.9775D-02,7.3275D-02,7.7353D-02,8.2522D-02, - &8.8327D-02,9.4694D-02,1.0184D-01,1.0846D-01,1.1615D-01,1.2575D-01, - &1.3628D-01,1.4752D-01,1.5964D-01,1.7036D-01,1.8215D-01,1.9580D-01, - &2.0933D-01,2.2213D-01,2.3411D-01,2.4341D-01,2.5275D-01,2.6387D-01, - &2.7831D-01,2.9333D-01,3.1510D-01,3.3876D-01,3.6995D-01,4.0170D-01/ - DATA (XUDF_L(K),K= 115, 228) / - &4.3298D-01,4.6172D-01,4.8742D-01,5.0700D-01,5.1856D-01,5.1873D-01, - &5.0352D-01,4.6746D-01,4.0418D-01,6.1801D-01,6.5339D-01,6.9923D-01, - &7.6627D-01,8.7125D-01,1.0408D+00,1.3199D+00,1.8020D+00,2.6920D+00, - &4.5574D+00,9.5310D+00,3.2877D+01,0.0000D+00,5.1176D-02,5.2640D-02, - &5.4100D-02,5.5603D-02,5.7095D-02,5.8737D-02,6.0416D-02,6.2154D-02, - &6.4016D-02,6.6046D-02,6.8273D-02,7.0765D-02,7.3444D-02,7.5182D-02, - &7.7263D-02,7.9781D-02,8.2626D-02,8.5707D-02,8.9176D-02,9.2402D-02, - &9.6182D-02,1.0098D-01,1.0635D-01,1.1227D-01,1.1893D-01,1.2513D-01, - &1.3230D-01,1.4128D-01,1.5115D-01,1.6164D-01,1.7300D-01,1.8301D-01, - &1.9397D-01,2.0660D-01,2.1907D-01,2.3072D-01,2.4154D-01,2.4985D-01, - &2.5817D-01,2.6810D-01,2.8136D-01,2.9535D-01,3.1585D-01,3.3824D-01, - &3.6743D-01,3.9701D-01,4.2565D-01,4.5205D-01,4.7460D-01,4.9184D-01, - &5.0110D-01,4.9954D-01,4.8363D-01,4.4878D-01,3.8940D-01,5.9452D-01, - &6.2820D-01,6.7181D-01,7.3612D-01,8.3598D-01,9.9560D-01,1.2543D+00, - &1.6953D+00,2.4947D+00,4.1415D+00,8.4275D+00,2.7797D+01,0.0000D+00, - &8.6266D-02,8.7847D-02,8.9380D-02,9.0869D-02,9.2337D-02,9.3826D-02, - &9.5315D-02,9.6842D-02,9.8333D-02,1.0003D-01,1.0178D-01,1.0370D-01, - &1.0575D-01,1.0710D-01,1.0872D-01,1.1075D-01,1.1295D-01,1.1538D-01, - &1.1821D-01,1.2088D-01,1.2396D-01,1.2796D-01,1.3252D-01,1.3756D-01/ - DATA (XUDF_L(K),K= 229, 342) / - &1.4331D-01,1.4870D-01,1.5500D-01,1.6291D-01,1.7166D-01,1.8100D-01, - &1.9111D-01,2.0002D-01,2.0977D-01,2.2095D-01,2.3189D-01,2.4200D-01, - &2.5123D-01,2.5821D-01,2.6512D-01,2.7351D-01,2.8514D-01,2.9789D-01, - &3.1683D-01,3.3731D-01,3.6424D-01,3.9124D-01,4.1697D-01,4.4030D-01, - &4.6002D-01,4.7419D-01,4.8085D-01,4.7740D-01,4.6086D-01,4.2728D-01, - &3.7241D-01,5.6656D-01,5.9684D-01,6.3694D-01,6.9622D-01,7.8804D-01, - &9.3343D-01,1.1653D+00,1.5545D+00,2.2504D+00,3.6537D+00,7.2124D+00, - &2.2653D+01,0.0000D+00,1.4838D-01,1.4960D-01,1.5068D-01,1.5161D-01, - &1.5242D-01,1.5316D-01,1.5373D-01,1.5426D-01,1.5470D-01,1.5511D-01, - &1.5554D-01,1.5602D-01,1.5660D-01,1.5698D-01,1.5750D-01,1.5830D-01, - &1.5923D-01,1.6034D-01,1.6181D-01,1.6324D-01,1.6509D-01,1.6746D-01, - &1.7054D-01,1.7402D-01,1.7811D-01,1.8208D-01,1.8687D-01,1.9296D-01, - &1.9986D-01,2.0734D-01,2.1554D-01,2.2281D-01,2.3075D-01,2.3983D-01, - &2.4863D-01,2.5660D-01,2.6366D-01,2.6883D-01,2.7387D-01,2.8026D-01, - &2.8982D-01,3.0088D-01,3.1780D-01,3.3626D-01,3.6021D-01,3.8399D-01, - &4.0666D-01,4.2682D-01,4.4278D-01,4.5386D-01,4.5774D-01,4.5230D-01, - &4.3509D-01,4.0314D-01,3.5321D-01,5.3325D-01,5.5916D-01,5.9448D-01, - &6.4707D-01,7.2797D-01,8.5557D-01,1.0563D+00,1.3882D+00,1.9717D+00, - &3.1223D+00,5.9601D+00,1.7750D+01,0.0000D+00,2.3139D-01,2.3138D-01/ - DATA (XUDF_L(K),K= 343, 456) / - &2.3120D-01,2.3076D-01,2.3006D-01,2.2907D-01,2.2788D-01,2.2645D-01, - &2.2489D-01,2.2308D-01,2.2120D-01,2.1929D-01,2.1743D-01,2.1630D-01, - &2.1526D-01,2.1411D-01,2.1311D-01,2.1231D-01,2.1171D-01,2.1148D-01, - &2.1150D-01,2.1182D-01,2.1271D-01,2.1412D-01,2.1601D-01,2.1822D-01, - &2.2096D-01,2.2496D-01,2.2961D-01,2.3481D-01,2.4086D-01,2.4622D-01, - &2.5214D-01,2.5891D-01,2.6537D-01,2.7104D-01,2.7588D-01,2.7922D-01, - &2.8235D-01,2.8664D-01,2.9413D-01,3.0352D-01,3.1845D-01,3.3481D-01, - &3.5617D-01,3.7737D-01,3.9689D-01,4.1403D-01,4.2736D-01,4.3558D-01, - &4.3712D-01,4.3016D-01,4.1245D-01,3.8197D-01,3.3645D-01,5.0322D-01, - &5.2507D-01,5.5559D-01,6.0172D-01,6.7286D-01,7.8413D-01,9.5797D-01, - &1.2422D+00,1.7341D+00,2.6883D+00,4.9868D+00,1.4177D+01,0.0000D+00, - &3.6389D-01,3.6098D-01,3.5780D-01,3.5400D-01,3.5016D-01,3.4553D-01, - &3.4044D-01,3.3521D-01,3.2971D-01,3.2369D-01,3.1755D-01,3.1120D-01, - &3.0494D-01,3.0120D-01,2.9724D-01,2.9287D-01,2.8855D-01,2.8449D-01, - &2.8072D-01,2.7770D-01,2.7469D-01,2.7175D-01,2.6933D-01,2.6740D-01, - &2.6613D-01,2.6556D-01,2.6563D-01,2.6631D-01,2.6763D-01,2.6975D-01, - &2.7268D-01,2.7539D-01,2.7857D-01,2.8224D-01,2.8565D-01,2.8841D-01, - &2.9040D-01,2.9139D-01,2.9220D-01,2.9395D-01,2.9888D-01,3.0633D-01, - &3.1877D-01,3.3296D-01,3.5147D-01,3.6947D-01,3.8604D-01,3.9986D-01/ - DATA (XUDF_L(K),K= 457, 570) / - &4.1008D-01,4.1548D-01,4.1467D-01,4.0620D-01,3.8830D-01,3.5965D-01, - &3.1902D-01,4.7020D-01,4.8772D-01,5.1303D-01,5.5185D-01,6.1224D-01, - &7.0699D-01,8.5323D-01,1.0903D+00,1.4950D+00,2.2640D+00,4.0723D+00, - &0.0000D+00,0.0000D+00,5.2666D-01,5.1909D-01,5.1100D-01,5.0238D-01, - &4.9333D-01,4.8312D-01,4.7293D-01,4.6180D-01,4.5066D-01,4.3890D-01, - &4.2692D-01,4.1467D-01,4.0262D-01,3.9542D-01,3.8784D-01,3.7925D-01, - &3.7080D-01,3.6267D-01,3.5482D-01,3.4841D-01,3.4190D-01,3.3492D-01, - &3.2852D-01,3.2287D-01,3.1768D-01,3.1409D-01,3.1066D-01,3.0785D-01, - &3.0564D-01,3.0446D-01,3.0380D-01,3.0388D-01,3.0402D-01,3.0458D-01, - &3.0488D-01,3.0475D-01,3.0386D-01,3.0263D-01,3.0116D-01,3.0045D-01, - &3.0296D-01,3.0852D-01,3.1888D-01,3.3085D-01,3.4677D-01,3.6222D-01, - &3.7600D-01,3.8707D-01,3.9488D-01,3.9799D-01,3.9530D-01,3.8568D-01, - &3.6791D-01,3.4080D-01,3.0424D-01,4.4195D-01,4.5570D-01,4.7648D-01, - &5.0935D-01,5.6099D-01,6.4225D-01,7.6680D-01,9.6736D-01,1.3053D+00, - &1.9393D+00,3.3976D+00,0.0000D+00,0.0000D+00,7.4015D-01,7.2498D-01, - &7.0940D-01,6.9297D-01,6.7620D-01,6.5800D-01,6.3935D-01,6.2047D-01, - &6.0114D-01,5.8076D-01,5.6065D-01,5.4030D-01,5.2035D-01,5.0839D-01, - &4.9583D-01,4.8167D-01,4.6773D-01,4.5434D-01,4.4113D-01,4.3035D-01, - &4.1922D-01,4.0719D-01,3.9582D-01,3.8536D-01,3.7557D-01,3.6805D-01/ - DATA (XUDF_L(K),K= 571, 684) / - &3.6079D-01,3.5336D-01,3.4710D-01,3.4173D-01,3.3719D-01,3.3400D-01, - &3.3124D-01,3.2819D-01,3.2494D-01,3.2158D-01,3.1765D-01,3.1400D-01, - &3.1011D-01,3.0684D-01,3.0682D-01,3.1046D-01,3.1856D-01,3.2861D-01, - &3.4189D-01,3.5475D-01,3.6597D-01,3.7463D-01,3.8003D-01,3.8108D-01, - &3.7681D-01,3.6631D-01,3.4865D-01,3.2327D-01,2.9078D-01,4.1488D-01, - &4.2529D-01,4.4193D-01,4.6945D-01,5.1322D-01,5.8236D-01,6.8846D-01, - &8.5739D-01,1.1394D+00,1.6617D+00,2.8395D+00,0.0000D+00,0.0000D+00, - &9.8501D-01,9.5975D-01,9.3420D-01,9.0757D-01,8.8092D-01,8.5237D-01, - &8.2383D-01,7.9445D-01,7.6556D-01,7.3524D-01,7.0484D-01,6.7495D-01, - &6.4547D-01,6.2798D-01,6.0969D-01,5.8904D-01,5.6882D-01,5.4932D-01, - &5.3014D-01,5.1443D-01,4.9826D-01,4.8058D-01,4.6380D-01,4.4815D-01, - &4.3330D-01,4.2167D-01,4.1020D-01,3.9827D-01,3.8748D-01,3.7784D-01, - &3.6931D-01,3.6303D-01,3.5669D-01,3.4992D-01,3.4358D-01,3.3710D-01, - &3.3025D-01,3.2429D-01,3.1817D-01,3.1242D-01,3.1001D-01,3.1195D-01, - &3.1802D-01,3.2610D-01,3.3719D-01,3.4770D-01,3.5674D-01,3.6357D-01, - &3.6695D-01,3.6631D-01,3.6075D-01,3.4960D-01,3.3214D-01,3.0855D-01, - &2.7931D-01,3.9198D-01,3.9931D-01,4.1263D-01,4.3550D-01,4.7310D-01, - &5.3259D-01,6.2375D-01,7.6876D-01,1.0087D+00,1.4464D+00,2.4185D+00, - &0.0000D+00,0.0000D+00,1.2917D+00,1.2523D+00,1.2128D+00,1.1722D+00/ - DATA (XUDF_L(K),K= 685, 798) / - &1.1321D+00,1.0894D+00,1.0473D+00,1.0044D+00,9.6262D-01,9.1838D-01, - &8.7565D-01,8.3283D-01,7.9186D-01,7.6734D-01,7.4146D-01,7.1300D-01, - &6.8484D-01,6.5787D-01,6.3134D-01,6.0963D-01,5.8730D-01,5.6294D-01, - &5.3947D-01,5.1767D-01,4.9689D-01,4.8039D-01,4.6398D-01,4.4675D-01, - &4.3087D-01,4.1650D-01,4.0371D-01,3.9342D-01,3.8361D-01,3.7293D-01, - &3.6284D-01,3.5305D-01,3.4307D-01,3.3468D-01,3.2613D-01,3.1788D-01, - &3.1306D-01,3.1309D-01,3.1715D-01,3.2346D-01,3.3232D-01,3.4066D-01, - &3.4779D-01,3.5251D-01,3.5401D-01,3.5184D-01,3.4519D-01,3.3347D-01, - &3.1650D-01,2.9433D-01,2.6872D-01,3.6968D-01,3.7446D-01,3.8477D-01, - &4.0368D-01,4.3551D-01,4.8654D-01,5.6457D-01,6.8832D-01,8.9135D-01, - &1.2583D+00,2.0601D+00,0.0000D+00,0.0000D+00,1.6499D+00,1.5928D+00, - &1.5356D+00,1.4773D+00,1.4202D+00,1.3601D+00,1.3009D+00,1.2413D+00, - &1.1836D+00,1.1235D+00,1.0650D+00,1.0076D+00,9.5212D-01,9.1919D-01, - &8.8569D-01,8.4733D-01,8.1006D-01,7.7436D-01,7.3955D-01,7.1104D-01, - &6.8173D-01,6.4966D-01,6.1893D-01,5.9026D-01,5.6287D-01,5.4114D-01, - &5.1941D-01,4.9621D-01,4.7490D-01,4.5564D-01,4.3786D-01,4.2408D-01, - &4.1024D-01,3.9562D-01,3.8175D-01,3.6853D-01,3.5541D-01,3.4455D-01, - &3.3366D-01,3.2286D-01,3.1565D-01,3.1397D-01,3.1618D-01,3.2069D-01, - &3.2744D-01,3.3383D-01,3.3911D-01,3.4194D-01,3.4194D-01,3.3844D-01/ - DATA (XUDF_L(K),K= 799, 912) / - &3.3088D-01,3.1887D-01,3.0224D-01,2.8177D-01,2.5901D-01,3.4945D-01, - &3.5200D-01,3.5959D-01,3.7518D-01,4.0212D-01,4.4590D-01,5.1305D-01, - &6.1934D-01,7.9273D-01,1.1025D+00,1.7693D+00,0.0000D+00,0.0000D+00, - &2.0413D+00,1.9626D+00,1.8840D+00,1.8053D+00,1.7284D+00,1.6480D+00, - &1.5697D+00,1.4911D+00,1.4157D+00,1.3375D+00,1.2620D+00,1.1875D+00, - &1.1168D+00,1.0751D+00,1.0321D+00,9.8410D-01,9.3682D-01,8.9196D-01, - &8.4816D-01,8.1245D-01,7.7582D-01,7.3576D-01,6.9745D-01,6.6154D-01, - &6.2742D-01,6.0036D-01,5.7319D-01,5.4409D-01,5.1721D-01,4.9291D-01, - &4.7049D-01,4.5284D-01,4.3541D-01,4.1671D-01,3.9926D-01,3.8274D-01, - &3.6660D-01,3.5348D-01,3.4035D-01,3.2727D-01,3.1788D-01,3.1459D-01, - &3.1499D-01,3.1792D-01,3.2291D-01,3.2764D-01,3.3124D-01,3.3250D-01, - &3.3120D-01,3.2663D-01,3.1834D-01,3.0608D-01,2.8998D-01,2.7085D-01, - &2.5085D-01,3.3191D-01,3.3258D-01,3.3808D-01,3.5072D-01,3.7379D-01, - &4.1182D-01,4.7005D-01,5.6257D-01,7.1233D-01,9.7788D-01,1.5412D+00, - &0.0000D+00,0.0000D+00,2.6325D+00,2.5188D+00,2.4060D+00,2.2942D+00, - &2.1863D+00,2.0740D+00,1.9650D+00,1.8571D+00,1.7537D+00,1.6473D+00, - &1.5453D+00,1.4458D+00,1.3515D+00,1.2965D+00,1.2394D+00,1.1767D+00, - &1.1150D+00,1.0560D+00,9.9927D-01,9.5301D-01,9.0565D-01,8.5400D-01, - &8.0462D-01,7.5858D-01,7.1481D-01,6.7994D-01,6.4502D-01,6.0799D-01/ - DATA (XUDF_L(K),K= 913, 1026) / - &5.7349D-01,5.4206D-01,5.1299D-01,4.9028D-01,4.6789D-01,4.4387D-01, - &4.2168D-01,4.0096D-01,3.8070D-01,3.6457D-01,3.4857D-01,3.3249D-01, - &3.2026D-01,3.1503D-01,3.1326D-01,3.1423D-01,3.1703D-01,3.1974D-01, - &3.2120D-01,3.2086D-01,3.1799D-01,3.1221D-01,3.0315D-01,2.9072D-01, - &2.7522D-01,2.5796D-01,2.4114D-01,3.1079D-01,3.0956D-01,3.1267D-01, - &3.2223D-01,3.4089D-01,3.7246D-01,4.2134D-01,4.9853D-01,6.2305D-01, - &8.4191D-01,1.2983D+00,0.0000D+00,0.0000D+00,3.2997D+00,3.1427D+00, - &2.9900D+00,2.8374D+00,2.6927D+00,2.5421D+00,2.3973D+00,2.2549D+00, - &2.1191D+00,1.9809D+00,1.8488D+00,1.7209D+00,1.6001D+00,1.5300D+00, - &1.4576D+00,1.3771D+00,1.2999D+00,1.2268D+00,1.1551D+00,1.0975D+00, - &1.0385D+00,9.7437D-01,9.1327D-01,8.5649D-01,8.0236D-01,7.5952D-01, - &7.1667D-01,6.7091D-01,6.2847D-01,5.9005D-01,5.5422D-01,5.2636D-01, - &4.9890D-01,4.6976D-01,4.4269D-01,4.1752D-01,3.9377D-01,3.7477D-01, - &3.5594D-01,3.3710D-01,3.2226D-01,3.1511D-01,3.1131D-01,3.1067D-01, - &3.1132D-01,3.1227D-01,3.1198D-01,3.1021D-01,3.0606D-01,2.9926D-01, - &2.8958D-01,2.7716D-01,2.6233D-01,2.4655D-01,2.3275D-01,2.9229D-01, - &2.8941D-01,2.9061D-01,2.9753D-01,3.1273D-01,3.3909D-01,3.8034D-01, - &4.4548D-01,5.5028D-01,7.3256D-01,1.1074D+00,0.0000D+00,0.0000D+00, - &4.0557D+00,3.8486D+00,3.6460D+00,3.4480D+00,3.2579D+00,3.0626D+00/ - DATA (XUDF_L(K),K= 1027, 1140) / - &2.8756D+00,2.6929D+00,2.5196D+00,2.3441D+00,2.1778D+00,2.0170D+00, - &1.8670D+00,1.7797D+00,1.6902D+00,1.5909D+00,1.4960D+00,1.4058D+00, - &1.3191D+00,1.2484D+00,1.1764D+00,1.0991D+00,1.0253D+00,9.5689D-01, - &8.9197D-01,8.4046D-01,7.8904D-01,7.3442D-01,6.8367D-01,6.3780D-01, - &5.9520D-01,5.6218D-01,5.2934D-01,4.9500D-01,4.6300D-01,4.3370D-01, - &4.0611D-01,3.8431D-01,3.6284D-01,3.4121D-01,3.2389D-01,3.1494D-01, - &3.0926D-01,3.0697D-01,3.0594D-01,3.0501D-01,3.0330D-01,3.0019D-01, - &2.9492D-01,2.8734D-01,2.7718D-01,2.6476D-01,2.5057D-01,2.3646D-01, - &2.2503D-01,2.7558D-01,2.7132D-01,2.7089D-01,2.7569D-01,2.8794D-01, - &3.1000D-01,3.4491D-01,4.0016D-01,4.8886D-01,6.4191D-01,9.5232D-01, - &0.0000D+00,0.0000D+00,4.8799D+00,4.6116D+00,4.3560D+00,4.1035D+00, - &3.8608D+00,3.6163D+00,3.3822D+00,3.1557D+00,2.9412D+00,2.7247D+00, - &2.5209D+00,2.3248D+00,2.1421D+00,2.0368D+00,1.9287D+00,1.8094D+00, - &1.6955D+00,1.5877D+00,1.4841D+00,1.4003D+00,1.3154D+00,1.2237D+00, - &1.1368D+00,1.0563D+00,9.8015D-01,9.2005D-01,8.5978D-01,7.9615D-01, - &7.3715D-01,6.8369D-01,6.3441D-01,5.9609D-01,5.5830D-01,5.1865D-01, - &4.8192D-01,4.4872D-01,4.1747D-01,3.9300D-01,3.6895D-01,3.4483D-01, - &3.2508D-01,3.1459D-01,3.0709D-01,3.0328D-01,3.0056D-01,2.9840D-01, - &2.9543D-01,2.9107D-01,2.8485D-01,2.7655D-01,2.6610D-01,2.5368D-01/ - DATA (XUDF_L(K),K= 1141, 1254) / - &2.4019D-01,2.2736D-01,2.1837D-01,2.6080D-01,2.5542D-01,2.5362D-01, - &2.5693D-01,2.6661D-01,2.8505D-01,3.1490D-01,3.6226D-01,4.3798D-01, - &5.6769D-01,8.2836D-01,0.0000D+00,0.0000D+00,5.8340D+00,5.4940D+00, - &5.1700D+00,4.8532D+00,4.5515D+00,4.2463D+00,3.9559D+00,3.6752D+00, - &3.4138D+00,3.1496D+00,2.9022D+00,2.6648D+00,2.4450D+00,2.3189D+00, - &2.1896D+00,2.0476D+00,1.9120D+00,1.7843D+00,1.6621D+00,1.5639D+00, - &1.4648D+00,1.3569D+00,1.2556D+00,1.1618D+00,1.0734D+00,1.0037D+00, - &9.3416D-01,8.6065D-01,7.9257D-01,7.3145D-01,6.7463D-01,6.3082D-01, - &5.8786D-01,5.4262D-01,5.0118D-01,4.6374D-01,4.2883D-01,4.0146D-01, - &3.7490D-01,3.4814D-01,3.2612D-01,3.1397D-01,3.0482D-01,2.9958D-01, - &2.9536D-01,2.9178D-01,2.8756D-01,2.8208D-01,2.7504D-01,2.6611D-01, - &2.5539D-01,2.4319D-01,2.3031D-01,2.1877D-01,2.1195D-01,2.4673D-01, - &2.4036D-01,2.3746D-01,2.3912D-01,2.4677D-01,2.6223D-01,2.8748D-01, - &3.2792D-01,3.9255D-01,5.0271D-01,7.2095D-01,0.0000D+00,0.0000D+00, - &6.8578D+00,6.4388D+00,6.0380D+00,5.6501D+00,5.2825D+00,4.9103D+00, - &4.5613D+00,4.2230D+00,3.9070D+00,3.5911D+00,3.2966D+00,3.0156D+00, - &2.7567D+00,2.6078D+00,2.4563D+00,2.2905D+00,2.1319D+00,1.9837D+00, - &1.8421D+00,1.7287D+00,1.6141D+00,1.4902D+00,1.3730D+00,1.2663D+00, - &1.1652D+00,1.0858D+00,1.0067D+00,9.2337D-01,8.4648D-01,7.7710D-01/ - DATA (XUDF_L(K),K= 1255, 1368) / - &7.1333D-01,6.6392D-01,6.1566D-01,5.6531D-01,5.1904D-01,4.7761D-01, - &4.3908D-01,4.0927D-01,3.8022D-01,3.5109D-01,3.2686D-01,3.1318D-01, - &3.0244D-01,2.9602D-01,2.9031D-01,2.8538D-01,2.8024D-01,2.7382D-01, - &2.6607D-01,2.5668D-01,2.4571D-01,2.3364D-01,2.2155D-01,2.1116D-01, - &2.0617D-01,2.3421D-01,2.2704D-01,2.2320D-01,2.2366D-01,2.2952D-01, - &2.4241D-01,2.6402D-01,2.9884D-01,3.5437D-01,4.4860D-01,6.3331D-01, - &0.0000D+00,0.0000D+00,7.9784D+00,7.4673D+00,6.9820D+00,6.5121D+00, - &6.0712D+00,5.6250D+00,5.2080D+00,4.8065D+00,4.4309D+00,4.0590D+00, - &3.7131D+00,3.3843D+00,3.0816D+00,2.9094D+00,2.7332D+00,2.5420D+00, - &2.3595D+00,2.1895D+00,2.0271D+00,1.8966D+00,1.7658D+00,1.6248D+00, - &1.4933D+00,1.3718D+00,1.2579D+00,1.1683D+00,1.0795D+00,9.8589D-01, - &8.9996D-01,8.2253D-01,7.5153D-01,6.9648D-01,6.4287D-01,5.8736D-01, - &5.3655D-01,4.9109D-01,4.4891D-01,4.1655D-01,3.8518D-01,3.5367D-01, - &3.2738D-01,3.1221D-01,3.0006D-01,2.9246D-01,2.8544D-01,2.7940D-01, - &2.7319D-01,2.6601D-01,2.5763D-01,2.4782D-01,2.3676D-01,2.2486D-01, - &2.1329D-01,2.0405D-01,2.0083D-01,2.2267D-01,2.1489D-01,2.1027D-01, - &2.0967D-01,2.1409D-01,2.2473D-01,2.4320D-01,2.7316D-01,3.2113D-01, - &4.0209D-01,5.5899D-01,0.0000D+00,0.0000D+00,9.1575D+00,8.5458D+00, - &7.9700D+00,7.4123D+00,6.8876D+00,6.3653D+00,5.8736D+00,5.4042D+00/ - DATA (XUDF_L(K),K= 1369, 1482) / - &4.9684D+00,4.5359D+00,4.1366D+00,3.7576D+00,3.4110D+00,3.2138D+00, - &3.0122D+00,2.7943D+00,2.5871D+00,2.3944D+00,2.2102D+00,2.0646D+00, - &1.9163D+00,1.7581D+00,1.6109D+00,1.4753D+00,1.3483D+00,1.2486D+00, - &1.1500D+00,1.0462D+00,9.5130D-01,8.6585D-01,7.8770D-01,7.2741D-01, - &6.6891D-01,6.0781D-01,5.5266D-01,5.0342D-01,4.5788D-01,4.2322D-01, - &3.8960D-01,3.5594D-01,3.2768D-01,3.1125D-01,2.9779D-01,2.8890D-01, - &2.8091D-01,2.7385D-01,2.6670D-01,2.5886D-01,2.4989D-01,2.3976D-01, - &2.2861D-01,2.1703D-01,2.0604D-01,1.9777D-01,1.9598D-01,2.1238D-01, - &2.0408D-01,1.9879D-01,1.9735D-01,2.0048D-01,2.0933D-01,2.2523D-01, - &2.5120D-01,2.9296D-01,3.6305D-01,4.9711D-01,0.0000D+00,0.0000D+00, - &1.0956D+01,1.0188D+01,9.4660D+00,8.7704D+00,8.1209D+00,7.4727D+00, - &6.8721D+00,6.2972D+00,5.7646D+00,5.2434D+00,4.7595D+00,4.3051D+00, - &3.8911D+00,3.6559D+00,3.4174D+00,3.1598D+00,2.9153D+00,2.6889D+00, - &2.4732D+00,2.3031D+00,2.1311D+00,1.9475D+00,1.7771D+00,1.6202D+00, - &1.4748D+00,1.3609D+00,1.2481D+00,1.1301D+00,1.0222D+00,9.2549D-01, - &8.3728D-01,7.6947D-01,7.0373D-01,6.3561D-01,5.7438D-01,5.1959D-01, - &4.6984D-01,4.3187D-01,3.9529D-01,3.5864D-01,3.2783D-01,3.0967D-01, - &2.9444D-01,2.8428D-01,2.7469D-01,2.6638D-01,2.5813D-01,2.4942D-01, - &2.3986D-01,2.2937D-01,2.1819D-01,2.0682D-01,1.9665D-01,1.8966D-01/ - DATA (XUDF_L(K),K= 1483, 1596) / - &1.8971D-01,1.9926D-01,1.9036D-01,1.8442D-01,1.8192D-01,1.8362D-01, - &1.9037D-01,2.0318D-01,2.2459D-01,2.5904D-01,3.1665D-01,4.2407D-01, - &0.0000D+00,0.0000D+00,1.2798D+01,1.1861D+01,1.0986D+01,1.0144D+01, - &9.3643D+00,8.5887D+00,7.8706D+00,7.1866D+00,6.5568D+00,5.9419D+00, - &5.3754D+00,4.8419D+00,4.3593D+00,4.0864D+00,3.8109D+00,3.5127D+00, - &3.2315D+00,2.9714D+00,2.7252D+00,2.5309D+00,2.3356D+00,2.1269D+00, - &1.9338D+00,1.7578D+00,1.5939D+00,1.4656D+00,1.3394D+00,1.2075D+00, - &1.0875D+00,9.8023D-01,8.8256D-01,8.0772D-01,7.3533D-01,6.6054D-01, - &5.9364D-01,5.3423D-01,4.8009D-01,4.3930D-01,4.0003D-01,3.6079D-01, - &3.2768D-01,3.0809D-01,2.9130D-01,2.7993D-01,2.6898D-01,2.5976D-01, - &2.5062D-01,2.4123D-01,2.3116D-01,2.2040D-01,2.0917D-01,1.9814D-01, - &1.8865D-01,1.8272D-01,1.8428D-01,1.8820D-01,1.7883D-01,1.7238D-01, - &1.6914D-01,1.6979D-01,1.7482D-01,1.8534D-01,2.0325D-01,2.3214D-01, - &2.8022D-01,3.6659D-01,0.0000D+00,0.0000D+00,1.4900D+01,1.3767D+01, - &1.2708D+01,1.1700D+01,1.0766D+01,9.8403D+00,8.9832D+00,8.1757D+00, - &7.4366D+00,6.7121D+00,6.0486D+00,5.4300D+00,4.8704D+00,4.5555D+00, - &4.2371D+00,3.8955D+00,3.5734D+00,3.2760D+00,2.9952D+00,2.7738D+00, - &2.5528D+00,2.3175D+00,2.1001D+00,1.9012D+00,1.7176D+00,1.5750D+00, - &1.4344D+00,1.2880D+00,1.1547D+00,1.0364D+00,9.2859D-01,8.4652D-01/ - DATA (XUDF_L(K),K= 1597, 1710) / - &7.6723D-01,6.8578D-01,6.1255D-01,5.4848D-01,4.9034D-01,4.4649D-01, - &4.0456D-01,3.6275D-01,3.2738D-01,3.0624D-01,2.8805D-01,2.7544D-01, - &2.6343D-01,2.5315D-01,2.4318D-01,2.3314D-01,2.2263D-01,2.1166D-01, - &2.0051D-01,1.8983D-01,1.8102D-01,1.7610D-01,1.7901D-01,1.7764D-01, - &1.6791D-01,1.6102D-01,1.5715D-01,1.5684D-01,1.6056D-01,1.6899D-01, - &1.8376D-01,2.0786D-01,2.4776D-01,3.1470D-01,0.0000D+00,0.0000D+00, - &1.7212D+01,1.5853D+01,1.4590D+01,1.3390D+01,1.2283D+01,1.1191D+01, - &1.0185D+01,9.2395D+00,8.3762D+00,7.5315D+00,6.7670D+00,6.0503D+00, - &5.4086D+00,5.0481D+00,4.6843D+00,4.2940D+00,3.9280D+00,3.5917D+00, - &3.2752D+00,3.0252D+00,2.7768D+00,2.5132D+00,2.2690D+00,2.0490D+00, - &1.8445D+00,1.6857D+00,1.5301D+00,1.3685D+00,1.2219D+00,1.0920D+00, - &9.7438D-01,8.8478D-01,7.9825D-01,7.1007D-01,6.3111D-01,5.6196D-01, - &5.0016D-01,4.5321D-01,4.0867D-01,3.6435D-01,3.2686D-01,3.0431D-01, - &2.8470D-01,2.7109D-01,2.5789D-01,2.4674D-01,2.3605D-01,2.2547D-01, - &2.1459D-01,2.0348D-01,1.9237D-01,1.8201D-01,1.7376D-01,1.6982D-01, - &1.7398D-01,1.6789D-01,1.5795D-01,1.5065D-01,1.4630D-01,1.4521D-01, - &1.4773D-01,1.5443D-01,1.6659D-01,1.8664D-01,2.1966D-01,2.6878D-01, - &0.0000D+00,0.0000D+00,1.9526D+01,1.7951D+01,1.6470D+01,1.5074D+01, - &1.3790D+01,1.2527D+01,1.1370D+01,1.0282D+01,9.2958D+00,8.3330D+00/ - DATA (XUDF_L(K),K= 1711, 1824) / - &7.4603D+00,6.6536D+00,5.9285D+00,5.5219D+00,5.1141D+00,4.6768D+00, - &4.2681D+00,3.8926D+00,3.5402D+00,3.2626D+00,2.9882D+00,2.6963D+00, - &2.4284D+00,2.1851D+00,1.9619D+00,1.7885D+00,1.6187D+00,1.4429D+00, - &1.2838D+00,1.1431D+00,1.0159D+00,9.1924D-01,8.2663D-01,7.3180D-01, - &6.4793D-01,5.7429D-01,5.0828D-01,4.5904D-01,4.1215D-01,3.6558D-01, - &3.2620D-01,3.0238D-01,2.8167D-01,2.6700D-01,2.5302D-01,2.4098D-01, - &2.2975D-01,2.1873D-01,2.0756D-01,1.9633D-01,1.8532D-01,1.7533D-01, - &1.6763D-01,1.6450D-01,1.6959D-01,1.5953D-01,1.4943D-01,1.4185D-01, - &1.3716D-01,1.3545D-01,1.3705D-01,1.4238D-01,1.5258D-01,1.6945D-01, - &1.9705D-01,2.3049D-01,0.0000D+00,0.0000D+00,2.2141D+01,2.0286D+01, - &1.8570D+01,1.6948D+01,1.5466D+01,1.4010D+01,1.2679D+01,1.1431D+01, - &1.0303D+01,9.2106D+00,8.2239D+00,7.3077D+00,6.4926D+00,6.0348D+00, - &5.5765D+00,5.0879D+00,4.6321D+00,4.2138D+00,3.8233D+00,3.5162D+00, - &3.2122D+00,2.8907D+00,2.5960D+00,2.3300D+00,2.0856D+00,1.8954D+00, - &1.7110D+00,1.5199D+00,1.3476D+00,1.1955D+00,1.0584D+00,9.5478D-01, - &8.5531D-01,7.5417D-01,6.6439D-01,5.8623D-01,5.1682D-01,4.6468D-01, - &4.1541D-01,3.6662D-01,3.2538D-01,3.0035D-01,2.7843D-01,2.6291D-01, - &2.4798D-01,2.3522D-01,2.2346D-01,2.1203D-01,2.0062D-01,1.8935D-01, - &1.7843D-01,1.6874D-01,1.6163D-01,1.5920D-01,1.6520D-01,1.5147D-01/ - DATA (XUDF_L(K),K= 1825, 1836) / - &1.4120D-01,1.3349D-01,1.2844D-01,1.2620D-01,1.2701D-01,1.3118D-01, - &1.3954D-01,1.5369D-01,1.7631D-01,1.9416D-01,0.0000D+00,0.0000D+00/ - DATA (XSF_L(K),K= 1, 114) / - &8.9277D-03,9.2838D-03,9.6380D-03,9.9960D-03,1.0349D-02,1.0719D-02, - &1.1082D-02,1.1442D-02,1.1792D-02,1.2148D-02,1.2489D-02,1.2817D-02, - &1.3124D-02,1.3295D-02,1.3474D-02,1.3661D-02,1.3835D-02,1.3985D-02, - &1.4121D-02,1.4217D-02,1.4303D-02,1.4379D-02,1.4419D-02,1.4434D-02, - &1.4412D-02,1.4366D-02,1.4286D-02,1.4158D-02,1.3991D-02,1.3790D-02, - &1.3553D-02,1.3335D-02,1.3094D-02,1.2821D-02,1.2580D-02,1.2410D-02, - &1.2357D-02,1.2459D-02,1.2790D-02,1.3571D-02,1.5018D-02,1.6665D-02, - &1.9113D-02,2.1832D-02,2.5587D-02,2.9818D-02,3.4535D-02,3.9813D-02, - &4.5737D-02,5.2358D-02,5.9765D-02,6.8021D-02,7.7185D-02,8.7258D-02, - &9.8198D-02,1.1073D-01,1.4216D-01,1.8364D-01,2.3959D-01,3.1758D-01, - &4.3050D-01,6.0203D-01,8.8214D-01,1.3845D+00,2.4294D+00,5.2463D+00, - &1.8903D+01,0.0000D+00,1.4987D-02,1.5468D-02,1.5936D-02,1.6403D-02, - &1.6855D-02,1.7319D-02,1.7760D-02,1.8194D-02,1.8600D-02,1.9008D-02, - &1.9382D-02,1.9730D-02,2.0033D-02,2.0199D-02,2.0359D-02,2.0523D-02, - &2.0654D-02,2.0760D-02,2.0831D-02,2.0870D-02,2.0886D-02,2.0858D-02, - &2.0798D-02,2.0680D-02,2.0523D-02,2.0363D-02,2.0127D-02,1.9825D-02, - &1.9464D-02,1.9060D-02,1.8607D-02,1.8200D-02,1.7750D-02,1.7240D-02, - &1.6759D-02,1.6362D-02,1.6103D-02,1.6050D-02,1.6240D-02,1.6916D-02, - &1.8336D-02,2.0030D-02,2.2586D-02,2.5447D-02,2.9418D-02,3.3874D-02/ - DATA (XSF_L(K),K= 115, 228) / - &3.8821D-02,4.4375D-02,5.0509D-02,5.7343D-02,6.4974D-02,7.3385D-02, - &8.2640D-02,9.2732D-02,1.0354D-01,1.1667D-01,1.4809D-01,1.8910D-01, - &2.4387D-01,3.1940D-01,4.2764D-01,5.9054D-01,8.5228D-01,1.3150D+00, - &2.2623D+00,4.7596D+00,1.6445D+01,0.0000D+00,2.5010D-02,2.5616D-02, - &2.6180D-02,2.6758D-02,2.7279D-02,2.7792D-02,2.8274D-02,2.8729D-02, - &2.9134D-02,2.9513D-02,2.9836D-02,3.0110D-02,3.0324D-02,3.0417D-02, - &3.0492D-02,3.0537D-02,3.0551D-02,3.0517D-02,3.0432D-02,3.0326D-02, - &3.0181D-02,2.9954D-02,2.9663D-02,2.9316D-02,2.8913D-02,2.8508D-02, - &2.8021D-02,2.7422D-02,2.6741D-02,2.5997D-02,2.5204D-02,2.4500D-02, - &2.3734D-02,2.2858D-02,2.2019D-02,2.1281D-02,2.0698D-02,2.0402D-02, - &2.0365D-02,2.0844D-02,2.2137D-02,2.3807D-02,2.6404D-02,2.9338D-02, - &3.3433D-02,3.8036D-02,4.3135D-02,4.8799D-02,5.5061D-02,6.1999D-02, - &6.9633D-02,7.8024D-02,8.7156D-02,9.6998D-02,1.0742D-01,1.2099D-01, - &1.5162D-01,1.9121D-01,2.4363D-01,3.1510D-01,4.1638D-01,5.6669D-01, - &8.0557D-01,1.2216D+00,2.0572D+00,4.2084D+00,1.3911D+01,0.0000D+00, - &4.2554D-02,4.3210D-02,4.3820D-02,4.4379D-02,4.4862D-02,4.5317D-02, - &4.5708D-02,4.6037D-02,4.6300D-02,4.6434D-02,4.6540D-02,4.6530D-02, - &4.6426D-02,4.6317D-02,4.6155D-02,4.5919D-02,4.5622D-02,4.5267D-02, - &4.4833D-02,4.4425D-02,4.3932D-02,4.3298D-02,4.2582D-02,4.1785D-02/ - DATA (XSF_L(K),K= 229, 342) / - &4.0903D-02,4.0097D-02,3.9179D-02,3.8047D-02,3.6815D-02,3.5547D-02, - &3.4199D-02,3.3020D-02,3.1748D-02,3.0298D-02,2.8905D-02,2.7644D-02, - &2.6563D-02,2.5882D-02,2.5485D-02,2.5614D-02,2.6651D-02,2.8199D-02, - &3.0731D-02,3.3652D-02,3.7768D-02,4.2390D-02,4.7530D-02,5.3188D-02, - &5.9436D-02,6.6257D-02,7.3734D-02,8.1918D-02,9.0696D-02,1.0004D-01, - &1.0978D-01,1.2357D-01,1.5274D-01,1.8999D-01,2.3888D-01,3.0452D-01, - &3.9656D-01,5.3136D-01,7.4246D-01,1.1043D+00,1.8158D+00,3.6023D+00, - &0.0000D+00,0.0000D+00,7.3602D-02,7.4085D-02,7.4460D-02,7.4729D-02, - &7.4904D-02,7.4982D-02,7.4902D-02,7.4713D-02,7.4446D-02,7.3972D-02, - &7.3397D-02,7.2626D-02,7.1803D-02,7.1200D-02,7.0479D-02,6.9610D-02, - &6.8654D-02,6.7624D-02,6.6495D-02,6.5467D-02,6.4313D-02,6.2898D-02, - &6.1380D-02,5.9788D-02,5.8079D-02,5.6557D-02,5.4876D-02,5.2866D-02, - &5.0733D-02,4.8592D-02,4.6341D-02,4.4415D-02,4.2370D-02,4.0073D-02, - &3.7825D-02,3.5778D-02,3.3956D-02,3.2702D-02,3.1749D-02,3.1334D-02, - &3.1922D-02,3.3216D-02,3.5534D-02,3.8322D-02,4.2321D-02,4.6830D-02, - &5.1816D-02,5.7335D-02,6.3369D-02,6.9947D-02,7.7109D-02,8.4752D-02, - &9.2948D-02,1.0153D-01,1.1031D-01,1.2405D-01,1.5100D-01,1.8509D-01, - &2.2905D-01,2.8761D-01,3.6847D-01,4.8537D-01,6.6543D-01,9.6831D-01, - &1.5524D+00,2.9766D+00,0.0000D+00,0.0000D+00,1.1509D-01,1.1500D-01/ - DATA (XSF_L(K),K= 343, 456) / - &1.1474D-01,1.1430D-01,1.1371D-01,1.1292D-01,1.1196D-01,1.1079D-01, - &1.0948D-01,1.0791D-01,1.0620D-01,1.0426D-01,1.0215D-01,1.0076D-01, - &9.9224D-02,9.7466D-02,9.5472D-02,9.3507D-02,9.1346D-02,8.9460D-02, - &8.7382D-02,8.4914D-02,8.2326D-02,7.9663D-02,7.6874D-02,7.4459D-02, - &7.1794D-02,6.8694D-02,6.5489D-02,6.2266D-02,5.8964D-02,5.6164D-02, - &5.3226D-02,4.9916D-02,4.6721D-02,4.3794D-02,4.1128D-02,3.9225D-02, - &3.7654D-02,3.6613D-02,3.6666D-02,3.7626D-02,3.9655D-02,4.2227D-02, - &4.6000D-02,5.0288D-02,5.5044D-02,6.0308D-02,6.6020D-02,7.2218D-02, - &7.8943D-02,8.6079D-02,9.3611D-02,1.0141D-01,1.0925D-01,1.2274D-01, - &1.4748D-01,1.7840D-01,2.1791D-01,2.6997D-01,3.4109D-01,4.4280D-01, - &5.9706D-01,8.5325D-01,1.3371D+00,2.4909D+00,0.0000D+00,0.0000D+00, - &1.8131D-01,1.7986D-01,1.7802D-01,1.7597D-01,1.7372D-01,1.7110D-01, - &1.6825D-01,1.6515D-01,1.6187D-01,1.5820D-01,1.5428D-01,1.5016D-01, - &1.4582D-01,1.4314D-01,1.4017D-01,1.3677D-01,1.3315D-01,1.2951D-01, - &1.2571D-01,1.2248D-01,1.1891D-01,1.1472D-01,1.1045D-01,1.0615D-01, - &1.0173D-01,9.7944D-02,9.3854D-02,8.9131D-02,8.4347D-02,7.9597D-02, - &7.4799D-02,7.0788D-02,6.6599D-02,6.1932D-02,5.7438D-02,5.3307D-02, - &4.9546D-02,4.6816D-02,4.4417D-02,4.2536D-02,4.1862D-02,4.2361D-02, - &4.3960D-02,4.6198D-02,4.9612D-02,5.3553D-02,5.7974D-02,6.2830D-02/ - DATA (XSF_L(K),K= 457, 570) / - &6.8141D-02,7.3865D-02,7.9970D-02,8.6422D-02,9.3160D-02,1.0006D-01, - &1.0685D-01,1.1989D-01,1.4199D-01,1.6937D-01,2.0407D-01,2.4925D-01, - &3.1029D-01,3.9635D-01,5.2529D-01,7.3579D-01,1.1263D+00,2.0347D+00, - &0.0000D+00,0.0000D+00,2.6278D-01,2.5883D-01,2.5460D-01,2.5007D-01, - &2.4526D-01,2.3995D-01,2.3437D-01,2.2848D-01,2.2242D-01,2.1578D-01, - &2.0894D-01,2.0181D-01,1.9465D-01,1.9018D-01,1.8540D-01,1.7984D-01, - &1.7415D-01,1.6846D-01,1.6261D-01,1.5768D-01,1.5234D-01,1.4615D-01, - &1.3987D-01,1.3368D-01,1.2736D-01,1.2199D-01,1.1628D-01,1.0975D-01, - &1.0321D-01,9.6788D-02,9.0380D-02,8.5059D-02,7.9532D-02,7.3436D-02, - &6.7594D-02,6.2243D-02,5.7363D-02,5.3720D-02,5.0502D-02,4.7772D-02, - &4.6346D-02,4.6358D-02,4.7497D-02,4.9377D-02,5.2401D-02,5.5965D-02, - &6.0009D-02,6.4489D-02,6.9334D-02,7.4546D-02,8.0117D-02,8.5936D-02, - &9.1972D-02,9.8056D-02,1.0398D-01,1.1644D-01,1.3628D-01,1.6068D-01, - &1.9127D-01,2.3085D-01,2.8377D-01,3.5756D-01,4.6698D-01,6.4315D-01, - &9.6485D-01,1.6969D+00,0.0000D+00,0.0000D+00,3.6944D-01,3.6187D-01, - &3.5380D-01,3.4525D-01,3.3659D-01,3.2716D-01,3.1761D-01,3.0767D-01, - &2.9759D-01,2.8675D-01,2.7586D-01,2.6462D-01,2.5339D-01,2.4660D-01, - &2.3933D-01,2.3101D-01,2.2257D-01,2.1415D-01,2.0571D-01,1.9854D-01, - &1.9083D-01,1.8216D-01,1.7338D-01,1.6480D-01,1.5613D-01,1.4885D-01/ - DATA (XSF_L(K),K= 571, 684) / - &1.4115D-01,1.3244D-01,1.2380D-01,1.1542D-01,1.0713D-01,1.0031D-01, - &9.3226D-02,8.5515D-02,7.8171D-02,7.1449D-02,6.5307D-02,6.0723D-02, - &5.6523D-02,5.2878D-02,5.0622D-02,5.0109D-02,5.0720D-02,5.2187D-02, - &5.4770D-02,5.7950D-02,6.1582D-02,6.5595D-02,6.9997D-02,7.4716D-02, - &7.9677D-02,8.4886D-02,9.0221D-02,9.5543D-02,1.0065D-01,1.1245D-01, - &1.3012D-01,1.5166D-01,1.7859D-01,2.1305D-01,2.5881D-01,3.2188D-01, - &4.1454D-01,5.6186D-01,8.2718D-01,1.4188D+00,0.0000D+00,0.0000D+00, - &4.9195D-01,4.7916D-01,4.6620D-01,4.5277D-01,4.3908D-01,4.2463D-01, - &4.0985D-01,3.9491D-01,3.7975D-01,3.6377D-01,3.4790D-01,3.3178D-01, - &3.1592D-01,3.0640D-01,2.9622D-01,2.8462D-01,2.7303D-01,2.6160D-01, - &2.5012D-01,2.4047D-01,2.3023D-01,2.1867D-01,2.0717D-01,1.9597D-01, - &1.8477D-01,1.7546D-01,1.6568D-01,1.5468D-01,1.4387D-01,1.3343D-01, - &1.2319D-01,1.1482D-01,1.0622D-01,9.6828D-02,8.7978D-02,7.9884D-02, - &7.2526D-02,6.6973D-02,6.1948D-02,5.7359D-02,5.4304D-02,5.3263D-02, - &5.3381D-02,5.4456D-02,5.6601D-02,5.9380D-02,6.2613D-02,6.6252D-02, - &7.0174D-02,7.4432D-02,7.8943D-02,8.3559D-02,8.8282D-02,9.2963D-02, - &9.7382D-02,1.0858D-01,1.2441D-01,1.4363D-01,1.6745D-01,1.9778D-01, - &2.3771D-01,2.9246D-01,3.7200D-01,4.9738D-01,7.2010D-01,1.2083D+00, - &0.0000D+00,0.0000D+00,6.4521D-01,6.2534D-01,6.0540D-01,5.8499D-01/ - DATA (XSF_L(K),K= 685, 798) / - &5.6467D-01,5.4301D-01,5.2143D-01,4.9951D-01,4.7813D-01,4.5538D-01, - &4.3325D-01,4.1083D-01,3.8899D-01,3.7591D-01,3.6210D-01,3.4648D-01, - &3.3091D-01,3.1578D-01,3.0062D-01,2.8797D-01,2.7469D-01,2.5979D-01, - &2.4501D-01,2.3066D-01,2.1649D-01,2.0481D-01,1.9252D-01,1.7884D-01, - &1.6549D-01,1.5274D-01,1.4029D-01,1.3018D-01,1.1985D-01,1.0865D-01, - &9.8135D-02,8.8550D-02,7.9829D-02,7.3318D-02,6.7269D-02,6.1748D-02, - &5.7838D-02,5.6250D-02,5.5826D-02,5.6474D-02,5.8181D-02,6.0533D-02, - &6.3373D-02,6.6563D-02,7.0085D-02,7.3865D-02,7.7842D-02,8.1937D-02, - &8.6092D-02,9.0169D-02,9.3962D-02,1.0448D-01,1.1858D-01,1.3561D-01, - &1.5663D-01,1.8318D-01,2.1803D-01,2.6529D-01,3.3349D-01,4.3985D-01, - &6.2661D-01,1.0291D+00,0.0000D+00,0.0000D+00,8.2462D-01,7.9558D-01, - &7.6680D-01,7.3764D-01,7.0860D-01,6.7834D-01,6.4822D-01,6.1798D-01, - &5.8880D-01,5.5792D-01,5.2800D-01,4.9801D-01,4.6912D-01,4.5197D-01, - &4.3393D-01,4.1360D-01,3.9348D-01,3.7394D-01,3.5462D-01,3.3856D-01, - &3.2180D-01,3.0303D-01,2.8460D-01,2.6681D-01,2.4932D-01,2.3502D-01, - &2.2005D-01,2.0359D-01,1.8747D-01,1.7224D-01,1.5746D-01,1.4551D-01, - &1.3337D-01,1.2028D-01,1.0805D-01,9.6986D-02,8.6877D-02,7.9334D-02, - &7.2326D-02,6.5799D-02,6.1060D-02,5.8911D-02,5.7957D-02,5.8189D-02, - &5.9441D-02,6.1387D-02,6.3834D-02,6.6632D-02,6.9732D-02,7.3070D-02/ - DATA (XSF_L(K),K= 799, 912) / - &7.6595D-02,8.0190D-02,8.3816D-02,8.7358D-02,9.0631D-02,1.0046D-01, - &1.1304D-01,1.2815D-01,1.4670D-01,1.7006D-01,2.0049D-01,2.4154D-01, - &3.0039D-01,3.9121D-01,5.4894D-01,8.8378D-01,0.0000D+00,0.0000D+00, - &1.0199D+00,9.8025D-01,9.4100D-01,9.0151D-01,8.6283D-01,8.2243D-01, - &7.8262D-01,7.4321D-01,7.0465D-01,6.6494D-01,6.2647D-01,5.8811D-01, - &5.5152D-01,5.2985D-01,5.0721D-01,4.8183D-01,4.5681D-01,4.3274D-01, - &4.0883D-01,3.8916D-01,3.6878D-01,3.4589D-01,3.2366D-01,3.0238D-01, - &2.8152D-01,2.6437D-01,2.4685D-01,2.2733D-01,2.0858D-01,1.9085D-01, - &1.7375D-01,1.6000D-01,1.4607D-01,1.3115D-01,1.1722D-01,1.0469D-01, - &9.3284D-02,8.4739D-02,7.6803D-02,6.9420D-02,6.3844D-02,6.1178D-02, - &5.9720D-02,5.9561D-02,6.0398D-02,6.1984D-02,6.4051D-02,6.6494D-02, - &6.9202D-02,7.2161D-02,7.5274D-02,7.8453D-02,8.1651D-02,8.4728D-02, - &8.7564D-02,9.6777D-02,1.0806D-01,1.2157D-01,1.3806D-01,1.5882D-01, - &1.8566D-01,2.2170D-01,2.7301D-01,3.5168D-01,4.8696D-01,7.7010D-01, - &0.0000D+00,0.0000D+00,1.3158D+00,1.2585D+00,1.2024D+00,1.1462D+00, - &1.0919D+00,1.0352D+00,9.8042D-01,9.2608D-01,8.7345D-01,8.1987D-01, - &7.6814D-01,7.1724D-01,6.6882D-01,6.4053D-01,6.1093D-01,5.7796D-01, - &5.4572D-01,5.1470D-01,4.8433D-01,4.5934D-01,4.3358D-01,4.0495D-01, - &3.7717D-01,3.5082D-01,3.2513D-01,3.0408D-01,2.8258D-01,2.5918D-01/ - DATA (XSF_L(K),K= 913, 1026) / - &2.3648D-01,2.1538D-01,1.9510D-01,1.7888D-01,1.6255D-01,1.4508D-01, - &1.2895D-01,1.1443D-01,1.0131D-01,9.1507D-02,8.2387D-02,7.3778D-02, - &6.7147D-02,6.3813D-02,6.1721D-02,6.1065D-02,6.1373D-02,6.2475D-02, - &6.4105D-02,6.6079D-02,6.8362D-02,7.0856D-02,7.3440D-02,7.6143D-02, - &7.8812D-02,8.1388D-02,8.3726D-02,9.2167D-02,1.0190D-01,1.1355D-01, - &1.2780D-01,1.4554D-01,1.6841D-01,1.9900D-01,2.4223D-01,3.0775D-01, - &4.1920D-01,6.4849D-01,0.0000D+00,0.0000D+00,1.6483D+00,1.5703D+00, - &1.4940D+00,1.4180D+00,1.3449D+00,1.2694D+00,1.1966D+00,1.1250D+00, - &1.0566D+00,9.8644D-01,9.1985D-01,8.5482D-01,7.9312D-01,7.5722D-01, - &7.1986D-01,6.7849D-01,6.3821D-01,5.9972D-01,5.6214D-01,5.3143D-01, - &4.9987D-01,4.6500D-01,4.3136D-01,3.9956D-01,3.6875D-01,3.4379D-01, - &3.1832D-01,2.9044D-01,2.6397D-01,2.3923D-01,2.1580D-01,1.9706D-01, - &1.7829D-01,1.5838D-01,1.3999D-01,1.2356D-01,1.0875D-01,9.7664D-02, - &8.7392D-02,7.7645D-02,7.0035D-02,6.6062D-02,6.3365D-02,6.2239D-02, - &6.2062D-02,6.2731D-02,6.3942D-02,6.5526D-02,6.7390D-02,6.9436D-02, - &7.1635D-02,7.3891D-02,7.6122D-02,7.8246D-02,8.0196D-02,8.7884D-02, - &9.6357D-02,1.0648D-01,1.1880D-01,1.3413D-01,1.5386D-01,1.7993D-01, - &2.1655D-01,2.7189D-01,3.6486D-01,5.5332D-01,0.0000D+00,0.0000D+00, - &2.0271D+00,1.9234D+00,1.8224D+00,1.7226D+00,1.6272D+00,1.5293D+00/ - DATA (XSF_L(K),K= 1027, 1140) / - &1.4356D+00,1.3438D+00,1.2568D+00,1.1682D+00,1.0841D+00,1.0026D+00, - &9.2625D-01,8.8207D-01,8.3568D-01,7.8523D-01,7.3607D-01,6.8926D-01, - &6.4385D-01,6.0685D-01,5.6892D-01,5.2730D-01,4.8731D-01,4.4961D-01, - &4.1331D-01,3.8417D-01,3.5441D-01,3.2210D-01,2.9168D-01,2.6323D-01, - &2.3631D-01,2.1500D-01,1.9374D-01,1.7129D-01,1.5067D-01,1.3231D-01, - &1.1579D-01,1.0349D-01,9.2080D-02,8.1205D-02,7.2626D-02,6.8039D-02, - &6.4761D-02,6.3188D-02,6.2549D-02,6.2795D-02,6.3617D-02,6.4835D-02, - &6.6329D-02,6.8017D-02,6.9809D-02,7.1667D-02,7.3520D-02,7.5270D-02, - &7.6864D-02,8.3899D-02,9.1206D-02,1.0002D-01,1.1070D-01,1.2399D-01, - &1.4094D-01,1.6341D-01,1.9474D-01,2.4163D-01,3.1971D-01,4.7587D-01, - &0.0000D+00,0.0000D+00,2.4392D+00,2.3049D+00,2.1760D+00,2.0502D+00, - &1.9296D+00,1.8065D+00,1.6895D+00,1.5750D+00,1.4674D+00,1.3585D+00, - &1.2554D+00,1.1565D+00,1.0638D+00,1.0103D+00,9.5527D-01,8.9449D-01, - &8.3572D-01,7.8018D-01,7.2635D-01,6.8280D-01,6.3819D-01,5.8948D-01, - &5.4299D-01,4.9923D-01,4.5740D-01,4.2371D-01,3.8978D-01,3.5296D-01, - &3.1832D-01,2.8629D-01,2.5599D-01,2.3212D-01,2.0840D-01,1.8346D-01, - &1.6065D-01,1.4043D-01,1.2229D-01,1.0880D-01,9.6294D-02,8.4335D-02, - &7.4905D-02,6.9717D-02,6.5897D-02,6.3914D-02,6.2851D-02,6.2731D-02, - &6.3183D-02,6.4075D-02,6.5225D-02,6.6597D-02,6.8048D-02,6.9577D-02/ - DATA (XSF_L(K),K= 1141, 1254) / - &7.1093D-02,7.2525D-02,7.3842D-02,8.0241D-02,8.6615D-02,9.4292D-02, - &1.0360D-01,1.1517D-01,1.2992D-01,1.4936D-01,1.7633D-01,2.1652D-01, - &2.8294D-01,4.1389D-01,0.0000D+00,0.0000D+00,2.9162D+00,2.7470D+00, - &2.5840D+00,2.4244D+00,2.2743D+00,2.1215D+00,1.9764D+00,1.8358D+00, - &1.7035D+00,1.5708D+00,1.4463D+00,1.3268D+00,1.2152D+00,1.1514D+00, - &1.0857D+00,1.0132D+00,9.4449D-01,8.7867D-01,8.1556D-01,7.6453D-01, - &7.1252D-01,6.5602D-01,6.0218D-01,5.5192D-01,5.0387D-01,4.6545D-01, - &4.2679D-01,3.8521D-01,3.4602D-01,3.1005D-01,2.7623D-01,2.4962D-01, - &2.2332D-01,1.9577D-01,1.7070D-01,1.4856D-01,1.2874D-01,1.1402D-01, - &1.0040D-01,8.7343D-02,7.6984D-02,7.1254D-02,6.6892D-02,6.4508D-02, - &6.3019D-02,6.2518D-02,6.2667D-02,6.3211D-02,6.4031D-02,6.5064D-02, - &6.6243D-02,6.7458D-02,6.8679D-02,6.9830D-02,7.0885D-02,7.6672D-02, - &8.2192D-02,8.8844D-02,9.6930D-02,1.0696D-01,1.1972D-01,1.3654D-01, - &1.5978D-01,1.9411D-01,2.5048D-01,3.6023D-01,0.0000D+00,0.0000D+00, - &3.4281D+00,3.2194D+00,3.0180D+00,2.8239D+00,2.6400D+00,2.4537D+00, - &2.2781D+00,2.1087D+00,1.9503D+00,1.7915D+00,1.6433D+00,1.5021D+00, - &1.3711D+00,1.2958D+00,1.2191D+00,1.1350D+00,1.0536D+00,9.7846D-01, - &9.0526D-01,8.4668D-01,7.8697D-01,7.2243D-01,6.6110D-01,6.0402D-01, - &5.4971D-01,5.0652D-01,4.6307D-01,4.1647D-01,3.7287D-01,3.3288D-01/ - DATA (XSF_L(K),K= 1255, 1368) / - &2.9545D-01,2.6636D-01,2.3751D-01,2.0740D-01,1.8012D-01,1.5611D-01, - &1.3467D-01,1.1881D-01,1.0414D-01,9.0105D-02,7.8839D-02,7.2563D-02, - &6.7703D-02,6.4930D-02,6.3070D-02,6.2241D-02,6.2071D-02,6.2347D-02, - &6.2882D-02,6.3645D-02,6.4526D-02,6.5473D-02,6.6427D-02,6.7333D-02, - &6.8194D-02,7.3430D-02,7.8217D-02,8.3974D-02,9.1017D-02,9.9745D-02, - &1.1088D-01,1.2552D-01,1.4563D-01,1.7528D-01,2.2351D-01,3.1636D-01, - &0.0000D+00,0.0000D+00,3.9892D+00,3.7328D+00,3.4900D+00,3.2549D+00, - &3.0344D+00,2.8108D+00,2.6014D+00,2.4001D+00,2.2123D+00,2.0253D+00, - &1.8518D+00,1.6860D+00,1.5339D+00,1.4463D+00,1.3575D+00,1.2608D+00, - &1.1678D+00,1.0809D+00,9.9767D-01,9.3087D-01,8.6314D-01,7.8996D-01, - &7.2083D-01,6.5671D-01,5.9602D-01,5.4775D-01,4.9935D-01,4.4773D-01, - &3.9951D-01,3.5571D-01,3.1467D-01,2.8272D-01,2.5135D-01,2.1871D-01, - &1.8923D-01,1.6331D-01,1.4031D-01,1.2332D-01,1.0762D-01,9.2560D-02, - &8.0473D-02,7.3714D-02,6.8385D-02,6.5246D-02,6.3019D-02,6.1878D-02, - &6.1420D-02,6.1413D-02,6.1734D-02,6.2226D-02,6.2861D-02,6.3564D-02, - &6.4288D-02,6.4985D-02,6.5657D-02,7.0367D-02,7.4522D-02,7.9506D-02, - &8.5651D-02,9.3297D-02,1.0298D-01,1.1572D-01,1.3323D-01,1.5884D-01, - &2.0039D-01,2.7925D-01,0.0000D+00,0.0000D+00,4.5788D+00,4.2729D+00, - &3.9840D+00,3.7039D+00,3.4438D+00,3.1812D+00,2.9349D+00,2.6996D+00/ - DATA (XSF_L(K),K= 1369, 1482) / - &2.4810D+00,2.2644D+00,2.0633D+00,1.8732D+00,1.6979D+00,1.5988D+00, - &1.4974D+00,1.3865D+00,1.2812D+00,1.1834D+00,1.0891D+00,1.0143D+00, - &9.3839D-01,8.5662D-01,7.7948D-01,7.0838D-01,6.4106D-01,5.8780D-01, - &5.3454D-01,4.7781D-01,4.2528D-01,3.7737D-01,3.3289D-01,2.9818D-01, - &2.6446D-01,2.2932D-01,1.9770D-01,1.7005D-01,1.4552D-01,1.2746D-01, - &1.1078D-01,9.4770D-02,8.1957D-02,7.4689D-02,6.8915D-02,6.5457D-02, - &6.2902D-02,6.1493D-02,6.0768D-02,6.0515D-02,6.0585D-02,6.0863D-02, - &6.1298D-02,6.1789D-02,6.2311D-02,6.2835D-02,6.3340D-02,6.7601D-02, - &7.1162D-02,7.5516D-02,8.0878D-02,8.7566D-02,9.6095D-02,1.0725D-01, - &1.2258D-01,1.4495D-01,1.8090D-01,2.4841D-01,0.0000D+00,0.0000D+00, - &5.4774D+00,5.0929D+00,4.7320D+00,4.3841D+00,4.0592D+00,3.7350D+00, - &3.4329D+00,3.1454D+00,2.8799D+00,2.6172D+00,2.3747D+00,2.1466D+00, - &1.9383D+00,1.8195D+00,1.6996D+00,1.5689D+00,1.4457D+00,1.3301D+00, - &1.2211D+00,1.1339D+00,1.0456D+00,9.5119D-01,8.6259D-01,7.8097D-01, - &7.0419D-01,6.4380D-01,5.8358D-01,5.1955D-01,4.6051D-01,4.0719D-01, - &3.5768D-01,3.1962D-01,2.8220D-01,2.4360D-01,2.0909D-01,1.7895D-01, - &1.5240D-01,1.3282D-01,1.1484D-01,9.7655D-02,8.3739D-02,7.5857D-02, - &6.9509D-02,6.5616D-02,6.2633D-02,6.0853D-02,5.9819D-02,5.9271D-02, - &5.9038D-02,5.9046D-02,5.9192D-02,5.9432D-02,5.9709D-02,6.0008D-02/ - DATA (XSF_L(K),K= 1483, 1596) / - &6.0340D-02,6.4032D-02,6.6851D-02,7.0446D-02,7.4870D-02,8.0457D-02, - &8.7554D-02,9.6862D-02,1.0964D-01,1.2821D-01,1.5779D-01,2.1189D-01, - &0.0000D+00,0.0000D+00,6.3982D+00,5.9307D+00,5.4920D+00,5.0710D+00, - &4.6822D+00,4.2915D+00,3.9337D+00,3.5898D+00,3.2756D+00,2.9660D+00, - &2.6817D+00,2.4150D+00,2.1724D+00,2.0348D+00,1.8961D+00,1.7457D+00, - &1.6034D+00,1.4714D+00,1.3471D+00,1.2473D+00,1.1476D+00,1.0408D+00, - &9.4083D-01,8.4932D-01,7.6350D-01,6.9606D-01,6.2897D-01,5.5833D-01, - &4.9315D-01,4.3444D-01,3.8044D-01,3.3861D-01,2.9817D-01,2.5642D-01, - &2.1917D-01,1.8685D-01,1.5838D-01,1.3752D-01,1.1831D-01,9.9987D-02, - &8.5224D-02,7.6762D-02,6.9910D-02,6.5655D-02,6.2297D-02,6.0213D-02, - &5.8897D-02,5.8096D-02,5.7624D-02,5.7400D-02,5.7322D-02,5.7351D-02, - &5.7432D-02,5.7560D-02,5.7758D-02,6.0939D-02,6.3212D-02,6.6167D-02, - &6.9884D-02,7.4560D-02,8.0552D-02,8.8432D-02,9.9242D-02,1.1491D-01, - &1.3966D-01,1.8320D-01,0.0000D+00,0.0000D+00,7.4490D+00,6.8826D+00, - &6.3540D+00,5.8477D+00,5.3805D+00,4.9187D+00,4.4884D+00,4.0843D+00, - &3.7147D+00,3.3516D+00,3.0193D+00,2.7088D+00,2.4279D+00,2.2696D+00, - &2.1091D+00,1.9368D+00,1.7739D+00,1.6237D+00,1.4821D+00,1.3692D+00, - &1.2557D+00,1.1358D+00,1.0238D+00,9.2133D-01,8.2567D-01,7.5070D-01, - &6.7656D-01,5.9850D-01,5.2688D-01,4.6263D-01,4.0371D-01,3.5842D-01/ - DATA (XSF_L(K),K= 1597, 1710) / - &3.1427D-01,2.6933D-01,2.2930D-01,1.9466D-01,1.6427D-01,1.4208D-01, - &1.2168D-01,1.0226D-01,8.6560D-02,7.7553D-02,7.0202D-02,6.5576D-02, - &6.1860D-02,5.9487D-02,5.7920D-02,5.6852D-02,5.6166D-02,5.5736D-02, - &5.5458D-02,5.5289D-02,5.5193D-02,5.5163D-02,5.5243D-02,5.7935D-02, - &5.9740D-02,6.2111D-02,6.5158D-02,6.9050D-02,7.4078D-02,8.0683D-02, - &8.9776D-02,1.0288D-01,1.2351D-01,1.5725D-01,0.0000D+00,0.0000D+00, - &8.6044D+00,7.9255D+00,7.2940D+00,6.6940D+00,6.1391D+00,5.5940D+00, - &5.0907D+00,4.6180D+00,4.1841D+00,3.7622D+00,3.3775D+00,3.0195D+00, - &2.6967D+00,2.5153D+00,2.3331D+00,2.1364D+00,1.9521D+00,1.7815D+00, - &1.6211D+00,1.4944D+00,1.3683D+00,1.2334D+00,1.1084D+00,9.9465D-01, - &8.8864D-01,8.0585D-01,7.2432D-01,6.3866D-01,5.6038D-01,4.9058D-01, - &4.2648D-01,3.7768D-01,3.3036D-01,2.8189D-01,2.3907D-01,2.0214D-01, - &1.6987D-01,1.4635D-01,1.2479D-01,1.0428D-01,8.7748D-02,7.8203D-02, - &7.0386D-02,6.5431D-02,6.1373D-02,5.8719D-02,5.6916D-02,5.5642D-02, - &5.4751D-02,5.4118D-02,5.3653D-02,5.3314D-02,5.3067D-02,5.2897D-02, - &5.2861D-02,5.5140D-02,5.6493D-02,5.8378D-02,6.0860D-02,6.4090D-02, - &6.8261D-02,7.3828D-02,8.1439D-02,9.2423D-02,1.0952D-01,1.3424D-01, - &0.0000D+00,0.0000D+00,9.7645D+00,8.9701D+00,8.2340D+00,7.5357D+00, - &6.8926D+00,6.2607D+00,5.6834D+00,5.1374D+00,4.6459D+00,4.1625D+00/ - DATA (XSF_L(K),K= 1711, 1824) / - &3.7261D+00,3.3206D+00,2.9567D+00,2.7529D+00,2.5476D+00,2.3274D+00, - &2.1217D+00,1.9320D+00,1.7541D+00,1.6131D+00,1.4740D+00,1.3257D+00, - &1.1879D+00,1.0631D+00,9.4732D-01,8.5726D-01,7.6844D-01,6.7586D-01, - &5.9131D-01,5.1597D-01,4.4748D-01,3.9504D-01,3.4470D-01,2.9317D-01, - &2.4779D-01,2.0880D-01,1.7478D-01,1.5007D-01,1.2748D-01,1.0600D-01, - &8.8713D-02,7.8704D-02,7.0472D-02,6.5220D-02,6.0885D-02,5.7993D-02, - &5.5967D-02,5.4536D-02,5.3470D-02,5.2665D-02,5.2054D-02,5.1577D-02, - &5.1203D-02,5.0930D-02,5.0809D-02,5.2731D-02,5.3716D-02,5.5192D-02, - &5.7203D-02,5.9902D-02,6.3412D-02,6.8123D-02,7.4602D-02,8.3905D-02, - &9.8185D-02,1.1515D-01,0.0000D+00,0.0000D+00,1.1069D+01,1.0141D+01, - &9.2840D+00,8.4741D+00,7.7316D+00,7.0038D+00,6.3364D+00,5.7137D+00, - &5.1475D+00,4.6031D+00,4.1059D+00,3.6477D+00,3.2381D+00,3.0086D+00, - &2.7788D+00,2.5333D+00,2.3033D+00,2.0926D+00,1.8951D+00,1.7404D+00, - &1.5854D+00,1.4229D+00,1.2715D+00,1.1352D+00,1.0089D+00,9.1089D-01, - &8.1457D-01,7.1424D-01,6.2332D-01,5.4229D-01,4.6872D-01,4.1295D-01, - &3.5903D-01,3.0454D-01,2.5654D-01,2.1539D-01,1.7965D-01,1.5373D-01, - &1.3011D-01,1.0766D-01,8.9530D-02,7.9108D-02,7.0483D-02,6.4943D-02, - &6.0331D-02,5.7203D-02,5.4990D-02,5.3395D-02,5.2144D-02,5.1206D-02, - &5.0454D-02,4.9840D-02,4.9351D-02,4.8978D-02,4.8801D-02,5.0351D-02/ - DATA (XSF_L(K),K= 1825, 1836) / - &5.1017D-02,5.2127D-02,5.3737D-02,5.5934D-02,5.8835D-02,6.2800D-02, - &6.8260D-02,7.6135D-02,8.7873D-02,0.0000D+00,0.0000D+00,0.0000D+00/ - DATA (XGF_L(K),K= 1, 114) / - &1.0646D+00,1.0934D+00,1.1214D+00,1.1484D+00,1.1741D+00,1.1999D+00, - &1.2242D+00,1.2466D+00,1.2676D+00,1.2873D+00,1.3042D+00,1.3194D+00, - &1.3313D+00,1.3376D+00,1.3430D+00,1.3472D+00,1.3502D+00,1.3504D+00, - &1.3501D+00,1.3478D+00,1.3430D+00,1.3356D+00,1.3267D+00,1.3149D+00, - &1.3003D+00,1.2857D+00,1.2680D+00,1.2451D+00,1.2189D+00,1.1899D+00, - &1.1575D+00,1.1282D+00,1.0947D+00,1.0543D+00,1.0121D+00,9.6983D-01, - &9.2809D-01,8.9556D-01,8.6663D-01,8.4606D-01,8.4971D-01,8.7714D-01, - &9.3569D-01,1.0140D+00,1.1325D+00,1.2706D+00,1.4268D+00,1.6005D+00, - &1.7918D+00,2.0014D+00,2.2301D+00,2.4791D+00,2.7490D+00,3.0404D+00, - &3.3541D+00,3.5718D+00,4.2579D+00,5.0478D+00,5.9674D+00,7.0458D+00, - &8.3375D+00,9.9284D+00,1.1949D+01,1.4650D+01,1.8560D+01,2.5096D+01, - &4.0067D+01,0.0000D+00,1.6404D+00,1.6723D+00,1.7014D+00,1.7287D+00, - &1.7533D+00,1.7768D+00,1.7973D+00,1.8152D+00,1.8297D+00,1.8417D+00, - &1.8498D+00,1.8540D+00,1.8544D+00,1.8526D+00,1.8489D+00,1.8424D+00, - &1.8335D+00,1.8221D+00,1.8091D+00,1.7949D+00,1.7784D+00,1.7555D+00, - &1.7310D+00,1.7034D+00,1.6713D+00,1.6428D+00,1.6093D+00,1.5680D+00, - &1.5230D+00,1.4754D+00,1.4241D+00,1.3785D+00,1.3278D+00,1.2681D+00, - &1.2068D+00,1.1462D+00,1.0867D+00,1.0400D+00,9.9665D-01,9.6041D-01, - &9.4923D-01,9.6563D-01,1.0117D+00,1.0781D+00,1.1816D+00,1.3028D+00/ - DATA (XGF_L(K),K= 115, 228) / - &1.4397D+00,1.5912D+00,1.7573D+00,1.9376D+00,2.1326D+00,2.3425D+00, - &2.5677D+00,2.8078D+00,3.0611D+00,3.2398D+00,3.7904D+00,4.4126D+00, - &5.1162D+00,5.9322D+00,6.8841D+00,8.0278D+00,9.4403D+00,1.1276D+01, - &1.3844D+01,1.7948D+01,2.6821D+01,0.0000D+00,2.5295D+00,2.5563D+00, - &2.5800D+00,2.5995D+00,2.6174D+00,2.6286D+00,2.6363D+00,2.6395D+00, - &2.6379D+00,2.6306D+00,2.6184D+00,2.6000D+00,2.5768D+00,2.5598D+00, - &2.5397D+00,2.5137D+00,2.4839D+00,2.4516D+00,2.4161D+00,2.3833D+00, - &2.3459D+00,2.3000D+00,2.2499D+00,2.1966D+00,2.1407D+00,2.0900D+00, - &2.0320D+00,1.9647D+00,1.8929D+00,1.8190D+00,1.7411D+00,1.6734D+00, - &1.5997D+00,1.5142D+00,1.4279D+00,1.3438D+00,1.2617D+00,1.1967D+00, - &1.1353D+00,1.0800D+00,1.0501D+00,1.0526D+00,1.0849D+00,1.1369D+00, - &1.2228D+00,1.3250D+00,1.4410D+00,1.5691D+00,1.7085D+00,1.8587D+00, - &2.0200D+00,2.1915D+00,2.3728D+00,2.5633D+00,2.7603D+00,2.9047D+00, - &3.3315D+00,3.8026D+00,4.3243D+00,4.9121D+00,5.5828D+00,6.3648D+00, - &7.3038D+00,8.4817D+00,1.0068D+01,1.2484D+01,1.7398D+01,0.0000D+00, - &3.9781D+00,3.9859D+00,3.9880D+00,3.9845D+00,3.9763D+00,3.9582D+00, - &3.9337D+00,3.9028D+00,3.8636D+00,3.8159D+00,3.7613D+00,3.6984D+00, - &3.6287D+00,3.5836D+00,3.5326D+00,3.4703D+00,3.4046D+00,3.3350D+00, - &3.2612D+00,3.1962D+00,3.1248D+00,3.0388D+00,2.9485D+00,2.8565D+00/ - DATA (XGF_L(K),K= 229, 342) / - &2.7591D+00,2.6752D+00,2.5823D+00,2.4756D+00,2.3627D+00,2.2510D+00, - &2.1352D+00,2.0365D+00,1.9308D+00,1.8097D+00,1.6896D+00,1.5737D+00, - &1.4618D+00,1.3735D+00,1.2886D+00,1.2087D+00,1.1551D+00,1.1411D+00, - &1.1545D+00,1.1903D+00,1.2550D+00,1.3356D+00,1.4282D+00,1.5306D+00, - &1.6419D+00,1.7606D+00,1.8869D+00,2.0194D+00,2.1574D+00,2.2992D+00, - &2.4432D+00,2.5568D+00,2.8674D+00,3.2008D+00,3.5626D+00,3.9572D+00, - &4.3932D+00,4.8857D+00,5.4544D+00,6.1386D+00,7.0188D+00,8.2895D+00, - &1.0709D+01,0.0000D+00,6.3697D+00,6.3265D+00,6.2740D+00,6.2091D+00, - &6.1391D+00,6.0517D+00,5.9560D+00,5.8525D+00,5.7367D+00,5.6106D+00, - &5.4709D+00,5.3235D+00,5.1695D+00,5.0724D+00,4.9662D+00,4.8411D+00, - &4.7105D+00,4.5784D+00,4.4412D+00,4.3226D+00,4.1943D+00,4.0442D+00, - &3.8903D+00,3.7360D+00,3.5773D+00,3.4420D+00,3.2967D+00,3.1301D+00, - &2.9593D+00,2.7916D+00,2.6229D+00,2.4802D+00,2.3301D+00,2.1613D+00, - &1.9957D+00,1.8382D+00,1.6875D+00,1.5691D+00,1.4545D+00,1.3433D+00, - &1.2614D+00,1.2264D+00,1.2177D+00,1.2342D+00,1.2749D+00,1.3313D+00, - &1.3987D+00,1.4740D+00,1.5559D+00,1.6431D+00,1.7346D+00,1.8295D+00, - &1.9260D+00,2.0232D+00,2.1174D+00,2.2034D+00,2.4118D+00,2.6289D+00, - &2.8563D+00,3.0948D+00,3.3486D+00,3.6231D+00,3.9250D+00,4.2677D+00, - &4.6847D+00,5.2492D+00,6.2650D+00,0.0000D+00,9.3778D+00,9.2428D+00/ - DATA (XGF_L(K),K= 343, 456) / - &9.0960D+00,8.9365D+00,8.7665D+00,8.5746D+00,8.3714D+00,8.1544D+00, - &7.9343D+00,7.6882D+00,7.4352D+00,7.1724D+00,6.9027D+00,6.7360D+00, - &6.5571D+00,6.3494D+00,6.1374D+00,5.9260D+00,5.7093D+00,5.5249D+00, - &5.3270D+00,5.0995D+00,4.8700D+00,4.6419D+00,4.4114D+00,4.2173D+00, - &4.0129D+00,3.7786D+00,3.5451D+00,3.3173D+00,3.0900D+00,2.9004D+00, - &2.7040D+00,2.4853D+00,2.2734D+00,2.0742D+00,1.8851D+00,1.7372D+00, - &1.5941D+00,1.4536D+00,1.3433D+00,1.2893D+00,1.2607D+00,1.2587D+00, - &1.2792D+00,1.3153D+00,1.3616D+00,1.4149D+00,1.4736D+00,1.5361D+00, - &1.6012D+00,1.6677D+00,1.7344D+00,1.7990D+00,1.8589D+00,1.9261D+00, - &2.0646D+00,2.2044D+00,2.3456D+00,2.4882D+00,2.6342D+00,2.7823D+00, - &2.9370D+00,3.1022D+00,3.2902D+00,3.5288D+00,3.9528D+00,0.0000D+00, - &1.3926D+01,1.3617D+01,1.3298D+01,1.2959D+01,1.2612D+01,1.2230D+01, - &1.1845D+01,1.1442D+01,1.1036D+01,1.0599D+01,1.0158D+01,9.7041D+00, - &9.2562D+00,8.9827D+00,8.6974D+00,8.3632D+00,8.0255D+00,7.6946D+00, - &7.3614D+00,7.0802D+00,6.7814D+00,6.4439D+00,6.1064D+00,5.7775D+00, - &5.4468D+00,5.1723D+00,4.8858D+00,4.5617D+00,4.2425D+00,3.9361D+00, - &3.6353D+00,3.3874D+00,3.1301D+00,2.8506D+00,2.5816D+00,2.3318D+00, - &2.0965D+00,1.9136D+00,1.7368D+00,1.5622D+00,1.4211D+00,1.3452D+00, - &1.2937D+00,1.2737D+00,1.2719D+00,1.2868D+00,1.3119D+00,1.3437D+00/ - DATA (XGF_L(K),K= 457, 570) / - &1.3799D+00,1.4189D+00,1.4596D+00,1.5003D+00,1.5401D+00,1.5761D+00, - &1.6073D+00,1.6574D+00,1.7377D+00,1.8158D+00,1.8902D+00,1.9601D+00, - &2.0263D+00,2.0884D+00,2.1452D+00,2.1990D+00,2.2512D+00,2.3118D+00, - &2.4354D+00,0.0000D+00,1.9256D+01,1.8699D+01,1.8142D+01,1.7563D+01, - &1.6980D+01,1.6355D+01,1.5725D+01,1.5081D+01,1.4443D+01,1.3769D+01, - &1.3097D+01,1.2422D+01,1.1755D+01,1.1358D+01,1.0937D+01,1.0454D+01, - &9.9818D+00,9.5167D+00,9.0465D+00,8.6570D+00,8.2473D+00,7.7870D+00, - &7.3320D+00,6.8911D+00,6.4569D+00,6.0969D+00,5.7223D+00,5.3051D+00, - &4.8992D+00,4.5131D+00,4.1351D+00,3.8285D+00,3.5148D+00,3.1749D+00, - &2.8517D+00,2.5534D+00,2.2748D+00,2.0598D+00,1.8527D+00,1.6465D+00, - &1.4780D+00,1.3832D+00,1.3129D+00,1.2758D+00,1.2566D+00,1.2544D+00, - &1.2628D+00,1.2778D+00,1.2971D+00,1.3186D+00,1.3412D+00,1.3637D+00, - &1.3845D+00,1.4021D+00,1.4142D+00,1.4518D+00,1.4945D+00,1.5327D+00, - &1.5661D+00,1.5941D+00,1.6160D+00,1.6309D+00,1.6386D+00,1.6381D+00, - &1.6291D+00,1.6176D+00,1.6271D+00,0.0000D+00,2.5945D+01,2.5063D+01, - &2.4160D+01,2.3234D+01,2.2336D+01,2.1370D+01,2.0417D+01,1.9450D+01, - &1.8508D+01,1.7517D+01,1.6548D+01,1.5580D+01,1.4645D+01,1.4085D+01, - &1.3496D+01,1.2836D+01,1.2181D+01,1.1547D+01,1.0921D+01,1.0404D+01, - &9.8614D+00,9.2547D+00,8.6616D+00,8.0926D+00,7.5352D+00,7.0774D+00/ - DATA (XGF_L(K),K= 571, 684) / - &6.6043D+00,6.0842D+00,5.5816D+00,5.1040D+00,4.6450D+00,4.2749D+00, - &3.8995D+00,3.4941D+00,3.1134D+00,2.7651D+00,2.4423D+00,2.1941D+00, - &1.9564D+00,1.7198D+00,1.5241D+00,1.4112D+00,1.3220D+00,1.2705D+00, - &1.2348D+00,1.2175D+00,1.2113D+00,1.2119D+00,1.2167D+00,1.2238D+00, - &1.2321D+00,1.2398D+00,1.2460D+00,1.2491D+00,1.2470D+00,1.2752D+00, - &1.2894D+00,1.2998D+00,1.3055D+00,1.3049D+00,1.2991D+00,1.2860D+00, - &1.2655D+00,1.2370D+00,1.1998D+00,1.1564D+00,1.1181D+00,0.0000D+00, - &3.3362D+01,3.2051D+01,3.0740D+01,2.9429D+01,2.8133D+01,2.6758D+01, - &2.5422D+01,2.4082D+01,2.2784D+01,2.1435D+01,2.0130D+01,1.8839D+01, - &1.7597D+01,1.6865D+01,1.6098D+01,1.5241D+01,1.4397D+01,1.3587D+01, - &1.2791D+01,1.2130D+01,1.1444D+01,1.0687D+01,9.9507D+00,9.2501D+00, - &8.5659D+00,8.0104D+00,7.4390D+00,6.8118D+00,6.2125D+00,5.6506D+00, - &5.1096D+00,4.6780D+00,4.2434D+00,3.7769D+00,3.3424D+00,2.9475D+00, - &2.5842D+00,2.3061D+00,2.0409D+00,1.7770D+00,1.5572D+00,1.4290D+00, - &1.3248D+00,1.2609D+00,1.2112D+00,1.1814D+00,1.1636D+00,1.1530D+00, - &1.1469D+00,1.1433D+00,1.1407D+00,1.1378D+00,1.1337D+00,1.1269D+00, - &1.1152D+00,1.1360D+00,1.1320D+00,1.1243D+00,1.1127D+00,1.0960D+00, - &1.0739D+00,1.0461D+00,1.0122D+00,9.7100D-01,9.2292D-01,8.6909D-01, - &8.1432D-01,0.0000D+00,4.2364D+01,4.0483D+01,3.8640D+01,3.6792D+01/ - DATA (XGF_L(K),K= 685, 798) / - &3.4991D+01,3.3112D+01,3.1295D+01,2.9487D+01,2.7748D+01,2.5953D+01, - &2.4235D+01,2.2543D+01,2.0935D+01,1.9990D+01,1.9011D+01,1.7921D+01, - &1.6852D+01,1.5830D+01,1.4831D+01,1.4013D+01,1.3165D+01,1.2236D+01, - &1.1337D+01,1.0485D+01,9.6616D+00,8.9943D+00,8.3137D+00,7.5711D+00, - &6.8670D+00,6.2090D+00,5.5842D+00,5.0866D+00,4.5873D+00,4.0564D+00, - &3.5646D+00,3.1234D+00,2.7185D+00,2.4107D+00,2.1172D+00,1.8273D+00, - &1.5836D+00,1.4407D+00,1.3211D+00,1.2459D+00,1.1839D+00,1.1433D+00, - &1.1153D+00,1.0949D+00,1.0794D+00,1.0667D+00,1.0555D+00,1.0443D+00, - &1.0317D+00,1.0172D+00,9.9883D-01,1.0131D+00,9.9503D-01,9.7446D-01, - &9.5064D-01,9.2316D-01,8.9156D-01,8.5528D-01,8.1439D-01,7.6837D-01, - &7.1718D-01,6.6210D-01,6.0243D-01,0.0000D+00,5.2603D+01,5.0038D+01, - &4.7540D+01,4.5053D+01,4.2652D+01,4.0175D+01,3.7784D+01,3.5407D+01, - &3.3154D+01,3.0851D+01,2.8651D+01,2.6507D+01,2.4488D+01,2.3310D+01, - &2.2084D+01,2.0735D+01,1.9418D+01,1.8166D+01,1.6951D+01,1.5960D+01, - &1.4935D+01,1.3817D+01,1.2742D+01,1.1732D+01,1.0759D+01,9.9749D+00, - &9.1794D+00,8.3186D+00,7.5044D+00,6.7510D+00,6.0386D+00,5.4762D+00, - &4.9137D+00,4.3200D+00,3.7728D+00,3.2842D+00,2.8391D+00,2.5026D+00, - &2.1835D+00,1.8677D+00,1.6033D+00,1.4461D+00,1.3138D+00,1.2277D+00, - &1.1557D+00,1.1057D+00,1.0689D+00,1.0407D+00,1.0176D+00,9.9768D-01/ - DATA (XGF_L(K),K= 799, 912) / - &9.7951D-01,9.6199D-01,9.4331D-01,9.2359D-01,9.0058D-01,9.0921D-01, - &8.8156D-01,8.5244D-01,8.2081D-01,7.8702D-01,7.5025D-01,7.1005D-01, - &6.6667D-01,6.1984D-01,5.6969D-01,5.1748D-01,4.5895D-01,0.0000D+00, - &6.3459D+01,6.0127D+01,5.6900D+01,5.3695D+01,5.0615D+01,4.7464D+01, - &4.4440D+01,4.1483D+01,3.8684D+01,3.5826D+01,3.3122D+01,3.0500D+01, - &2.8040D+01,2.6617D+01,2.5143D+01,2.3518D+01,2.1950D+01,2.0455D+01, - &1.9011D+01,1.7842D+01,1.6646D+01,1.5337D+01,1.4094D+01,1.2920D+01, - &1.1799D+01,1.0903D+01,9.9940D+00,9.0166D+00,8.0967D+00,7.2512D+00, - &6.4551D+00,5.8279D+00,5.2081D+00,4.5519D+00,3.9568D+00,3.4237D+00, - &2.9425D+00,2.5798D+00,2.2371D+00,1.8995D+00,1.6161D+00,1.4477D+00, - &1.3046D+00,1.2096D+00,1.1285D+00,1.0709D+00,1.0274D+00,9.9290D-01, - &9.6399D-01,9.3860D-01,9.1550D-01,8.9324D-01,8.7036D-01,8.4674D-01, - &8.2129D-01,8.2506D-01,7.9094D-01,7.5633D-01,7.2031D-01,6.8307D-01, - &6.4387D-01,6.0237D-01,5.5907D-01,5.1344D-01,4.6618D-01,4.1810D-01, - &3.6329D-01,0.0000D+00,7.9498D+01,7.4941D+01,7.0580D+01,6.6266D+01, - &6.2169D+01,5.8002D+01,5.4045D+01,5.0164D+01,4.6539D+01,4.2847D+01, - &3.9386D+01,3.6065D+01,3.2968D+01,3.1180D+01,2.9347D+01,2.7330D+01, - &2.5394D+01,2.3566D+01,2.1811D+01,2.0388D+01,1.8944D+01,1.7368D+01, - &1.5877D+01,1.4488D+01,1.3164D+01,1.2111D+01,1.1051D+01,9.9162D+00/ - DATA (XGF_L(K),K= 913, 1026) / - &8.8542D+00,7.8839D+00,6.9777D+00,6.2689D+00,5.5695D+00,4.8410D+00, - &4.1789D+00,3.5909D+00,3.0635D+00,2.6689D+00,2.2973D+00,1.9324D+00, - &1.6270D+00,1.4446D+00,1.2882D+00,1.1839D+00,1.0926D+00,1.0266D+00, - &9.7585D-01,9.3473D-01,8.9976D-01,8.6898D-01,8.4068D-01,8.1374D-01, - &7.8714D-01,7.6011D-01,7.3262D-01,7.3148D-01,6.9170D-01,6.5270D-01, - &6.1357D-01,5.7426D-01,5.3417D-01,4.9316D-01,4.5166D-01,4.0914D-01, - &3.6649D-01,3.2429D-01,2.7651D-01,0.0000D+00,9.7091D+01,9.1127D+01, - &8.5440D+01,7.9869D+01,7.4603D+01,6.9275D+01,6.4220D+01,5.9343D+01, - &5.4780D+01,5.0195D+01,4.5912D+01,4.1816D+01,3.8028D+01,3.5857D+01, - &3.3637D+01,3.1205D+01,2.8880D+01,2.6695D+01,2.4601D+01,2.2923D+01, - &2.1219D+01,1.9374D+01,1.7634D+01,1.6009D+01,1.4488D+01,1.3276D+01, - &1.2064D+01,1.0772D+01,9.5709D+00,8.4795D+00,7.4649D+00,6.6775D+00, - &5.9046D+00,5.1015D+00,4.3733D+00,3.7372D+00,3.1677D+00,2.7434D+00, - &2.3459D+00,1.9566D+00,1.6317D+00,1.4368D+00,1.2699D+00,1.1572D+00, - &1.0581D+00,9.8558D-01,9.2913D-01,8.8297D-01,8.4349D-01,8.0862D-01, - &7.7667D-01,7.4686D-01,7.1760D-01,6.8906D-01,6.6005D-01,6.5493D-01, - &6.1209D-01,5.7080D-01,5.3038D-01,4.9085D-01,4.5137D-01,4.1231D-01, - &3.7316D-01,3.3442D-01,2.9613D-01,2.5928D-01,2.1912D-01,0.0000D+00, - &1.1660D+02,1.0899D+02,1.0178D+02,9.4752D+01,8.8142D+01,8.1480D+01/ - DATA (XGF_L(K),K= 1027, 1140) / - &7.5219D+01,6.9198D+01,6.3578D+01,5.7986D+01,5.2800D+01,4.7867D+01, - &4.3328D+01,4.0736D+01,3.8088D+01,3.5213D+01,3.2469D+01,2.9907D+01, - &2.7451D+01,2.5501D+01,2.3516D+01,2.1392D+01,1.9391D+01,1.7546D+01, - &1.5800D+01,1.4426D+01,1.3057D+01,1.1607D+01,1.0266D+01,9.0517D+00, - &7.9294D+00,7.0617D+00,6.2165D+00,5.3397D+00,4.5572D+00,3.8687D+00, - &3.2598D+00,2.8078D+00,2.3859D+00,1.9745D+00,1.6317D+00,1.4267D+00, - &1.2497D+00,1.1305D+00,1.0247D+00,9.4657D-01,8.8556D-01,8.3542D-01, - &7.9253D-01,7.5465D-01,7.2037D-01,6.8840D-01,6.5775D-01,6.2793D-01, - &5.9852D-01,5.9015D-01,5.4553D-01,5.0339D-01,4.6306D-01,4.2411D-01, - &3.8622D-01,3.4909D-01,3.1294D-01,2.7773D-01,2.4373D-01,2.1150D-01, - &1.7848D-01,0.0000D+00,1.3738D+02,1.2796D+02,1.1904D+02,1.1042D+02, - &1.0233D+02,9.4222D+01,8.6662D+01,7.9409D+01,7.2655D+01,6.6001D+01, - &5.9833D+01,5.4007D+01,4.8672D+01,4.5642D+01,4.2552D+01,3.9214D+01, - &3.6040D+01,3.3082D+01,3.0272D+01,2.8026D+01,2.5779D+01,2.3361D+01, - &2.1093D+01,1.9009D+01,1.7062D+01,1.5526D+01,1.4003D+01,1.2396D+01, - &1.0916D+01,9.5845D+00,8.3611D+00,7.4188D+00,6.5021D+00,5.5589D+00, - &4.7169D+00,3.9865D+00,3.3389D+00,2.8617D+00,2.4178D+00,1.9872D+00, - &1.6283D+00,1.4143D+00,1.2296D+00,1.1049D+00,9.9315D-01,9.1079D-01, - &8.4623D-01,7.9317D-01,7.4768D-01,7.0802D-01,6.7178D-01,6.3836D-01/ - DATA (XGF_L(K),K= 1141, 1254) / - &6.0703D-01,5.7658D-01,5.4733D-01,5.3630D-01,4.9100D-01,4.4879D-01, - &4.0920D-01,3.7138D-01,3.3521D-01,3.0054D-01,2.6721D-01,2.3523D-01, - &2.0485D-01,1.7634D-01,1.4852D-01,0.0000D+00,1.6103D+02,1.4938D+02, - &1.3848D+02,1.2798D+02,1.1818D+02,1.0840D+02,9.9309D+01,9.0651D+01, - &8.2647D+01,7.4733D+01,6.7469D+01,6.0672D+01,5.4433D+01,5.0913D+01, - &4.7343D+01,4.3482D+01,3.9833D+01,3.6452D+01,3.3242D+01,3.0689D+01, - &2.8134D+01,2.5404D+01,2.2863D+01,2.0531D+01,1.8362D+01,1.6652D+01, - &1.4967D+01,1.3197D+01,1.1573D+01,1.0120D+01,8.7877D+00,7.7679D+00, - &6.7819D+00,5.7685D+00,4.8731D+00,4.0967D+00,3.4122D+00,2.9097D+00, - &2.4451D+00,1.9953D+00,1.6222D+00,1.3995D+00,1.2076D+00,1.0771D+00, - &9.6151D-01,8.7563D-01,8.0819D-01,7.5269D-01,7.0548D-01,6.6395D-01, - &6.2666D-01,5.9253D-01,5.6034D-01,5.3005D-01,5.0122D-01,4.8790D-01, - &4.4273D-01,4.0115D-01,3.6251D-01,3.2632D-01,2.9224D-01,2.5988D-01, - &2.2931D-01,2.0039D-01,1.7324D-01,1.4805D-01,1.2201D-01,0.0000D+00, - &1.8591D+02,1.7193D+02,1.5886D+02,1.4632D+02,1.3469D+02,1.2310D+02, - &1.1237D+02,1.0218D+02,9.2839D+01,8.3643D+01,7.5256D+01,6.7382D+01, - &6.0231D+01,5.6204D+01,5.2127D+01,4.7743D+01,4.3601D+01,3.9784D+01, - &3.6172D+01,3.3310D+01,3.0455D+01,2.7410D+01,2.4579D+01,2.2009D+01, - &1.9599D+01,1.7727D+01,1.5886D+01,1.3956D+01,1.2193D+01,1.0620D+01/ - DATA (XGF_L(K),K= 1255, 1368) / - &9.1866D+00,8.0925D+00,7.0383D+00,5.9623D+00,5.0119D+00,4.1917D+00, - &3.4750D+00,2.9503D+00,2.4663D+00,1.9999D+00,1.6141D+00,1.3840D+00, - &1.1856D+00,1.0518D+00,9.3192D-01,8.4324D-01,7.7348D-01,7.1642D-01, - &6.6779D-01,6.2531D-01,5.8732D-01,5.5231D-01,5.2039D-01,4.9037D-01, - &4.6218D-01,4.4711D-01,4.0225D-01,3.6159D-01,3.2438D-01,2.8982D-01, - &2.5765D-01,2.2765D-01,1.9954D-01,1.7331D-01,1.4889D-01,1.2621D-01, - &9.6984D-02,0.0000D+00,2.1269D+02,1.9609D+02,1.8060D+02,1.6582D+02, - &1.5214D+02,1.3863D+02,1.2613D+02,1.1431D+02,1.0351D+02,9.2957D+01, - &8.3294D+01,7.4318D+01,6.6188D+01,6.1617D+01,5.7019D+01,5.2073D+01, - &4.7428D+01,4.3153D+01,3.9122D+01,3.5941D+01,3.2764D+01,2.9404D+01, - &2.6282D+01,2.3458D+01,2.0836D+01,1.8796D+01,1.6786D+01,1.4693D+01, - &1.2792D+01,1.1101D+01,9.5678D+00,8.4010D+00,7.2773D+00,6.1402D+00, - &5.1403D+00,4.2791D+00,3.5311D+00,2.9851D+00,2.4835D+00,2.0017D+00, - &1.6039D+00,1.3677D+00,1.1646D+00,1.0265D+00,9.0375D-01,8.1271D-01, - &7.4135D-01,6.8280D-01,6.3328D-01,5.9018D-01,5.5184D-01,5.1677D-01, - &4.8494D-01,4.5537D-01,4.2797D-01,4.1146D-01,3.6736D-01,3.2788D-01, - &2.9207D-01,2.5923D-01,2.2901D-01,2.0110D-01,1.7527D-01,1.5131D-01, - &1.2926D-01,1.0839D-01,6.9776D-02,0.0000D+00,2.4043D+02,2.2104D+02, - &2.0300D+02,1.8582D+02,1.7003D+02,1.5443D+02,1.4007D+02,1.2658D+02/ - DATA (XGF_L(K),K= 1369, 1482) / - &1.1426D+02,1.0227D+02,9.1332D+01,8.1197D+01,7.2119D+01,6.6989D+01, - &6.1846D+01,5.6342D+01,5.1188D+01,4.6448D+01,4.2002D+01,3.8498D+01, - &3.5016D+01,3.1335D+01,2.7931D+01,2.4848D+01,2.2009D+01,1.9797D+01, - &1.7637D+01,1.5389D+01,1.3354D+01,1.1550D+01,9.9187D+00,8.6824D+00, - &7.4988D+00,6.3022D+00,5.2549D+00,4.3589D+00,3.5788D+00,3.0139D+00, - &2.4962D+00,2.0005D+00,1.5931D+00,1.3514D+00,1.1435D+00,1.0028D+00, - &8.7751D-01,7.8479D-01,7.1218D-01,6.5272D-01,6.0250D-01,5.5920D-01, - &5.2061D-01,4.8590D-01,4.5422D-01,4.2519D-01,3.9858D-01,3.8094D-01, - &3.3789D-01,2.9975D-01,2.6524D-01,2.3401D-01,2.0560D-01,1.7956D-01, - &1.5565D-01,1.3374D-01,1.1354D-01,9.4096D-02,3.9275D-02,0.0000D+00, - &2.8195D+02,2.5830D+02,2.3640D+02,2.1554D+02,1.9645D+02,1.7774D+02, - &1.6058D+02,1.4448D+02,1.2990D+02,1.1575D+02,1.0299D+02,9.1121D+01, - &8.0574D+01,7.4642D+01,6.8724D+01,6.2402D+01,5.6498D+01,5.1101D+01, - &4.6042D+01,4.2081D+01,3.8152D+01,3.4014D+01,3.0201D+01,2.6780D+01, - &2.3611D+01,2.1171D+01,1.8789D+01,1.6329D+01,1.4107D+01,1.2148D+01, - &1.0386D+01,9.0557D+00,7.7874D+00,6.5118D+00,5.4006D+00,4.4539D+00, - &3.6370D+00,3.0467D+00,2.5088D+00,1.9959D+00,1.5762D+00,1.3274D+00, - &1.1142D+00,9.7065D-01,8.4265D-01,7.4825D-01,6.7451D-01,6.1445D-01, - &5.6374D-01,5.2024D-01,4.8166D-01,4.4741D-01,4.1643D-01,3.8830D-01/ - DATA (XGF_L(K),K= 1483, 1596) / - &3.6282D-01,3.4411D-01,3.0249D-01,2.6607D-01,2.3369D-01,2.0474D-01, - &1.7852D-01,1.5489D-01,1.3341D-01,1.1384D-01,9.5862D-02,7.7509D-02, - &0.0000D+00,0.0000D+00,3.2379D+02,2.9556D+02,2.6960D+02,2.4513D+02, - &2.2265D+02,2.0073D+02,1.8071D+02,1.6202D+02,1.4515D+02,1.2887D+02, - &1.1419D+02,1.0071D+02,8.8650D+01,8.1931D+01,7.5233D+01,6.8140D+01, - &6.1510D+01,5.5467D+01,4.9832D+01,4.5419D+01,4.1070D+01,3.6493D+01, - &3.2295D+01,2.8536D+01,2.5086D+01,2.2426D+01,1.9846D+01,1.7175D+01, - &1.4781D+01,1.2681D+01,1.0797D+01,9.3831D+00,8.0380D+00,6.6897D+00, - &5.5221D+00,4.5337D+00,3.6831D+00,3.0714D+00,2.5159D+00,1.9884D+00, - &1.5586D+00,1.3048D+00,1.0886D+00,9.4191D-01,8.1217D-01,7.1679D-01, - &6.4238D-01,5.8194D-01,5.3136D-01,4.8766D-01,4.4965D-01,4.1594D-01, - &3.8570D-01,3.5847D-01,3.3403D-01,3.1456D-01,2.7454D-01,2.3977D-01, - &2.0922D-01,1.8216D-01,1.5795D-01,1.3622D-01,1.1669D-01,9.9012D-02, - &8.2668D-02,6.4604D-02,0.0000D+00,0.0000D+00,3.7071D+02,3.3727D+02, - &3.0660D+02,2.7790D+02,2.5169D+02,2.2608D+02,2.0283D+02,1.8123D+02, - &1.6179D+02,1.4311D+02,1.2635D+02,1.1097D+02,9.7357D+01,8.9759D+01, - &8.2263D+01,7.4239D+01,6.6821D+01,6.0073D+01,5.3813D+01,4.8927D+01, - &4.4114D+01,3.9072D+01,3.4471D+01,3.0351D+01,2.6592D+01,2.3699D+01, - &2.0903D+01,1.8031D+01,1.5459D+01,1.3211D+01,1.1204D+01,9.7024D+00/ - DATA (XGF_L(K),K= 1597, 1710) / - &8.2828D+00,6.8644D+00,5.6367D+00,4.6059D+00,3.7241D+00,3.0915D+00, - &2.5189D+00,1.9786D+00,1.5396D+00,1.2816D+00,1.0611D+00,9.1306D-01, - &7.8207D-01,6.8594D-01,6.1118D-01,5.5075D-01,5.0031D-01,4.5732D-01, - &4.1996D-01,3.8671D-01,3.5732D-01,3.3101D-01,3.0775D-01,2.8769D-01, - &2.4931D-01,2.1637D-01,1.8763D-01,1.6241D-01,1.4002D-01,1.2013D-01, - &1.0238D-01,8.6311D-02,7.1348D-02,5.2982D-02,0.0000D+00,0.0000D+00, - &4.2142D+02,3.8237D+02,3.4660D+02,3.1292D+02,2.8259D+02,2.5300D+02, - &2.2626D+02,2.0148D+02,1.7927D+02,1.5797D+02,1.3896D+02,1.2163D+02, - &1.0632D+02,9.7858D+01,8.9366D+01,8.0488D+01,7.2234D+01,6.4771D+01, - &5.7843D+01,5.2468D+01,4.7182D+01,4.1663D+01,3.6633D+01,3.2165D+01, - &2.8082D+01,2.4971D+01,2.1960D+01,1.8866D+01,1.6118D+01,1.3723D+01, - &1.1595D+01,1.0008D+01,8.5101D+00,7.0232D+00,5.7443D+00,4.6705D+00, - &3.7584D+00,3.1066D+00,2.5189D+00,1.9659D+00,1.5193D+00,1.2575D+00, - &1.0346D+00,8.8517D-01,7.5338D-01,6.5695D-01,5.8219D-01,5.2200D-01, - &4.7218D-01,4.2954D-01,3.9258D-01,3.6043D-01,3.3190D-01,3.0663D-01, - &2.8431D-01,2.6413D-01,2.2746D-01,1.9612D-01,1.6912D-01,1.4557D-01, - &1.2488D-01,1.0660D-01,9.0362D-02,7.5731D-02,6.1890D-02,4.2720D-02, - &0.0000D+00,0.0000D+00,4.7166D+02,4.2676D+02,3.8580D+02,3.4749D+02, - &3.1273D+02,2.7927D+02,2.4899D+02,2.2108D+02,1.9611D+02,1.7230D+02/ - DATA (XGF_L(K),K= 1711, 1824) / - &1.5107D+02,1.3178D+02,1.1483D+02,1.0548D+02,9.6179D+01,8.6383D+01, - &7.7331D+01,6.9156D+01,6.1613D+01,5.5763D+01,5.0019D+01,4.4056D+01, - &3.8633D+01,3.3819D+01,2.9446D+01,2.6108D+01,2.2889D+01,1.9617D+01, - &1.6706D+01,1.4179D+01,1.1938D+01,1.0276D+01,8.7112D+00,7.1630D+00, - &5.8345D+00,4.7275D+00,3.7856D+00,3.1171D+00,2.5164D+00,1.9532D+00, - &1.4997D+00,1.2350D+00,1.0108D+00,8.6027D-01,7.2804D-01,6.3166D-01, - &5.5726D-01,4.9745D-01,4.4802D-01,4.0623D-01,3.7002D-01,3.3850D-01, - &3.1081D-01,2.8644D-01,2.6509D-01,2.4476D-01,2.0951D-01,1.7979D-01, - &1.5426D-01,1.3217D-01,1.1290D-01,9.5951D-02,8.0975D-02,6.7483D-02, - &5.4483D-02,3.4309D-02,0.0000D+00,0.0000D+00,5.2745D+02,4.7595D+02, - &4.2900D+02,3.8543D+02,3.4589D+02,3.0795D+02,2.7377D+02,2.4235D+02, - &2.1434D+02,1.8771D+02,1.6408D+02,1.4266D+02,1.2392D+02,1.1358D+02, - &1.0335D+02,9.2593D+01,8.2702D+01,7.3780D+01,6.5553D+01,5.9207D+01, - &5.2983D+01,4.6535D+01,4.0700D+01,3.5531D+01,3.0842D+01,2.7278D+01, - &2.3855D+01,2.0386D+01,1.7301D+01,1.4635D+01,1.2282D+01,1.0538D+01, - &8.9065D+00,7.2932D+00,5.9178D+00,4.7769D+00,3.8086D+00,3.1240D+00, - &2.5114D+00,1.9387D+00,1.4794D+00,1.2125D+00,9.8604D-01,8.3538D-01, - &7.0309D-01,6.0683D-01,5.3289D-01,4.7378D-01,4.2493D-01,3.8387D-01, - &3.4846D-01,3.1778D-01,2.9097D-01,2.6744D-01,2.4699D-01,2.2688D-01/ - DATA (XGF_L(K),K= 1825, 1836) / - &1.9308D-01,1.6489D-01,1.4079D-01,1.2009D-01,1.0214D-01,8.6447D-02, - &7.2603D-02,6.0131D-02,4.7893D-02,2.6613D-02,0.0000D+00,0.0000D+00/ - -* - X = Xinp -*...CHECK OF X AND Q2 VALUES : - IF ( (X.LT.0.99D-9) .OR. (X.GT.1.D0) ) THEN -* WRITE(6,91) X -* 91 FORMAT (2X,'PHO_DOR98LO: x out of range',1p,E12.4) - X = 0.99D-9 -* STOP - ENDIF - - Q2 = Q2inp - IF ( (Q2.LT.0.799D0) .OR. (Q2.GT.1.E6) ) THEN -* WRITE(6,92) Q2 -* 92 FORMAT (2X,'PHO_DOR98LO: Q2 out of range',1p,E12.4) - Q2 = 0.99D6 -* STOP - ENDIF - -* -*...INTERPOLATION : - NA(1) = NX - NA(2) = NQ - XT(1) = DLOG(X) - XT(2) = DLOG(Q2) - X1 = 1.D0- X - XV = X**0.5D0 - XS = X**(-0.2D0) - UV = SIB_DBFINT(NARG,XT,NA,ARRF,XUVF) * X1**3 * XV - DV = SIB_DBFINT(NARG,XT,NA,ARRF,XDVF) * X1**4 * XV - DE = SIB_DBFINT(NARG,XT,NA,ARRF,XDEF) * X1**7 * XV - UD = SIB_DBFINT(NARG,XT,NA,ARRF,XUDF) * X1**7 * XS - US = 0.5D0 * (UD - DE) - DS = 0.5D0 * (UD + DE) - SS = SIB_DBFINT(NARG,XT,NA,ARRF,XSF) * X1**7 * XS - GL = SIB_DBFINT(NARG,XT,NA,ARRF,XGF) * X1**5 * XS - - END diff --git a/Processes/Sibyll/sibyll2.3d.h b/Processes/Sibyll/sibyll2.3d.h deleted file mode 100644 index 9721e1747dc9fa7c6fa41cecb96a794d7aa7b479..0000000000000000000000000000000000000000 --- a/Processes/Sibyll/sibyll2.3d.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once -//---------------------------------------------- -// C++ interface for the SIBYLL event generator -//---------------------------------------------- -// wrapper - -extern "C" { - -typedef char s_name[6]; - -// SIBYLL particle stack (FORTRAN COMMON) -// variables are: np : numer of particles on stack -// p : 4momentum + mass of particles on stack -// llist : id of particles on stack -extern struct { - double p[5][8000]; - int llist[8000]; - int np; -} s_plist_; - -// additional information about interactions. -// number of wounded nucleons, number of hard and soft scatterings etc. -extern struct { int nnsof[20], nnjet[20], jdif[20], nwd, njet, nsof; } s_chist_; - -extern struct { - double cbr[223 + 16 + 12 + 8]; - int kdec[1338 + 6 * (16 + 12 + 8)]; - int lbarp[99]; - int idb[99]; -} s_csydec_; - -// additional particle stack for the mother particles of unstable particles -// stable particles have entry zero -extern struct { int llist1[8000]; } s_plist1_; - -// tables with particle properties -// charge, strangeness and baryon number -extern struct { - int ichp[99]; - int istr[99]; - int ibar[99]; -} s_chp_; - -// tables with particle properties -// mass and mass squared -extern struct { - double am[99]; - double am2[99]; -} s_mass1_; - -// table with particle names -extern struct { char namp[6][99]; } s_cnam_; - -// debug info -extern struct { - int ncall; - int ndebug; - int lun; -} s_debug_; - -// lund random generator setup -// extern struct {int mrlu[6]; float rrlu[100]; }ludatr_; - -// sibyll main subroutine -void sibyll_(const int&, const int&, const double&); - -// subroutine to initiate sibyll -void sibyll_ini_(); - -// subroutine to SET DECAYS -void dec_ini_(); - -// subroutine to initiate random number generator -// void rnd_ini_(); - -// print event -void sib_list_(int&); - -// decay routine -void decsib_(); - -// interaction length -// double fpni_(double&, int&); - -void sib_sigma_hnuc_(const int&, const int&, const double&, double&, double&, double&); -void sib_sigma_hp_(const int&, const double&, double&, double&, double&, double*, double&, - double&); - -double s_rndm_(int&); - -int get_nwounded(); -double get_sibyll_mass2(int&); - -// phojet random generator setup -void pho_rndin_(int&, int&, int&, int&); -} diff --git a/Processes/Tracking/CMakeLists.txt b/Processes/Tracking/CMakeLists.txt deleted file mode 100644 index 088b37a41dbd10cd79e30791a166a92ba5229e39..0000000000000000000000000000000000000000 --- a/Processes/Tracking/CMakeLists.txt +++ /dev/null @@ -1,44 +0,0 @@ -set ( - MODEL_HEADERS - Intersect.hpp - ) - -set ( - MODEL_NAMESPACE - corsika/process/tracking - ) - -add_library (ProcessTrackingIntersects INTERFACE) -CORSIKA_COPY_HEADERS_TO_NAMESPACE (ProcessTrackingIntersects ${MODEL_NAMESPACE} ${MODEL_HEADERS}) - -# target dependencies on other libraries (also the header onlys) -target_link_libraries ( - ProcessTrackingIntersects - INTERFACE - CORSIKAsetup - CORSIKAutilities - CORSIKAenvironment - CORSIKAunits - CORSIKAgeometry - CORSIKAlogging - ) - -target_include_directories ( - ProcessTrackingIntersects - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -install (FILES ${MODEL_HEADERS} DESTINATION include/${MODEL_NAMESPACE}) - -# #-- -- -- -- -- -- -- -- -- -- -# #code unit testing -CORSIKA_ADD_TEST (testTracking) -target_link_libraries ( - testTracking - ProcessTrackingLine - ProcessTrackingLeapFrogStraight - ProcessTrackingLeapFrogCurved - CORSIKAtesting -) diff --git a/Processes/Tracking/Intersect.hpp b/Processes/Tracking/Intersect.hpp deleted file mode 100644 index 717ad6ca99647ea1b68e5dce5ad645db0c67449d..0000000000000000000000000000000000000000 --- a/Processes/Tracking/Intersect.hpp +++ /dev/null @@ -1,137 +0,0 @@ -/* - * (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/geometry/Point.h> -#include <corsika/geometry/Vector.h> -#include <corsika/units/PhysicalUnits.h> -#include <corsika/logging/Logging.h> -#include <corsika/geometry/Intersections.hpp> - -#include <limits> - -namespace corsika::process::tracking { - - /** - * \class Intersect - * - * This is a CRTP class to provide a generic volume-tree - * intersection for the purpose of tracking. - * - * It return the closest distance in time to the next geometric - * intersection, as well as a pointer to the corresponding new - * volume. - * - * User may provide an optional global step-length limit as - * parameter. This may be needd for (simpler) algorithms in magnetic - * fields, where tracking errors grow linearly with step-length. - * Obviously, in the case of the step-length limit, the returend - * "next" volume is just the current one. - * - **/ - - template <typename TDerived> - class Intersect { - - protected: - template <typename TParticle> - auto nextIntersect( - const TParticle& particle, - corsika::units::si::TimeType step_limit = - std::numeric_limits<corsika::units::si::TimeType::value_type>::infinity() * - corsika::units::si::second) const { - using namespace corsika::units::si; - using namespace corsika::geometry; - - typedef - typename std::remove_reference<decltype(*particle.GetNode())>::type node_type; - node_type& volumeNode = - *particle.GetNode(); // current "logical" node, from previous tracking step - C8LOG_DEBUG("volumeNode={}, numericallyInside={} ", fmt::ptr(&volumeNode), - volumeNode.GetVolume().Contains(particle.GetPosition())); - - // start values: - TimeType minTime = step_limit; - node_type* minNode = &volumeNode; - - // determine the first geometric collision with any other Volume boundary - - // first check, where we leave the current volume - // this assumes our convention, that all Volume primitives must be convex - // thus, the last entry is always the exit point - const Intersections time_intersections_curr = - TDerived::Intersect(particle, volumeNode); - C8LOG_TRACE("curr node {}, parent node {}, hasIntersections={} ", - fmt::ptr(&volumeNode), fmt::ptr(volumeNode.GetParent()), - time_intersections_curr.hasIntersections()); - if (time_intersections_curr.hasIntersections()) { - C8LOG_DEBUG("intersection times with currentLogicalVolumeNode: {} s and {} s", - time_intersections_curr.getEntry() / 1_s, - time_intersections_curr.getExit() / 1_s); - if (time_intersections_curr.getExit() <= minTime) { - minTime = - time_intersections_curr.getExit(); // we exit currentLogicalVolumeNode here - minNode = volumeNode.GetParent(); - } - } - - // where do we collide with any of the next-tree-level volumes - // entirely contained by currentLogicalVolumeNode - for (const auto& node : volumeNode.GetChildNodes()) { - - const Intersections time_intersections = TDerived::Intersect(particle, *node); - if (!time_intersections.hasIntersections()) { continue; } - C8LOG_DEBUG("intersection times with child volume {} : enter {} s, exit {} s", - fmt::ptr(node), time_intersections.getEntry() / 1_s, - time_intersections.getExit() / 1_s); - - const auto t_entry = time_intersections.getEntry(); - const auto t_exit = time_intersections.getExit(); - C8LOG_TRACE("children t-entry: {}, t-exit: {}, smaller? {} ", t_entry, t_exit, - t_entry <= minTime); - // note, theoretically t can even be smaller than 0 since we - // KNOW we can't yet be in this volume yet, so we HAVE TO - // enter it IF exit point is not also in the "past", AND if - // extry point is [[much much]] closer than exit point - // (because we might have already numerically "exited" it)! - if (t_exit > 0_s && t_entry <= minTime && - -t_entry < t_exit) { // protection agains numerical problem, when we already - // _exited_ before - // enter chile volume here - minTime = t_entry; - minNode = node.get(); - } - } - - // these are volumes from the previous tree-level that are cut-out partly from the - // current volume - for (node_type* node : volumeNode.GetExcludedNodes()) { - - const Intersections time_intersections = TDerived::Intersect(particle, *node); - if (!time_intersections.hasIntersections()) { continue; } - C8LOG_DEBUG("intersection times with exclusion volume {} : enter {} s, exit {} s", - fmt::ptr(node), time_intersections.getEntry() / 1_s, - time_intersections.getExit() / 1_s); - const auto t_entry = time_intersections.getEntry(); - const auto t_exit = time_intersections.getExit(); - C8LOG_TRACE("children t-entry: {}, t-exit: {}, smaller? {} ", t_entry, t_exit, - t_entry <= minTime); - // note, theoretically t can even be smaller than 0 since we - // KNOW we can't yet be in this volume yet, so we HAVE TO - // enter it IF exit point is not also in the "past"! - if (t_exit > 0_s && t_entry <= minTime) { // enter volumen child here - minTime = t_entry; - minNode = node; - } - } - C8LOG_TRACE("t-intersect: {}, node {} ", minTime, fmt::ptr(minNode)); - return std::make_tuple(minTime, minNode); - } - }; // namespace corsika::process::tracking -} // namespace corsika::process::tracking diff --git a/Processes/Tracking/testTracking.cc b/Processes/Tracking/testTracking.cc deleted file mode 100644 index aabd87603fdc888fbc4d5a2a3a39fde50a26adb1..0000000000000000000000000000000000000000 --- a/Processes/Tracking/testTracking.cc +++ /dev/null @@ -1,155 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/process/tracking_leapfrog_curved/Tracking.h> -#include <corsika/process/tracking_leapfrog_straight/Tracking.h> -#include <corsika/process/tracking_line/Tracking.h> - -#include <corsika/particles/ParticleProperties.h> - -#include <corsika/geometry/Point.h> -#include <corsika/geometry/Sphere.h> -#include <corsika/geometry/Vector.h> - -#include <corsika/setup/SetupEnvironment.h> -#include <corsika/setup/SetupStack.h> -#include <corsika/setup/SetupTrajectory.h> -using corsika::setup::Trajectory; - -#include <catch2/catch.hpp> - -using namespace corsika; -using namespace corsika::particles; -using namespace corsika::process; -using namespace corsika::units; -using namespace corsika::geometry; -using namespace corsika::units::si; - -typedef corsika::geometry::Vector<corsika::units::si::magnetic_flux_density_d> - MagneticFieldVector; - -template <typename T> -int sgn(T val) { - return (T(0) < val) - (val < T(0)); -} - -/* - This is the unified and commond unit test for Tracking: - - - tracking_leapfrog_curved::Tracking - - tracking_leapfrog_straight::Tracking - - tracking_line::Tracking - - */ - -TEMPLATE_TEST_CASE("TrackingLeapfrog_Curved", "tracking", - tracking_leapfrog_curved::Tracking, - tracking_leapfrog_straight::Tracking, tracking_line::Tracking) { - - logging::SetLevel(logging::level::trace); - - const HEPEnergyType P0 = 10_GeV; - - auto PID = GENERATE(as<Code>{}, Code::MuPlus, Code::MuPlus, Code::Gamma); - // for algorithms that know magnetic deflections choose: +-50uT, 0uT - // otherwise just 0uT - auto Bfield = GENERATE(filter( - []([[maybe_unused]] MagneticFluxType v) { - if constexpr (std::is_same_v<TestType, tracking_line::Tracking>) - return v == 0_uT; - else - return true; - }, - values<MagneticFluxType>({50_uT, 0_uT, -50_uT}))); - // particle --> (world) --> | --> (target) - // true: start inside "world" volume - // false: start inside "target" volume - auto outer = GENERATE(as<bool>{}, true, false); - - SECTION(fmt::format("Tracking PID={}, Bfield={} uT, from outside={}", PID, - Bfield / 1_uT, outer)) { - - C8LOG_DEBUG( - "********************\n TEST section PID={}, Bfield={} " - "uT, outer (?)={}", - PID, Bfield / 1_uT, outer); - - const int chargeNumber = GetChargeNumber(PID); - LengthType radius = 10_m; - int deflect = 0; - if (chargeNumber != 0 and Bfield != 0_T) { - deflect = -sgn(chargeNumber) * sgn(Bfield / 1_T); // direction of deflection - LengthType const gyroradius = - P0 * 1_V / (constants::c * abs(chargeNumber) * abs(Bfield) * 1_eV); - radius = gyroradius; - } - - auto [env, csPtr, worldPtr] = setup::testing::setupEnvironment(Code::Oxygen, Bfield); - { [[maybe_unused]] const auto& env_dummy = env; } - auto const& cs = *csPtr; - - TestType tracking; - Point const center(cs, {0_m, 0_m, 0_m}); - auto target = setup::Environment::CreateNode<geometry::Sphere>(center, radius); - - using MyHomogeneousModel = - environment::MediumPropertyModel<environment::UniformMagneticField< - environment::HomogeneousMedium<setup::EnvironmentInterface>>>; - - MagneticFieldVector magneticfield(cs, 0_T, 0_T, Bfield); - target->SetModelProperties<MyHomogeneousModel>( - environment::Medium::AirDry1Atm, magneticfield, 1_g / (1_m * 1_m * 1_m), - environment::NuclearComposition(std::vector<Code>{Code::Oxygen}, - std::vector<float>{1.})); - auto* targetPtr = target.get(); - worldPtr->AddChild(std::move(target)); - - auto [stack, viewPtr] = setup::testing::setupStack(PID, 0, 0, P0, targetPtr, cs); - { [[maybe_unused]] auto& viewPtr_dum = viewPtr; } - auto particle = stack->first(); - // Note: momentum in X-direction - // magnetic field in Z-direction - // put particle on x_start, 0, 0 - // expect intersections somewere in +-y_start - - if (outer) { - particle.SetNode(worldPtr); // set particle inside "target" volume - } else { - particle.SetNode(targetPtr); // set particle outside "target" volume - } - particle.SetPosition(Point(cs, -radius, 0_m, 0_m)); - - auto [traj, nextVol] = tracking.GetTrack(particle); - particle.SetNode(nextVol); - particle.SetPosition(traj.GetPosition(1)); - particle.SetMomentum(traj.GetDirection(1) * particle.GetMomentum().norm()); - if (outer) { - // now we know we are in target volume, depending on "outer" - CHECK(traj.GetLength(1) == 0_m); - CHECK(nextVol == targetPtr); - } - // move forward, until we leave target volume - while (nextVol == targetPtr) { - const auto [traj2, nextVol2] = tracking.GetTrack(particle); - nextVol = nextVol2; - particle.SetNode(nextVol); - particle.SetPosition(traj2.GetPosition(1)); - particle.SetMomentum(traj2.GetDirection(1) * particle.GetMomentum().norm()); - } - CHECK(nextVol == worldPtr); - - Point pointCheck(cs, (deflect == 0 ? radius : 0_m), (deflect * radius), 0_m); - - C8LOG_DEBUG("testTrackingLineStack: deflect={}, momentum={}, pos={}, pos_check={}", - deflect, particle.GetMomentum().GetComponents(), - particle.GetPosition().GetCoordinates(), pointCheck.GetCoordinates()); - - CHECK((particle.GetPosition() - pointCheck).norm() / radius == - Approx(0).margin(1e-3)); - } -} diff --git a/Processes/TrackingLeapFrogCurved/CMakeLists.txt b/Processes/TrackingLeapFrogCurved/CMakeLists.txt deleted file mode 100644 index 8b3794d695fc1b0ac1e57d98241f7f876ede0833..0000000000000000000000000000000000000000 --- a/Processes/TrackingLeapFrogCurved/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -set ( - MODEL_HEADERS - Tracking.h - ) - -set ( - MODEL_NAMESPACE - corsika/process/tracking_leapfrog_curved - ) - -add_library (ProcessTrackingLeapFrogCurved INTERFACE) -CORSIKA_COPY_HEADERS_TO_NAMESPACE (ProcessTrackingLeapFrogCurved ${MODEL_NAMESPACE} ${MODEL_HEADERS}) - -# target dependencies on other libraries (also the header onlys) -target_link_libraries ( - ProcessTrackingLeapFrogCurved - INTERFACE - ProcessTrackingIntersects - CORSIKAsetup - CORSIKAutilities - CORSIKAenvironment - CORSIKAunits - CORSIKAenvironment - CORSIKAgeometry - CORSIKAlogging - ) - -target_include_directories ( - ProcessTrackingLeapFrogCurved - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -install (FILES ${MODEL_HEADERS} DESTINATION include/${MODEL_NAMESPACE}) - -# Note: all Tracking Algorithms are tested in testTracking diff --git a/Processes/TrackingLeapFrogCurved/Tracking.h b/Processes/TrackingLeapFrogCurved/Tracking.h deleted file mode 100644 index da636d6563583096e524a8f08b60150a44169068..0000000000000000000000000000000000000000 --- a/Processes/TrackingLeapFrogCurved/Tracking.h +++ /dev/null @@ -1,316 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * See file AUTHORS for a list of contributors. - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <corsika/process/tracking_line/Tracking.h> -#include <corsika/process/tracking/Intersect.hpp> -#include <corsika/geometry/Line.h> -#include <corsika/geometry/Plane.h> -#include <corsika/geometry/Sphere.h> -#include <corsika/geometry/Trajectory.h> -#include <corsika/geometry/Vector.h> -#include <corsika/geometry/Intersections.hpp> -#include <corsika/particles/ParticleProperties.h> -#include <corsika/units/PhysicalUnits.h> -#include <corsika/utl/quartic.h> -#include <corsika/logging/Logging.h> - -#include <type_traits> -#include <utility> - -#include <fstream> - -namespace corsika::process { - - namespace tracking_leapfrog_curved { - - typedef corsika::geometry::Vector<corsika::units::si::magnetic_flux_density_d> - MagneticFieldVector; - - /** - * \function LeapFrogStep - * - * Performs one leap-frog step consistent of two halve-steps with steplength/2 - * The step is caluculated analytically precisely to reach to the next volume - *boundary. - **/ - template <typename TParticle> - auto LeapFrogStep(const TParticle& particle, - corsika::units::si::LengthType steplength) { - using namespace corsika::units::si; - if (particle.GetMomentum().norm() == 0_GeV) { - return std::make_tuple(particle.GetPosition(), particle.GetMomentum() / 1_GeV, - double(0)); - } // charge of the particle - const int chargeNumber = particle.GetChargeNumber(); - auto const* currentLogicalVolumeNode = particle.GetNode(); - MagneticFieldVector const& magneticfield = - currentLogicalVolumeNode->GetModelProperties().GetMagneticField( - particle.GetPosition()); - geometry::Vector<SpeedType::dimension_type> velocity = - particle.GetMomentum() / particle.GetEnergy() * corsika::units::constants::c; - decltype(corsika::units::si::meter / - (corsika::units::si::second * corsika::units::si::volt)) k = - chargeNumber * corsika::units::constants::cSquared * 1_eV / - (velocity.norm() * particle.GetEnergy() * 1_V); - geometry::Vector<dimensionless_d> direction = velocity.normalized(); - auto position = particle.GetPosition(); // First Movement - // assuming magnetic field does not change during movement - position = - position + direction * steplength / 2; // Change of direction by magnetic field - direction = - direction + direction.cross(magneticfield) * steplength * k; // Second Movement - position = position + direction * steplength / 2; - auto steplength_true = steplength * (1.0 + (double)direction.norm()) / 2; - return std::make_tuple(position, direction.normalized(), steplength_true); - } - - /** - * \class Tracking - * - * The class tracking_leapfrog_curved::Tracking is based on the - * Bachelor thesis of Andre Schmidt (KIT). It implements a - * two-step leap-frog algorithm, but with analytically exact geometric - * intersections between leap-frog steps and geometric volumes - * (spheres, planes). - * - **/ - - class Tracking : public corsika::process::tracking::Intersect<Tracking> { - - public: - Tracking() - : straightTracking_{tracking_line::Tracking()} {} - - template <typename TParticle> - auto GetTrack(TParticle const& particle) { - using namespace corsika::units::si; - using namespace corsika::geometry; - geometry::Vector<SpeedType::dimension_type> const initialVelocity = - particle.GetMomentum() / particle.GetEnergy() * corsika::units::constants::c; - - auto const position = particle.GetPosition(); - C8LOG_DEBUG( - "Tracking pid: {}" - " , E = {} GeV", - particle.GetPID(), particle.GetEnergy() / 1_GeV); - C8LOG_DEBUG("Tracking pos: {}", position.GetCoordinates()); - C8LOG_DEBUG("Tracking E: {} GeV", particle.GetEnergy() / 1_GeV); - C8LOG_DEBUG("Tracking p: {} GeV", - particle.GetMomentum().GetComponents() / 1_GeV); - C8LOG_DEBUG("Tracking v: {} ", initialVelocity.GetComponents()); - - typedef - typename std::remove_reference<decltype(*particle.GetNode())>::type node_type; - node_type& volumeNode = *particle.GetNode(); - - // for the event of magnetic fields and curved trajectories, we need to limit - // maximum step-length since we need to follow curved - // trajectories segment-wise -- at least if we don't employ concepts as "Helix - // Trajectories" or similar - MagneticFieldVector const& magneticfield = - volumeNode.GetModelProperties().GetMagneticField(position); - corsika::units::si::MagneticFluxType const magnitudeB = magneticfield.norm(); - int const chargeNumber = particle.GetChargeNumber(); - bool const no_deflection = chargeNumber == 0 || magnitudeB == 0_T; - - if (no_deflection) { return GetLinearTrajectory(particle); } - - HEPMomentumType const pAlongB_delta = - (particle.GetMomentum() - - particle.GetMomentum().parallelProjectionOnto(magneticfield)) - .norm(); - - if (pAlongB_delta == 0_GeV) { - // particle travel along, parallel to magnetic field. Rg is - // "0", but for purpose of step limit we return infinity here. - C8LOG_TRACE("pAlongB_delta is 0_GeV --> parallel"); - return GetLinearTrajectory(particle); - } - - LengthType const gyroradius = - (pAlongB_delta * 1_V / - (corsika::units::constants::c * abs(chargeNumber) * magnitudeB * 1_eV)); - - const double maxRadians = 0.01; - const LengthType steplimit = 2 * cos(maxRadians) * sin(maxRadians) * gyroradius; - const TimeType steplimit_time = steplimit / initialVelocity.norm(); - C8LOG_DEBUG("gyroradius {}, steplimit: {} = {}", gyroradius, steplimit, - steplimit_time); - - // traverse the environment volume tree and find next - // intersection - auto [minTime, minNode] = - tracking::Intersect<Tracking>::nextIntersect(particle, steplimit_time); - - const auto k = chargeNumber * corsika::units::constants::cSquared * 1_eV / - (particle.GetEnergy() * 1_V); - return std::make_tuple( - geometry::LeapFrogTrajectory(position, initialVelocity, magneticfield, k, - minTime), // trajectory - minNode); // next volume node - } - - template <typename TParticle, typename TMedium> - static geometry::Intersections Intersect(const TParticle& particle, - const corsika::geometry::Sphere& sphere, - const TMedium& medium) { - using namespace corsika::units::si; - - if (sphere.GetRadius() == 1_km * std::numeric_limits<double>::infinity()) { - return geometry::Intersections(); - } - - const int chargeNumber = particle.GetChargeNumber(); - const auto& position = particle.GetPosition(); - MagneticFieldVector const& magneticfield = medium.GetMagneticField(position); - - const geometry::Vector<SpeedType::dimension_type> velocity = - particle.GetMomentum() / particle.GetEnergy() * corsika::units::constants::c; - const geometry::Vector<dimensionless_d> directionBefore = - velocity.normalized(); // determine steplength to next volume - - auto const projectedDirection = directionBefore.cross(magneticfield); - auto const projectedDirectionSqrNorm = projectedDirection.GetSquaredNorm(); - bool const isParallel = (projectedDirectionSqrNorm == 0 * square(1_T)); - - if (chargeNumber == 0 || magneticfield.norm() == 0_T || isParallel) { - return tracking_line::Tracking::Intersect(particle, sphere, medium); - } - - bool const numericallyInside = sphere.Contains(particle.GetPosition()); - - const auto absVelocity = velocity.norm(); - auto energy = particle.GetEnergy(); - auto k = chargeNumber * corsika::units::constants::cSquared * 1_eV / - (absVelocity * energy * 1_V); - - auto const denom = - (directionBefore.cross(magneticfield)).GetSquaredNorm() * k * k; - const double a = - ((directionBefore.cross(magneticfield)).dot(position - sphere.GetCenter()) * - k + - 1) * - 4 / (1_m * 1_m * denom); - const double b = directionBefore.dot(position - sphere.GetCenter()) * 8 / - (denom * 1_m * 1_m * 1_m); - const double c = ((position - sphere.GetCenter()).GetSquaredNorm() - - (sphere.GetRadius() * sphere.GetRadius())) * - 4 / (denom * 1_m * 1_m * 1_m * 1_m); - C8LOG_TRACE("denom={}, a={}, b={}, c={}", denom, a, b, c); - std::complex<double>* solutions = solve_quartic(0, a, b, c); - LengthType d_enter, d_exit; - int first = 0, first_entry = 0, first_exit = 0; - for (int i = 0; i < 4; i++) { - if (solutions[i].imag() == 0) { - LengthType const dist = solutions[i].real() * 1_m; - C8LOG_TRACE("Solution (real) for current Volume: {} ", dist); - if (numericallyInside) { - // there must be an entry (negative) and exit (positive) solution - if (dist < -0.0001_m) { // security margin to assure transfer to next - // logical volume - if (first_entry == 0) { - d_enter = dist; - } else { - d_enter = std::max(d_enter, dist); // closest negative to zero (-1e-4) m - } - first_entry++; - - } else { // thus, dist >= -0.0001_m - - if (first_exit == 0) { - d_exit = dist; - } else { - d_exit = std::min(d_exit, dist); // closest positive to zero (-1e-4) m - } - first_exit++; - } - first = int(first_exit > 0) + int(first_entry > 0); - - } else { // thus, numericallyInside == false - - // both physical solutions (entry, exit) must be positive, and as small as - // possible - if (dist < -0.0001_m) { // need small numerical margin, to assure transport - // into next logical volume - continue; - } - if (first == 0) { - d_enter = dist; - } else { - if (dist < d_enter) { - d_exit = d_enter; - d_enter = dist; - } else { - d_exit = dist; - } - } - first++; - } - } // loop over solutions - } - delete[] solutions; - - if (first != 2) { // entry and exit points found - C8LOG_DEBUG("no intersection! count={}", first); - return geometry::Intersections(); - } - return geometry::Intersections(d_enter / absVelocity, d_exit / absVelocity); - } - - template <typename TParticle, typename TBaseNodeType> - static geometry::Intersections Intersect(const TParticle& particle, - const TBaseNodeType& volumeNode) { - const geometry::Sphere* sphere = - dynamic_cast<const geometry::Sphere*>(&volumeNode.GetVolume()); - if (sphere) { - return Intersect(particle, *sphere, volumeNode.GetModelProperties()); - } - throw std::runtime_error( - "The Volume type provided is not supported in Intersect(particle, node)"); - } - - protected: - /** - * Use internally stored class tracking_line::Tracking to - * perform a straight line tracking, if no magnetic bendig was - * detected. - * - */ - template <typename TParticle> - auto GetLinearTrajectory(TParticle& particle) { - - using namespace corsika::units::si; - - // perform simple linear tracking - auto [straightTrajectory, minNode] = straightTracking_.GetTrack(particle); - - // return as leap-frog trajectory - return std::make_tuple( - geometry::LeapFrogTrajectory( - straightTrajectory.GetLine().GetR0(), - straightTrajectory.GetLine().GetV0(), - MagneticFieldVector(particle.GetPosition().GetCoordinateSystem(), 0_T, - 0_T, 0_T), - square(0_m) / (square(1_s) * 1_V), - straightTrajectory.GetDuration()), // trajectory - minNode); // next volume node - } - - protected: - tracking_line::Tracking - straightTracking_; ///! we want this for neutral and B=0T tracks - - }; // namespace tracking_leapfrog_curved - - } // namespace tracking_leapfrog_curved - -} // namespace corsika::process diff --git a/Processes/TrackingLeapFrogStraight/CMakeLists.txt b/Processes/TrackingLeapFrogStraight/CMakeLists.txt deleted file mode 100644 index fba5345506d54fb40d457f58c5a285fa7119abf4..0000000000000000000000000000000000000000 --- a/Processes/TrackingLeapFrogStraight/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -set ( - MODEL_HEADERS - Tracking.h - ) - -set ( - MODEL_NAMESPACE - corsika/process/tracking_leapfrog_straight - ) - -add_library (ProcessTrackingLeapFrogStraight INTERFACE) -CORSIKA_COPY_HEADERS_TO_NAMESPACE (ProcessTrackingLeapFrogStraight ${MODEL_NAMESPACE} ${MODEL_HEADERS}) - -# target dependencies on other libraries (also the header onlys) -target_link_libraries ( - ProcessTrackingLeapFrogStraight - INTERFACE - CORSIKAsetup - CORSIKAutilities - CORSIKAenvironment - CORSIKAunits - CORSIKAenvironment - CORSIKAgeometry - CORSIKAlogging - ) - -target_include_directories ( - ProcessTrackingLeapFrogStraight - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -install (FILES ${MODEL_HEADERS} DESTINATION include/${MODEL_NAMESPACE}) - -# Note: all Tracking Algorithms are tested in testTracking diff --git a/Processes/TrackingLeapFrogStraight/Tracking.h b/Processes/TrackingLeapFrogStraight/Tracking.h deleted file mode 100644 index efa46981fe1894dc8154e77268e086a35bf06943..0000000000000000000000000000000000000000 --- a/Processes/TrackingLeapFrogStraight/Tracking.h +++ /dev/null @@ -1,235 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * See file AUTHORS for a list of contributors. - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <corsika/geometry/Line.h> -#include <corsika/geometry/Plane.h> -#include <corsika/geometry/Sphere.h> -#include <corsika/geometry/Trajectory.h> -#include <corsika/geometry/Vector.h> -#include <corsika/particles/ParticleProperties.h> -#include <corsika/units/PhysicalUnits.h> -#include <corsika/process/tracking_line/Tracking.h> - -#include <type_traits> -#include <utility> - -#include <fstream> - -namespace corsika::process { - - namespace tracking_leapfrog_straight { - - typedef corsika::geometry::Vector<corsika::units::si::magnetic_flux_density_d> - MagneticFieldVector; - - /** - * \class Tracking - * - * The class tracking_leapfrog_straight::Tracking inherits from - * tracking_line::Tracking and adds a (two-step) Leap-Frog - * algorithms with two halve-steps and magnetic deflection. - * - * The two halve steps are implemented as two straight explicit - * `tracking_line::Tracking`s and all geometry intersections are, - * thus, based on those two straight line elements. - * - * As a precaution for numerical instability, the steplength is - * limited to correspond to a straight line distance to the next - * volume intersection. In typical situations this leads to about - * (at least) one full leap-frog step to the next volume boundary. - * - **/ - - class Tracking : public tracking_line::Tracking { - - public: - /** - * \param firstFraction fraction of first leap-frog halve step - * relative to full linear step to next volume boundary. This - * should not be less than 0.5, otherwise you risk that - * particles will never travel from one volume to the next - * one. A cross should be possible (even likely). If - * firstFraction is too big (~1) the resulting calculated error - * will be largest. - * - */ - Tracking(double firstFraction = 0.55) - : firstFraction_(firstFraction) {} - - template <typename Particle> - auto GetTrack(Particle& particle) { - using namespace corsika::units::si; - using namespace corsika::geometry; - geometry::Vector<SpeedType::dimension_type> initialVelocity = - particle.GetMomentum() / particle.GetEnergy() * corsika::units::constants::c; - - const Point initialPosition = particle.GetPosition(); - C8LOG_DEBUG( - "TrackingB pid: {}" - " , E = {} GeV", - particle.GetPID(), particle.GetEnergy() / 1_GeV); - C8LOG_DEBUG("TrackingB pos: {}", initialPosition.GetCoordinates()); - C8LOG_DEBUG("TrackingB E: {} GeV", particle.GetEnergy() / 1_GeV); - C8LOG_DEBUG("TrackingB p: {} GeV", - particle.GetMomentum().GetComponents() / 1_GeV); - C8LOG_DEBUG("TrackingB v: {} ", initialVelocity.GetComponents()); - - typedef decltype(particle.GetNode()) node_type; - const node_type volumeNode = particle.GetNode(); - - // check if particle is moving at all - const auto absVelocity = initialVelocity.norm(); - if (absVelocity * 1_s == 0_m) { - return std::make_tuple( - geometry::LineTrajectory(geometry::Line(initialPosition, initialVelocity), - 0_s), - volumeNode); - } - - // charge of the particle, and magnetic field - const int chargeNumber = particle.GetChargeNumber(); - auto magneticfield = - volumeNode->GetModelProperties().GetMagneticField(initialPosition); - const auto magnitudeB = magneticfield.GetNorm(); - C8LOG_DEBUG("field={} uT, chargeNumber={}, magnitudeB={} uT", - magneticfield.GetComponents() / 1_uT, chargeNumber, magnitudeB / 1_T); - bool const no_deflection = chargeNumber == 0 || magnitudeB == 0_T; - - // check, where the first halve-step direction has geometric intersections - const auto [initialTrack, initialTrackNextVolume] = - tracking_line::Tracking::GetTrack(particle); - { [[maybe_unused]] auto& initialTrackNextVolume_dum = initialTrackNextVolume; } - const auto initialTrackLength = initialTrack.GetLength(1); - - C8LOG_DEBUG("initialTrack(0)={}, initialTrack(1)={}, initialTrackLength={}", - initialTrack.GetPosition(0).GetCoordinates(), - initialTrack.GetPosition(1).GetCoordinates(), initialTrackLength); - - // if particle is non-deflectable, we are done: - if (no_deflection) { - C8LOG_DEBUG("no deflection. tracking finished"); - return std::make_tuple(initialTrack, initialTrackNextVolume); - } - - HEPMomentumType const pAlongB_delta = - (particle.GetMomentum() - - particle.GetMomentum().parallelProjectionOnto(magneticfield)) - .norm(); - - if (pAlongB_delta == 0_GeV) { - // particle travel along, parallel to magnetic field. Rg is - // "0", but for purpose of step limit we return infinity here. - C8LOG_TRACE("pAlongB_delta is 0_GeV --> parallel"); - return std::make_tuple(initialTrack, initialTrackNextVolume); - } - - LengthType const gyroradius = - (pAlongB_delta * 1_V / - (corsika::units::constants::c * abs(chargeNumber) * magnitudeB * 1_eV)); - - // we need to limit maximum step-length since we absolutely - // need to follow strongly curved trajectories segment-wise, - // at least if we don't employ concepts as "Helix - // Trajectories" or similar - const double maxRadians = 0.01; - const LengthType steplimit = 2 * cos(maxRadians) * sin(maxRadians) * gyroradius; - C8LOG_DEBUG("gyroradius {}, Steplimit: {}", gyroradius, steplimit); - - - // calculate first halve step for "steplimit" - const auto initialMomentum = particle.GetMomentum(); - const auto absMomentum = initialMomentum.norm(); - const geometry::Vector<dimensionless_d> direction = initialVelocity.normalized(); - - // avoid any intersections within first halve steplength - LengthType const firstHalveSteplength = - std::min(steplimit, initialTrackLength * firstFraction_); - - C8LOG_DEBUG("first halve step length {}, steplimit={}, initialTrackLength={}", - firstHalveSteplength, steplimit, initialTrackLength); - // perform the first halve-step - const Point position_mid = initialPosition + direction * firstHalveSteplength; - const auto k = chargeNumber * corsika::units::constants::c * 1_eV / - (particle.GetMomentum().norm() * 1_V); - const auto new_direction = - direction + direction.cross(magneticfield) * firstHalveSteplength * 2 * k; - const auto new_direction_norm = new_direction.norm(); // by design this is >1 - C8LOG_DEBUG( - "position_mid={}, new_direction={}, (new_direction_norm)={}, deflection={}", - position_mid.GetCoordinates(), new_direction.GetComponents(), - new_direction_norm, - acos(std::min(1.0, direction.dot(new_direction) / new_direction_norm)) * 180 / - M_PI); - - // check, where the second halve-step direction has geometric intersections - particle.SetPosition(position_mid); - particle.SetMomentum(new_direction * absMomentum); - const auto [finalTrack, finalTrackNextVolume] = - tracking_line::Tracking::GetTrack(particle); - particle.SetPosition(initialPosition); // this is not nice... - particle.SetMomentum(initialMomentum); // this is not nice... - - LengthType const finalTrackLength = finalTrack.GetLength(1); - LengthType const secondLeapFrogLength = firstHalveSteplength * new_direction_norm; - - // check if volume transition is obvious, OR - // for numerical reasons, particles slighly bend "away" from a - // volume boundary have a very hard time to cross the border, - // thus, if secondLeapFrogLength is just slighly shorter (1e-4m) than - // finalTrackLength we better just [extend the - // secondLeapFrogLength slightly and] force the volume - // crossing: - bool const switch_volume = finalTrackLength - 0.0001_m <= secondLeapFrogLength; - LengthType const secondHalveStepLength = - std::min(secondLeapFrogLength, finalTrackLength); - - C8LOG_DEBUG( - "finalTrack(0)={}, finalTrack(1)={}, finalTrackLength={}, " - "secondLeapFrogLength={}, secondHalveStepLength={}, " - "secondLeapFrogLength-finalTrackLength={}, " - "secondHalveStepLength-finalTrackLength={}, " - "nextVol={}, transition={}", - finalTrack.GetPosition(0).GetCoordinates(), - finalTrack.GetPosition(1).GetCoordinates(), finalTrackLength, - secondLeapFrogLength, secondHalveStepLength, - secondLeapFrogLength - finalTrackLength, - secondHalveStepLength - finalTrackLength, fmt::ptr(finalTrackNextVolume), - switch_volume); - - // perform the second halve-step - auto const new_direction_normalized = new_direction.normalized(); - const Point finalPosition = - position_mid + new_direction_normalized * secondHalveStepLength; - - const LengthType totalStep = firstHalveSteplength + secondHalveStepLength; - const auto delta_pos = finalPosition - initialPosition; - const auto distance = delta_pos.norm(); - - return std::make_tuple( - geometry::LineTrajectory( - geometry::Line(initialPosition, - (distance == 0_m ? initialVelocity - : delta_pos.normalized() * absVelocity)), - distance / absVelocity, // straight distance - totalStep / absVelocity, // bend distance - initialVelocity, - new_direction_normalized * absVelocity), // trajectory - (switch_volume ? finalTrackNextVolume : volumeNode)); - } - - protected: - double firstFraction_; - }; - - } // namespace tracking_leapfrog_straight - -} // namespace corsika::process diff --git a/Processes/TrackingLine/Tracking.cc b/Processes/TrackingLine/Tracking.cc deleted file mode 100644 index 6529bf8b705594809f8ab1515ec4d2891a08aa66..0000000000000000000000000000000000000000 --- a/Processes/TrackingLine/Tracking.cc +++ /dev/null @@ -1,24 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#include <corsika/environment/Environment.h> -#include <corsika/geometry/Point.h> -#include <corsika/geometry/QuantityVector.h> -#include <corsika/geometry/Sphere.h> -#include <corsika/geometry/Vector.h> -#include <corsika/process/tracking_line/Tracking.h> -#include <corsika/logging/Logging.h> - -#include <limits> -#include <stdexcept> -#include <utility> - -using namespace corsika::geometry; -using namespace corsika::units::si; - -namespace corsika::process::tracking_line {} // namespace corsika::process::tracking_line diff --git a/Processes/TrackingLine/Tracking.h b/Processes/TrackingLine/Tracking.h deleted file mode 100644 index 0dfac370a702e864068fdd523e20ec488886629c..0000000000000000000000000000000000000000 --- a/Processes/TrackingLine/Tracking.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - * - * This software is distributed under the terms of the GNU General Public - * Licence version 3 (GPL Version 3). See file LICENSE for a full version of - * the license. - */ - -#pragma once - -#include <corsika/geometry/Line.h> -#include <corsika/geometry/Plane.h> -#include <corsika/geometry/Sphere.h> -#include <corsika/geometry/Vector.h> -#include <corsika/geometry/Intersections.hpp> -#include <corsika/units/PhysicalUnits.h> -#include <corsika/logging/Logging.h> -#include <corsika/process/tracking/Intersect.hpp> -#include <corsika/geometry/Trajectory.h> - -#include <type_traits> -#include <utility> - -namespace corsika::process { - - namespace tracking_line { - - /** - * \class Tracking - * - * - * - **/ - - class Tracking : public corsika::process::tracking::Intersect<Tracking> { - - public: - - template <typename TParticle> - auto GetTrack(TParticle const& particle) { - using namespace corsika::units::si; - using namespace corsika::geometry; - geometry::Vector<SpeedType::dimension_type> const initialVelocity = - particle.GetMomentum() / particle.GetEnergy() * corsika::units::constants::c; - - auto const initialPosition = particle.GetPosition(); - C8LOG_DEBUG( - "Tracking pid: {}" - " , E = {} GeV", - particle.GetPID(), particle.GetEnergy() / 1_GeV); - C8LOG_DEBUG("Tracking pos: {}", initialPosition.GetCoordinates()); - C8LOG_DEBUG("Tracking E: {} GeV", particle.GetEnergy() / 1_GeV); - C8LOG_DEBUG("Tracking p: {} GeV", - particle.GetMomentum().GetComponents() / 1_GeV); - C8LOG_DEBUG("Tracking v: {} ", initialVelocity.GetComponents()); - - // traverse the environment volume tree and find next - // intersection - auto [minTime, minNode] = tracking::Intersect<Tracking>::nextIntersect(particle); - - return std::make_tuple( - geometry::LineTrajectory(geometry::Line(initialPosition, initialVelocity), - minTime), // trajectory - minNode); // next volume node - } - - template <typename TParticle, typename TMedium> - static geometry::Intersections Intersect(const TParticle& particle, - const corsika::geometry::Sphere& sphere, - const TMedium&) { - using namespace corsika::units::si; - auto const delta = particle.GetPosition() - sphere.GetCenter(); - auto const velocity = - particle.GetMomentum() / particle.GetEnergy() * corsika::units::constants::c; - auto const vSqNorm = velocity.squaredNorm(); - auto const R = sphere.GetRadius(); - - auto const vDotDelta = velocity.dot(delta); - auto const discriminant = - vDotDelta * vDotDelta - vSqNorm * (delta.squaredNorm() - R * R); - - if (discriminant.magnitude() > 0) { - auto const sqDisc = sqrt(discriminant); - auto const invDenom = 1 / vSqNorm; - return geometry::Intersections((-vDotDelta - sqDisc) * invDenom, - (-vDotDelta + sqDisc) * invDenom); - } - return geometry::Intersections(); - } - - template <typename TParticle, typename TBaseNodeType> - static geometry::Intersections Intersect(const TParticle& particle, - const TBaseNodeType& volumeNode) { - const geometry::Sphere* sphere = - dynamic_cast<const geometry::Sphere*>(&volumeNode.GetVolume()); - if (sphere) { - return Intersect(particle, *sphere, volumeNode.GetModelProperties()); - } - throw std::runtime_error( - "The Volume type provided is not supported in Intersect(particle, node)"); - } - - template <typename TParticle, typename TMedium> - static geometry::Intersections Intersect(const TParticle& particle, - const geometry::Plane& plane, - const TMedium&) { - using namespace corsika::units::si; - auto const delta = plane.GetCenter() - particle.GetPosition(); - auto const velocity = - particle.GetMomentum() / particle.GetEnergy() * corsika::units::constants::c; - auto const n = plane.GetNormal(); - auto const c = n.dot(velocity); - - return Intersections(c.magnitude() == 0 - ? std::numeric_limits<TimeType::value_type>::infinity() * - 1_s - : n.dot(delta) / c); - } - - }; - - } // namespace tracking_line - -} // namespace corsika::process diff --git a/Processes/UrQMD/urqmd_xs.cc b/Processes/UrQMD/urqmd_xs.cc deleted file mode 100644 index 8fd9e225165ceb802cc5c5cd93e682f4cb8b6e82..0000000000000000000000000000000000000000 --- a/Processes/UrQMD/urqmd_xs.cc +++ /dev/null @@ -1,41 +0,0 @@ -/* - * (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. - */ - -// a little helper to dump UrQMD cross-sections - -#include <corsika/process/urqmd/UrQMD.h> -#include <corsika/random/RNGManager.h> -#include <corsika/units/PhysicalUnits.h> - -#include <cstdlib> -#include <fstream> -#include <iostream> - -using namespace corsika; -using namespace corsika::units::si; - -int main() { - random::RNGManager::GetInstance().RegisterRandomStream("UrQMD"); - corsika::process::UrQMD::UrQMD urqmd; - - std::vector<particles::Code> const projectiles{ - {particles::Code::Proton, particles::Code::AntiProton, particles::Code::Neutron, - particles::Code::AntiNeutron, particles::Code::PiPlus, particles::Code::PiMinus, - particles::Code::KPlus, particles::Code::KMinus, particles::Code::K0Short}}; - - for (auto const& p : projectiles) { - std::ofstream file(std::string("xs_") + particles::GetName(p) + ".dat"); - for (auto Elab = particles::GetMass(p) + 200_MeV; Elab <= 10_TeV; Elab *= 1.02) { - file << Elab / 1_GeV << '\t' - << urqmd.GetTabulatedCrossSection(p, particles::Code::Nitrogen, Elab) / 1_mb - << std::endl; - } - } - - return EXIT_SUCCESS; -} diff --git a/Python/.gitignore b/Python/.gitignore deleted file mode 100644 index d82fa7a96c90159c0dba3052f3a09284f027a1a7..0000000000000000000000000000000000000000 --- a/Python/.gitignore +++ /dev/null @@ -1,143 +0,0 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -pip-wheel-metadata/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# static files generated from Django application using `collectstatic` -media -static diff --git a/Python/LICENSE b/Python/LICENSE deleted file mode 100644 index 94a9ed024d3859793618152ea559a168bbcbb5e2..0000000000000000000000000000000000000000 --- a/Python/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - <program> Copyright (C) <year> <name of author> - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -<http://www.gnu.org/licenses/>. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/Python/MANIFEST.in b/Python/MANIFEST.in deleted file mode 100644 index 71ad1dd3fe695d51c480ed670804f50fedca6644..0000000000000000000000000000000000000000 --- a/Python/MANIFEST.in +++ /dev/null @@ -1,4 +0,0 @@ -include README.md LICENSE -recursive-include corsika * -recursive-include scripts * -recursive-include examples * diff --git a/Python/Makefile b/Python/Makefile deleted file mode 100644 index 59a1613fdf9cd1605eb64b675e2e2a82ba85e034..0000000000000000000000000000000000000000 --- a/Python/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -## -# ## -# corsika -# -# @file - -# find python3 -PYTHON=`which python3` - -# our testing targets -.PHONY: tests flake black isort all - -all: mypy isort black flake tests - -tests: - ${PYTHON} -m pytest --cov=corsika tests - -flake: - ${PYTHON} -m flake8 corsika - -black: - ${PYTHON} -m black -t py37 corsika tests - -isort: - ${PYTHON} -m isort --atomic corsika tests - -mypy: - ${PYTHON} -m mypy corsika - -# end diff --git a/Python/README.md b/Python/README.md deleted file mode 100644 index 1f421371a2a71ef94d83e5a1cdd7f8bf9ab27f7a..0000000000000000000000000000000000000000 --- a/Python/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# Python for CORSIKA8 - - - -[](https://github.com/psf/black) - -## Installation - -To install the CORSIKA 8 Python library, you will need Python >= 3.6. The below -instructions are assuming that `python` refers to Python 3.\*. If `python` still -refers to Python 2.\*, please replace `python` with `python3` and `pip` with -`pip3`. - -To install this package, change into the `corsika/Python` directory and run - - pip install --user -e . - -You can verify that the installation was successful by trying to import `corsika` - - python -c 'import corsika' - -## Running the Tests - -If you wish to develop new features in `corsika`, you will also need to install -some additional dependencies so you can run our unit tests. These can be -installed with - - pip install --user -e '.[test]' - -Once that is completed, you can run the unit tests directory from the `corsika` directory - - python -m pytest tests - -## Development Guide - -`corsika` is a type Python package with type-checking using -[Mypy](mypy-lang.org) and all code is formatted with the -[Black](https://black.readthedocs.io/en/stable/) formatter. - -All code must pass these checks, as well as several others, before it can be -merged into CORSIKA. A `Makefile` is provided to simplify running these in -tasks. - - make mypy # this will run the mypy type checker - - make isort # this will automatically sort `import` statements - - make black # this will automatically format your code - - make flake # this checks that all code passes our linting rules - - make tests # this runs our test suite - -Lastly, we provide an `all` target that runs *all* of the above in the sequence shown above: - - make all # run all of the above tests diff --git a/Python/corsika/__init__.py b/Python/corsika/__init__.py deleted file mode 100644 index cf4f1519eae59106d31ae10721fa393f8fb51c8e..0000000000000000000000000000000000000000 --- a/Python/corsika/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -""" - (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - - This software is distributed under the terms of the GNU General Public - Licence version 3 (GPL Version 3). See file LICENSE for a full version of - the license. -""" - -__version__: str = "8.0.0-alpha" diff --git a/Python/corsika/py.typed b/Python/corsika/py.typed deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/Python/setup.cfg b/Python/setup.cfg deleted file mode 100644 index d318235ee166e27b1e147bae61daf5ef95e91f81..0000000000000000000000000000000000000000 --- a/Python/setup.cfg +++ /dev/null @@ -1,61 +0,0 @@ -[flake8] -# use a slightly longer line to be consistent with black -max-line-length = 88 - -# E231 is missing whitespace after a comma -# this contradicts the black formatting rules -# and therefore creates spurious errors -ignore = E231 - -# we set various directories we want to exclude -exclude = - # Don't bother checking in cache directories - __pycache__ - - -[isort] -# use parenthesis for multi-line imports -use_parentheses = true - - -[mypy] -# the primary Python version -python_version = 3.7 - -# allow returning Any -# this creates excessive errors when using libraries -# that don't have MyPy typing support -warn_return_any = False - -# don't allow untyped functions -disallow_untyped_defs = True - -# warn if any part of this config is mispelled -warn_unused_configs = True - -# warn for missing type information -warn_incomplete_stub = True - -# warn us if we don't return from a function explicitly -warn_no_return = True - -# use incremental typing to speed things up -incremental = True - -# show error contexts -show_error_context = True - -# and show the column numbers for errors -show_column_numbers = True - -# ignore missing types for setuptools -[mypy-setuptools.*] -ignore_missing_imports = True - -# ignore missing types for numpy -[mypy-numpy.*] -ignore_missing_imports = True - -# ignore missing types for matplotlib -[mypy-matplotlib.*] -ignore_missing_imports = True diff --git a/Python/setup.py b/Python/setup.py deleted file mode 100644 index 36360358f181b35f8c36c548c3778b92436c0c7e..0000000000000000000000000000000000000000 --- a/Python/setup.py +++ /dev/null @@ -1,50 +0,0 @@ -from os import path -from setuptools import setup - -# the stereo version -__version__ = "8.0.0-alpha" - -# get the absolute path of this project -here = path.abspath(path.dirname(__file__)) - -# Get the long description from the README file -with open(path.join(here, "README.md"), encoding="utf-8") as f: - long_description = f.read() - -# the standard setup info -setup( - name="corsika", - version=__version__, - description="A Python package for working with CORSIKA 8", - long_description=long_description, - long_description_content_type="text/markdown", - url="https://gitlab.ikp.kit.edu/AirShowerPhysics/corsika", - author="CORSIKA 8 Collaboration", - author_email="corsika-devel@lists.kit.edu", - classifiers=[ - "Development Status :: 3 - Alpha", - "Intended Audience :: Science/Research", - "Topic :: Scientific/Engineering :: Physics", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - ], - keywords=["cosmic ray", "physics", "astronomy", "simulation"], - packages=["corsika"], - python_requires=">=3.6*, <4", - install_requires=["numpy", "pyyaml",], - extras_require={ - "test": [ - "pytest", - "black", - "mypy", - "isort", - "coverage", - "pytest-cov", - "flake8", - ], - }, - scripts=[], - project_urls={"code": "https://gitlab.ikp.kit.edu/AirShowerPhysics/corsika"}, - include_package_data=True, -) diff --git a/Python/tests/test_corsika.py b/Python/tests/test_corsika.py deleted file mode 100644 index be083394e5448f971558c12316f5a6d26b5a3584..0000000000000000000000000000000000000000 --- a/Python/tests/test_corsika.py +++ /dev/null @@ -1,15 +0,0 @@ -""" - (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu - - This software is distributed under the terms of the GNU General Public - Licence version 3 (GPL Version 3). See file LICENSE for a full version of - the license. -""" -import corsika - - -def test_corsika_version() -> None: - """ - Check the current CORSIKA version. - """ - assert corsika.__version__ == "8.0.0-alpha" diff --git a/ThirdParty/boost-107400.tar.bz2 b/ThirdParty/boost-107400.tar.bz2 deleted file mode 100644 index 61575a5e9105b8f383c96fe9928ee1be96fc4c80..0000000000000000000000000000000000000000 Binary files a/ThirdParty/boost-107400.tar.bz2 and /dev/null differ diff --git a/ThirdParty/cnpy/CMakeLists.txt b/ThirdParty/cnpy/CMakeLists.txt deleted file mode 100644 index 4a115728d660361d0159c1c309efdabb332b51c3..0000000000000000000000000000000000000000 --- a/ThirdParty/cnpy/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -set ( - CNPY_SOURCES - cnpy.cpp - ) - -set ( - CNPY_HEADERS - cnpy.hpp - ) - -set ( - CNPY_NAMESPACE - corsika/third_party/cnpy - ) - -add_library (cnpy STATIC ${CNPY_SOURCES}) -CORSIKA_COPY_HEADERS_TO_NAMESPACE (cnpy ${CNPY_NAMESPACE} ${CNPY_HEADERS}) - -set_target_properties ( - cnpy - PROPERTIES - VERSION ${PROJECT_VERSION} - SOVERSION 1 - ) - -# target dependencies on other libraries (also the header onlys) -target_link_libraries ( - cnpy - PUBLIC - ZLIB::ZLIB - ) - -target_include_directories ( - cnpy - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -install ( - TARGETS cnpy - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - ) - diff --git a/ThirdParty/cnpy/cnpy.cpp b/ThirdParty/cnpy/cnpy.cpp deleted file mode 100644 index d2eee53d08820803eb14cc56490d699ede2f68ff..0000000000000000000000000000000000000000 --- a/ThirdParty/cnpy/cnpy.cpp +++ /dev/null @@ -1,340 +0,0 @@ -//Copyright (C) 2011 Carl Rogers -//Released under MIT License -//license available in LICENSE file, or at http://www.opensource.org/licenses/mit-license.php - -#include "cnpy.hpp" -#include <complex> -#include <cstdlib> -#include <algorithm> -#include <cstring> -#include <iomanip> -#include <stdint.h> -#include <stdexcept> -#include <regex> - -char cnpy::BigEndianTest() { - int x = 1; - return (((char *)&x)[0]) ? '<' : '>'; -} - -char cnpy::map_type(const std::type_info& t) -{ - if(t == typeid(float) ) return 'f'; - if(t == typeid(double) ) return 'f'; - if(t == typeid(long double) ) return 'f'; - - if(t == typeid(int) ) return 'i'; - if(t == typeid(char) ) return 'i'; - if(t == typeid(short) ) return 'i'; - if(t == typeid(long) ) return 'i'; - if(t == typeid(long long) ) return 'i'; - - if(t == typeid(unsigned char) ) return 'u'; - if(t == typeid(unsigned short) ) return 'u'; - if(t == typeid(unsigned long) ) return 'u'; - if(t == typeid(unsigned long long) ) return 'u'; - if(t == typeid(unsigned int) ) return 'u'; - - if(t == typeid(bool) ) return 'b'; - - if(t == typeid(std::complex<float>) ) return 'c'; - if(t == typeid(std::complex<double>) ) return 'c'; - if(t == typeid(std::complex<long double>) ) return 'c'; - - else return '?'; -} - -template<> std::vector<char>& cnpy::operator+=(std::vector<char>& lhs, const std::string rhs) { - lhs.insert(lhs.end(),rhs.begin(),rhs.end()); - return lhs; -} - -template<> std::vector<char>& cnpy::operator+=(std::vector<char>& lhs, const char* rhs) { - //write in little endian - size_t len = strlen(rhs); - lhs.reserve(len); - for(size_t byte = 0; byte < len; byte++) { - lhs.push_back(rhs[byte]); - } - return lhs; -} - -void cnpy::parse_npy_header(unsigned char* buffer,size_t& word_size, std::vector<size_t>& shape, bool& fortran_order) { - //std::string magic_string(buffer,6); - [[maybe_unused]] uint8_t major_version = *reinterpret_cast<uint8_t*>(buffer+6); - [[maybe_unused]] uint8_t minor_version = *reinterpret_cast<uint8_t*>(buffer+7); - uint16_t header_len = *reinterpret_cast<uint16_t*>(buffer+8); - std::string header(reinterpret_cast<char*>(buffer+9),header_len); - - size_t loc1, loc2; - - //fortran order - loc1 = header.find("fortran_order")+16; - fortran_order = (header.substr(loc1,4) == "True" ? true : false); - - //shape - loc1 = header.find("("); - loc2 = header.find(")"); - - std::regex num_regex("[0-9][0-9]*"); - std::smatch sm; - shape.clear(); - - std::string str_shape = header.substr(loc1+1,loc2-loc1-1); - while(std::regex_search(str_shape, sm, num_regex)) { - shape.push_back(std::stoi(sm[0].str())); - str_shape = sm.suffix().str(); - } - - //endian, word size, data type - //byte order code | stands for not applicable. - //not sure when this applies except for byte array - loc1 = header.find("descr")+9; - bool littleEndian = (header[loc1] == '<' || header[loc1] == '|' ? true : false); - assert(littleEndian); - - //char type = header[loc1+1]; - //assert(type == map_type(T)); - - std::string str_ws = header.substr(loc1+2); - loc2 = str_ws.find("'"); - word_size = atoi(str_ws.substr(0,loc2).c_str()); -} - -void cnpy::parse_npy_header(FILE* fp, size_t& word_size, std::vector<size_t>& shape, bool& fortran_order) { - char buffer[256]; - size_t res = fread(buffer,sizeof(char),11,fp); - if(res != 11) - throw std::runtime_error("parse_npy_header: failed fread"); - std::string header = fgets(buffer,256,fp); - assert(header[header.size()-1] == '\n'); - - size_t loc1, loc2; - - //fortran order - loc1 = header.find("fortran_order"); - if (loc1 == std::string::npos) - throw std::runtime_error("parse_npy_header: failed to find header keyword: 'fortran_order'"); - loc1 += 16; - fortran_order = (header.substr(loc1,4) == "True" ? true : false); - - //shape - loc1 = header.find("("); - loc2 = header.find(")"); - if (loc1 == std::string::npos || loc2 == std::string::npos) - throw std::runtime_error("parse_npy_header: failed to find header keyword: '(' or ')'"); - - std::regex num_regex("[0-9][0-9]*"); - std::smatch sm; - shape.clear(); - - std::string str_shape = header.substr(loc1+1,loc2-loc1-1); - while(std::regex_search(str_shape, sm, num_regex)) { - shape.push_back(std::stoi(sm[0].str())); - str_shape = sm.suffix().str(); - } - - //endian, word size, data type - //byte order code | stands for not applicable. - //not sure when this applies except for byte array - loc1 = header.find("descr"); - if (loc1 == std::string::npos) - throw std::runtime_error("parse_npy_header: failed to find header keyword: 'descr'"); - loc1 += 9; - bool littleEndian = (header[loc1] == '<' || header[loc1] == '|' ? true : false); - assert(littleEndian); - - //char type = header[loc1+1]; - //assert(type == map_type(T)); - - std::string str_ws = header.substr(loc1+2); - loc2 = str_ws.find("'"); - word_size = atoi(str_ws.substr(0,loc2).c_str()); -} - -void cnpy::parse_zip_footer(FILE* fp, uint16_t& nrecs, size_t& global_header_size, size_t& global_header_offset) -{ - std::vector<char> footer(22); - fseek(fp,-22,SEEK_END); - size_t res = fread(&footer[0],sizeof(char),22,fp); - if(res != 22) - throw std::runtime_error("parse_zip_footer: failed fread"); - - uint16_t disk_no, disk_start, nrecs_on_disk, comment_len; - disk_no = *(uint16_t*) &footer[4]; - disk_start = *(uint16_t*) &footer[6]; - nrecs_on_disk = *(uint16_t*) &footer[8]; - nrecs = *(uint16_t*) &footer[10]; - global_header_size = *(uint32_t*) &footer[12]; - global_header_offset = *(uint32_t*) &footer[16]; - comment_len = *(uint16_t*) &footer[20]; - - assert(disk_no == 0); - assert(disk_start == 0); - assert(nrecs_on_disk == nrecs); - assert(comment_len == 0); -} - -cnpy::NpyArray load_the_npy_file(FILE* fp) { - std::vector<size_t> shape; - size_t word_size; - bool fortran_order; - cnpy::parse_npy_header(fp,word_size,shape,fortran_order); - - cnpy::NpyArray arr(shape, word_size, fortran_order); - size_t nread = fread(arr.data<char>(),1,arr.num_bytes(),fp); - if(nread != arr.num_bytes()) - throw std::runtime_error("load_the_npy_file: failed fread"); - return arr; -} - -cnpy::NpyArray load_the_npz_array(FILE* fp, uint32_t compr_bytes, uint32_t uncompr_bytes) { - - std::vector<unsigned char> buffer_compr(compr_bytes); - std::vector<unsigned char> buffer_uncompr(uncompr_bytes); - size_t nread = fread(&buffer_compr[0],1,compr_bytes,fp); - if(nread != compr_bytes) - throw std::runtime_error("load_the_npy_file: failed fread"); - - [[maybe_unused]] int err; - z_stream d_stream; - - d_stream.zalloc = Z_NULL; - d_stream.zfree = Z_NULL; - d_stream.opaque = Z_NULL; - d_stream.avail_in = 0; - d_stream.next_in = Z_NULL; - err = inflateInit2(&d_stream, -MAX_WBITS); - - d_stream.avail_in = compr_bytes; - d_stream.next_in = &buffer_compr[0]; - d_stream.avail_out = uncompr_bytes; - d_stream.next_out = &buffer_uncompr[0]; - - err = inflate(&d_stream, Z_FINISH); - err = inflateEnd(&d_stream); - - std::vector<size_t> shape; - size_t word_size; - bool fortran_order; - cnpy::parse_npy_header(&buffer_uncompr[0],word_size,shape,fortran_order); - - cnpy::NpyArray array(shape, word_size, fortran_order); - - size_t offset = uncompr_bytes - array.num_bytes(); - memcpy(array.data<unsigned char>(),&buffer_uncompr[0]+offset,array.num_bytes()); - - return array; -} - -cnpy::npz_t cnpy::npz_load(std::string fname) { - FILE* fp = fopen(fname.c_str(),"rb"); - - if(!fp) { - throw std::runtime_error("npz_load: Error! Unable to open file "+fname+"!"); - } - - cnpy::npz_t arrays; - - while(1) { - std::vector<char> local_header(30); - size_t headerres = fread(&local_header[0],sizeof(char),30,fp); - if(headerres != 30) - throw std::runtime_error("npz_load: failed fread"); - - //if we've reached the global header, stop reading - if(local_header[2] != 0x03 || local_header[3] != 0x04) break; - - //read in the variable name - uint16_t name_len = *(uint16_t*) &local_header[26]; - std::string varname(name_len,' '); - size_t vname_res = fread(&varname[0],sizeof(char),name_len,fp); - if(vname_res != name_len) - throw std::runtime_error("npz_load: failed fread"); - - //erase the lagging .npy - varname.erase(varname.end()-4,varname.end()); - - //read in the extra field - uint16_t extra_field_len = *(uint16_t*) &local_header[28]; - if(extra_field_len > 0) { - std::vector<char> buff(extra_field_len); - size_t efield_res = fread(&buff[0],sizeof(char),extra_field_len,fp); - if(efield_res != extra_field_len) - throw std::runtime_error("npz_load: failed fread"); - } - - uint16_t compr_method = *reinterpret_cast<uint16_t*>(&local_header[0]+8); - uint32_t compr_bytes = *reinterpret_cast<uint32_t*>(&local_header[0]+18); - uint32_t uncompr_bytes = *reinterpret_cast<uint32_t*>(&local_header[0]+22); - - if(compr_method == 0) {arrays[varname] = load_the_npy_file(fp);} - else {arrays[varname] = load_the_npz_array(fp,compr_bytes,uncompr_bytes);} - } - - fclose(fp); - return arrays; -} - -cnpy::NpyArray cnpy::npz_load(std::string fname, std::string varname) { - FILE* fp = fopen(fname.c_str(),"rb"); - - if(!fp) throw std::runtime_error("npz_load: Unable to open file "+fname); - - while(1) { - std::vector<char> local_header(30); - size_t header_res = fread(&local_header[0],sizeof(char),30,fp); - if(header_res != 30) - throw std::runtime_error("npz_load: failed fread"); - - //if we've reached the global header, stop reading - if(local_header[2] != 0x03 || local_header[3] != 0x04) break; - - //read in the variable name - uint16_t name_len = *(uint16_t*) &local_header[26]; - std::string vname(name_len,' '); - size_t vname_res = fread(&vname[0],sizeof(char),name_len,fp); - if(vname_res != name_len) - throw std::runtime_error("npz_load: failed fread"); - vname.erase(vname.end()-4,vname.end()); //erase the lagging .npy - - //read in the extra field - uint16_t extra_field_len = *(uint16_t*) &local_header[28]; - fseek(fp,extra_field_len,SEEK_CUR); //skip past the extra field - - uint16_t compr_method = *reinterpret_cast<uint16_t*>(&local_header[0]+8); - uint32_t compr_bytes = *reinterpret_cast<uint32_t*>(&local_header[0]+18); - uint32_t uncompr_bytes = *reinterpret_cast<uint32_t*>(&local_header[0]+22); - - if(vname == varname) { - NpyArray array = (compr_method == 0) ? load_the_npy_file(fp) : load_the_npz_array(fp,compr_bytes,uncompr_bytes); - fclose(fp); - return array; - } - else { - //skip past the data - uint32_t size = *(uint32_t*) &local_header[22]; - fseek(fp,size,SEEK_CUR); - } - } - - fclose(fp); - - //if we get here, we haven't found the variable in the file - throw std::runtime_error("npz_load: Variable name "+varname+" not found in "+fname); -} - -cnpy::NpyArray cnpy::npy_load(std::string fname) { - - FILE* fp = fopen(fname.c_str(), "rb"); - - if(!fp) throw std::runtime_error("npy_load: Unable to open file "+fname); - - NpyArray arr = load_the_npy_file(fp); - - fclose(fp); - return arr; -} - - - diff --git a/ThirdParty/cnpy/cnpy.hpp b/ThirdParty/cnpy/cnpy.hpp deleted file mode 100644 index ffbcdb4b522b37b94f3d962bad9c9665d42b776b..0000000000000000000000000000000000000000 --- a/ThirdParty/cnpy/cnpy.hpp +++ /dev/null @@ -1,266 +0,0 @@ -//Copyright (C) 2011 Carl Rogers -//Released under MIT License -//license available in LICENSE file, or at http://www.opensource.org/licenses/mit-license.php - -#pragma once - -#include<string> -#include<stdexcept> -#include<sstream> -#include<vector> -#include<cstdio> -#include<typeinfo> -#include<iostream> -#include<cassert> -#include<zlib.h> -#include<map> -#include<memory> -#include<stdint.h> -#include<numeric> - -namespace cnpy { - - struct NpyArray { - NpyArray(const std::vector<size_t>& _shape, size_t _word_size, bool _fortran_order) : - shape(_shape), word_size(_word_size), fortran_order(_fortran_order) - { - num_vals = 1; - for(size_t i = 0;i < shape.size();i++) num_vals *= shape[i]; - data_holder = std::shared_ptr<std::vector<char>>( - new std::vector<char>(num_vals * word_size)); - } - - NpyArray() : shape(0), word_size(0), fortran_order(0), num_vals(0) { } - - template<typename T> - T* data() { - return reinterpret_cast<T*>(&(*data_holder)[0]); - } - - template<typename T> - const T* data() const { - return reinterpret_cast<T*>(&(*data_holder)[0]); - } - - template<typename T> - std::vector<T> as_vec() const { - const T* p = data<T>(); - return std::vector<T>(p, p+num_vals); - } - - size_t num_bytes() const { - return data_holder->size(); - } - - std::shared_ptr<std::vector<char>> data_holder; - std::vector<size_t> shape; - size_t word_size; - bool fortran_order; - size_t num_vals; - }; - - using npz_t = std::map<std::string, NpyArray>; - - char BigEndianTest(); - char map_type(const std::type_info& t); - template<typename T> std::vector<char> create_npy_header(const std::vector<size_t>& shape); - void parse_npy_header(FILE* fp,size_t& word_size, std::vector<size_t>& shape, bool& fortran_order); - void parse_npy_header(unsigned char* buffer,size_t& word_size, std::vector<size_t>& shape, bool& fortran_order); - void parse_zip_footer(FILE* fp, uint16_t& nrecs, size_t& global_header_size, size_t& global_header_offset); - npz_t npz_load(std::string fname); - NpyArray npz_load(std::string fname, std::string varname); - NpyArray npy_load(std::string fname); - - template<typename T> std::vector<char>& operator+=(std::vector<char>& lhs, const T rhs) { - //write in little endian - for(size_t byte = 0; byte < sizeof(T); byte++) { - char val = *((char*)&rhs+byte); - lhs.push_back(val); - } - return lhs; - } - - template<> std::vector<char>& operator+=(std::vector<char>& lhs, const std::string rhs); - template<> std::vector<char>& operator+=(std::vector<char>& lhs, const char* rhs); - - - template<typename T> void npy_save(std::string fname, const T* data, const std::vector<size_t> shape, std::string mode = "w") { - FILE* fp = NULL; - std::vector<size_t> true_data_shape; //if appending, the shape of existing + new data - - if(mode == "a") fp = fopen(fname.c_str(),"r+b"); - - if(fp) { - //file exists. we need to append to it. read the header, modify the array size - size_t word_size; - bool fortran_order; - parse_npy_header(fp,word_size,true_data_shape,fortran_order); - assert(!fortran_order); - - if(word_size != sizeof(T)) { - std::cout<<"libnpy error: "<<fname<<" has word size "<<word_size<<" but npy_save appending data sized "<<sizeof(T)<<"\n"; - assert( word_size == sizeof(T) ); - } - if(true_data_shape.size() != shape.size()) { - std::cout<<"libnpy error: npy_save attempting to append misdimensioned data to "<<fname<<"\n"; - assert(true_data_shape.size() != shape.size()); - } - - for(size_t i = 1; i < shape.size(); i++) { - if(shape[i] != true_data_shape[i]) { - std::cout<<"libnpy error: npy_save attempting to append misshaped data to "<<fname<<"\n"; - assert(shape[i] == true_data_shape[i]); - } - } - true_data_shape[0] += shape[0]; - } - else { - fp = fopen(fname.c_str(),"wb"); - true_data_shape = shape; - } - - std::vector<char> header = create_npy_header<T>(true_data_shape); - size_t nels = std::accumulate(shape.begin(),shape.end(),1,std::multiplies<size_t>()); - - fseek(fp,0,SEEK_SET); - fwrite(&header[0],sizeof(char),header.size(),fp); - fseek(fp,0,SEEK_END); - fwrite(data,sizeof(T),nels,fp); - fclose(fp); - } - - template<typename T> void npz_save(std::string zipname, std::string fname, const T* data, const std::vector<size_t>& shape, std::string mode = "w") - { - //first, append a .npy to the fname - fname += ".npy"; - - //now, on with the show - FILE* fp = NULL; - uint16_t nrecs = 0; - size_t global_header_offset = 0; - std::vector<char> global_header; - - if(mode == "a") fp = fopen(zipname.c_str(),"r+b"); - - if(fp) { - //zip file exists. we need to add a new npy file to it. - //first read the footer. this gives us the offset and size of the global header - //then read and store the global header. - //below, we will write the the new data at the start of the global header then append the global header and footer below it - size_t global_header_size; - parse_zip_footer(fp,nrecs,global_header_size,global_header_offset); - fseek(fp,global_header_offset,SEEK_SET); - global_header.resize(global_header_size); - size_t res = fread(&global_header[0],sizeof(char),global_header_size,fp); - if(res != global_header_size){ - throw std::runtime_error("npz_save: header read error while adding to existing zip"); - } - fseek(fp,global_header_offset,SEEK_SET); - } - else { - fp = fopen(zipname.c_str(),"wb"); - } - - std::vector<char> npy_header = create_npy_header<T>(shape); - - size_t nels = std::accumulate(shape.begin(),shape.end(),1,std::multiplies<size_t>()); - size_t nbytes = nels*sizeof(T) + npy_header.size(); - - //get the CRC of the data to be added - uint32_t crc = crc32(0L,(uint8_t*)&npy_header[0],npy_header.size()); - crc = crc32(crc,(uint8_t*)data,nels*sizeof(T)); - - //build the local header - std::vector<char> local_header; - local_header += "PK"; //first part of sig - local_header += (uint16_t) 0x0403; //second part of sig - local_header += (uint16_t) 20; //min version to extract - local_header += (uint16_t) 0; //general purpose bit flag - local_header += (uint16_t) 0; //compression method - local_header += (uint16_t) 0; //file last mod time - local_header += (uint16_t) 0; //file last mod date - local_header += (uint32_t) crc; //crc - local_header += (uint32_t) nbytes; //compressed size - local_header += (uint32_t) nbytes; //uncompressed size - local_header += (uint16_t) fname.size(); //fname length - local_header += (uint16_t) 0; //extra field length - local_header += fname; - - //build global header - global_header += "PK"; //first part of sig - global_header += (uint16_t) 0x0201; //second part of sig - global_header += (uint16_t) 20; //version made by - global_header.insert(global_header.end(),local_header.begin()+4,local_header.begin()+30); - global_header += (uint16_t) 0; //file comment length - global_header += (uint16_t) 0; //disk number where file starts - global_header += (uint16_t) 0; //internal file attributes - global_header += (uint32_t) 0; //external file attributes - global_header += (uint32_t) global_header_offset; //relative offset of local file header, since it begins where the global header used to begin - global_header += fname; - - //build footer - std::vector<char> footer; - footer += "PK"; //first part of sig - footer += (uint16_t) 0x0605; //second part of sig - footer += (uint16_t) 0; //number of this disk - footer += (uint16_t) 0; //disk where footer starts - footer += (uint16_t) (nrecs+1); //number of records on this disk - footer += (uint16_t) (nrecs+1); //total number of records - footer += (uint32_t) global_header.size(); //nbytes of global headers - footer += (uint32_t) (global_header_offset + nbytes + local_header.size()); //offset of start of global headers, since global header now starts after newly written array - footer += (uint16_t) 0; //zip file comment length - - //write everything - fwrite(&local_header[0],sizeof(char),local_header.size(),fp); - fwrite(&npy_header[0],sizeof(char),npy_header.size(),fp); - fwrite(data,sizeof(T),nels,fp); - fwrite(&global_header[0],sizeof(char),global_header.size(),fp); - fwrite(&footer[0],sizeof(char),footer.size(),fp); - fclose(fp); - } - - template<typename T> void npy_save(std::string fname, const std::vector<T> data, std::string mode = "w") { - std::vector<size_t> shape; - shape.push_back(data.size()); - npy_save(fname, &data[0], shape, mode); - } - - template<typename T> void npz_save(std::string zipname, std::string fname, const std::vector<T> data, std::string mode = "w") { - std::vector<size_t> shape; - shape.push_back(data.size()); - npz_save(zipname, fname, &data[0], shape, mode); - } - - template<typename T> std::vector<char> create_npy_header(const std::vector<size_t>& shape) { - - std::vector<char> dict; - dict += "{'descr': '"; - dict += BigEndianTest(); - dict += map_type(typeid(T)); - dict += std::to_string(sizeof(T)); - dict += "', 'fortran_order': False, 'shape': ("; - dict += std::to_string(shape[0]); - for(size_t i = 1;i < shape.size();i++) { - dict += ", "; - dict += std::to_string(shape[i]); - } - if(shape.size() == 1) dict += ","; - dict += "), }"; - //pad with spaces so that preamble+dict is modulo 16 bytes. preamble is 10 bytes. dict needs to end with \n - int remainder = 16 - (10 + dict.size()) % 16; - dict.insert(dict.end(),remainder,' '); - dict.back() = '\n'; - - std::vector<char> header; - header += (char) 0x93; - header += "NUMPY"; - header += (char) 0x01; //major version of numpy format - header += (char) 0x00; //minor version of numpy format - header += (uint16_t) dict.size(); - header.insert(header.end(),dict.begin(),dict.end()); - - return header; - } - - -} diff --git a/ThirdParty/pythia8235-stripped.tar.bz2 b/ThirdParty/pythia8235-stripped.tar.bz2 deleted file mode 100644 index da280f738809e54eace85622485d13492448250e..0000000000000000000000000000000000000000 Binary files a/ThirdParty/pythia8235-stripped.tar.bz2 and /dev/null differ diff --git a/ThirdParty/spdlog b/ThirdParty/spdlog deleted file mode 160000 index 58875bdcd790dd2f5cb8d95ef1da7970de0a4530..0000000000000000000000000000000000000000 --- a/ThirdParty/spdlog +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 58875bdcd790dd2f5cb8d95ef1da7970de0a4530 diff --git a/Tools/plot_tracks.py b/Tools/plot_tracks.py deleted file mode 100644 index 2c9b063b3ec5675019a5934286848a389b6dd79e..0000000000000000000000000000000000000000 --- a/Tools/plot_tracks.py +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env python3 - -import os -import sys, getopt -import re - -# (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. - -# with this script you can plot an animation of output of TrackWriter - -tracks_dat="$1" -if [ -z "$tracks_dat" ]; then - echo "usage: $0 <tracks.dat> [output.gif]" >&2 - exit 1 -fi - -directory=$(dirname "$tracks_dat") -hadrons_dat="$directory/hadrons.dat" -muons_dat="$directory/muons.dat" -electrons_dat="$directory/electrons.dat" -gammas_dat="$directory/gammas.dat" - -#if [ "$muons_dat" -ot "$tracks_dat" -o "$hadrons_dat" -ot "$muons_dat" ]; then - echo "splitting $tracks_dat into $muons_dat and $hadrons_dat." - cat "$tracks_dat" | egrep '^\s+-*13\s' > "$muons_dat" - cat "$tracks_dat" | egrep '^\s+-*11\s' > "$electrons_dat" - cat "$tracks_dat" | egrep '^\s+-*22\s' > "$gammas_dat" - cat "$tracks_dat" | egrep -v '^\s+-*13\s' | egrep -v '^\s+-*11\s' | egrep -v '^\s+-*22\s' > "$hadrons_dat" -#fi - -output="$2" -if [ -z "$output" ]; then - output="$tracks_dat.gif" -fi - -echo "creating $output..." - -cat <<EOF | gnuplot -set term gif animate size 900,900 -set output "$output" - -#set zrange [0:40e3] -#set xrange [-10:10] -#set yrange [-10:10] -set xlabel "x / m" -set ylabel "y / m" -set zlabel "z / m" -set title "CORSIKA 8 preliminary" - -do for [t=0:359:1] { -# for separate file per angle: -# set output sprintf("%03d_$output", t) - - set view 80, t - splot "$gammas_dat" u 3:4:5:6:7:8 w vectors nohead lt rgb "orange" t "", "$electrons_dat" u 3:4:5:6:7:8 w vectors nohead lt rgb "blue" t "", "$muons_dat" u 3:4:5:6:7:8 w vectors nohead lt rgb "red" t "", "$hadrons_dat" u 3:4:5:6:7:8 w vectors nohead lc rgb "black" t "" -} -EOF - -exit $? diff --git a/Tools/read_hist.py b/Tools/read_hist.py deleted file mode 100755 index 53fbf0871679c5846ba4884125dab41855d58191..0000000000000000000000000000000000000000 --- a/Tools/read_hist.py +++ /dev/null @@ -1,28 +0,0 @@ -import numpy as np -import boost_histogram as bh -import operator -import functools - -def read_hist(filename): - """ - read numpy file produced with CORSIKA 8's save_hist() function into - boost-histogram object. - """ - - d = np.load(filename) - axistypes = d['axistypes'].view('c') - overflow = d['overflow'] - underflow = d['underflow'] - - axes = [] - for i, (at, has_overflow, has_underflow) in enumerate(zip(axistypes, overflow, underflow)): - if at == b'c': - axes.append(bh.axis.Variable(d[f'binedges_{i}'], overflow=has_overflow, underflow=has_underflow)) - elif at == b'd': - axes.append(bh.axis.IntCategory(d[f'bins_{i}'], growth=(not has_overflow))) - - h = bh.Histogram(*axes) - h.view(flow=True)[:] = d['data'] - - return h -