herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
UEBase.h
1// -*- C++ -*-
2#ifndef HERWIG_UEBase_H
3#define HERWIG_UEBase_H
4//
5// This is the declaration of the UEBase class.
6//
7
8#include "ThePEG/Interface/Interfaced.h"
9#include "ThePEG/Handlers/StandardXComb.fh"
10#include "UEBase.fh"
11
12namespace Herwig {
13
14using namespace ThePEG;
15
25class UEBase: public Interfaced {
26
27public:
28
35 static void Init();
36
43 virtual void initialize() {}
44
48 virtual bool beamOK() const = 0;
49
53 virtual bool softInt() const {return false;}
54
58 virtual Energy Ptmin() const = 0;
59
64 virtual InvEnergy2 beta() const {return ZERO;}
65
69 virtual void finalize() {}
70
74 virtual void clean() {}
75
80 virtual unsigned int additionalHardProcs() const {return 0;}
81
87 virtual unsigned int multiplicity(unsigned int i=0) = 0;
88
94 virtual tStdXCombPtr generate(unsigned int sel=0) = 0;
95
99 virtual int Algorithm() const = 0;
100
104 virtual Energy PtForVeto() const = 0;
105
110 virtual double colourDisrupt() const {return 0.0;}
111
116 virtual unsigned int softMultiplicity() const {return 0;}
118
122 virtual CrossSection inelasticXSec() const =0;
123
127 virtual CrossSection diffractiveXSec() const =0;
128
132 virtual CrossSection nonDiffractiveXSec() const =0;
133
134private:
135
140 UEBase & operator=(const UEBase &) = delete;
141
142};
143
144}
145
146#endif /* HERWIG_UEBase_H */
Abstract base class used to minimize the dependence between MPIHandler and all Shower classes.
Definition: UEBase.h:25
virtual void finalize()
Some finalize code eventually.
Definition: UEBase.h:69
virtual void clean()
Clean up method called after each event.
Definition: UEBase.h:74
virtual tStdXCombPtr generate(unsigned int sel=0)=0
Generate a additional interaction for ProcessHandler sel.
UEBase & operator=(const UEBase &)=delete
The assignment operator is private and must never be called.
virtual CrossSection diffractiveXSec() const =0
Return the diffractiv cross section (sigmaDiff) assumed by the model.
virtual bool beamOK() const =0
Return true or false depending on the generator setup.
virtual CrossSection nonDiffractiveXSec() const =0
Return the non-diffractiv cross section (sigmaND) assumed by the model.
virtual Energy PtForVeto() const =0
Return the value of the hard Process pt cutoff for vetoing.
virtual void initialize()
Some initialization code eventually.
Definition: UEBase.h:43
static void Init()
The standard Init function used to initialize the interfaces.
virtual bool softInt() const
Return true or false depending on whether soft interactions are enabled.
Definition: UEBase.h:53
virtual InvEnergy2 beta() const
Return the slope of the soft pt spectrum.
Definition: UEBase.h:64
virtual double colourDisrupt() const
Return the fraction of colour disrupted subprocesses.
Definition: UEBase.h:110
virtual unsigned int additionalHardProcs() const
Return the number of different hard processes.
Definition: UEBase.h:80
virtual unsigned int softMultiplicity() const
Return the soft multiplicity.
Definition: UEBase.h:116
virtual Energy Ptmin() const =0
Return the value of the pt cutoff.
virtual int Algorithm() const =0
Return the type of algorithm.
virtual CrossSection inelasticXSec() const =0
Return the inelastic cross section ( sigmaND + sigmaDiff )
virtual unsigned int multiplicity(unsigned int i=0)=0
return the hard multiplicity of process i.
-*- C++ -*-
constexpr ZeroUnit ZERO