herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
19 namespace 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 
87  void persistentOutput(PersistentOStream & os) const;
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 
151  CMWHalfHalfOneSplitFn & operator=(const CMWHalfHalfOneSplitFn &) = delete;
152 
153 
154  };
155 
156 }
157 
158 #endif /* HERWIG_CMWHalfHalfOneSplitFn_H */
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.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
constexpr auto sqr(const T &x) -> decltype(x *x)
vector< tcPDPtr > IdList
Definition of the IdList for branchings.
Definition: ShowerConfig.h:64
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()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
This class provides the concrete implementation of the CMW enhanced expressions for the splitting fun...
-*- C++ -*-