78 massPhi = 1019.46*MeV;
112 G4LorentzVector w0(0.,0.,0.,0.), w1(0.,0.,0.,0.), w2(0.,0.,0.,0.);
114 G4double e0, p0, e2, p, gg, m01, m02, m12;
117 G4double edel = 0.5*e*(1.0 + x0*x0 - 4.0*x1*x1) - massPi0;
119 const G4int nmax = 200;
125 p0 = sqrt(e0*e0 - massPi0*massPi0);
135 p = sqrt(e2 - massPi*massPi);
139 w1.set(-w2.
px(), -w2.
py(), -w2.
pz(), w2.
e());
160 gg = (px*px + py*py + pz*pz)*
165 G4cout <<
"G4eeTo3PiModel::SampleSecondaries WARNING matrix element g= "
166 << gg <<
" > " << gmax <<
" (majoranta)" <<
G4endl;
172 w0.rotateUz(direction);
173 w1.rotateUz(direction);
183 newp->push_back(dp0);
184 newp->push_back(dp1);
185 newp->push_back(dp2);
CLHEP::HepLorentzVector G4LorentzVector
G4ThreeVector G4RandomDirection()
G4GLOB_DLL std::ostream G4cout
HepLorentzVector & boost(double, double, double)
HepLorentzVector & rotateUz(const Hep3Vector &)
G4double GetPDGMass() const
static G4PionMinus * PionMinus()
static G4PionPlus * PionPlus()
static G4PionZero * PionZero()
G4eeCrossSections * cross
G4double HighEnergy() const
G4double CrossSection3pi(G4double)
std::complex< G4double > DpRho(G4double e)
G4double PeakEnergy() const override
G4eeTo3PiModel(G4eeCrossSections *, G4double, G4double)
void SampleSecondaries(std::vector< G4DynamicParticle * > *, G4double, const G4ThreeVector &) override
~G4eeTo3PiModel() override
G4double ComputeCrossSection(G4double) const override