IAP GITLAB

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

Fix conversion of CORSIKA direction to PROPOSAL direction

parent 74a50f32
No related branches found
No related tags found
1 merge request!245Include proposal process rebase
...@@ -82,8 +82,10 @@ namespace corsika::process::proposal { ...@@ -82,8 +82,10 @@ namespace corsika::process::proposal {
auto point = PROPOSAL::Vector3D(vP.GetPosition().GetX() / 1_cm, auto point = PROPOSAL::Vector3D(vP.GetPosition().GetX() / 1_cm,
vP.GetPosition().GetY() / 1_cm, vP.GetPosition().GetY() / 1_cm,
vP.GetPosition().GetZ() / 1_cm); vP.GetPosition().GetZ() / 1_cm);
auto p = vP.GetMomentum().GetComponents(); auto d = vP.GetDirection().GetComponents();
auto direction = PROPOSAL::Vector3D(p[0] / 1_GeV, p[1] / 1_GeV, p[2] / 1_GeV); auto direction = PROPOSAL::Vector3D(d.GetX().magnitude(),
d.GetY().magnitude(),
d.GetZ().magnitude());
auto loss = auto loss =
make_tuple(static_cast<int>(type), point, direction, v * primary_energy, 0.); make_tuple(static_cast<int>(type), point, direction, v * primary_energy, 0.);
auto sec = std::get<SECONDARIES>(calc->second) auto sec = std::get<SECONDARIES>(calc->second)
......
...@@ -43,14 +43,6 @@ namespace corsika::process::proposal { ...@@ -43,14 +43,6 @@ namespace corsika::process::proposal {
unique_ptr<PROPOSAL::Displacement>>; unique_ptr<PROPOSAL::Displacement>>;
std::unordered_map<const NuclearComposition*, calculator_t> calculators; std::unordered_map<const NuclearComposition*, calculator_t> calculators;
enum { SECONDARIES, INTERACTION, DISPLACEMENT };
template <typename Particle>
auto GetCalculator(Particle& vP) {
auto& comp = vP.GetNode()->GetModelProperties().GetNuclearComposition();
auto calc_it = calculators.find(&comp);
if (calc_it != calculators.end()) return calc_it;
return BuildCalculator(vP.GetPID(), comp);
}
auto BuildCalculator(particles::Code corsika_code, NuclearComposition const& comp) { auto BuildCalculator(particles::Code corsika_code, NuclearComposition const& comp) {
auto medium = media.at(&comp); auto medium = media.at(&comp);
...@@ -92,6 +84,15 @@ namespace corsika::process::proposal { ...@@ -92,6 +84,15 @@ namespace corsika::process::proposal {
} }
} // namespace corsika::process::proposal } // namespace corsika::process::proposal
enum { SECONDARIES, INTERACTION, DISPLACEMENT };
template <typename Particle>
auto GetCalculator(Particle& vP) {
auto& comp = vP.GetNode()->GetModelProperties().GetNuclearComposition();
auto calc_it = calculators.find(&comp);
if (calc_it != calculators.end()) return calc_it;
return BuildCalculator(vP.GetPID(), comp);
}
public: public:
template <typename TEnvironment> template <typename TEnvironment>
Interaction(TEnvironment const& env, CORSIKA_ParticleCut const& cut); Interaction(TEnvironment const& env, CORSIKA_ParticleCut const& cut);
......
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