121 const ThreeVector &particle1Momentum = particle1->getMomentum();
125 G4double xmdel = sampleDeltaMass(ecm);
128 if (pnorm <= 0.0) pnorm=0.000001;
132 if (rndm < 0.5) index=1;
135 if (rndm < 0.5) index2=1;
142 b=(5.287/(1.+std::exp((1.3-x)/0.05)))*1.e-6;
144 b=(4.65+0.706*(x-1.4))*1.e-6;
148 G4double ctet=1.0+std::log(1.-rndm*(1.-std::exp(-2.*xkh)))/xkh;
149 if(std::abs(ctet) > 1.0) ctet =
Math::sign(ctet);
150 G4double stet = std::sqrt(1.-ctet*ctet);
159 const G4double particle1MomentumZ = particle1Momentum.
getZ();
160 G4double zz = std::pow(particle1MomentumZ, 2);
162 if (xx >= zz*1.e-8) {
178 xp1 = (ex[0]*cfi*stet+ey[0]*sfi*stet+ez[0]*ctet)*pnorm;
179 xp2 = (ex[1]*cfi*stet+ey[1]*sfi*stet+ez[1]*ctet)*pnorm;
180 xp3 = (ex[2]*cfi*stet+ey[2]*sfi*stet+ez[2]*ctet)*pnorm;
187 G4double e3 = std::sqrt(xp1*xp1+xp2*xp2+xp3*xp3
194 particle1->setMomentum(mom);
198 particle1->setMomentum(mom);
202 particle1->setEnergy(ecm - e3);
203 particle2->setEnergy(e3);
204 particle2->setMomentum(-particle1->getMomentum());
218 particle1->setHelicity(0.0);
225 particle1->setHelicity(ctet*ctet);
239 particle2->setType(
Proton);
244 if (particle1->isDelta())
245 particle1->setMass(xmdel);
246 if (particle2->isDelta())
247 particle2->setMass(xmdel);
253 srcChannel =
new SrcChannel(particle1, particle2, thenucleus);
254 srcChannel->fillFinalState(fs, p1TypeOld, p2TypeOld);
const G4double effectiveDeltaWidth
const G4double effectiveDeltaMass
G4ThreadLocal G4double minDeltaMass
G4ThreadLocal G4double minDeltaMassRndm
const G4double effectiveNucleonMass2
G4int getIsospin(const ParticleType t)
Get the isospin of a particle.
const G4double effectiveNucleonMass