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
No related merge requests found
...@@ -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