Herwig
7.2.1
|
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>
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 &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Private Member Functions | |
DecayPhaseSpaceChannel & | operator= (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 |
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 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.)
Definition at line 52 of file DecayPhaseSpaceChannel.h.
Herwig::DecayPhaseSpaceChannel::DecayPhaseSpaceChannel | ( | tcDecayPhaseSpaceModePtr | ) |
Constructor with a pointer to a DecayPhaseSpaceMode
.
This is the constructor which should normally be used in decayers.
|
inline |
Add a new intermediate particle.
part | A pointer to the particle data object for the intermediate. |
jac | The jacobian to be used for the generation of the particle's mass 0 is a Breit-Wigner and 1 is a power-law |
power | The power to beb used for the mass generation if a power law mass distribution is chosen. |
dau1 | The first daughter. If this is postive it is the th outgoing particle (0 is the incoming particle), if it is negative it is the intermediate. The intermediates are specified in the order they are added with 0 being the incoming particle. |
dau2 | The first daughter. If this is postive it is the th outgoing particle (0 is the incoming particle), if it is negative it is the 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.
|
private |
Helper function for the weight calculation.
ires | The resonance to be generated. |
limit | The limit on the particle's mass. |
|
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.
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. |
|
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.
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. |
|
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.
output | The momenta of the outgoing particles. |
|
virtual |
Initialize this object after the setup phase before saving and EventGenerator to disk.
InitException | if object could not be initialized properly. |
|
virtual |
Initialize this object.
Called in the run phase just before a run begins.
|
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. |
void Herwig::DecayPhaseSpaceChannel::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. |
void Herwig::DecayPhaseSpaceChannel::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
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 119 of file DecayPhaseSpaceChannel.h.
|
protected |
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 |