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);
std::map< G4String, std::map< G4String, std::map< double, std::vector< double > > > > VecMap
TriDimensionMap diffCrossSectionData
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...
The G4DNAPTBIonisationModel class Implements the PTB ionisation model.
The G4DNAPTBAugerModel class Implement the PTB Auger model.
TriDimensionMap fEnergySecondaryData
virtual ~G4DNAPTBIonisationModel()
~G4DNAPTBIonisationModel Destructor
std::map< G4String, std::map< G4String, std::map< double, std::map< double, std::vector< double > > > > > VecMapWithShell
G4DNAPTBIonisationStructure ptbStructure
static const G4double emax
std::map< G4String, std::map< G4String, std::vector< double > > > fTMapWithVec
G4DNAPTBIonisationModel & operator=(const G4DNAPTBIonisationModel &right)
std::map< G4String, std::map< G4String, std::map< double, std::map< double, std::map< double, double > > > > > TriDimensionMap
G4double RandomizeEjectedElectronEnergyFromCumulated(G4ParticleDefinition *particleDefinition, G4double k, G4int shell, const G4String &materialName)
RandomizeEjectedElectronEnergyFromCumulated Uses the cumulated tables to find the energy of the eject...
VecMapWithShell fProbaShellMap
G4DNAPTBIonisationModel(const G4String &applyToMaterial="all", const G4ParticleDefinition *p=0, const G4String &nam="DNAPTBIonisationModel", const G4bool isAuger=true)
G4DNAPTBIonisationModel Constructor.
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...
double DifferentialCrossSection(G4ParticleDefinition *aParticleDefinition, G4double k, G4double energyTransfer, G4int shell, const G4String &materialName)
G4int verboseLevel
verbose level
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...
void ReadDiffCSFile(const G4String &materialName, const G4String &particleName, const G4String &file, const G4double scaleFactor)
ReadDiffCSFile Method to read the differential cross section files.
G4DNAPTBAugerModel * fDNAPTBAugerModel
PTB Auger model instanciated in the constructor and deleted in the destructor of the class...
G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2)
LogLogInterpolate.
void RandomizeEjectedElectronDirection(G4ParticleDefinition *aParticleDefinition, G4double incomingParticleEnergy, G4double outgoingParticleEnergy, G4double &cosTheta, G4double &phi)
RandomizeEjectedElectronDirection Method to calculate the ejected electron direction.
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.
G4double RandomizeEjectedElectronEnergy(G4ParticleDefinition *aParticleDefinition, G4double incomingParticleEnergy, G4int shell, const G4String &materialName)