56 cross_section.clear();
68 cross_section.push_back(0.0);
80 <<
" including following list of models:" <<
G4endl;
81 for(
G4int i=0; i<nModels; ++i) {
101 for(
G4int i=0; i<nModels; i++) {
102 dedx += (model[i])->
ComputeDEDX(couple, p, cutEnergy, kineticEnergy);
120 for(
G4int i=0; i<nModels; ++i) {
123 cutEnergy, maxEnergy);
141 for(i=0; i<nModels; ++i) {
144 cross_section[i] = cross;
149 for(i=0; i<nModels; ++i) {
150 if(cross <= cross_section[i]) {
double A(double temperature)
G4GLOB_DLL std::ostream G4cout
const G4ParticleDefinition * GetParticleDefinition() const
G4double GetKineticEnergy() const
virtual G4double ComputeDEDX(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy) final
virtual ~G4EmMultiModel()
G4EmMultiModel(const G4String &nam="MultiModel")
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double tmax) final
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) final
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &) final
void AddModel(G4VEmModel *)
G4VEmFluctuationModel * GetModelOfFluctuations()
void SetCurrentCouple(const G4MaterialCutsCouple *)
void SetParticleChange(G4VParticleChange *, G4VEmFluctuationModel *f=nullptr)
G4VParticleChange * pParticleChange
G4double CrossSection(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
const G4MaterialCutsCouple * CurrentCouple() const
const G4String & GetName() const