Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F11222494
a1ThreePionDecayer.icc
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
a1ThreePionDecayer.icc
View Options
// -*- C++ -*-
//
// This is the implementation of the inlined member functions of
// the a1ThreePionDecayer class.
//
namespace Herwig {
using namespace ThePEG;
inline IBPtr a1ThreePionDecayer::clone() const {
return new_ptr(*this);
}
inline IBPtr a1ThreePionDecayer::fullclone() const {
return new_ptr(*this);
}
// breit-wigner for the sigma meson
inline Complex a1ThreePionDecayer::sigmaBreitWigner(Energy2 q2) const {
Energy q=sqrt(q2);
Energy width=_sigmawidth*Kinematics::pstarTwoBodyDecay(q,_mpi,_mpi)/_psigma;
Energy2 msigma2=_sigmamass*_sigmamass;
Complex ii(0.,1.);
complex<Energy2> denom = q>2.*_mpi ? q2-msigma2+ii*msigma2*width/q :
q2-msigma2;
return msigma2/denom;
}
// a_1 form factor
inline double a1ThreePionDecayer::a1FormFactor(Energy2 q2) const {
return (1.+_a1mass2/_lambda2)/(1.+q2/_lambda2);
}
// the h function in the rho propagator
inline Energy2 a1ThreePionDecayer::hFunction(const Energy q)const {
static const Energy2 eps(0.01*MeV2);
Energy2 q2=q*q;
double root = sqrt(1.-4.*_mpi2/q2);
Energy2 output;
if(q2>4*_mpi2) {
output=root*log((1.+root)/(1.-root))*(q2-4*_mpi2)/Constants::pi;
}
else if(q2>eps) output=0.*MeV2;
else output=-8.*_mpi2/Constants::pi;
return output;
}
// the dh/dq2 rho the propagator
inline double a1ThreePionDecayer::dhdq2Parameter(int ires) const {
Energy2 mrho2(sqr(_rhomass[ires]));
double root = sqrt(1.-4.*_mpi2/mrho2);
using Constants::pi;
return root/pi*(root+(1.+2*_mpi2/mrho2)*log((1+root)/(1-root)));
}
// the numerator for the rho propagator
inline Energy2 a1ThreePionDecayer::DParameter(int ires) const {
Energy2 grhom = 8.*_prho[ires]*_prho[ires]*_prho[ires]/_rhomass[ires];
return _rhomass[ires]*_rhomass[ires]+_rhowidth[ires]*_rhomass[ires]*
(hFunction(0.*MeV)-_hm2[ires]+sqr(_rhomass[ires])*_dhdq2m2[ires])/grhom;
}
// the rho Breit-Wigner
inline Complex a1ThreePionDecayer::rhoBreitWigner(Energy2 q2, int ires) const {
Energy q=sqrt(q2);
Energy2 grhom = 8.*_prho[ires]*_prho[ires]*_prho[ires]/_rhomass[ires];
complex<Energy2> denom;
Complex ii(0.,1.);
if(q2<4.*_mpi2) {
denom=q2-_rhomass[ires]*_rhomass[ires]-_rhowidth[ires]*_rhomass[ires]*
(hFunction(q)-_hm2[ires]-(q2-_rhomass[ires]*_rhomass[ires])*_dhdq2m2[ires])
/grhom;
}
else {
Energy pcm=2.*Kinematics::pstarTwoBodyDecay(q,_mpi,_mpi);
Energy2 grho = pcm*pcm*pcm/q;
denom=q2-_rhomass[ires]*_rhomass[ires]
-_rhowidth[ires]*_rhomass[ires]*
(hFunction(q)-_hm2[ires]-(q2-_rhomass[ires]*_rhomass[ires])*_dhdq2m2[ires])/grhom
+ii*_rhomass[ires]*_rhowidth[ires]*grho/grhom;
}
return _rhoD[ires]/denom;
}
inline Energy4 a1ThreePionDecayer::lambda(Energy2 a, Energy2 b, Energy2 c) const {
return sqr(a)+sqr(b)+sqr(c)-2.*a*b-2.*a*c-2.*b*c;
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, May 14, 11:59 AM (1 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5111581
Default Alt Text
a1ThreePionDecayer.icc (2 KB)
Attached To
R563 testingHerwigHG
Event Timeline
Log In to Comment