80 G4double cmEnergy = std::sqrt( currentMass*currentMass +
81 targetMass*targetMass +
82 2.0*targetMass*etCurrent );
84 if (cmEnergy < 0.01) {
90 G4double pf = targetMass*pCurrent/cmEnergy;
104 pseudoParticle[0].
SetMomentum( 0.0, 0.0, pOriginal*GeV );
107 pseudoParticle[1].
SetMass( mOriginal*GeV );
113 pseudoParticle[0].
SetMomentum( 0.0, 0.0, pCurrent*GeV );
116 pseudoParticle[1].
SetMass( targetMass*GeV );
122 pseudoParticle[2] = pseudoParticle[0] + pseudoParticle[1];
123 pseudoParticle[0].
Lorentz( pseudoParticle[0], pseudoParticle[2] );
124 pseudoParticle[1].Lorentz( pseudoParticle[1], pseudoParticle[2] );
129 targetParticle.
SetTotalEnergy( std::sqrt(pf*pf+targetMass*targetMass)*GeV );
142 G4double btrang = b * 4.0 * pf * pseudoParticle[0].GetMomentum().mag()/
GeV;
146 G4double sintheta = std::sqrt((1.0-costheta)*(1.0+costheta));
155 currentParticle.
SetMomentum( -pf*sintheta*std::cos(phi)*GeV,
156 -pf*sintheta*std::sin(phi)*GeV,
160 currentParticle.
SetMomentum( pf*sintheta*std::cos(phi)*GeV,
161 pf*sintheta*std::sin(phi)*GeV,
169 currentParticle.
Lorentz( currentParticle, pseudoParticle[1] );
170 targetParticle.
Lorentz( targetParticle, pseudoParticle[1] );
174 Defs1( modifiedOriginal, currentParticle, targetParticle, vec, vecLen );
179 if( atomicWeight >= 1.5 )
181 const G4double cfa = 0.025*((atomicWeight-1.)/120.)*
G4Exp(-(atomicWeight-1.)/120.);
186 ekin =
std::max( 0.0001*GeV, ekin );
195 ekin =
std::max( 0.0001*GeV, ekin );
206 std::pair<G4int, G4int> finalStateNucleons =
208 G4int protonsInFinalState = finalStateNucleons.first;
209 G4int neutronsInFinalState = finalStateNucleons.second;
216 if( atomicWeight >= 1.5 )
226 G4int npnb=0, ndta=0;
235 if( epnb >= pnCutOff )
238 if( npnb > atomicWeight )npnb =
G4int(atomicWeight);
239 if( (epnb > pnCutOff) && (npnb <= 0) )npnb = 1;
240 npnb =
std::min( npnb, 127-vecLen );
242 if( edta >= dtaCutOff )
245 ndta =
std::min( ndta, 127-vecLen );
248 if (npnb == 0 && ndta == 0) npnb = 1;
251 PinNucleus, NinNucleus, targetNucleus,
258 if( (atomicWeight >= 1.5) && (atomicWeight <= 230.0) && (ekOriginal <= 0.2) )
261 currentParticle.
SetTOF( 1.0 );