File indexing completed on 2025-02-22 10:31:16
0001
0002
0003
0004
0005
0006
0007
0008 #pragma once
0009
0010 #include "EnergyLossDeltaDistribution.hh"
0011 #include "EnergyLossGammaDistribution.hh"
0012 #include "EnergyLossGaussianDistribution.hh"
0013 #include "EnergyLossHelper.hh"
0014 #include "EnergyLossUrbanDistribution.hh"
0015
0016 namespace celeritas
0017 {
0018
0019 template<EnergyLossFluctuationModel M>
0020 struct EnergyLossTraits;
0021
0022 template<>
0023 struct EnergyLossTraits<EnergyLossFluctuationModel::none>
0024 {
0025 using type = EnergyLossDeltaDistribution;
0026 };
0027
0028 template<>
0029 struct EnergyLossTraits<EnergyLossFluctuationModel::gamma>
0030 {
0031 using type = EnergyLossGammaDistribution;
0032 };
0033
0034 template<>
0035 struct EnergyLossTraits<EnergyLossFluctuationModel::gaussian>
0036 {
0037 using type = EnergyLossGaussianDistribution;
0038 };
0039
0040 template<>
0041 struct EnergyLossTraits<EnergyLossFluctuationModel::urban>
0042 {
0043 using type = EnergyLossUrbanDistribution;
0044 };
0045
0046
0047 }