Generate momenta using the Kopylov method.
More...
#include <G4INCLPhaseSpaceKopylov.hh>
Generate momenta using the Kopylov method.
Definition at line 48 of file G4INCLPhaseSpaceKopylov.hh.
Generate momenta according to a uniform, non-Lorentz-invariant phase-space model.
This function will assign momenta to the particles in the list that is passed as an argument. The event is generated in the CM frame.
- Parameters
-
sqrtS | total centre-of-mass energy of the system |
particles | list of particles |
Implements G4INCL::IPhaseSpaceGenerator.
Definition at line 63 of file G4INCLPhaseSpaceKopylov.cc.
69 const size_t N = particles.size();
72 std::transform(particles.begin(), particles.end(), masses.begin(), std::mem_fun(&
Particle::getMass));
73 std::partial_sum(masses.begin(), masses.end(), sumMasses.begin());
82 Particle *restParticle = particles.front();
83 restParticle->setMass(sqrtS);
84 restParticle->adjustEnergyFromMomentum();
87 for (ParticleList::reverse_iterator
p=particles.rbegin(); k>0; ++
p, --k) {
89 T *= (k>1) ? betaKopylov(k) : 0.;
95 (*p)->setMomentum(PFragCM);
96 (*p)->adjustEnergyFromMomentum();
97 restParticle->setMass(restMass);
98 restParticle->setMomentum(-PFragCM);
99 restParticle->adjustEnergyFromMomentum();
102 restParticle->boost(boostV);
104 boostV = -restParticle->boostVector();
106 restParticle->setMass(masses[0]);
107 restParticle->adjustEnergyFromMomentum();
G4double getMass() const
Get the cached particle mass.
G4double momentumInCM(Particle const *const p1, Particle const *const p2)
gives the momentum in the CM frame of two particles.
ThreeVector normVector(G4double norm=1.)
void setY(G4double ay)
Set the y coordinate.
void setX(G4double ax)
Set the x coordinate.
void setZ(G4double az)
Set the z coordinate.
The documentation for this class was generated from the following files: