Herwig 7.3.0
|
This is an abstract class which defines the common interface for all \(1\to2\) splitting functions, for both initial-state and final-state radiation. More...
#include <SplittingFunction.h>
Public Member Functions | |
SplittingFunction () | |
The default constructor. | |
ShowerInteraction | interactionType () const |
Methods to return the interaction type and order for the splitting function. | |
ColourStructure | colourStructure () const |
Return the colour structure. | |
double | colourFactor (const IdList &ids) const |
Return the colour factor. | |
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. | |
virtual bool | checkColours (const IdList &ids) const |
Method to check the colours are correct. | |
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. | |
virtual double | overestimateP (const double z, const IdList &ids) const =0 |
Purely virtual method which should return an overestimate of the splitting function, \(P_{\rm over}\) such that the result \(P_{\rm over}\geq P\). | |
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. | |
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, \(P_{\rm over}\). | |
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, \(P_{\rm over}\) which is used to generate the value of \(z\). | |
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. | |
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. | |
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. | |
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. | |
bool | angularOrdered () const |
Whether or not the interaction is angular ordered. | |
bool | pTScale () const |
Scale choice. | |
void | evaluateFinalStateScales (ShowerPartnerType type, Energy scale, double z, tShowerParticlePtr parent, tShowerParticlePtr first, tShowerParticlePtr second) |
Functions to state scales after branching happens. | |
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. | |
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 |
Standard Interfaced functions. | |
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. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
void | colourFactor (double in) |
Set the colour factor. | |
SplittingFunction & | operator= (const SplittingFunction &)=delete |
The assignment operator is private and must never be called. | |
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 () |
The standard Init function used to initialize the interfaces. | |
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 |
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) |
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 \(1\to2\) 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 \(P(z,2p_j\cdot p_k)\), in terms of the energy fraction \(z\) 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
\[2p_j\cdot p_k=(p_j+p_k)^2-m_{jk}^2=Q^2-(p_j+p_k)^2=z(1-z)\tilde{q}^2= \frac{p_T^2}{z(1-z)}-m_{jk}^2+\frac{m_j^2}{z}+\frac{m_k^2}{1-z},\]
where \(Q^2\) is the virtuality of the branching particle, $p_T$ is the relative transverse momentum of the branching products and \(\tilde{q}^2\) is the angular variable described in hep-ph/0310083.
In addition an overestimate of the splitting function, \(P_{\rm over}(z)\) which only depends upon \(z\), 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::HalfHalfOneEWSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfHalfZeroEWSplitFn, Herwig::HalfOneHalfSplitFn, Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneEWSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneQEDSplitFn, Herwig::OneOneOneSplitFn, Herwig::OneOneZeroEWSplitFn, and Herwig::ZeroZeroOneSplitFn.
|
inline |
Whether or not the interaction is angular ordered.
Definition at line 262 of file SplittingFunction.h.
References angularOrdered_.
|
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. |
|
inline |
Return the colour factor.
Definition at line 100 of file SplittingFunction.h.
References _colourFactor, _colourStructure, and ThePEG::sqr().
|
inlineprotected |
Set the colour factor.
Definition at line 345 of file SplittingFunction.h.
References _colourFactor.
|
inline |
Return the colour structure.
Definition at line 95 of file SplittingFunction.h.
References _colourStructure.
|
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, Herwig::CMWOneOneOneSplitFn, Herwig::HalfHalfOneEWSplitFn, Herwig::HalfHalfZeroEWSplitFn, Herwig::OneOneOneEWSplitFn, Herwig::OneOneOneQEDSplitFn, and Herwig::OneOneZeroEWSplitFn.
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 \(t=2p_j\cdot p_k\). |
ids | The PDG codes for the particles in the splitting. |
Implemented in Herwig::HalfHalfOneEWSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfHalfZeroEWSplitFn, Herwig::HalfOneHalfSplitFn, Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneEWSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneQEDSplitFn, Herwig::OneOneOneSplitFn, Herwig::OneOneZeroEWSplitFn, and Herwig::ZeroZeroOneSplitFn.
|
pure virtual |
Method to calculate the azimuthal angle for forward evolution.
z | The energy fraction |
t | The scale \(t=2p_j\cdot p_k\). |
ids | The PDG codes for the particles in the splitting. |
The | azimuthal angle, \(\phi\). |
Implemented in Herwig::HalfHalfOneEWSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfHalfZeroEWSplitFn, Herwig::HalfOneHalfSplitFn, Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneEWSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneQEDSplitFn, Herwig::OneOneOneSplitFn, Herwig::OneOneZeroEWSplitFn, 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, \(P_{\rm over}\).
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 \(1/z\), 2 is \(1/(1-z)\) and 3 is \(1/z/(1-z)\) |
Implemented in Herwig::HalfHalfOneEWSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfHalfZeroEWSplitFn, Herwig::HalfOneHalfSplitFn, Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneEWSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneQEDSplitFn, Herwig::OneOneOneSplitFn, Herwig::OneOneZeroEWSplitFn, 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.
References _interactionType.
|
pure virtual |
Purely virtual method which should return the inverse of the indefinite integral of the overestimated splitting function, \(P_{\rm over}\) which is used to generate the value of \(z\).
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 \(1/z\), 2 is \(1/(1-z)\) and 3 is \(1/z/(1-z)\) |
Implemented in Herwig::HalfHalfOneEWSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfHalfZeroEWSplitFn, Herwig::HalfOneHalfSplitFn, Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneEWSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneQEDSplitFn, Herwig::OneOneOneSplitFn, Herwig::OneOneZeroEWSplitFn, and Herwig::ZeroZeroOneSplitFn.
|
pure virtual |
Calculate the matrix element for the splitting.
z | The energy fraction |
t | The scale \(t=2p_j\cdot p_k\). |
ids | The PDG codes for the particles in the splitting. |
phi | The azimuthal angle, \(\phi\). |
timeLike | Whether timelike or spacelike, affects inclusive of mass terms |
Implemented in Herwig::HalfHalfOneEWSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfHalfZeroEWSplitFn, Herwig::HalfOneHalfSplitFn, Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneEWSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneQEDSplitFn, Herwig::OneOneOneSplitFn, Herwig::OneOneZeroEWSplitFn, and Herwig::ZeroZeroOneSplitFn.
|
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, \(P_{\rm over}\) such that the result \(P_{\rm over}\geq P\).
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::HalfHalfOneEWSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfHalfZeroEWSplitFn, Herwig::HalfOneHalfSplitFn, Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneEWSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneQEDSplitFn, Herwig::OneOneOneSplitFn, Herwig::OneOneZeroEWSplitFn, and Herwig::ZeroZeroOneSplitFn.
|
pure virtual |
Methods to return the splitting function.
Purely virtual method which should return the exact value of the splitting function, \(P\) evaluated in terms of the energy fraction, \(z\), and the evolution scale \(\tilde{q}^2\).
z | The energy fraction. |
t | The scale \(t=2p_j\cdot p_k\). |
ids | The PDG codes for the particles in the splitting. |
mass | Whether or not to include the mass dependent terms |
rho | The spin density matrix |
Implemented in Herwig::ZeroZeroOneSplitFn, Herwig::CMWHalfHalfOneSplitFn, Herwig::CMWOneOneOneSplitFn, Herwig::HalfHalfOneEWSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfHalfZeroEWSplitFn, Herwig::HalfOneHalfSplitFn, Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneEWSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneQEDSplitFn, Herwig::OneOneOneSplitFn, and Herwig::OneOneZeroEWSplitFn.
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. |
|
inline |
Scale choice.
Definition at line 267 of file SplittingFunction.h.
References angularOrdered_, and scaleChoice_.
|
pure virtual |
Purely virtual method which should return the ratio of the splitting function to the overestimate, i.e.
\(P(z,\tilde{q}^2)/P_{\rm over}(z)\).
z | The energy fraction. |
t | The scale \(t=2p_j\cdot p_k\). |
ids | The PDG codes for the particles in the splitting. |
mass | Whether or not to include the mass dependent terms |
rho | The spin density matrix |
Implemented in Herwig::ZeroZeroOneSplitFn, Herwig::CMWHalfHalfOneSplitFn, Herwig::CMWOneOneOneSplitFn, Herwig::HalfHalfOneEWSplitFn, Herwig::HalfHalfOneSplitFn, Herwig::HalfHalfZeroEWSplitFn, Herwig::HalfOneHalfSplitFn, Herwig::OneHalfHalfSplitFn, Herwig::OneOneOneEWSplitFn, Herwig::OneOneOneMassiveSplitFn, Herwig::OneOneOneQEDSplitFn, Herwig::OneOneOneSplitFn, and Herwig::OneOneZeroEWSplitFn.
|
private |
The colour factor.
Definition at line 370 of file SplittingFunction.h.
Referenced by colourFactor().
|
private |
The colour structure.
Definition at line 365 of file SplittingFunction.h.
Referenced by colourFactor(), and colourStructure().
|
private |
The interaction type for the splitting function.
Definition at line 360 of file SplittingFunction.h.
Referenced by interactionType().
|
private |
Whether or not this interaction is angular-ordered.
Definition at line 375 of file SplittingFunction.h.
Referenced by angularOrdered(), and pTScale().
|
private |
|
private |
Enforce strict AO.
Definition at line 385 of file SplittingFunction.h.