herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.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:

List of all members.

Public Member Functions

tcPDPtr externalParticles (int ix) const
 Access to the external particles.
unsigned int numberofParticles () const
 Number of external particles.
unsigned int numberChannels () const
 Number of channels.
void addChannel (DecayPhaseSpaceChannelPtr channel)
 Add a new channel.
void resetIntermediate (int ichan, tcPDPtr part, Energy mass, Energy width)
 Reset the properties of one of the intermediate particles.
void resetIntermediate (tcPDPtr part, Energy mass, Energy width)
 Reset the properties of one of the intermediate particles.
double maxWeight () const
 Get the maximum weight for the decay.
void setMaxWeight (double wgt) const
 Set the maximum weight for the decay.
double channelWeight (unsigned int ichan) const
 Get the weight for a channel.
void setWeights (const vector< double > &in) const
 Set the weights for the different channels.
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.
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 Public Member Functions

static void Init ()
 Standard Init function used to initialize the interfaces.

Protected Member Functions

Set-up, Initialization and Access Members
Energy initializePhaseSpace (bool init, bool onShell=false)
 Initialise the phase space.
void setIntegrate (int iter, int points, int ntry)
 Set the integration parameters.
void setPartialWidth (int in)
 Set the partial width to use for normalization.
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.
ParticleVector generate (bool intermediates, bool cc, const Particle &inpart) const
 Generate the decay.
int selectChannel (const Particle &inpart, ParticleVector &outpart) const
 Select which channel to use to output the particles.
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.
Energy flatPhaseSpace (bool cc, const Particle &inpart, ParticleVector &outpart, bool onShell=false) const
 Return the weight and momenta for a flat phase-space decay.
Energy channelPhaseSpace (bool cc, int &ichan, const Particle &in, ParticleVector &particles, bool onShell=false) const
 Generate a phase-space point using multichannel phase space.
void constructVertex (const Particle &in, const ParticleVector &out) const
 Construct the vertex for spin corrections.
vector< Energy > externalMasses (Energy inmass, double &wgt, bool onShell) const
 Generate the masses of the external particles.
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.
Standard Interfaced functions.
virtual void doinit ()
 Initialize this object after the setup phase before saving and EventGenerator to disk.
virtual void doinitrun ()
 Initialize this object to the begining of the run phase.

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
< DecayPhaseSpaceMode
initDecayPhaseSpaceMode
 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.

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

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

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.

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.
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.

virtual IBPtr Herwig::DecayPhaseSpaceMode::clone ( ) const [inline, protected, virtual]

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.

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.
virtual void Herwig::DecayPhaseSpaceMode::doinit ( ) [protected, virtual]

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.

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.

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.

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.
virtual IBPtr Herwig::DecayPhaseSpaceMode::fullclone ( ) const [inline, protected, virtual]

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.

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.
Energy Herwig::DecayPhaseSpaceMode::initializePhaseSpace ( bool  init,
bool  onShell = false 
) [protected]

Initialise the phase space.

Parameters:
initPerform the initialization.
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.

double Herwig::DecayPhaseSpaceMode::me2 ( const int  ichan,
const Particle inpart,
const ParticleVector outpart,
DecayIntegrator::MEOption  opt 
) const [inline, protected]

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.

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

Number of channels.

Returns:
The number of channels.

Definition at line 103 of file DecayPhaseSpaceMode.h.

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.

Function used to read in object persistently.

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

Reimplemented from ThePEG::Interfaced.

Function used to write out object persistently.

Parameters:
osthe persistent output stream written to.

Reimplemented from ThePEG::Interfaced.

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.

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.

int Herwig::DecayPhaseSpaceMode::selectChannel ( const Particle inpart,
ParticleVector outpart 
) const [inline, protected]

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().

void Herwig::DecayPhaseSpaceMode::setIntegrate ( int  iter,
int  points,
int  ntry 
) [inline, protected]

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.

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.

void Herwig::DecayPhaseSpaceMode::setPartialWidth ( int  in) [inline, protected]

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.

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.

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

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: