68 maxKineticEnergy = 4.521*CLHEP::GeV;
69 delta = 1.0*CLHEP::MeV;
93 AddEEModel(m2pi,cuts);
97 AddEEModel(m3pi,cuts);
101 AddEEModel(m2kc,cuts);
105 AddEEModel(m2kn,cuts);
109 AddEEModel(mpg1,cuts);
113 AddEEModel(mpg2,cuts);
115 nModels = (
G4int)models.size();
127 models.push_back(model);
129 ekinMin.push_back(elow);
130 if(thKineticEnergy > elow) { thKineticEnergy = elow; }
133 cumSum.push_back(0.0);
170 G4double energy = LabToCM(kineticEnergy);
172 if (energy > thKineticEnergy) {
173 for(
G4int i=0; i<nModels; i++) {
174 if(energy >= ekinMin[i] && energy <= ekinMax[i]){
186 std::vector<G4DynamicParticle*>* newp,
192 G4double energy = LabToCM(kinEnergy);
193 if (energy > thKineticEnergy) {
195 for(
G4int i=0; i<nModels; ++i) {
198 if(newp->size() > 0) {
212 G4double e1 = 0.5*thKineticEnergy*thKineticEnergy/electron_mass_c2
213 - 2.0*electron_mass_c2;
214 G4double e2 = 0.5*maxKineticEnergy*maxKineticEnergy/electron_mass_c2
215 - 2.0*electron_mass_c2;
216 outFile <<
" e+ annihilation into hadrons active from "
217 << e1/GeV <<
" GeV to " << e2/GeV <<
" GeV" <<
G4endl;
228 G4cout <<
"### G4eeToHadronsMultiModel: The cross section for "
229 <<
"G4eeToHadronsMultiModel is increased by "
230 << 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
void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
void ModelDescription(std::ostream &outFile) const override
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) override
void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin=0.0, G4double maxEnergy=DBL_MAX) override
void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
void SetCrossSecFactor(G4double fac)
~G4eeToHadronsMultiModel() override
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")