REST-for-Physics  v2.3
Rare Event Searches ToolKit for Physics
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions
TRestGeant4ParticleSource Class Reference

Detailed Description

RESTSoft : Software for Rare Event Searches with TPCs

TRestGeant4ParticleSource.h

Class to store a particle definition

jul 2015: First concept Created as part of the conceptualization of existing REST software. J. Galan

Definition at line 32 of file TRestGeant4ParticleSource.h.

#include <TRestGeant4ParticleSource.h>

Inheritance diagram for TRestGeant4ParticleSource:
TRestGeant4Particle TRestMetadata TRestGeant4ParticleSourceCosmics TRestGeant4ParticleSourceCry TRestGeant4ParticleSourceDecay0

Public Member Functions

void AddParticle (const TRestGeant4Particle &particle)
 
 ClassDefOverride (TRestGeant4ParticleSource, 6)
 
void FlushParticlesTemplate ()
 
TString GetAngularDistributionFilename () const
 
size_t GetAngularDistributionFormulaNPoints () const
 
const TF1 * GetAngularDistributionFunction () const
 
double GetAngularDistributionIsotropicConeHalfAngle () const
 
TString GetAngularDistributionNameInFile () const
 
TVector2 GetAngularDistributionRange () const
 
Double_t GetAngularDistributionRangeMax () const
 
Double_t GetAngularDistributionRangeMin () const
 
TString GetAngularDistributionType () const
 
TVector3 GetDirection () const
 
const TF2 * GetEnergyAndAngularDistributionFunction () const
 
TString GetEnergyDistributionFilename () const
 
size_t GetEnergyDistributionFormulaNPoints () const
 
const TF1 * GetEnergyDistributionFunction () const
 
TString GetEnergyDistributionNameInFile () const
 
TVector2 GetEnergyDistributionRange () const
 
Double_t GetEnergyDistributionRangeMax () const
 
Double_t GetEnergyDistributionRangeMin () const
 
TString GetEnergyDistributionType () const
 
TString GetGenFilename () const
 
std::vector< TRestGeant4ParticleGetParticles () const
 
virtual void InitFromConfigFile () override
 To make settings from rml file. This method must be implemented in the derived class. More...
 
virtual void PrintMetadata () override
 Implemented it in the derived metadata class to print out specific metadata information. More...
 
void RemoveParticles ()
 
void RemoveTemplates ()
 
void SetAngularDistributionFilename (const TString &filename)
 
void SetAngularDistributionFormula (const TString &formula)
 
void SetAngularDistributionFormulaNPoints (size_t nPoints)
 
void SetAngularDistributionIsotropicConeHalfAngle (double angle)
 
void SetAngularDistributionNameInFile (const TString &name)
 
void SetAngularDistributionRange (const TVector2 &range)
 
void SetAngularDistributionType (const TString &type)
 
void SetEnergyAndAngularDistributionFormula (const TString &formula)
 
void SetEnergyDistributionFilename (const TString &filename)
 
void SetEnergyDistributionFormula (const TString &formula)
 
void SetEnergyDistributionFormulaNPoints (size_t nPoints)
 
void SetEnergyDistributionNameInFile (const TString &name)
 
void SetEnergyDistributionRange (const TVector2 &range)
 
void SetEnergyDistributionType (const TString &type)
 
void SetGenFilename (const TString &name)
 
void SetRandomMethod (double(*method)())
 
virtual void Update ()
 
- Public Member Functions inherited from TRestGeant4Particle
Double_t GetEnergy () const
 
Double_t GetExcitationLevel () const
 
TVector3 GetMomentumDirection () const
 
TVector3 GetOrigin () const
 
Int_t GetParticleCharge () const
 
TString GetParticleName () const
 
void Print () const
 Prints on screen the details about the Geant4 simulation conditions, stored in TRestGeant4Metadata. More...
 
void SetDirection (const TVector3 &dir)
 
void SetEnergy (Double_t en)
 
void SetExcitationLevel (Double_t excitationEnergy)
 
void SetOrigin (const TVector3 &pos)
 
void SetParticle (TRestGeant4Particle particle)
 A copy method. More...
 
void SetParticleCharge (Int_t charge)
 
void SetParticleName (TString particle)
 

Static Public Member Functions

static TRestGeant4ParticleSourceinstantiate (std::string model="")
 

Protected Attributes

TString fAngularDistributionFilename
 
size_t fAngularDistributionFormulaNPoints = 500
 
TF1 * fAngularDistributionFunction = nullptr
 
double fAngularDistributionIsotropicConeHalfAngle = 0
 
TString fAngularDistributionNameInFile
 
TVector2 fAngularDistributionRange
 
TString fAngularDistributionType = "Flux"
 
TF2 * fEnergyAndAngularDistributionFunction = nullptr
 
TString fEnergyDistributionFilename
 
size_t fEnergyDistributionFormulaNPoints = 5000
 
TF1 * fEnergyDistributionFunction = nullptr
 
TString fEnergyDistributionNameInFile
 
TVector2 fEnergyDistributionRange
 
TString fEnergyDistributionType = "Mono"
 
TString fGenFilename
 
std::vector< TRestGeant4ParticlefParticles
 
std::vector< std::vector< TRestGeant4Particle > > fParticlesTemplate
 
double(* fRandomMethod )()
 
- Protected Attributes inherited from TRestGeant4Particle
Int_t fCharge = 0
 
TVector3 fDirection = {1, 0, 0}
 
Double_t fEnergy = 0
 
Double_t fExcitationLevel = 0
 
TVector3 fOrigin
 
TString fParticleName
 

Private Member Functions

void ReadEventDataFile (TString fName)
 Reads an input file produced by Decay0. More...
 
bool ReadNewDecay0File (TString fileName)
 Reads particle information using the file format from newer Decay0 versions. More...
 
bool ReadOldDecay0File (TString fileName)
 Reads particle information using the file format from older Decay0 versions. More...
 

Additional Inherited Members

Member Function Documentation

◆ AddParticle()

void TRestGeant4ParticleSource::AddParticle ( const TRestGeant4Particle particle)
inline

Definition at line 195 of file TRestGeant4ParticleSource.h.

◆ FlushParticlesTemplate()

void TRestGeant4ParticleSource::FlushParticlesTemplate ( )
inline

Definition at line 199 of file TRestGeant4ParticleSource.h.

◆ GetAngularDistributionFilename()

TString TRestGeant4ParticleSource::GetAngularDistributionFilename ( ) const
inline

Definition at line 85 of file TRestGeant4ParticleSource.h.

◆ GetAngularDistributionFormulaNPoints()

size_t TRestGeant4ParticleSource::GetAngularDistributionFormulaNPoints ( ) const
inline

Definition at line 84 of file TRestGeant4ParticleSource.h.

◆ GetAngularDistributionFunction()

const TF1 * TRestGeant4ParticleSource::GetAngularDistributionFunction ( ) const
inline

Definition at line 87 of file TRestGeant4ParticleSource.h.

◆ GetAngularDistributionIsotropicConeHalfAngle()

double TRestGeant4ParticleSource::GetAngularDistributionIsotropicConeHalfAngle ( ) const
inline

Definition at line 88 of file TRestGeant4ParticleSource.h.

◆ GetAngularDistributionNameInFile()

TString TRestGeant4ParticleSource::GetAngularDistributionNameInFile ( ) const
inline

Definition at line 86 of file TRestGeant4ParticleSource.h.

◆ GetAngularDistributionRange()

TVector2 TRestGeant4ParticleSource::GetAngularDistributionRange ( ) const
inline

Definition at line 81 of file TRestGeant4ParticleSource.h.

◆ GetAngularDistributionRangeMax()

Double_t TRestGeant4ParticleSource::GetAngularDistributionRangeMax ( ) const
inline

Definition at line 83 of file TRestGeant4ParticleSource.h.

◆ GetAngularDistributionRangeMin()

Double_t TRestGeant4ParticleSource::GetAngularDistributionRangeMin ( ) const
inline

Definition at line 82 of file TRestGeant4ParticleSource.h.

◆ GetAngularDistributionType()

TString TRestGeant4ParticleSource::GetAngularDistributionType ( ) const
inline

Definition at line 80 of file TRestGeant4ParticleSource.h.

◆ GetDirection()

TVector3 TRestGeant4ParticleSource::GetDirection ( ) const

Definition at line 164 of file TRestGeant4ParticleSource.cxx.

◆ GetEnergyAndAngularDistributionFunction()

const TF2 * TRestGeant4ParticleSource::GetEnergyAndAngularDistributionFunction ( ) const
inline

Definition at line 92 of file TRestGeant4ParticleSource.h.

◆ GetEnergyDistributionFilename()

TString TRestGeant4ParticleSource::GetEnergyDistributionFilename ( ) const
inline

Definition at line 76 of file TRestGeant4ParticleSource.h.

◆ GetEnergyDistributionFormulaNPoints()

size_t TRestGeant4ParticleSource::GetEnergyDistributionFormulaNPoints ( ) const
inline

Definition at line 75 of file TRestGeant4ParticleSource.h.

◆ GetEnergyDistributionFunction()

const TF1 * TRestGeant4ParticleSource::GetEnergyDistributionFunction ( ) const
inline

Definition at line 78 of file TRestGeant4ParticleSource.h.

◆ GetEnergyDistributionNameInFile()

TString TRestGeant4ParticleSource::GetEnergyDistributionNameInFile ( ) const
inline

Definition at line 77 of file TRestGeant4ParticleSource.h.

◆ GetEnergyDistributionRange()

TVector2 TRestGeant4ParticleSource::GetEnergyDistributionRange ( ) const
inline

Definition at line 72 of file TRestGeant4ParticleSource.h.

◆ GetEnergyDistributionRangeMax()

Double_t TRestGeant4ParticleSource::GetEnergyDistributionRangeMax ( ) const
inline

Definition at line 74 of file TRestGeant4ParticleSource.h.

◆ GetEnergyDistributionRangeMin()

Double_t TRestGeant4ParticleSource::GetEnergyDistributionRangeMin ( ) const
inline

Definition at line 73 of file TRestGeant4ParticleSource.h.

◆ GetEnergyDistributionType()

TString TRestGeant4ParticleSource::GetEnergyDistributionType ( ) const
inline

Definition at line 71 of file TRestGeant4ParticleSource.h.

◆ GetGenFilename()

TString TRestGeant4ParticleSource::GetGenFilename ( ) const
inline

Definition at line 96 of file TRestGeant4ParticleSource.h.

◆ GetParticles()

std::vector< TRestGeant4Particle > TRestGeant4ParticleSource::GetParticles ( ) const
inline

Definition at line 98 of file TRestGeant4ParticleSource.h.

◆ InitFromConfigFile()

void TRestGeant4ParticleSource::InitFromConfigFile ( )
overridevirtual

To make settings from rml file. This method must be implemented in the derived class.

Reimplemented from TRestMetadata.

Reimplemented in TRestGeant4ParticleSourceCosmics, TRestGeant4ParticleSourceCry, and TRestGeant4ParticleSourceDecay0.

Definition at line 130 of file TRestGeant4ParticleSource.cxx.

◆ instantiate()

TRestGeant4ParticleSource * TRestGeant4ParticleSource::instantiate ( std::string  model = "")
static

Definition at line 108 of file TRestGeant4ParticleSource.cxx.

◆ PrintMetadata()

void TRestGeant4ParticleSource::PrintMetadata ( )
overridevirtual

Implemented it in the derived metadata class to print out specific metadata information.

Prints metadata content on screen. Usually overloaded by the derived metadata class.

Reimplemented from TRestMetadata.

Reimplemented in TRestGeant4ParticleSourceCry, and TRestGeant4ParticleSourceDecay0.

Definition at line 35 of file TRestGeant4ParticleSource.cxx.

◆ ReadEventDataFile()

void TRestGeant4ParticleSource::ReadEventDataFile ( TString  fName)
private

Reads an input file produced by Decay0.

The input file should contain the description of several pre-generated events, providing the names (or ids) of particles to be produced, their energy, and momentum. The particles and their properties are stored in a TRestG4ParticleCollection which will be randomly accessed by the restG4 package.

Parameters
fNameThe Decay0 filename located at REST_PATH/data/generator/

Definition at line 189 of file TRestGeant4ParticleSource.cxx.

◆ ReadNewDecay0File()

bool TRestGeant4ParticleSource::ReadNewDecay0File ( TString  fileName)
private

Reads particle information using the file format from newer Decay0 versions.

This is an auxiliar method used in TRestG4Metadata::ReadEventDataFile that will read the Decay0 files produced with the newer Decay0 versions.

Definition at line 201 of file TRestGeant4ParticleSource.cxx.

◆ ReadOldDecay0File()

bool TRestGeant4ParticleSource::ReadOldDecay0File ( TString  fileName)
private

Reads particle information using the file format from older Decay0 versions.

This is an auxiliar method used in TRestG4Metadata::ReadEventDataFile that will read the Decay0 files produced with the newer Decay0 versions.

Definition at line 297 of file TRestGeant4ParticleSource.cxx.

◆ RemoveParticles()

void TRestGeant4ParticleSource::RemoveParticles ( )
inline

Definition at line 197 of file TRestGeant4ParticleSource.h.

◆ RemoveTemplates()

void TRestGeant4ParticleSource::RemoveTemplates ( )
inline

Definition at line 198 of file TRestGeant4ParticleSource.h.

◆ SetAngularDistributionFilename()

void TRestGeant4ParticleSource::SetAngularDistributionFilename ( const TString &  filename)
inline

Definition at line 136 of file TRestGeant4ParticleSource.h.

◆ SetAngularDistributionFormula()

void TRestGeant4ParticleSource::SetAngularDistributionFormula ( const TString &  formula)
inline

Definition at line 142 of file TRestGeant4ParticleSource.h.

◆ SetAngularDistributionFormulaNPoints()

void TRestGeant4ParticleSource::SetAngularDistributionFormulaNPoints ( size_t  nPoints)
inline

Definition at line 129 of file TRestGeant4ParticleSource.h.

◆ SetAngularDistributionIsotropicConeHalfAngle()

void TRestGeant4ParticleSource::SetAngularDistributionIsotropicConeHalfAngle ( double  angle)
inline

Definition at line 100 of file TRestGeant4ParticleSource.h.

◆ SetAngularDistributionNameInFile()

void TRestGeant4ParticleSource::SetAngularDistributionNameInFile ( const TString &  name)
inline

Definition at line 139 of file TRestGeant4ParticleSource.h.

◆ SetAngularDistributionRange()

void TRestGeant4ParticleSource::SetAngularDistributionRange ( const TVector2 &  range)
inline

Definition at line 114 of file TRestGeant4ParticleSource.h.

◆ SetAngularDistributionType()

void TRestGeant4ParticleSource::SetAngularDistributionType ( const TString &  type)
inline

Definition at line 110 of file TRestGeant4ParticleSource.h.

◆ SetEnergyAndAngularDistributionFormula()

void TRestGeant4ParticleSource::SetEnergyAndAngularDistributionFormula ( const TString &  formula)
inline

Definition at line 183 of file TRestGeant4ParticleSource.h.

◆ SetEnergyDistributionFilename()

void TRestGeant4ParticleSource::SetEnergyDistributionFilename ( const TString &  filename)
inline

Definition at line 172 of file TRestGeant4ParticleSource.h.

◆ SetEnergyDistributionFormula()

void TRestGeant4ParticleSource::SetEnergyDistributionFormula ( const TString &  formula)
inline

Definition at line 176 of file TRestGeant4ParticleSource.h.

◆ SetEnergyDistributionFormulaNPoints()

void TRestGeant4ParticleSource::SetEnergyDistributionFormulaNPoints ( size_t  nPoints)
inline

Definition at line 165 of file TRestGeant4ParticleSource.h.

◆ SetEnergyDistributionNameInFile()

void TRestGeant4ParticleSource::SetEnergyDistributionNameInFile ( const TString &  name)
inline

Definition at line 175 of file TRestGeant4ParticleSource.h.

◆ SetEnergyDistributionRange()

void TRestGeant4ParticleSource::SetEnergyDistributionRange ( const TVector2 &  range)
inline

Definition at line 153 of file TRestGeant4ParticleSource.h.

◆ SetEnergyDistributionType()

void TRestGeant4ParticleSource::SetEnergyDistributionType ( const TString &  type)
inline

Definition at line 149 of file TRestGeant4ParticleSource.h.

◆ SetGenFilename()

void TRestGeant4ParticleSource::SetGenFilename ( const TString &  name)
inline

Definition at line 191 of file TRestGeant4ParticleSource.h.

◆ SetRandomMethod()

void TRestGeant4ParticleSource::SetRandomMethod ( double(*)()  method)
inline

Definition at line 193 of file TRestGeant4ParticleSource.h.

◆ Update()

void TRestGeant4ParticleSource::Update ( )
virtual

Reimplemented in TRestGeant4ParticleSourceCry.

Definition at line 151 of file TRestGeant4ParticleSource.cxx.

Field Documentation

◆ fAngularDistributionFilename

TString TRestGeant4ParticleSource::fAngularDistributionFilename
protected

Definition at line 40 of file TRestGeant4ParticleSource.h.

◆ fAngularDistributionFormulaNPoints

size_t TRestGeant4ParticleSource::fAngularDistributionFormulaNPoints = 500
protected

Definition at line 42 of file TRestGeant4ParticleSource.h.

◆ fAngularDistributionFunction

TF1* TRestGeant4ParticleSource::fAngularDistributionFunction = nullptr
protected

Definition at line 43 of file TRestGeant4ParticleSource.h.

◆ fAngularDistributionIsotropicConeHalfAngle

double TRestGeant4ParticleSource::fAngularDistributionIsotropicConeHalfAngle = 0
protected

Definition at line 45 of file TRestGeant4ParticleSource.h.

◆ fAngularDistributionNameInFile

TString TRestGeant4ParticleSource::fAngularDistributionNameInFile
protected

Definition at line 41 of file TRestGeant4ParticleSource.h.

◆ fAngularDistributionRange

TVector2 TRestGeant4ParticleSource::fAngularDistributionRange
protected

Definition at line 44 of file TRestGeant4ParticleSource.h.

◆ fAngularDistributionType

TString TRestGeant4ParticleSource::fAngularDistributionType = "Flux"
protected

Definition at line 39 of file TRestGeant4ParticleSource.h.

◆ fEnergyAndAngularDistributionFunction

TF2* TRestGeant4ParticleSource::fEnergyAndAngularDistributionFunction = nullptr
protected

Definition at line 54 of file TRestGeant4ParticleSource.h.

◆ fEnergyDistributionFilename

TString TRestGeant4ParticleSource::fEnergyDistributionFilename
protected

Definition at line 48 of file TRestGeant4ParticleSource.h.

◆ fEnergyDistributionFormulaNPoints

size_t TRestGeant4ParticleSource::fEnergyDistributionFormulaNPoints = 5000
protected

Definition at line 50 of file TRestGeant4ParticleSource.h.

◆ fEnergyDistributionFunction

TF1* TRestGeant4ParticleSource::fEnergyDistributionFunction = nullptr
protected

Definition at line 51 of file TRestGeant4ParticleSource.h.

◆ fEnergyDistributionNameInFile

TString TRestGeant4ParticleSource::fEnergyDistributionNameInFile
protected

Definition at line 49 of file TRestGeant4ParticleSource.h.

◆ fEnergyDistributionRange

TVector2 TRestGeant4ParticleSource::fEnergyDistributionRange
protected

Definition at line 52 of file TRestGeant4ParticleSource.h.

◆ fEnergyDistributionType

TString TRestGeant4ParticleSource::fEnergyDistributionType = "Mono"
protected

Definition at line 47 of file TRestGeant4ParticleSource.h.

◆ fGenFilename

TString TRestGeant4ParticleSource::fGenFilename
protected

Definition at line 56 of file TRestGeant4ParticleSource.h.

◆ fParticles

std::vector<TRestGeant4Particle> TRestGeant4ParticleSource::fParticles
protected

Definition at line 58 of file TRestGeant4ParticleSource.h.

◆ fParticlesTemplate

std::vector<std::vector<TRestGeant4Particle> > TRestGeant4ParticleSource::fParticlesTemplate
protected

Definition at line 60 of file TRestGeant4ParticleSource.h.

◆ fRandomMethod

double(* TRestGeant4ParticleSource::fRandomMethod) ()
protected

Definition at line 62 of file TRestGeant4ParticleSource.h.


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