herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
HalfOneHalfSplitFn.h
1 // -*- C++ -*-
2 //
3 // HalfOneHalfSplitFn.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_HalfOneHalfSplitFn_H
10 #define HERWIG_HalfOneHalfSplitFn_H
11 //
12 // This is the declaration of the HalfOneHalfSplitFn class.
13 //
14 
15 #include "Herwig/Shower/QTilde/SplittingFunctions/SplittingFunction.h"
16 
17 namespace Herwig {
18 
19 using namespace ThePEG;
20 
39 
40 public:
41 
47  virtual bool accept(const IdList & ids) const;
48 
61  virtual double P(const double z, const Energy2 t, const IdList & ids,
62  const bool mass, const RhoDMatrix & rho) const;
63 
64 
71  virtual double overestimateP(const double z, const IdList & ids) const;
72 
83  virtual double ratioP(const double z, const Energy2 t, const IdList & ids,
84  const bool mass, const RhoDMatrix & rho) const;
85 
95  virtual double integOverP(const double z, const IdList & ids,
96  unsigned int PDFfactor=0) const;
97 
106  virtual double invIntegOverP(const double r, const IdList & ids,
107  unsigned int PDFfactor=0) const;
109 
118  virtual vector<pair<int,Complex> >
119  generatePhiForward(const double z, const Energy2 t, const IdList & ids,
120  const RhoDMatrix &);
121 
130  virtual vector<pair<int,Complex> >
131  generatePhiBackward(const double z, const Energy2 t, const IdList & ids,
132  const RhoDMatrix &);
133 
141  virtual DecayMEPtr matrixElement(const double z, const Energy2 t,
142  const IdList & ids, const double phi, bool timeLike);
143 
144 public:
145 
152  static void Init();
153 
154 protected:
155 
162  virtual IBPtr clone() const {return new_ptr(*this);}
163 
168  virtual IBPtr fullclone() const {return new_ptr(*this);}
170 
171 private:
172 
177  HalfOneHalfSplitFn & operator=(const HalfOneHalfSplitFn &) = delete;
178 
179 };
180 
181 }
182 
183 #endif /* HERWIG_HalfOneHalfSplitFn_H */
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< tcPDPtr > IdList
Definition of the IdList for branchings.
Definition: ShowerConfig.h:64
This classs provides the concrete implementation of the exact leading-order splitting function for ...
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.