Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <cstddef> 7 : #include <string> 8 : 9 : #include "Utilities/PrettyType.hpp" 10 : 11 0 : #define MAX_NUMBER_OF_NEUTRINO_ENERGY_BINS 12 12 : 13 : /// Namespace for neutrino physics 14 1 : namespace neutrinos { 15 : 16 : template <size_t EnergyBin> 17 0 : struct ElectronNeutrinos { 18 0 : static constexpr size_t energy_bin = EnergyBin; 19 : }; 20 : template <size_t EnergyBin> 21 0 : struct ElectronAntiNeutrinos { 22 0 : static constexpr size_t energy_bin = EnergyBin; 23 : }; 24 : template <size_t EnergyBin> 25 0 : struct HeavyLeptonNeutrinos { 26 0 : static constexpr size_t energy_bin = EnergyBin; 27 : }; 28 : 29 : template <template <size_t> class U, size_t EnergyBin> 30 0 : std::string get_name(const U<EnergyBin>& /*species*/) { 31 : return pretty_type::short_name<U<EnergyBin>>() + std::to_string(EnergyBin); 32 : } 33 : 34 : } // namespace neutrinos