herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.5
OneHalfHalfSplitFn.h
1 // -*- C++ -*-
2 //
3 // OneHalfHalfSplitFn.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_OneHalfHalfSplitFn_H
10 #define HERWIG_OneHalfHalfSplitFn_H
11 //
12 // This is the declaration of the OneHalfHalfSplitFn 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 
70 
77  virtual double overestimateP(const double z, const IdList & ids) const;
78 
89  virtual double ratioP(const double z, const Energy2 t, const IdList & ids,
90  const bool mass, const RhoDMatrix & rho) const;
91 
101  virtual double integOverP(const double z, const IdList & ids,
102  unsigned int PDFfactor=0) const;
103 
112  virtual double invIntegOverP(const double r, const IdList & ids,
113  unsigned int PDFfactor=0) const;
115 
126  virtual vector<pair<int,Complex> >
127  generatePhiForward(const double z, const Energy2 t, const IdList & ids,
128  const RhoDMatrix &);
129 
140  virtual vector<pair<int,Complex> >
141  generatePhiBackward(const double z, const Energy2 t, const IdList & ids,
142  const RhoDMatrix &);
143 
151  virtual DecayMEPtr matrixElement(const double z, const Energy2 t,
152  const IdList & ids, const double phi, bool timeLike);
153 
154 public:
155 
162  static void Init();
163 
164 protected:
165 
172  virtual IBPtr clone() const {return new_ptr(*this);}
173 
178  virtual IBPtr fullclone() const {return new_ptr(*this);}
180 
181 private:
182 
187  OneHalfHalfSplitFn & operator=(const OneHalfHalfSplitFn &) = delete;
188 
189 };
190 
191 }
192 
193 #endif /* HERWIG_OneHalfHalfSplitFn_H */
This class provides the concrete implementation of the exact leading-order splitting function for ...
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tcPDPtr > IdList
Definition of the IdList for branchings.
Definition: ShowerConfig.h:64
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
OneHalfHalfSplitFn()
The default constructor.
This is an abstract class which defines the common interface for all splitting functions, for both initial-state and final-state radiation.
-*- C++ -*-
virtual IBPtr clone() const
Make a simple clone of this object.