39#ifndef G4DNARPWBAIonisationModel_h
40#define G4DNARPWBAIonisationModel_h 1
57 const G4String& nam =
"DNARPWBAIonisationModel");
86 using MapData = std::map<G4String, std::unique_ptr<G4DNACrossSectionDataSet>,
88 using TriDimensionMap = std::map<G4double, std::map<G4double, G4double>>;
89 using VecMap = std::map<G4double, std::vector<G4double>>;
92 G4double RandomizeEjectedElectronEnergyFromCumulatedDcs(
const G4double& incomingParticleEnergy,
106 G4bool fasterCode =
false;
110 const std::vector<G4double>* fpMolWaterDensity =
nullptr;
115 G4bool isInitialised =
false;
116 G4int verboseLevel = 0;
119 std::unique_ptr<G4DNACrossSectionDataSet> fpTotalCrossSection;
122 TriDimensionMap eDiffCrossSectionData[6];
123 TriDimensionMap eNrjTransfData[6];
124 TriDimensionMap pDiffCrossSectionData[6];
125 TriDimensionMap pNrjTransfData[6];
126 std::vector<G4double> eTdummyVec;
127 std::vector<G4double> pTdummyVec;
130 VecMap eProbaShellMap[6];
131 VecMap pProbaShellMap[6];
G4DNARPWBAIonisationModel(const G4ParticleDefinition *p=nullptr, const G4String &nam="DNARPWBAIonisationModel")
void SelectFasterComputation(const G4bool &input)
~G4DNARPWBAIonisationModel() override
G4ParticleChangeForGamma * fParticleChangeForGamma
G4DNARPWBAIonisationModel(const G4DNARPWBAIonisationModel &)=delete
void SelectStationary(const G4bool &input)
void Initialise(const G4ParticleDefinition *, const G4DataVector &= *(new G4DataVector())) override
void SelectSPScaling(const G4bool &input)
G4DNARPWBAIonisationModel & operator=(const G4DNARPWBAIonisationModel &right)=delete
void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
G4double TransferedEnergy(G4double incomingParticleEnergy, G4int shell, const G4double &random)
G4double DifferentialCrossSection(const G4double &k, const G4double &energyTransfer, const G4int &shell)
G4double GetPartialCrossSection(const G4Material *, G4int, const G4ParticleDefinition *, G4double) override
G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax) override
static G4Proton * ProtonDefinition()