Herwig
7.2.1
|
This is an abstract class which defines the common interface for all splitting functions, for both initial-state and final-state radiation. More...
#include <SplittingFunction.h>
Public Member Functions | |
SplittingFunction () | |
The default constructor. More... | |
virtual bool | accept (const IdList &ids) const =0 |
Purely virtual method which should determine whether this splitting function can be used for a given set of particles. More... | |
virtual bool | checkColours (const IdList &ids) const |
Method to check the colours are correct. | |
virtual void | colourConnection (tShowerParticlePtr parent, tShowerParticlePtr first, tShowerParticlePtr second, ShowerPartnerType partnerType, const bool back) const |
Purely virtual method which should make the proper colour connection between the emitting parent and the branching products. More... | |
virtual vector< pair< int, Complex > > | generatePhiForward (const double z, const Energy2 t, const IdList &ids, const RhoDMatrix &)=0 |
Method to calculate the azimuthal angle for forward evolution. More... | |
virtual vector< pair< int, Complex > > | generatePhiBackward (const double z, const Energy2 t, const IdList &ids, const RhoDMatrix &)=0 |
Method to calculate the azimuthal angle for backward evolution. More... | |
virtual DecayMEPtr | matrixElement (const double z, const Energy2 t, const IdList &ids, const double phi, bool timeLike)=0 |
Calculate the matrix element for the splitting. More... | |
bool | angularOrdered () const |
Whether or not the interaction is angular ordered. | |
bool | pTScale () const |
Scale choice. | |
ShowerInteraction | interactionType () const |
Methods to return the interaction type and order for the splitting function. More... | |
ColourStructure | colourStructure () const |
Return the colour structure. | |
double | colourFactor (const IdList &ids) const |
Return the colour factor. | |
virtual double | P (const double z, const Energy2 t, const IdList &ids, const bool mass, const RhoDMatrix &rho) const =0 |
Methods to return the splitting function. More... | |
virtual double | overestimateP (const double z, const IdList &ids) const =0 |
Purely virtual method which should return an overestimate of the splitting function, such that the result . More... | |
virtual double | ratioP (const double z, const Energy2 t, const IdList &ids, const bool mass, const RhoDMatrix &rho) const =0 |
Purely virtual method which should return the ratio of the splitting function to the overestimate, i.e. More... | |
virtual double | integOverP (const double z, const IdList &ids, unsigned int PDFfactor=0) const =0 |
Purely virtual method which should return the indefinite integral of the overestimated splitting function, . More... | |
virtual double | invIntegOverP (const double r, const IdList &ids, unsigned int PDFfactor=0) const =0 |
Purely virtual method which should return the inverse of the indefinite integral of the overestimated splitting function, which is used to generate the value of . More... | |
void | evaluateFinalStateScales (ShowerPartnerType type, Energy scale, double z, tShowerParticlePtr parent, tShowerParticlePtr first, tShowerParticlePtr second) |
Functions to state scales after branching happens. More... | |
void | evaluateInitialStateScales (ShowerPartnerType type, Energy scale, double z, tShowerParticlePtr parent, tShowerParticlePtr first, tShowerParticlePtr second) |
Sort out scales for initial-state emission. | |
void | evaluateDecayScales (ShowerPartnerType type, Energy scale, double z, tShowerParticlePtr parent, tShowerParticlePtr first, tShowerParticlePtr second) |
Sort out scales for decay emission. | |
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... | |
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 IBPtr | fullclone () const |
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 () |
The standard Init function used to initialize the interfaces. More... | |
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 | colourFactor (double in) |
Set the colour factor. | |
Standard Interfaced functions. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an 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 | |
virtual IBPtr | clone () const=0 |
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 &) | |
ReferenceCounted & | operator= (const 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) |
Private Member Functions | |
SplittingFunction & | operator= (const SplittingFunction &)=delete |
The assignment operator is private and must never be called. More... | |
Private Attributes | |
ShowerInteraction | _interactionType |
The interaction type for the splitting function. | |
ColourStructure | _colourStructure |
The colour structure. | |
double | _colourFactor |
The colour factor. | |
bool | angularOrdered_ |
Whether or not this interaction is angular-ordered. | |
unsigned int | scaleChoice_ |
The choice of scale. | |
bool | strictAO_ |
Enforce strict AO. | |
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) |
This is an abstract class which defines the common interface for all splitting functions, for both initial-state and final-state radiation.
The SplittingFunction class contains a number of purely virtual members which must be implemented in the inheriting classes. The class also stores the interaction type of the spltting function.
The inheriting classes need to specific the splitting function , in terms of the energy fraction and the evolution scale. In order to allow the splitting functions to be used with different choices of evolution functions the scale is given by
where is the virtuality of the branching particle, $p_T$ is the relative transverse momentum of the branching products and is the angular variable described in hep-ph/0310083.
In addition an overestimate of the splitting function, which only depends upon , the integral, inverse of the integral for this overestimate and ratio of the true splitting function to the overestimate must be provided as they are necessary for the veto alogrithm used to implement the evolution.
Definition at line 68 of file SplittingFunction.h.
|
inline |
The default constructor.
b | All splitting functions must have an interaction order |
Definition at line 76 of file SplittingFunction.h.
|
pure virtual |
Purely virtual method which should determine whether this splitting function can be used for a given set of particles.
ids | The PDG codes for the particles in the splitting. |
Implemented in Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::OneHalfHalfSplitFn, Herwig::HalfOneHalfSplitFn, and Herwig::ZeroZeroOneSplitFn.
|
virtual |
Purely virtual method which should make the proper colour connection between the emitting parent and the branching products.
parent | The parent for the branching |
first | The first branching product |
second | The second branching product |
partnerType | The type of evolution partner |
back | Whether this is foward or backward evolution. |
|
protectedvirtual |
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.
Reimplemented in Herwig::CMWHalfHalfOneSplitFn, and Herwig::CMWOneOneOneSplitFn.
Referenced by Herwig::CMWOneOneOneSplitFn::doinit(), and Herwig::CMWHalfHalfOneSplitFn::doinit().
void Herwig::SplittingFunction::evaluateFinalStateScales | ( | ShowerPartnerType | type, |
Energy | scale, | ||
double | z, | ||
tShowerParticlePtr | parent, | ||
tShowerParticlePtr | first, | ||
tShowerParticlePtr | second | ||
) |
Functions to state scales after branching happens.
Sort out scales for final-state emission
|
pure virtual |
Method to calculate the azimuthal angle for backward evolution.
z | The energy fraction |
t | The scale . |
ids | The PDG codes for the particles in the splitting. |
Implemented in Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneSplitFn, Herwig::ZeroZeroOneSplitFn, Herwig::HalfHalfOneSplitFn, and Herwig::HalfOneHalfSplitFn.
|
pure virtual |
Method to calculate the azimuthal angle for forward evolution.
z | The energy fraction |
t | The scale . |
ids | The PDG codes for the particles in the splitting. |
The | azimuthal angle, . |
Implemented in Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfOneHalfSplitFn, and Herwig::ZeroZeroOneSplitFn.
|
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.
|
pure virtual |
Purely virtual method which should return the indefinite integral of the overestimated splitting function, .
z | The energy fraction. |
ids | The PDG codes for the particles in the splitting. |
PDFfactor | Which additional factor to include for the PDF 0 is no additional factor, 1 is , 2 is and 3 is |
Implemented in Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfOneHalfSplitFn, and Herwig::ZeroZeroOneSplitFn.
|
inline |
Methods to return the interaction type and order for the splitting function.
Return the type of the interaction
Definition at line 90 of file SplittingFunction.h.
|
pure virtual |
Purely virtual method which should return the inverse of the indefinite integral of the overestimated splitting function, which is used to generate the value of .
r | Value of the splitting function to be inverted |
ids | The PDG codes for the particles in the splitting. |
PDFfactor | Which additional factor to include for the PDF 0 is no additional factor, 1 is , 2 is and 3 is |
Implemented in Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfOneHalfSplitFn, and Herwig::ZeroZeroOneSplitFn.
|
pure virtual |
Calculate the matrix element for the splitting.
z | The energy fraction |
t | The scale . |
ids | The PDG codes for the particles in the splitting. |
phi | The azimuthal angle, . |
timeLike | Whether timelike or spacelike, affects inclusive of mass terms |
Implemented in Herwig::OneHalfHalfSplitFn, Herwig::ZeroZeroOneSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneSplitFn, Herwig::HalfHalfOneSplitFn, and Herwig::HalfOneHalfSplitFn.
|
privatedelete |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
|
pure virtual |
Purely virtual method which should return an overestimate of the splitting function, such that the result .
This function should be simple enough that it does not depend on the evolution scale.
z | The energy fraction. |
ids | The PDG codes for the particles in the splitting. |
Implemented in Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfOneHalfSplitFn, and Herwig::ZeroZeroOneSplitFn.
|
pure virtual |
Methods to return the splitting function.
Purely virtual method which should return the exact value of the splitting function, evaluated in terms of the energy fraction, , and the evolution scale .
z | The energy fraction. |
t | The scale . |
ids | The PDG codes for the particles in the splitting. |
mass | Whether or not to include the mass dependent terms |
Implemented in Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::OneHalfHalfSplitFn, Herwig::HalfOneHalfSplitFn, Herwig::ZeroZeroOneSplitFn, Herwig::CMWHalfHalfOneSplitFn, and Herwig::CMWOneOneOneSplitFn.
void Herwig::SplittingFunction::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::SplittingFunction::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
pure virtual |
Purely virtual method which should return the ratio of the splitting function to the overestimate, i.e.
.
z | The energy fraction. |
t | The scale . |
ids | The PDG codes for the particles in the splitting. |
mass | Whether or not to include the mass dependent terms |
Implemented in Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfOneHalfSplitFn, Herwig::ZeroZeroOneSplitFn, Herwig::CMWHalfHalfOneSplitFn, and Herwig::CMWOneOneOneSplitFn.