Source Features

group SourceFeatures

Source and SourceFeatures, i.e. properties of the partcle injection.

Sourcefeatures are added to sources and manipulate the properties of the emitted candidate.

class SourceFeature : public Referenced
#include <Source.h>

Abstract base class for specific source features.

Subclassed by SourceComposition, SourceDensityGrid, SourceDensityGrid1D, SourceDirectedEmission, SourceDirection, SourceEmissionCone, SourceEmissionMap, SourceEnergy, SourceGenericComposition, SourceIsotropicEmission, SourceLambertDistributionOnSphere, SourceMassDistribution, SourceMultipleParticleTypes, SourceMultiplePositions, SourceParticleType, SourcePosition, SourcePowerLawSpectrum, SourcePulsarDistribution, SourceRedshift, SourceRedshift1D, SourceRedshiftEvolution, SourceSNRDistribution, SourceTag, SourceUniform1D, SourceUniformBox, SourceUniformCylinder, SourceUniformHollowSphere, SourceUniformRedshift, SourceUniformShell, SourceUniformSphere

class SourceInterface : public Referenced
#include <Source.h>

Abstract base class for sources.

Subclassed by Source, SourceList

class Source : public SourceInterface
#include <Source.h>

General source of particles.

This class is a container for source features. The source prepares a new candidate by passing it to all its source features to be modified accordingly.

class SourceList : public SourceInterface
#include <Source.h>

List of particle sources of individual luminosities.

The SourceList is a source itself. It can be used if several sources are needed in one simulation.

class SourceParticleType : public SourceFeature
#include <Source.h>

Particle type at the source.

This feature assigns a single particle type to the source. For multiple types, use e.g. SourceMultipleParticleTypes. Particles are identified following the PDG numbering scheme: https://pdg.lbl.gov/2019/reviews/rpp2019-rev-monte-carlo-numbering.pdf

class SourceMultipleParticleTypes : public SourceFeature
#include <Source.h>

Multiple particle types with individual relative abundances.

This feature assigns particle types to the events emitted by the sources. It is possible to control the relative abundance of each particle species. Particles are identified following the PDG numbering scheme: https://pdg.lbl.gov/2019/reviews/rpp2019-rev-monte-carlo-numbering.pdf

class SourceEnergy : public SourceFeature
#include <Source.h>

Sets the initial energy of the emitted particles to a specific value.

This feature assigns a monochromatic spectrum, i.e., a single energy to all particles.

class SourcePowerLawSpectrum : public SourceFeature
#include <Source.h>

Particle energy following a power-law spectrum.

The power law is of the form: dN/dE ~ E^index, for energies in the interval [Emin, Emax].

class SourceComposition : public SourceFeature
#include <Source.h>

Multiple nuclear species with a rigidity-dependent power-law spectrum.

The power law is of the form: E^index, for energies in the interval [Emin, Z * Rmax].

class SourcePosition : public SourceFeature
#include <Source.h>

Position of a point source.

class SourceMultiplePositions : public SourceFeature
#include <Source.h>

Multiple point-source positions with individual luminosities.

class SourceUniformSphere : public SourceFeature
#include <Source.h>

Uniform distribution of sources in a spherical volume.

class SourceUniformHollowSphere : public SourceFeature
#include <Source.h>

Uniform distribution of sources between two spheres.

class SourceUniformShell : public SourceFeature
#include <Source.h>

Uniform distribution of source positions on the surface of a sphere.

class SourceUniformBox : public SourceFeature
#include <Source.h>

Uniform random source positions inside a box. The box is aligned with the coordinate axes.

class SourceUniformCylinder : public SourceFeature
#include <Source.h>

Uniform distribution of source positions inside the volume of a cylinder whose axis is along the z-axis.

The circle of the cylinder lays in the xy-plane and the height is along the z-axis.

class SourceSNRDistribution : public SourceFeature
#include <Source.h>

Source distribution that follows the Galactic SNR distribution in 2D.

The origin of the distribution is the Galactic center. The default maximum radius is set to rMax=20 kpc and the default maximum height is zMax = 5 kpc. See G. Case and D. Bhattacharya (1996) for the details of the distribution.

class SourcePulsarDistribution : public SourceFeature
#include <Source.h>

Source distribution following the Galactic pulsar distribution.

A logarithmic spiral with four arms is used for the radial distribution. The z-distribution is a simple exponentially decaying distribution. The pulsar distribution is explained in detail in C.-A. Faucher-Giguere and V. M. Kaspi, ApJ 643 (May, 2006) 332. The radial distribution is parametrized as in Blasi and Amato, JCAP 1 (Jan., 2012) 10.

class SourceUniform1D : public SourceFeature
#include <Source.h>

Uniform source distribution in 1D.

This source property sets random x-coordinates according to a uniform source distribution in a given distance interval. If cosmological effects are included, this is done by drawing a light-travel distance from a flat distribution and converting to a comoving distance. In the absence of cosmological effects, the positions are drawn uniformly in the light-travel distance interval (as opposed to a comoving interval). The source positions are assigned to the x-coordinate (Vector3d(distance, 0, 0)) in this one-dimensional case.

class SourceDensityGrid : public SourceFeature
#include <Source.h>

Random source positions from a density grid.

class SourceDensityGrid1D : public SourceFeature
#include <Source.h>

Random source positions from a 1D density grid.

class SourceIsotropicEmission : public SourceFeature
#include <Source.h>

Isotropic emission from a source.

class SourceDirectedEmission : public SourceFeature
#include <Source.h>

Directed emission from a source from the von-Mises-Fisher distribution.

The emission from the source is generated following the von-Mises-Fisher distribution with mean direction mu and concentration parameter kappa. The sampling from the vMF distribution follows this document by Julian Straub: http://people.csail.mit.edu/jstraub/download/straub2017vonMisesFisherInference.pdf The emitted particles are assigned a weight so that the detected particles can be reweighted to an isotropic emission distribution instead of a vMF distribution. For details, see PoS (ICRC2019) 447.

class SourceLambertDistributionOnSphere : public SourceFeature
#include <Source.h>

Uniform random position on a sphere with isotropic Lamberts distributed directions.

This function should be used for crosschecking the arrival distribution for a Galactic propagation with an isotropic arrival distribution at the Edge of our Galaxy. Note, that for simulation speed you should rather use the backtracking technique: see e.g. http://physik.rwth-aachen.de/parsec

class SourceDirection : public SourceFeature
#include <Source.h>

Collimated emission along a specific direction.

class SourceEmissionMap : public SourceFeature
#include <Source.h>

Deactivate Candidate if it has zero probability in provided EmissionMap.

   This feature does not change the direction of the candidate. Therefore a usefull direction feature (isotropic or directed emission)
   must be added to the sources before. The propability of the emission map is not taken into account.

class SourceEmissionCone : public SourceFeature
#include <Source.h>

Uniform emission within a cone.

class SourceRedshift : public SourceFeature
#include <Source.h>

Emission of particles at a specific redshift (or time)

The redshift coordinate is used to treat cosmological effects and as a time coordinate. Consider, for instance, a source located at a distance corresponding to a redshift z. In the absence of processes that cause time delays (e.g., magnetic deflections), particles from this source could arrive after a time corresponding to the source redshift. Charged particles, on the other hand, can arrive at a time later than the corresponding straight- line travel duration. This treatment is also useful for time-dependent studies (e.g. transient sources).

class SourceUniformRedshift : public SourceFeature
#include <Source.h>

Random redshift (time of emission) from a uniform distribution.

This function assigns random redshifts to the particles emitted by a given source. These values are drawn from a uniform redshift distribution in the interval [zmin, zmax]. The redshift coordinate is used to treat cosmological effects and as a time coordinate. Consider, for instance, a source located at a distance corresponding to a redshift z. In the absence of processes that cause time delays (e.g., magnetic deflections), particles from this source could arrive after a time corresponding to the source redshift. Charged particles, on the other hand, can arrive at a time later than the corresponding straight- line travel duration. This treatment is also useful for time-dependent studies (e.g. transient sources).

class SourceRedshiftEvolution : public SourceFeature
#include <Source.h>

Random redshift (time of emission) from (1+z)^m distribution.

This assigns redshifts to a given source according to a typical power-law distribution. The redshift coordinate is used to treat cosmological effects and as a time coordinate. Consider, for instance, a source located at a distance corresponding to a redshift z. In the absence of processes that cause time delays (e.g., magnetic deflections), particles from this source could arrive after a time corresponding to the source redshift. Charged particles, on the other hand, can arrive at a time later than the corresponding straight- line travel duration. This treatment is also useful for time-dependent studies (e.g. transient sources).

class SourceRedshift1D : public SourceFeature
#include <Source.h>

Redshift according to the distance to 0.

This source property sets the redshift according to the distance from the source to the origin (0, 0, 0). It must be added after the position of the source is set because it computes the redshifts based on the source distance.

class SourceGenericComposition : public SourceFeature
#include <Source.h>

Add multiple cosmic rays with energies described by an expression string.

This is particularly useful if an arbitrary combination of nuclei types with specific energy spectra. The strings parsed may contain ‘A’ (atomic mass), ‘Z’ (atomic number). The following units are recognized as part of the strings: GeV, TeV, PeV, EeV. The variable for energy is ‘E’, with limits ‘Emin’, ‘Emax’. This property only works if muparser is available. For details about the library see: https://beltoforion.de/en/muparser/

class SourceTag : public SourceFeature
#include <Source.h>

All candidates from this source get a given tag. This can be used to distinguish between different sources that follow the same spatial distribution.

Sets the tag of the candidate. Can be used to trace back additional candidate properties, e.g. production interaction or source type. The interaction overwrites the candidate tag from the source for all secondaries.

class SourceMassDistribution : public SourceFeature
#include <Source.h>

Source position follows a given mass distribution.

The (source)position of the candidate is sampled from a given mass distribution. The distribution uses the getDensity function of the density module. If a weighting for different components is desired, the use of different densities in a densityList is recommended.

The sampling range of the position can be restricted. Default is a sampling for x in [-20, 20] * kpc, y in [-20, 20] * kpc and z in [-4, 4] * kpc.