Herwig++
2.7.0
|
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>
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 | |
DecayPhaseSpaceMode & | operator= (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. |
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.
Definition at line 43 of file DecayPhaseSpaceMode.h.
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.
in | The particle data objects for the external particles |
intin | A pointer to the DecayIntegrator class using this mode. |
onShell | Whether or not to perform tests for zero width on-shell particles |
Definition at line 80 of file DecayPhaseSpaceMode.h.
void Herwig::DecayPhaseSpaceMode::addChannel | ( | DecayPhaseSpaceChannelPtr | channel | ) | [inline] |
Add a new channel.
channel | A 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.
cc | Whether we are generating the mode specified or the charge conjugate mode. |
ichan | The channel to generate the weight for. |
in | The incoming particle. |
particles | The outgoing particles. |
double Herwig::DecayPhaseSpaceMode::channelWeight | ( | unsigned int | ichan | ) | const [inline] |
Get the weight for a channel.
This is the weight for the multi-channel approach.
ichan | 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.
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.
in | The incoming particle. |
out | The outgoing particles. |
virtual void Herwig::DecayPhaseSpaceMode::doinit | ( | ) | [protected, virtual] |
Initialize this object after the setup phase before saving and EventGenerator to disk.
InitException | if 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.
inmass | The mass of the decaying particle. |
wgt | The weight for the masses. |
tcPDPtr Herwig::DecayPhaseSpaceMode::externalParticles | ( | int | ix | ) | const [inline] |
Access to the external particles.
ix | The external particle required. |
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.
cc | Whether we are generating the mode specified or the charge conjugate mode. |
inpart | The incoming particle. |
outpart | The outgoing particles. |
virtual IBPtr Herwig::DecayPhaseSpaceMode::fullclone | ( | ) | const [inline, protected, virtual] |
Make a clone of this object, possibly modifying the cloned object to make it sane.
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.
intermediates | Whether or not to generate the intermediate particle in the decay channel. |
cc | Whether we are generating the mode specified or the charge conjugate mode. |
inpart | The incoming particle. |
Energy Herwig::DecayPhaseSpaceMode::initializePhaseSpace | ( | bool | init, |
bool | onShell = false |
||
) | [protected] |
Initialise the phase space.
init | Perform the initialization. |
double Herwig::DecayPhaseSpaceMode::maxWeight | ( | ) | const [inline] |
Get the maximum weight for the decay.
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.
ichan | The channel, this is to allow the matrix element to be used to select the intermediates |
inpart | The incoming particle. |
opt | The option for what to calculate |
outpart | The outgoing particles. |
Definition at line 216 of file DecayPhaseSpaceMode.h.
unsigned int Herwig::DecayPhaseSpaceMode::numberChannels | ( | ) | const [inline] |
Number of channels.
Definition at line 103 of file DecayPhaseSpaceMode.h.
unsigned int Herwig::DecayPhaseSpaceMode::numberofParticles | ( | ) | const [inline] |
Number of external particles.
Definition at line 97 of file DecayPhaseSpaceMode.h.
void Herwig::DecayPhaseSpaceMode::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. |
Reimplemented from ThePEG::Interfaced.
void Herwig::DecayPhaseSpaceMode::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the 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.
ichan | The channel to reset. |
part | The ParticleData object of the particle to reset |
mass | The mass of the intermediate. |
width | The 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.
part | The ParticleData object of the particle to reset |
mass | The mass of the intermediate. |
width | The 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.
inpart | The incoming particles. |
outpart | The 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.
iter | The number of iterations to use for initialization. |
points | The number of points to use for each iteration during initialization. |
ntry | The 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.
wgt | The 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.
in | The 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.
in | The 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.
cc | Whether we are generating the mode specified or the charge conjugate mode. |
ichan | The channel to generate the weight for. |
in | The incoming particle. |
particles | The outgoing particles. |
first | Whether or not this is the first call for initialisation |
Definition at line 268 of file DecayPhaseSpaceMode.h.