126 G4int A = targetNucleus.GetA_asInt();
127 G4int Z = targetNucleus.GetZ_asInt();
138 G4double targMass2 = targMass*targMass;
158 G4double B = sumE2 + targMass2 - Mx2 - plab2;
168 det = std::sqrt(det2);
169 qLong = (-b - det)/2./a;
170 eRetard = std::sqrt((plab-qLong)*(plab-qLong)+Mx2);
195 lvRetard.boost(-bst);
199 G4double tMax = 4.0*momentumCMS*momentumCMS;
209 if( cost > 1.0 || cost < -1.0 )
216 sint = std::sqrt( (1.0-cost)*(1.0+cost) );
218 G4ThreeVector v1( sint*std::cos(phi), sint*std::sin(phi), cost);
222 G4LorentzVector lvRes( v1.x(),v1.y(),v1.z(), std::sqrt( momentumCMS*momentumCMS + Mx2));
228 G4double eRecoil = lvTarg.
e() - targMass;
237 else if ( Z == 2 && A == 3 ) { recoilDef =
G4He3::He3(); }
247 else if( eRecoil > 0.0 )
static G4double GetNuclearMass(const G4double A, const G4double Z)
const G4LorentzVector & Get4Momentum() const
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
void SetStatusChange(G4HadFinalStateStatus aS)
double A(double temperature)
G4IonTable * GetIonTable() const
G4double SampleMx(const G4HadProjectile *aParticle)
HepLorentzVector & boost(double, double, double)
static G4Triton * Triton()
static G4Proton * Proton()
static G4Deuteron * Deuteron()
G4double GetTotalMomentum() const
const G4ParticleDefinition * GetDefinition() const
void SetEnergyChange(G4double anEnergy)
G4double GetKineticEnergy() const
static G4ParticleTable * GetParticleTable()
G4double GetPDGMass() const
G4HadFinalState theParticleChange
void SetLocalEnergyDeposit(G4double aE)
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)
static const double twopi
void SetMomentumChange(const G4ThreeVector &aV)