55 #include "G4ParticleChangeForGamma.hh" 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; }
212 if(costmin > costmax) {
231 std::vector<G4DynamicParticle*>* fvect,
243 kinEnergy,cutEnergy,kinEnergy);
258 if(costmin <= costmax) {
return; }
261 G4double ratio = ecross/(cross + ecross);
284 G4LorentzVector v1(pxCM , pyCM, gam*(pzCM + bet*eCM), gam*(eCM + bet*pzCM));
308 fvect->push_back(newdp);
309 }
else if(trec > 0.0) {
const G4ParticleDefinition * theProton
G4double ComputeNuclearCrossSection(G4double CosThetaMin, G4double CosThetaMax)
static G4double GetNuclearMass(const G4double A, const G4double Z)
virtual G4double MinPrimaryEnergy(const G4Material *, const G4ParticleDefinition *, G4double)
std::vector< G4Element * > G4ElementVector
void InitialiseElementSelectors(const G4ParticleDefinition *, const G4DataVector &)
void DefineMaterial(const G4MaterialCutsCouple *)
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
const G4MaterialCutsCouple * CurrentCouple() const
void SetElementSelectors(std::vector< G4EmElementSelector *> *)
const std::vector< G4double > * pCuts
G4double GetTotalMomentum() const
G4WentzelVIRelXSection * wokvi
void SetupParticle(const G4ParticleDefinition *)
G4NistManager * fNistManager
static G4NistManager * Instance()
G4double PolarAngleLimit() const
G4double GetTotalEnergy() const
const G4MaterialCutsCouple * currentCouple
G4double GetKineticEnergy() const
const G4ParticleDefinition * particle
double A(double temperature)
G4IonTable * GetIonTable() const
G4double SetupKinematic(G4double kinEnergy, const G4Material *mat, G4double cut, G4double tmass)
G4double SetupTarget(G4int Z, G4double cut)
Hep3Vector & rotateUz(const Hep3Vector &)
static G4Proton * Proton()
virtual ~G4hCoulombScatteringModel()
G4int SelectIsotopeNumber(const G4Element *)
G4ParticleChangeForGamma * fParticleChange
std::vector< G4EmElementSelector * > * GetElementSelectors()
const G4Material * currentMaterial
G4hCoulombScatteringModel(G4bool combined=true)
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A, G4double cut, G4double emax)
static G4ParticleTable * GetParticleTable()
const G4ThreeVector & GetMomentumDirection() const
virtual void SampleSecondaries(std::vector< G4DynamicParticle *> *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
G4int currentMaterialIndex
size_t GetNumberOfElements() const
G4ParticleDefinition * GetDefinition() const
G4double ComputeElectronCrossSection(G4double CosThetaMin, G4double CosThetaMax)
const G4ElementVector * GetElementVector() const
void Initialise(const G4ParticleDefinition *, G4double CosThetaLim)
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)
G4ThreeVector & SampleSingleScattering(G4double CosThetaMin, G4double CosThetaMax, G4double elecRatio)
G4double GetAtomicMassAmu(const G4String &symb) const
virtual void InitialiseLocal(const G4ParticleDefinition *, G4VEmModel *masterModel)
const G4Element * SelectRandomAtom(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
G4ParticleChangeForGamma * GetParticleChangeForGamma()
CLHEP::HepLorentzVector G4LorentzVector