IAP GITLAB

Skip to content
Snippets Groups Projects
Commit 7e3df7d7 authored by Jean-Marco Alameddine's avatar Jean-Marco Alameddine Committed by Ralf Ulrich
Browse files

Add muons and tau to PROPOSAL particle propagation

parent 4516ac8c
No related branches found
No related tags found
1 merge request!245Include proposal process rebase
...@@ -73,6 +73,31 @@ namespace corsika::process::proposal { ...@@ -73,6 +73,31 @@ namespace corsika::process::proposal {
calc.insert({std::make_pair(&comp, corsika_code), PROPOSAL::make_displacement(cross, true)}); calc.insert({std::make_pair(&comp, corsika_code), PROPOSAL::make_displacement(cross, true)});
return insert_it; return insert_it;
} }
if (corsika_code == particles::Code::MuMinus) {
auto cross = GetStdCrossSections(PROPOSAL::MuMinusDef(), media.at(&comp), cut, true);
auto [insert_it, success] =
calc.insert({std::make_pair(&comp, corsika_code), PROPOSAL::make_displacement(cross, true)});
return insert_it;
}
if (corsika_code == particles::Code::MuPlus) {
auto cross = GetStdCrossSections(PROPOSAL::MuPlusDef(), media.at(&comp), cut, true);
auto [insert_it, success] =
calc.insert({std::make_pair(&comp, corsika_code), PROPOSAL::make_displacement(cross, true)});
return insert_it;
}
if (corsika_code == particles::Code::TauMinus) {
auto cross = GetStdCrossSections(PROPOSAL::TauMinusDef(), media.at(&comp), cut, true);
auto [insert_it, success] =
calc.insert({std::make_pair(&comp, corsika_code), PROPOSAL::make_displacement(cross, true)});
return insert_it;
}
if (corsika_code == particles::Code::TauPlus) {
auto cross = GetStdCrossSections(PROPOSAL::TauPlusDef(), media.at(&comp), cut, true);
auto [insert_it, success] =
calc.insert({std::make_pair(&comp, corsika_code), PROPOSAL::make_displacement(cross, true)});
return insert_it;
}
throw std::runtime_error("PROPOSAL could not find corresponding builder");
} }
template <typename Particle> template <typename Particle>
......
...@@ -92,6 +92,55 @@ namespace corsika::process::proposal { ...@@ -92,6 +92,55 @@ namespace corsika::process::proposal {
PROPOSAL::make_displacement(cross, true))}); PROPOSAL::make_displacement(cross, true))});
return insert_it; return insert_it;
} }
if (corsika_code == particles::Code::MuMinus) {
std::cout << "Build MuMinus tables" << std::endl;
auto cross =
GetStdCrossSections(PROPOSAL::MuMinusDef(), media.at(&comp), cut, true);
auto inter_types = PROPOSAL::CrossSectionVector::GetInteractionTypes(cross);
auto [insert_it, success] = calculators.insert(
{std::make_pair(&comp, corsika_code), make_tuple(PROPOSAL::make_secondaries(
inter_types, PROPOSAL::MuMinusDef(), media.at(&comp)),
PROPOSAL::make_interaction(cross, true),
PROPOSAL::make_displacement(cross, true))});
return insert_it;
}
if (corsika_code == particles::Code::MuPlus) {
std::cout << "Build MuPlus tables" << std::endl;
auto cross =
GetStdCrossSections(PROPOSAL::MuPlusDef(), media.at(&comp), cut, true);
auto inter_types = PROPOSAL::CrossSectionVector::GetInteractionTypes(cross);
auto [insert_it, success] = calculators.insert(
{std::make_pair(&comp, corsika_code), make_tuple(PROPOSAL::make_secondaries(
inter_types, PROPOSAL::MuPlusDef(), media.at(&comp)),
PROPOSAL::make_interaction(cross, true),
PROPOSAL::make_displacement(cross, true))});
return insert_it;
}
if (corsika_code == particles::Code::TauMinus) {
std::cout << "Build TauMinus tables" << std::endl;
auto cross =
GetStdCrossSections(PROPOSAL::TauMinusDef(), media.at(&comp), cut, true);
auto inter_types = PROPOSAL::CrossSectionVector::GetInteractionTypes(cross);
auto [insert_it, success] = calculators.insert(
{std::make_pair(&comp, corsika_code), make_tuple(PROPOSAL::make_secondaries(
inter_types, PROPOSAL::TauMinusDef(), media.at(&comp)),
PROPOSAL::make_interaction(cross, true),
PROPOSAL::make_displacement(cross, true))});
return insert_it;
}
if (corsika_code == particles::Code::TauPlus) {
std::cout << "Build TauPlus tables" << std::endl;
auto cross =
GetStdCrossSections(PROPOSAL::TauPlusDef(), media.at(&comp), cut, true);
auto inter_types = PROPOSAL::CrossSectionVector::GetInteractionTypes(cross);
auto [insert_it, success] = calculators.insert(
{std::make_pair(&comp, corsika_code), make_tuple(PROPOSAL::make_secondaries(
inter_types, PROPOSAL::TauPlusDef(), media.at(&comp)),
PROPOSAL::make_interaction(cross, true),
PROPOSAL::make_displacement(cross, true))});
return insert_it;
}
throw std::runtime_error("PROPOSAL could not find corresponding builder");
} // namespace corsika::process::proposal } // namespace corsika::process::proposal
enum { SECONDARIES, INTERACTION, DISPLACEMENT }; enum { SECONDARIES, INTERACTION, DISPLACEMENT };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment