herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEMinBias.h
1// -*- C++ -*-
2#ifndef HERWIG_MEMinBias_H
3#define HERWIG_MEMinBias_H
4//
5// This is the declaration of the MEMinBias class.
6//
7
8#include "Herwig/MatrixElement/HwMEBase.h"
9#include "Herwig/Shower/UEBase.h"
10
11namespace Herwig {
12
13using namespace ThePEG;
14
23class MEMinBias: public HwMEBase {
24
25public:
26
30 MEMinBias() : csNorm_(1.), Scale_(2.*GeV) {}
31
32public:
33
40 virtual unsigned int orderInAlphaS() const;
41
46 virtual unsigned int orderInAlphaEW() const;
47
55 virtual double me2() const;
56
61 double correctionweight() const;
62
66 virtual Energy2 scale() const;
67
75 virtual void setKinematics();
76
81 virtual int nDim() const;
82
91 virtual bool generateKinematics(const double * r);
92
97 virtual CrossSection dSigHatDR() const;
98
102 virtual void getDiagrams() const;
103
113
122 colourGeometries(tcDiagPtr diag) const;
124
125
126public:
134
140 void persistentInput(PersistentIStream & is, int version);
142
157 static void Init();
158
159protected:
160
167 virtual IBPtr clone() const;
168
173 virtual IBPtr fullclone() const;
175
176
177// If needed, insert declarations of virtual function defined in the
178// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
179
180
181private:
188 double csNorm_;
189
193 Energy Scale_;
194
198 bool onlyValQuarks_=true;
199
205 UEBasePtr MPIHandler_;
206
211 MEMinBias & operator=(const MEMinBias &) = delete;
212
213};
214
215}
216
217#endif /* HERWIG_MEMinBias_H */
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
The MEMinBias class provides a simple colour singlet exchange matrix element to be used in the soft c...
Definition: MEMinBias.h:23
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
Energy Scale_
Scale for the Min Bias matrix element.
Definition: MEMinBias.h:193
virtual int nDim() const
The number of internal degrees of freedom used in the matrix element.
double correctionweight() const
Correction weight to reweight the cross section to the inelastic cross section subtracted by the diff...
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
MEMinBias & operator=(const MEMinBias &)=delete
The assignment operator is private and must never be called.
UEBasePtr MPIHandler_
a MPIHandler to administer the creation of several (semihard) partonic interactions.
Definition: MEMinBias.h:205
MEMinBias()
The default constructor.
Definition: MEMinBias.h:30
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
double csNorm_
Normalization of the min-bias cross section.
Definition: MEMinBias.h:188
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
virtual IBPtr clone() const
Make a simple clone of this object.
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
bool onlyValQuarks_
Allow only valence quark extraction.
Definition: MEMinBias.h:198
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
static void Init()
The standard Init function used to initialize the interfaces.
vector< DiagPtr > DiagramVector
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr