#include <customnucleus.h>
Inheriting from Nucleus-Class using modified Nucleon configurations.
Configurations are read in from external lists.
Definition at line 40 of file customnucleus.h.
Public Member Functions | |
CustomNucleus (Configuration &config, int testparticles) | |
Constructor that needs configuration parameters from input file and the number of testparticles. More... | |
void | fill_from_list (const std::vector< Nucleoncustom > &vec) |
Fills Particlelist from vector containing data for one nucleus. More... | |
ThreeVector | distribute_nucleon () override |
Returns position of a nucleon as given in the external file. More... | |
std::vector< Nucleoncustom > | readfile (std::ifstream &infile, int particle_number) const |
The returned vector contains Data for one nucleus given in the particlelist. More... | |
![]() | |
Nucleus ()=default | |
default constructor More... | |
Nucleus (Configuration &config, int nTest) | |
Constructor for Nucleus, that needs the configuration parameters from the inputfile and the number of testparticles. More... | |
Nucleus (const std::map< PdgCode, int > &particle_list, int nTest) | |
virtual | ~Nucleus ()=default |
double | mass () const |
double | woods_saxon (double x) |
Woods-Saxon distribution. More... | |
void | arrange_nucleons () |
Sets the positions of the nucleons inside a nucleus. More... | |
virtual void | set_parameters_automatic () |
Sets the deformation parameters of the Woods-Saxon distribution according to the current mass number. More... | |
virtual void | set_parameters_from_config (Configuration &config) |
Sets the parameters of the Woods-Saxon according to manually added values in the configuration file. More... | |
virtual void | generate_fermi_momenta () |
Generates momenta according to Fermi motion for the nucleons. More... | |
void | boost (double beta_scalar) |
Boosts the nuclei into the computational frame, such that the nucleons have the appropriate momentum and the nuclei are lorentz-contracted. More... | |
void | fill_from_list (const std::map< PdgCode, int > &particle_list, int testparticles) |
Adds particles from a map PDG code => Number_of_particles_with_that_PDG_code to the nucleus. More... | |
void | shift (double z_offset, double x_offset, double simulation_time) |
Shifts the nucleus to correct impact parameter and z displacement. More... | |
virtual void | rotate () |
Rotates the nucleus. More... | |
void | copy_particles (Particles *particles) |
Copies the particles from this nucleus into the particle list. More... | |
size_t | size () const |
Number of numerical (=test-)particles in the nucleus: More... | |
size_t | number_of_particles () const |
Number of physical particles in the nucleus: More... | |
FourVector | center () const |
Calculate geometrical center of the nucleus. More... | |
void | align_center () |
Shifts the nucleus so that its center is at (0,0,0) More... | |
std::vector< ParticleData >::iterator | begin () |
For iterators over the particle list: More... | |
std::vector< ParticleData >::iterator | end () |
For iterators over the particle list: More... | |
std::vector< ParticleData >::const_iterator | cbegin () const |
For const iterators over the particle list: More... | |
std::vector< ParticleData >::const_iterator | cend () const |
For const iterators over the particle list: More... | |
void | set_diffusiveness (double diffuse) |
Sets the diffusiveness of the nucleus. More... | |
double | get_diffusiveness () const |
void | set_saturation_density (double density) |
Sets the saturation density of the nucleus. More... | |
double | get_saturation_density () const |
double | default_nuclear_radius () |
void | set_nuclear_radius (double rad) |
Sets the nuclear radius. More... | |
double | get_nuclear_radius () const |
Public Attributes | |
std::string | particle_list_file_directory_ |
Directory where the nucleon configurations are located. More... | |
std::string | particle_list_file_name_ |
File name of the nucleon configurations. More... | |
int | number_of_nucleons_ = 0 |
of Nucleons per Nucleus Set initally to zero to be modified in the constructor. More... | |
std::vector< Nucleoncustom > | custom_nucleon_ |
Vector contianing Data for one nucleus given in the particlelist. More... | |
size_t | index = 0 |
Index needed to read out vector in distribute nucleon. More... | |
Static Private Member Functions | |
static std::string | streamfile (const std::string &file_directory, const std::string &file_name) |
Generates the name of the stream file. More... | |
Static Private Attributes | |
static std::unique_ptr< std::ifstream > | filestream_ = nullptr |
Variable carrying the output of the streamfile function. More... | |
static bool | checkfileopen_ = false |
Bool variable to check if the file was already opened. More... | |
Additional Inherited Members | |
![]() | |
std::vector< ParticleData > | particles_ |
Particles associated with this nucleus. More... | |
smash::CustomNucleus::CustomNucleus | ( | Configuration & | config, |
int | testparticles | ||
) |
Constructor that needs configuration parameters from input file and the number of testparticles.
[in] | config | contains the parameters from the inputfile on the numbers of particles with a certain PDG code and also the path where the external particle list is located |
[in] | testparticles | represents the number of testparticles |
Definition at line 90 of file customnucleus.cc.
void smash::CustomNucleus::fill_from_list | ( | const std::vector< Nucleoncustom > & | vec | ) |
Fills Particlelist from vector containing data for one nucleus.
The data contains everything that is written in struct Nucleoncustom.
[in] | vec | vector containing data from external list for one nucleus |
Definition at line 127 of file customnucleus.cc.
|
overridevirtual |
Returns position of a nucleon as given in the external file.
Reimplemented from smash::Nucleus.
Definition at line 150 of file customnucleus.cc.
std::vector< Nucleoncustom > smash::CustomNucleus::readfile | ( | std::ifstream & | infile, |
int | particle_number | ||
) | const |
The returned vector contains Data for one nucleus given in the particlelist.
[in] | infile | is needed to read in from the external file |
[in] | particle_number | ensures that only as many lines are read in as the nucleus contains nucleons. |
Definition at line 170 of file customnucleus.cc.
|
staticprivate |
Generates the name of the stream file.
[in] | file_directory | is the path to the external file |
[in] | file_name | is the name of the external file |
Definition at line 161 of file customnucleus.cc.
std::string smash::CustomNucleus::particle_list_file_directory_ |
Directory where the nucleon configurations are located.
Name is read in from manual input in the config.yaml
Definition at line 75 of file customnucleus.h.
std::string smash::CustomNucleus::particle_list_file_name_ |
File name of the nucleon configurations.
Name is read in from manual input in the config.yaml
Definition at line 80 of file customnucleus.h.
int smash::CustomNucleus::number_of_nucleons_ = 0 |
of Nucleons per Nucleus Set initally to zero to be modified in the constructor.
is obtained by adding the proton and neutron numbers specified in the config.yaml
Definition at line 87 of file customnucleus.h.
std::vector<Nucleoncustom> smash::CustomNucleus::custom_nucleon_ |
Vector contianing Data for one nucleus given in the particlelist.
Definition at line 89 of file customnucleus.h.
size_t smash::CustomNucleus::index = 0 |
Index needed to read out vector in distribute nucleon.
Definition at line 91 of file customnucleus.h.
|
staticprivate |
Variable carrying the output of the streamfile function.
Definition at line 108 of file customnucleus.h.
|
staticprivate |
Bool variable to check if the file was already opened.
It ensures to read in every nucleus configuration given only once. If the bool is true the constructor uses the stream that was given the last time the constructor was called.
Definition at line 114 of file customnucleus.h.