141 G4double gam = x*ratio + std::sqrt((1. + x)*(1. + x*ratio*ratio));
142 return mass*(gam - 1.0);
161 if(part == bpart || pname ==
"proton" ||
162 pname ==
"anti_proton" ||
163 pname ==
"pi+" || pname ==
"pi-" ||
164 pname ==
"kaon+" || pname ==
"kaon-" || pname ==
"GenericIon"
165 || pname ==
"He3" || pname ==
"alpha")
167 theBaseParticle =
nullptr;
170 else if(bpart ==
nullptr) {
182 theBaseParticle = bpart;
206 isInitialised =
true;
G4hIonisation(const G4String &name="hIoni")
G4double MaxKinEnergy() const
static constexpr double proton_mass_c2
void SetFluctModel(G4VEmFluctuationModel *)
const G4String & GetParticleName() const
virtual G4bool IsApplicable(const G4ParticleDefinition &p) override
static G4KaonMinus * KaonMinus()
static constexpr double electron_mass_c2
void SetHighEnergyLimit(G4double)
void AddEmModel(G4int, G4VEmModel *, G4VEmFluctuationModel *fluc=0, const G4Region *region=nullptr)
G4VEmFluctuationModel * FluctModel()
static G4AntiProton * AntiProton()
virtual void PrintInfo() final
static G4Proton * Proton()
void SetProcessSubType(G4int)
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition *p, const G4Material *, G4double cut) final
G4double MinKinEnergy() const
void SetSecondaryParticle(const G4ParticleDefinition *p)
G4bool IsShortLived() const
G4double GetPDGMass() const
static G4EmParameters * Instance()
void SetEmModel(G4VEmModel *, G4int index=1)
G4double GetPDGSpin() const
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition *, const G4ParticleDefinition *) override
static G4Electron * Electron()
static constexpr double MeV
void SetLowEnergyLimit(G4double)
static G4KaonPlus * KaonPlus()
G4double GetPDGCharge() const
void SetBaseParticle(const G4ParticleDefinition *p)
G4VEmModel * EmModel(G4int index=1) const