CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
HadronicPhotonModel.hpp
1 /*
2  * (c) Copyright 2022 CORSIKA Project, corsika-project@lists.kit.edu
3  *
4  * This software is distributed under the terms of the GNU General Public
5  * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
6  * the license.
7  */
8 
9 #pragma once
10 
14 
15 namespace corsika::proposal {
16 
25 
26  template <class THadronicLEModel, class THadronicHEModel>
28  public:
29  HadronicPhotonModel(THadronicLEModel&, THadronicHEModel&, HEPEnergyType const&);
34  template <typename TSecondaryView>
36  FourMomentum const&, Code const&);
37 
38  private:
39  inline static auto logger_{get_logger("corsika_proposal_HadronicPhotonModel")};
40  THadronicLEModel& leHadronicInteraction_;
41  THadronicHEModel& heHadronicInteraction_;
43  HEPEnergyType const heHadronicModelThresholdLabNN_;
44  };
45 } // namespace corsika::proposal
46 
47 #include <corsika/detail/modules/proposal/HadronicPhotonModel.inl>
ProcessReturn doHadronicPhotonInteraction(TSecondaryView &, CoordinateSystemPtr const &, FourMomentum const &, Code const &)
Calculate produce the hadronic secondaries in a hadronic photon interaction and store them on the par...
std::shared_ptr< spdlog::logger > get_logger(std::string const &name, bool const defaultlog=false)
Get a smart pointer to an existing logger.
Description of physical four-vectors.
Definition: FourVector.hpp:51
ProcessReturn
since in a process sequence many status updates can accumulate for a single particle, this enum should define only bit-flags that can be accumulated easily with "|="
std::shared_ptr< CoordinateSystem const > CoordinateSystemPtr
To refer to CoordinateSystems, only the CoordinateSystemPtr must be used.
Implements the production of secondary hadrons for the hadronic interaction of real and virtual photo...
Interface to particle properties.
General FourVector object.