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