#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 | nucleon_density (double r, double cosx) override |
Return the deformed Woods-Saxon probability density 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 | 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 () |
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 | 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 |
To configure a fixed target heavy-ion collision with deformed nuclei, whose spherical deformation is explicitly declared, it can be done according to the following example. For explanatory (and not physics) reasons, the projectile's Woods Saxon distribution is initialized automatically and its spherical deformation manually, while the target nucleus is configured just the opposite.
Modi: Collider: Projectile: Particles: {2212: 29, 2112: 34} Deformed: # Manually set deformation parameters Automatic: False Beta_2: 0.1 Beta_4: 0.3 Orientation: Theta: 0.8 Phi: 0.02 Target: Particles: {2212: 29, 2112: 34} # manually set woods saxon parameters Saturation_Density: 0.1968 Diffusiveness: 0.8 Radius: 2.0 Deformed: # Automatically set deformation parameters Automatic: True Orientation: # Randomly rotate nucleus Random_Rotation: True E_kin: 1.2 Calculation_Frame: "fixed target"
Definition at line 109 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 113 of file deformednucleus.cc.
|
overridevirtual |
Deformed Woods-Saxon sampling routine.
Reimplemented from smash::Nucleus.
Definition at line 128 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. Corrections to the deformation parameter beta2 in Uranium come from Kuhlman:2005ts. For finite nucleon size corrections to the nuclear density and radius for copper and gold, see Hirano:2009ah, and Hirano:2010jg for uranium.
Definition at line 149 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 232 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 243 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 276 of file deformednucleus.cc.
|
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 308 of file deformednucleus.cc.
|
inline |
Set deformation coefficient for Y_2_0.
[in] | b2 | deformation coefficient for l=2 |
Definition at line 110 of file deformednucleus.h.
|
inline |
Set deformation coefficient for Y_4_0.
[in] | b4 | deformation coefficient for l=4 |
Definition at line 115 of file deformednucleus.h.
|
inline |
Set the nucleus polar angle.
[in] | theta | Polar angle of position inside nucleus |
Definition at line 120 of file deformednucleus.h.
|
inline |
Set the nucleus azimuthal angle.
[in] | phi | Azimuthal angle of position inside nucleus |
Definition at line 127 of file deformednucleus.h.
|
inline |
return the beta2 value.
Definition at line 133 of file deformednucleus.h.
|
inline |
return the beta4 value.
Definition at line 137 of file deformednucleus.h.
|
private |
Deformation parameter for angular momentum l=2.
Definition at line 141 of file deformednucleus.h.
|
private |
Deformation parameter for angular momentum l=4.
Definition at line 143 of file deformednucleus.h.
|
private |
Nucleus orientation (initial profile in xz plane) in terms of a pair of angles (theta, phi)
Definition at line 148 of file deformednucleus.h.
|
private |
Whether the nuclei should be rotated randomly.
Definition at line 152 of file deformednucleus.h.