MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
Loading...
Searching...
No Matches
marley::DecayAtRestNeutrinoSource Class Reference

Muon decay-at-rest neutrino source. More...

#include <NeutrinoSource.hh>

Inheritance diagram for marley::DecayAtRestNeutrinoSource:
marley::NeutrinoSource

Public Member Functions

 DecayAtRestNeutrinoSource (int particle_id=marley_utils::ELECTRON_NEUTRINO)
 
virtual double get_Emax () const override
 Get the maximum neutrino energy (MeV) that can be sampled by this source.
 
virtual double get_Emin () const override
 Get the minimum neutrino energy (MeV) that can be sampled by this source.
 
virtual double pdf (double E) const override
 Probability density function describing the incident neutrino energy distribution.
 
- Public Member Functions inherited from marley::NeutrinoSource
 NeutrinoSource (int particle_id)
 
virtual int get_pid () const
 Get the PDG particle ID for the neutrino type produced by this source.
 
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.
 

Additional Inherited Members

- Static Public Member Functions inherited from marley::NeutrinoSource
static bool pdg_is_allowed (const int pdg)
 
- Protected Attributes inherited from marley::NeutrinoSource
int pid_
 PDG particle ID for the neutrinos produced by this source.
 

Detailed Description

Muon decay-at-rest neutrino source.

Neutrino energies from this source are sampled from the appropriate Michel spectrum for muon decay-at-rest. For a \(\nu_e\) source, the probability density function is given by

\begin{align*} P(E) &= 96E^2m_\mu^{-4}(m_\mu - 2E) & 0 < E < m_\mu/2 \end{align*}

where \(m_\mu\) is the muon mass. For a \(\bar{\nu}_\mu\) source, the probability density function is given by

\begin{align*} P(E) &= 16E^2m_\mu^{-4}(3m_\mu - 4E) & 0 < E < m_\mu/2. \end{align*}

Definition at line 269 of file NeutrinoSource.hh.

Constructor & Destructor Documentation

◆ DecayAtRestNeutrinoSource()

marley::DecayAtRestNeutrinoSource::DecayAtRestNeutrinoSource ( int particle_id = marley_utils::ELECTRON_NEUTRINO)
Parameters
particle_idPDG particle ID for the neutrinos produced by this source

Definition at line 162 of file NeutrinoSource.cc.

163 : NeutrinoSource(particle_id)
164{
165 int abs_pid = std::abs(particle_id);
166 if ( abs_pid != marley_utils::ELECTRON_NEUTRINO &&
167 abs_pid != marley_utils::MUON_NEUTRINO )
168 {
169 throw marley::Error("Invalid projectile "
170 + marley_utils::get_particle_symbol(particle_id) + " requested"
171 " for a muon decay-at-rest neutrino source");
172 }
173}
NeutrinoSource(int particle_id)

References marley::NeutrinoSource::NeutrinoSource().

Member Function Documentation

◆ get_Emax()

double marley::DecayAtRestNeutrinoSource::get_Emax ( ) const
inlineoverridevirtual

Get the maximum neutrino energy (MeV) that can be sampled by this source.

Implements marley::NeutrinoSource.

Definition at line 359 of file NeutrinoSource.hh.

359{ return Emax_; }

◆ get_Emin()

double marley::DecayAtRestNeutrinoSource::get_Emin ( ) const
inlineoverridevirtual

Get the minimum neutrino energy (MeV) that can be sampled by this source.

Implements marley::NeutrinoSource.

Definition at line 360 of file NeutrinoSource.hh.

360{ return Emin_; }

◆ pdf()

double marley::DecayAtRestNeutrinoSource::pdf ( double E) const
overridevirtual

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

Parameters
Eneutrino energy (MeV)
Returns
Probability density (MeV -1)
Todo
Refine the approximate decay-at-rest Michel spectra to use more exact expressions.

Implements marley::NeutrinoSource.

Definition at line 175 of file NeutrinoSource.cc.

175 {
176 if (E < Emin_ || E > Emax_) return 0.;
177 // Note that both of these source spectra are normalized to 1
178 // on the energy interval [0., m_mu_ / 2.]
181 int abs_pid = std::abs(pid_);
182 if (abs_pid == marley_utils::ELECTRON_NEUTRINO)
183 return 96. * std::pow(E, 2) * m_mu_to_the_minus_four_
184 * (m_mu_ - 2*E);
185 // Spectrum for muon antineutrinos
186 else return 16. * std::pow(E, 2) * m_mu_to_the_minus_four_
187 * (3*m_mu_ - 4*E);
188}
int pid_
PDG particle ID for the neutrinos produced by this source.

References marley::NeutrinoSource::pid_.


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