49 #ifndef G4eeToHadronsMultiModel_h
50 #define G4eeToHadronsMultiModel_h 1
70 const G4String& nam =
"eeToHadrons");
122 std::vector<G4eeToHadronsModel*> models;
124 std::vector<G4double> ekinMin;
125 std::vector<G4double> ekinPeak;
126 std::vector<G4double> ekinMax;
127 std::vector<G4double> cumSum;
145 G4double totE_lab = kinE_lab + mass;
146 totE_CM = std::sqrt(2*mass*(mass+totE_lab));
160 if (energy > thKineticEnergy) {
161 for(
G4int i=0; i<nModels; i++) {
162 if(energy >= ekinMin[i] && energy <= ekinMax[i]){
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy) override
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) override
static constexpr double electron_mass_c2
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin=0.0, G4double maxEnergy=DBL_MAX) override
double A(double temperature)
G4double ComputeCrossSectionPerElectron(const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
G4eeToHadronsMultiModel(G4int ver=0, const G4String &nam="eeToHadrons")
G4double energy(const ThreeVector &p, const G4double m)
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
static const G4double fac
virtual ~G4eeToHadronsMultiModel()
void SetCrossSecFactor(G4double fac)