#include <deformednucleus.h>
DeformedNucleus: Child of nucleus for deformed nuclei.
All options from the nucleus will still apply. The deformed nucleus adds new or updated features which are outlined below.
Definition at line 36 of file deformednucleus.h.
Public Member Functions | |
DeformedNucleus (const std::map< PdgCode, int > &particle_list, int nTest) | |
Constructor for DeformedNucles which takes a particle list and the number of testparticles. More... | |
DeformedNucleus (Configuration &config, int nTest, bool auto_deformation) | |
Constructor for DeformedNucleus, that needs the configuration parameters from the inputfile and the number of testparticles. More... | |
ThreeVector | distribute_nucleon () override |
Deformed Woods-Saxon sampling routine. More... | |
void | set_deformation_parameters_automatic () |
Sets the deformation parameters of the radius according to the current mass number. More... | |
void | set_deformation_parameters_from_config (Configuration &config) |
Set parameters for spherical deformation of the nucleus from the values specified in the configuration file. More... | |
void | set_orientation_from_config (Configuration &orientation_config) |
Set angles for orientation of nucleus from config file. More... | |
void | rotate () override |
Rotates the nucleus according to members nucleus_polar_angle_ and nucleus_azimuthal_angle_ and updates nucleon positions. More... | |
double | get_saturation_density () const |
double | nucleon_density (double r, double cosx) const override |
Return the deformed Woods-Saxon probability density for the given position. More... | |
double | nucleon_density_unnormalized (double r, double cosx) const override |
Return the unnormalized deformed Woods-Saxon distribution for the given position. More... | |
void | set_beta_2 (double b2) |
Set deformation coefficient for Y_2_0. More... | |
void | set_beta_4 (double b4) |
Set deformation coefficient for Y_4_0. More... | |
void | set_polar_angle (double theta) |
Set the nucleus polar angle. More... | |
void | set_azimuthal_angle (double phi) |
Set the nucleus azimuthal angle. More... | |
double | get_beta2 () |
return the beta2 value. More... | |
double | get_beta4 () |
return the beta4 value. 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) | |
Constructor which directly initializes the Nucleus with particles and respective counts. More... | |
virtual | ~Nucleus ()=default |
double | mass () const |
double | woods_saxon (double x) |
Woods-Saxon distribution. More... | |
virtual 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... | |
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... | |
size_t | number_of_protons () const |
Number of physical protons in the nucleus: More... | |
FourVector | center () const |
Calculate geometrical center of the nucleus. More... | |
void | set_label (BelongsTo label) |
Sets target / projectile labels on nucleons. More... | |
void | align_center () |
Shifts the nucleus so that its center is at (0,0,0) More... | |
virtual double | calculate_saturation_density () const |
virtual void | set_saturation_density (double density) |
Sets the saturation density of the nucleus. 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 |
double | get_saturation_density () const |
double | default_nuclear_radius () |
Default nuclear radius calculated as: More... | |
void | set_nuclear_radius (double rad) |
Sets the nuclear radius. More... | |
double | get_nuclear_radius () const |
Private Attributes | |
double | beta2_ = 0.0 |
Deformation parameter for angular momentum l=2. More... | |
double | beta4_ = 0.0 |
Deformation parameter for angular momentum l=4. More... | |
Angles | nuclear_orientation_ |
Nucleus orientation (initial profile in xz plane) in terms of a pair of angles (theta, phi) More... | |
bool | random_rotation_ = false |
Whether the nuclei should be rotated randomly. More... | |
Additional Inherited Members | |
![]() | |
void | random_euler_angles () |
Randomly generate Euler angles. More... | |
![]() | |
std::vector< ParticleData > | particles_ |
Particles associated with this nucleus. More... | |
double | saturation_density_ = nuclear_density |
Saturation density of this nucleus. More... | |
double | euler_phi_ |
Euler angel phi. More... | |
double | euler_theta_ |
Euler angel theta. More... | |
double | euler_psi_ |
Euler angel psi. More... | |
smash::DeformedNucleus::DeformedNucleus | ( | const std::map< PdgCode, int > & | particle_list, |
int | nTest | ||
) |
Constructor for DeformedNucles which takes a particle list and the number of testparticles.
This constructor is only used for testing purposes.
[in] | particle_list | Map with PDGCode and number of particles which make up the nucleus |
[in] | nTest | number of testparticles |
Definition at line 93 of file deformednucleus.cc.
smash::DeformedNucleus::DeformedNucleus | ( | Configuration & | config, |
int | nTest, | ||
bool | auto_deformation | ||
) |
Constructor for DeformedNucleus, that needs the configuration parameters from the inputfile and the number of testparticles.
[in] | config | contains the parameters from the inputfile on the numbers of particles with a certain PDG code |
[in] | nTest | number of testparticles |
[in] | auto_deformation | whether or not deformation parameters should be set automatically |
Definition at line 97 of file deformednucleus.cc.
|
overridevirtual |
Deformed Woods-Saxon sampling routine.
Reimplemented from smash::Nucleus.
Definition at line 112 of file deformednucleus.cc.
void smash::DeformedNucleus::set_deformation_parameters_automatic | ( | ) |
Sets the deformation parameters of the radius according to the current mass number.
The deformation parameters are taken from Moller:1993ed [35]. Corrections to the deformation parameter beta2 in Uranium come from Kuhlman:2005ts [29]. For finite nucleon size corrections to the nuclear density and radius for copper and gold, see Hirano:2009ah [22], and Hirano:2010jg [24] for uranium.
Definition at line 133 of file deformednucleus.cc.
void smash::DeformedNucleus::set_deformation_parameters_from_config | ( | Configuration & | config | ) |
Set parameters for spherical deformation of the nucleus from the values specified in the configuration file.
config | The configuration for the deformation of this nucleus (projectile or target). |
Definition at line 228 of file deformednucleus.cc.
void smash::DeformedNucleus::set_orientation_from_config | ( | Configuration & | orientation_config | ) |
Set angles for orientation of nucleus from config file.
[in] | orientation_config | The configuration for the deformation of this nucleus (projectile or target). |
Definition at line 239 of file deformednucleus.cc.
|
overridevirtual |
Rotates the nucleus according to members nucleus_polar_angle_ and nucleus_azimuthal_angle_ and updates nucleon positions.
Reimplemented from smash::Nucleus.
Definition at line 272 of file deformednucleus.cc.
|
inline |
Definition at line 100 of file deformednucleus.h.
|
overridevirtual |
Return the deformed Woods-Saxon probability density for the given position.
This corresponds to the nuclear density at the very same position.
[in] | r | The radius at which to sample |
[in] | cosx | The cosine of the polar angle at which to sample |
Reimplemented from smash::Nucleus.
Definition at line 304 of file deformednucleus.cc.
|
overridevirtual |
Return the unnormalized deformed Woods-Saxon distribution for the given position.
[in] | r | The radius |
[in] | cosx | The cosine of the polar angle |
Reimplemented from smash::Nucleus.
Definition at line 312 of file deformednucleus.cc.
|
inline |
Set deformation coefficient for Y_2_0.
[in] | b2 | deformation coefficient for l=2 |
Definition at line 123 of file deformednucleus.h.
|
inline |
Set deformation coefficient for Y_4_0.
[in] | b4 | deformation coefficient for l=4 |
Definition at line 128 of file deformednucleus.h.
|
inline |
Set the nucleus polar angle.
[in] | theta | Polar angle of position inside nucleus |
Definition at line 133 of file deformednucleus.h.
|
inline |
Set the nucleus azimuthal angle.
[in] | phi | Azimuthal angle of position inside nucleus |
Definition at line 140 of file deformednucleus.h.
|
inline |
|
inline |
|
private |
Deformation parameter for angular momentum l=2.
Definition at line 154 of file deformednucleus.h.
|
private |
Deformation parameter for angular momentum l=4.
Definition at line 156 of file deformednucleus.h.
|
private |
Nucleus orientation (initial profile in xz plane) in terms of a pair of angles (theta, phi)
Definition at line 161 of file deformednucleus.h.
|
private |
Whether the nuclei should be rotated randomly.
Definition at line 165 of file deformednucleus.h.