herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
Herwig::FFDipole Class Reference

The FFDipole class generates radiation from a final-final dipole for the generation of photons in decay by the SOPTHY algorithm. More...

#include <FFDipole.h>

Inheritance diagram for Herwig::FFDipole:

Public Member Functions

 FFDipole ()
 The default constructor.
 
virtual ParticleVector generatePhotons (const Particle &p, ParticleVector children, tDecayIntegratorPtr decayer)
 Member to generate the photons from the dipole.
 
- Public Member Functions inherited from ThePEG::Interfaced
virtual bool defaultInit ()
 
PPtr getParticle (PID) const
 
PDPtr getParticleData (PID) const
 
bool used () const
 
void useMe () const
 
tEGPtr generator () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
PPtr getParticle (PID) const
 
PDPtr getParticleData (PID) const
 
bool used () const
 
void useMe () const
 
tEGPtr generator () const
 
- Public Member Functions inherited from ThePEG::InterfacedBase
string fullName () const
 
string name () const
 
string path () const
 
string comment () const
 
void setup (istream &is)
 
void update ()
 
void init ()
 
virtual bool preInitialize () const
 
void initrun ()
 
void finish ()
 
void touch ()
 
void reset ()
 
void clear ()
 
InitState state () const
 
bool locked () const
 
bool touched () const
 
virtual IBPtr fullclone () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
virtual void debugme () const
 
void update ()
 
void init ()
 
virtual bool preInitialize () const
 
void initrun ()
 
void finish ()
 
void touch ()
 
void reset ()
 
void clear ()
 
InitState state () const
 
bool locked () const
 
bool touched () const
 
virtual IBPtr fullclone () const
 
- 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
 
- Public Member Functions inherited from ThePEG::Named
 Named (const string &newName=string())
 
 Named (const Named &)=default
 
const string & name () const
 
bool operator== (const Named &other) const
 
bool operator< (const Named &other) const
 

Protected Member Functions

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.
 
double photon (double beta1, double ombeta1, double beta2, double ombeta2)
 Generate the momentum of a photon.
 
double exactDipoleWeight (double beta1, double ombeta1, double beta2, double ombeta2, unsigned int iphot)
 Calculate the exact weight for the dipole.
 
double jacobianWeight ()
 Jacobian factor for the weight.
 
double meWeight (const ParticleVector &children)
 Matrix element weight.
 
double makePhotons (const Boost &boost, const ParticleVector &children)
 Member which generates the photons.
 
bool boostMomenta (const Boost &boost)
 Boost all the momenta from the dipole rest frame via the parent rest frame to the lab.
 
unsigned int removePhotons ()
 Remove any photons which fail the energy cuts.
 
double collinearWeight (const ParticleVector &children)
 The real emission weight in the collinear limit.
 
double virtualWeight (const ParticleVector &children)
 The vrtiual correction weight.
 
- Protected Member Functions inherited from ThePEG::Interfaced
void reporeg (IBPtr object, string name) const
 
bool setDefaultReference (PtrT &ptr, string classname, string objectname)
 
 Interfaced (const string &newName)
 
 Interfaced (const Interfaced &i)
 
void setGenerator (tEGPtr generator)
 
- Protected Member Functions inherited from ThePEG::InterfacedBase
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinit ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual IBPtr clone () const=0
 
 InterfacedBase (string newName)
 
 InterfacedBase (const InterfacedBase &i)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinit ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 
const string & name (const string &newName)
 

Standard Interfaced functions.

Energy _emin
 The minimum photon energy in the boosted frame.
 
Energy _eminrest
 The minimum photon energy in the rest frame.
 
Energy _eminlab
 The minimum photon energy in the lab frame.
 
Energy _emax
 The maximum photon energy.
 
unsigned int _multiplicity
 Photon multiplicity being generated.
 
vector< Energy > _m
 Masses of the particles involved.
 
double _charge
 Produce of the particles charges.
 
vector< Lorentz5Momentum > _qdrf
 Momenta of the particles in the dipole rest frame.
 
vector< Lorentz5Momentum > _qnewdrf
 
vector< Lorentz5Momentum > _ldrf
 Momenta of the photons in the dipole rest frame.
 
Lorentz5Momentum _bigLdrf
 Total momentum of the photons in the dipole rest frame.
 
vector< Lorentz5Momentum > _qprf
 Momentum of the particles in the parent's rest frame.
 
vector< Lorentz5Momentum > _qnewprf
 Momenta of the charged particles in the parent's rest frame after radiation.
 
vector< Lorentz5Momentum > _lprf
 Momenta of the photons in the parent rest frame.
 
Lorentz5Momentum _bigLprf
 Total momentum of the photons in the parent rest frame.
 
vector< Lorentz5Momentum > _qlab
 Momentum of the particles in the lab frame.
 
vector< Lorentz5Momentum > _qnewlab
 Momenta of the charged particles in the lab frame after radiation.
 
vector< Lorentz5Momentum > _llab
 Momenta of the photons in the lab frame.
 
Lorentz5Momentum _bigLlab
 Total momentum of the photons in the lab frame.
 
double _dipolewgt
 Reweighting factors due to differences between the true and crude distributions.
 
double _yfswgt
 Reweighting factor for the YFS form-factor.
 
double _jacobianwgt
 Reweighting factor due to phase space.
 
double _mewgt
 Reweighting factor due to matrix element corrections.
 
double _maxwgt
 Maximum weight.
 
vector< double > _cosphot
 Angles of the photons with respect to the first charged particle which are stored for numerical accuracy.
 
vector< double > _sinphot
 Sine of the photon angles.
 
vector< double > _photonwgt
 Weights for the individual photons.
 
vector< bool > _photcut
 Whether a given photon passes the energy cut.
 
unsigned int _mode
 Type of unweighting to perform.
 
unsigned int _maxtry
 Maximum number of attempts to generate a result.
 
unsigned int _energyopt
 Option for the energy cut-off.
 
unsigned int _betaopt
 Option for the inclusion of higher order corrections.
 
unsigned int _dipoleopt
 Option for the form of the primary distribution.
 
tDecayIntegratorPtr _decayer
 The decayer.
 
tPPtr _parent
 The decaying particle.
 
unsigned int _nweight
 Storage of averages etc for testing.
 
double _wgtsum
 Sum of weights.
 
double _wgtsq
 Sum of squares of weights.
 
bool _weightOutput
 Whether or not to output the averages.
 
virtual void dofinish ()
 Finalize this object.
 
FFDipoleoperator= (const FFDipole &)=delete
 The assignment operator is private and must never be called.
 
void printDebugInfo (const Particle &p, const ParticleVector &children, double wgt) const
 Debug output.
 

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 void Init ()
 The standard Init function used to initialize the interfaces.
 

Additional Inherited Members

- Public Types inherited from ThePEG::InterfacedBase
enum  InitState
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 
- Static Public Member Functions inherited from ThePEG::Interfaced
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::InterfacedBase
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::Base
static void Init ()
 
- Public Attributes inherited from ThePEG::InterfacedBase
 initializing
 
 uninitialized
 
 initialized
 
 runready
 
- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 
- Static Protected Member Functions inherited from ThePEG::Interfaced
static void registerRepository (IBPtr)
 
static void registerRepository (IBPtr, string newName)
 

Detailed Description

The FFDipole class generates radiation from a final-final dipole for the generation of photons in decay by the SOPTHY algorithm.

See also
SOPTHY
The interfaces defined for FFDipole.

Definition at line 38 of file FFDipole.h.

Constructor & Destructor Documentation

◆ FFDipole()

Herwig::FFDipole::FFDipole ( )
inline

The default constructor.

Definition at line 45 of file FFDipole.h.

Member Function Documentation

◆ boostMomenta()

bool Herwig::FFDipole::boostMomenta ( const Boost &  boost)
protected

Boost all the momenta from the dipole rest frame via the parent rest frame to the lab.

Parameters
boostThe boost vector from the rest frame to the lab
Returns
Whether or not it suceeded

◆ clone()

virtual IBPtr Herwig::FFDipole::clone ( ) const
inlineprotectedvirtual

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

Definition at line 100 of file FFDipole.h.

◆ dofinish()

virtual void Herwig::FFDipole::dofinish ( )
protectedvirtual

Finalize this object.

Called in the run phase just after a run has ended. Used eg. to write out statistics.

Reimplemented from ThePEG::InterfacedBase.

◆ exactDipoleWeight()

double Herwig::FFDipole::exactDipoleWeight ( double  beta1,
double  ombeta1,
double  beta2,
double  ombeta2,
unsigned int  iphot 
)
inlineprotected

Calculate the exact weight for the dipole.

Parameters
beta1Velocity of the first charged particle, \(\beta_1\)
beta2Velocity of the second charged particle, \(\beta_2\).
ombeta1One minus the velocity of the first particle, \(1-\beta_1\)
ombeta2One minus the velocity of the second particle, \(1-\beta_2\)
iphotThe number of the photon for which the weight is required
Returns
The weight

Definition at line 132 of file FFDipole.h.

References _cosphot, _sinphot, and ThePEG::sqr().

◆ fullclone()

virtual IBPtr Herwig::FFDipole::fullclone ( ) const
inlineprotectedvirtual

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns
a pointer to the new object.

Reimplemented from ThePEG::InterfacedBase.

Definition at line 106 of file FFDipole.h.

◆ generatePhotons()

virtual ParticleVector Herwig::FFDipole::generatePhotons ( const Particle p,
ParticleVector  children,
tDecayIntegratorPtr  decayer 
)
virtual

Member to generate the photons from the dipole.

Parameters
pThe decaying particle
childrenThe decay products
decayerThe decayer for this mode
Returns
The decay products with additional radiation

◆ Init()

static void Herwig::FFDipole::Init ( )
static

The standard Init function used to initialize the interfaces.

Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.

◆ jacobianWeight()

double Herwig::FFDipole::jacobianWeight ( )
inlineprotected

Jacobian factor for the weight.

Definition at line 153 of file FFDipole.h.

References _bigLdrf, _m, _qnewdrf, Herwig::Kinematics::pstarTwoBodyDecay(), ThePEG::sqr(), and ThePEG::sqrt().

◆ makePhotons()

double Herwig::FFDipole::makePhotons ( const Boost &  boost,
const ParticleVector children 
)
protected

Member which generates the photons.

Parameters
boostBoost vector to take the particles produced back from the decaying particle's rest frame to the lab
childrenThe decay products

◆ operator=()

FFDipole & Herwig::FFDipole::operator= ( const FFDipole )
privatedelete

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ persistentInput()

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

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ photon()

double Herwig::FFDipole::photon ( double  beta1,
double  ombeta1,
double  beta2,
double  ombeta2 
)
protected

Generate the momentum of a photon.

Parameters
beta1The velocity, \(\beta_1\), of the first charged particle
ombeta1One minus the velocity, \(1-\beta_1\), of the first charged particle which is supplied for numerical stability
beta2The velocity, \(\beta_2\), of the second charged particle
ombeta2One minus the velocity, \(1-\beta_2\), of the second charged particle which is supplied for numerical stability
Returns
The contribution to the dipole weight

◆ removePhotons()

unsigned int Herwig::FFDipole::removePhotons ( )
protected

Remove any photons which fail the energy cuts.

Returns
Number of photons removed

Member Data Documentation

◆ _betaopt

unsigned int Herwig::FFDipole::_betaopt
private

Option for the inclusion of higher order corrections.

Definition at line 416 of file FFDipole.h.

◆ _bigLdrf

Lorentz5Momentum Herwig::FFDipole::_bigLdrf
private

Total momentum of the photons in the dipole rest frame.

Definition at line 287 of file FFDipole.h.

Referenced by jacobianWeight().

◆ _bigLlab

Lorentz5Momentum Herwig::FFDipole::_bigLlab
private

Total momentum of the photons in the lab frame.

Definition at line 337 of file FFDipole.h.

◆ _bigLprf

Lorentz5Momentum Herwig::FFDipole::_bigLprf
private

Total momentum of the photons in the parent rest frame.

Definition at line 312 of file FFDipole.h.

◆ _charge

double Herwig::FFDipole::_charge
private

Produce of the particles charges.

Definition at line 264 of file FFDipole.h.

◆ _cosphot

vector<double> Herwig::FFDipole::_cosphot
private

Angles of the photons with respect to the first charged particle which are stored for numerical accuracy.

Cosine of the photon angles

Definition at line 380 of file FFDipole.h.

Referenced by exactDipoleWeight().

◆ _decayer

tDecayIntegratorPtr Herwig::FFDipole::_decayer
private

The decayer.

Definition at line 426 of file FFDipole.h.

◆ _dipoleopt

unsigned int Herwig::FFDipole::_dipoleopt
private

Option for the form of the primary distribution.

Definition at line 421 of file FFDipole.h.

◆ _dipolewgt

double Herwig::FFDipole::_dipolewgt
private

Reweighting factors due to differences between the true and crude distributions.

Reweighting factor for the real emission

Definition at line 349 of file FFDipole.h.

◆ _emax

Energy Herwig::FFDipole::_emax
private

The maximum photon energy.

Definition at line 249 of file FFDipole.h.

◆ _emin

Energy Herwig::FFDipole::_emin
private

The minimum photon energy in the boosted frame.

Definition at line 234 of file FFDipole.h.

◆ _eminlab

Energy Herwig::FFDipole::_eminlab
private

The minimum photon energy in the lab frame.

Definition at line 244 of file FFDipole.h.

◆ _eminrest

Energy Herwig::FFDipole::_eminrest
private

The minimum photon energy in the rest frame.

Definition at line 239 of file FFDipole.h.

◆ _energyopt

unsigned int Herwig::FFDipole::_energyopt
private

Option for the energy cut-off.

Definition at line 411 of file FFDipole.h.

◆ _jacobianwgt

double Herwig::FFDipole::_jacobianwgt
private

Reweighting factor due to phase space.

Definition at line 359 of file FFDipole.h.

◆ _ldrf

vector<Lorentz5Momentum> Herwig::FFDipole::_ldrf
private

Momenta of the photons in the dipole rest frame.

Definition at line 282 of file FFDipole.h.

◆ _llab

vector<Lorentz5Momentum> Herwig::FFDipole::_llab
private

Momenta of the photons in the lab frame.

Definition at line 332 of file FFDipole.h.

◆ _lprf

vector<Lorentz5Momentum> Herwig::FFDipole::_lprf
private

Momenta of the photons in the parent rest frame.

Definition at line 307 of file FFDipole.h.

◆ _m

vector<Energy> Herwig::FFDipole::_m
private

Masses of the particles involved.

Definition at line 259 of file FFDipole.h.

Referenced by jacobianWeight().

◆ _maxtry

unsigned int Herwig::FFDipole::_maxtry
private

Maximum number of attempts to generate a result.

Definition at line 406 of file FFDipole.h.

◆ _maxwgt

double Herwig::FFDipole::_maxwgt
private

Maximum weight.

Definition at line 369 of file FFDipole.h.

◆ _mewgt

double Herwig::FFDipole::_mewgt
private

Reweighting factor due to matrix element corrections.

Definition at line 364 of file FFDipole.h.

◆ _mode

unsigned int Herwig::FFDipole::_mode
private

Type of unweighting to perform.

Definition at line 401 of file FFDipole.h.

◆ _multiplicity

unsigned int Herwig::FFDipole::_multiplicity
private

Photon multiplicity being generated.

Definition at line 254 of file FFDipole.h.

◆ _nweight

unsigned int Herwig::FFDipole::_nweight
private

Storage of averages etc for testing.

Number of attempts

Definition at line 440 of file FFDipole.h.

◆ _parent

tPPtr Herwig::FFDipole::_parent
private

The decaying particle.

Definition at line 431 of file FFDipole.h.

◆ _photcut

vector<bool> Herwig::FFDipole::_photcut
private

Whether a given photon passes the energy cut.

Definition at line 396 of file FFDipole.h.

◆ _photonwgt

vector<double> Herwig::FFDipole::_photonwgt
private

Weights for the individual photons.

Definition at line 391 of file FFDipole.h.

◆ _qdrf

vector<Lorentz5Momentum> Herwig::FFDipole::_qdrf
private

Momenta of the particles in the dipole rest frame.

Momenta of the charged particles in the dipole rest frame before radiation

Definition at line 273 of file FFDipole.h.

◆ _qlab

vector<Lorentz5Momentum> Herwig::FFDipole::_qlab
private

Momentum of the particles in the lab frame.

Momenta of the charged particles in the lab frame before radiation

Definition at line 322 of file FFDipole.h.

◆ _qnewdrf

vector<Lorentz5Momentum> Herwig::FFDipole::_qnewdrf
private
  • Momenta of the charged particles in the dipole rest frame after radiation

Definition at line 277 of file FFDipole.h.

Referenced by jacobianWeight().

◆ _qnewlab

vector<Lorentz5Momentum> Herwig::FFDipole::_qnewlab
private

Momenta of the charged particles in the lab frame after radiation.

Definition at line 327 of file FFDipole.h.

◆ _qnewprf

vector<Lorentz5Momentum> Herwig::FFDipole::_qnewprf
private

Momenta of the charged particles in the parent's rest frame after radiation.

Definition at line 302 of file FFDipole.h.

◆ _qprf

vector<Lorentz5Momentum> Herwig::FFDipole::_qprf
private

Momentum of the particles in the parent's rest frame.

Momenta of the charged particles in the parent's rest frame before radiation

Definition at line 297 of file FFDipole.h.

◆ _sinphot

vector<double> Herwig::FFDipole::_sinphot
private

Sine of the photon angles.

Definition at line 385 of file FFDipole.h.

Referenced by exactDipoleWeight().

◆ _weightOutput

bool Herwig::FFDipole::_weightOutput
private

Whether or not to output the averages.

Definition at line 455 of file FFDipole.h.

◆ _wgtsq

double Herwig::FFDipole::_wgtsq
private

Sum of squares of weights.

Definition at line 450 of file FFDipole.h.

◆ _wgtsum

double Herwig::FFDipole::_wgtsum
private

Sum of weights.

Definition at line 445 of file FFDipole.h.

◆ _yfswgt

double Herwig::FFDipole::_yfswgt
private

Reweighting factor for the YFS form-factor.

Definition at line 354 of file FFDipole.h.


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