Herwig 7 is hosted by Hepforge, IPPP Durham
Herwig  7.1.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 ~FFDipole ()
 Destructor.
 
virtual ParticleVector generatePhotons (const Particle &p, ParticleVector children, tDecayIntegratorPtr decayer)
 Member to generate the photons from the dipole. More...
 
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())
 
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 photon (double beta1, double ombeta1, double beta2, double ombeta2)
 Generate the momentum of a photon. More...
 
double exactDipoleWeight (double beta1, double ombeta1, double beta2, double ombeta2, unsigned int iphot)
 Calculate the exact weight for the dipole. More...
 
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. More...
 
bool boostMomenta (const Boost &boost)
 Boost all the momenta from the dipole rest frame via the parent rest frame to the lab. More...
 
unsigned int removePhotons ()
 Remove any photons which fail the energy cuts. More...
 
double collinearWeight (const ParticleVector &children)
 The real emission weight in the collinear limit.
 
double virtualWeight (const ParticleVector &children)
 The vrtiual correction weight.
 
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 dofinish ()
 Finalize this object. 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 doinit ()
 
virtual void doinitrun ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinit ()
 
virtual void doinitrun ()
 
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

FFDipoleoperator= (const FFDipole &)
 The assignment operator is private and must never be called. More...
 
void printDebugInfo (const Particle &p, const ParticleVector &children, double wgt) const
 Debug output.
 

Private Attributes

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< 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.
 
vector< Lorentz5Momentum > _qdrf
 Momenta of the particles in the dipole rest frame. More...
 
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. 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.
 
unsigned int _nweight
 Storage of averages etc for testing. More...
 
double _wgtsum
 Sum of weights.
 
double _wgtsq
 Sum of squares of weights.
 
bool _weightOutput
 Whether or not to output the averages.
 

Static Private Attributes

static ClassDescription< FFDipoleinitFFDipole
 The static object used to initialize the description of this class. More...
 

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

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 105 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 137 of file FFDipole.h.

References 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 111 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.

◆ 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 )
private

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

◆ _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 391 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 360 of file FFDipole.h.

◆ _nweight

unsigned int Herwig::FFDipole::_nweight
private

Storage of averages etc for testing.

Number of attempts

Definition at line 451 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 284 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 333 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 288 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 308 of file FFDipole.h.

◆ initFFDipole

ClassDescription<FFDipole> Herwig::FFDipole::initFFDipole
staticprivate

The static object used to initialize the description of this class.

Indicates that this is a concrete class with persistent data.

Definition at line 223 of file FFDipole.h.


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