33 #define INCLXX_IN_GEANT4_MODE 1
45 const G4double ReflectionChannel::sinMinReflectionAngleSquaredOverFour = std::pow(std::sin(2.*
Math::pi/200.),2.);
46 const G4double ReflectionChannel::positionScalingFactor = 0.99;
49 :theNucleus(n),theParticle(p)
67 const G4double deltaP2 = (newMomentum-oldMomentum).mag2();
69 const G4double minDeltaP2 = sinMinReflectionAngleSquaredOverFour * newMomentum.
mag2();
70 if(deltaP2 < minDeltaP2) {
72 INCL_DEBUG(
"Reflection angle for particle " << theParticle->
getID() <<
" was too tangential: " << std::endl
73 <<
" " << deltaP2 <<
"=deltaP2<minDeltaP2=" << minDeltaP2 << std::endl
74 <<
" Resetting the particle position to ("
void updatePotentialEnergy(Particle *p) const
Update the particle potential energy.
virtual ~ReflectionChannel()
G4double dot(const ThreeVector &v) const
Abstract interface to the nuclear potential.
const G4INCL::ThreeVector & getMomentum() const
G4double getEnergy() const
void thawPropagation()
Unfreeze particle propagation.
G4double getPotentialEnergy() const
Get the particle potential energy.
ReflectionChannel(Nucleus *n, Particle *p)
virtual void setPosition(const G4INCL::ThreeVector &position)
FinalState * getFinalState()
void setTotalEnergyBeforeInteraction(G4double E)
const G4INCL::ThreeVector & getPosition() const
void addModifiedParticle(Particle *p)
virtual void setMomentum(const G4INCL::ThreeVector &momentum)