herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
CMWHalfHalfOneSplitFn.h
1 // -*- C++ -*-
2 //
3 // CMWHalfHalfOneSplitFn.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_CMWHalfHalfOneSplitFn_H
10#define HERWIG_CMWHalfHalfOneSplitFn_H
11 //
12 // This is the declaration of the CMWHalfHalfOneSplitFn class.
13 //
14
15#include "HalfHalfOneSplitFn.h"
16#include "Herwig/Shower/ShowerAlpha.h"
17
18
19namespace Herwig {
20
21 using namespace ThePEG;
22
40
41 public:
42
54 virtual double P(const double z, const Energy2 t, const IdList & ids,
55 const bool mass, const RhoDMatrix & rho) const;
56
63 virtual double ratioP(const double z, const Energy2 t, const IdList & ids,
64 const bool mass, const RhoDMatrix & rho) const;
65
70 double Kg(Energy2 )const{
71 //TODO: Should be t-dependent
72 int Nf=5;//alpha_->Nf(t)
73 return (3.*(67./18.-1./6.*sqr(Constants::pi))-5./9.*Nf);
74 }
75
77
78
79 public:
80
88
94 void persistentInput(PersistentIStream & is, int version);
96
103 static void Init();
104
105 protected:
106
114 virtual void doinit(){
116 };
118
119
120 private:
121
122 // Pointer to the alpha_s object in use.
123 ShowerAlphaPtr alpha_;
124 // Provide information if the kernel is used for initial state.
125 // as the pt definition contains an additional factor of z.
126 bool isIS_=false;
127
128 protected:
129
136 virtual IBPtr clone() const {return new_ptr(*this);}
137
142 virtual IBPtr fullclone() const {return new_ptr(*this);}
144
145 private:
146
152
153
154 };
155
156}
157
158#endif /* HERWIG_CMWHalfHalfOneSplitFn_H */
This class provides the concrete implementation of the CMW enhanced expressions for the splitting fun...
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual double P(const double z, const Energy2 t, const IdList &ids, const bool mass, const RhoDMatrix &rho) const
Methods to return the splitting function.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
CMWHalfHalfOneSplitFn & operator=(const CMWHalfHalfOneSplitFn &)=delete
The assignment operator is private and must never be called.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual double ratioP(const double z, const Energy2 t, const IdList &ids, const bool mass, const RhoDMatrix &rho) const
Very similar to HalfHalfOneSplitFn.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
double Kg(Energy2) const
Return the correction term from: Nucl.Phys.
This class provides the concrete implementation of the exact leading-order splitting function for .
virtual void doinit()
-*- C++ -*-
vector< tcPDPtr > IdList
Definition of the IdList for branchings.
Definition: ShowerConfig.h:64
constexpr double pi
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
constexpr auto sqr(const T &x) -> decltype(x *x)