45 double fragment_KE_lab,
int fragment_pdg,
int two_j,
int l,
int two_s,
46 int target_charge = 0 ) = 0;
56 int fragment_pdg,
int two_j,
int l,
int two_s,
57 int target_charge = 0 ) = 0;
85 int fragment_pdg,
int two_s,
size_t l_max,
int target_charge = 0 ) = 0;
94 virtual void print( std::ostream& out )
const = 0;
108inline std::ostream& operator<<( std::ostream& out,
Abstract base class for nuclear optical model implementations.
OpticalModel(int Z, int A)
virtual std::complex< double > optical_model_potential(double r, double fragment_KE_lab, int fragment_pdg, int two_j, int l, int two_s, int target_charge=0)=0
Calculate the optical model potential (including the Coulomb potential)
int A() const
Get the mass number.
int Z() const
Get the atomic number.
virtual void print(std::ostream &out) const =0
Print information about the optical model parameters.
virtual double transmission_coefficient(double total_KE_CM, int fragment_pdg, int two_j, int l, int two_s, int target_charge=0)=0
Calculate the transmission coefficient for a nuclear fragment.
virtual double total_cross_section(double fragment_KE_lab, int fragment_pdg, int two_s, size_t l_max, int target_charge=0)=0
Compute the energy-averaged total cross section (MeV -2) for a nuclear fragment projectile.