File: SplitFun1to2.h
Description:
This is an abstract class which defines the common interface
for all 1->2 splitting functions, both for Initial State
and Final State radiation.
See
also:
namespace Herwig
CLASS
SplitFun1to2:
Base class:
Public members:
inline SplitFun1to2();
inline SplitFun1to2(const SplitFun1to2 &);
virtual ~SplitFun1to2();
Standard ctors and dtor.
inline SplitFun1to2( const ShowerIndex::InteractionType interaction,
const long inputIdEmitter, const Energy inputMassEmitter,
const long inputIdFirstProduct, const Energy inputMassFirstProduct,
const long inputIdSecondProduct, const Energy inputMassSecondProduct );
It Specifies the interaction type (QCD,QED,EWK,...) of the vertex
A -> B + C, the PDG id for the emitter (A),
its mass, the ids of the two emission products (B and C).
and their masses.
inline long idFirstProduct() const;
inline Energy massFirstProduct() const;
inline long idSecondProduct() const;
inline Energy massSecondProduct() const;
PDG ids and masses of the two emission products.
virtual double fullFun( const double z, const Energy2 qtilde2,
const double phi ) = 0;
virtual double integratedFun( const double z, const Energy2 qtilde2 ) = 0;
virtual double fullFunWithHelicities( const double z,
const Energy2 qtilde2,
const double phi,
const int h0, const int h1,
const int h2 ) = 0;
virtual double integratedFunWithHelicities( const double z,
const Energy2 qtilde2,
const int h0, const int h1,
const int h2 ) = 0;
Pure virtual methods, that must be provided by the derived
classes, which return the exact values of the splitting function
0 -> 1 + 2 evaluated in terms of some combinations of:
z variable, phi azimuthal angle, helicities
of the three particles. Notice that, to be more general, the
returned value is complex, although for standard QCD it is indeed
real.
virtual double overestimateFullFun( const double z, const double phi );
virtual double overestimateIntegratedFun( const double z );
virtual double overestimateFullFunWithHelicities( const double z, const double phi,
const int h0, const int h1, const int h2 );
virtual double overestimateIntegratedFunWithHelicities( const double z,
const int h0, const int h1, const int h2 );
Virtual methods that could be overrided in a derived class in the
case it is known some approximate expressions for the exact
expressions of the splitting function (the ones provided by the
pure virtual methods above), and such that the former are always
above than the latter: | overestimateXXX(...) | >= |
XXX(...) |. The default definition of overestimateXXX(...)
simply returns XXX(...). Notice that we left the overestimated
functions and hence their integrals and inverses not depend on
qtilde2 since these are supposed to be as simple as possible.
virtual double integOverIntegratedFun(const double z);
virtual double invIntegOverIntegratedFun(const double r);
The indefinite integral of the overestimated splitting function
overestimateIntegratedFun(z) and its inverse.
virtual void colourConnection( const ShoColinePair & parentShoColinePair,
ShoColinePair & firstProductShoColinePair,
ShoColinePair & secondProductShoColinePair );
The default definition of this method does nothing.
However, splitting functions which derive from this
class and that involve coloured particles should override
this method, in order to provide the proper colour connection
between the emitting parent and the branching products.
More precisely, the first argument is a pair of pointers to
ShowerColourLine objects, which are associated with,
respectively, the colour (first element of the pair) and
anticolour (second element of the pair) of the emitting particle.
The other two arguments of the method are also pair of pointers
to ShowerColourLine objects, for respectively the two
branching products. Again, for each pair, the first element
is associated with the colour line and the second element
is associated with the anticolur line.
The ShowerColourLine objects pointed by any of the
two elements of both pairs can be either one of object pointerd
by the radiating parent, or can be a new one (and because of that,
the pointers must be reference counted, not transient).
We prefer to use ShowerColourLine in this method
rather than ShowerParticles for two reason: first,
there is no coupling between SplitFun1to2 class
(and its derived classes) and the ShowerParticle class;
and second, we avoid to repeat for each type of splitting
function the same operation of setting the color lines to
proper particles.
Private members:
SplitFun1to2 & operator=(const SplitFun1to2 &);
Private and non-existent assignment operator.
long _id1;
Energy _m1;
long _id2;
Energy _m2;
DEFINED MACROS
INCLUDED FILES
SplitFun.h
ThePEG/PDT/ParticleData.h
ThePEG/PDT/EnumParticles.h
ThePEG/EventRecord/ColourLine.h
SplitFun1to2.icc