herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
IFLightKinematics.h
1// -*- C++ -*-
2//
3// IFLightKinematics.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_IFLightKinematics_H
10#define HERWIG_IFLightKinematics_H
11//
12// This is the declaration of the IFLightKinematics class.
13//
14
15#include "DipoleSplittingKinematics.h"
16
17namespace Herwig {
18
19using namespace ThePEG;
20
32
33public:
34
39
40public:
41
45 virtual Energy ptMax(Energy dScale,
46 double emX, double specX,
47 const DipoleIndex&,
48 const DipoleSplittingKernel&) const;
49
53 virtual Energy QMax(Energy dScale,
54 double emX, double specX,
55 const DipoleIndex& dIndex,
56 const DipoleSplittingKernel&) const;
57
61 virtual Energy PtFromQ(Energy scale, const DipoleSplittingInfo&) const;
62
66 virtual Energy QFromPt(Energy scale, const DipoleSplittingInfo&) const;
67
71 virtual pair<double,double> zBoundaries(Energy pt,
72 const DipoleSplittingInfo& dInfo,
73 const DipoleSplittingKernel& split) const;
74
80 virtual bool generateSplitting(double kappa, double xi, double phi,
81 DipoleSplittingInfo& dIndex,
83
89 virtual void generateKinematics(const Lorentz5Momentum& pEmitter,
90 const Lorentz5Momentum& pSpectator,
91 const DipoleSplittingInfo& dInfo);
92
93public:
94
102
108 void persistentInput(PersistentIStream & is, int version);
110
117 static void Init();
118
119protected:
120
127 virtual IBPtr clone() const;
128
133 virtual IBPtr fullclone() const;
135
136
137// If needed, insert declarations of virtual function defined in the
138// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
139
140
141private:
142
148
154
155private:
156
161
162};
163
164}
165
166#include "ThePEG/Utilities/ClassTraits.h"
167
168namespace ThePEG {
169
174template <>
175struct BaseClassTrait<Herwig::IFLightKinematics,1> {
178};
179
182template <>
183struct ClassTraits<Herwig::IFLightKinematics>
184 : public ClassTraitsBase<Herwig::IFLightKinematics> {
186 static string className() { return "Herwig::IFLightKinematics"; }
194 static string library() { return "HwDipoleShower.so"; }
195};
196
199}
200
201#endif /* HERWIG_IFLightKinematics_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.
IFLightKinematics implements massless splittings off an initial-final dipole.
IFLightKinematics & operator=(const IFLightKinematics &)=delete
The assignment operator is private and must never be called.
bool theCollinearScheme
Wether or not to choose the ‘collinear’ scheme.
virtual Energy QFromPt(Energy scale, const DipoleSplittingInfo &) const
Return the virtuality given a pt.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
virtual Energy PtFromQ(Energy scale, const DipoleSplittingInfo &) const
Return the pt given a virtuality.
static ClassDescription< IFLightKinematics > initIFLightKinematics
The static object used to initialize the description of this class.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
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 Energy ptMax(Energy dScale, double emX, double specX, const DipoleIndex &, const DipoleSplittingKernel &) const
Return the maximum pt for the given dipole scale.
virtual Energy QMax(Energy dScale, double emX, double specX, const DipoleIndex &dIndex, const DipoleSplittingKernel &) const
Return the maximum virtuality 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...
virtual pair< double, double > zBoundaries(Energy pt, const DipoleSplittingInfo &dInfo, const DipoleSplittingKernel &split) const
Return the boundaries on the momentum fraction.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
IFLightKinematics()
The default constructor.
virtual IBPtr clone() const
Make a simple clone of this object.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
static string className()
static string library()