81   fParticleChange = 
nullptr;
 
   84   currentMaterial = 
nullptr;
 
   85   currentElement  = 
nullptr;
 
   86   currentCouple = 
nullptr;
 
   88   lowEnergyLimit  = 0*
keV;
 
   89   recoilThreshold = 0.*
eV;
 
   93   currentMaterialIndex = -1;
 
  113   currentCouple = 
nullptr;
 
  114   currentMaterialIndex = -1;
 
  128   if(!fParticleChange) {
 
  159   if(kinEnergy < lowEnergyLimit) 
return cross;
 
  174                    std::vector<G4DynamicParticle*>* fvect,
 
  183   if(kinEnergy < lowEnergyLimit) 
return;
 
  185   DefineMaterial(couple);
 
  191                     kinEnergy,cutEnergy,kinEnergy);
 
  202   if(cross == 0.0) { 
return; }
 
  207   G4double cost = sqrt(1.0 - sint*sint);
 
  219   G4double momCM = gam*(ptot - bet*e1);
 
  222   G4double pxCM = momCM*sint*cos(phi);
 
  223   G4double pyCM = momCM*sint*sin(phi);
 
  227   G4LorentzVector v1(pxCM , pyCM, gam*(pzCM + bet*eCM), gam*(eCM + bet*pzCM));
 
  246     tcut= 
std::max(tcut,(*pCuts)[currentMaterialIndex]);
 
  254     fvect->push_back(newdp);
 
  255   } 
else if(trec > 0.0) {
 
  263   if(finalT <= lowEnergyLimit) {
 
virtual void InitialiseLocal(const G4ParticleDefinition *, G4VEmModel *masterModel) final
 
static G4double GetNuclearMass(const G4double A, const G4double Z)
 
G4double GetKineticEnergy() const 
 
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
 
void InitialiseElementSelectors(const G4ParticleDefinition *, const G4DataVector &)
 
G4double GetTotalEnergy() const 
 
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
 
G4ParticleDefinition * GetDefinition() const 
 
G4double NuclearCrossSection(G4int form)
 
static G4NistManager * Instance()
 
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
 
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
 
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &) final
 
static constexpr double twopi
 
G4double GetTotalMomentum() const 
 
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A, G4double cut, G4double emax) final
 
G4IonTable * GetIonTable() const 
 
const G4MaterialCutsCouple * CurrentCouple() const 
 
void ProposeNonIonizingEnergyDeposit(G4double anEnergyPart)
 
const G4ThreeVector & GetMomentumDirection() const 
 
Hep3Vector & rotateUz(const Hep3Vector &)
 
static constexpr double eV
 
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) final
 
G4int SelectIsotopeNumber(const G4Element *)
 
std::vector< G4EmElementSelector * > * GetElementSelectors()
 
G4NuclearFormfactorType NuclearFormfactorType() const 
 
void SetElementSelectors(std::vector< G4EmElementSelector * > *)
 
G4eSingleCoulombScatteringModel(const G4String &nam="eSingleCoulombScat")
 
static G4ParticleTable * GetParticleTable()
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
static G4EmParameters * Instance()
 
virtual ~G4eSingleCoulombScatteringModel()
 
G4double GetScatteringAngle()
 
void SetProposedKineticEnergy(G4double proposedKinEnergy)
 
void SetupKinematic(G4double kinEnergy, G4double Z)
 
static constexpr double keV
 
const G4Element * SelectRandomAtom(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4ParticleChangeForGamma * GetParticleChangeForGamma()
 
CLHEP::HepLorentzVector G4LorentzVector