herwig is hosted by Hepforge, IPPP Durham
 Herwig  7.1.5
HalfHalfOneSplitFn.h
1 // -*- C++ -*-
2 //
3 // HalfHalfOneSplitFn.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2017 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_HalfHalfOneSplitFn_H
10 #define HERWIG_HalfHalfOneSplitFn_H
11 //
12 // This is the declaration of the HalfHalfOneSplitFn class.
13 //
14
15 #include "Herwig/Shower/Core/SplittingFunctions/SplittingFunction.h"
16
17 namespace Herwig {
18
19 using namespace ThePEG;
20
40
41 public:
42
47
53  virtual bool accept(const IdList & ids) const;
54
67  virtual double P(const double z, const Energy2 t, const IdList & ids,
68  const bool mass, const RhoDMatrix & rho) const;
69
76  virtual double overestimateP(const double z, const IdList & ids) const;
77
88  virtual double ratioP(const double z, const Energy2 t, const IdList & ids,
89  const bool mass, const RhoDMatrix & rho) const;
90
100  virtual double integOverP(const double z, const IdList & ids,
101  unsigned int PDFfactor=0) const;
102
111  virtual double invIntegOverP(const double r, const IdList & ids,
112  unsigned int PDFfactor=0) const;
114
123  virtual vector<pair<int,Complex> >
124  generatePhiForward(const double z, const Energy2 t, const IdList & ids,
125  const RhoDMatrix &);
126
135  virtual vector<pair<int,Complex> >
136  generatePhiBackward(const double z, const Energy2 t, const IdList & ids,
137  const RhoDMatrix &);
138
146  virtual DecayMEPtr matrixElement(const double z, const Energy2 t,
147  const IdList & ids, const double phi, bool timeLike);
148
149 public:
150
157  static void Init();
158
159 protected:
160
167  virtual IBPtr clone() const {return new_ptr(*this);}
168
173  virtual IBPtr fullclone() const {return new_ptr(*this);}
175
176 private:
177
182  HalfHalfOneSplitFn & operator=(const HalfHalfOneSplitFn &) = delete;
183
184 };
185
186 }
187
188 #endif /* HERWIG_HalfHalfOneSplitFn_H */
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
HalfHalfOneSplitFn()
The default constructor.
vector< tcPDPtr > IdList
Definition of the IdList for branchings.
Definition: ShowerConfig.h:64
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 IBPtr clone() const
Make a simple clone of this object.
This is an abstract class which defines the common interface for all splitting functions, for both initial-state and final-state radiation.
-*- C++ -*-