herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
Herwig::DecayPhaseSpaceChannel Class Reference

This class is designed to store the information needed for a given phase-space channel for use by the multi-channel phase space decayer and perform the generation of the phase space for that channel. More...

#include <DecayPhaseSpaceChannel.h>

Inheritance diagram for Herwig::DecayPhaseSpaceChannel:

List of all members.

Public Member Functions

Standard constructors and destructors.
 DecayPhaseSpaceChannel ()
 Default constructor.
 DecayPhaseSpaceChannel (tcDecayPhaseSpaceModePtr)
 Constructor with a pointer to a DecayPhaseSpaceMode.
Set-up Members
void addIntermediate (PDPtr part, int jac, double power, int dau1, int dau2)
 Add a new intermediate particle.
void resetIntermediate (tcPDPtr part, Energy mass, Energy width)
 Reset the properties of an intermediate particle.
void resetDaughter (int oldp, int newp)
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

Phase-Space Generation Members
vector< Lorentz5Momentum > generateMomenta (const Lorentz5Momentum &pin, const vector< Energy > &massext)
 Generate the momenta of the external particles.
double generateWeight (const vector< Lorentz5Momentum > &output)
 Generate the weight for this channel given a phase space configuration.
void generateIntermediates (bool cc, const Particle &in, ParticleVector &out)
 Generate the final-state particles including the intermediate resonances.
void twoBodyDecay (const Lorentz5Momentum &p, const Energy m1, const Energy m2, Lorentz5Momentum &p1, Lorentz5Momentum &p2)
 Calculate the momenta for a two body decay The return value indicates success or failure.
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.

Private Member Functions

DecayPhaseSpaceChanneloperator= (const DecayPhaseSpaceChannel &)
 Private and non-existent assignment operator.
double atanhelper_ (int ires, Energy limit)
 Helper function for the weight calculation.
Mass Generation Members
Energy generateMass (int ires, Energy lower, Energy upper)
 Generate the mass of a resonance.
InvEnergy2 massWeight (int ires, Energy moff, Energy lower, Energy upper)
 Return the weight for a given resonance.

Private Attributes

tcDecayPhaseSpaceModePtr _mode
 pointer to the mode
vector< PDPtr_intpart
 Pointers to the particle data objects of the intermediate particles.
vector< int > _jactype
 The type of jacobian to be used for the intermediates.
vector< Energy > _intmass
 The mass of the intermediates.
vector< Energy > _intwidth
 The width of the intermediates.
vector< Energy2 > _intmass2
 The mass squared of the intermediate particles.
vector< Energy2 > _intmwidth
 The mass times the width for the intermediate particles.
vector< double > _intpower
 The power for the intermediate resonance.
vector< int > _intdau1
 The first daughter of the intermediate resonance.
vector< int > _intdau2
 The second daughter of the intermediate resonance.
vector< vector< int > > _intext
 The external particles that an intermediate particle final decays to.

Static Private Attributes

static ClassDescription
< DecayPhaseSpaceChannel
initDecayPhaseSpaceChannel
 Describe a concrete class with persistent data.

Friends

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

Detailed Description

This class is designed to store the information needed for a given phase-space channel for use by the multi-channel phase space decayer and perform the generation of the phase space for that channel.

The decay channel is specified as a series of $1\to2$ decays to either external particles or other intermediates. For each intermediate the Jacobian to be used can be either a Breit-Wigner(0) or a power-law (1).

The class is then capable of generating a phase-space point using this channel and computing the weight of a given point for use in a multi-channel phase space integration using the DecayPhaseSpaceMode class.

The class is designed so that the phase-space channels can either by specified using the addIntermediate method directly or via the repository. (In practice at the moment all the channels are constructed by the relevant decayers using the former method at the moment.)

See also:
DecayPhaseSpaceMode
DecayIntegrator
Author:
Peter Richardson

Definition at line 52 of file DecayPhaseSpaceChannel.h.


Constructor & Destructor Documentation

Constructor with a pointer to a DecayPhaseSpaceMode.

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


Member Function Documentation

void Herwig::DecayPhaseSpaceChannel::addIntermediate ( PDPtr  part,
int  jac,
double  power,
int  dau1,
int  dau2 
) [inline]

Add a new intermediate particle.

Parameters:
partA pointer to the particle data object for the intermediate.
jacThe jacobian to be used for the generation of the particle's mass 0 is a Breit-Wigner and 1 is a power-law
powerThe power to beb used for the mass generation if a power law mass distribution is chosen.
dau1The first daughter. If this is postive it is the $dau1$ th outgoing particle (0 is the incoming particle), if it is negative it is the $|dau1|$ intermediate. The intermediates are specified in the order they are added with 0 being the incoming particle.
dau2The first daughter. If this is postive it is the $dau2$ th outgoing particle (0 is the incoming particle), if it is negative it is the $|dau2|$ intermediate. The intermediates are specified in the order they are added with 0 being the incoming particle.

Definition at line 102 of file DecayPhaseSpaceChannel.h.

double Herwig::DecayPhaseSpaceChannel::atanhelper_ ( int  ires,
Energy  limit 
) [private]

Helper function for the weight calculation.

Parameters:
iresThe resonance to be generated.
limitThe limit on the particle's mass.
virtual IBPtr Herwig::DecayPhaseSpaceChannel::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 227 of file DecayPhaseSpaceChannel.h.

virtual void Herwig::DecayPhaseSpaceChannel::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.

virtual void Herwig::DecayPhaseSpaceChannel::doinitrun ( ) [protected, virtual]

Initialize this object.

Called in the run phase just before a run begins.

Reimplemented from ThePEG::InterfacedBase.

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

void Herwig::DecayPhaseSpaceChannel::generateIntermediates ( bool  cc,
const Particle in,
ParticleVector out 
) [protected]

Generate the final-state particles including the intermediate resonances.

This method takes the outgoing particles and adds the intermediate particles specified by this phase-space channel. This is to allow a given set of intermediates to be specified even when there is interference between different intermediate states.

Parameters:
ccWhether the particles are the mode specified or its charge conjugate.
inThe incoming particles.
outThe outgoing particles.
Energy Herwig::DecayPhaseSpaceChannel::generateMass ( int  ires,
Energy  lower,
Energy  upper 
) [private]

Generate the mass of a resonance.

Parameters:
iresThe resonance to be generated.
lowerThe lower limit on the particle's mass.
upperThe upper limit on the particle's mass.
vector<Lorentz5Momentum> Herwig::DecayPhaseSpaceChannel::generateMomenta ( const Lorentz5Momentum &  pin,
const vector< Energy > &  massext 
) [protected]

Generate the momenta of the external particles.

This member uses the masses of the external particles generated by the DecayPhaseMode class and the intermediates for the channel to generate the momenta of the decay products.

Parameters:
pinThe momenta of the decay products. This is outputed by the member.
massextThe masses of the particles. This is to allow inclusion of off-shell effects for the external particles.
double Herwig::DecayPhaseSpaceChannel::generateWeight ( const vector< Lorentz5Momentum > &  output) [protected]

Generate the weight for this channel given a phase space configuration.

This member generates the weight for a given phase space configuration and is used by the DecayPhaseSpaceMode class to compute the denominator of the weight in the multi-channel integration.

Parameters:
outputThe momenta of the outgoing particles.
InvEnergy2 Herwig::DecayPhaseSpaceChannel::massWeight ( int  ires,
Energy  moff,
Energy  lower,
Energy  upper 
) [private]

Return the weight for a given resonance.

Parameters:
iresThe resonance to be generated.
moffThe mass of the resonance.
lowerThe lower limit on the particle's mass.
upperThe upper limit on the particle's mass.

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::DecayPhaseSpaceChannel::resetIntermediate ( tcPDPtr  part,
Energy  mass,
Energy  width 
) [inline]

Reset the properties of an intermediate particle.

This member is used when a Decayer is used a different value for either the mass or width of a resonace to that in the ParticleData object. This improves the efficiency of the integration.

Parameters:
partA pointer to the particle data object for the intermediate.
massThe new mass of the intermediate
widthThe new width of the intermediate.

Definition at line 119 of file DecayPhaseSpaceChannel.h.

void Herwig::DecayPhaseSpaceChannel::twoBodyDecay ( const Lorentz5Momentum &  p,
const Energy  m1,
const Energy  m2,
Lorentz5Momentum &  p1,
Lorentz5Momentum &  p2 
) [protected]

Calculate the momenta for a two body decay The return value indicates success or failure.

Parameters:
pThe momentum of the decaying particle
m1The mass of the first decay product
m2The mass of the second decay product
p1The momentum of the first decay product
p2The momentum of the second decay product

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