herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
Herwig::PhaseSpaceChannel 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 <PhaseSpaceChannel.h>

Classes

struct  PhaseSpaceResonance
 Struct for the intermediates in the phase-space channel. More...
 

Public Member Functions

 PhaseSpaceChannel ()
 Default constructior.
 
 PhaseSpaceChannel (tPhaseSpaceModePtr inm, bool skip=false)
 Constructor with incoming particles.
 
PhaseSpaceChanneloperator, (tPDPtr res)
 If less than zero indicate that this channel is competed.
 
PhaseSpaceChanneloperator, (int o)
 If less than zero indicate that this channel is competed.
 
void setJacobian (unsigned int ires, PhaseSpaceResonance::Jacobian jac, double power)
 Set the jacobian for a given resonance.
 
void init (tPhaseSpaceModePtr mode)
 Initialize the channel.
 
void initrun (tPhaseSpaceModePtr mode)
 Initialize the channel.
 
bool checkKinematics ()
 Check the kinematics.
 
const double & weight () const
 The weight.
 
void weight (double in)
 Set the weight.
 
void resetIntermediate (tcPDPtr part, Energy mass, Energy width)
 Reset the properties of an intermediate particle.
 
vector< Lorentz5Momentum > generateMomenta (const Lorentz5Momentum &pin, const vector< Energy > &massext) const
 Generate the momenta of the external particles.
 
double generateWeight (const vector< Lorentz5Momentum > &output) const
 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.
 
ThePEG::Ptr< ThePEG::Tree2toNDiagram >::pointer createDiagram () const
 Create a \(2\to n\) diagrams for the channel.
 

Public Attributes

friend PersistentOStream
 
friend PersistentIStream
 

Private Member Functions

void findChildren (const PhaseSpaceResonance &res, vector< int > &children)
 Find the external particles which are the children of a given resonance.
 
void twoBodyDecay (const Lorentz5Momentum &p, const Energy m1, const Energy m2, Lorentz5Momentum &p1, Lorentz5Momentum &p2) const
 Calculate the momenta for a two body decay The return value indicates success or failure.
 

Friends

PersistentOStreamoperator<< (PersistentOStream &os, const PhaseSpaceChannel &x)
 Output operator to allow the structure to be persistently written.
 
PersistentIStreamoperator>> (PersistentIStream &is, PhaseSpaceChannel &x)
 Input operator to allow persistently written data to be read in.
 
ostream & operator<< (ostream &os, const PhaseSpaceChannel &channel)
 A friend output operator to allow the channel to be outputted for debugging purposes.
 

Mass Generation Members

tPhaseSpaceModePtr mode_
 Pointer to the phase-space mode.
 
vector< PhaseSpaceResonanceintermediates_
 The intermediates.
 
int iAdd_ = -1
 Integer to keep track of what we are adding.
 
double weight_
 The weight.
 
bool initialized_
 Whether or not its been initialized.
 
bool skipFirst_
 Wheter or not to skiip the first resonance.
 
Energy generateMass (const PhaseSpaceResonance &res, Energy lower, Energy upper, const double &rnd) const
 Generate the mass of a resonance.
 
InvEnergy2 massWeight (const PhaseSpaceResonance &res, Energy moff, Energy lower, Energy upper) const
 Return the weight for a given resonance.
 
double atanhelper (const PhaseSpaceResonance &res, Energy limit) const
 Helper function for the weight calculation.
 

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 PhaseSpaceMode 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
PhaseSpaceMode
DecayIntegrator
Author
Peter Richardson

Definition at line 52 of file PhaseSpaceChannel.h.

Constructor & Destructor Documentation

◆ PhaseSpaceChannel()

Herwig::PhaseSpaceChannel::PhaseSpaceChannel ( )
inline

Default constructior.

Definition at line 121 of file PhaseSpaceChannel.h.

Member Function Documentation

◆ atanhelper()

double Herwig::PhaseSpaceChannel::atanhelper ( const PhaseSpaceResonance res,
Energy  limit 
) const
private

Helper function for the weight calculation.

Parameters
iresThe resonance to be generated.
limitThe limit on the particle's mass.

◆ findChildren()

void Herwig::PhaseSpaceChannel::findChildren ( const PhaseSpaceResonance res,
vector< int > &  children 
)
inlineprivate

Find the external particles which are the children of a given resonance.

Definition at line 293 of file PhaseSpaceChannel.h.

References Herwig::PhaseSpaceChannel::PhaseSpaceResonance::children, findChildren(), intermediates_, and Herwig::PhaseSpaceChannel::PhaseSpaceResonance::particle.

Referenced by findChildren().

◆ generateIntermediates()

void Herwig::PhaseSpaceChannel::generateIntermediates ( bool  cc,
const Particle in,
ParticleVector out 
)

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::PhaseSpaceChannel::generateMass ( const PhaseSpaceResonance res,
Energy  lower,
Energy  upper,
const double &  rnd 
) const
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::PhaseSpaceChannel::generateMomenta ( const Lorentz5Momentum &  pin,
const vector< Energy > &  massext 
) const

Generate the momenta of the external particles.

This member uses the masses of the external particles generated by the PhaseMode 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::PhaseSpaceChannel::generateWeight ( const vector< Lorentz5Momentum > &  output) const

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 PhaseSpaceMode class to compute the denominator of the weight in the multi-channel integration.

Parameters
outputThe momenta of the outgoing particles.

◆ massWeight()

InvEnergy2 Herwig::PhaseSpaceChannel::massWeight ( const PhaseSpaceResonance res,
Energy  moff,
Energy  lower,
Energy  upper 
) const
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.

◆ operator,() [1/2]

PhaseSpaceChannel & Herwig::PhaseSpaceChannel::operator, ( int  o)
inline

If less than zero indicate that this channel is competed.

Otherwise signal the parent of the next added parton.

Definition at line 151 of file PhaseSpaceChannel.h.

References iAdd_, and intermediates_.

◆ operator,() [2/2]

PhaseSpaceChannel & Herwig::PhaseSpaceChannel::operator, ( tPDPtr  res)
inline

If less than zero indicate that this channel is competed.

Otherwise signal the parent of the next added parton.

Definition at line 132 of file PhaseSpaceChannel.h.

References iAdd_, intermediates_, and skipFirst_.

◆ resetIntermediate()

void Herwig::PhaseSpaceChannel::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 210 of file PhaseSpaceChannel.h.

References intermediates_, and ThePEG::sqr().

◆ setJacobian()

void Herwig::PhaseSpaceChannel::setJacobian ( unsigned int  ires,
PhaseSpaceResonance::Jacobian  jac,
double  power 
)
inline

Set the jacobian for a given resonance.

Definition at line 169 of file PhaseSpaceChannel.h.

References intermediates_.

◆ twoBodyDecay()

void Herwig::PhaseSpaceChannel::twoBodyDecay ( const Lorentz5Momentum &  p,
const Energy  m1,
const Energy  m2,
Lorentz5Momentum &  p1,
Lorentz5Momentum &  p2 
) const
private

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

◆ weight() [1/2]

const double & Herwig::PhaseSpaceChannel::weight ( ) const
inline

The weight.

Definition at line 194 of file PhaseSpaceChannel.h.

References weight_.

◆ weight() [2/2]

void Herwig::PhaseSpaceChannel::weight ( double  in)
inline

Set the weight.

Definition at line 199 of file PhaseSpaceChannel.h.

References weight_.

Friends And Related Function Documentation

◆ operator<<

PersistentOStream & operator<< ( PersistentOStream os,
const PhaseSpaceChannel x 
)
friend

Output operator to allow the structure to be persistently written.

Parameters
osThe output stream
xThe intermediate

Definition at line 265 of file PhaseSpaceChannel.h.

◆ operator>>

PersistentIStream & operator>> ( PersistentIStream is,
PhaseSpaceChannel x 
)
friend

Input operator to allow persistently written data to be read in.

Parameters
isThe input stream
xThe NBVertex

Definition at line 276 of file PhaseSpaceChannel.h.

Member Data Documentation

◆ iAdd_

int Herwig::PhaseSpaceChannel::iAdd_ = -1
private

Integer to keep track of what we are adding.

Definition at line 364 of file PhaseSpaceChannel.h.

Referenced by operator,().

◆ initialized_

bool Herwig::PhaseSpaceChannel::initialized_
private

Whether or not its been initialized.

Definition at line 374 of file PhaseSpaceChannel.h.

◆ intermediates_

vector<PhaseSpaceResonance> Herwig::PhaseSpaceChannel::intermediates_
private

The intermediates.

Definition at line 359 of file PhaseSpaceChannel.h.

Referenced by findChildren(), operator,(), resetIntermediate(), and setJacobian().

◆ mode_

tPhaseSpaceModePtr Herwig::PhaseSpaceChannel::mode_
private

Pointer to the phase-space mode.

Definition at line 354 of file PhaseSpaceChannel.h.

◆ PersistentIStream

friend Herwig::PhaseSpaceChannel::PersistentIStream

Definition at line 57 of file PhaseSpaceChannel.h.

◆ PersistentOStream

friend Herwig::PhaseSpaceChannel::PersistentOStream

Definition at line 56 of file PhaseSpaceChannel.h.

◆ skipFirst_

bool Herwig::PhaseSpaceChannel::skipFirst_
private

Wheter or not to skiip the first resonance.

Definition at line 379 of file PhaseSpaceChannel.h.

Referenced by operator,().

◆ weight_

double Herwig::PhaseSpaceChannel::weight_
private

The weight.

Definition at line 369 of file PhaseSpaceChannel.h.

Referenced by weight().


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