#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 27 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) | |
Constructor for DeformedNucleus, that needs the configuration parameters from the inputfile and the number of testparticles. More... | |
double | deformed_woods_saxon (double r, double cosx) const |
Return the deformed Woods-Saxon probability for the given position. 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 | rotate () override |
Rotates the nucleus according to members nucleus_polar_angle_ and nucleus_azimuthal_angle_ and updates nucleon positions. More... | |
void | generate_fermi_momenta () override |
Does not allow to generate Fermi-momenta for a deformed nucleus. More... | |
double | y_l_0 (int l, double cosx) const |
Spherical harmonics Y_2_0 and Y_4_0. 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... | |
![]() | |
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... | |
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... | |
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 |
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... | |
Additional Inherited Members | |
![]() | |
std::vector< ParticleData > | particles_ |
Particles associated with this nucleus. 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 it's 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 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 E_kin: 1.2 Calculation_Frame: "fixed target"
Definition at line 96 of file deformednucleus.cc.
smash::DeformedNucleus::DeformedNucleus | ( | Configuration & | config, |
int | nTest | ||
) |
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 |
Definition at line 100 of file deformednucleus.cc.
double smash::DeformedNucleus::deformed_woods_saxon | ( | double | r, |
double | cosx | ||
) | const |
Return the deformed Woods-Saxon probability for the given position.
[in] | r | The radius at which to sample |
[in] | cosx | The cosine of the polar angle at which to sample |
Definition at line 110 of file deformednucleus.cc.
|
overridevirtual |
Deformed Woods-Saxon sampling routine.
Reimplemented from smash::Nucleus.
Definition at line 118 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 139 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 169 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 186 of file deformednucleus.cc.
|
overridevirtual |
Does not allow to generate Fermi-momenta for a deformed nucleus.
domain_error | if this function is ever called |
Reimplemented from smash::Nucleus.
Definition at line 199 of file deformednucleus.cc.
double smash::DeformedNucleus::y_l_0 | ( | int | l, |
double | cosx | ||
) | const |
Spherical harmonics Y_2_0 and Y_4_0.
[in] | l | Angular momentum value (2 and 4 are supported) |
[in] | cosx | Cosine of the polar angle |
domain_error | if unsupported l is encountered |
Definition at line 205 of file deformednucleus.cc.
|
inline |
Set deformation coefficient for Y_2_0.
[in] | b2 | deformation coefficient for l=2 |
Definition at line 108 of file deformednucleus.h.
|
inline |
Set deformation coefficient for Y_4_0.
[in] | b4 | deformation coefficient for l=4 |
Definition at line 113 of file deformednucleus.h.
|
inline |
Set the nucleus polar angle.
[in] | theta | Polar angle of position inside nucleus |
Definition at line 118 of file deformednucleus.h.
|
inline |
Set the nucleus azimuthal angle.
[in] | phi | Azimuthal angle of position inside nucleus |
Definition at line 125 of file deformednucleus.h.
|
private |
Deformation parameter for angular momentum l=2.
Definition at line 131 of file deformednucleus.h.
|
private |
Deformation parameter for angular momentum l=4.
Definition at line 133 of file deformednucleus.h.
|
private |
Nucleus orientation (initial profile in xz plane) in terms of a pair of angles (theta, phi)
Definition at line 138 of file deformednucleus.h.