76   fParticleChange = 
nullptr;
 
   80   currentMaterial = 
nullptr; 
 
   88   currentCouple = 
nullptr;
 
   91   currentMaterialIndex = 0;
 
  114     if(tet >= 
pi)      { cosThetaMin = -1.0; }
 
  115     else if(tet > 0.0) { cosThetaMin = cos(tet); }
 
  133   if(!fParticleChange) {
 
  136   if(
IsMaster() && mass < GeV && part->GetParticleName() != 
"GenericIon") {
 
  168   for (
G4int j=0; j<nelm; ++j) {        
 
  170     if(iz < Z) { Z = iz; }
 
  194   if(kinEnergy <= 0.0) { 
return cross; }
 
  203     wokvi->
SetupKinematic(kinEnergy, currentMaterial, cutEnergy, tmass);
 
  204   if(cosThetaMax < costmin) {
 
  206     if(fixedCut > 0.0) { cut = fixedCut; }
 
  209     if(iz == 1 && costmax < 0.0 && particle == theProton) { 
 
  212     if(costmin > costmax) {
 
  231                 std::vector<G4DynamicParticle*>* fvect,
 
  243                       kinEnergy,cutEnergy,kinEnergy);
 
  249   wokvi->
SetupKinematic(kinEnergy, currentMaterial, cutEnergy, mass2);
 
  252   if(iz == 1 && costmax < 0.0 && particle == theProton) { 
 
  256   if(costmin <= costmax) { 
return; }
 
  259   G4double ratio = ecross/(cross + ecross);
 
  274   G4double momCM = gam*(ptot - bet*e1); 
 
  282   G4LorentzVector v1(pxCM , pyCM, gam*(pzCM + bet*eCM), gam*(eCM + bet*pzCM));
 
  297     tcut= 
std::max(tcut,(*pCuts)[currentMaterialIndex]); 
 
  306     fvect->push_back(newdp);
 
  307   } 
else if(trec > 0.0) {
 
G4double ComputeNuclearCrossSection(G4double CosThetaMin, G4double CosThetaMax)
 
static G4double GetNuclearMass(const G4double A, const G4double Z)
 
std::vector< G4Element * > G4ElementVector
 
static constexpr double proton_mass_c2
 
G4double GetKineticEnergy() const 
 
void InitialiseElementSelectors(const G4ParticleDefinition *, const G4DataVector &)
 
G4double GetTotalEnergy() const 
 
static constexpr double keV
 
void DefineMaterial(const G4MaterialCutsCouple *)
 
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
 
G4ParticleDefinition * GetDefinition() const 
 
void SetupParticle(const G4ParticleDefinition *)
 
const G4ElementVector * GetElementVector() const 
 
static G4NistManager * Instance()
 
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
 
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
 
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A, G4double cut, G4double emax) override
 
G4double GetTotalMomentum() const 
 
G4IonTable * GetIonTable() const 
 
const G4MaterialCutsCouple * CurrentCouple() const 
 
double A(double temperature)
 
void ProposeNonIonizingEnergyDeposit(G4double anEnergyPart)
 
G4double SetupKinematic(G4double kinEnergy, const G4Material *mat, G4double cut, G4double tmass)
 
G4double SetupTarget(G4int Z, G4double cut)
 
const G4ThreeVector & GetMomentumDirection() const 
 
virtual void InitialiseLocal(const G4ParticleDefinition *, G4VEmModel *masterModel) override
 
Hep3Vector & rotateUz(const Hep3Vector &)
 
static G4Proton * Proton()
 
virtual ~G4hCoulombScatteringModel()
 
G4int SelectIsotopeNumber(const G4Element *)
 
std::vector< G4EmElementSelector * > * GetElementSelectors()
 
void SetElementSelectors(std::vector< G4EmElementSelector * > *)
 
G4hCoulombScatteringModel(G4bool combined=true)
 
static G4ParticleTable * GetParticleTable()
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
virtual G4double MinPrimaryEnergy(const G4Material *, const G4ParticleDefinition *, G4double) final
 
G4double PolarAngleLimit() const 
 
G4double GetAtomicMassAmu(const G4String &symb) const 
 
void SetProposedKineticEnergy(G4double proposedKinEnergy)
 
static constexpr double pi
 
size_t GetNumberOfElements() const 
 
G4double ComputeElectronCrossSection(G4double CosThetaMin, G4double CosThetaMax)
 
void Initialise(const G4ParticleDefinition *, G4double CosThetaLim)
 
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
 
G4ThreeVector & SampleSingleScattering(G4double CosThetaMin, G4double CosThetaMax, G4double elecRatio)
 
const G4Element * SelectRandomAtom(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4ParticleChangeForGamma * GetParticleChangeForGamma()
 
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
 
CLHEP::HepLorentzVector G4LorentzVector