34 #define INCLXX_IN_GEANT4_MODE 1 
   46   const G4double ReflectionChannel::sinMinReflectionAngleSquaredOverFour = std::pow(std::sin(2.*
Math::pi/200.),2.);
 
   47   const G4double ReflectionChannel::positionScalingFactor = 0.99;
 
   50     :theNucleus(n),theParticle(p)
 
   66       const ThreeVector newMomentum = oldMomentum - (thePosition * (2.0 * pspr/x2cour));
 
   67       const G4double deltaP2 = (newMomentum-oldMomentum).mag2();
 
   69       const G4double minDeltaP2 = sinMinReflectionAngleSquaredOverFour * newMomentum.
mag2();
 
   70       if(deltaP2 < minDeltaP2) { 
 
   71         theParticle->
setPosition(thePosition * positionScalingFactor);
 
   72         INCL_DEBUG(
"Reflection angle for particle " << theParticle->
getID() << 
" was too tangential: " << 
'\n' 
   73             << 
"  " << deltaP2 << 
"=deltaP2<minDeltaP2=" << minDeltaP2 << 
'\n' 
   74             << 
"  Resetting the particle position to (" 
   75             << thePosition.
getX() << 
", " 
   76             << thePosition.
getY() << 
", " 
   77             << thePosition.
getZ() << 
")" << 
'\n');
 
void updatePotentialEnergy(Particle *p) const 
Update the particle potential energy. 
 
virtual ~ReflectionChannel()
 
G4double dot(const ThreeVector &v) const 
 
Abstract interface to the nuclear potential. 
 
void fillFinalState(FinalState *fs)
 
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)
 
void setTotalEnergyBeforeInteraction(G4double E)
 
const G4INCL::ThreeVector & getPosition() const 
 
void addModifiedParticle(Particle *p)
 
virtual void setMomentum(const G4INCL::ThreeVector &momentum)