Home · Overview · Users Guide · Reference Guide

Nucleus Class Reference

Virtual base class that describes the nucleus used in eA collisions. More...

 #include "Nucleus.h"

Inheritance

Inherited by FrangibleNucleus.

Public Member Functions

Nucleus()
Nucleus(unsigned int A)
Nucleus(const Nucleus&)
virtual ~Nucleus()
Nucleus& operator=(const Nucleus&)
virtual void init(unsigned int A)
double T(double b) const
double TofProton(double b)
unsigned int A() const
unsigned int Z() const
float spin() const
double radius() const
string name() const
int pdgID() const
int pdgID(int Z, int A) const
double atomicMass() const
void normalizationOfT()

Detailed Description

The Nucleus class contains the necessary information about the nucleus (name, radius, spin, mass, ....) as well as the referring Woods-Saxon distribution to describe its density as a function of impact parameter. This class is used in the generation of amplitude tables as-is (see here for details), while a derived class FrangibleNucleus is used for event generation in class Sartre. The user does not have to care about the class or its initialization since it is handled internally in Sartre. However, it is always available through a call of Sartre::nucleus().

At the moment this class is able to describe the following nuclei: H (p), O, Al, Ca, Cu, Cd, Au, and Pb.


Public Member Function Documentation

Nucleus()

Constructor. Creates an undefined nucleus. Requires a call to init() in order to represent a valid nucleus.

Nucleus(unsigned int A)

Constructor. Creates a nucleus with mass A. No call to init() is needed.

Nucleus(const Nucleus& nucleus)

Copy constructor.

virtual ~Nucleus()

Destructor.

Nucleus& operator=(const Nucleus& nucleus)

Assignment operator. Returns a deep copy of nucleus.

virtual void init(unsigned int A)

Initializes an instance of Nucleus created via the default constructor (w/o arguments).

double T(double b) const

Returns TA(b) of the nucleus, that is the profile of the Woods-Saxon density in transverse space. Argument b is in fm, returned value is in GeV2.

T(b) is normalized such that ∫ T(b) db = A.

double TofProton(double b)

Returns the density profile function T(b) of the proton where T(b) = 1/(2BG) exp(−b2/(2BG)) with BG = 4 GeV-2. Argument b is in fm, returned value is in GeV2.

unsigned int A() const

Returns mass number A of the nucleus.

unsigned int Z() const

Returns the charge Z of the nucleus.

float spin() const

Returns spin of nucleus in units of ℏ.

double radius() const

Returns radius of nucleus in fm.

string name() const

Returns nucleus' name/symbol as string. For example "Au", "Pb", "O", etc.

int pdgID() const

Returns nucleus' PDG Id. The PDG for nuclei is coded as 10LZZZAAAI, where L = number of strange quark (for hypernuclei), I = isomer level, with I = 0 corresponding to the, ground state and I > 0 to excitations. For example Au is decoded as 1000791970.

int pdgID(int Z, int A) const

Overloaded version. Returns the PDG Id for any nucleus with a given A and Z.

double atomicMass() const

Atomic mass in GeV.

void normalizationOfT()

For internal tests only. Print the integral ∫ T(b) db that should be close to A.

 

   

Last Update: November 30, 2012