43#ifndef G4DNACPA100IonisationModel_h
44#define G4DNACPA100IonisationModel_h 1
58 using TriDimensionMap =
61 std::map<G4int, std::map<G4double, std::map<G4double, G4double>>>>>;
64 std::map<const G4ParticleDefinition*, std::map<G4double, std::vector<G4double>>>>;
65 using VecMapWithShell =
68 std::map<G4double, std::map<G4double, std::vector<G4double>>>>>;
69 using PartKineticInMat =
74 const G4String& nam =
"DNACPA100IonisationModel");
116 G4bool isInitialised =
false;
117 G4int verboseLevel = 0;
121 G4double RandomizeEjectedElectronEnergy(PartKineticInMat info);
123 G4double RandomizeEjectedElectronEnergyFromCumulatedDcs(PartKineticInMat info);
125 G4double RandomizeEjectedElectronEnergyFromanalytical(PartKineticInMat info);
127 G4double RandomTransferedEnergy(PartKineticInMat info);
140 TriDimensionMap diffCrossSectionData, fEnergySecondaryData;
141 std::map<std::size_t, std::map<const G4ParticleDefinition*, std::vector<G4double>>>
143 VecMap fEMapWithVector;
144 VecMapWithShell fProbaShellMap;
G4DNACPA100IonisationModel & operator=(const G4DNACPA100IonisationModel &right)=delete
void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
Initialise Each model must implement an Initialize method.
void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
SampleSecondaries Each model must implement SampleSecondaries to decide if a particle will be created...
void SelectStationary(G4bool input)
G4DNACPA100IonisationModel(const G4ParticleDefinition *p=nullptr, const G4String &nam="DNACPA100IonisationModel")
void ReadDiffCSFile(const std::size_t &materialID, const G4ParticleDefinition *p, const G4String &file, const G4double &scaleFactor) override
G4double DifferentialCrossSection(PartKineticInMat info, const G4double &energyTransfer)
void SelectUseDcs(G4bool input)
G4ParticleChangeForGamma * fParticleChangeForGamma
void SelectFasterComputation(G4bool input)
G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax) override
CrossSectionPerVolume Every model must implement its own CrossSectionPerVolume method....
G4DNACPA100IonisationModel(const G4DNACPA100IonisationModel &)=delete
~G4DNACPA100IonisationModel() override=default