herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
17namespace Herwig {
18
19using namespace ThePEG;
20
39
40public:
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
144public:
145
152 static void Init();
153
154protected:
155
162 virtual IBPtr clone() const {return new_ptr(*this);}
163
168 virtual IBPtr fullclone() const {return new_ptr(*this);}
170
171private:
172
178
179};
180
181}
182
183#endif /* HERWIG_HalfOneHalfSplitFn_H */
This classs provides the concrete implementation of the exact leading-order splitting function for .
virtual double overestimateP(const double z, const IdList &ids) const
The concrete implementation of the overestimate of the splitting function, .
virtual vector< pair< int, Complex > > generatePhiBackward(const double z, const Energy2 t, const IdList &ids, const RhoDMatrix &)
Method to calculate the azimuthal angle for backward evolution.
static void Init()
The standard Init function used to initialize the interfaces.
virtual double P(const double z, const Energy2 t, const IdList &ids, const bool mass, const RhoDMatrix &rho) const
Methods to return the splitting function.
virtual double integOverP(const double z, const IdList &ids, unsigned int PDFfactor=0) const
The concrete implementation of the indefinite integral of the overestimated splitting function,...
virtual double ratioP(const double z, const Energy2 t, const IdList &ids, const bool mass, const RhoDMatrix &rho) const
The concrete implementation of the the ratio of the splitting function to the overestimate,...
virtual double invIntegOverP(const double r, const IdList &ids, unsigned int PDFfactor=0) const
The concrete implementation of the inverse of the indefinite integral.
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.
virtual DecayMEPtr matrixElement(const double z, const Energy2 t, const IdList &ids, const double phi, bool timeLike)
Calculate the matrix element for the splitting.
virtual vector< pair< int, Complex > > generatePhiForward(const double z, const Energy2 t, const IdList &ids, const RhoDMatrix &)
Method to calculate the azimuthal angle for forward evolution.
virtual bool accept(const IdList &ids) const
Concrete implementation of the method to determine whether this splitting function can be used for a ...
HalfOneHalfSplitFn & operator=(const HalfOneHalfSplitFn &)=delete
The assignment operator is private and must never be called.
This is an abstract class which defines the common interface for all splitting functions,...
-*- C++ -*-
vector< tcPDPtr > IdList
Definition of the IdList for branchings.
Definition: ShowerConfig.h:64
ThePEG::Ptr< InterfacedBase >::pointer IBPtr