120 isInitialised =
true;
160 std::vector<G4DynamicParticle*>* fvect,
176 kinEnergy,cutEnergy,kinEnergy);
186 kinEnergy, cutEnergy, kinEnergy) ;
187 if(cross == 0.0) {
return; }
191 if(z1 > 2.0) { z1 = 2.0; }
192 else if(z1 < 0.0) { z1 = 0.0; }
195 G4double sint = sqrt(z1*(1.0 + cost));
206 G4double gam = 1.0/sqrt((1.0 - bet)*(1.0 + bet));
212 G4double pxCM = momCM*sint*cos(phi);
213 G4double pyCM = momCM*sint*sin(phi);
239 }
else if(trec < 0.0) {
257 fvect->push_back(newdp);
258 }
else if(trec > 0.0) {
Hep3Vector & rotateUz(const Hep3Vector &)
const G4ThreeVector & GetMomentumDirection() const
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
void SetupTarget(G4double Z, G4double kinEnergy, G4int heavycorr)
void SetupKinematic(G4double kinEnergy, G4double cut, G4int iz)
G4double SampleCosineTheta()
G4double NuclearCrossSection()
G4ParticleChangeForGamma * fParticleChange
virtual ~G4IonCoulombScatteringModel()
const G4ParticleDefinition * particle
G4IonCoulombCrossSection * ioncross
const std::vector< G4double > * pCuts
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
const G4ParticleDefinition * theProton
G4ParticleTable * theParticleTable
G4IonCoulombScatteringModel(const G4String &nam="IonCoulombScattering")
void DefineMaterial(const G4MaterialCutsCouple *)
G4int currentMaterialIndex
G4NistManager * fNistManager
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)
const G4MaterialCutsCouple * currentCouple
const G4Element * currentElement
void SetupParticle(const G4ParticleDefinition *)
const G4Material * currentMaterial
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A, G4double cut, G4double emax)
static G4NistManager * Instance()
static G4double GetNuclearMass(const G4double A, const G4double Z)
void SetProposedKineticEnergy(G4double proposedKinEnergy)
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
static G4ParticleTable * GetParticleTable()
G4ParticleDefinition * GetIon(G4int atomicNumber, G4int atomicMass, G4double excitationEnergy)
const std::vector< G4double > * GetEnergyCutsVector(size_t pcIdx) const
static G4ProductionCutsTable * GetProductionCutsTable()
static G4Proton * Proton()
G4double PolarAngleLimit() const
G4ParticleChangeForGamma * GetParticleChangeForGamma()
const G4Element * SelectRandomAtom(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
G4int SelectIsotopeNumber(const G4Element *)
const G4MaterialCutsCouple * CurrentCouple() const
void ProposeNonIonizingEnergyDeposit(G4double anEnergyPart)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)