herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MatchboxScaleChoice.h
1// -*- C++ -*-
2//
3// MatchboxScaleChoice.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_MatchboxScaleChoice_H
10#define Herwig_MatchboxScaleChoice_H
11//
12// This is the declaration of the MatchboxScaleChoice class.
13//
14
15#include "ThePEG/Handlers/HandlerBase.h"
16#include "ThePEG/Handlers/StandardXComb.h"
17#include "ThePEG/Handlers/LastXCombInfo.h"
18
19namespace Herwig {
20
21using namespace ThePEG;
22
31class MatchboxScaleChoice: public HandlerBase, public LastXCombInfo<StandardXComb> {
32
33public:
34
39
40public:
41
45 Ptr<MatchboxScaleChoice>::ptr cloneMe() const {
46 return dynamic_ptr_cast<Ptr<MatchboxScaleChoice>::ptr>(clone());
47 }
48
52 virtual void setXComb(tStdXCombPtr xc) {
53 theLastXComb = xc;
54 }
55
60 virtual Energy2 renormalizationScale() const {
62 }
63
68 virtual Energy2 factorizationScale() const {
70 }
71
76 virtual Energy2 renormalizationScaleQED() const {
77 if ( theFixedQEDScale != ZERO )
78 return sqr(theFixedQEDScale);
79 Energy mZ = getParticleData(ParticleID::Z0)->hardProcessMass();
80 return mZ*mZ;
81 }
82
87 virtual Energy2 showerScale() const {
88 return factorizationScale();
89 }
90
91public:
92
100
106 void persistentInput(PersistentIStream & is, int version);
108
115 static void Init();
116
117protected:
118
125 virtual IBPtr clone() const;
126
131 virtual IBPtr fullclone() const;
133
134
135// If needed, insert declarations of virtual function defined in the
136// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
137
138
139private:
140
145
150
156
157};
158
159}
160
161#endif /* Herwig_MatchboxScaleChoice_H */
MatchboxScaleChoice is the base class for scale choices within Matchbox.
MatchboxScaleChoice & operator=(const MatchboxScaleChoice &)=delete
The assignment operator is private and must never be called.
virtual IBPtr clone() const
Make a simple clone of this object.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual Energy2 showerScale() const
Return the shower hard scale.
MatchboxScaleChoice()
The default constructor.
virtual void setXComb(tStdXCombPtr xc)
Set the XComb object.
static void Init()
The standard Init function used to initialize the interfaces.
virtual Energy2 renormalizationScaleQED() const
Return the QED renormalization scale.
Energy theFixedScale
A fixed scale choice.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual Energy2 factorizationScale() const
Return the factorization scale.
Energy theFixedQEDScale
A fixed QED scale choice.
virtual Energy2 renormalizationScale() const
Return the renormalization scale.
Ptr< MatchboxScaleChoice >::ptr cloneMe() const
Clone this scale choice.
PDPtr getParticleData(PID) const
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
constexpr ZeroUnit ZERO
constexpr auto sqr(const T &x) -> decltype(x *x)