REST-for-Physics  v2.3
Rare Event Searches ToolKit for Physics
Public Member Functions | Data Fields | Private Member Functions | Private Attributes | Friends
TRestGeant4Metadata Class Reference

Detailed Description

The main class to store the Geant4 simulation conditions that will be used by restG4.

TRestGeant4Metadata is the main class used to interface with restG4 (a REST based Geant4 code distributed with REST) used to launch Geant4 based simulations, and store later on the simulation conditions as metadata information inside the output generated file. The simulations produced by restG4 will write to disk the event data generated as a TRestGeant4Event type. The tutorials page includes a tutorial describing on detail how to launch a restG4 simulation and retrieve basic simulation results.

There are few helper classes that aid to organize and access the information that TRestGeant4Metadata contains, TRestGeant4Particle, TRestGeant4BiasingVolume, TRestGeant4ParticleSource.

After installation of restG4, some basic working examples can be found at $REST_PATH/examples/. We use this class to store restG4 rml parameters like particle type, energy, direction, gdml definition, etc. In addition, we have a class TRestGeant4PhysicsLists in parallel to define the necessary physics processes, EM, hadronic, etc, that will be active in our Geant4 simulation.

In general terms, an RML file to be used with restG4 must define the following sections, and structures.

// We must, as usual, define the location where the REST output files will
// be stored
<globals>
<parameter name="mainDataPath" value="${REST_DATAPATH}" />
<searchPath value="/path/to/geometry" />
</globals>
// A TRestRun section to define few run parameters with a general run
// description.
...
//A TRestGeant4Metadata section defining few parameters, generator, and detector.
...
//A TRestGeant4PhysicsLists section def-inning the physics processes active.
...
The main class to store the Geant4 simulation conditions that will be used by restG4.
Data provider and manager in REST.
Definition: TRestRun.h:18
Note
Wherever 3 dots (...) are provided means a redundant code format, or that additional fields might be required.
The runTag inside the TRestRun class will be overwritten by the name of TRestGeant4Metadata section defined in the RML.

This page describes in detail the different parameters, particle generator types, detector, and other features implemented in restG4, that can be defined inside the section TRestGeant4Metadata. The description of other required sections, as TRestRun or TRestGeant4PhysicsLists, will be found in their respective class documentation.

We can sub-divide the information provided through TRestGeant4Metadata in different parts,

  1. the main parameters related to the simulation conditions, such as number of events to be simulated, random seed, or GDML geometry definitions file,
  2. the definition of the primary particle generator, using the <generator> section, to define which particles will be generated, from where they will be generated, and which energies and direction distributions they will follow,
  3. the definition of what event hits will be written to disk, using the <detector> section,
  4. and the (optional) definition of biasing volumes to simulate particle transmission through extended detector shieldings, using the <biasing> section.

1. Basic simulation parameters

The following list presents the common parameters that must be defined inside TRestGeant4Metadata section to define few simulation conditions in restG4, as important as the detector geometry, or the number of events to be simulated.

Warning
The only requirement is that the gas logical volume (implemented in a single physical volume on the geometry) must be named gasVolume.

The following example illustrates the definition of the common simulation parameters.

<parameter name="nEvents" value="100" />
<parameter name="gdmlFile" value="/path/to/mySetupTemplate.gdml"/>
<parameter name="maxTargetStepSize" value="200" units="um" />
<parameter name="subEventTimeDelay" value="100" units="us" />

2. The primary particle generator section

The generator section describes from where we will launch our primary particles, which particles we will launch, the energy of these particles, their angular distribution and other required functions needed to cover different physics cases.

The complete structure of the primary particle generator follows this scheme.

<generator type="generatorType" ... >
<source use="geant4" particle="particleName" ... >
<angular type="angularDistribution" />
<energy type="energyDistribution" energy="energyValues" units="MeV" />
</source>
<source particle="particleName" ... >
...
</source>
// Add any number of sources.
</generator>

The generator type definition

The different generator types determine the spatial origin of the primaries that will be generated.

We can define any number of primary particles (sources) that will be used to construct an initial event. All primary particles that build an event will have a common position(*). The spatial origin of these sources, or primaries, is specified in the definition of the generator. We have 4 major types of generator, namely:

Together with the generator type, we need to define the shape, size and position. Both size and position are in TVector3 form. The following shapes are supported:

Rotation of the virtual body defined previously is also supported. We need to define parameter "rotationAxis" and "rotationAngle" to do this job. The TVector3 parameter "rotationAxis" is a virtual axis passing through the center of the virtual body, with its three elements representing its direction. "rotationAngle" defines the rotation angle in the view of the axis direction. It is in radian unit.

// We launch particles from random positions on a virtual wall leaned to 45 deg
<generator type="surface" shape="wall" size="(10,10,0)" position="(0,0,0)"
rotationAxis="(1,0,0)" rotationAngle="0.78539816" > ... </generator>

By default all the primaries will be launched homogeneously from the volume or the surface. We can define additional density function to customize the particle origin distribution. The function is a TF3 function with x, y, z the absolute position(position of gdml frame instead of generator frame) of the particle in unit mm. The returned value should be in range 0-1, indicating the relative probability in this position. For example, we simulate some radio isotopes placed on a chip with doping which follows exponential density distribution near the surface:

<generator type="volume" shape="box" size="(10,10,1)mm" position="(0,0,0.5)"
densityFunc="exp(-z/0.01)" > ... </generator>

The source definition

Three type of source definitions can be used to generate primary particles in our simulation. The different types are introduced through the parameter use.

For the third case, which is the default if use field is not defined, we can define any pre-defined particle name existing in Geant4 in the particle field, as leptons or ions. Additionally, we can define any radioactive isotope by using the element name symbol and the number of nucleons (i.e. Rn222, Co60, U238 ). For the radioactive decays we can also define an additional field fullchain="on/off". This parameter specifies if we want to simulate the full radiative chain or a single decay to the next de-excited isotope.

In summary we can use the following options inside the source definition:

Note
For ions, we can also define its electric charge (signed integer) and excited level value in eV, by using the additional fields excitedLevel and charge.

The source energy distribution

A source, or particle, associated kinetic energy is defined by using.

<energy type="energyDistType" ... />

There are different energy distribution types we can use to define the energy of the primary particles. Depending on the type of energy distribution we will be required to add additional parameters. The types we can use in REST are the following types.

The source angular distribution

The momentum direction of a particle is specified by using.

<angular type="angularDistType" ... />

We can use different types of angular distributions to define the initial direction of the particle. We can choose between the following types inside REST.

Additionally a direction and a cone angle can be specified to generate the particles in a cone around the direction. The angle specified is the half opening angle of the cone.

<angular type="isotropic" direction="(0,1,0)" coneHalfAngle="30deg"/>

3. The detector section definition

The information we store in the ROOT file can be defined using the detector section. The detector section is defined as follows

<detector>
<parameter name="energyRange" value="(0,5)" units="MeV" />
<volume name="gas" sensitive="true" chance="1" />
<volume name="shielding" chance="1" />
// Add as many active volumes as needed
</detector>

The detector section defines the sensitive volumes, and the active volumes where data will be stored.

The sensitive, or active, volumes can be any physical volume defined on the GDML geometry. If an event did not produce an energy deposit in the sensitiveVolume, the event will not be stored at all. Therefore, the sensitive volume will serve as a trigger volume to decide when an event should be stored. For the moment we can only define a single sensitive volume, but it might be desirable to introduce boolean operations with different geometry volumes.

We can define the energy range we are interested in by defining the parameter energyRange. The event will be written to disk only if the total energy deposited in all the active volumes of the detector is in the Ei-Ef range.

<parameter name="energyRange" value="(Ei,Ef)" />

This energy range implies that only events that produced an energy deposit at the sensitive volume, and produced a total energy deposit between Ei and Ef, integrated to all the active volumes, will be stored.

We should define inside the <detector> definition all the physical volumes where we want hits to be stored using <volume> definition.

<volume name="gas" chance="1" maxTargetStepSize="1mm"/>

Each active volume defines a chance parameter. This parameter gives the probability to store the hits of an event in a particular volume. For example,

<volume name="gas" chance="1" />
<volume name="vessel" chance="0.1" />

will store all the hits produced in the gas, and 10% of the events will include information of the hits in the vessel. This may be used as a control volume to allow further study of events depositing energy in the vessel, but saving some space in disk in case we do not need to use all the event population.

Note
If we do not specify any volume, then all volumes found in the GDML geometry will be marked as active volumes. If the chance parameter is not given, the chance will be 1 by default.

On top of that, each volume may define a user limit on the maximum step size of particles in that particular volume specifying the maxStepSize parameter.

<volume name="gas" chance="1" maxStepSize="2mm" />
<volume name="vessel" chance="0.1" maxStepSize="1cm" />

Smaller values will provide a higher amount of detail, but it will require additional computational time and storage.

Note
If maxStepSize is not defined, the default value will be 0, and user limits will not be applied for that particular active volume.

We are still allowed to define a default step size for all the active volumes, using:

<volume sensitiveVolume="gas" maxStepSize="1mm" />

The option removeUnwantedTracks can optionally be enabled inside detector section:

<detector><removeUnwantedTracks enabled="true" keepZeroEnergyTracks="true"></detector>

This option will remove all tracks that do not deposit energy in any of the sensitive volumes or in any of the volumes marked as 'keepTracks' (for instance <volume name="veto" keepTracks="true" >).

By default tracks are removed if they do not deposit energy in these volumes but the parameter 'keepZeroEnergyTracks' can be set to true so that all processes are registered, for example a neutron capture taking place in one of the volumes which does not result in energy deposition.

The kill="true" option can be used in the volume definition (<volume name="shield" kill="true" >) to stop a track after entering the volume. The track will be immediately killed and its energy deposition won't be computed. This is useful to speed up certain kinds of simulations.

4. The biasing volumes section (optional)

The REST Geant4 toolkit (restG4) implements a particular biasing technique to simulate external radiation contributions in extensive shieldings. The technique consists in spatially placing biasing volumes between the initial particle generator and the detector (or sensitive volume).

The largest biasing volume must be fully contained inside the original event generator. And the smaller biasing volume should fully contain all the volumes where hits will be stored. The different biasing volumes must be fully contained one in each other (in other words, the biasing volumes should not overlap).

In practice, restG4 will run a total of N+1 Geant4 simulations, being N the number of biasing volumes defined. The first simulation will just count the number of particles of the specified type traversing the biasing volume, registering also their energy and angular distribution. In the second simulation, the number of particles that traversed the biasing volume will be multiplied by a factor, that is defined independently at each biasing volume, using the recorded energy spectrum from the previous simulation. This will continue until the last smaller biasing volume is reached. Only in the last simulation, when events are launched from the smaller biasing volume, hits will be stored.

This biasing technique has been already tested using a virtualBox generator and virtualBox biasing volumes, leading to compatible results if compared to non biased simulations. When using this technique it is recommended that you first do a small scale version of your simulation to compare biased and non-biased results. If both results (from biased and non-biased) agree then you will be more confident you will not obtain misleading results.

In order to obtain the best results using this technique you should try to keep the same number of events reaching each biasing volume. First, some optimization is required. You will need to empirically test the number of events reaching each biasing volume, and adjust the factors according to these results. In order to have reasonable good results you should assure to have at least 10,000 events reaching each of the biasing volumes. If some energies are very unlikely, and not enough statistics exist at the biasing volume the error will be much higher. This should be solved in a future implementation by using weighting factors.

The biasing technique needs to be activated using the following scheme

<biasing value="on" type="virtualBox,virtualSphere" >
<biasingVolume particle="particleName" size="L" position="(X,Y,Z)"
factor="F" energyRange="(Ei,Ef)" />
// Add as many biasing volumes as desired
</biasing>
Note
The biasing is optional, and only required in exceptional circumstances, most of the times will be disabled by using value="off".

We can use two spatial generators to define the biasing volumes (virtualBox and virtualSphere). It is recommended to use the same type as the original generator. But it is left to the user to make his choice.

Warning
The volumes should be placed in increasing order. From smaller to larger volume.

A biasing volume is defined as follows

<biasingVolume particle="particleName" size="L" position="(X,Y,Z)"
factor="F" energyRange="(Ei,Ef)" />

The particle name may be any particle name defined in Geant4. The biasing particle we define is the only particle that will be transferred to the next biasing volume. Therefore, this biasing method is used to study the transmission of a given particle gamma, neutron, etc through a shielding). The size defines the side of the virtualBox or the radius of the virtualSphere, its position X, Y, Z and a factor F that is the multiplication factor to be used in the next run (In other words, the number of particles launched from a biasing volume will be the number of particles that reached the volume times F). Only the particles in the specified energyRange (Ei,Ef) will be considered in the transmission to the next biasing volume.


RESTsoft - Software for Rare Event Searches with TPCs

History of developments:

2015-July: First concept and implementation of TRestG4 classes.

Author
Javier Galan

Definition at line 47 of file TRestGeant4Metadata.h.

#include <TRestGeant4Metadata.h>

Inheritance diagram for TRestGeant4Metadata:
TRestMetadata

Public Member Functions

void AddParticleSource (TRestGeant4ParticleSource *src)
 Adds a new particle source. More...
 
 ClassDefOverride (TRestGeant4Metadata, 19)
 
Int_t GetActiveVolumeID (const TString &name)
 Returns the id of an active volume giving as parameter its name. More...
 
TString GetActiveVolumeName (Int_t n) const
 Returns a std::string with the name of the active volume with index n. More...
 
std::vector< TString > GetActiveVolumes () const
 
TRestGeant4BiasingVolume GetBiasingVolume (int n)
 Return the biasing volume with index n. More...
 
Double_t GetCosmicFluxInCountsPerCm2PerSecond () const
 Reads the biasing section defined inside TRestGeant4Metadata. More...
 
Double_t GetCosmicIntensityInCountsPerSecond () const
 
Double_t GetEquivalentSimulatedTime () const
 Returns the equivalent simulated time in seconds (physical time simulated) More...
 
std::set< std::string > GetFullChainStopIsotopes () const
 Returns the isotopes that will stop the full chain decay simulation. More...
 
TString GetGdmlFilename () const
 Returns the main filename of the GDML geometry. More...
 
TString GetGdmlReference () const
 Returns the reference provided at the GDML file header. More...
 
const TRestGeant4GeometryInfoGetGeant4GeometryInfo () const
 Returns an immutable reference to the geometry info. More...
 
const TRestGeant4PhysicsInfoGetGeant4PhysicsInfo () const
 Returns an immutable reference to the physics info. More...
 
const TRestGeant4PrimaryGeneratorInfoGetGeant4PrimaryGeneratorInfo () const
 Returns an immutable reference to the primary generator info. More...
 
TString GetGeant4Version () const
 Returns a std::string with the version of Geant4 used on the event data simulation. More...
 
size_t GetGeant4VersionMajor () const
 
double GetGeneratorSurfaceCm2 () const
 
TString GetGeometryPath () const
 Returns the local path to the GDML geometry. More...
 
std::vector< std::string > GetKillVolumes () const
 
TVector3 GetMagneticField () const
 Returns the world magnetic field in Tesla. More...
 
TString GetMaterialsReference () const
 Returns the reference provided at the materials file header. More...
 
Double_t GetMaximumEnergyStored () const
 Returns the maximum event energy required for an event to be stored. More...
 
Double_t GetMaxStepSize (const TString &volume)
 Returns the maximum step at a particular active volume. More...
 
Double_t GetMaxTargetStepSize () const
 Returns the value of the maximum Geant4 step size in mm for the target volume. More...
 
Double_t GetMinimumEnergyStored () const
 Returns the minimum event energy required for an event to be stored. More...
 
unsigned int GetNumberOfActiveVolumes () const
 Returns the number of active volumes, or geometry volumes that have been selected for data storage. More...
 
size_t GetNumberOfBiasingVolumes () const
 Returns the number of biasing volumes defined. More...
 
Long64_t GetNumberOfEvents () const
 Returns the number of events to be simulated. More...
 
Long64_t GetNumberOfRequestedEntries () const
 
size_t GetNumberOfSensitiveVolumes () const
 
Int_t GetNumberOfSources () const
 Returns the number of primary event sources defined in the generator. More...
 
TRestGeant4ParticleSourceGetParticleSource (size_t n=0) const
 Returns the name of the particle source with index n (Geant4 based names). More...
 
bool GetRemoveUnwantedTracks () const
 
bool GetRemoveUnwantedTracksKeepZeroEnergyTracks () const
 
std::vector< std::string > GetRemoveUnwantedTracksVolumesToKeep () const
 
Bool_t GetSaveAllEvents () const
 It returns true if save all events is active. More...
 
Long_t GetSeed () const
 // Used for faster lookup More...
 
TString GetSensitiveVolume (int n=0) const
 Returns a std::string with the name of the sensitive volume. More...
 
const std::vector< TString > & GetSensitiveVolumes () const
 
Double_t GetSimulationMaxTimeSeconds () const
 
Double_t GetSimulationWallTime () const
 Returns the total time of the simulation in seconds (wall time) More...
 
Double_t GetStorageChance (const TString &volume)
 Returns the probability of an active volume being stored. More...
 
Double_t GetStorageChance (Int_t n) const
 Returns the probability per event to register (write to disk) hits in the storage volume with index n. More...
 
bool GetStoreHadronicTargetInfo () const
 
bool GetStoreTracks () const
 
Double_t GetSubEventTimeDelay () const
 Returns the time gap, in us, required to consider a Geant4 hit as a new independent event. It is used to separate simulated events that in practice will appear as such in our detector. I.e. to separate multiple decay products (sometimes with years time delays) into independent events. More...
 
void InsertSensitiveVolume (const TString &volume)
 Sets the name of the sensitive volume. More...
 
bool IsActiveVolume (const char *volumeName) const
 
Int_t isBiasingActive () const
 Returns the number of biasing volumes defined. If 0 the biasing technique is not being used. More...
 
Bool_t isFullChainActivated () const
 Returns true in case full decay chain simulation is enabled. More...
 
Bool_t IsIsotopeFullChainStop (const std::string &isotope) const
 
bool IsKeepTracksVolume (const char *volumeName) const
 
bool IsKillVolume (const char *volumeName) const
 
Bool_t isVolumeStored (const TString &volume) const
 Returns true if the volume named volName has been registered for data storage. More...
 
void Merge (const TRestGeant4Metadata &)
 
TRestGeant4Metadataoperator= (const TRestGeant4Metadata &metadata)
 
void PrintMetadata () override
 Prints on screen the details about the Geant4 simulation conditions, stored in TRestGeant4Metadata. More...
 
Bool_t PrintProgress () const
 It returns true if printProgress parameter was set to true. More...
 
Bool_t RegisterEmptyTracks () const
 It returns false if registerEmptyTracks parameter was set to false. More...
 
void RemoveParticleSources ()
 Remove all the particle sources. More...
 
void SetActiveVolume (const TString &name, Double_t chance, Double_t maxStep=0)
 Adds a geometry volume to the list of active volumes. More...
 
void SetFullChain (Bool_t fullChain)
 Enables/disables the full chain decay generation. More...
 
void SetGdmlFilename (const std::string &gdmlFile)
 It sets the main filename to be used for the GDML geometry. More...
 
void SetGdmlReference (const std::string &reference)
 Returns the reference provided at the GDML file header. More...
 
void SetGeant4Version (const TString &versionString)
 Sets the value of the Geant4 version. More...
 
void SetGeometryPath (const std::string &path)
 It sets the location of the geometry files. More...
 
void SetMaterialsReference (const std::string &reference)
 Returns the reference provided at the materials file header. More...
 
void SetNumberOfEvents (Long64_t n)
 Sets the name of the sensitive volume. More...
 
void SetNumberOfRequestedEntries (Long64_t n)
 
void SetSaveAllEvents (const Bool_t value)
 Enables or disables the save all events feature. More...
 
void SetSeed (Long_t seed)
 Used exclusively by restG4 to set the value of the random seed used on Geant4 simulation. More...
 
void SetSimulationMaxTimeSeconds (Double_t seconds)
 
void SetSimulationWallTime (Double_t time)
 
 TRestGeant4Metadata ()
 Default constructor. More...
 
 TRestGeant4Metadata (const char *configFilename, const std::string &name="")
 Constructor loading data from a config file. More...
 
 TRestGeant4Metadata (const TRestGeant4Metadata &metadata)
 
 ~TRestGeant4Metadata ()
 Default destructor. More...
 

Data Fields

std::set< std::string > fActiveVolumesSet = {}
 

Private Member Functions

void InitFromConfigFile () override
 Initialization of TRestGeant4Metadata members through a RML file. More...
 
void Initialize () override
 Initialization of TRestGeant4Metadata members. More...
 
void ReadBiasing ()
 
void ReadDetector ()
 Reads the storage section defined inside TRestGeant4Metadata. More...
 
void ReadGenerator ()
 Reads the generator section defined inside TRestGeant4Metadata. More...
 
void ReadParticleSource (TRestGeant4ParticleSource *src, TiXmlElement *sourceDefinition)
 It reads the <source definition given by argument. More...
 

Private Attributes

Bool_t fActivateAllVolumes = false
 Sets all volume as active without having to explicitly list them. More...
 
std::vector< TString > fActiveVolumes
 A std::vector to store the names of the active volumes. More...
 
std::vector< TRestGeant4BiasingVolumefBiasingVolumes
 A std::vector containing the biasing volume properties. More...
 
std::vector< Double_t > fChance
 A std::vector to store the probability value to write to disk the hits in a particular event. More...
 
TVector2 fEnergyRangeStored = {0, 1E20}
 A 2d-std::vector storing the energy range, in keV, to decide if a particular event should be written to disk or not. More...
 
Bool_t fFullChain = true
 Defines if a radioactive isotope decay is simulated in full chain (fFullChain=true), or just a single decay (fFullChain=false). More...
 
std::set< std::string > fFullChainStopIsotopes
 If defined, it will stop the full chain decay simulation when one of these isotope appears. More...
 
TString fGdmlFilename
 The filename of the GDML geometry. More...
 
TString fGdmlReference
 A GDML geometry reference introduced in the header of the GDML main setup. More...
 
TRestGeant4GeometryInfo fGeant4GeometryInfo
 Class used to store and retrieve geometry info. More...
 
TRestGeant4PhysicsInfo fGeant4PhysicsInfo
 Class used to store and retrieve physics info such as process names or particle names. More...
 
TRestGeant4PrimaryGeneratorInfo fGeant4PrimaryGeneratorInfo
 Class used to store and retrieve Geant4 primary generator info. More...
 
TString fGeant4Version
 The version of Geant4 used to generate the data. More...
 
TString fGeometryPath
 The local path to the GDML geometry. More...
 
bool fIsMerge = false
 
std::set< std::string > fKillVolumes
 
TVector3 fMagneticField = TVector3(0, 0, 0)
 The world magnetic field. More...
 
TString fMaterialsReference
 A GDML materials reference introduced in the header of the GDML of materials definition. More...
 
std::vector< Double_t > fMaxStepSize
 A std::vector to store the maximum step size at a particular volume. More...
 
Double_t fMaxTargetStepSize = 0
 The maximum target step size, in mm, allowed in Geant4 for the target volume (usually the gas volume). It is obsolete now. We define it at the active volume. More...
 
Int_t fNBiasingVolumes = 0
 The number of biasing volumes used in the simulation. If zero, no biasing technique is used. More...
 
Long64_t fNEvents = 0
 The number of events simulated, or to be simulated. More...
 
Long64_t fNRequestedEntries = 0
 The number of events the user requested to be on the file. More...
 
std::vector< TRestGeant4ParticleSource * > fParticleSource
 It the defines the primary source properties, particle type, momentum, energy, etc. More...
 
Bool_t fPrintProgress = false
 If this parameter is set to 'true' it will print out on screen every time 10k events are reached. More...
 
Bool_t fRegisterEmptyTracks = true
 If this parameter is enabled it will register tracks with no hits inside. This is the default behaviour. If it is disabled then empty tracks will not be written to disk at the risk of loosing traceability, but saving disk space and likely improving computing performance for large events. More...
 
Bool_t fRemoveUnwantedTracks = false
 If activated will remove tracks not present in volumes marked as "keep" or "sensitive". More...
 
Bool_t fRemoveUnwantedTracksKeepZeroEnergyTracks = false
 Option for 'removeUnwantedTracks', if enabled tracks with hits in volumes will be kept event if they deposit zero energy (such as neutron captures) More...
 
std::set< std::string > fRemoveUnwantedTracksVolumesToKeep
 A container related to fRemoveUnwantedTracks. More...
 
Bool_t fSaveAllEvents = false
 If this parameter is set to 'true' it will save all events even if they leave no energy in the sensitive volume (used for debugging purposes). It is set to 'false' by default. More...
 
Long_t fSeed = 0
 The seed value used for Geant4 random event generator. If it is zero its value will be assigned using the system timestamp. More...
 
std::vector< TString > fSensitiveVolumes
 The volume that serves as trigger for data storage. Only events that deposit a non-zero energy on this volume will be registered. More...
 
Double_t fSimulationMaxTimeSeconds = 0
 Time before simulation is ended and saved. More...
 
Double_t fSimulationTime = 0
 The time, in seconds, that the simulation took to complete (wall time) More...
 
Bool_t fStoreHadronicTargetInfo = false
 Option to store target isotope information on hadronic processes (disabled by default) More...
 
Bool_t fStoreTracks = false
 Store event tracks (default is true) More...
 
Double_t fSubEventTimeDelay = 100
 A time gap, in us, determining if an energy hit should be considered (and stored) as an independent event. More...
 

Friends

class DetectorConstruction
 
class SteppingAction
 
class TRestGeant4Hits
 

Additional Inherited Members

Constructor & Destructor Documentation

◆ TRestGeant4Metadata() [1/3]

TRestGeant4Metadata::TRestGeant4Metadata ( )

Default constructor.

Definition at line 755 of file src/TRestGeant4Metadata.cxx.

◆ TRestGeant4Metadata() [2/3]

TRestGeant4Metadata::TRestGeant4Metadata ( const char *  configFilename,
const std::string &  name = "" 
)

Constructor loading data from a config file.

If no configuration path is defined using TRestMetadata::SetConfigFilePath the path to the config file must be specified using full path, absolute or relative.

The default behaviour is that the config file must be specified with full path, absolute or relative.

Parameters
configFilenameA const char* giving the path to an RML file.
nameThe name of the specific metadata. It will be used to find the corresponding TRestGeant4Metadata section inside the RML.

Definition at line 771 of file src/TRestGeant4Metadata.cxx.

◆ ~TRestGeant4Metadata()

TRestGeant4Metadata::~TRestGeant4Metadata ( )

Default destructor.

Definition at line 781 of file src/TRestGeant4Metadata.cxx.

◆ TRestGeant4Metadata() [3/3]

TRestGeant4Metadata::TRestGeant4Metadata ( const TRestGeant4Metadata metadata)

Definition at line 1685 of file src/TRestGeant4Metadata.cxx.

Member Function Documentation

◆ AddParticleSource()

void TRestGeant4Metadata::AddParticleSource ( TRestGeant4ParticleSource src)

Adds a new particle source.

Definition at line 1320 of file src/TRestGeant4Metadata.cxx.

◆ GetActiveVolumeID()

Int_t TRestGeant4Metadata::GetActiveVolumeID ( const TString &  name)

Returns the id of an active volume giving as parameter its name.

Definition at line 1567 of file src/TRestGeant4Metadata.cxx.

◆ GetActiveVolumeName()

TString TRestGeant4Metadata::GetActiveVolumeName ( Int_t  n) const
inline

Returns a std::string with the name of the active volume with index n.

Definition at line 385 of file TRestGeant4Metadata.h.

◆ GetActiveVolumes()

std::vector< TString > TRestGeant4Metadata::GetActiveVolumes ( ) const
inline

Definition at line 387 of file TRestGeant4Metadata.h.

◆ GetBiasingVolume()

TRestGeant4BiasingVolume TRestGeant4Metadata::GetBiasingVolume ( int  n)
inline

Return the biasing volume with index n.

Definition at line 297 of file TRestGeant4Metadata.h.

◆ GetCosmicFluxInCountsPerCm2PerSecond()

Double_t TRestGeant4Metadata::GetCosmicFluxInCountsPerCm2PerSecond ( ) const

Reads the biasing section defined inside TRestGeant4Metadata.

This section allows to define the size and properties of any number of biasing volumes. Biasing volume properties include the multiplicity factor and the range of energies that particles will be propagated to the next biasing volume.

<biasing value="off" type="virtualBox">
<biasingVolume size="2850mm" position="(0,0,0)mm" factor="2" energyRange="(0,5)MeV" />
<biasingVolume size="2450mm" position="(0,0,0)mm" factor="2" energyRange="(0,5)MeV" />
<biasingVolume size="2050mm" position="(0,0,0)mm" factor="2" energyRange="(0,5)MeV" />
</biasing>

Check for more details in the general description of this class.

Definition at line 926 of file src/TRestGeant4Metadata.cxx.

◆ GetCosmicIntensityInCountsPerSecond()

Double_t TRestGeant4Metadata::GetCosmicIntensityInCountsPerSecond ( ) const

Definition at line 977 of file src/TRestGeant4Metadata.cxx.

◆ GetEquivalentSimulatedTime()

Double_t TRestGeant4Metadata::GetEquivalentSimulatedTime ( ) const

Returns the equivalent simulated time in seconds (physical time simulated)

Definition at line 984 of file src/TRestGeant4Metadata.cxx.

◆ GetFullChainStopIsotopes()

std::set< std::string > TRestGeant4Metadata::GetFullChainStopIsotopes ( ) const
inline

Returns the isotopes that will stop the full chain decay simulation.

Definition at line 220 of file TRestGeant4Metadata.h.

◆ GetGdmlFilename()

TString TRestGeant4Metadata::GetGdmlFilename ( ) const
inline

Returns the main filename of the GDML geometry.

Definition at line 208 of file TRestGeant4Metadata.h.

◆ GetGdmlReference()

TString TRestGeant4Metadata::GetGdmlReference ( ) const
inline

Returns the reference provided at the GDML file header.

Definition at line 211 of file TRestGeant4Metadata.h.

◆ GetGeant4GeometryInfo()

const TRestGeant4GeometryInfo & TRestGeant4Metadata::GetGeant4GeometryInfo ( ) const
inline

Returns an immutable reference to the geometry info.

Definition at line 187 of file TRestGeant4Metadata.h.

◆ GetGeant4PhysicsInfo()

const TRestGeant4PhysicsInfo & TRestGeant4Metadata::GetGeant4PhysicsInfo ( ) const
inline

Returns an immutable reference to the physics info.

Definition at line 190 of file TRestGeant4Metadata.h.

◆ GetGeant4PrimaryGeneratorInfo()

const TRestGeant4PrimaryGeneratorInfo & TRestGeant4Metadata::GetGeant4PrimaryGeneratorInfo ( ) const
inline

Returns an immutable reference to the primary generator info.

Definition at line 193 of file TRestGeant4Metadata.h.

◆ GetGeant4Version()

TString TRestGeant4Metadata::GetGeant4Version ( ) const
inline

Returns a std::string with the version of Geant4 used on the event data simulation.

Definition at line 198 of file TRestGeant4Metadata.h.

◆ GetGeant4VersionMajor()

size_t TRestGeant4Metadata::GetGeant4VersionMajor ( ) const

Definition at line 1664 of file src/TRestGeant4Metadata.cxx.

◆ GetGeneratorSurfaceCm2()

double TRestGeant4Metadata::GetGeneratorSurfaceCm2 ( ) const

Definition at line 1604 of file src/TRestGeant4Metadata.cxx.

◆ GetGeometryPath()

TString TRestGeant4Metadata::GetGeometryPath ( ) const
inline

Returns the local path to the GDML geometry.

Definition at line 205 of file TRestGeant4Metadata.h.

◆ GetKillVolumes()

std::vector< std::string > TRestGeant4Metadata::GetKillVolumes ( ) const
inline

Definition at line 357 of file TRestGeant4Metadata.h.

◆ GetMagneticField()

TVector3 TRestGeant4Metadata::GetMagneticField ( ) const
inline

Returns the world magnetic field in Tesla.

Definition at line 398 of file TRestGeant4Metadata.h.

◆ GetMaterialsReference()

TString TRestGeant4Metadata::GetMaterialsReference ( ) const
inline

Returns the reference provided at the materials file header.

Definition at line 214 of file TRestGeant4Metadata.h.

◆ GetMaximumEnergyStored()

Double_t TRestGeant4Metadata::GetMaximumEnergyStored ( ) const
inline

Returns the maximum event energy required for an event to be stored.

Definition at line 341 of file TRestGeant4Metadata.h.

◆ GetMaxStepSize()

Double_t TRestGeant4Metadata::GetMaxStepSize ( const TString &  volume)

Returns the maximum step at a particular active volume.

Definition at line 1653 of file src/TRestGeant4Metadata.cxx.

◆ GetMaxTargetStepSize()

Double_t TRestGeant4Metadata::GetMaxTargetStepSize ( ) const
inline

Returns the value of the maximum Geant4 step size in mm for the target volume.

Definition at line 227 of file TRestGeant4Metadata.h.

◆ GetMinimumEnergyStored()

Double_t TRestGeant4Metadata::GetMinimumEnergyStored ( ) const
inline

Returns the minimum event energy required for an event to be stored.

Definition at line 338 of file TRestGeant4Metadata.h.

◆ GetNumberOfActiveVolumes()

unsigned int TRestGeant4Metadata::GetNumberOfActiveVolumes ( ) const
inline

Returns the number of active volumes, or geometry volumes that have been selected for data storage.

Definition at line 345 of file TRestGeant4Metadata.h.

◆ GetNumberOfBiasingVolumes()

size_t TRestGeant4Metadata::GetNumberOfBiasingVolumes ( ) const
inline

Returns the number of biasing volumes defined.

Definition at line 294 of file TRestGeant4Metadata.h.

◆ GetNumberOfEvents()

Long64_t TRestGeant4Metadata::GetNumberOfEvents ( ) const
inline

Returns the number of events to be simulated.

Definition at line 269 of file TRestGeant4Metadata.h.

◆ GetNumberOfRequestedEntries()

Long64_t TRestGeant4Metadata::GetNumberOfRequestedEntries ( ) const
inline

Definition at line 271 of file TRestGeant4Metadata.h.

◆ GetNumberOfSensitiveVolumes()

size_t TRestGeant4Metadata::GetNumberOfSensitiveVolumes ( ) const
inline

Definition at line 305 of file TRestGeant4Metadata.h.

◆ GetNumberOfSources()

Int_t TRestGeant4Metadata::GetNumberOfSources ( ) const
inline

Returns the number of primary event sources defined in the generator.

Definition at line 278 of file TRestGeant4Metadata.h.

◆ GetParticleSource()

TRestGeant4ParticleSource * TRestGeant4Metadata::GetParticleSource ( size_t  n = 0) const
inline

Returns the name of the particle source with index n (Geant4 based names).

Definition at line 281 of file TRestGeant4Metadata.h.

◆ GetRemoveUnwantedTracks()

bool TRestGeant4Metadata::GetRemoveUnwantedTracks ( ) const
inline

Definition at line 389 of file TRestGeant4Metadata.h.

◆ GetRemoveUnwantedTracksKeepZeroEnergyTracks()

bool TRestGeant4Metadata::GetRemoveUnwantedTracksKeepZeroEnergyTracks ( ) const
inline

Definition at line 393 of file TRestGeant4Metadata.h.

◆ GetRemoveUnwantedTracksVolumesToKeep()

std::vector< std::string > TRestGeant4Metadata::GetRemoveUnwantedTracksVolumesToKeep ( ) const
inline

Definition at line 365 of file TRestGeant4Metadata.h.

◆ GetSaveAllEvents()

Bool_t TRestGeant4Metadata::GetSaveAllEvents ( ) const
inline

It returns true if save all events is active.

Definition at line 236 of file TRestGeant4Metadata.h.

◆ GetSeed()

Long_t TRestGeant4Metadata::GetSeed ( ) const
inline

// Used for faster lookup

Returns the random seed that was used to generate the corresponding geant4 dataset.

Definition at line 184 of file TRestGeant4Metadata.h.

◆ GetSensitiveVolume()

TString TRestGeant4Metadata::GetSensitiveVolume ( int  n = 0) const
inline

Returns a std::string with the name of the sensitive volume.

Definition at line 303 of file TRestGeant4Metadata.h.

◆ GetSensitiveVolumes()

const std::vector< TString > & TRestGeant4Metadata::GetSensitiveVolumes ( ) const
inline

Definition at line 307 of file TRestGeant4Metadata.h.

◆ GetSimulationMaxTimeSeconds()

Double_t TRestGeant4Metadata::GetSimulationMaxTimeSeconds ( ) const
inline

Definition at line 273 of file TRestGeant4Metadata.h.

◆ GetSimulationWallTime()

Double_t TRestGeant4Metadata::GetSimulationWallTime ( ) const
inline

Returns the total time of the simulation in seconds (wall time)

Definition at line 382 of file TRestGeant4Metadata.h.

◆ GetStorageChance() [1/2]

Double_t TRestGeant4Metadata::GetStorageChance ( const TString &  volume)

Returns the probability of an active volume being stored.

Returns the probability per event to register (write to disk) hits in a GDML volume given its geometry name.

Definition at line 1637 of file src/TRestGeant4Metadata.cxx.

◆ GetStorageChance() [2/2]

Double_t TRestGeant4Metadata::GetStorageChance ( Int_t  n) const
inline

Returns the probability per event to register (write to disk) hits in the storage volume with index n.

Definition at line 329 of file TRestGeant4Metadata.h.

◆ GetStoreHadronicTargetInfo()

bool TRestGeant4Metadata::GetStoreHadronicTargetInfo ( ) const
inline

Definition at line 202 of file TRestGeant4Metadata.h.

◆ GetStoreTracks()

bool TRestGeant4Metadata::GetStoreTracks ( ) const
inline

Definition at line 391 of file TRestGeant4Metadata.h.

◆ GetSubEventTimeDelay()

Double_t TRestGeant4Metadata::GetSubEventTimeDelay ( ) const
inline

Returns the time gap, in us, required to consider a Geant4 hit as a new independent event. It is used to separate simulated events that in practice will appear as such in our detector. I.e. to separate multiple decay products (sometimes with years time delays) into independent events.

Definition at line 233 of file TRestGeant4Metadata.h.

◆ InitFromConfigFile()

void TRestGeant4Metadata::InitFromConfigFile ( )
overrideprivatevirtual

Initialization of TRestGeant4Metadata members through a RML file.

Reimplemented from TRestMetadata.

Definition at line 800 of file src/TRestGeant4Metadata.cxx.

◆ Initialize()

void TRestGeant4Metadata::Initialize ( )
overrideprivatevirtual

Initialization of TRestGeant4Metadata members.

Reimplemented from TRestMetadata.

Definition at line 786 of file src/TRestGeant4Metadata.cxx.

◆ InsertSensitiveVolume()

void TRestGeant4Metadata::InsertSensitiveVolume ( const TString &  volume)
inline

Sets the name of the sensitive volume.

Definition at line 317 of file TRestGeant4Metadata.h.

◆ IsActiveVolume()

bool TRestGeant4Metadata::IsActiveVolume ( const char *  volumeName) const
inline

Definition at line 347 of file TRestGeant4Metadata.h.

◆ isBiasingActive()

Int_t TRestGeant4Metadata::isBiasingActive ( ) const
inline

Returns the number of biasing volumes defined. If 0 the biasing technique is not being used.

Definition at line 300 of file TRestGeant4Metadata.h.

◆ isFullChainActivated()

Bool_t TRestGeant4Metadata::isFullChainActivated ( ) const
inline

Returns true in case full decay chain simulation is enabled.

Definition at line 217 of file TRestGeant4Metadata.h.

◆ IsIsotopeFullChainStop()

Bool_t TRestGeant4Metadata::IsIsotopeFullChainStop ( const std::string &  isotope) const
inline

Definition at line 222 of file TRestGeant4Metadata.h.

◆ IsKeepTracksVolume()

bool TRestGeant4Metadata::IsKeepTracksVolume ( const char *  volumeName) const
inline

Definition at line 351 of file TRestGeant4Metadata.h.

◆ IsKillVolume()

bool TRestGeant4Metadata::IsKillVolume ( const char *  volumeName) const
inline

Definition at line 355 of file TRestGeant4Metadata.h.

◆ isVolumeStored()

Bool_t TRestGeant4Metadata::isVolumeStored ( const TString &  volume) const

Returns true if the volume named volName has been registered for data storage.

Definition at line 1624 of file src/TRestGeant4Metadata.cxx.

◆ Merge()

void TRestGeant4Metadata::Merge ( const TRestGeant4Metadata metadata)

Definition at line 1676 of file src/TRestGeant4Metadata.cxx.

◆ operator=()

TRestGeant4Metadata & TRestGeant4Metadata::operator= ( const TRestGeant4Metadata metadata)

Definition at line 1689 of file src/TRestGeant4Metadata.cxx.

◆ PrintMetadata()

void TRestGeant4Metadata::PrintMetadata ( )
overridevirtual

Prints on screen the details about the Geant4 simulation conditions, stored in TRestGeant4Metadata.

Reimplemented from TRestMetadata.

Definition at line 1503 of file src/TRestGeant4Metadata.cxx.

◆ PrintProgress()

Bool_t TRestGeant4Metadata::PrintProgress ( ) const
inline

It returns true if printProgress parameter was set to true.

Definition at line 239 of file TRestGeant4Metadata.h.

◆ ReadBiasing()

void TRestGeant4Metadata::ReadBiasing ( )
private

Definition at line 1008 of file src/TRestGeant4Metadata.cxx.

◆ ReadDetector()

void TRestGeant4Metadata::ReadDetector ( )
private

Reads the storage section defined inside TRestGeant4Metadata.

This section allows to define which hits will be stored to disk. Different volumes in the geometry can be tagged for hit storage. At least one volume must be tagged as sensitive

<detector>
<parameter name="energyRange" value="(0,5)MeV" />
<volume name="gas" sensitive="true" chance="1" maxStepSize="2mm" />
</detector>

Definition at line 1338 of file src/TRestGeant4Metadata.cxx.

◆ ReadGenerator()

void TRestGeant4Metadata::ReadGenerator ( )
private

Reads the generator section defined inside TRestGeant4Metadata.

This section allows to define the primary particles to be simulated. The generator will allow us to define from where we will launch the primary particles, their energy distribution, and their angular momentum.

<generator type="volume" from="gas" >
<source use="Xe136bb0n.dat"/>
<!--<source use="decay0" particle="Xe136" decayMode="0vbb" daughterLevel="3" />-->
<!--<source use="geant4" particle="Na22" excitedLevel="0.0" fullChain="on">
<angular type="isotropic" />
<energy type="mono" energy="0.0" units="MeV" />
</source>-->
</generator>

Definition at line 1071 of file src/TRestGeant4Metadata.cxx.

◆ ReadParticleSource()

void TRestGeant4Metadata::ReadParticleSource ( TRestGeant4ParticleSource src,
TiXmlElement *  sourceDefinition 
)
private

It reads the <source definition given by argument.

Definition at line 1130 of file src/TRestGeant4Metadata.cxx.

◆ RegisterEmptyTracks()

Bool_t TRestGeant4Metadata::RegisterEmptyTracks ( ) const
inline

It returns false if registerEmptyTracks parameter was set to false.

Definition at line 242 of file TRestGeant4Metadata.h.

◆ RemoveParticleSources()

void TRestGeant4Metadata::RemoveParticleSources ( )

Remove all the particle sources.

Definition at line 1313 of file src/TRestGeant4Metadata.cxx.

◆ SetActiveVolume()

void TRestGeant4Metadata::SetActiveVolume ( const TString &  name,
Double_t  chance,
Double_t  maxStep = 0 
)

Adds a geometry volume to the list of active volumes.

Parameters
nameThe name of the volume to be added to the active volumes list for storage. Using GDML naming convention.
chanceProbability that for a particular event the hits are stored in that volume.
maxStepIt defines the maximum integration step at the active volume.

The aim of this parameter is to define control volumes. Usually the volume of interest will be always registered (chance=1).

Definition at line 1589 of file src/TRestGeant4Metadata.cxx.

◆ SetFullChain()

void TRestGeant4Metadata::SetFullChain ( Bool_t  fullChain)
inline

Enables/disables the full chain decay generation.

Definition at line 254 of file TRestGeant4Metadata.h.

◆ SetGdmlFilename()

void TRestGeant4Metadata::SetGdmlFilename ( const std::string &  gdmlFile)
inline

It sets the main filename to be used for the GDML geometry.

Definition at line 260 of file TRestGeant4Metadata.h.

◆ SetGdmlReference()

void TRestGeant4Metadata::SetGdmlReference ( const std::string &  reference)
inline

Returns the reference provided at the GDML file header.

Definition at line 263 of file TRestGeant4Metadata.h.

◆ SetGeant4Version()

void TRestGeant4Metadata::SetGeant4Version ( const TString &  versionString)
inline

Sets the value of the Geant4 version.

Definition at line 251 of file TRestGeant4Metadata.h.

◆ SetGeometryPath()

void TRestGeant4Metadata::SetGeometryPath ( const std::string &  path)
inline

It sets the location of the geometry files.

Definition at line 257 of file TRestGeant4Metadata.h.

◆ SetMaterialsReference()

void TRestGeant4Metadata::SetMaterialsReference ( const std::string &  reference)
inline

Returns the reference provided at the materials file header.

Definition at line 266 of file TRestGeant4Metadata.h.

◆ SetNumberOfEvents()

void TRestGeant4Metadata::SetNumberOfEvents ( Long64_t  n)
inline

Sets the name of the sensitive volume.

Definition at line 310 of file TRestGeant4Metadata.h.

◆ SetNumberOfRequestedEntries()

void TRestGeant4Metadata::SetNumberOfRequestedEntries ( Long64_t  n)
inline

Definition at line 312 of file TRestGeant4Metadata.h.

◆ SetSaveAllEvents()

void TRestGeant4Metadata::SetSaveAllEvents ( const Bool_t  value)
inline

Enables or disables the save all events feature.

Definition at line 248 of file TRestGeant4Metadata.h.

◆ SetSeed()

void TRestGeant4Metadata::SetSeed ( Long_t  seed)
inline

Used exclusively by restG4 to set the value of the random seed used on Geant4 simulation.

Definition at line 245 of file TRestGeant4Metadata.h.

◆ SetSimulationMaxTimeSeconds()

void TRestGeant4Metadata::SetSimulationMaxTimeSeconds ( Double_t  seconds)
inline

Definition at line 314 of file TRestGeant4Metadata.h.

◆ SetSimulationWallTime()

void TRestGeant4Metadata::SetSimulationWallTime ( Double_t  time)
inline

Definition at line 406 of file TRestGeant4Metadata.h.

Friends And Related Function Documentation

◆ DetectorConstruction

friend class DetectorConstruction
friend

Definition at line 424 of file TRestGeant4Metadata.h.

◆ SteppingAction

friend class SteppingAction
friend

Definition at line 423 of file TRestGeant4Metadata.h.

◆ TRestGeant4Hits

friend class TRestGeant4Hits
friend

Definition at line 425 of file TRestGeant4Metadata.h.

Field Documentation

◆ fActivateAllVolumes

Bool_t TRestGeant4Metadata::fActivateAllVolumes = false
private

Sets all volume as active without having to explicitly list them.

Definition at line 151 of file TRestGeant4Metadata.h.

◆ fActiveVolumes

std::vector<TString> TRestGeant4Metadata::fActiveVolumes
private

A std::vector to store the names of the active volumes.

Definition at line 91 of file TRestGeant4Metadata.h.

◆ fActiveVolumesSet

std::set<std::string> TRestGeant4Metadata::fActiveVolumesSet = {}

Definition at line 181 of file TRestGeant4Metadata.h.

◆ fBiasingVolumes

std::vector<TRestGeant4BiasingVolume> TRestGeant4Metadata::fBiasingVolumes
private

A std::vector containing the biasing volume properties.

Definition at line 106 of file TRestGeant4Metadata.h.

◆ fChance

std::vector<Double_t> TRestGeant4Metadata::fChance
private

A std::vector to store the probability value to write to disk the hits in a particular event.

Definition at line 94 of file TRestGeant4Metadata.h.

◆ fEnergyRangeStored

TVector2 TRestGeant4Metadata::fEnergyRangeStored = {0, 1E20}
private

A 2d-std::vector storing the energy range, in keV, to decide if a particular event should be written to disk or not.

Definition at line 88 of file TRestGeant4Metadata.h.

◆ fFullChain

Bool_t TRestGeant4Metadata::fFullChain = true
private

Defines if a radioactive isotope decay is simulated in full chain (fFullChain=true), or just a single decay (fFullChain=false).

Definition at line 118 of file TRestGeant4Metadata.h.

◆ fFullChainStopIsotopes

std::set<std::string> TRestGeant4Metadata::fFullChainStopIsotopes
private

If defined, it will stop the full chain decay simulation when one of these isotope appears.

Definition at line 121 of file TRestGeant4Metadata.h.

◆ fGdmlFilename

TString TRestGeant4Metadata::fGdmlFilename
private

The filename of the GDML geometry.

Definition at line 78 of file TRestGeant4Metadata.h.

◆ fGdmlReference

TString TRestGeant4Metadata::fGdmlReference
private

A GDML geometry reference introduced in the header of the GDML main setup.

Definition at line 81 of file TRestGeant4Metadata.h.

◆ fGeant4GeometryInfo

TRestGeant4GeometryInfo TRestGeant4Metadata::fGeant4GeometryInfo
private

Class used to store and retrieve geometry info.

Definition at line 63 of file TRestGeant4Metadata.h.

◆ fGeant4PhysicsInfo

TRestGeant4PhysicsInfo TRestGeant4Metadata::fGeant4PhysicsInfo
private

Class used to store and retrieve physics info such as process names or particle names.

Definition at line 66 of file TRestGeant4Metadata.h.

◆ fGeant4PrimaryGeneratorInfo

TRestGeant4PrimaryGeneratorInfo TRestGeant4Metadata::fGeant4PrimaryGeneratorInfo
private

Class used to store and retrieve Geant4 primary generator info.

Definition at line 69 of file TRestGeant4Metadata.h.

◆ fGeant4Version

TString TRestGeant4Metadata::fGeant4Version
private

The version of Geant4 used to generate the data.

Definition at line 72 of file TRestGeant4Metadata.h.

◆ fGeometryPath

TString TRestGeant4Metadata::fGeometryPath
private

The local path to the GDML geometry.

Definition at line 75 of file TRestGeant4Metadata.h.

◆ fIsMerge

bool TRestGeant4Metadata::fIsMerge = false
private

Definition at line 60 of file TRestGeant4Metadata.h.

◆ fKillVolumes

std::set<std::string> TRestGeant4Metadata::fKillVolumes
private

Definition at line 166 of file TRestGeant4Metadata.h.

◆ fMagneticField

TVector3 TRestGeant4Metadata::fMagneticField = TVector3(0, 0, 0)
private

The world magnetic field.

Definition at line 178 of file TRestGeant4Metadata.h.

◆ fMaterialsReference

TString TRestGeant4Metadata::fMaterialsReference
private

A GDML materials reference introduced in the header of the GDML of materials definition.

Definition at line 84 of file TRestGeant4Metadata.h.

◆ fMaxStepSize

std::vector<Double_t> TRestGeant4Metadata::fMaxStepSize
private

A std::vector to store the maximum step size at a particular volume.

Definition at line 97 of file TRestGeant4Metadata.h.

◆ fMaxTargetStepSize

Double_t TRestGeant4Metadata::fMaxTargetStepSize = 0
private

The maximum target step size, in mm, allowed in Geant4 for the target volume (usually the gas volume). It is obsolete now. We define it at the active volume.

Definition at line 110 of file TRestGeant4Metadata.h.

◆ fNBiasingVolumes

Int_t TRestGeant4Metadata::fNBiasingVolumes = 0
private

The number of biasing volumes used in the simulation. If zero, no biasing technique is used.

Definition at line 103 of file TRestGeant4Metadata.h.

◆ fNEvents

Long64_t TRestGeant4Metadata::fNEvents = 0
private

The number of events simulated, or to be simulated.

Definition at line 128 of file TRestGeant4Metadata.h.

◆ fNRequestedEntries

Long64_t TRestGeant4Metadata::fNRequestedEntries = 0
private

The number of events the user requested to be on the file.

Definition at line 131 of file TRestGeant4Metadata.h.

◆ fParticleSource

std::vector<TRestGeant4ParticleSource*> TRestGeant4Metadata::fParticleSource
private

It the defines the primary source properties, particle type, momentum, energy, etc.

Definition at line 100 of file TRestGeant4Metadata.h.

◆ fPrintProgress

Bool_t TRestGeant4Metadata::fPrintProgress = false
private

If this parameter is set to 'true' it will print out on screen every time 10k events are reached.

Definition at line 170 of file TRestGeant4Metadata.h.

◆ fRegisterEmptyTracks

Bool_t TRestGeant4Metadata::fRegisterEmptyTracks = true
private

If this parameter is enabled it will register tracks with no hits inside. This is the default behaviour. If it is disabled then empty tracks will not be written to disk at the risk of loosing traceability, but saving disk space and likely improving computing performance for large events.

Definition at line 175 of file TRestGeant4Metadata.h.

◆ fRemoveUnwantedTracks

Bool_t TRestGeant4Metadata::fRemoveUnwantedTracks = false
private

If activated will remove tracks not present in volumes marked as "keep" or "sensitive".

Definition at line 154 of file TRestGeant4Metadata.h.

◆ fRemoveUnwantedTracksKeepZeroEnergyTracks

Bool_t TRestGeant4Metadata::fRemoveUnwantedTracksKeepZeroEnergyTracks = false
private

Option for 'removeUnwantedTracks', if enabled tracks with hits in volumes will be kept event if they deposit zero energy (such as neutron captures)

Definition at line 161 of file TRestGeant4Metadata.h.

◆ fRemoveUnwantedTracksVolumesToKeep

std::set<std::string> TRestGeant4Metadata::fRemoveUnwantedTracksVolumesToKeep
private

A container related to fRemoveUnwantedTracks.

Definition at line 164 of file TRestGeant4Metadata.h.

◆ fSaveAllEvents

Bool_t TRestGeant4Metadata::fSaveAllEvents = false
private

If this parameter is set to 'true' it will save all events even if they leave no energy in the sensitive volume (used for debugging purposes). It is set to 'false' by default.

Definition at line 145 of file TRestGeant4Metadata.h.

◆ fSeed

Long_t TRestGeant4Metadata::fSeed = 0
private

The seed value used for Geant4 random event generator. If it is zero its value will be assigned using the system timestamp.

Definition at line 141 of file TRestGeant4Metadata.h.

◆ fSensitiveVolumes

std::vector<TString> TRestGeant4Metadata::fSensitiveVolumes
private

The volume that serves as trigger for data storage. Only events that deposit a non-zero energy on this volume will be registered.

Definition at line 125 of file TRestGeant4Metadata.h.

◆ fSimulationMaxTimeSeconds

Double_t TRestGeant4Metadata::fSimulationMaxTimeSeconds = 0
private

Time before simulation is ended and saved.

Definition at line 134 of file TRestGeant4Metadata.h.

◆ fSimulationTime

Double_t TRestGeant4Metadata::fSimulationTime = 0
private

The time, in seconds, that the simulation took to complete (wall time)

Definition at line 137 of file TRestGeant4Metadata.h.

◆ fStoreHadronicTargetInfo

Bool_t TRestGeant4Metadata::fStoreHadronicTargetInfo = false
private

Option to store target isotope information on hadronic processes (disabled by default)

Definition at line 148 of file TRestGeant4Metadata.h.

◆ fStoreTracks

Bool_t TRestGeant4Metadata::fStoreTracks = false
private

Store event tracks (default is true)

Definition at line 157 of file TRestGeant4Metadata.h.

◆ fSubEventTimeDelay

Double_t TRestGeant4Metadata::fSubEventTimeDelay = 100
private

A time gap, in us, determining if an energy hit should be considered (and stored) as an independent event.

Definition at line 114 of file TRestGeant4Metadata.h.


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