herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
Herwig::ThreeBodyAllOnCalculator< T > Class Template Reference

The ThreeBodyAllOnCalculator class is designed to integrate a three-body matrix element in which all the outgoing particles are on-shell to give the partial width. More...

#include <ThreeBodyAllOnCalculator.h>

Inheritance diagram for Herwig::ThreeBodyAllOnCalculator< T >:

Classes

struct  Outer
 The class for the outer integrand of the integral of a three body decay matrix element. More...
 

Public Types

typedef Energy2 ArgType
 Argument type for the GSLIntegrator.
 
typedef Energy2 ValType
 Return type for the GSLIntegrator.
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 

Public Member Functions

 ThreeBodyAllOnCalculator (vector< double > inweights, vector< int > intype, vector< Energy > inmass, vector< Energy > inwidth, vector< double > inpow, T inme, int mode, Energy m1, Energy m2, Energy m3, double relerr=1e-3)
 Constructor with all the parameters. More...
 
Energy partialWidth (Energy2 q2) const
 calculate the width for a given mass More...
 
void resetMass (int imass, Energy mass)
 Get the mass of one of the decay products. More...
 
Energy getMass (const int imass) const
 Get the mass of one of the decay products. More...
 
Energy otherMass (const int imass) const
 Get the masses of all bar the one specified. More...
 
Energy2 operator() (Energy2 argument) const
 The integrand for the inner integrand. More...
 
- Public Member Functions inherited from Herwig::WidthCalculatorBase
virtual ~WidthCalculatorBase ()
 Destructor.
 
- Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted
CounterType referenceCount () const
 

Protected Member Functions

void outerVariables (double x, Energy2 &low, Energy2 &upp) const
 shift the variables for the outer integrand and give limits for the inner one. More...
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 

Private Member Functions

ThreeBodyAllOnCalculatoroperator= (const ThreeBodyAllOnCalculator &)=delete
 Private and non-existent assignment operator.
 

Private Attributes

vector< double > _channelweights
 weights for the different channels
 
vector< int > _channeltype
 the types for the different channels
 
vector< Energy > _channelmass
 the mass of the resonance for a given channel
 
vector< Energy > _channelwidth
 the width of the resonance for a given channel
 
vector< double > _channelpower
 the power for power-law smoothing for a given channel
 
_theME
 Function giving the matrix element as a function of s12,s13,s23.
 
int _mode
 The mode.
 
int _thechannel
 the channel currently being integrated
 
vector< int > _mapping
 The mapping currently in used.
 
Energy2 _souter
 the value of s for the outer integral
 
vector< Energy > _m
 masses of the external particles
 
vector< Energy2 > _m2
 mass squareds of the external particles
 
GSLIntegrator _integrator
 member to do the integration
 
double _relerr
 Relative error for the integration.
 

Friends

struct ThreeBodyAllOnOuter
 The ThreeBodyAllOnOuter class is a friend so it can access the private members and perform the integral.
 

Additional Inherited Members

- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 

Detailed Description

template<class T>
class Herwig::ThreeBodyAllOnCalculator< T >

The ThreeBodyAllOnCalculator class is designed to integrate a three-body matrix element in which all the outgoing particles are on-shell to give the partial width.

A multi-channel type approach is used together with a GSL integration subroutine.

See also
GSLIntegrator
ThreeBodyAllOnOuter
ThreeBodyAllOnIner

Definition at line 22 of file ThreeBodyAllOnCalculator.h.

Constructor & Destructor Documentation

◆ ThreeBodyAllOnCalculator()

template<class T >
Herwig::ThreeBodyAllOnCalculator< T >::ThreeBodyAllOnCalculator ( vector< double >  inweights,
vector< int >  intype,
vector< Energy >  inmass,
vector< Energy >  inwidth,
vector< double >  inpow,
inme,
int  mode,
Energy  m1,
Energy  m2,
Energy  m3,
double  relerr = 1e-3 
)
inline

Constructor with all the parameters.

Parameters
inweightsThe weights for the different integration channels
intypeThe types of the different integration channels.
inmassThe mass for the Jacobian for the different channels.
inwidthThe width for the Jacobian for the different channels.
inpowthe power for power-law smoothing for a given channel
inmeThe pointer to the function which gives the matrix element.
modeThe mode to be integrated
m1The mass of the first particle.
m2The mass of the second particle.
m3The mass of the third particle.

Definition at line 105 of file ThreeBodyAllOnCalculator.h.

References sqr(), and ZERO.

Member Function Documentation

◆ getMass()

template<class T >
Energy Herwig::ThreeBodyAllOnCalculator< T >::getMass ( const int  imass) const
inlinevirtual

Get the mass of one of the decay products.

This must be implemented in classes inheriting from this one.

Parameters
imassThe mass required.
Returns
The mass required.

Implements Herwig::WidthCalculatorBase.

Definition at line 151 of file ThreeBodyAllOnCalculator.h.

◆ operator()()

template<class T >
Energy2 Herwig::ThreeBodyAllOnCalculator< T >::operator() ( Energy2  argument) const

The integrand for the inner integrand.

Parameters
argumentThe mass squared for the inner integral
Returns
The value of the inner integrand.

◆ otherMass()

template<class T >
Energy Herwig::ThreeBodyAllOnCalculator< T >::otherMass ( const int  imass) const
inlinevirtual

Get the masses of all bar the one specified.

Used to get the limits for integration.

Parameters
imassThe particle not needed
Returns
The sum of the other masses.

Implements Herwig::WidthCalculatorBase.

Definition at line 162 of file ThreeBodyAllOnCalculator.h.

◆ outerVariables()

template<class T >
void Herwig::ThreeBodyAllOnCalculator< T >::outerVariables ( double  x,
Energy2 &  low,
Energy2 &  upp 
) const
protected

shift the variables for the outer integrand and give limits for the inner one.

This member sets the value of the _souter member for the mass squared of the outer integral and calculates the limits on the mass squared of the inner integral.

Parameters
xThe integration variable
lowThe lower limit for the inner integral.
uppThe upper limit for the inner integral.

◆ partialWidth()

template<class T >
Energy Herwig::ThreeBodyAllOnCalculator< T >::partialWidth ( Energy2  q2) const
virtual

calculate the width for a given mass

Parameters
q2The mass squared of the decaying particle.
Returns
The partial width.

Implements Herwig::WidthCalculatorBase.

◆ resetMass()

template<class T >
void Herwig::ThreeBodyAllOnCalculator< T >::resetMass ( int  imass,
Energy  mass 
)
inlinevirtual

Get the mass of one of the decay products.

This must be implemented in classes inheriting from this one.

Parameters
imassThe mass required.
massThe new value.
Returns
The mass required.

Implements Herwig::WidthCalculatorBase.

Definition at line 139 of file ThreeBodyAllOnCalculator.h.


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