Herwig 7.3.0
|
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>
Public Member Functions | |
ScalarFormFactor () | |
Default constructor. | |
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. | |
void | particleID (unsigned int iloc, int &id0, int &id1) const |
Get the particle ids for an entry. | |
void | formFactorInfo (unsigned int &iloc, int &ispin, int &spect, int &inquark, int &outquark) const |
Information on the form factor. | |
void | formFactorInfo (int in, int out, int &ispin, int &spect, int &inquark, int &outquark) const |
Information on the form factor. | |
unsigned int | numberOfFactors () const |
number of form factors | |
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 |
Public Member Functions inherited from ThePEG::InterfacedBase | |
string | fullName () const |
string | name () const |
string | path () const |
string | comment () const |
void | setup (istream &is) |
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 |
virtual IBPtr | fullclone () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
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 |
virtual IBPtr | fullclone () const |
Public Member Functions inherited from ThePEG::Base | |
void | debug () const |
virtual void | debugme () 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 |
Protected Member Functions | |
Clone Methods. | |
virtual IBPtr | clone () const |
Make a simple clone of this object. | |
virtual IBPtr | fullclone () const |
Make a clone of this object, possibly modifying the cloned object to make it sane. | |
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 | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
virtual IBPtr | clone () const=0 |
InterfacedBase (string newName) | |
InterfacedBase (const InterfacedBase &i) | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
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 &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Protected Member Functions inherited from ThePEG::Named | |
const Named & | operator= (const Named &other) |
const string & | name (const string &newName) |
Standard Interfaced functions. | |
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. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving and EventGenerator to disk. | |
ScalarFormFactor & | operator= (const ScalarFormFactor &)=delete |
Private and non-existent assignment operator. | |
Functions used by the persistent I/O system. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
static void | Init () |
Standard Init function used to initialize the interfaces. | |
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. | |
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. | |
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. | |
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. | |
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. | |
virtual void | dataBaseOutput (ofstream &os, bool header, bool create) const |
Output the setup information for the particle database. | |
void | addFormFactor (int in, int out, int spin, int spect, int inquark, int outquark) |
Add a form factor to the list. | |
void | initialModes (unsigned int nmodes) |
Set initial number of modes. | |
unsigned int | initialModes () const |
Get 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 |
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 () |
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) |
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.
Definition at line 97 of file ScalarFormFactor.h.
|
inline |
Default constructor.
Definition at line 104 of file ScalarFormFactor.h.
|
inlineprotected |
Add a form factor to the list.
in | The PDG code of the incoming meson. |
out | The PDG code of the outgoing meson. |
spin | The spin of the outgoing meson. |
spect | The PDG code of the spectator quark. |
inquark | The PDG code for decaying incoming quark. |
outquark | The PDG code for the outgoing quark produced in the decay. |
Definition at line 346 of file ScalarFormFactor.h.
References _incomingid, _inquark, _outgoingid, _outgoingJ, _outquark, and _spectator.
|
inlineprotectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
Reimplemented in Herwig::BallZwickyScalarFormFactor, Herwig::BallZwickyVectorFormFactor, Herwig::HQETFormFactor, Herwig::ISGW2FormFactor, Herwig::ISGWFormFactor, Herwig::KiselevBcFormFactor, Herwig::MelikhovFormFactor, Herwig::MelikhovStechFormFactor, and Herwig::WSBFormFactor.
Definition at line 137 of file ScalarFormFactor.h.
|
virtual |
Output the setup information for the particle database.
os | The stream to output the information to |
header | Whether or not to output the information for MySQL |
create | Whether or not to add a statement creating the object |
Reimplemented in Herwig::BallZwickyScalarFormFactor, Herwig::BallZwickyVectorFormFactor, Herwig::HQETFormFactor, Herwig::ISGW2FormFactor, Herwig::ISGWFormFactor, Herwig::KiselevBcFormFactor, Herwig::MelikhovFormFactor, Herwig::MelikhovStechFormFactor, and Herwig::WSBFormFactor.
|
protectedvirtual |
Initialize this object after the setup phase before saving and EventGenerator to disk.
InitException | if object could not be initialized properly. |
Reimplemented from ThePEG::InterfacedBase.
Reimplemented in Herwig::BallZwickyScalarFormFactor, Herwig::BallZwickyVectorFormFactor, Herwig::ISGW2FormFactor, Herwig::ISGWFormFactor, Herwig::KiselevBcFormFactor, Herwig::MelikhovFormFactor, Herwig::MelikhovStechFormFactor, and Herwig::WSBFormFactor.
|
inline |
Information on the form factor.
in | The PDG code of the incoming meson. |
out | The PDG code of the outgoing meson. |
ispin | The spin of the outgoing meson. |
spect | The PDG code of the spectator quark. |
inquark | The PDG code for decaying incoming quark. |
outquark | The PDG code for the outgoing quark produced in the decay. |
Definition at line 217 of file ScalarFormFactor.h.
References formFactorInfo(), and formFactorNumber().
|
inline |
Information on the form factor.
iloc | The location in the list. |
ispin | The spin of the outgoing meson. |
spect | The PDG code of the spectator quark. |
inquark | The PDG code for decaying incoming quark. |
outquark | The PDG code for the outgoing quark produced in the decay. |
Definition at line 200 of file ScalarFormFactor.h.
References _inquark, _outgoingJ, _outquark, and _spectator.
Referenced by formFactorInfo().
|
inline |
Find the location for a given pair of particle.
in | PDG code for the incoming meson. |
out | PDG code for the outgoing meson. |
cc | particles or charge conjugates stored in form factor. |
Definition at line 158 of file ScalarFormFactor.h.
References _incomingid, and _outgoingid.
Referenced by formFactorInfo().
|
inlineprotectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
Reimplemented in Herwig::BallZwickyScalarFormFactor, Herwig::BallZwickyVectorFormFactor, Herwig::HQETFormFactor, Herwig::ISGW2FormFactor, Herwig::ISGWFormFactor, Herwig::KiselevBcFormFactor, Herwig::MelikhovFormFactor, Herwig::MelikhovStechFormFactor, and Herwig::WSBFormFactor.
Definition at line 143 of file ScalarFormFactor.h.
|
inlineprotected |
Get the initial number of modes.
Definition at line 365 of file ScalarFormFactor.h.
References _numbermodes.
|
inlineprotected |
Set initial number of modes.
nmodes | The number of modes. |
Definition at line 360 of file ScalarFormFactor.h.
References _numbermodes.
|
inline |
|
inline |
Get the particle ids for an entry.
iloc | The location in the list. |
id0 | The PDG code for the incoming meson. |
id1 | The PDG code for the outgoing meson. |
Definition at line 187 of file ScalarFormFactor.h.
References _incomingid, and _outgoingid.
void Herwig::ScalarFormFactor::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
void Herwig::ScalarFormFactor::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
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.
q2 | The scale \(q^2\). |
iloc | The location in the form factor list. |
id0 | The PDG code of the incoming meson. |
id1 | The PDG code of the outgoing meson. |
m0 | The mass of the incoming meson. |
m1 | The mass of the outgoing meson. |
f0 | The form factor \(f_0\). |
fp | The form factor \(f_+\). |
Reimplemented in Herwig::BallZwickyScalarFormFactor, Herwig::HQETFormFactor, Herwig::ISGW2FormFactor, Herwig::ISGWFormFactor, Herwig::KiselevBcFormFactor, Herwig::MelikhovFormFactor, Herwig::MelikhovStechFormFactor, and Herwig::WSBFormFactor.
|
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.
q2 | The scale \(q^2\). |
iloc | The location in the form factor list. |
id0 | The PDG code of the incoming meson. |
id1 | The PDG code of the outgoing meson. |
m0 | The mass of the incoming meson. |
m1 | The mass of the outgoing meson. |
fT | The form factor \(f_T\). |
Reimplemented in Herwig::BallZwickyScalarFormFactor, and Herwig::MelikhovStechFormFactor.
|
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.
q2 | The scale \(q^2\). |
iloc | The location in the form factor list. |
id0 | The PDG code of the incoming meson. |
id1 | The PDG code of the outgoing meson. |
m0 | The mass of the incoming meson. |
m1 | The mass of the outgoing meson. |
h | The form factor \(h\). |
k | The form factor \(k\). |
bp | The form factor \(b_+\). |
bm | The form factor \(b_-\). |
Reimplemented in Herwig::ISGW2FormFactor, and Herwig::ISGWFormFactor.
|
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.
q2 | The scale \(q^2\). |
iloc | The location in the form factor list. |
id0 | The PDG code of the incoming meson. |
id1 | The PDG code of the outgoing meson. |
m0 | The mass of the incoming meson. |
m1 | The mass of the outgoing meson. |
A0 | The form factor \(A_0\) |
A1 | The form factor \(A_1\) |
A2 | The form factor \(A_2\) |
V | The form factor \(V\) |
Reimplemented in Herwig::BallZwickyVectorFormFactor, Herwig::HQETFormFactor, Herwig::KiselevBcFormFactor, Herwig::ISGW2FormFactor, Herwig::ISGWFormFactor, Herwig::MelikhovFormFactor, Herwig::MelikhovStechFormFactor, and Herwig::WSBFormFactor.
|
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.
q2 | The scale \(q^2\). |
iloc | The location in the form factor list. |
id0 | The PDG code of the incoming meson. |
id1 | The PDG code of the outgoing meson. |
m0 | The mass of the incoming meson. |
m1 | The mass of the outgoing meson. |
T1 | The form factor \(T_1\). |
T2 | The form factor \(T_2\). |
T3 | The form factor \(T_3\). |
Reimplemented in Herwig::BallZwickyVectorFormFactor, and Herwig::MelikhovStechFormFactor.
|
private |
the id's of the incoming particles
Definition at line 391 of file ScalarFormFactor.h.
Referenced by addFormFactor(), formFactorNumber(), numberOfFactors(), and particleID().
|
private |
the id of the decaying quark
Definition at line 411 of file ScalarFormFactor.h.
Referenced by addFormFactor(), and formFactorInfo().
|
private |
The initial number of modes.
Definition at line 421 of file ScalarFormFactor.h.
Referenced by initialModes().
|
private |
the id's of the outgoing particles
Definition at line 396 of file ScalarFormFactor.h.
Referenced by addFormFactor(), formFactorNumber(), and particleID().
|
private |
spin of the outgoing particle
Definition at line 401 of file ScalarFormFactor.h.
Referenced by addFormFactor(), and formFactorInfo().
|
private |
the id of the outgoing quark
Definition at line 416 of file ScalarFormFactor.h.
Referenced by addFormFactor(), and formFactorInfo().
|
private |
the id of the spectator quark
Definition at line 406 of file ScalarFormFactor.h.
Referenced by addFormFactor(), and formFactorInfo().