73 maxKineticEnergy = 4.521*GeV;
74 fParticleChange =
nullptr;
100 AddEEModel(m2pi,cuts);
104 AddEEModel(m3pi,cuts);
108 AddEEModel(m2kc,cuts);
112 AddEEModel(m2kn,cuts);
116 AddEEModel(mpg1,cuts);
120 AddEEModel(mpg2,cuts);
122 nModels = models.size();
136 models.push_back(model);
138 ekinMin.push_back(elow);
139 if(thKineticEnergy > elow) { thKineticEnergy = elow; }
142 cumSum.push_back(0.0);
175 std::vector<G4DynamicParticle*>* newp,
181 G4double energy = LabToCM(kinEnergy);
182 if (energy > thKineticEnergy) {
184 for(
G4int i=0; i<nModels; i++) {
187 if(newp->size() > 0) {
201 G4double e1 = 0.5*thKineticEnergy*thKineticEnergy/electron_mass_c2
202 - 2.0*electron_mass_c2;
203 G4double e2 = 0.5*maxKineticEnergy*maxKineticEnergy/electron_mass_c2
204 - 2.0*electron_mass_c2;
205 outFile <<
" e+ annihilation into hadrons active from "
206 << e1/GeV <<
" GeV to " << e2/GeV <<
" GeV" <<
G4endl;
217 G4cout <<
"### G4eeToHadronsMultiModel: The cross section for "
218 <<
"G4eeToHadronsMultiModel is increased by "
219 << csFactor <<
" times" <<
G4endl;
G4GLOB_DLL std::ostream G4cout
G4double GetKineticEnergy() const
G4double GetElectronDensity() const
static G4Positron * Positron()
G4ParticleChangeForGamma * GetParticleChangeForGamma()
void ProposeTrackStatus(G4TrackStatus status)
G4double LowEnergy() const
virtual G4double PeakEnergy() const =0
G4double HighEnergy() const
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
virtual void ModelDescription(std::ostream &outFile) const override
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) override
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin=0.0, G4double maxEnergy=DBL_MAX) override
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
void SetCrossSecFactor(G4double fac)
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy) override
G4double ComputeCrossSectionPerElectron(const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
G4eeToHadronsMultiModel(G4int ver=0, const G4String &nam="eeToHadrons")
virtual ~G4eeToHadronsMultiModel()