37#ifndef G4MicroElecElasticModel_h
38#define G4MicroElecElasticModel_h 1
56 const G4String& nam =
"MicroElecElasticModel");
103 typedef std::map<G4String,G4String,std::less<G4String> >
MapFile;
106 typedef std::map<G4String,G4MicroElecCrossSectionDataSet*,std::less<G4String> >
MapData;
113 typedef std::map<G4double, std::vector<G4double> >
VecMap;
131 G4Exception (
"*** WARNING : the G4MicroElecElasticModel class is not validated below 5 eV !",
"",
JustWarning,
"") ;
static const G4double e1[44]
static const G4double e2[44]
static const G4double emax
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4MicroElecElasticModel(const G4ParticleDefinition *p=nullptr, const G4String &nam="MicroElecElasticModel")
std::map< G4double, std::vector< G4double > > VecMap
std::map< G4String, G4MicroElecCrossSectionDataSet *, std::less< G4String > > MapData
std::vector< G4double > eTdummyVec
void SetKillBelowThreshold(G4double threshold)
G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax) override
G4ParticleChangeForGamma * fParticleChangeForGamma
G4double lowEnergyLimitOfModel
G4double RandomizeCosTheta(G4double k)
void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
G4MicroElecElasticModel(const G4MicroElecElasticModel &)=delete
void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
G4double QuadInterpolator(G4double e11, G4double e12, G4double e21, G4double e22, G4double x11, G4double x12, G4double x21, G4double x22, G4double t1, G4double t2, G4double t, G4double e)
G4double Theta(G4ParticleDefinition *aParticleDefinition, G4double k, G4double integrDiff)
G4MicroElecElasticModel & operator=(const G4MicroElecElasticModel &right)=delete
G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2)
virtual ~G4MicroElecElasticModel()
std::map< G4double, std::map< G4double, G4double > > TriDimensionMap
G4double LinLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2)
G4double GetKillBelowThreshold()
std::map< G4String, G4String, std::less< G4String > > MapFile
TriDimensionMap eDiffCrossSectionData
G4double LinLinInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2)
static constexpr double eV