83 for(idx=0; idx<nShells; ++idx) {
89 for(idx=0; idx<nShells; ++idx) {
90 if(sum <=
prob[idx]) {
break; }
102 G4double eKinEnergy = bindingEnergy*x;
103 G4double ePotEnergy = bindingEnergy*(1.0 + x);
104 G4double e = kinEnergyFinal + ePotEnergy + electron_mass_c2;
109 totEnergy += ePotEnergy;
110 totMomentum = sqrt((totEnergy + electron_mass_c2)
111 *(totEnergy - electron_mass_c2));
114 G4double eTotMomentum = sqrt(eKinEnergy*(eKinEnergy + 2*electron_mass_c2));
117 G4double sintet = sqrt((1 - costet)*(1 + costet));
120 eTotMomentum*sintet*sin(phi),
121 eTotMomentum*costet + totMomentum,
122 eKinEnergy + electron_mass_c2 + totEnergy);
123 bst = lv0.boostVector();
129 en = 0.5*(m0*m0 - mass*mass + electron_mass_c2*electron_mass_c2)/m0;
130 mom = sqrt((en + electron_mass_c2)*(en - electron_mass_c2));
132 cost= (e/gam - en)/(mom*bet);
138 }
while(std::fabs(cost) > 1.0);
140 G4double sint = sqrt((1 - cost)*(1 + cost));
G4DeltaAngle(const G4String &name="")
CLHEP::Hep3Vector G4ThreeVector
G4double GetTotalEnergy() const
const G4ParticleDefinition * fElectron
G4double GetTotalMomentum() const
static G4double GetBindingEnergy(G4int Z, G4int SubshellNb)
const G4ThreeVector & GetMomentumDirection() const
const G4ParticleDefinition * GetParticleDefinition() const
void PrintGeneratorInformation() const
G4double G4Log(G4double x)
G4double GetPDGMass() const
std::vector< G4double > prob
static G4int GetNumberOfElectrons(G4int Z, G4int SubshellNb)
static G4Electron * Electron()
virtual G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double kinEnergyFinal, G4int Z, const G4Material *mat=0)
G4ThreeVector fLocalDirection
G4double bindingEnergy(G4int A, G4int Z)
CLHEP::HepLorentzVector G4LorentzVector
static G4int GetNumberOfShells(G4int Z)