herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
Herwig::SplittingGenerator Class Reference

This class is responsible for creating, at the beginning of the Run, all the SplittingFunction objects and the corresponding SudakovFormFactor objects, and then of the generation of splittings (radiation emissions) during the event. More...

#include <SplittingGenerator.h>

Inheritance diagram for Herwig::SplittingGenerator:

Public Member Functions

Standard constructors and destructors.
 SplittingGenerator ()
 The default constructor.
 
Branching chooseForwardBranching (ShowerParticle &particle, double enhance, ShowerInteraction type) const
 Methods to select the next branching and reconstruct the kinematics. More...
 
Branching chooseDecayBranching (ShowerParticle &particle, const ShowerParticle::EvolutionScales &maxScales, Energy minmass, double enhance, ShowerInteraction type) const
 Select the next branching of a particles for the initial-state shower in the particle's decay. More...
 
Branching chooseBackwardBranching (ShowerParticle &particle, PPtr beamparticle, double enhance, Ptr< BeamParticleData >::transient_const_pointer beam, ShowerInteraction type, tcPDFPtr, Energy) const
 Choose a new backward branching for a space-like particle. More...
 
string addFinalSplitting (string arg)
 Methods to parse the information from the input files to create the branchings. More...
 
string addInitialSplitting (string arg)
 Add an initial-state splitting.
 
string deleteFinalSplitting (string arg)
 Add a final-state splitting.
 
string deleteInitialSplitting (string arg)
 Add an initial-state splitting.
 
const BranchingListfinalStateBranchings () const
 Access to the splittings. More...
 
const BranchingListinitialStateBranchings () const
 Access the initial-state branchings.
 
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 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

Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object. More...
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane. More...
 
Standard Interfaced functions.
virtual void rebind (const TranslationMap &trans)
 Rebind pointer to other Interfaced objects. More...
 
virtual IVector getReferences ()
 Return a vector of all pointers to Interfaced objects used in this object. 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
 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 void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinit ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 
const string & name (const string &newName)
 

Private Member Functions

void addToMap (const IdList &ids, const SudakovPtr &sudakov, bool final)
 Add a branching to the map. More...
 
void deleteFromMap (const IdList &ids, const SudakovPtr &sudakov, bool final)
 Remove a branching to the map. More...
 
void finalStateBasisVectors (ShowerParticle particle, Lorentz5Momentum &p, Lorentz5Momentum &n) const
 Obtain the reference vectors for a final-state particle. More...
 
string addSplitting (string in, bool final)
 Add a splitting. More...
 
string deleteSplitting (string in, bool final)
 Delete a splitting. More...
 
SplittingGeneratoroperator= (const SplittingGenerator &)=delete
 The assignment operator is private and must never be called. More...
 

Private Attributes

BranchingList _fbranchings
 List of the branchings and the appropriate Sudakovs for forward branchings.
 
BranchingList _bbranchings
 Lists of the branchings and the appropriate Sudakovs for backward branchings.
 
double _deTuning
 The detuning parameter.
 

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)
 

Detailed Description

This class is responsible for creating, at the beginning of the Run, all the SplittingFunction objects and the corresponding SudakovFormFactor objects, and then of the generation of splittings (radiation emissions) during the event.

Many switches are defined in this class which allowed the user to turn on/off:

  • each type of interaction (QCD, QED, EWK,...);
  • initial- and final-state radiation for all type of interactions;
  • initial- and final-state radiation for each type of interaction;
  • each type of splitting ( $u\to ug$, $d\to dg$, $\ldots$, $g\to gg$, $g\to u\bar{u}$, $\ldots$).

These switches are useful mainly for debugging, but eventually can also be used for a "quick and dirty" estimation of systematic errors.

In the future it should be possible to implement in this class

  • the $1\to2$ azimuthal correlations for soft emission due to QCD coherence using the ShowerParticle object provided in the input.
  • Similarly having the $\rho-D$ matrix and the SplittingFunction pointer it should be possible to implement the spin correlations.
See also
SudakovFormFactor
SplitFun
The interfaces defined for SplittingGenerator.

Definition at line 55 of file SplittingGenerator.h.

Member Function Documentation

◆ addFinalSplitting()

string Herwig::SplittingGenerator::addFinalSplitting ( string  arg)
inline

Methods to parse the information from the input files to create the branchings.

Add a final-state splitting

Definition at line 151 of file SplittingGenerator.h.

◆ addSplitting()

string Herwig::SplittingGenerator::addSplitting ( string  in,
bool  final 
)
private

Add a splitting.

Parameters
instring to be parsed
finalWhether this is an initial- or final-state branching

◆ addToMap()

void Herwig::SplittingGenerator::addToMap ( const IdList ids,
const SudakovPtr &  sudakov,
bool  final 
)
private

Add a branching to the map.

Parameters
idsPDG coeds of the particles in the branching
sudakovThe SudakovFormFactor for the branching
finalWhether this is an initial- or final-state branching

◆ chooseBackwardBranching()

Branching Herwig::SplittingGenerator::chooseBackwardBranching ( ShowerParticle particle,
PPtr  beamparticle,
double  enhance,
Ptr< BeamParticleData >::transient_const_pointer  beam,
ShowerInteraction  type,
tcPDFPtr  ,
Energy   
) const

Choose a new backward branching for a space-like particle.

The method returns:

  • a pointer to a ShowerKinematics object, which contains the information about the new scale and all other kinematics variables that need to be generated simultaneously;
  • a pointer to the SudakovFormFactor object associated with the chosen emission.
  • The PDG codes of the particles in the branching, as a Branching struct.

In the case no branching has been generated, both the returned pointers are null ( ShoKinPtr() , tSudakovFFPtr() ).

Parameters
particleThe particle to be evolved
enhanceThe factor by which to ehnace the emission of radiation
beamparticleThe beam particle
beamThe BeamParticleData object
typeThe type of interaction to generate
Returns
The Branching struct for the branching

◆ chooseDecayBranching()

Branching Herwig::SplittingGenerator::chooseDecayBranching ( ShowerParticle particle,
const ShowerParticle::EvolutionScales maxScales,
Energy  minmass,
double  enhance,
ShowerInteraction  type 
) const

Select the next branching of a particles for the initial-state shower in the particle's decay.

Parameters
particleThe particle being showerwed
maxscaleThe maximum scale
minmassMinimum mass of the particle after the branching
enhanceThe factor by which to ehnace the emission of radiation
typeThe type of interaction to generate
Returns
The Branching struct for the branching

◆ chooseForwardBranching()

Branching Herwig::SplittingGenerator::chooseForwardBranching ( ShowerParticle particle,
double  enhance,
ShowerInteraction  type 
) const

Methods to select the next branching and reconstruct the kinematics.

Choose a new forward branching for a time-like particle The method returns:

  • a pointer to a ShowerKinematics object, which contains the information about the new scale and all other kinematics variables that need to be generated simultaneously;
  • a pointer to the SudakovFormFactor object associated with the chosen emission.
  • The PDG codes of the particles in the branching, as a Branching struct.

In the case no branching has been generated, both the returned pointers are null ( ShoKinPtr() , tSudakovFFPtr() ).

Parameters
particleThe particle to be evolved
enhanceThe factor by which to ehnace the emission of radiation
typeThe type of interaction to generate
Returns
The Branching struct for the branching

◆ clone()

virtual IBPtr Herwig::SplittingGenerator::clone ( ) const
protectedvirtual

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

◆ deleteFromMap()

void Herwig::SplittingGenerator::deleteFromMap ( const IdList ids,
const SudakovPtr &  sudakov,
bool  final 
)
private

Remove a branching to the map.

Parameters
idsPDG coeds of the particles in the branching
sudakovThe SudakovFormFactor for the branching
finalWhether this is an initial- or final-state branching

◆ deleteSplitting()

string Herwig::SplittingGenerator::deleteSplitting ( string  in,
bool  final 
)
private

Delete a splitting.

Parameters
instring to be parsed
finalWhether this is an initial- or final-state branching

◆ finalStateBasisVectors()

void Herwig::SplittingGenerator::finalStateBasisVectors ( ShowerParticle  particle,
Lorentz5Momentum &  p,
Lorentz5Momentum &  n 
) const
private

Obtain the reference vectors for a final-state particle.

Parameters
particleThe particle
pThe p reference vector
nThe n reference vector

◆ finalStateBranchings()

const BranchingList& Herwig::SplittingGenerator::finalStateBranchings ( ) const
inline

Access to the splittings.

Access the final-state branchings

Definition at line 176 of file SplittingGenerator.h.

◆ fullclone()

virtual IBPtr Herwig::SplittingGenerator::fullclone ( ) const
protectedvirtual

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns
a pointer to the new object.

Reimplemented from ThePEG::InterfacedBase.

◆ getReferences()

virtual IVector Herwig::SplittingGenerator::getReferences ( )
protectedvirtual

Return a vector of all pointers to Interfaced objects used in this object.

Returns
a vector of pointers.

Reimplemented from ThePEG::InterfacedBase.

◆ Init()

static void Herwig::SplittingGenerator::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.

◆ operator=()

SplittingGenerator& Herwig::SplittingGenerator::operator= ( const SplittingGenerator )
privatedelete

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ persistentInput()

void Herwig::SplittingGenerator::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters
isthe persistent input stream read from.
versionthe version number of the object when written.

◆ persistentOutput()

void Herwig::SplittingGenerator::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ rebind()

virtual void Herwig::SplittingGenerator::rebind ( const TranslationMap trans)
protectedvirtual

Rebind pointer to other Interfaced objects.

Called in the setup phase after all objects used in an EventGenerator has been cloned so that the pointers will refer to the cloned objects afterwards.

Parameters
transa TranslationMap relating the original objects to their respective clones.
Exceptions
RebindExceptionif no cloned object was found for a given pointer.

Reimplemented from ThePEG::InterfacedBase.


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