Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
trento::NucleonProfile Class Reference

#include <JETSCAPE/blob/main/external_packages/trento/src/nucleon.h>

+ Collaboration diagram for trento::NucleonProfile:

Public Member Functions

 NucleonProfile (const VarMap &var_map)
 Instantiate from the configuration.
 
double radius () const
 The radius at which the nucleon profile is truncated.
 
double max_impact () const
 The maximum impact parameter for participation.
 
void fluctuate ()
 
double thickness (double distance_sqr) const
 
double deterministic_thickness (double distance_sqr) const
 
double norm_Tpp (double bpp_sqr) const
 WK: return Tpp given bpp^2.
 
bool participate (Nucleon &A, Nucleon &B) const
 Randomly determine if a pair of nucleons participates.
 

Private Attributes

const double width_sqr_
 Width of Gaussian thickness function.
 
const double trunc_radius_sqr_
 Truncate the Gaussian at this radius.
 
const double max_impact_sqr_
 Maximum impact parameter for participants.
 
const double neg_one_div_two_width_sqr_
 
const double neg_one_div_four_width_sqr_
 WK 1/4w^2.
 
const double one_div_four_pi_
 WK 1/4pi.
 
const double cross_sec_param_
 
const FastExp< doublefast_exp_
 Fast exponential for calculating the thickness profile.
 
std::gamma_distribution< doublefluct_dist_
 Fluctuation distribution.
 
double prefactor_
 Thickness function prefactor = fluct/(2*pi*w^2)
 
bool with_ncoll_
 bool variable to calcualte Ncoll
 

Detailed Description

Encapsulates properties shared by all nucleons: transverse thickness profile, cross section, fluctuations. Responsible for sampling nucleon-nucleon participation with given \sigma_{NN}.

Definition at line 24 of file nucleon.h.

View newest version in sPHENIX GitHub at line 24 of file nucleon.h

Constructor & Destructor Documentation

trento::NucleonProfile::NucleonProfile ( const VarMap var_map)
explicit

Instantiate from the configuration.

Definition at line 116 of file nucleon.cxx.

View newest version in sPHENIX GitHub at line 116 of file nucleon.cxx

Member Function Documentation

double trento::NucleonProfile::deterministic_thickness ( double  distance_sqr) const
inline

WK: same as above, but without the Gamma fluctuation, used in the calculation of binary collision density

Definition at line 188 of file nucleon.h.

View newest version in sPHENIX GitHub at line 188 of file nucleon.h

References fast_exp_, neg_one_div_two_width_sqr_, trunc_radius_sqr_, and width_sqr_.

Referenced by trento::Event::accumulate_TAB().

+ Here is the caller graph for this function:

void trento::NucleonProfile::fluctuate ( )
inline

Randomly fluctuate the profile. Should be called prior to evaluating the thickness function for a new nucleon.

Definition at line 176 of file nucleon.h.

View newest version in sPHENIX GitHub at line 176 of file nucleon.h

References trento::random::engine, fluct_dist_, prefactor_, and width_sqr_.

Referenced by trento::Event::compute_nuclear_thickness(), and TEST_CASE().

+ Here is the caller graph for this function:

double trento::NucleonProfile::max_impact ( ) const
inline

The maximum impact parameter for participation.

Definition at line 172 of file nucleon.h.

View newest version in sPHENIX GitHub at line 172 of file nucleon.h

References max_impact_sqr_.

double trento::NucleonProfile::norm_Tpp ( double  bpp_sqr) const
inline

WK: return Tpp given bpp^2.

Definition at line 196 of file nucleon.h.

View newest version in sPHENIX GitHub at line 196 of file nucleon.h

References fast_exp_, neg_one_div_four_width_sqr_, one_div_four_pi_, and width_sqr_.

Referenced by trento::Event::accumulate_TAB().

+ Here is the caller graph for this function:

bool trento::NucleonProfile::participate ( Nucleon A,
Nucleon B 
) const
inline

Randomly determine if a pair of nucleons participates.

Definition at line 201 of file nucleon.h.

View newest version in sPHENIX GitHub at line 201 of file nucleon.h

References cross_sec_param_, dy, trento::Nucleon::is_participant(), max_impact_sqr_, trento::Nucleon::set_participant(), width_sqr_, with_ncoll_, trento::Nucleon::x(), and trento::Nucleon::y().

Referenced by trento::Collider::sample_impact_param().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double trento::NucleonProfile::radius ( ) const
inline

The radius at which the nucleon profile is truncated.

Definition at line 168 of file nucleon.h.

View newest version in sPHENIX GitHub at line 168 of file nucleon.h

References trunc_radius_sqr_.

Referenced by trento::Event::accumulate_TAB(), and trento::Event::compute_nuclear_thickness().

+ Here is the caller graph for this function:

double trento::NucleonProfile::thickness ( double  distance_sqr) const
inline

Compute the thickness function at a (squared) distance from the profile center.

Definition at line 181 of file nucleon.h.

View newest version in sPHENIX GitHub at line 181 of file nucleon.h

References fast_exp_, neg_one_div_two_width_sqr_, prefactor_, and trunc_radius_sqr_.

Referenced by trento::Event::compute_nuclear_thickness().

+ Here is the caller graph for this function:

Member Data Documentation

const double trento::NucleonProfile::cross_sec_param_
private

Dimensionless parameter set to reproduce the inelastic nucleon-nucleon cross section {NN}. Calculated in constructor.

Definition at line 75 of file nucleon.h.

View newest version in sPHENIX GitHub at line 75 of file nucleon.h

Referenced by participate().

const FastExp<double> trento::NucleonProfile::fast_exp_
private

Fast exponential for calculating the thickness profile.

Definition at line 78 of file nucleon.h.

View newest version in sPHENIX GitHub at line 78 of file nucleon.h

Referenced by deterministic_thickness(), norm_Tpp(), and thickness().

std::gamma_distribution<double> trento::NucleonProfile::fluct_dist_
private

Fluctuation distribution.

Definition at line 81 of file nucleon.h.

View newest version in sPHENIX GitHub at line 81 of file nucleon.h

Referenced by fluctuate().

const double trento::NucleonProfile::max_impact_sqr_
private

Maximum impact parameter for participants.

Definition at line 61 of file nucleon.h.

View newest version in sPHENIX GitHub at line 61 of file nucleon.h

Referenced by max_impact(), and participate().

const double trento::NucleonProfile::neg_one_div_four_width_sqr_
private

WK 1/4w^2.

Definition at line 68 of file nucleon.h.

View newest version in sPHENIX GitHub at line 68 of file nucleon.h

Referenced by norm_Tpp().

const double trento::NucleonProfile::neg_one_div_two_width_sqr_
private

Cache (-1/2w^2) for use in the thickness function exponential. Yes, this actually makes a speed difference...

Definition at line 65 of file nucleon.h.

View newest version in sPHENIX GitHub at line 65 of file nucleon.h

Referenced by deterministic_thickness(), and thickness().

const double trento::NucleonProfile::one_div_four_pi_
private

WK 1/4pi.

Definition at line 71 of file nucleon.h.

View newest version in sPHENIX GitHub at line 71 of file nucleon.h

Referenced by norm_Tpp().

double trento::NucleonProfile::prefactor_
private

Thickness function prefactor = fluct/(2*pi*w^2)

Definition at line 84 of file nucleon.h.

View newest version in sPHENIX GitHub at line 84 of file nucleon.h

Referenced by fluctuate(), and thickness().

const double trento::NucleonProfile::trunc_radius_sqr_
private

Truncate the Gaussian at this radius.

Definition at line 58 of file nucleon.h.

View newest version in sPHENIX GitHub at line 58 of file nucleon.h

Referenced by deterministic_thickness(), radius(), and thickness().

const double trento::NucleonProfile::width_sqr_
private

Width of Gaussian thickness function.

Definition at line 55 of file nucleon.h.

View newest version in sPHENIX GitHub at line 55 of file nucleon.h

Referenced by deterministic_thickness(), fluctuate(), norm_Tpp(), and participate().

bool trento::NucleonProfile::with_ncoll_
private

bool variable to calcualte Ncoll

Definition at line 87 of file nucleon.h.

View newest version in sPHENIX GitHub at line 87 of file nucleon.h

Referenced by participate().


The documentation for this class was generated from the following files: