Class PhotoDisintegration

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class PhotoDisintegration : public Module

Photodisintegration of nuclei by background photons.

Public Functions

PhotoDisintegration(ref_ptr<PhotonField> photonField, bool havePhotons = false, double limit = 0.1, bool superheavy = false)

Constructor.

Parameters:
  • photonField – target photon field

  • havePhotons – if true, add secondary photons as candidates

  • limit – step size limit as fraction of mean free path

  • superheavy – if true, also load rate/branching _superheavy files extending coverage from A≥56 up to Pb; files are loaded if present and silently skipped with a warning if not yet generated

void setPhotonField(ref_ptr<PhotonField> photonField, bool superheavy = false)

Set the target photon field and reload all interaction tables.

Parameters:
  • photonField – target photon field

  • superheavy – if true, also load rate_<field>superheavy.txt and branching<field>_superheavy.txt (logged as warning if absent)

void setHavePhotons(bool havePhotons)
void setLimit(double limit)

Limit the propagation step to a fraction of the mean free path

Parameters:

limit – fraction of the mean free path

void setInteractionTag(std::string tag)

set a custom interaction tag to trace back this interaction

Parameters:

tag – string that will be added to the candidate and output

std::string getInteractionTag() const
void initRate(std::string filename)
void initBranching(std::string filename)
void initPhotonEmission(std::string filename)
virtual void process(Candidate *candidate) const

Process function This is the main function to work with, it is called during every ModuleList::run step. Derived functions need to override this overload of process!

Parameters:

candidateCandidate raw pointer

void performInteraction(Candidate *candidate, int channel) const
double lossLength(int id, double gamma, double z = 0)

Calculates the loss length E dx/dE in [m] physical distance. This is not used in the simulation.

Parameters:
  • id – PDG particle id

  • gamma – Lorentz factor of particle

  • z – redshift

Returns:

E dx/dE [in meters]

virtual std::string getDescription() const

Returns description, can be overriden by derived class.

void setDescription(const std::string &description)

Sets description, can be used instead of getDescription in derived class

Parameters:

description – Description string

inline void process(ref_ptr<Candidate> candidate) const

Process function Overload for process function to explicitly make a conversion from ref_ptr to a raw pointer

inline size_t addReference() const
inline size_t removeReference() const
inline int removeReferenceNoDelete() const
inline size_t getReferenceCount() const

Protected Attributes

mutable size_t _referenceCount