herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
19 namespace 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 
84  void persistentOutput(PersistentOStream & os) const;
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 
148  CMWOneOneOneSplitFn & operator=(const CMWOneOneOneSplitFn &) = delete;
149 
150  };
151 
152 }
153 
154 #endif /* HERWIG_CMWOneOneOneSplitFn_H */
virtual IBPtr clone() const
Make a simple clone of this object.
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 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.
This class provides the concrete implementation of the CMW enhanced expressions for the splitting fun...
-*- C++ -*-
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.