Herwig 7 is hosted by Hepforge, IPPP Durham
Herwig  7.1.0
Herwig::DecayPhaseSpaceMode Class Reference

The DecayPhaseSpaceMode class is designed to store a group of phase-space channels for use by the DecayIntegrator class to generate the phase-space for a given decay mode. More...

#include <DecayPhaseSpaceMode.h>

Inheritance diagram for Herwig::DecayPhaseSpaceMode:

Public Member Functions

tcPDPtr externalParticles (int ix) const
 Access to the external particles. More...
 
unsigned int numberofParticles () const
 Number of external particles. More...
 
unsigned int numberChannels () const
 Number of channels. More...
 
void addChannel (DecayPhaseSpaceChannelPtr channel)
 Add a new channel. More...
 
void resetIntermediate (int ichan, tcPDPtr part, Energy mass, Energy width)
 Reset the properties of one of the intermediate particles. More...
 
void resetIntermediate (tcPDPtr part, Energy mass, Energy width)
 Reset the properties of one of the intermediate particles. More...
 
double maxWeight () const
 Get the maximum weight for the decay. More...
 
void setMaxWeight (double wgt) const
 Set the maximum weight for the decay. More...
 
double channelWeight (unsigned int ichan) const
 Get the weight for a channel. More...
 
void setWeights (const vector< double > &in) const
 Set the weights for the different channels. More...
 
unsigned int selectedChannel () const
 Access to the selected channel.
 
bool testOnShell () const
 test on/off-shell kinematics
 
Standard constructors and destructors.
 DecayPhaseSpaceMode ()
 Default constructor.
 
 DecayPhaseSpaceMode (tPDVector in, tcDecayIntegratorPtr intin, bool onShell=false)
 Constructor with a pointer to a DecayPhaseIntegrator and a vector of particle data objects for the external particles. More...
 
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())
 
const string & name () const
 
bool operator== (const Named &other) const
 
bool operator< (const Named &other) const
 

Static Public Member Functions

static void Init ()
 Standard Init function used to initialize the interfaces.
 
- 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

Set-up, Initialization and Access Members
Energy initializePhaseSpace (bool init, bool onShell=false)
 Initialise the phase space. More...
 
void setIntegrate (int iter, int points, int ntry)
 Set the integration parameters. More...
 
void setPartialWidth (int in)
 Set the partial width to use for normalization. More...
 
Phase-Space Generation Members
double me2 (const int ichan, const Particle &inpart, const ParticleVector &outpart, DecayIntegrator::MEOption opt) const
 Access to the matrix element from the decayer. More...
 
ParticleVector generate (bool intermediates, bool cc, const Particle &inpart) const
 Generate the decay. More...
 
int selectChannel (const Particle &inpart, ParticleVector &outpart) const
 Select which channel to use to output the particles. More...
 
Energy weight (bool cc, int &ichan, const Particle &in, ParticleVector &particles, bool first, bool onShell=false) const
 Return the weight for a given phase-space point. More...
 
Energy flatPhaseSpace (bool cc, const Particle &inpart, ParticleVector &outpart, bool onShell=false) const
 Return the weight and momenta for a flat phase-space decay. More...
 
Energy channelPhaseSpace (bool cc, int &ichan, const Particle &in, ParticleVector &particles, bool onShell=false) const
 Generate a phase-space point using multichannel phase space. More...
 
void constructVertex (const Particle &in, const ParticleVector &out) const
 Construct the vertex for spin corrections. More...
 
vector< Energy > externalMasses (Energy inmass, double &wgt, bool onShell) const
 Generate the masses of the external particles. More...
 
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 doinit ()
 Initialize this object after the setup phase before saving and EventGenerator to disk. More...
 
virtual void doinitrun ()
 Initialize this object to the begining of the run phase.
 
- 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 dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
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 &)
 
 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

DecayPhaseSpaceModeoperator= (const DecayPhaseSpaceMode &)
 Private and non-existent assignment operator.
 

Private Attributes

tcDecayIntegratorPtr _integrator
 pointer to the decayer
 
vector< DecayPhaseSpaceChannelPtr > _channels
 pointers to the phase-space channels
 
vector< double > _channelwgts
 the weights for the different channels
 
double _maxweight
 the maximum weight for the decay
 
int _niter
 Number of iterations for the initialization.
 
int _npoint
 Number of weights for each iteration of the initialization.
 
int _ntry
 Number of attempts to generate the decay.
 
tPDVector _extpart
 External particles.
 
int _partial
 Which of the partial widths of the incoming particle to use.
 
cGenericWidthGeneratorPtr _widthgen
 The width generator for the incoming particle.
 
vector< cGenericMassGeneratorPtr > _massgen
 The mass generators for the outgoing particles.
 
bool _testOnShell
 Whether to check on-shell or off-shell kinematics in doinit, if on-shell off-shell is tested in initrun.
 
unsigned int _ichannel
 The selected channel.
 

Static Private Attributes

static ClassDescription< DecayPhaseSpaceModeinitDecayPhaseSpaceMode
 Describe a concrete class with persistent data.
 

Friends

class DecayIntegrator
 DecayIntegrator is a friend to avoid making many of the phase space generation members public.
 
class DecayPhaseSpaceChannel
 DecayPhaseSpaceChannel is a friend to avoid making many of the phase space generation members public.
 
ostream & operator<< (ostream &, const DecayPhaseSpaceMode &)
 A friend operator to allow the mode to be outputted for debugging purposes.
 

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

The DecayPhaseSpaceMode class is designed to store a group of phase-space channels for use by the DecayIntegrator class to generate the phase-space for a given decay mode.

Additional phase-space channels can be added using the addChannel member.

In practice the modes are usually constructed together with the a number of DecayPhaseSpaceChannel objects. In classes inheriting from the DecayIntegrator class.

See also
DecayIntegrator
DecayPhaseSpaceChannel
Author
Peter Richardson

Definition at line 43 of file DecayPhaseSpaceMode.h.

Constructor & Destructor Documentation

◆ DecayPhaseSpaceMode()

Herwig::DecayPhaseSpaceMode::DecayPhaseSpaceMode ( tPDVector  in,
tcDecayIntegratorPtr  intin,
bool  onShell = false 
)
inline

Constructor with a pointer to a DecayPhaseIntegrator and a vector of particle data objects for the external particles.

This is the constructor which should normally be used in decayers.

Parameters
inThe particle data objects for the external particles
intinA pointer to the DecayIntegrator class using this mode.
onShellWhether or not to perform tests for zero width on-shell particles

Definition at line 80 of file DecayPhaseSpaceMode.h.

Member Function Documentation

◆ addChannel()

void Herwig::DecayPhaseSpaceMode::addChannel ( DecayPhaseSpaceChannelPtr  channel)
inline

Add a new channel.

Parameters
channelA pointer to the new DecayPhaseChannel

Definition at line 109 of file DecayPhaseSpaceMode.h.

◆ channelPhaseSpace()

Energy Herwig::DecayPhaseSpaceMode::channelPhaseSpace ( bool  cc,
int &  ichan,
const Particle in,
ParticleVector particles,
bool  onShell = false 
) const
protected

Generate a phase-space point using multichannel phase space.

Parameters
ccWhether we are generating the mode specified or the charge conjugate mode.
ichanThe channel to generate the weight for.
inThe incoming particle.
particlesThe outgoing particles.
Returns
The weight.

◆ channelWeight()

double Herwig::DecayPhaseSpaceMode::channelWeight ( unsigned int  ichan) const
inline

Get the weight for a channel.

This is the weight for the multi-channel approach.

Parameters
ichanThe channel.
Returns
The weight for the channel.

Definition at line 156 of file DecayPhaseSpaceMode.h.

◆ clone()

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

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

Definition at line 350 of file DecayPhaseSpaceMode.h.

◆ constructVertex()

void Herwig::DecayPhaseSpaceMode::constructVertex ( const Particle in,
const ParticleVector out 
) const
protected

Construct the vertex for spin corrections.

Parameters
inThe incoming particle.
outThe outgoing particles.

◆ doinit()

virtual void Herwig::DecayPhaseSpaceMode::doinit ( )
protectedvirtual

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

Exceptions
InitExceptionif object could not be initialized properly.

Reimplemented from ThePEG::InterfacedBase.

◆ externalMasses()

vector<Energy> Herwig::DecayPhaseSpaceMode::externalMasses ( Energy  inmass,
double &  wgt,
bool  onShell 
) const
protected

Generate the masses of the external particles.

Parameters
inmassThe mass of the decaying particle.
wgtThe weight for the masses.
Returns
The masses.

◆ externalParticles()

tcPDPtr Herwig::DecayPhaseSpaceMode::externalParticles ( int  ix) const
inline

Access to the external particles.

Parameters
ixThe external particle required.
Returns
A pointer to the ParticleData object.

Definition at line 91 of file DecayPhaseSpaceMode.h.

◆ flatPhaseSpace()

Energy Herwig::DecayPhaseSpaceMode::flatPhaseSpace ( bool  cc,
const Particle inpart,
ParticleVector outpart,
bool  onShell = false 
) const
protected

Return the weight and momenta for a flat phase-space decay.

Parameters
ccWhether we are generating the mode specified or the charge conjugate mode.
inpartThe incoming particle.
outpartThe outgoing particles.
Returns
The weight.

◆ fullclone()

virtual IBPtr Herwig::DecayPhaseSpaceMode::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 356 of file DecayPhaseSpaceMode.h.

◆ generate()

ParticleVector Herwig::DecayPhaseSpaceMode::generate ( bool  intermediates,
bool  cc,
const Particle inpart 
) const
protected

Generate the decay.

Parameters
intermediatesWhether or not to generate the intermediate particle in the decay channel.
ccWhether we are generating the mode specified or the charge conjugate mode.
inpartThe incoming particle.
Returns
The outgoing particles.

◆ initializePhaseSpace()

Energy Herwig::DecayPhaseSpaceMode::initializePhaseSpace ( bool  init,
bool  onShell = false 
)
protected

Initialise the phase space.

Parameters
initPerform the initialization.

◆ maxWeight()

double Herwig::DecayPhaseSpaceMode::maxWeight ( ) const
inline

Get the maximum weight for the decay.

Returns
The maximum weight.

Definition at line 143 of file DecayPhaseSpaceMode.h.

◆ me2()

double Herwig::DecayPhaseSpaceMode::me2 ( const int  ichan,
const Particle inpart,
const ParticleVector outpart,
DecayIntegrator::MEOption  opt 
) const
inlineprotected

Access to the matrix element from the decayer.

Parameters
ichanThe channel, this is to allow the matrix element to be used to select the intermediates
inpartThe incoming particle.
optThe option for what to calculate
outpartThe outgoing particles.

Definition at line 216 of file DecayPhaseSpaceMode.h.

References Herwig::RandomHelpers::generate().

◆ numberChannels()

unsigned int Herwig::DecayPhaseSpaceMode::numberChannels ( ) const
inline

Number of channels.

Returns
The number of channels.

Definition at line 103 of file DecayPhaseSpaceMode.h.

◆ numberofParticles()

unsigned int Herwig::DecayPhaseSpaceMode::numberofParticles ( ) const
inline

Number of external particles.

Returns
The number of external particles.

Definition at line 97 of file DecayPhaseSpaceMode.h.

◆ persistentInput()

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

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ resetIntermediate() [1/2]

void Herwig::DecayPhaseSpaceMode::resetIntermediate ( int  ichan,
tcPDPtr  part,
Energy  mass,
Energy  width 
)
inline

Reset the properties of one of the intermediate particles.

Only a specific channel is reset.

Parameters
ichanThe channel to reset.
partThe ParticleData object of the particle to reset
massThe mass of the intermediate.
widthThe width of gthe intermediate.

Definition at line 122 of file DecayPhaseSpaceMode.h.

◆ resetIntermediate() [2/2]

void Herwig::DecayPhaseSpaceMode::resetIntermediate ( tcPDPtr  part,
Energy  mass,
Energy  width 
)
inline

Reset the properties of one of the intermediate particles.

All the channels are reset.

Parameters
partThe ParticleData object of the particle to reset
massThe mass of the intermediate.
widthThe width of gthe intermediate.

Definition at line 134 of file DecayPhaseSpaceMode.h.

◆ selectChannel()

int Herwig::DecayPhaseSpaceMode::selectChannel ( const Particle inpart,
ParticleVector outpart 
) const
inlineprotected

Select which channel to use to output the particles.

Parameters
inpartThe incoming particles.
outpartThe outgoing particles.

Definition at line 238 of file DecayPhaseSpaceMode.h.

References ThePEG::UseRandom::rnd().

◆ setIntegrate()

void Herwig::DecayPhaseSpaceMode::setIntegrate ( int  iter,
int  points,
int  ntry 
)
inlineprotected

Set the integration parameters.

Parameters
iterThe number of iterations to use for initialization.
pointsThe number of points to use for each iteration during initialization.
ntryThe number of tries to generate a decay.

Definition at line 190 of file DecayPhaseSpaceMode.h.

◆ setMaxWeight()

void Herwig::DecayPhaseSpaceMode::setMaxWeight ( double  wgt) const
inline

Set the maximum weight for the decay.

Parameters
wgtThe maximum weight.

Definition at line 149 of file DecayPhaseSpaceMode.h.

◆ setPartialWidth()

void Herwig::DecayPhaseSpaceMode::setPartialWidth ( int  in)
inlineprotected

Set the partial width to use for normalization.

This is the partial width in the WidthGenerator object.

Parameters
inThe partial width to use.

Definition at line 201 of file DecayPhaseSpaceMode.h.

◆ setWeights()

void Herwig::DecayPhaseSpaceMode::setWeights ( const vector< double > &  in) const
inline

Set the weights for the different channels.

Parameters
inThe weights for the different channels in the multi-channel approach.

Definition at line 162 of file DecayPhaseSpaceMode.h.

◆ weight()

Energy Herwig::DecayPhaseSpaceMode::weight ( bool  cc,
int &  ichan,
const Particle in,
ParticleVector particles,
bool  first,
bool  onShell = false 
) const
inlineprotected

Return the weight for a given phase-space point.

Parameters
ccWhether we are generating the mode specified or the charge conjugate mode.
ichanThe channel to generate the weight for.
inThe incoming particle.
particlesThe outgoing particles.
firstWhether or not this is the first call for initialisation
Returns
The weight.

Definition at line 268 of file DecayPhaseSpaceMode.h.


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