IAP GITLAB

Skip to content
Snippets Groups Projects
Commit a15c879a authored by Maximilian Sackel's avatar Maximilian Sackel Committed by Ralf Ulrich
Browse files

change template class to RAII templatize constuctor

parent 70467c15
No related branches found
No related tags found
No related merge requests found
......@@ -22,26 +22,27 @@ namespace corsika::process::proposal {
using namespace corsika::units::si;
template <>
std::unordered_map<particles::Code, PROPOSAL::ParticleDef>
Interaction<SetupEnvironment>::particles{
{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::TauPlus, PROPOSAL::TauPlusDef()},
{particles::Code::TauMinus, PROPOSAL::TauMinusDef()},
};
std::unordered_map<particles::Code, PROPOSAL::ParticleDef> Interaction::particles{
{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::TauPlus, PROPOSAL::TauPlusDef()},
{particles::Code::TauMinus, PROPOSAL::TauMinusDef()},
};
bool Interaction::CanInteract(particles::Code pcode) const noexcept {
auto search = particles.find(pcode);
if (search != particles.end()) return true;
return false;
};
template <>
Interaction<SetupEnvironment>::Interaction(SetupEnvironment const& env,
CORSIKA_ParticleCut const& e_cut)
Interaction::Interaction(SetupEnvironment const& env, CORSIKA_ParticleCut const& e_cut)
: fEnvironment(env)
, cut(make_shared<const PROPOSAL::EnergyCutSettings>(e_cut.GetCutEnergy() / 1_GeV,
1, false)) {}
template <>
void Interaction<SetupEnvironment>::Init() {
1, false)) {
auto all_compositions = std::vector<NuclearComposition>();
fEnvironment.GetUniverse()->walk([&](auto& vtn) {
if (vtn.HasModelProperties())
......@@ -62,9 +63,12 @@ namespace corsika::process::proposal {
}
}
template <>
void Interaction::Init() {}
template <>
template <>
corsika::process::EProcessReturn Interaction<SetupEnvironment>::DoInteraction(
corsika::process::EProcessReturn Interaction::DoInteraction(
setup::StackView::StackIterator& vP) {
if (CanInteract(vP.GetPID())) {
auto calc = GetCalculator(vP); // [CrossSections]
......@@ -107,7 +111,7 @@ namespace corsika::process::proposal {
template <>
template <>
corsika::units::si::GrammageType Interaction<SetupEnvironment>::GetInteractionLength(
corsika::units::si::GrammageType Interaction::GetInteractionLength(
setup::Stack::StackIterator& vP) {
if (CanInteract(vP.GetPID())) {
auto calc = GetCalculator(vP); // [CrossSections]
......
......@@ -27,12 +27,9 @@ using CORSIKA_ParticleCut = corsika::process::particle_cut::ParticleCut;
namespace corsika::process::proposal {
template <class TEnvironment>
class Interaction
: public corsika::process::InteractionProcess<Interaction<TEnvironment>> {
class Interaction : public corsika::process::InteractionProcess<Interaction> {
private:
TEnvironment const& fEnvironment;
shared_ptr<const PROPOSAL::EnergyCutSettings> cut;
static std::unordered_map<particles::Code, PROPOSAL::ParticleDef> particles;
......@@ -41,11 +38,7 @@ namespace corsika::process::proposal {
corsika::random::RNG& fRNG =
corsika::random::RNGManager::GetInstance().GetRandomStream("p_rndm");
bool CanInteract(particles::Code pcode) const noexcept {
auto search = particles.find(pcode);
if (search != particles.end()) return true;
return false;
};
bool CanInteract(particles::Code pcode) const noexcept;
using calculator_t =
tuple<PROPOSAL::SecondariesCalculator, unique_ptr<PROPOSAL::Interaction>,
......@@ -70,6 +63,7 @@ namespace corsika::process::proposal {
}
public:
template <typename TEnvironment>
Interaction(TEnvironment const& env, CORSIKA_ParticleCut const& cut);
void Init();
......
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