MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
Loading...
Searching...
No Matches
CoulombCorrector.hh
1
4//
5// This file is part of MARLEY (Model of Argon Reaction Low Energy Yields)
6//
7// MARLEY is free software: you can redistribute it and/or modify it under the
8// terms of version 3 of the GNU General Public License as published by the
9// Free Software Foundation.
10//
11// For the full text of the license please see COPYING or
12// visit http://opensource.org/licenses/GPL-3.0
13//
14// Please respect the MCnet academic usage guidelines. See GUIDELINES
15// or visit https://www.montecarlonet.org/GUIDELINES for details.
16
17#pragma once
18
19#include <map>
20#include <string>
21
22namespace marley {
23
27
28 public:
29
32 enum class CoulombMode { NO_CORRECTION, FERMI_FUNCTION, EMA, MEMA,
33 FERMI_AND_EMA, FERMI_AND_MEMA };
34
37 CoulombCorrector( int pdg_c, int pdg_d,
38 CoulombMode mode = CoulombMode::FERMI_AND_MEMA );
39
46 double fermi_function( double beta_c ) const;
47
52 double coulomb_correction_factor( double beta_rel_cd ) const;
53
62 double ema_factor( double beta_rel_cd, bool& ok,
63 bool modified_ema ) const;
64
68 { return coulomb_mode_; }
69
71 void set_coulomb_mode( CoulombMode mode );
72
74 static CoulombMode coulomb_mode_from_string( const std::string& str );
75
77 static std::string string_from_coulomb_mode( CoulombMode mode );
78
79 protected:
80
83 static std::map< CoulombMode, std::string > coulomb_mode_string_map_;
84
85 int pdg_c_;
86 double mc_;
87
88 int Zf_;
89 int Af_;
90
93 };
94
95}
int Zf_
Residue atomic number.
CoulombCorrector(int pdg_c, int pdg_d, CoulombMode mode=CoulombMode::FERMI_AND_MEMA)
double mc_
Ejectile mass.
double coulomb_correction_factor(double beta_rel_cd) const
static CoulombMode coulomb_mode_from_string(const std::string &str)
Convert a string to a CoulombMode value.
void set_coulomb_mode(CoulombMode mode)
Set the method for handling Coulomb corrections for this reaction.
static std::map< CoulombMode, std::string > coulomb_mode_string_map_
double ema_factor(double beta_rel_cd, bool &ok, bool modified_ema) const
int pdg_c_
Ejectile PDG code.
CoulombMode
Enumerated type used to set the method for handling Coulomb corrections for CC nuclear reactions.
int Af_
Residue mass number.
CoulombMode coulomb_mode_
The method to use when computing Coulomb corrections.
double fermi_function(double beta_c) const
Compute the Fermi function
CoulombMode coulomb_mode() const
static std::string string_from_coulomb_mode(CoulombMode mode)
Convert a CoulombMode value to a string.