herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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

virtual ParticleVector generatePhotons (const Particle &p, ParticleVector children)
 Member to generate the photons from the dipole. More...
 
Standard constructors and destructors.
 IFDipole ()
 The default constructor.
 
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...
 
- 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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::InterfacedBase
string fullName () const
 
string name () const
 
string path () const
 
string comment () const
 
void setup (istream &is)
 
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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::Base
void debug () 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
 

Static Public Member Functions

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

Protected Member Functions

double nbar (double beta1, double ombeta1)
 Average crude photon multiplicity. More...
 
double photon (double beta1, double ombeta1)
 Generate the momentum of a photon. More...
 
double exactDipoleWeight (double beta1, double ombeta1, unsigned int iphot)
 Calculate the exact weight for the dipole. More...
 
double crudeYFSFormFactor (double b, double omb)
 The crude YFS form factor for calculating the weight. More...
 
double exactYFSFormFactor (double beta1, double ombeta1, double beta2, double ombeta2)
 The exact YFS form factor for calculating the weight. More...
 
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. More...
 
LorentzRotation solveBoost (const Lorentz5Momentum &q, const Lorentz5Momentum &p) const
 Compute a Lorentz transform from p to q. More...
 
Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object. More...
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane. More...
 
Standard Interfaced functions.
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk. More...
 
- 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
 InterfacedBase (string newName)
 
 InterfacedBase (const InterfacedBase &i)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
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 &)
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 
const string & name (const string &newName)
 

Private Member Functions

IFDipoleoperator= (const IFDipole &)=delete
 The assignment operator is private and must never be called. More...
 

Private Attributes

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
 
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.
 
vector< Lorentz5Momentum > _qprf
 Momentum of the particles in the parent's rest frame. More...
 
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. More...
 
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. More...
 
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. More...
 
vector< double > _sinphot
 Sine of the photon angles.
 

Additional Inherited Members

- Public Types inherited from ThePEG::InterfacedBase
enum  InitState
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 
- 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.

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

◆ _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.

◆ _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.

◆ _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.

◆ _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.


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