herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
FILightKinematics.h
1// -*- C++ -*-
2//
3// FILightKinematics.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4// Copyright (C) 2002-2019 The Herwig Collaboration
5//
6// Herwig is licenced under version 3 of the GPL, see COPYING for details.
7// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8//
9#ifndef HERWIG_FILightKinematics_H
10#define HERWIG_FILightKinematics_H
11//
12// This is the declaration of the FILightKinematics class.
13//
14
15#include "DipoleSplittingKinematics.h"
16
17namespace Herwig {
18
19using namespace ThePEG;
20
30
31public:
32
37
38public:
39
43 virtual Energy ptMax(Energy dScale,
44 double emX, double specX,
45 const DipoleIndex& dIndex,
46 const DipoleSplittingKernel&) const;
47
51 virtual Energy QMax(Energy dScale,
52 double emX, double specX,
53 const DipoleIndex& dIndex,
54 const DipoleSplittingKernel&) const;
55
59 virtual Energy PtFromQ(Energy scale, const DipoleSplittingInfo&) const;
60
64 virtual Energy QFromPt(Energy scale, const DipoleSplittingInfo&) const;
65
69 virtual pair<double,double> zBoundaries(Energy pt,
70 const DipoleSplittingInfo& dInfo,
71 const DipoleSplittingKernel& split) const;
72
78 virtual bool generateSplitting(double kappa, double xi, double phi,
79 DipoleSplittingInfo& dIndex,
81
87 virtual void generateKinematics(const Lorentz5Momentum& pEmitter,
88 const Lorentz5Momentum& pSpectator,
89 const DipoleSplittingInfo& dInfo);
90
91public:
92
100
106 void persistentInput(PersistentIStream & is, int version);
108
115 static void Init();
116
117protected:
118
125 virtual IBPtr clone() const;
126
131 virtual IBPtr fullclone() const;
133
134
135// If needed, insert declarations of virtual function defined in the
136// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
137
138
139private:
140
146
152
153};
154
155}
156
157#include "ThePEG/Utilities/ClassTraits.h"
158
159namespace ThePEG {
160
165template <>
166struct BaseClassTrait<Herwig::FILightKinematics,1> {
169};
170
173template <>
174struct ClassTraits<Herwig::FILightKinematics>
175 : public ClassTraitsBase<Herwig::FILightKinematics> {
177 static string className() { return "Herwig::FILightKinematics"; }
185 static string library() { return "HwDipoleShower.so"; }
186};
187
190}
191
192#endif /* HERWIG_FILightKinematics_H */
DipoleIndex is used to index splitting generators for a particular dipole.
DipoleSplittingInfo contains all parameters to generate a full dipole splitting.
DipoleSplittingKernel is the base class for all kernels used within the dipole shower.
DipoleSplittingKinematics is the base class for dipole splittings as performed in the dipole shower.
FILightKinematics implements massless splittings off a final-initial dipole.
virtual Energy PtFromQ(Energy scale, const DipoleSplittingInfo &) const
Return the pt given a virtuality.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual Energy QMax(Energy dScale, double emX, double specX, const DipoleIndex &dIndex, const DipoleSplittingKernel &) const
Return the maximum virtuality for the given dipole scale.
FILightKinematics()
The default constructor.
virtual Energy QFromPt(Energy scale, const DipoleSplittingInfo &) const
Return the virtuality given a pt.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual bool generateSplitting(double kappa, double xi, double phi, DipoleSplittingInfo &dIndex, const DipoleSplittingKernel &)
Generate splitting variables given three random numbers and the momentum fractions of the emitter and...
virtual pair< double, double > zBoundaries(Energy pt, const DipoleSplittingInfo &dInfo, const DipoleSplittingKernel &split) const
Return the boundaries on the momentum fraction.
static void Init()
The standard Init function used to initialize the interfaces.
static ClassDescription< FILightKinematics > initFILightKinematics
The static object used to initialize the description of this class.
FILightKinematics & operator=(const FILightKinematics &)=delete
The assignment operator is private and must never be called.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual Energy ptMax(Energy dScale, double emX, double specX, const DipoleIndex &dIndex, const DipoleSplittingKernel &) const
Return the maximum pt for the given dipole scale.
virtual void generateKinematics(const Lorentz5Momentum &pEmitter, const Lorentz5Momentum &pSpectator, const DipoleSplittingInfo &dInfo)
Generate the full kinematics given emitter and spectator momentum and a previously completeted Dipole...
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
static string className()
static string library()