109     G4cout << 
"G4ChargeExchange::DoIt: Incident particle plab=" 
  110            << plab/
GeV << 
" GeV/c " 
  111            << 
" ekin(MeV) = " << ekin/
MeV << 
"  " 
  121            << 
" PDGcode= " << projPDG << 
" on nucleus Z= " << Z
 
  122            << 
" A= " << A << 
" N= " << N
 
  137   G4bool theHyperon = 
false;
 
  153   } 
else if(theParticle == 
theKPlus) {
 
  155     else  theSecondary = 
theK0L;
 
  159     else  theSecondary = 
theK0L;
 
  161   } 
else if(theParticle == 
theK0S || theParticle == 
theK0L) {
 
  175   } 
else if(theParticle == 
theL) {
 
  179         theSecondary = 
theS0;
 
  180       } 
else if (x < 0.4) {
 
  183       } 
else if (x < 0.6) {
 
  188       } 
else if (x < 0.8) {
 
  201         theSecondary = 
theS0;
 
  202       } 
else if (x < 0.4) {
 
  205       } 
else if (x < 0.6) {
 
  210       } 
else if (x < 0.8) {
 
  224   if (Z == 1 && A == 2) theDef = 
theD;
 
  225   else if (Z == 1 && A == 3) theDef = 
theT;
 
  226   else if (Z == 2 && A == 3) theDef = 
theHe3;
 
  227   else if (Z == 2 && A == 4) theDef = 
theA;
 
  236   if(theRecoil)  { m21 += theRecoil->
GetPDGMass(); }
 
  237   else           { theRecoil = theDef; }
 
  242   if(etot < m11 + m21) {
 
  249   G4double e1 = 0.5*etot*(1.0 - (m21*m21 - m11*m11)/(etot*etot));
 
  251   G4double ptot = std::sqrt(e1*e1 - m11*m11);
 
  259     G4cout <<
"## G4ChargeExchange t= " << t << 
" tmax= " << tmax
 
  260            << 
" ptot= " << ptot << 
G4endl;
 
  265   if(std::abs(cost) > 1.0) cost = 1.0;
 
  266   G4double sint = std::sqrt((1.0-cost)*(1.0+cost));
 
  271   G4ThreeVector v1(sint*std::cos(phi),sint*std::sin(phi),cost);
 
  297     if(erec < 0.0) erec = 0.0;
 
  307     aa = std::pow(A, 1.63);
 
  308     bb = 14.5*std::pow(A, 0.66);
 
  309     cc = 1.4*std::pow(A, 0.33);
 
  312     aa = std::pow(A, 1.33);
 
  313     bb = 60.*std::pow(A, 0.33);
 
  314     cc = 0.4*std::pow(A, 0.40);
 
  317   G4double x1 = (1.0 - std::exp(-tmax*bb))*aa/bb;
 
  318   G4double x2 = (1.0 - std::exp(-tmax*dd))*cc/dd;
 
G4ParticleDefinition * theSMinus
 
static G4double GetNuclearMass(const G4double A, const G4double Z)
 
G4ParticleDefinition * theL
 
G4ParticleDefinition * theOmega
 
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
 
G4ParticleDefinition * theASPlus
 
static G4AntiOmegaMinus * AntiOmegaMinus()
 
G4ParticleDefinition * theXiMinus
 
CLHEP::Hep3Vector G4ThreeVector
 
G4double lowEnergyRecoilLimit
 
G4ParticleDefinition * theNeutron
 
G4ParticleDefinition * theAOmega
 
G4ParticleDefinition * theS0
 
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
 
static G4OmegaMinus * OmegaMinus()
 
G4ParticleDefinition * theAProton
 
static G4KaonZeroLong * KaonZeroLong()
 
G4ParticleDefinition * theAS0
 
G4ParticleDefinition * theT
 
G4ParticleDefinition * theA
 
G4int GetPDGEncoding() const 
 
G4ParticleDefinition * theKMinus
 
static G4AntiSigmaPlus * AntiSigmaPlus()
 
G4ParticleDefinition * theK0S
 
const G4String & GetParticleName() const 
 
static G4SigmaZero * SigmaZero()
 
G4ParticleDefinition * theAXi0
 
static G4KaonMinus * KaonMinus()
 
void SetStatusChange(G4HadFinalStateStatus aS)
 
static G4AntiSigmaMinus * AntiSigmaMinus()
 
static G4XiZero * XiZero()
 
void SetMinEnergy(G4double anEnergy)
 
G4IonTable * GetIonTable() const 
 
G4GLOB_DLL std::ostream G4cout
 
G4ParticleDefinition * theK0L
 
const G4ParticleDefinition * GetDefinition() const 
 
static G4KaonZeroShort * KaonZeroShort()
 
static G4AntiProton * AntiProton()
 
G4double GetKineticEnergy() const 
 
static G4XiMinus * XiMinus()
 
static G4AntiXiMinus * AntiXiMinus()
 
static G4Triton * Triton()
 
static G4Proton * Proton()
 
static G4PionPlus * PionPlus()
 
G4ParticleDefinition * theXi0
 
static G4Neutron * Neutron()
 
G4ParticleDefinition * theKPlus
 
G4ParticleDefinition * theASMinus
 
static const G4double A[nN]
 
const G4LorentzVector & Get4Momentum() const 
 
static G4PionZero * PionZero()
 
static G4Deuteron * Deuteron()
 
void SetKineticEnergy(G4double aEnergy)
 
G4ParticleDefinition * theANeutron
 
static G4SigmaMinus * SigmaMinus()
 
void SetEnergyChange(G4double anEnergy)
 
G4double GetPDGMass() const 
 
static G4ParticleTable * GetParticleTable()
 
G4double SampleT(G4double p, G4double A)
 
static G4AntiLambda * AntiLambda()
 
G4ParticleDefinition * theD
 
static G4PionMinus * PionMinus()
 
virtual ~G4ChargeExchange()
 
static G4AntiSigmaZero * AntiSigmaZero()
 
G4ParticleDefinition * thePiPlus
 
void SetMaxEnergy(const G4double anEnergy)
 
G4HadFinalState theParticleChange
 
void SetLocalEnergyDeposit(G4double aE)
 
static G4AntiXiZero * AntiXiZero()
 
G4ParticleDefinition * thePiZero
 
static G4SigmaPlus * SigmaPlus()
 
G4ParticleDefinition * theAXiMinus
 
static G4Lambda * Lambda()
 
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
 
static G4KaonPlus * KaonPlus()
 
G4ParticleDefinition * theSPlus
 
void SetMomentumChange(const G4ThreeVector &aV)
 
G4double lowestEnergyLimit
 
void AddSecondary(G4DynamicParticle *aP)
 
static G4AntiNeutron * AntiNeutron()
 
G4double GetTotalMomentum() const 
 
G4ParticleDefinition * theAntiL
 
CLHEP::HepLorentzVector G4LorentzVector
 
G4ParticleDefinition * theProton
 
G4ParticleDefinition * thePiMinus
 
G4ParticleDefinition * theHe3