herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
Herwig::FourPionNovosibirskCurrent Class Reference

The FourPionNovosibirskCurrent class implements the decay of the weak current to 4 pions using the hadronic currents of Comput. More...

#include <FourPionNovosibirskCurrent.h>

Inheritance diagram for Herwig::FourPionNovosibirskCurrent:

Public Member Functions

 FourPionNovosibirskCurrent ()
 Default constructor.
 
virtual vector< LorentzPolarizationVectorEcurrent (const int imode, const int ichan, Energy &scale, const ParticleVector &decay, DecayIntegrator::MEOption meopt) const
 Hadronic current. More...
 
virtual bool accept (vector< int > id)
 Accept the decay. More...
 
virtual unsigned int decayMode (vector< int > id)
 Return the decay mode number for a given set of particles in the current. More...
 
virtual void dataBaseOutput (ofstream &os, bool header, bool create) const
 Output the setup information for the particle database. More...
 
double threeBodyMatrixElement (const int iopt, const Energy2 q2, const Energy2 s3, const Energy2 s2, const Energy2 s1, const Energy m1, const Energy m2, const Energy m3) const
 The matrix element to evaluate the $a_1$ running width. More...
 
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
Methods for the construction of the phase space integrator.
virtual bool createMode (int icharge, unsigned int imode, DecayPhaseSpaceModePtr mode, unsigned int iloc, unsigned int ires, DecayPhaseSpaceChannelPtr phase, Energy upp)
 Complete the construction of the decay mode for integration. More...
 
virtual tPDVector particles (int icharge, unsigned int imode, int iq, int ia)
 The particles produced by the current. More...
 
- Public Member Functions inherited from Herwig::WeakDecayCurrent
 WeakDecayCurrent ()
 Default constructor.
 
unsigned int numberOfModes () const
 Return the number of modes handled by this current.
 
void decayModeInfo (unsigned int imode, int &iq, int &ia) const
 Information on a decay mode. More...
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from ThePEG::Interfaced
virtual bool defaultInit ()
 
PPtr getParticle (PID) const
 
PDPtr getParticleData (PID) const
 
bool used () const
 
void useMe () const
 
tEGPtr generator () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
PPtr getParticle (PID) const
 
PDPtr getParticleData (PID) const
 
bool used () const
 
void useMe () const
 
tEGPtr generator () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::InterfacedBase
string fullName () const
 
string name () const
 
string path () const
 
string comment () const
 
void setup (istream &is)
 
virtual void debugme () const
 
void update ()
 
void init ()
 
virtual bool preInitialize () const
 
void initrun ()
 
void finish ()
 
void touch ()
 
void reset ()
 
void clear ()
 
InitState state () const
 
bool locked () const
 
bool touched () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
void update ()
 
void init ()
 
virtual bool preInitialize () const
 
void initrun ()
 
void finish ()
 
void touch ()
 
void reset ()
 
void clear ()
 
InitState state () const
 
bool locked () const
 
bool touched () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::Base
void debug () const
 
- Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted
CounterType referenceCount () const
 
- Public Member Functions inherited from ThePEG::Named
 Named (const string &newName=string())
 
 Named (const Named &)=default
 
const string & name () const
 
bool operator== (const Named &other) const
 
bool operator< (const Named &other) const
 

Static Public Member Functions

static void Init ()
 Standard Init function used to initialize the interfaces.
 
- Static Public Member Functions inherited from Herwig::WeakDecayCurrent
static void Init ()
 Standard Init function used to initialize the interfaces.
 
- Static Public Member Functions inherited from ThePEG::Interfaced
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::InterfacedBase
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::Base
static void Init ()
 

Protected Member Functions

void inita1width (int iopt)
 Initialize the $a_1$ width. More...
 
double a1FormFactor (Energy2 q2) const
 Form foactor for the $a_1$ vertex. More...
 
Complex sigmaBreitWigner (Energy2 q2, unsigned int iopt) const
 Breit-Wigner for the $\sigma$ meson. More...
 
Complex a1BreitWigner (Energy2 q2) const
 The $a_1$ breit wigner. More...
 
Complex omegaBreitWigner (Energy2 q2) const
 The Breit-Wigner for the $\omega$. More...
 
Complex rhoBreitWigner (Energy2 q2) const
 The Breit-Wigner for the $\rho$. More...
 
Energy a1width (Energy2 q2) const
 Return the $a_1$ running width. More...
 
LorentzVector< complex< Energy5 > > t1 (Lorentz5Momentum &q1, Lorentz5Momentum &q2, Lorentz5Momentum &q3, Lorentz5Momentum &q4) const
 The $t_1$ current used in calculating the current. More...
 
LorentzVector< complex< Energy5 > > t2 (Lorentz5Momentum &q1, Lorentz5Momentum &q2, Lorentz5Momentum &q3, Lorentz5Momentum &q4, unsigned int iopt) const
 The $t_2$ current used in calculating the current. More...
 
LorentzVector< complex< Energy5 > > t3 (Lorentz5Momentum &q1, Lorentz5Momentum &q2, Lorentz5Momentum &q3, Lorentz5Momentum &q4) const
 The $t_3$ current used in calculating the current. More...
 
InvEnergy6 gFunction (Energy2 q2, int ichan) const
 The G functions of hep-ph/0201149. More...
 
Energy2 DParameter () const
 The d parameter in $\rho$ the propagator.
 
double dhdq2Parameter () const
 The $\frac{dh}{dq^2}$ function in the rho propagator evaluated at $q^2=m^2$.
 
Energy2 hFunction (const Energy q) const
 The h function in the $\rho$ propagator. More...
 
Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object. More...
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane. More...
 
Standard Interfaced functions.
virtual void doinit ()
 Initialize this object after the setup phase before saving and EventGenerator to disk. More...
 
virtual void doinitrun ()
 Initialize this object to the begining of the run phase.
 
virtual void doupdate ()
 Check sanity of the object during the setup phase.
 
- Protected Member Functions inherited from Herwig::WeakDecayCurrent
void addDecayMode (int iq, int ia)
 Add a decay mode to the list. More...
 
void setInitialModes (unsigned int nmodes)
 Set initial number of modes. More...
 
- Protected Member Functions inherited from ThePEG::Interfaced
void reporeg (IBPtr object, string name) const
 
bool setDefaultReference (PtrT &ptr, string classname, string objectname)
 
 Interfaced (const string &newName)
 
 Interfaced (const Interfaced &i)
 
void setGenerator (tEGPtr generator)
 
- Protected Member Functions inherited from ThePEG::InterfacedBase
 InterfacedBase (string newName)
 
 InterfacedBase (const InterfacedBase &i)
 
virtual void readSetup (istream &is)
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual void readSetup (istream &is)
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 
const string & name (const string &newName)
 

Private Member Functions

FourPionNovosibirskCurrentoperator= (const FourPionNovosibirskCurrent &)=delete
 Private and non-existent assignment operator.
 

Private Attributes

Energy _mpic
 The charged pion mass.
 
Energy _mpi0
 The neutral pion mass.
 
Energy _rhomass
 The mass of the $\rho$ for the current.
 
Energy _a1mass
 The mass of the $a_1$ for the current.
 
Energy _omegamass
 The mass of the $\omega$ for the current.
 
Energy _sigmamass
 The mass of the $\sigma$ for the current.
 
Energy _rhowidth
 The width for the $\rho$.
 
Energy _a1width
 The $a_1$ width.
 
Energy _omegawidth
 The $\omega$ width.
 
Energy _sigmawidth
 The $\sigma$ width.
 
Energy _intmass
 Mass for the intermediate in the phase-space, this is a technical parameter to improve the phase-space integration efficiency.
 
Energy _intwidth
 Width for the intermediate in the phase-space, this is a technical parameter to improve the phase-space integration efficiency.
 
Complex _zsigma
 The $z$ $\sigma$ coupling.
 
double _zmag
 The magnitude of the $z$ $\sigma$ coupling.
 
double _zphase
 The phase of the $z$ $\sigma$ coupling.
 
Energy2 _lambda2
 The mass parameter for the $a_1$ form-factor.
 
InvEnergy2 _onedlam2
 The inverse of the mass parameter for the $a_1$ form-factor.
 
double _a1massolam2
 The physical $a_1$ mass divided by the mass parameter in the $a_1$ form-factor.
 
vector< Energy > _psigma
 The momentum of the pions in on-shell $\sigma$ decay which is used in the calculation of the running $\sigma$ width.
 
Energy2 _mpic2
 The charged pion mass squared.
 
Energy2 _mpi02
 The neutral pion mass squared.
 
Energy2 _hm2
 The h function evaluated at the $\rho$ mass.
 
Energy2 _rhoD
 The d parameter for the $\rho$ width.
 
Energy _prho
 The momentum of the pions produced in on-shell $rho$ decay.
 
double _dhdq2m2
 $\frac{dh}{dq^2}$ evaluates at $q^2=m^2$ for the $\rho$.
 
InvEnergy _aomega
 Magic number for the omega current.
 
InvEnergy _athreec
 Magic number for the three charged pion current.
 
InvEnergy _aonec
 Magic number for the one charged pion current.
 
double _bomega
 Magic number for the omega current.
 
double _bthreec
 Magic number for the three charged pion current.
 
double _bonec
 Magic number for the one charged pion current.
 
double _comega
 Magic number for the omega current.
 
double _cthreec
 Magic number for the three charged pion current.
 
double _conec
 Magic number for the one charged pion current.
 
vector< double > _omegaparam
 magic numbers for the running omega width
 
bool _initializea1
 whether or not to initialize the calculation of the $a_1$ width
 
bool _localparameters
 use local values of the particle masses
 
vector< Energy > _a1runwidth
 The widths for the interpolation table for the running $a_1$ width.
 
vector< Energy2 > _a1runq2
 The $q^2$ values for the interpolation table for the running $a_1$ width.
 
Interpolator< Energy, Energy2 >::Ptr _a1runinter
 The interpolator for the running $a_1$ width.
 
Energy _maxmass
 The maximum mass of the hadronic system.
 
Energy _maxcalc
 The maximum mass when the running width was calculated.
 
Interpolator< double, Energy >::Ptr _Fomega
 Interpolating functions for the G functions of hep-ph/0201149. More...
 
Interpolator< double, Energy >::Ptr _Fthreec
 The interpolator for the three charged pion $a_1$ current.
 
Interpolator< double, Energy >::Ptr _Fonec
 The interpolator for the one charged pion $a_1$ current.
 
Interpolator< double, Energy2 >::Ptr _Fsigma
 The interpolator for the $\sigma$ current.
 

Friends

class FourPionDefaultMatrixElement
 The FourPionDefaultMatrixElement class is a friend so it can perform the integration.
 

Additional Inherited Members

- Public Types inherited from ThePEG::InterfacedBase
enum  InitState
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 
- Public Attributes inherited from ThePEG::InterfacedBase
 initializing
 
 uninitialized
 
 initialized
 
 runready
 
- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 
- Static Protected Member Functions inherited from ThePEG::Interfaced
static void registerRepository (IBPtr)
 
static void registerRepository (IBPtr, string newName)
 

Detailed Description

The FourPionNovosibirskCurrent class implements the decay of the weak current to 4 pions using the hadronic currents of Comput.

Phys. Commun. 146: 139-153, 2002, which is a model based on the $e^+e^-\to4\pi$ data from Novosibirsk.

It should be noted that there were a large number of mistakes in this paper which were corrected in hep-ph/0312240.

See also
WeakDecayCurrent
FourPionDefaultMatrixElement
Author
Peter Richardson

Definition at line 37 of file FourPionNovosibirskCurrent.h.

Member Function Documentation

◆ a1BreitWigner()

Complex Herwig::FourPionNovosibirskCurrent::a1BreitWigner ( Energy2  q2) const
protected

The $a_1$ breit wigner.

Parameters
q2The scale $q^2$.
Returns
The Breit-Wigner for the $a_1$.

◆ a1FormFactor()

double Herwig::FourPionNovosibirskCurrent::a1FormFactor ( Energy2  q2) const
inlineprotected

Form foactor for the $a_1$ vertex.

Parameters
q2The scale $q^2$.
Returns
The $a_1$ form factor.

Definition at line 222 of file FourPionNovosibirskCurrent.h.

References sqr().

◆ a1width()

Energy Herwig::FourPionNovosibirskCurrent::a1width ( Energy2  q2) const
inlineprotected

Return the $a_1$ running width.

Parameters
q2The scale $q^2$.
Returns
The running width.

Definition at line 260 of file FourPionNovosibirskCurrent.h.

◆ accept()

virtual bool Herwig::FourPionNovosibirskCurrent::accept ( vector< int >  id)
virtual

Accept the decay.

Checks this is one of the four pion modes.

Parameters
idThe id's of the particles in the current.
Returns
Can this current have the external particles specified.

Implements Herwig::WeakDecayCurrent.

◆ clone()

virtual IBPtr Herwig::FourPionNovosibirskCurrent::clone ( ) const
protectedvirtual

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

◆ createMode()

virtual bool Herwig::FourPionNovosibirskCurrent::createMode ( int  icharge,
unsigned int  imode,
DecayPhaseSpaceModePtr  mode,
unsigned int  iloc,
unsigned int  ires,
DecayPhaseSpaceChannelPtr  phase,
Energy  upp 
)
virtual

Complete the construction of the decay mode for integration.

This version constructs the four pion current.

Parameters
ichargeThe total charge of the outgoing particles in the current.
imodeThe mode in the current being asked for.
modeThe phase space mode for the integration
ilocThe location of the of the first particle from the current in the list of outgoing particles.
iresThe location of the first intermediate for the current.
phaseThe prototype phase space channel for the integration.
uppThe maximum possible mass the particles in the current are allowed to have.
Returns
Whether the current was sucessfully constructed.

Implements Herwig::WeakDecayCurrent.

◆ current()

virtual vector<LorentzPolarizationVectorE> Herwig::FourPionNovosibirskCurrent::current ( const int  imode,
const int  ichan,
Energy &  scale,
const ParticleVector decay,
DecayIntegrator::MEOption  meopt 
) const
virtual

Hadronic current.

This version calculates the four pion current described above.

Parameters
imodeThe mode
ichanThe phase-space channel the current is needed for.
scaleThe invariant mass of the particles in the current.
decayThe decay products
meoptOption for the calculation of the matrix element
Returns
The current.

Implements Herwig::WeakDecayCurrent.

◆ dataBaseOutput()

virtual void Herwig::FourPionNovosibirskCurrent::dataBaseOutput ( ofstream &  os,
bool  header,
bool  create 
) const
virtual

Output the setup information for the particle database.

Parameters
osThe stream to output the information to
headerWhether or not to output the information for MySQL
createWhether or not to add a statement creating the object

Reimplemented from Herwig::WeakDecayCurrent.

◆ decayMode()

virtual unsigned int Herwig::FourPionNovosibirskCurrent::decayMode ( vector< int >  id)
virtual

Return the decay mode number for a given set of particles in the current.

Works out which four pion mode this is.

Parameters
idThe id's of the particles in the current.
Returns
The number of the mode

Implements Herwig::WeakDecayCurrent.

◆ doinit()

virtual void Herwig::FourPionNovosibirskCurrent::doinit ( )
protectedvirtual

Initialize this object after the setup phase before saving and EventGenerator to disk.

Exceptions
InitExceptionif object could not be initialized properly.

Reimplemented from ThePEG::InterfacedBase.

◆ fullclone()

virtual IBPtr Herwig::FourPionNovosibirskCurrent::fullclone ( ) const
protectedvirtual

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns
a pointer to the new object.

Reimplemented from ThePEG::InterfacedBase.

◆ gFunction()

InvEnergy6 Herwig::FourPionNovosibirskCurrent::gFunction ( Energy2  q2,
int  ichan 
) const
protected

The G functions of hep-ph/0201149.

Parameters
q2The scale $q^2$.
ichanWhich of the four pion channels this is for.
Returns
The G function.

◆ hFunction()

Energy2 Herwig::FourPionNovosibirskCurrent::hFunction ( const Energy  q) const
protected

The h function in the $\rho$ propagator.

Parameters
qThe scale.
Returns
The h function.

◆ inita1width()

void Herwig::FourPionNovosibirskCurrent::inita1width ( int  iopt)
protected

Initialize the $a_1$ width.

Parameters
ioptInitialization option (-1 is full initialization and 0 sets up the interpolator for the running width)

◆ omegaBreitWigner()

Complex Herwig::FourPionNovosibirskCurrent::omegaBreitWigner ( Energy2  q2) const
protected

The Breit-Wigner for the $\omega$.

Parameters
q2The scale $q^2$.
Returns
The Breit-Wigner for the $\omega$.

◆ particles()

virtual tPDVector Herwig::FourPionNovosibirskCurrent::particles ( int  icharge,
unsigned int  imode,
int  iq,
int  ia 
)
virtual

The particles produced by the current.

This returns the four pions for the current.

Parameters
ichargeThe total charge of the particles in the current.
imodeThe mode for which the particles are being requested
iqThe PDG code for the quark
iaThe PDG code for the antiquark
Returns
The external particles for the current.

Implements Herwig::WeakDecayCurrent.

◆ persistentInput()

void Herwig::FourPionNovosibirskCurrent::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters
isthe persistent input stream read from.
versionthe version number of the object when written.

◆ persistentOutput()

void Herwig::FourPionNovosibirskCurrent::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ rhoBreitWigner()

Complex Herwig::FourPionNovosibirskCurrent::rhoBreitWigner ( Energy2  q2) const
protected

The Breit-Wigner for the $\rho$.

Parameters
q2The scale $q^2$.
Returns
The Breit-Wigner for the $\rho$.

◆ sigmaBreitWigner()

Complex Herwig::FourPionNovosibirskCurrent::sigmaBreitWigner ( Energy2  q2,
unsigned int  iopt 
) const
protected

Breit-Wigner for the $\sigma$ meson.

Parameters
q2The scale $q^2$.
ioptThe pion masses to used (0= $\pi^0$, 1= $\pi^+$)
Returns
The Breit-Wigner for the $\sigma$ meson

◆ t1()

LorentzVector<complex<Energy5> > Herwig::FourPionNovosibirskCurrent::t1 ( Lorentz5Momentum &  q1,
Lorentz5Momentum &  q2,
Lorentz5Momentum &  q3,
Lorentz5Momentum &  q4 
) const
protected

The $t_1$ current used in calculating the current.

Parameters
q1The first momentum.
q2The first momentum.
q3The first momentum.
q4The first momentum.
Returns
The current $t_1$.

◆ t2()

LorentzVector<complex<Energy5> > Herwig::FourPionNovosibirskCurrent::t2 ( Lorentz5Momentum &  q1,
Lorentz5Momentum &  q2,
Lorentz5Momentum &  q3,
Lorentz5Momentum &  q4,
unsigned int  iopt 
) const
protected

The $t_2$ current used in calculating the current.

Parameters
q1The first momentum.
q2The first momentum.
q3The first momentum.
q4The first momentum.
iopt0 for $\sigma\to\pi^+\pi^-$ and 1 for $\sigma\to\pi^0\pi^0$
Returns
The current $t_2$.

◆ t3()

LorentzVector<complex<Energy5> > Herwig::FourPionNovosibirskCurrent::t3 ( Lorentz5Momentum &  q1,
Lorentz5Momentum &  q2,
Lorentz5Momentum &  q3,
Lorentz5Momentum &  q4 
) const
protected

The $t_3$ current used in calculating the current.

Parameters
q1The first momentum.
q2The first momentum.
q3The first momentum.
q4The first momentum.
Returns
The current $t_3$.

◆ threeBodyMatrixElement()

double Herwig::FourPionNovosibirskCurrent::threeBodyMatrixElement ( const int  iopt,
const Energy2  q2,
const Energy2  s3,
const Energy2  s2,
const Energy2  s1,
const Energy  m1,
const Energy  m2,
const Energy  m3 
) const

The matrix element to evaluate the $a_1$ running width.

Parameters
ioptThe mode
q2The mass of the decaying off-shell $a_1$, $q^2$.
s3The invariant mass squared of particles 1 and 2, $s_3=m^2_{12}$.
s2The invariant mass squared of particles 1 and 3, $s_2=m^2_{13}$.
s1The invariant mass squared of particles 2 and 3, $s_1=m^2_{23}$.
m1The mass of the first outgoing particle.
m2The mass of the second outgoing particle.
m3The mass of the third outgoing particle.
Returns
The matrix element squared summed over spins.

Member Data Documentation

◆ _Fomega

Interpolator<double,Energy>::Ptr Herwig::FourPionNovosibirskCurrent::_Fomega
private

Interpolating functions for the G functions of hep-ph/0201149.

The interpolator for the $\omega$ current.

Definition at line 334 of file FourPionNovosibirskCurrent.h.


The documentation for this class was generated from the following file: