31#ifndef G4DNAPTBIONISATIONMODEL_h
32#define G4DNAPTBIONISATIONMODEL_h 1
67 const G4String &nam =
"DNAPTBIonisationModel",
68 const G4bool isAuger=
true);
130 typedef std::map<G4String, std::map<G4String, std::map<double, std::map<double, std::map<double, double> > > > >
TriDimensionMap;
133 std::map<G4String, std::map<G4String, std::vector<double> > >
fTMapWithVec;
134 typedef std::map<G4String, std::map<G4String, std::map<double, std::vector<double> > > >
VecMap;
136 typedef std::map<G4String, std::map<G4String, std::map<double, std::map<double, std::vector<double> > > > >
VecMapWithShell;
190 G4double QuadInterpolator(
G4double e11,
G4double e12,
G4double e21,
G4double e22,
G4double xs11,
G4double xs12,
G4double xs21,
G4double xs22,
G4double t1,
G4double t2,
G4double t,
G4double e);
static const G4double e1[44]
static const G4double e2[44]
static const G4double emax
The G4DNAPTBAugerModel class Implement the PTB Auger model.
The G4DNAPTBIonisationModel class Implements the PTB ionisation model.
G4DNAPTBIonisationModel(const G4DNAPTBIonisationModel &)
virtual void Initialise(const G4ParticleDefinition *particle, const G4DataVector &= *(new G4DataVector()), G4ParticleChangeForGamma *fpChangeForGamme=nullptr)
Initialise Method called once at the beginning of the simulation. It is used to setup the list of the...
VecMapWithShell fProbaShellMap
void ReadDiffCSFile(const G4String &materialName, const G4String &particleName, const G4String &file, const G4double scaleFactor)
ReadDiffCSFile Method to read the differential cross section files.
std::map< G4String, std::map< G4String, std::map< double, std::map< double, std::vector< double > > > > > VecMapWithShell
virtual G4double CrossSectionPerVolume(const G4Material *material, const G4String &materialName, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax)
CrossSectionPerVolume Mandatory for every model the CrossSectionPerVolume method is in charge of retu...
std::map< G4String, std::map< G4String, std::vector< double > > > fTMapWithVec
G4double RandomizeEjectedElectronEnergy(G4ParticleDefinition *aParticleDefinition, G4double incomingParticleEnergy, G4int shell, const G4String &materialName)
TriDimensionMap diffCrossSectionData
G4DNAPTBIonisationModel(const G4String &applyToMaterial="all", const G4ParticleDefinition *p=0, const G4String &nam="DNAPTBIonisationModel", const G4bool isAuger=true)
G4DNAPTBIonisationModel Constructor.
G4DNAPTBIonisationModel & operator=(const G4DNAPTBIonisationModel &right)
TriDimensionMap fEnergySecondaryData
double DifferentialCrossSection(G4ParticleDefinition *aParticleDefinition, G4double k, G4double energyTransfer, G4int shell, const G4String &materialName)
G4double RandomizeEjectedElectronEnergyFromCumulated(G4ParticleDefinition *particleDefinition, G4double k, G4int shell, const G4String &materialName)
RandomizeEjectedElectronEnergyFromCumulated Uses the cumulated tables to find the energy of the eject...
G4DNAPTBAugerModel * fDNAPTBAugerModel
PTB Auger model instanciated in the constructor and deleted in the destructor of the class.
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4String &materialName, const G4DynamicParticle *, G4ParticleChangeForGamma *particleChangeForGamma, G4double tmin, G4double tmax)
SampleSecondaries If the model is selected for the ModelInterface then SampleSecondaries will be call...
G4int verboseLevel
verbose level
void RandomizeEjectedElectronDirection(G4ParticleDefinition *aParticleDefinition, G4double incomingParticleEnergy, G4double outgoingParticleEnergy, G4double &cosTheta, G4double &phi)
RandomizeEjectedElectronDirection Method to calculate the ejected electron direction.
std::map< G4String, std::map< G4String, std::map< double, std::vector< double > > > > VecMap
virtual ~G4DNAPTBIonisationModel()
~G4DNAPTBIonisationModel Destructor
G4double QuadInterpolator(G4double e11, G4double e12, G4double e21, G4double e22, G4double xs11, G4double xs12, G4double xs21, G4double xs22, G4double t1, G4double t2, G4double t, G4double e)
QuadInterpolator.
std::map< G4String, std::map< G4String, std::map< double, std::map< double, std::map< double, double > > > > > TriDimensionMap
G4DNAPTBIonisationStructure ptbStructure
G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2)
LogLogInterpolate.