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

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

#include <IFDipole.h>

Inheritance diagram for Herwig::IFDipole:

Public Member Functions

Standard constructors and destructors.
 IFDipole ()
 The default constructor.
 
virtual ParticleVector generatePhotons (const Particle &p, ParticleVector children)
 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.
 
- 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.

double _alpha
 the fine structure constant at $q^2=0$
 
Energy _emin
 The minimum photon energy.
 
Energy _emax
 The maximum photon energy.
 
unsigned int _multiplicity
 Photon multiplicity being generated.
 
vector< int > _map
 Map from arguments of lists such that _q???[_map[0]] is the charged child and _q???[_map[1]] is the neutral child.
 
vector< Energy > _m
 Masses of the particles involved.
 
double _chrg1
 charge of the parent particle
 
double _chrg2
 charge of the (charged) child particle
 
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.
 
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.
 
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk.
 
double nbar (double beta1, double ombeta1)
 Average crude photon multiplicity.
 
double photon (double beta1, double ombeta1)
 Generate the momentum of a photon.
 
double exactDipoleWeight (double beta1, double ombeta1, unsigned int iphot)
 Calculate the exact weight for the dipole.
 
double crudeYFSFormFactor (double b, double omb)
 The crude YFS form factor for calculating the weight.
 
double exactYFSFormFactor (double beta1, double ombeta1, double beta2, double ombeta2)
 The exact YFS form factor for calculating the weight.
 
double jacobianWeight ()
 Jacobian factor for the weight.
 
double meWeight (ParticleVector children)
 Matrix element weight.
 
double makePhotons (Boost boost, ParticleVector children)
 Member which generates the photons.
 
LorentzRotation solveBoost (const Lorentz5Momentum &q, const Lorentz5Momentum &p) const
 Compute a Lorentz transform from p to q.
 
IFDipoleoperator= (const IFDipole &)=delete
 The assignment operator is private and must never be called.
 

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 IFDipole 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 IFDipole.

Definition at line 35 of file IFDipole.h.

Constructor & Destructor Documentation

◆ IFDipole()

Herwig::IFDipole::IFDipole ( )
inline

The default constructor.

Definition at line 44 of file IFDipole.h.

Member Function Documentation

◆ clone()

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

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

Definition at line 97 of file IFDipole.h.

◆ crudeYFSFormFactor()

double Herwig::IFDipole::crudeYFSFormFactor ( double  b,
double  omb 
)
inlineprotected

The crude YFS form factor for calculating the weight.

Parameters
bVelocity of the first charged particle, \(\beta_1\)
ombOne minus the velocity of the first particle, \(1-\beta_1\)
Returns
The YFS form factor

Definition at line 165 of file IFDipole.h.

References _alpha, _chrg1, _chrg2, _emin, _m, and ThePEG::Constants::pi.

◆ doinit()

virtual void Herwig::IFDipole::doinit ( )
protectedvirtual

Initialize this object after the setup phase before saving an EventGenerator to disk.

Exceptions
InitExceptionif object could not be initialized properly.

Reimplemented from ThePEG::InterfacedBase.

◆ exactDipoleWeight()

double Herwig::IFDipole::exactDipoleWeight ( double  beta1,
double  ombeta1,
unsigned int  iphot 
)
inlineprotected

Calculate the exact weight for the dipole.

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

Definition at line 147 of file IFDipole.h.

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

◆ exactYFSFormFactor()

double Herwig::IFDipole::exactYFSFormFactor ( double  beta1,
double  ombeta1,
double  beta2,
double  ombeta2 
)
protected

The exact YFS form factor for calculating the weight.

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\)
Returns
The YFS form factor

◆ fullclone()

virtual IBPtr Herwig::IFDipole::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 103 of file IFDipole.h.

◆ generatePhotons()

virtual ParticleVector Herwig::IFDipole::generatePhotons ( const Particle p,
ParticleVector  children 
)
virtual

Member to generate the photons from the dipole.

Parameters
pThe decaying particle
childrenThe decay products
Returns
The decay products with additional radiation

◆ Init()

static void Herwig::IFDipole::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.

◆ makePhotons()

double Herwig::IFDipole::makePhotons ( Boost  boost,
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

◆ nbar()

double Herwig::IFDipole::nbar ( double  beta1,
double  ombeta1 
)
inlineprotected

Average crude photon multiplicity.

Parameters
beta1Velocity of the first charged particle, \(\beta_1\).
ombeta1One minus the velocity of the first particle, \(1-\beta_1\).
Returns
The average photon multiplicity

Definition at line 126 of file IFDipole.h.

References _alpha, _chrg1, _chrg2, _emax, _emin, and ThePEG::Constants::pi.

◆ operator=()

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

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ persistentInput()

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

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ photon()

double Herwig::IFDipole::photon ( double  beta1,
double  ombeta1 
)
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
Returns
The contribution to the dipole weight

◆ solveBoost()

LorentzRotation Herwig::IFDipole::solveBoost ( const Lorentz5Momentum &  q,
const Lorentz5Momentum &  p 
) const
protected

Compute a Lorentz transform from p to q.

Parameters
pOriginal momentum
qFinal momentum

Member Data Documentation

◆ _alpha

double Herwig::IFDipole::_alpha
private

the fine structure constant at $q^2=0$

Definition at line 220 of file IFDipole.h.

Referenced by crudeYFSFormFactor(), and nbar().

◆ _betaopt

unsigned int Herwig::IFDipole::_betaopt
private

Option for the inclusion of higher order corrections.

Definition at line 375 of file IFDipole.h.

◆ _bigLlab

Lorentz5Momentum Herwig::IFDipole::_bigLlab
private

Total momentum of the photons in the lab frame.

Definition at line 306 of file IFDipole.h.

◆ _bigLprf

Lorentz5Momentum Herwig::IFDipole::_bigLprf
private

Total momentum of the photons in the parent rest frame.

Definition at line 281 of file IFDipole.h.

◆ _chrg1

double Herwig::IFDipole::_chrg1
private

charge of the parent particle

Definition at line 252 of file IFDipole.h.

Referenced by crudeYFSFormFactor(), and nbar().

◆ _chrg2

double Herwig::IFDipole::_chrg2
private

charge of the (charged) child particle

Definition at line 257 of file IFDipole.h.

Referenced by crudeYFSFormFactor(), and nbar().

◆ _cosphot

vector<double> Herwig::IFDipole::_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 349 of file IFDipole.h.

Referenced by exactDipoleWeight().

◆ _dipolewgt

double Herwig::IFDipole::_dipolewgt
private

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

Reweighting factor for the real emission

Definition at line 318 of file IFDipole.h.

◆ _emax

Energy Herwig::IFDipole::_emax
private

The maximum photon energy.

Definition at line 230 of file IFDipole.h.

Referenced by nbar().

◆ _emin

Energy Herwig::IFDipole::_emin
private

The minimum photon energy.

Definition at line 225 of file IFDipole.h.

Referenced by crudeYFSFormFactor(), and nbar().

◆ _energyopt

unsigned int Herwig::IFDipole::_energyopt
private

Option for the energy cut-off.

Definition at line 370 of file IFDipole.h.

◆ _jacobianwgt

double Herwig::IFDipole::_jacobianwgt
private

Reweighting factor due to phase space.

Definition at line 328 of file IFDipole.h.

◆ _llab

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

Momenta of the photons in the lab frame.

Definition at line 301 of file IFDipole.h.

◆ _lprf

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

Momenta of the photons in the parent rest frame.

Definition at line 276 of file IFDipole.h.

◆ _m

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

Masses of the particles involved.

Definition at line 247 of file IFDipole.h.

Referenced by crudeYFSFormFactor().

◆ _map

vector<int> Herwig::IFDipole::_map
private

Map from arguments of lists such that _q???[_map[0]] is the charged child and _q???[_map[1]] is the neutral child.

Definition at line 242 of file IFDipole.h.

◆ _maxtry

unsigned int Herwig::IFDipole::_maxtry
private

Maximum number of attempts to generate a result.

Definition at line 365 of file IFDipole.h.

◆ _maxwgt

double Herwig::IFDipole::_maxwgt
private

Maximum weight.

Definition at line 338 of file IFDipole.h.

◆ _mewgt

double Herwig::IFDipole::_mewgt
private

Reweighting factor due to matrix element corrections.

Definition at line 333 of file IFDipole.h.

◆ _mode

unsigned int Herwig::IFDipole::_mode
private

Type of unweighting to perform.

Definition at line 360 of file IFDipole.h.

◆ _multiplicity

unsigned int Herwig::IFDipole::_multiplicity
private

Photon multiplicity being generated.

Definition at line 235 of file IFDipole.h.

◆ _qlab

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

Momentum of the particles in the lab frame.

Momenta of the charged particles in the lab frame before radiation

Definition at line 291 of file IFDipole.h.

◆ _qnewlab

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

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

Definition at line 296 of file IFDipole.h.

◆ _qnewprf

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

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

Definition at line 271 of file IFDipole.h.

◆ _qprf

vector<Lorentz5Momentum> Herwig::IFDipole::_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 266 of file IFDipole.h.

◆ _sinphot

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

Sine of the photon angles.

Definition at line 354 of file IFDipole.h.

Referenced by exactDipoleWeight().

◆ _yfswgt

double Herwig::IFDipole::_yfswgt
private

Reweighting factor for the YFS form-factor.

Definition at line 323 of file IFDipole.h.


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