MARLEY (Model of Argon Reaction Low Energy Yields)
v1.2.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
|
Abstract base class for all objects that describe the incident neutrino energy distribution. More...
#include <NeutrinoSource.hh>
Public Member Functions | |
NeutrinoSource (int particle_id) | |
virtual double | get_Emax () const =0 |
Get the maximum neutrino energy (MeV) that can be sampled by this source. | |
virtual double | get_Emin () const =0 |
Get the minimum neutrino energy (MeV) that can be sampled by this source. | |
virtual int | get_pid () const |
Get the PDG particle ID for the neutrino type produced by this source. | |
virtual double | pdf (double E) const =0 |
Probability density function describing the incident neutrino energy distribution. More... | |
virtual double | sample_incident_neutrino (int &pdg, marley::Generator &gen) const |
Samples an incident neutrino energy and loads pdg with the PDG code of the appropriate neutrino type. More... | |
Static Public Member Functions | |
static bool | pdg_is_allowed (const int pdg) |
Protected Attributes | |
int | pid_ |
PDG particle ID for the neutrinos produced by this source. | |
Abstract base class for all objects that describe the incident neutrino energy distribution.
Classes derived from NeutrinoSource implement a probability density function used to sample neutrino energies for each event. Because MARLEY will weight this probability density by the reaction cross section(s) during event generation, all NeutrinoSource objects should use unweighted energy spectra. While normalizing the probability densities to unity is not strictly required (the cross section weighted spectra are normalized automatically before sampling), it is encouraged, and all classes derived from NeutrinoSource currently do so.
marley::NeutrinoSource::NeutrinoSource | ( | int | particle_id | ) |
particle_id | PDG particle ID for the neutrinos produced by this source |
|
pure virtual |
Probability density function describing the incident neutrino energy distribution.
The neutrino spectrum produced by this source will be folded with the relevant cross sections by a Generator object during event creation
E | neutrino energy (MeV) |
Implemented in marley::GridNeutrinoSource, marley::DecayAtRestNeutrinoSource, marley::FunctionNeutrinoSource, marley::BetaFitNeutrinoSource, marley::FermiDiracNeutrinoSource, and marley::MonoNeutrinoSource.
|
inlinestatic |
Returns true if the Particle Data Group code passed to the function is allowed to be used by a neutrino source object, and returns false otherwise.
|
virtual |
Samples an incident neutrino energy and loads pdg with the PDG code of the appropriate neutrino type.
This function uses a probability density function that represents the incident neutrino spectrum, i.e., it is not weighted by the reaction cross section(s). To sample a neutrino from the reacting (i.e., cross section weighted) spectrum, use Generator::sample_reaction().
[out] | pdg | PDG code of the sampled neutrino |
[in] | gen | Generator to use for random sampling |