95 if (particle1->getSrcPair() > 0) {
97 if (particle2->getSrcPair() > 0)
101 srcpartner = findpairpartner(particle1);
105 srcpartner->setSrcPartner();
106 fSource->setSrcPartner(srcpartner);
111 if (d.mag() > fDistSrc) {
112 INCL_DEBUG(
"Distance src > " << fDistSrc <<
" fm : " << d.mag()
116 auto x = (fDistSrc - d.mag()) / fDistSrc;
117 auto srcp = x * x * psrcmax;
118 INCL_DEBUG(
"Src momentum = " << srcp <<
" , eventnb: "
119 << theEventInfo.eventNumber <<
" \n");
122 particle1->getMomentum() / particle1->getMomentum().mag() * srcp;
123 particle1->setMomentum(particle1->getMomentum() + pmomentum);
124 srcpartner->setMomentum(srcpartner->getMomentum() - pmomentum);
126 particle1->adjustEnergyFromMomentum();
127 srcpartner->adjustEnergyFromMomentum();
128 thenucleus->updatePotentialEnergy(srcpartner);
136 if (particle1->getSrcPair() > 0)
140 srcpartner = findpairpartner(particle2);
144 srcpartner->setSrcPartner();
145 fSource->setSrcPartner(srcpartner);
151 if (d.mag() > fDistSrc) {
152 INCL_DEBUG(
"Distance src > " << fDistSrc <<
" fm : " << d.mag()
156 auto x = (fDistSrc - d.mag()) / fDistSrc;
157 auto srcp = x * x * psrcmax;
158 INCL_DEBUG(
"Src momentum = " << srcp <<
" , eventnb: "
159 << theEventInfo.eventNumber <<
" \n");
162 particle2->getMomentum() / particle2->getMomentum().mag() * srcp;
164 particle2->setMomentum(particle2->getMomentum() + pmomentum);
165 srcpartner->setMomentum(srcpartner->getMomentum() - pmomentum);
167 particle2->adjustEnergyFromMomentum();
168 srcpartner->adjustEnergyFromMomentum();
169 thenucleus->updatePotentialEnergy(srcpartner);
176 thenucleus->getStore()->getBook().incrementAcceptedSrcCollisions();
G4int getSrcPair() const
Returns the strangeness number.
G4INCL::ParticleType getType() const
G4float getsrcPairDistance()
Get the distance between src nucleons.