herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
Herwig::HwRemDecayer Class Reference

The HwRemDecayer class is responsible for the decay of the remnants. More...

#include <HwRemDecayer.h>

Inheritance diagram for Herwig::HwRemDecayer:

Classes

struct  ExtraSoftScatterVeto
 struct that is used to catch exceptions which are thrown due to energy conservation issues of additional soft scatters More...
 
struct  HadronContent
 Simple struct to store info about baryon quark and di-quark
constituents. More...
 

Public Types

typedef vector< pair< tPPtr, tPPtr > > PartnerMap
 Typedef to store information about colour partners.
 
- Public Types inherited from ThePEG::RemnantDecayer
enum  RecoilOption
 
typedef Ptr< PtGenerator >::pointer PtGPtr
 
- Public Types inherited from ThePEG::InterfacedBase
enum  InitState
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 

Public Member Functions

 HwRemDecayer ()
 The default constructor.
 
Virtual functions required by the Decayer class.
virtual bool accept (const DecayMode &) const
 Check if this decayer can perfom the decay specified by the given decay mode.
 
virtual bool canHandle (tcPDPtr particle, tcPDPtr parton) const
 Return true if this decayer can handle the extraction of the
extracted parton from the given particle.
 
virtual bool multiCapable () const
 Return true if this decayed can extract more than one parton from
a particle.
 
virtual ParticleVector decay (const DecayMode &dm, const Particle &p, Step &step) const
 Perform a decay for a given DecayMode and a given Particle instance.
 
- Public Member Functions inherited from ThePEG::RemnantDecayer
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
virtual bool accept (const DecayMode &dm) const
 
virtual bool needsFullStep () const
 
virtual ParticleVector decay (const DecayMode &dm, const Particle &p, Step &step) const=0
 
virtual ParticleVector decay (const DecayMode &dm, const Particle &p) const
 
virtual bool canHandle (tcPDPtr parent, tcPDPtr extracted) const
 
virtual bool checkExtract (tcPPtr parent, tcPPtr extracted, const LorentzMomentum &pnew) const
 
virtual bool multiCapable () const
 
RecoilOption recoilOption () const
 
int respectDISKinematics () const
 
PtGPtr pTGenerator () const
 
- Public Member Functions inherited from ThePEG::Decayer
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
virtual bool accept (const DecayMode &dm) const=0
 
virtual bool needsFullStep () const
 
virtual ParticleVector decay (const DecayMode &dm, const Particle &p) const=0
 
virtual ParticleVector decay (const DecayMode &dm, const Particle &p, Step &step) const
 
virtual double brat (const DecayMode &dm, const ParticleData &pd, double oldbrat) const
 
virtual double brat (const DecayMode &dm, const Particle &p, double oldbrat) const
 
virtual ParticleVector getChildren (const DecayMode &dm, const Particle &parent) const
 
virtual void finalBoost (const Particle &parent, const ParticleVector &children) const
 
virtual void setScales (const Particle &parent, const ParticleVector &children) const
 
Ptr< Amplitude >::pointer amplitude () const
 
- Public Member Functions inherited from ThePEG::HandlerBaseT< UseRandom >
double rnd () const
 
double rnd (double xu) const
 
double rnd (double xl, double xu) const
 
bool rndbool () const
 
bool rndbool (double p) const
 
bool rndbool (double p1, double p2) const
 
int rndsign (double p1, double p2, double p3) const
 
int rnd2 (double p0, double p1) const
 
int rnd3 (double p0, double p1, double p2) const
 
int rnd4 (double p0, double p1, double p2, double p3) const
 
long irnd (long xu=2) const
 
long irnd (long xl, long xu) const
 
const StandardModelBaseSM () const
 
tSMPtr standardModel () const
 
- 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
 

Protected Member Functions

Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object.
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane.
 
- Protected Member Functions inherited from ThePEG::RemnantDecayer
virtual void doinit ()
 
virtual bool preInitialize () const
 
tRemPDPtr data (tcRemPPtr remnant) const
 
tcPPtr parent (tcRemPPtr remnant) const
 
const PVectorextracted (tcRemPPtr remnant) const
 
virtual void fillSubSystem (tPPtr p, set< tPPtr > &sub) const
 
virtual tPVector getSubSystem (tcPPtr parent, tPPtr parton) const
 
virtual void doinit ()
 
virtual bool preInitialize () const
 
- 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 &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 
const string & name (const string &newName)
 

Private Attributes

Soft interaction variables.
tPPair softRems_
 Pair of soft Remnant pointers, i.e.
 
Energy ptmin_
 ptcut of the UE model
 
InvEnergy2 beta_
 slope of the soft pt-spectrum: dN/dp_T = N p_T exp(-beta*p_T^2)
 
unsigned int maxtrySoft_
 Maximum number of attempts for the regeneration of an additional soft scattering, before the number of scatters is reduced.
 
double colourDisrupt_
 Variable to store the relative number of colour disrupted connections to additional soft subprocesses.
 
double ladderbFactor_
 Variable to store the additive factor of the multiperipheral ladder multiplicity.
 
double ladderPower_
 Variable of the parameterization of the ladder multiplicity.
 
double ladderNorm_
 Variable of the parameterization of the ladder multiplicity.
 
double ladderMult_
 
double gaussWidth_
 Variable to store the gaussian width of the fluctuation of the longitudinal momentum fraction.
 
double valOfN_
 Variable to store the current total multiplicity of a ladder.
 
double initTotRap_
 Variable to store the initial total rapidity between of the remnants.
 
Forced splitting variables.
Energy _kinCutoff
 The kinematic cut-off.
 
Energy _forcedSplitScale
 The PDF freezing scale as set in ShowerHandler.
 
double _range
 Range for emission.
 
double _zbin
 Size of the bins in z for the interpolation.
 
double _ybin
 Size of the bins in y for the interpolation.
 
int _nbinmax
 Maximum number of bins for the z interpolation.
 
ShowerAlphaPtr _alphaS
 Pointer to the object calculating the QCD coupling.
 
ShowerAlphaPtr _alphaEM
 Pointer to the object calculating the QED coupling.
 
unsigned int DISRemnantOpt_
 Option for the DIS remnant.
 
unsigned int PtDistribution_
 Option for the pT generation.
 
unsigned int pomeronStructure_
 Option for the treatment of the pomeron structure.
 
Energy mg_
 The gluon constituent mass.
 

Soft interaction methods.

pair< bool, bool > theanti
 A flag which indicates, whether the extracted valence quark was a anti particle.
 
pair< double, double > theX
 variable to sum up the x values of the extracted particles
 
pair< HadronContent, HadronContenttheContent
 Pair of HadronContent structs to know about the quark content of the beams.
 
pair< Lorentz5Momentum, Lorentz5Momentum > theUsed
 Pair of Lorentz5Momentum to keep track of the forced splitting product momenta.
 
pair< PartnerMap, PartnerMaptheMaps
 Pair of PartnerMap's to store the particles, which will be colour connected in the end.
 
StepPtr thestep
 Variable to hold a pointer to the current step.
 
pair< RemPPtr, RemPPtr > theRems
 Pair of Remnant pointers.
 
tcPPtr theBeam
 The beam particle data for the current incoming hadron.
 
Ptr< BeamParticleData >::const_pointer theBeamData
 the beam data
 
tcPDFPtr _pdf
 The PDF for the current initial-state shower.
 
bool allowTop_
 Switch to control handling of top quarks in proton.
 
bool allowLeptons_
 Switch to control handling of charged leptons in proton.
 
bool multiPeriph_
 Switch to control using multiperipheral kinemaics.
 
bool quarkPair_
 True if kinematics is to be calculated for quarks.
 
Energy softPt () const
 Produce pt values according to dN/dp_T = N p_T exp(-beta_*p_T^2)
 
void softKinematics (Lorentz5Momentum &r1, Lorentz5Momentum &r2, Lorentz5Momentum &g1, Lorentz5Momentum &g2) const
 Get the 2 pairs of 5Momenta for the scattering.
 
void doSoftInteractions (unsigned int N)
 Create N soft gluon interactions.
 
void doSoftInteractions_old (unsigned int N)
 Create N soft gluon interactions (old version)
 
void doSoftInteractions_multiPeriph (unsigned int N)
 Create N soft gluon interactions with multiperhpheral kinematics.
 
bool doPhaseSpaceGenerationGluons (vector< Lorentz5Momentum > &softGluons, Energy energy, unsigned int &its) const
 Phase space generation for the ladder partons.
 
LorentzRotation rotate (const LorentzMomentum &p) const
 This returns the rotation matrix needed to rotate p into the z axis.
 
template<typename T >
gaussDistribution (T mean, T stdev) const
 Methods to generate random distributions also all stolen form UA5Handler.
 
double randUng (double A, double B) const
 This returns a random number with a flat distribution [-A,A] plus gaussian tail with stdev B TODO: Should move this to Utilities.
 
template<typename T >
void randAzm (T pt, T &px, T &py) const
 
Energy randExt (Energy AM0, InvEnergy B) const
 
tPPtr addParticle (tcPPtr parent, long id, Lorentz5Momentum p) const
 Method to add a particle to the step.
 

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.
 
void initialize (pair< tRemPPtr, tRemPPtr > rems, tPPair beam, Step &step, Energy forcedSplitScale)
 Do several checks and initialization, for remnantdecay inside ShowerHandler.
 
void initSoftInteractions (Energy ptmin, InvEnergy2 beta)
 Initialize the soft scattering machinery.
 
void doSplit (pair< tPPtr, tPPtr > partons, pair< tcPDFPtr, tcPDFPtr > pdfs, bool first)
 Perform the acual forced splitting.
 
void finalize (double colourDisrupt=0.0, unsigned int softInt=0)
 Perform the final creation of the diquarks.
 
void findChildren (tPPtr, vector< PPtr > &) const
 Find the children.
 
static void Init ()
 The standard Init function used to initialize the interfaces.
 

Standard Interfaced functions.

const pair< HadronContent, HadronContent > & content () const
 Return the hadron content objects for the incoming particles.
 
HadronContent getHadronContent (tcPPtr hadron) const
 Return a HadronContent struct from a PPtr to a hadron.
 
void setHadronContent (tPPair beam)
 Set the hadron contents.
 
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk.
 
HwRemDecayeroperator= (const HwRemDecayer &)=delete
 The assignment operator is private and must never be called.
 
void split (tPPtr parton, HadronContent &content, tRemPPtr rem, Lorentz5Momentum &used, PartnerMap &partners, tcPDFPtr pdf, bool first)
 Do the forced Splitting of the Remnant with respect to the extracted parton parton.
 
void mergeColour (tPPtr p1, tPPtr p2, bool anti) const
 Merge the colour lines of two particles.
 
void fixColours (PartnerMap partners, bool anti, double disrupt) const
 Set the colour connections.
 
void setRemMasses (PPair diquarks) const
 Set the momenta of the Remnants properly and boost the decay particles.
 
PPtr finalSplit (const tRemPPtr rem, long remID, Lorentz5Momentum usedMomentum) const
 This creates a parton from the remaining flavours of the hadron.
 
PPtr forceSplit (const tRemPPtr rem, long child, Energy &oldQ, double &oldx, Lorentz5Momentum &pf, Lorentz5Momentum &p, HadronContent &content) const
 This takes the particle and find a splitting for np -> p + child and creates the correct kinematics and connects for such a split.
 
bool isPartonic (tPPtr parton) const
 Check if a particle is a parton from a hadron or not.
 

Additional Inherited Members

- Static Public Member Functions inherited from ThePEG::RemnantDecayer
static void Init ()
 
static tPVector decayRemnants (const tPVector &particles, Step &step)
 
- Static Public Member Functions inherited from ThePEG::Decayer
static void Init ()
 
static ParticleVector DecayParticle (tPPtr parent, Step &step, long maxtry=1000)
 
- Static Public Member Functions inherited from ThePEG::HandlerBase
static void Init ()
 
- 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::RemnantDecayer
 boostAll
 
 boostFinal
 
 copyFinal
 
- 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::RemnantDecayer
static LorentzRotation getZBoost (const LorentzMomentum &p0, const LorentzMomentum &p)
 
- Static Protected Member Functions inherited from ThePEG::Interfaced
static void registerRepository (IBPtr)
 
static void registerRepository (IBPtr, string newName)
 
- Protected Attributes inherited from ThePEG::RemnantDecayer
int respectDIS
 

Detailed Description

The HwRemDecayer class is responsible for the decay of the remnants.

Additional secondary scatters have to be evolved backwards to a gluon, the first/hard interaction has to be evolved back to a valence quark. This is all generated inside this class, which main methods are then called by the ShowerHandler.

A simple forced splitting algorithm is used. This takes the Remnant object produced from the PDF and backward evolution (hadron - parton) and produce partons with the remaining flavours and with the correct colour connections.

The algorithim operates by starting with the parton which enters the hard process. If this is from the sea there is a forced branching to produce the antiparticle from a gluon branching. If the parton entering the hard process was a gluon, or a gluon was produced from the first step of the algorithm, there is then a further branching back to a valence parton. After these partons have been produced a quark or diquark is produced to give the remaining valence content of the incoming hadron.

The forced branching are generated using a scale between QSpac and EmissionRange times the minimum scale. The energy fractions are then distributed using

\[\frac{\alpha_S}{2\pi}\frac{P(z)}{z}f(x/z,\tilde{q})\]

with the massless splitting functions.

Author
Manuel B"ahr
See also
The interfaces defined for HwRemDecayer.

Definition at line 56 of file HwRemDecayer.h.

Member Typedef Documentation

◆ PartnerMap

typedef vector<pair<tPPtr, tPPtr> > Herwig::HwRemDecayer::PartnerMap

Typedef to store information about colour partners.

Definition at line 61 of file HwRemDecayer.h.

Constructor & Destructor Documentation

◆ HwRemDecayer()

Herwig::HwRemDecayer::HwRemDecayer ( )
inline

The default constructor.

Definition at line 68 of file HwRemDecayer.h.

Member Function Documentation

◆ accept()

virtual bool Herwig::HwRemDecayer::accept ( const DecayMode ) const
inlinevirtual

Check if this decayer can perfom the decay specified by the given decay mode.

Returns
true if this decayer can handle the given mode, otherwise false.

Reimplemented from ThePEG::RemnantDecayer.

Definition at line 94 of file HwRemDecayer.h.

◆ addParticle()

tPPtr Herwig::HwRemDecayer::addParticle ( tcPPtr  parent,
long  id,
Lorentz5Momentum  p 
) const
private

Method to add a particle to the step.

Parameters
parent= pointer to the parent particle
id= Particle ID of the newly created particle
p= Lorentz5Momentum of the new particle

◆ canHandle()

virtual bool Herwig::HwRemDecayer::canHandle ( tcPDPtr  particle,
tcPDPtr  parton 
) const
virtual

Return true if this decayer can handle the extraction of the
extracted parton from the given particle.


Reimplemented from ThePEG::RemnantDecayer.

◆ clone()

virtual IBPtr Herwig::HwRemDecayer::clone ( ) const
inlineprotectedvirtual

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

Definition at line 198 of file HwRemDecayer.h.

◆ content()

const pair< HadronContent, HadronContent > & Herwig::HwRemDecayer::content ( ) const
inline

Return the hadron content objects for the incoming particles.

Definition at line 327 of file HwRemDecayer.h.

References theContent.

◆ decay()

virtual ParticleVector Herwig::HwRemDecayer::decay ( const DecayMode dm,
const Particle p,
Step step 
) const
virtual

Perform a decay for a given DecayMode and a given Particle instance.

Parameters
dmthe DecayMode describing the decay.
pthe Particle instance to be decayed.
stepthe step we are working on.
Returns
a ParticleVector containing the decay products.

Implements ThePEG::RemnantDecayer.

◆ doinit()

virtual void Herwig::HwRemDecayer::doinit ( )
inlineprotectedvirtual

Initialize this object after the setup phase before saving an EventGenerator to disk.

Exceptions
InitExceptionif object could not be initialized properly.

Reimplemented from ThePEG::RemnantDecayer.

Definition at line 216 of file HwRemDecayer.h.

References _ybin, _zbin, ThePEG::ParticleID::g, ThePEG::Interfaced::getParticleData(), and mg_.

◆ doSoftInteractions()

void Herwig::HwRemDecayer::doSoftInteractions ( unsigned int  N)
inlineprivate

Create N soft gluon interactions.

Definition at line 442 of file HwRemDecayer.h.

References doSoftInteractions_multiPeriph(), doSoftInteractions_old(), and multiPeriph_.

◆ doSplit()

void Herwig::HwRemDecayer::doSplit ( pair< tPPtr, tPPtr partons,
pair< tcPDFPtr, tcPDFPtr pdfs,
bool  first 
)

Perform the acual forced splitting.

Parameters
partonsis a pair of ThePEG::Particle pointers which store the final partons on which the shower ends.
pdfsare pointers to the pdf objects for both beams
firstis a flage wether or not this is the first or a secondary interation

◆ finalize()

void Herwig::HwRemDecayer::finalize ( double  colourDisrupt = 0.0,
unsigned int  softInt = 0 
)

Perform the final creation of the diquarks.

Set the remnant masses and do all colour connections.

Parameters
colourDisrupt= variable to control how many "hard" scatters are colour isolated
softInt= parameter for the number of soft scatters

◆ finalSplit()

PPtr Herwig::HwRemDecayer::finalSplit ( const tRemPPtr  rem,
long  remID,
Lorentz5Momentum  usedMomentum 
) const
inlineprivate

This creates a parton from the remaining flavours of the hadron.

The last parton used was a valance parton, so only 2 (or 1, if meson) flavours remain to be used.

Definition at line 387 of file HwRemDecayer.h.

References ThePEG::Interfaced::getParticleData(), and thestep.

◆ fixColours()

void Herwig::HwRemDecayer::fixColours ( PartnerMap  partners,
bool  anti,
double  disrupt 
) const
private

Set the colour connections.

Parameters
partners= Object that holds the information which particles to connect.
anti= flag to indicate, if (anti)colour was extracted as first parton.
disruptparameter for disruption of the colour structure

◆ forceSplit()

PPtr Herwig::HwRemDecayer::forceSplit ( const tRemPPtr  rem,
long  child,
Energy &  oldQ,
double &  oldx,
Lorentz5Momentum &  pf,
Lorentz5Momentum &  p,
HadronContent content 
) const
private

This takes the particle and find a splitting for np -> p + child and creates the correct kinematics and connects for such a split.

This Splitting has an upper bound on qtilde given by the energy argument

Parameters
remThe Remnant
childThe PDG code for the outgoing particle
oldQThe maximum scale for the evolution
oldxThe fraction of the hadron's momentum carried by the last parton
pfThe momentum of the last parton at input and after branching at output
pThe total emitted momentum
contentThe content of the hadron

◆ fullclone()

virtual IBPtr Herwig::HwRemDecayer::fullclone ( ) const
inlineprotectedvirtual

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.

Definition at line 204 of file HwRemDecayer.h.

◆ gaussDistribution()

template<typename T >
T Herwig::HwRemDecayer::gaussDistribution ( mean,
stdev 
) const
inlineprivate

Methods to generate random distributions also all stolen form UA5Handler.

Definition at line 476 of file HwRemDecayer.h.

References ThePEG::HandlerBaseT< UseRandom >::rnd(), and ThePEG::sqrt().

Referenced by randUng().

◆ Init()

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

◆ initSoftInteractions()

void Herwig::HwRemDecayer::initSoftInteractions ( Energy  ptmin,
InvEnergy2  beta 
)

Initialize the soft scattering machinery.

Parameters
ptmin= the pt cutoff used in the UE model
beta= slope of the soft pt-spectrum

◆ isPartonic()

bool Herwig::HwRemDecayer::isPartonic ( tPPtr  parton) const
private

Check if a particle is a parton from a hadron or not.

Parameters
partonThe parton to be tested

◆ mergeColour()

void Herwig::HwRemDecayer::mergeColour ( tPPtr  p1,
tPPtr  p2,
bool  anti 
) const
private

Merge the colour lines of two particles.

Parameters
p1= Pointer to particle 1
p2= Pointer to particle 2
anti= flag to indicate, if (anti)colour was extracted as first parton.

◆ multiCapable()

virtual bool Herwig::HwRemDecayer::multiCapable ( ) const
inlinevirtual

Return true if this decayed can extract more than one parton from
a particle.


Reimplemented from ThePEG::RemnantDecayer.

Definition at line 108 of file HwRemDecayer.h.

◆ operator=()

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

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ persistentInput()

void Herwig::HwRemDecayer::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::HwRemDecayer::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ randAzm()

template<typename T >
void Herwig::HwRemDecayer::randAzm ( pt,
T &  px,
T &  py 
) const
inlineprivate

Definition at line 505 of file HwRemDecayer.h.

◆ randExt()

Energy Herwig::HwRemDecayer::randExt ( Energy  AM0,
InvEnergy  B 
) const
inlineprivate

Definition at line 518 of file HwRemDecayer.h.

◆ randUng()

double Herwig::HwRemDecayer::randUng ( double  A,
double  B 
) const
inlineprivate

This returns a random number with a flat distribution [-A,A] plus gaussian tail with stdev B TODO: Should move this to Utilities.

Parameters
AThe width of the flat part
BThe standard deviation of the gaussian tail
Returns
the randomly generated value

Definition at line 493 of file HwRemDecayer.h.

References gaussDistribution(), and ThePEG::HandlerBaseT< UseRandom >::rnd().

◆ setHadronContent()

void Herwig::HwRemDecayer::setHadronContent ( tPPair  beam)
inline

Set the hadron contents.

Definition at line 339 of file HwRemDecayer.h.

References getHadronContent(), and theContent.

◆ softKinematics()

void Herwig::HwRemDecayer::softKinematics ( Lorentz5Momentum &  r1,
Lorentz5Momentum &  r2,
Lorentz5Momentum &  g1,
Lorentz5Momentum &  g2 
) const
private

Get the 2 pairs of 5Momenta for the scattering.

Needs calling of initSoftInteractions.

◆ split()

void Herwig::HwRemDecayer::split ( tPPtr  parton,
HadronContent content,
tRemPPtr  rem,
Lorentz5Momentum &  used,
PartnerMap partners,
tcPDFPtr  pdf,
bool  first 
)
private

Do the forced Splitting of the Remnant with respect to the extracted parton parton.

Parameters
parton= PPtr to the parton going into the subprocess.
content= HadronContent struct to keep track of flavours.
rem= Pointer to the ThePEG::RemnantParticle.
used= Momentum vector to keep track of remaining momenta.
partners= Vector of pairs filled with tPPtr to the particles which should be colour connected.
pdfpointer to the PDF Object which is used for this particle
first= Flag for the first interaction.

Member Data Documentation

◆ _alphaEM

ShowerAlphaPtr Herwig::HwRemDecayer::_alphaEM
private

Pointer to the object calculating the QED coupling.

Definition at line 725 of file HwRemDecayer.h.

◆ _alphaS

ShowerAlphaPtr Herwig::HwRemDecayer::_alphaS
private

Pointer to the object calculating the QCD coupling.

Definition at line 720 of file HwRemDecayer.h.

◆ _forcedSplitScale

Energy Herwig::HwRemDecayer::_forcedSplitScale
private

The PDF freezing scale as set in ShowerHandler.

Definition at line 695 of file HwRemDecayer.h.

◆ _kinCutoff

Energy Herwig::HwRemDecayer::_kinCutoff
private

The kinematic cut-off.

Definition at line 690 of file HwRemDecayer.h.

◆ _nbinmax

int Herwig::HwRemDecayer::_nbinmax
private

Maximum number of bins for the z interpolation.

Definition at line 715 of file HwRemDecayer.h.

◆ _pdf

tcPDFPtr Herwig::HwRemDecayer::_pdf
mutableprivate

The PDF for the current initial-state shower.

Definition at line 592 of file HwRemDecayer.h.

◆ _range

double Herwig::HwRemDecayer::_range
private

Range for emission.

Definition at line 700 of file HwRemDecayer.h.

◆ _ybin

double Herwig::HwRemDecayer::_ybin
private

Size of the bins in y for the interpolation.

Definition at line 710 of file HwRemDecayer.h.

Referenced by doinit().

◆ _zbin

double Herwig::HwRemDecayer::_zbin
private

Size of the bins in z for the interpolation.

Definition at line 705 of file HwRemDecayer.h.

Referenced by doinit().

◆ allowLeptons_

bool Herwig::HwRemDecayer::allowLeptons_
private

Switch to control handling of charged leptons in proton.

Definition at line 604 of file HwRemDecayer.h.

◆ allowTop_

bool Herwig::HwRemDecayer::allowTop_
private

Switch to control handling of top quarks in proton.

Definition at line 599 of file HwRemDecayer.h.

◆ beta_

InvEnergy2 Herwig::HwRemDecayer::beta_
private

slope of the soft pt-spectrum: dN/dp_T = N p_T exp(-beta*p_T^2)

Definition at line 632 of file HwRemDecayer.h.

◆ colourDisrupt_

double Herwig::HwRemDecayer::colourDisrupt_
private

Variable to store the relative number of colour disrupted connections to additional soft subprocesses.

Definition at line 644 of file HwRemDecayer.h.

◆ DISRemnantOpt_

unsigned int Herwig::HwRemDecayer::DISRemnantOpt_
private

Option for the DIS remnant.

Definition at line 730 of file HwRemDecayer.h.

◆ gaussWidth_

double Herwig::HwRemDecayer::gaussWidth_
private

Variable to store the gaussian width of the fluctuation of the longitudinal momentum fraction.

Definition at line 668 of file HwRemDecayer.h.

◆ initTotRap_

double Herwig::HwRemDecayer::initTotRap_
private

Variable to store the initial total rapidity between of the remnants.

Definition at line 680 of file HwRemDecayer.h.

◆ ladderbFactor_

double Herwig::HwRemDecayer::ladderbFactor_
private

Variable to store the additive factor of the multiperipheral ladder multiplicity.

Definition at line 650 of file HwRemDecayer.h.

◆ ladderMult_

double Herwig::HwRemDecayer::ladderMult_
private

Definition at line 662 of file HwRemDecayer.h.

◆ ladderNorm_

double Herwig::HwRemDecayer::ladderNorm_
private

Variable of the parameterization of the ladder multiplicity.

Definition at line 660 of file HwRemDecayer.h.

◆ ladderPower_

double Herwig::HwRemDecayer::ladderPower_
private

Variable of the parameterization of the ladder multiplicity.

Definition at line 655 of file HwRemDecayer.h.

◆ maxtrySoft_

unsigned int Herwig::HwRemDecayer::maxtrySoft_
private

Maximum number of attempts for the regeneration of an additional soft scattering, before the number of scatters is reduced.

Definition at line 638 of file HwRemDecayer.h.

◆ mg_

Energy Herwig::HwRemDecayer::mg_
private

The gluon constituent mass.

Definition at line 746 of file HwRemDecayer.h.

Referenced by doinit().

◆ multiPeriph_

bool Herwig::HwRemDecayer::multiPeriph_
private

Switch to control using multiperipheral kinemaics.

Definition at line 609 of file HwRemDecayer.h.

Referenced by doSoftInteractions().

◆ pomeronStructure_

unsigned int Herwig::HwRemDecayer::pomeronStructure_
private

Option for the treatment of the pomeron structure.

Definition at line 740 of file HwRemDecayer.h.

◆ PtDistribution_

unsigned int Herwig::HwRemDecayer::PtDistribution_
private

Option for the pT generation.

Definition at line 735 of file HwRemDecayer.h.

◆ ptmin_

Energy Herwig::HwRemDecayer::ptmin_
private

ptcut of the UE model

Definition at line 627 of file HwRemDecayer.h.

◆ quarkPair_

bool Herwig::HwRemDecayer::quarkPair_
private

True if kinematics is to be calculated for quarks.

Definition at line 614 of file HwRemDecayer.h.

◆ softRems_

tPPair Herwig::HwRemDecayer::softRems_
private

Pair of soft Remnant pointers, i.e.

Diquarks.

Definition at line 622 of file HwRemDecayer.h.

◆ theanti

pair<bool, bool> Herwig::HwRemDecayer::theanti
private

A flag which indicates, whether the extracted valence quark was a anti particle.

Definition at line 547 of file HwRemDecayer.h.

◆ theBeam

tcPPtr Herwig::HwRemDecayer::theBeam
mutableprivate

The beam particle data for the current incoming hadron.

Definition at line 582 of file HwRemDecayer.h.

◆ theBeamData

Ptr<BeamParticleData>::const_pointer Herwig::HwRemDecayer::theBeamData
mutableprivate

the beam data

Definition at line 587 of file HwRemDecayer.h.

◆ theContent

pair<HadronContent, HadronContent> Herwig::HwRemDecayer::theContent
private

Pair of HadronContent structs to know about the quark content of the beams.

Definition at line 555 of file HwRemDecayer.h.

Referenced by content(), and setHadronContent().

◆ theMaps

pair<PartnerMap, PartnerMap> Herwig::HwRemDecayer::theMaps
private

Pair of PartnerMap's to store the particles, which will be colour connected in the end.

Definition at line 564 of file HwRemDecayer.h.

◆ theRems

pair<RemPPtr, RemPPtr> Herwig::HwRemDecayer::theRems
private

Pair of Remnant pointers.

This is needed to boost in the Remnant-Remnant CMF after all have been decayed.

Definition at line 577 of file HwRemDecayer.h.

◆ thestep

StepPtr Herwig::HwRemDecayer::thestep
private

Variable to hold a pointer to the current step.

The variable is used to determine, wether decay(const DecayMode & dm, const Particle & p, Step & step) has been called in this event or not.

Definition at line 571 of file HwRemDecayer.h.

Referenced by finalSplit().

◆ theUsed

pair<Lorentz5Momentum, Lorentz5Momentum> Herwig::HwRemDecayer::theUsed
private

Pair of Lorentz5Momentum to keep track of the forced splitting product momenta.

Definition at line 558 of file HwRemDecayer.h.

◆ theX

pair<double, double> Herwig::HwRemDecayer::theX
private

variable to sum up the x values of the extracted particles

Definition at line 552 of file HwRemDecayer.h.

◆ valOfN_

double Herwig::HwRemDecayer::valOfN_
private

Variable to store the current total multiplicity of a ladder.

Definition at line 674 of file HwRemDecayer.h.


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