37{
40 {
45 }
46
47
48
51
53 {
55 G4cout <<
"G4RPGKMinusInelastic::ApplyYourself called" <<
G4endl;
57 G4cout <<
"target material = " << targetMaterial->
GetName() <<
", ";
60 }
61
65
66
67
68
71
73 ek += tkin;
74 currentParticle.SetKineticEnergy( ek );
76 G4double p = std::sqrt( std::abs((et-amas)*(et+amas)) );
77 G4double pp = currentParticle.GetMomentum().mag();
78 if( pp > 0.0 )
79 {
81 currentParticle.SetMomentum( momentum * (p/pp) );
82 }
83
84
85
87 ek -= tkin;
88 currentParticle.SetKineticEnergy( ek );
89 et = ek + amas;
90 p = std::sqrt( std::abs((et-amas)*(et+amas)) );
91 pp = currentParticle.GetMomentum().mag();
92 if( pp > 0.0 )
93 {
95 currentParticle.SetMomentum( momentum * (p/pp) );
96 }
97
99
101 targetParticle.SetSide( -1 );
102 G4bool incidentHasChanged =
false;
103 G4bool targetHasChanged =
false;
104 G4bool quasiElastic =
false;
108
110 if( currentParticle.GetKineticEnergy() > cutOff )
111 Cascade( vec, vecLen,
112 originalIncident, currentParticle, targetParticle,
113 incidentHasChanged, targetHasChanged, quasiElastic );
114
116 originalIncident, originalTarget, modifiedOriginal,
117 targetNucleus, currentParticle, targetParticle,
118 incidentHasChanged, targetHasChanged, quasiElastic );
119
121 currentParticle, targetParticle,
122 incidentHasChanged );
123
124 delete originalTarget;
126}
G4GLOB_DLL std::ostream G4cout
G4ParticleDefinition * GetDefinition() const
void Initialize(G4int items)
void SetStatusChange(G4HadFinalStateStatus aS)
void SetEnergyChange(G4double anEnergy)
void SetMomentumChange(const G4ThreeVector &aV)
const G4Material * GetMaterial() const
const G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
const G4LorentzVector & Get4Momentum() const
G4HadFinalState theParticleChange
const G4String & GetName() const
G4double EvaporationEffects(G4double kineticEnergy)
G4double Cinema(G4double kineticEnergy)
G4DynamicParticle * ReturnTargetParticle() const
G4double GetPDGMass() const
const G4String & GetParticleName() const
void CalculateMomenta(G4FastVector< G4ReactionProduct, 256 > &vec, G4int &vecLen, const G4HadProjectile *originalIncident, const G4DynamicParticle *originalTarget, G4ReactionProduct &modifiedOriginal, G4Nucleus &targetNucleus, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, G4bool &targetHasChanged, G4bool quasiElastic)
void SetUpChange(G4FastVector< G4ReactionProduct, 256 > &vec, G4int &vecLen, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged)
void SetSide(const G4int sid)