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

Public Member Functions

Standard constructors and destructors.
 DecayPhaseSpaceChannel ()
 Default constructor.
 
 DecayPhaseSpaceChannel (tcDecayPhaseSpaceModePtr)
 Constructor with a pointer to a DecayPhaseSpaceMode. More...
 
Set-up Members
void addIntermediate (PDPtr part, int jac, double power, int dau1, int dau2)
 Add a new intermediate particle. More...
 
void resetIntermediate (tcPDPtr part, Energy mass, Energy width)
 Reset the properties of an intermediate particle. More...
 
void resetDaughter (int oldp, int newp)
 
bool checkKinematics ()
 Check the kinematics.
 
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...
 
Standard Interfaced functions.
virtual void init ()
 Initialize this object after the setup phase before saving and EventGenerator to disk. More...
 
virtual void initrun ()
 Initialize this object. More...
 
- 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
 

Static Public Member Functions

static void Init ()
 Standard Init function used to initialize the interfaces.
 
- Static Public Member Functions inherited from ThePEG::Base
static void Init ()
 

Protected Member Functions

Phase-Space Generation Members
vector< Lorentz5Momentum > generateMomenta (const Lorentz5Momentum &pin, const vector< Energy > &massext)
 Generate the momenta of the external particles. More...
 
double generateWeight (const vector< Lorentz5Momentum > &output)
 Generate the weight for this channel given a phase space configuration. More...
 
void generateIntermediates (bool cc, const Particle &in, ParticleVector &out)
 Generate the final-state particles including the intermediate resonances. More...
 
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. More...
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 

Private Member Functions

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

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.
 

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.
 

Additional Inherited Members

- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 
- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 

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

◆ DecayPhaseSpaceChannel()

Herwig::DecayPhaseSpaceChannel::DecayPhaseSpaceChannel ( tcDecayPhaseSpaceModePtr  )

Constructor with a pointer to a DecayPhaseSpaceMode.

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

Member Function Documentation

◆ addIntermediate()

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.

◆ atanhelper_()

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.

◆ generateIntermediates()

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.

◆ generateMass()

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.

◆ generateMomenta()

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.

◆ generateWeight()

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.

◆ init()

virtual void Herwig::DecayPhaseSpaceChannel::init ( )
virtual

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

Exceptions
InitExceptionif object could not be initialized properly.

◆ initrun()

virtual void Herwig::DecayPhaseSpaceChannel::initrun ( )
virtual

Initialize this object.

Called in the run phase just before a run begins.

◆ massWeight()

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.

◆ persistentInput()

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

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ resetIntermediate()

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.

◆ twoBodyDecay()

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: