herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
DipoleChainOrdering.h
1// -*- C++ -*-
2//
3// DipoleChainOrdering.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_DipoleChainOrdering_H
10#define HERWIG_DipoleChainOrdering_H
11//
12// This is the declaration of the DipoleChainOrdering class.
13//
14
15#include "DipoleEvolutionOrdering.h"
16
17namespace Herwig {
18
19using namespace ThePEG;
20
30
31public:
32
37
38public:
39
44 virtual Energy hardScale(tPPtr emitter, tPPtr spectator,
45 double emitterX, double spectatorX,
47 const DipoleIndex&) const;
48
54 virtual void setEvolutionScale(Energy scale,
57 pair<list<Dipole>::iterator,list<Dipole>::iterator>) const;
58
64 virtual void setEvolutionScale(Energy scale,
67 list<Dipole>::iterator) const;
68
73 virtual Energy evolutionScale(const DipoleSplittingInfo& split,
74 const DipoleSplittingKernel&) const;
75
80 virtual Energy maxPt(Energy scale,
82 const DipoleSplittingKernel&) const;
83
84public:
85
93
99 void persistentInput(PersistentIStream & is, int version);
101
108 static void Init();
109
110protected:
111
118 virtual IBPtr clone() const;
119
124 virtual IBPtr fullclone() const;
126
127
128// If needed, insert declarations of virtual function defined in the
129// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
130
131private:
132
138
139private:
140
146
152
153};
154
155}
156
157#include "ThePEG/Utilities/ClassTraits.h"
158
159namespace ThePEG {
160
165template <>
166struct BaseClassTrait<Herwig::DipoleChainOrdering,1> {
169};
170
173template <>
174struct ClassTraits<Herwig::DipoleChainOrdering>
175 : public ClassTraitsBase<Herwig::DipoleChainOrdering> {
177 static string className() { return "Herwig::DipoleChainOrdering"; }
185 static string library() { return "HwDipoleShower.so"; }
186};
187
190}
191
192#endif /* HERWIG_DipoleChainOrdering_H */
DipoleChainOrdering performs ordering on complete colour singlet dipole chains.
virtual Energy maxPt(Energy scale, const DipoleSplittingInfo &, const DipoleSplittingKernel &) const
Return the maximum pt corresponding to the given evolution scale.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void setEvolutionScale(Energy scale, const DipoleSplittingInfo &, DipoleChain &, pair< list< Dipole >::iterator, list< Dipole >::iterator >) const
For the given performed splitting, dipole chain and dipoles originating from the splitting,...
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void setEvolutionScale(Energy scale, const DipoleSplittingInfo &, DipoleChain &, list< Dipole >::iterator) const
For the given performed splitting, dipole chain and dipole taking a recoil, set the next scale.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
bool virtualityOrdering
True, if virtuality instead of pt ordering should be performed.
DipoleChainOrdering & operator=(const DipoleChainOrdering &)=delete
The assignment operator is private and must never be called.
DipoleChainOrdering()
The default constructor.
virtual Energy hardScale(tPPtr emitter, tPPtr spectator, double emitterX, double spectatorX, const DipoleSplittingKernel &, const DipoleIndex &) const
For the given dipole and splitting kernel return the hard scale.
static ClassDescription< DipoleChainOrdering > initDipoleChainOrdering
The static object used to initialize the description of this class.
static void Init()
The standard Init function used to initialize the interfaces.
virtual Energy evolutionScale(const DipoleSplittingInfo &split, const DipoleSplittingKernel &) const
For the given selected splitting return the evolution scale.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
The DipoleChain class is used by the dipole shower to represent a chain of dipoles.
Definition: DipoleChain.h:29
DipoleEvolutionOrdering defines a particular evolution algortihm for the dipole shower.
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.
-*- C++ -*-
ThePEG::Ptr< Particle >::transient_pointer tPPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
static string className()
static string library()