herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
CMWOneOneOneSplitFn.h
1 // -*- C++ -*-
2 //
3 // CMWOneOneOneSplitFn.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_CMWOneOneOneSplitFn_H
10#define HERWIG_CMWOneOneOneSplitFn_H
11 //
12 // This is the declaration of the CMWOneOneOneSplitFn class.
13 //
14
15#include "OneOneOneSplitFn.h"
16#include "Herwig/Shower/ShowerAlpha.h"
17
18
19namespace Herwig {
20
21 using namespace ThePEG;
39
40 public:
41
53 virtual double P(const double z, const Energy2 t, const IdList & ids,
54 const bool mass, const RhoDMatrix & rho) const;
55
62 virtual double ratioP(const double z, const Energy2 t, const IdList & ids,
63 const bool mass, const RhoDMatrix & rho) const;
68 double Kg(Energy2 )const{
69 //TODO: Might be t-dependent
70 int Nf=5;//alpha_->Nf(t)
71 return (3.*(67./18.-1./6.*sqr(Constants::pi))-5./9.*Nf);
72 }
73
75
76 public:
77
85
91 void persistentInput(PersistentIStream & is, int version);
93
100 static void Init();
101
102
103 protected:
104
112 virtual void doinit(){
114 };
116
117 private:
118
119 // Pointer to the alpha_s object in use.
120 ShowerAlphaPtr alpha_;
121 // Provide information if the kernel is used for initial state.
122 // as the pt definition contains an additional factor of z.
123 bool isIS_=false;
124
125 protected:
126
133 virtual IBPtr clone() const {return new_ptr(*this);}
134
139 virtual IBPtr fullclone() const {return new_ptr(*this);}
141
142 private:
143
149
150 };
151
152}
153
154#endif /* HERWIG_CMWOneOneOneSplitFn_H */
This class provides the concrete implementation of the CMW enhanced expressions for the splitting fun...
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual IBPtr clone() const
Make a simple clone of this object.
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.
CMWOneOneOneSplitFn & operator=(const CMWOneOneOneSplitFn &)=delete
The assignment operator is private and must never be called.
static void Init()
The standard Init function used to initialize the interfaces.
double Kg(Energy2) const
Return the correction term from: Nucl.Phys.
virtual double ratioP(const double z, const Energy2 t, const IdList &ids, const bool mass, const RhoDMatrix &rho) const
Very similar to HalfHalfOneSplitFn.
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)