Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F10881928
GenericWidthGenerator.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
GenericWidthGenerator.icc
View Options
// -*- C++ -*-
//
// This is the implementation of the inlined member functions of
// the GenericWidthGenerator class.
//
namespace Herwig {
using namespace ThePEG;
inline GenericWidthGenerator::GenericWidthGenerator()
: _mass(),_prefactor(0.),_initialize(false),_BRnorm(true),_npoints(50),
_BRminimum(0.01)
{}
inline IBPtr GenericWidthGenerator::clone() const {
return new_ptr(*this);
}
inline IBPtr GenericWidthGenerator::fullclone() const {
return new_ptr(*this);
}
inline Energy GenericWidthGenerator::partial2BodyWidth(int imode,Energy q) const {
return partial2BodyWidth(imode,q,_MEmass1[imode],_MEmass2[imode]);
}
inline Energy GenericWidthGenerator::partial2BodyWidth(int imode, Energy q,Energy m1,
Energy m2) const {
using Constants::pi;
if(q<m1+m2){return Energy();}
// calcluate the decay momentum
Energy2 q2(q*q),m02(_mass*_mass),m12(m1*m1),m22(m2*m2),
pcm2(0.25*(q2*(q2-2.*m12-2.*m22)+(m12-m22)*(m12-m22))/q2);
Energy pcm(sqrt(pcm2)),gam=Energy();
if(_MEcode[imode]==-1)
{gam=q/_mass*_theParticle->width();}
// V -> P P
else if(_MEcode[imode]==0){gam=pcm2*pcm/6./pi/q2;}
// V -> P V
else if(_MEcode[imode]==1){gam=pcm2*pcm/12./pi/m02;}
// V -> f fbar
else if(_MEcode[imode]==2)
{gam=pcm/12./pi*(q2*(2.*q2-m12-m22+6.*m1*m2)-(m12-m22)*(m12-m22))/q2/q2;}
// P -> VV
else if(_MEcode[imode]==3){gam=0.25*pcm2*pcm/m02/pi;}
// A -> VP
else if(_MEcode[imode]==4){gam = pcm*(2.*pcm2+3.*m12)/24./pi/m02;}
// V -> VV
else if(_MEcode[imode]==5){gam = pcm2*pcm/3./pi/q2*(1.+m12/q2+m22/q2);}
// S -> SS
else if(_MEcode[imode]==6){gam = pcm/8./pi/q2*m02;}
// T -> PP
else if(_MEcode[imode]==7){gam = pcm2*pcm2*pcm/60./pi/q2/m02;}
// T -> VP
else if(_MEcode[imode]==8){gam = pcm2*pcm2*pcm/40./pi/m02/m02;}
// T -> VV
else if(_MEcode[imode]==9)
{gam = pcm/30./pi/q2/q2/m02*(3.*q2*(8.*pcm2*pcm2+5.*(m12*m22+pcm2*(m12+m22)))
-5.*(m12-m22)*(m12-m22)*pcm2);}
// P -> PV
else if(_MEcode[imode]==10){gam = pcm*pcm2/2./pi/m22;}
// P -> PT
else if(_MEcode[imode]==11){gam=pcm2*pcm2*pcm/12./pi*q2/m12/m12/m02;}
// S -> VV
else if(_MEcode[imode]==12){gam=pcm*(2.*pcm2+3.*m12*m22/q2)/8./pi/m02;}
// unknowm
else{throw Exception() << "Unknown type of mode " << _MEcode[imode]
<< " in GenericWidthGenerator::partial2BodyWidth() "
<< Exception::abortnow;}
return gam*_MEcoupling[imode]*_MEcoupling[imode];
}
inline int GenericWidthGenerator::MEcode(int imode) const {
return _MEcode[imode];
}
inline double GenericWidthGenerator::MEcoupling(int imode) const {
return _MEcoupling[imode];
}
inline Energy GenericWidthGenerator::mass() const {
return _mass;
}
inline bool GenericWidthGenerator::initialize() const {
return _initialize;
}
inline tPDPtr GenericWidthGenerator::particle() const {
return _theParticle;
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, May 3, 6:57 AM (6 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4983206
Default Alt Text
GenericWidthGenerator.icc (2 KB)
Attached To
rHERWIGHG herwighg
Event Timeline
Log In to Comment