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

The ScalarFormFactor class is the base class for the form factors for the weak decay of scalar to scalar, vector and tensor mesons. More...

#include <ScalarFormFactor.h>

Inheritance diagram for Herwig::ScalarFormFactor:

Public Member Functions

 ScalarFormFactor ()
 Default constructor.
 
virtual void dataBaseOutput (ofstream &os, bool header, bool create) const
 Output the setup information for the particle database. 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...
 
Functions to give information about the form factors available.
int formFactorNumber (int in, int out, bool &cc) const
 Find the location for a given pair of particle. More...
 
void particleID (unsigned int iloc, int &id0, int &id1) const
 Get the particle ids for an entry. More...
 
void formFactorInfo (unsigned int &iloc, int &ispin, int &spect, int &inquark, int &outquark) const
 Information on the form factor. More...
 
void formFactorInfo (int in, int out, int &ispin, int &spect, int &inquark, int &outquark) const
 Information on the form factor. More...
 
unsigned int numberOfFactors () const
 number of form factors
 
Form Factors
virtual void ScalarScalarFormFactor (Energy2 q2, unsigned int iloc, int id0, int id1, Energy m0, Energy m1, Complex &f0, Complex &fp) const
 The form factor for the weak decay of a scalar to a scalar. More...
 
virtual void ScalarVectorFormFactor (Energy2 q2, unsigned int iloc, int id0, int id1, Energy m0, Energy m1, Complex &A0, Complex &A1, Complex &A2, Complex &V) const
 The form factor for the weak decay of a scalar to a vector. More...
 
virtual void ScalarTensorFormFactor (Energy2 q2, unsigned int iloc, int id0, int id1, Energy m0, Energy m1, complex< InvEnergy2 > &h, Complex &k, complex< InvEnergy2 > &bp, complex< InvEnergy2 > &bm) const
 The form factor for the weak decay of a scalar to a tensor. More...
 
virtual void ScalarScalarSigmaFormFactor (Energy2 q2, unsigned int iloc, int id0, int id1, Energy m0, Energy m1, Complex &fT) const
 The form factor for the weak penguin decay of a scalar meson to a scalar meson. More...
 
virtual void ScalarVectorSigmaFormFactor (Energy2 q2, unsigned int iloc, int id0, int id1, Energy m0, Energy m1, Complex &T1, Complex &T2, Complex &T3) const
 The form factor for the weak penguin decay of a scalar meson to a vector meson. 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 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 addFormFactor (int in, int out, int spin, int spect, int inquark, int outquark)
 Add a form factor to the list. More...
 
void initialModes (unsigned int nmodes)
 Set initial number of modes. More...
 
unsigned int initialModes () const
 Get the initial number of modes.
 
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...
 
- 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 doupdate ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinitrun ()
 
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

ScalarFormFactoroperator= (const ScalarFormFactor &)=delete
 Private and non-existent assignment operator.
 

Private Attributes

vector< int > _incomingid
 the id's of the incoming particles
 
vector< int > _outgoingid
 the id's of the outgoing particles
 
vector< int > _outgoingJ
 spin of the outgoing particle
 
vector< int > _spectator
 the id of the spectator quark
 
vector< int > _inquark
 the id of the decaying quark
 
vector< int > _outquark
 the id of the outgoing quark
 
unsigned int _numbermodes
 The initial number of modes.
 

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 ScalarFormFactor class is the base class for the form factors for the weak decay of scalar to scalar, vector and tensor mesons.

This is designed so that the form factors can be used for both the semi-leptonic decays and using factorization for hadronic weak decays. It also includes the necessary form factors for the weak-radiative decays $B\to K\gamma$ and $B\to K \ell^+\ell^-$.

The form factors are given below for the decay $X(p_X)\to Y(p_Y)$ with $q_\mu=(p_X-p_Y)_\mu$.

The scalar-scalar form factor is defined by

\[ \langle Y(p_Y)|(V-A)_\mu|X(p_X)\rangle = \left\{(p_X+p_Y)_\mu-\frac{m_X^2-m_Y^2}{q^2}q_\mu\right\}f_+(q^2) +\left\{\frac{m_X^2-m_Y^2}{q^2}q_\mu\right\}f_0(q^2). \]

This is the form factor for the standard weak current. For the weak radiative decays we also need the penguin current.

\[ \langle Y(p_Y)|J^\sigma_\mu|X(p_X)\rangle = \frac{i}{m_X+m_Y} \left\{q^2(p_X+p_Y)_\mu-(m_X^2-m_Y^2)q_\mu\right\}f_T(q^2)\]

The scalar-vector form factors are defined so that

\[ \langle Y(p_Y)|(V-A)_\mu|X(p_X)\rangle = -i\epsilon^*_\mu(m_X+m_Y)A_1(q^2) +i(p_X+p_Y)_\mu\epsilon^*\cdot q \frac{A_2(q^2)}{m_X+m_Y}\]

\[\phantom{\langle Y(p_Y)|(V-A)_\mu|X(p_X)\rangle =} +iq_\mu\epsilon^*\cdot q \frac{2m_Y}{q^2}\left(A_3(q^2)-A_0(q^2)\right) +\epsilon_{\mu\nu\rho\sigma}\epsilon^{*\nu}p_X^\rho p_Y^\sigma \frac{2V(q^2)}{m_X+m_Y}, \]

where the form factor $A_3(q^2)$ can be defined in terms of $A_1$ and $A_2$ using

\[ A_3(q^2) = \frac{m_X+m_Y}{2m_Y}A_1(q^2)-\frac{m_X-m_Y}{2m_Y}A_2(q^2)\]

and $A_0(0)=A_3(0)$.

As with the scalar to scalar currents this is the form factor for the standard weak current. We also need the penguin current

\[ \langle Y(p_Y)|J^\sigma_\mu|X(p_X)\rangle = i\epsilon_{\mu\nu\rho\sigma}\epsilon^{*\nu}p_X^\rho p_Y^\sigma2T_1(q^2) +T_2(q^2)\left\{\epsilon^*_\mu(m_X^2-m^2_Y)-\epsilon^*\cdot q (p_X+p_Y)_\mu\right\} \]

\[\phantom{\langle Y(p_Y)|J^\sigma_\mu|X(p_X)\rangle = } +T_3(q^2)\epsilon^*\cdot q\left\{q_\mu-\frac{q^2}{m^2_X-m^2_Y}(p_X+p_Y)_\mu\right\}, \]

with $T_1(0)=T_2(0)$.

The scalar-tensor form factors are defined as

\[ \langle Y(p_Y)|(V-A)_\mu|X(p_x)\rangle = i h(q^2) \epsilon_{\mu\nu\lambda\rho} \epsilon^{*\nu\alpha} p_{Y\alpha} (p_X+p_Y)^\lambda(p_X-p_Y)^\rho -k(q^2)\epsilon^*_{\mu\nu}p_Y^\nu \]

\[\phantom{\langle Y(p_Y)|(V-A)_mu|X(p_x)\rangle =} -b_+(q^2)\epsilon^*_{\alpha\beta}p_X^\alpha p_X^\beta(p_X+p_Y)_\mu -b_-(q^2)\epsilon^*_{\alpha\beta}p_X^\alpha p_X^\beta(p_X-p_Y)_\mu. \]

This is the base class and contains virtual methods which should return the form factors described above. This class stores information on the incoming and outgoing particles for a given form factor, the spin of the outgoing particle and the id's of the quarks.

Classes inheriting from this class should specify which combinations of particles etc are allowed using the addFormFactor member.

See also
BaryonFormFactor

Definition at line 97 of file ScalarFormFactor.h.

Member Function Documentation

◆ addFormFactor()

void Herwig::ScalarFormFactor::addFormFactor ( int  in,
int  out,
int  spin,
int  spect,
int  inquark,
int  outquark 
)
inlineprotected

Add a form factor to the list.

Parameters
inThe PDG code of the incoming meson.
outThe PDG code of the outgoing meson.
spinThe spin of the outgoing meson.
spectThe PDG code of the spectator quark.
inquarkThe PDG code for decaying incoming quark.
outquarkThe PDG code for the outgoing quark produced in the decay.

Definition at line 346 of file ScalarFormFactor.h.

◆ clone()

virtual IBPtr Herwig::ScalarFormFactor::clone ( ) const
inlineprotectedvirtual

◆ dataBaseOutput()

virtual void Herwig::ScalarFormFactor::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 in Herwig::MelikhovStechFormFactor, Herwig::KiselevBcFormFactor, Herwig::ISGW2FormFactor, Herwig::ISGWFormFactor, Herwig::WSBFormFactor, Herwig::BallZwickyVectorFormFactor, Herwig::HQETFormFactor, Herwig::MelikhovFormFactor, and Herwig::BallZwickyScalarFormFactor.

◆ doinit()

virtual void Herwig::ScalarFormFactor::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.

Reimplemented in Herwig::ISGW2FormFactor, Herwig::ISGWFormFactor, Herwig::MelikhovStechFormFactor, Herwig::WSBFormFactor, Herwig::KiselevBcFormFactor, Herwig::BallZwickyVectorFormFactor, Herwig::MelikhovFormFactor, and Herwig::BallZwickyScalarFormFactor.

◆ formFactorInfo() [1/2]

void Herwig::ScalarFormFactor::formFactorInfo ( unsigned int &  iloc,
int &  ispin,
int &  spect,
int &  inquark,
int &  outquark 
) const
inline

Information on the form factor.

Parameters
ilocThe location in the list.
ispinThe spin of the outgoing meson.
spectThe PDG code of the spectator quark.
inquarkThe PDG code for decaying incoming quark.
outquarkThe PDG code for the outgoing quark produced in the decay.

Definition at line 200 of file ScalarFormFactor.h.

◆ formFactorInfo() [2/2]

void Herwig::ScalarFormFactor::formFactorInfo ( int  in,
int  out,
int &  ispin,
int &  spect,
int &  inquark,
int &  outquark 
) const
inline

Information on the form factor.

Parameters
inThe PDG code of the incoming meson.
outThe PDG code of the outgoing meson.
ispinThe spin of the outgoing meson.
spectThe PDG code of the spectator quark.
inquarkThe PDG code for decaying incoming quark.
outquarkThe PDG code for the outgoing quark produced in the decay.

Definition at line 217 of file ScalarFormFactor.h.

◆ formFactorNumber()

int Herwig::ScalarFormFactor::formFactorNumber ( int  in,
int  out,
bool &  cc 
) const
inline

Find the location for a given pair of particle.

Parameters
inPDG code for the incoming meson.
outPDG code for the outgoing meson.
ccparticles or charge conjugates stored in form factor.
Returns
The location in the vectors storing the data.

Definition at line 158 of file ScalarFormFactor.h.

◆ fullclone()

virtual IBPtr Herwig::ScalarFormFactor::fullclone ( ) const
inlineprotectedvirtual

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.

Reimplemented in Herwig::ISGW2FormFactor, Herwig::ISGWFormFactor, Herwig::MelikhovStechFormFactor, Herwig::WSBFormFactor, Herwig::KiselevBcFormFactor, Herwig::HQETFormFactor, Herwig::BallZwickyVectorFormFactor, Herwig::MelikhovFormFactor, and Herwig::BallZwickyScalarFormFactor.

Definition at line 143 of file ScalarFormFactor.h.

◆ initialModes()

void Herwig::ScalarFormFactor::initialModes ( unsigned int  nmodes)
inlineprotected

Set initial number of modes.

Parameters
nmodesThe number of modes.

Definition at line 360 of file ScalarFormFactor.h.

◆ particleID()

void Herwig::ScalarFormFactor::particleID ( unsigned int  iloc,
int &  id0,
int &  id1 
) const
inline

Get the particle ids for an entry.

Parameters
ilocThe location in the list.
id0The PDG code for the incoming meson.
id1The PDG code for the outgoing meson.

Definition at line 187 of file ScalarFormFactor.h.

◆ persistentInput()

void Herwig::ScalarFormFactor::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::ScalarFormFactor::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ ScalarScalarFormFactor()

virtual void Herwig::ScalarFormFactor::ScalarScalarFormFactor ( Energy2  q2,
unsigned int  iloc,
int  id0,
int  id1,
Energy  m0,
Energy  m1,
Complex f0,
Complex fp 
) const
virtual

The form factor for the weak decay of a scalar to a scalar.

This method is virtual and must be implementented in classes inheriting from this which include scalar to scalar form factors.

Parameters
q2The scale $q^2$.
ilocThe location in the form factor list.
id0The PDG code of the incoming meson.
id1The PDG code of the outgoing meson.
m0The mass of the incoming meson.
m1The mass of the outgoing meson.
f0The form factor $f_0$.
fpThe form factor $f_+$.

Reimplemented in Herwig::KiselevBcFormFactor, Herwig::WSBFormFactor, Herwig::ISGW2FormFactor, Herwig::ISGWFormFactor, Herwig::BallZwickyScalarFormFactor, Herwig::HQETFormFactor, Herwig::MelikhovFormFactor, and Herwig::MelikhovStechFormFactor.

◆ ScalarScalarSigmaFormFactor()

virtual void Herwig::ScalarFormFactor::ScalarScalarSigmaFormFactor ( Energy2  q2,
unsigned int  iloc,
int  id0,
int  id1,
Energy  m0,
Energy  m1,
Complex fT 
) const
virtual

The form factor for the weak penguin decay of a scalar meson to a scalar meson.

This method is virtual and must be implemented in classes inheriting from this which include scalar to scalar penguin form factors.

Parameters
q2The scale $q^2$.
ilocThe location in the form factor list.
id0The PDG code of the incoming meson.
id1The PDG code of the outgoing meson.
m0The mass of the incoming meson.
m1The mass of the outgoing meson.
fTThe form factor $f_T$.

Reimplemented in Herwig::MelikhovStechFormFactor, and Herwig::BallZwickyScalarFormFactor.

◆ ScalarTensorFormFactor()

virtual void Herwig::ScalarFormFactor::ScalarTensorFormFactor ( Energy2  q2,
unsigned int  iloc,
int  id0,
int  id1,
Energy  m0,
Energy  m1,
complex< InvEnergy2 > &  h,
Complex k,
complex< InvEnergy2 > &  bp,
complex< InvEnergy2 > &  bm 
) const
virtual

The form factor for the weak decay of a scalar to a tensor.

This method is virtual and must be implemented in classes inheriting from this which include scalar to tensor form factors.

Parameters
q2The scale $q^2$.
ilocThe location in the form factor list.
id0The PDG code of the incoming meson.
id1The PDG code of the outgoing meson.
m0The mass of the incoming meson.
m1The mass of the outgoing meson.
hThe form factor $h$.
kThe form factor $k$.
bpThe form factor $b_+$.
bmThe form factor $b_-$.

Reimplemented in Herwig::ISGW2FormFactor, and Herwig::ISGWFormFactor.

◆ ScalarVectorFormFactor()

virtual void Herwig::ScalarFormFactor::ScalarVectorFormFactor ( Energy2  q2,
unsigned int  iloc,
int  id0,
int  id1,
Energy  m0,
Energy  m1,
Complex A0,
Complex A1,
Complex A2,
Complex V 
) const
virtual

The form factor for the weak decay of a scalar to a vector.

This method is virtual and must be implemented in classes inheriting from this which include scalar to vector form factors.

Parameters
q2The scale $q^2$.
ilocThe location in the form factor list.
id0The PDG code of the incoming meson.
id1The PDG code of the outgoing meson.
m0The mass of the incoming meson.
m1The mass of the outgoing meson.
A0The form factor $A_0$
A1The form factor $A_1$
A2The form factor $A_2$
VThe form factor $V$

Reimplemented in Herwig::KiselevBcFormFactor, Herwig::WSBFormFactor, Herwig::ISGW2FormFactor, Herwig::ISGWFormFactor, Herwig::HQETFormFactor, Herwig::MelikhovFormFactor, Herwig::MelikhovStechFormFactor, and Herwig::BallZwickyVectorFormFactor.

◆ ScalarVectorSigmaFormFactor()

virtual void Herwig::ScalarFormFactor::ScalarVectorSigmaFormFactor ( Energy2  q2,
unsigned int  iloc,
int  id0,
int  id1,
Energy  m0,
Energy  m1,
Complex T1,
Complex T2,
Complex T3 
) const
virtual

The form factor for the weak penguin decay of a scalar meson to a vector meson.

This method is virtual and must be implemented in classes inheriting from this which include scalar to vector penguin form factors.

Parameters
q2The scale $q^2$.
ilocThe location in the form factor list.
id0The PDG code of the incoming meson.
id1The PDG code of the outgoing meson.
m0The mass of the incoming meson.
m1The mass of the outgoing meson.
T1The form factor $T_1$.
T2The form factor $T_2$.
T3The form factor $T_3$.

Reimplemented in Herwig::MelikhovStechFormFactor, and Herwig::BallZwickyVectorFormFactor.


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