Home · Overview · Users Guide · Reference Guide

FrangibleNucleus Class Reference

The FrangibleNucleus inherits from the Nucleus class. It provides the additional methods for breaking up the nucleus in incoherent eA collisions. More...

 #include "FrangibleNucleus.h"

Inheritance

Inherits from Nucleus.

Public Member Functions

FrangibleNucleus()
FrangibleNucleus(const FrangibleNucleus&)
FrangibleNucleus(unsigned int A, bool enableBreakup = false)
~FrangibleNucleus()
FrangibleNucleus& operator=(const FrangibleNucleus&)
void init(unsigned int A, bool enableBreakup = false)
int breakup(const TLorentzVector&)
vector<BreakupProducts>& breakupProducts() const
void listBreakupProducts(ostream& = cout) const

Inherited Public Member Functions

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 FrangibleNucleus class represent a nucleus in Sartre, inheriting all descriptive features form Nucleus. The user does not have to care about the class or its initialization since it is all handled internally in Sartre. However, the actual instance of this class is always accessible through Sartre::nucleus(). After an incoherent event is generated and nuclear breakup is switched on (via runcard or programmatically) the breakup products are stored in the event record. More information about the nucleus and the breakup can be obtained through an instance of this class which can be obtained from the class Sartre via Sartre::nucleus().


Public Member Function Documentation

FrangibleNucleus()

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

FrangibleNucleus(const FrangibleNucleus& nucleus)

Copy constructor.

FrangibleNucleus(unsigned int A, bool enableBreakup = false)

Constructor. Creates a nucleus with mass A, and allows to enable or disable (default) nuclear breakup.

~FrangibleNucleus()

Destructor.

FrangibleNucleus& operator=(const FrangibleNucleus& nucleus)

Assignment operator.

void init(unsigned int A, bool enableBreakup = false)

Initializes the object created via the default constructor (w/o arguments). Not needed when constructor with same arguments as init() was used.

int breakup(const TLorentzVector& vec)

Breakup nucleus into fragments using the Gemini++ model. vec is the 4-momentum of the nucleus. The breakup itself is calculated in the nucleus rest frame but the breakup products are boosted according to vec. Returned value is the number of generated fragments.

const vector<BreakupProducts> & breakupProducts() const

Returns vector with fragments generated with breakup().

void listBreakupProducts(ostream& os = cout) const

Prints list of all breakup products to ostream os. If no argument is given it prints to stdout. Prints name of fragment, A, Z, PDG identifier, time of emission in NP units, and px, py, pz, and E (in GeV/c and GeV). The emission time is given in units of 10-21 seconds since the creation of the compound nucleus in the nucleus rest frame. These are typical NP units as used in Gemini++. Note that here the 4-momentum is that of the fragment and is not scaled to "per nucleon" as is done in the event record.

 

   

Last Update: January 8, 2013