File indexing completed on 2025-09-15 08:54:41
0001
0002
0003
0004
0005
0006
0007 #pragma once
0008
0009 #include <vector>
0010
0011 #include "celeritas/Quantities.hh"
0012 #include "celeritas/io/ImportModel.hh"
0013
0014 class G4Element;
0015 class G4Material;
0016 class G4ParticleDefinition;
0017 class G4VEmModel;
0018
0019 namespace celeritas
0020 {
0021 namespace detail
0022 {
0023
0024
0025
0026
0027
0028
0029
0030 class GeantMicroXsCalculator
0031 {
0032 public:
0033
0034
0035 using EnergyUnits = units::Mev;
0036 using XsUnits = units::Native;
0037 using VecDouble = std::vector<double>;
0038 using VecGrid = ImportModelMaterial::VecGrid;
0039
0040
0041 public:
0042 GeantMicroXsCalculator(G4VEmModel const& model,
0043 G4ParticleDefinition const& particle,
0044 G4Material const& material,
0045 double secondary_production_cut);
0046
0047
0048 void operator()(VecDouble const& energy, VecGrid* xs) const;
0049
0050 private:
0051 G4VEmModel& model_;
0052 G4ParticleDefinition const& particle_;
0053 G4Material const& material_;
0054 double secondary_cut_;
0055 };
0056
0057
0058 }
0059 }