Herwig 7.3.0
|
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. | |
PhaseSpaceChannel & | operator, (tPDPtr res) |
If less than zero indicate that this channel is competed. | |
PhaseSpaceChannel & | operator, (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 | |
PersistentOStream & | operator<< (PersistentOStream &os, const PhaseSpaceChannel &x) |
Output operator to allow the structure to be persistently written. | |
PersistentIStream & | operator>> (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< PhaseSpaceResonance > | intermediates_ |
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. | |
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.)
Definition at line 52 of file PhaseSpaceChannel.h.
|
inline |
Default constructior.
Definition at line 121 of file PhaseSpaceChannel.h.
|
private |
Helper function for the weight calculation.
ires | The resonance to be generated. |
limit | The limit on the particle's mass. |
|
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().
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.
cc | Whether the particles are the mode specified or its charge conjugate. |
in | The incoming particles. |
out | The outgoing particles. |
|
private |
Generate the mass of a resonance.
ires | The resonance to be generated. |
lower | The lower limit on the particle's mass. |
upper | The upper limit on the particle's mass. |
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.
pin | The momenta of the decay products. This is outputed by the member. |
massext | The masses of the particles. This is to allow inclusion of off-shell effects for the external particles. |
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.
output | The momenta of the outgoing particles. |
|
private |
Return the weight for a given resonance.
ires | The resonance to be generated. |
moff | The mass of the resonance. |
lower | The lower limit on the particle's mass. |
upper | The upper limit on the particle's mass. |
|
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_.
|
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_.
|
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.
part | A pointer to the particle data object for the intermediate. |
mass | The new mass of the intermediate |
width | The new width of the intermediate. |
Definition at line 210 of file PhaseSpaceChannel.h.
References intermediates_, and ThePEG::sqr().
|
inline |
Set the jacobian for a given resonance.
Definition at line 169 of file PhaseSpaceChannel.h.
References intermediates_.
|
private |
Calculate the momenta for a two body decay The return value indicates success or failure.
p | The momentum of the decaying particle |
m1 | The mass of the first decay product |
m2 | The mass of the second decay product |
p1 | The momentum of the first decay product |
p2 | The momentum of the second decay product |
|
inline |
|
inline |
|
friend |
Output operator to allow the structure to be persistently written.
os | The output stream |
x | The intermediate |
Definition at line 265 of file PhaseSpaceChannel.h.
|
friend |
Input operator to allow persistently written data to be read in.
is | The input stream |
x | The NBVertex |
Definition at line 276 of file PhaseSpaceChannel.h.
|
private |
Integer to keep track of what we are adding.
Definition at line 364 of file PhaseSpaceChannel.h.
Referenced by operator,().
|
private |
Whether or not its been initialized.
Definition at line 374 of file PhaseSpaceChannel.h.
|
private |
The intermediates.
Definition at line 359 of file PhaseSpaceChannel.h.
Referenced by findChildren(), operator,(), resetIntermediate(), and setJacobian().
|
private |
Pointer to the phase-space mode.
Definition at line 354 of file PhaseSpaceChannel.h.
friend Herwig::PhaseSpaceChannel::PersistentIStream |
Definition at line 57 of file PhaseSpaceChannel.h.
friend Herwig::PhaseSpaceChannel::PersistentOStream |
Definition at line 56 of file PhaseSpaceChannel.h.
|
private |
Wheter or not to skiip the first resonance.
Definition at line 379 of file PhaseSpaceChannel.h.
Referenced by operator,().
|
private |