Implements G4INCL::IChannel.
Definition at line 62 of file G4INCLStrangeAbsorbtionChannel.cc.
62 {
64 Particle * strange;
65
67
71 } else {
74 }
75
76
94 } else {
95 INCL_ERROR(
"Unknown particle pair in Strange-N absorption: " <<
nucleon <<
'\t' << strange <<
'\n');
96 return;
97 }
98
100
104
107
111
115 sal = incidentDirection.perp()/
beta;
116 if (sal >= 1.0e-6) {
117 G4double b1 = incidentDirection.getX();
118 G4double b2 = incidentDirection.getY();
119 G4double b3 = incidentDirection.getZ();
121 G4double t1 = ctet+cal*stet*sfi/sal;
123 q1=(b1*t1+b2*t2*cfi)/
beta;
124 q2=(b2*t1-b1*t2*cfi)/
beta;
125 q3=(b3*t1/
beta-t2*sfi);
126 } else {
127 q1 = stet*cfi;
128 q2 = stet*sfi;
129 q3 = ctet;
130 }
131
133 lambdamass,
134 finalTypemass);
135
136 q1 *= xq;
137 q2 *= xq;
138 q3 *= xq;
139
140 ThreeVector finalMomentum(q1, q2, q3);
141
142 strange->setType(finalType);
143 strange->setMomentum(finalMomentum);
144 strange->adjustEnergyFromMomentum();
145 nucleon->setMomentum(-finalMomentum);
146 nucleon->adjustEnergyFromMomentum();
147
148 fs->addModifiedParticle(
nucleon);
149 fs->addModifiedParticle(strange);
150 }
const G4INCL::ThreeVector & getMomentum() const
void sampleAngles(G4double *, G4double *, G4double *)
G4double totalEnergyInCM(Particle const *const p1, Particle const *const p2)
G4double momentumInCM(Particle const *const p1, Particle const *const p2)
gives the momentum in the CM frame of two particles.
G4bool isPair(Particle const *const p1, Particle const *const p2, ParticleType t1, ParticleType t2)
G4double getINCLMass(const G4int A, const G4int Z, const G4int S)
Get INCL nuclear mass (in MeV/c^2)
G4bool nucleon(G4int ityp)
References G4INCL::FinalState::addModifiedParticle(), G4INCL::Particle::adjustEnergyFromMomentum(), anonymous_namespace{G4PionRadiativeDecayChannel.cc}::beta, G4INCL::ParticleTable::getINCLMass(), G4INCL::Particle::getMomentum(), G4INCL::ThreeVector::getX(), G4INCL::ThreeVector::getY(), G4INCL::ThreeVector::getZ(), INCL_ERROR, G4INCL::Particle::isNucleon(), G4INCL::ParticleConfig::isPair(), G4INCL::KMinus, G4INCL::KZeroBar, G4INCL::Lambda, G4INCL::ThreeVector::mag(), G4INCL::KinematicsUtils::momentumInCM(), G4INCL::Neutron, G4InuclParticleNames::nucleon(), particle1, particle2, G4INCL::ThreeVector::perp(), G4INCL::PiMinus, G4INCL::PiPlus, G4INCL::PiZero, G4INCL::Proton, sampleAngles(), G4INCL::Particle::setMomentum(), G4INCL::Particle::setType(), G4INCL::SigmaMinus, G4INCL::SigmaPlus, G4INCL::SigmaZero, and G4INCL::KinematicsUtils::totalEnergyInCM().