Herwig++
2.7.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 <DecayPhaseSpaceChannel.h>
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 | |
DecayPhaseSpaceChannel & | operator= (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. |
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.
void Herwig::DecayPhaseSpaceChannel::addIntermediate | ( | PDPtr | part, |
int | jac, | ||
double | power, | ||
int | dau1, | ||
int | dau2 | ||
) | [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.
double Herwig::DecayPhaseSpaceChannel::atanhelper_ | ( | int | ires, |
Energy | limit | ||
) | [private] |
Helper function for the weight calculation.
ires | The resonance to be generated. |
limit | The limit on the particle's mass. |
virtual IBPtr Herwig::DecayPhaseSpaceChannel::clone | ( | ) | const [inline, protected, virtual] |
Make a simple clone of this 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.
InitException | if 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.
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.
cc | Whether the particles are the mode specified or its charge conjugate. |
in | The incoming particles. |
out | The outgoing particles. |
Energy Herwig::DecayPhaseSpaceChannel::generateMass | ( | int | ires, |
Energy | lower, | ||
Energy | upper | ||
) | [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::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.
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::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.
output | The 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.
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. |
Reimplemented from ThePEG::Interfaced.
void Herwig::DecayPhaseSpaceChannel::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the 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.
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.
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.
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 |