Herwig++
2.7.0
|
The MEPP2Higgs class implements the matrix element for the process pp->Higgs with different Higgs shape prescriptions (see details in hep-ph/9505211) and the NLL corrected Higgs width (see details in the FORTRAN HERWIG manual). More...
#include <MEPP2Higgs.h>
Public Member Functions | |
MEPP2Higgs () | |
The default constructor. | |
virtual CrossSection | dSigHatDR () const |
Return the matrix element for the kinematical configuation previously provided by the last call to setKinematics(). | |
virtual void | setKinematics () |
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me() and colourGeometries() according to the associated XComb object. | |
Member functions for the generation of hard QCD radiation | |
virtual POWHEGType | hasPOWHEGCorrection () |
Has a POWHEG style correction. | |
virtual bool | hasMECorrection () |
Has an old fashioned ME correction. | |
virtual void | initializeMECorrection (ShowerTreePtr tree, double &initial, double &final) |
Initialize the ME correction. | |
virtual void | applyHardMatrixElementCorrection (ShowerTreePtr) |
Apply the hard matrix element correction to a given hard process or decay. | |
virtual bool | softMatrixElementVeto (ShowerProgenitorPtr initial, ShowerParticlePtr parent, Branching br) |
Apply the soft matrix element correction. | |
virtual HardTreePtr | generateHardest (ShowerTreePtr) |
Apply the POWHEG style correction. | |
Virtual functions required by the MEBase class. | |
virtual unsigned int | orderInAlphaS () const |
Return the order in ![]() | |
virtual unsigned int | orderInAlphaEW () const |
Return the order in ![]() | |
virtual double | me2 () const |
The matrix element for the kinematical configuration previously provided by the last call to setKinematics(), suitably scaled by sHat() to give a dimension-less number. | |
virtual bool | generateKinematics (const double *r) |
Generate internal degrees of freedom given nDim() uniform random numbers in the interval ![]() | |
virtual Energy2 | scale () const |
Return the scale associated with the last set phase space point. | |
virtual int | nDim () const |
The number of internal degrees of freedom used in the matrix element. | |
virtual void | getDiagrams () const |
Add all possible diagrams with the add() function. | |
virtual Selector< DiagramIndex > | diagrams (const DiagramVector &dv) const |
Get diagram selector. | |
virtual Selector< const ColourLines * > | colourGeometries (tcDiagPtr diag) const |
Return a Selector with possible colour geometries for the selected diagram weighted by their relative probabilities. | |
virtual void | constructVertex (tSubProPtr) |
Construct the vertex of spin correlations. | |
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 Public Member Functions | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
Protected Member Functions | |
tPDPtr | quarkFlavour (tcPDFPtr pdf, Energy2 scale, double x, tcBeamPtr beam, double &pdfweight, bool anti) |
Method to extract the PDF weight for quark/antiquark initiated processes and select the quark flavour. | |
bool | applyHard (ShowerParticleVector gluons, vector< tcBeamPtr > beams, PPtr higgs, unsigned int &iemit, unsigned int &itype, vector< Lorentz5Momentum > &pnew, pair< double, double > &xnew, tPDPtr &out) |
Return the momenta and type of hard matrix element correction. | |
bool | getEvent (vector< Lorentz5Momentum > &pnew, int &emissiontype) |
generates the hardest emission (yj,p) | |
double | getResult (int emis_type, Energy pt, double yj, tcPDPtr &outParton) |
Returns the matrix element for a given type of process, rapidity of the jet ![]() ![]() | |
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. | |
Standard Interfaced functions. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
virtual void | dofinish () |
Finalize this object. | |
Energy4 | loME () const |
Members to calculate the real emission matrix elements. | |
Energy2 | ggME (Energy2 s, Energy2 t, Energy2 u) |
The matrix element for ![]() | |
Energy2 | qgME (Energy2 s, Energy2 t, Energy2 u) |
The matrix element for ![]() | |
Energy2 | qbargME (Energy2 s, Energy2 t, Energy2 u) |
The matrix element for ![]() | |
Complex | B (Energy2 s, Energy2 mf2) const |
Members to calculate the functions for the loop diagrams. | |
complex< InvEnergy2 > | C (Energy2 s, Energy2 mf2) const |
The ![]() | |
complex< InvEnergy4 > | D (Energy2 s, Energy2 t, Energy2 u, Energy2 mf2) const |
The ![]() | |
Complex | dIntegral (Energy2 a, Energy2 b, double y0) const |
The integral ![]() | |
complex< Energy > | me1 (Energy2 s, Energy2 t, Energy2 u, Energy2 mf2, unsigned int i, unsigned int j, unsigned int k, unsigned int i1, unsigned int j1, unsigned int k1) const |
The ![]() | |
complex< Energy > | me2 (Energy2 s, Energy2 t, Energy2 u, Energy2 mf2) const |
The ![]() | |
Complex | F (double x) const |
The ![]() | |
Private Member Functions | |
MEPP2Higgs & | operator= (const MEPP2Higgs &) |
The assignment operator is private and must never be called. | |
double | ggME (vector< VectorWaveFunction > g1, vector< VectorWaveFunction > g2, ScalarWaveFunction &, bool calc) const |
Members to return the matrix elements for the different subprocesses. | |
double | qqME (vector< SpinorWaveFunction > &fin, vector< SpinorBarWaveFunction > &ain, ScalarWaveFunction &, bool calc) const |
Calculates the matrix element for the process q,qbar->h. | |
Private Attributes | |
unsigned int | scaleopt_ |
Selects a dynamic (sHat) or fixed factorization scale. | |
Energy | mu_F_ |
The value associated to the fixed factorization scale option. | |
unsigned int | shapeOption_ |
Defines the Higgs resonance shape. | |
unsigned int | processOption_ |
The processes to be included (GG->H and/or qq->H) | |
int | minFlavour_ |
Minimum flavour of incoming quarks. | |
int | maxFlavour_ |
Maximum flavour of incoming quarks. | |
ProductionMatrixElement | me_ |
Matrix element for spin correlations. | |
AbstractVVSVertexPtr | HGGVertex_ |
Pointer to the H-> 2 gluon vertex (used in gg->H) | |
AbstractFFSVertexPtr | HFFVertex_ |
Pointer to the fermion-fermion Higgs vertex (used in qq->H) | |
GenericMassGeneratorPtr | hmass_ |
The mass generator for the Higgs. | |
Energy | mh_ |
On-shell mass for the higgs. | |
Energy | wh_ |
On-shell width for the higgs. | |
ShowerAlphaPtr | alpha_ |
Pointer to the object calculating the strong coupling. | |
Energy2 | mh2_ |
Mass squared of Higgs. | |
double | channelwgtA_ |
Relative weight of the ![]() ![]() | |
double | channelwgtB_ |
Relative weight for the ![]() ![]() | |
vector< double > | channelWeights_ |
Weights for the channels as a vector. | |
double | ggPow_ |
Power for the ![]() ![]() | |
double | qgPow_ |
Power for the ![]() ![]() ![]() | |
double | enhance_ |
The enhancement factor for initial-state radiation. | |
unsigned int | nover_ |
Number of weights greater than 1. | |
unsigned int | ntry_ |
Number of attempts. | |
unsigned int | ngen_ |
Number which suceed. | |
double | maxwgt_ |
Maximum weight. | |
Energy | minpT_ |
The transverse momentum of the jet. | |
unsigned int | minLoop_ |
Stuff for the ME correction. | |
unsigned int | maxLoop_ |
Maximum flavour of quarks to include in the loops. | |
unsigned int | massOption_ |
Option for treatment of the fermion loops. | |
unsigned int | mu_R_opt_ |
Option for dynamic scale choice in alpha_S (0=mT,>0=pT) | |
unsigned int | mu_F_opt_ |
Option for dynamic scale choice in PDFs (0=mT,>0=pT) | |
Complex | bi_ [5] |
Storage of the loop functions. | |
complex< InvEnergy2 > | ci_ [8] |
C functions. | |
complex< InvEnergy4 > | di_ [4] |
D functions. | |
double | power_ |
Constants for the sampling. | |
double | pregg_ |
The prefactor, ![]() ![]() | |
double | preqg_ |
The prefactor, ![]() ![]() | |
double | pregqbar_ |
The prefactor, ![]() ![]() | |
vector< double > | prefactor_ |
The prefactors as a vector for easy use. | |
vector< tcBeamPtr > | beams_ |
Properties of the incoming particles. | |
vector< tcPDPtr > | partons_ |
Pointers to the ParticleDataObjects for the partons. | |
double | yh_ |
Properties of the boson and jets. | |
Energy | mass_ |
The mass of the Higgs boson. | |
double | yj_ |
the rapidity of the jet | |
Energy | pt_ |
The transverse momentum of the jet. | |
tcPDPtr | out_ |
The outgoing parton. | |
Static Private Attributes | |
static ClassDescription < MEPP2Higgs > | initMEPP2Higgs |
The static object used to initialize the description of this class. | |
static const complex< Energy2 > | epsi_ |
Small complex number to regularize some integrals. |
The MEPP2Higgs class implements the matrix element for the process pp->Higgs with different Higgs shape prescriptions (see details in hep-ph/9505211) and the NLL corrected Higgs width (see details in the FORTRAN HERWIG manual).
Definition at line 38 of file MEPP2Higgs.h.
bool Herwig::MEPP2Higgs::applyHard | ( | ShowerParticleVector | gluons, |
vector< tcBeamPtr > | beams, | ||
PPtr | higgs, | ||
unsigned int & | iemit, | ||
unsigned int & | itype, | ||
vector< Lorentz5Momentum > & | pnew, | ||
pair< double, double > & | xnew, | ||
tPDPtr & | out | ||
) | [protected] |
Return the momenta and type of hard matrix element correction.
gluons | The original incoming particles. |
beams | The BeamParticleData objects |
higgs | The original outgoing higgs |
iemit | Whether the first (0) or second (1) particle emitted the radiation |
itype | The type of radiated particle (0 is gluon, 1 is quark and 2 is antiquark) |
pnew | The momenta of the new particles |
xnew | The new values of the momentuym fractions |
out | The ParticleData object for the outgoing parton |
Complex Herwig::MEPP2Higgs::B | ( | Energy2 | s, |
Energy2 | mf2 | ||
) | const [protected] |
Members to calculate the functions for the loop diagrams.
The function of NBP339 (1990) 38-66
s | The scale |
mf2 | The fermion mass squared. |
complex<InvEnergy2> Herwig::MEPP2Higgs::C | ( | Energy2 | s, |
Energy2 | mf2 | ||
) | const [protected] |
The function of NBP339 (1990) 38-66.
s | The scale |
mf2 | The fermion mass squared. |
virtual IBPtr Herwig::MEPP2Higgs::clone | ( | ) | const [inline, protected, virtual] |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
Reimplemented in Herwig::MEPP2HiggsPowheg.
Definition at line 217 of file MEPP2Higgs.h.
virtual Selector<const ColourLines *> Herwig::MEPP2Higgs::colourGeometries | ( | tcDiagPtr | diag | ) | const [virtual] |
Return a Selector with possible colour geometries for the selected diagram weighted by their relative probabilities.
diag | the diagram chosen. |
Implements ThePEG::MEBase.
complex<InvEnergy4> Herwig::MEPP2Higgs::D | ( | Energy2 | s, |
Energy2 | t, | ||
Energy2 | u, | ||
Energy2 | mf2 | ||
) | const [protected] |
The function of NBP339 (1990) 38-66.
s | The ![]() |
t | The ![]() |
u | The ![]() |
mf2 | The fermion mass squared |
virtual Selector<DiagramIndex> Herwig::MEPP2Higgs::diagrams | ( | const DiagramVector & | dv | ) | const [virtual] |
Get diagram selector.
With the information previously supplied with the setKinematics method, a derived class may optionally override this method to weight the given diagrams with their (although certainly not physical) relative probabilities.
dv | the diagrams to be weighted. |
Reimplemented from ThePEG::MEBase.
Complex Herwig::MEPP2Higgs::dIntegral | ( | Energy2 | a, |
Energy2 | b, | ||
double | y0 | ||
) | const [protected] |
The integral from NBP339 (1990) 38-66.
a | The parameter ![]() |
b | The parameter ![]() |
y0 | The parameter ![]() |
virtual void Herwig::MEPP2Higgs::dofinish | ( | ) | [protected, virtual] |
Finalize this object.
Called in the run phase just after a run has ended. Used eg. to write out statistics.
Reimplemented from ThePEG::InterfacedBase.
virtual void Herwig::MEPP2Higgs::doinit | ( | ) | [protected, virtual] |
Initialize this object after the setup phase before saving an EventGenerator to disk.
InitException | if object could not be initialized properly. |
Reimplemented from ThePEG::InterfacedBase.
virtual CrossSection Herwig::MEPP2Higgs::dSigHatDR | ( | ) | const [virtual] |
Return the matrix element for the kinematical configuation previously provided by the last call to setKinematics().
Uses me().
Reimplemented from Herwig::HwMEBase.
virtual IBPtr Herwig::MEPP2Higgs::fullclone | ( | ) | const [inline, protected, virtual] |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
Reimplemented in Herwig::MEPP2HiggsPowheg.
Definition at line 223 of file MEPP2Higgs.h.
virtual bool Herwig::MEPP2Higgs::generateKinematics | ( | const double * | r | ) | [virtual] |
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
To help the phase space generator, the dSigHatDR should be a smooth function of these numbers, although this is not strictly necessary.
r | a pointer to the first of nDim() consecutive random numbers. |
Reimplemented from Herwig::HwMEBase.
Reimplemented in Herwig::MEPP2HiggsPowheg.
bool Herwig::MEPP2Higgs::getEvent | ( | vector< Lorentz5Momentum > & | pnew, |
int & | emissiontype | ||
) | [protected] |
generates the hardest emission (yj,p)
pnew | The momenta of the new particles |
emissiontype | The type of emission, as for getResult |
double Herwig::MEPP2Higgs::getResult | ( | int | emis_type, |
Energy | pt, | ||
double | yj, | ||
tcPDPtr & | outParton | ||
) | [protected] |
Returns the matrix element for a given type of process, rapidity of the jet and transverse momentum
.
emis_type | the type of emission, (0 is ![]() ![]() ![]() |
pt | The transverse momentum of the jet |
yj | The rapidity of the jet |
outParton | the outgoing parton |
double Herwig::MEPP2Higgs::ggME | ( | vector< VectorWaveFunction > | g1, |
vector< VectorWaveFunction > | g2, | ||
ScalarWaveFunction & | , | ||
bool | calc | ||
) | const [private] |
Members to return the matrix elements for the different subprocesses.
Calculates the matrix element for the process g,g->h (via quark loops)
g1 | a vector of wave functions of the first incoming gluon |
g2 | a vector of wave functions of the second incoming gluon |
calc | Whether or not to calculate the matrix element for spin correlations |
static void Herwig::MEPP2Higgs::Init | ( | ) | [static] |
The standard Init function used to initialize the interfaces.
Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.
Reimplemented from Herwig::HwMEBase.
Reimplemented in Herwig::MEPP2HiggsPowheg.
Energy4 Herwig::MEPP2Higgs::loME | ( | ) | const [protected] |
Members to calculate the real emission matrix elements.
The leading-order matrix element for
complex<Energy> Herwig::MEPP2Higgs::me1 | ( | Energy2 | s, |
Energy2 | t, | ||
Energy2 | u, | ||
Energy2 | mf2, | ||
unsigned int | i, | ||
unsigned int | j, | ||
unsigned int | k, | ||
unsigned int | i1, | ||
unsigned int | j1, | ||
unsigned int | k1 | ||
) | const [protected] |
The matrix element of NBP339 (1990) 38-66.
s | The ![]() |
t | The ![]() |
u | The ![]() |
mf2 | The fermion mass squared. |
i | Which of the stored values to use for ![]() |
j | Which of the stored values to use for ![]() |
k | Which of the stored values to use for ![]() |
i1 | Which of the stored values to use for ![]() |
j1 | Which of the stored values to use for ![]() |
k1 | Which of the stored values to use for ![]() |
virtual double Herwig::MEPP2Higgs::me2 | ( | ) | const [virtual] |
The matrix element for the kinematical configuration previously provided by the last call to setKinematics(), suitably scaled by sHat() to give a dimension-less number.
Implements ThePEG::MEBase.
Reimplemented in Herwig::MEPP2HiggsPowheg.
complex<Energy> Herwig::MEPP2Higgs::me2 | ( | Energy2 | s, |
Energy2 | t, | ||
Energy2 | u, | ||
Energy2 | mf2 | ||
) | const [protected] |
The matrix element of NBP339 (1990) 38-66.
s | The ![]() |
t | The ![]() |
u | The ![]() |
mf2 | The fermion mass squared. |
MEPP2Higgs& Herwig::MEPP2Higgs::operator= | ( | const MEPP2Higgs & | ) | [private] |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
void Herwig::MEPP2Higgs::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. |
Reimplemented from Herwig::HwMEBase.
Reimplemented in Herwig::MEPP2HiggsPowheg.
void Herwig::MEPP2Higgs::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
Reimplemented from Herwig::HwMEBase.
Reimplemented in Herwig::MEPP2HiggsPowheg.
double Herwig::MEPP2Higgs::qqME | ( | vector< SpinorWaveFunction > & | fin, |
vector< SpinorBarWaveFunction > & | ain, | ||
ScalarWaveFunction & | , | ||
bool | calc | ||
) | const [private] |
Calculates the matrix element for the process q,qbar->h.
fin | a vector of quark spinors |
ain | a vector of anti-quark spinors |
calc | Whether or not to calculate the matrix element for spin correlations |
virtual bool Herwig::MEPP2Higgs::softMatrixElementVeto | ( | ShowerProgenitorPtr | initial, |
ShowerParticlePtr | parent, | ||
Branching | br | ||
) | [virtual] |
Apply the soft matrix element correction.
initial | The particle from the hard process which started the shower |
parent | The initial particle in the current branching |
br | The branching struct |
Reimplemented from Herwig::HwMEBase.
vector<tcBeamPtr> Herwig::MEPP2Higgs::beams_ [private] |
Properties of the incoming particles.
Pointers to the BeamParticleData objects
Definition at line 660 of file MEPP2Higgs.h.
Complex Herwig::MEPP2Higgs::bi_[5] [mutable, private] |
ClassDescription<MEPP2Higgs> Herwig::MEPP2Higgs::initMEPP2Higgs [static, private] |
The static object used to initialize the description of this class.
Indicates that this is a concrete class with persistent data.
Definition at line 392 of file MEPP2Higgs.h.
unsigned int Herwig::MEPP2Higgs::minLoop_ [private] |
Stuff for the ME correction.
Parameters for the evaluation of the loops for the matrix elements Minimum flavour of quarks to include in the loops
Definition at line 504 of file MEPP2Higgs.h.
double Herwig::MEPP2Higgs::power_ [private] |
Constants for the sampling.
The distribution is assumed to have the form The power,
, for the sampling
Definition at line 625 of file MEPP2Higgs.h.
double Herwig::MEPP2Higgs::yh_ [private] |
Properties of the boson and jets.
The rapidity of the Higgs boson
Definition at line 675 of file MEPP2Higgs.h.