37 #ifndef G4MicroElecElasticModel_h
38 #define G4MicroElecElasticModel_h 1
41 #include <CLHEP/Units/SystemOfUnits.h>
57 const G4String& nam =
"MicroElecElasticModel");
94 typedef std::map<G4String,G4String,std::less<G4String> >
MapFile;
97 typedef std::map<G4String,G4MicroElecCrossSectionDataSet*,std::less<G4String> >
MapData;
128 typedef std::map<double, std::vector<double> >
VecMap;
146 G4Exception (
"*** WARNING : the G4MicroElecElasticModel class is not validated below 5 eV !",
"",
JustWarning,
"") ;
G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2)
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)
G4MicroElecElasticModel(const G4ParticleDefinition *p=0, const G4String &nam="MicroElecElasticModel")
G4double Theta(G4ParticleDefinition *aParticleDefinition, G4double k, G4double integrDiff)
std::vector< double > eTdummyVec
std::map< double, std::vector< double > > VecMap
G4double lowEnergyLimitOfModel
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
TriDimensionMap eDiffCrossSectionData
std::map< G4String, G4String, std::less< G4String > > MapFile
G4double GetKillBelowThreshold()
virtual G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax)
G4double LinLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2)
G4double LinLinInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2)
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static const G4double emax
std::map< G4String, G4MicroElecCrossSectionDataSet *, std::less< G4String > > MapData
virtual ~G4MicroElecElasticModel()
G4ParticleChangeForGamma * fParticleChangeForGamma
G4double RandomizeCosTheta(G4double k)
void SetKillBelowThreshold(G4double threshold)
G4MicroElecElasticModel & operator=(const G4MicroElecElasticModel &right)
std::map< double, std::map< double, double > > TriDimensionMap