herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MatchboxReweightBase.h
1// -*- C++ -*-
2//
3// MatchboxReweightBase.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_MatchboxReweightBase_H
10#define HERWIG_MatchboxReweightBase_H
11//
12// This is the declaration of the MatchboxReweightBase class.
13//
14
15#include "ThePEG/Handlers/HandlerBase.h"
16#include "ThePEG/Handlers/StandardXComb.h"
17
18namespace Herwig {
19
20using namespace ThePEG;
21
32
33public:
34
38 Ptr<MatchboxReweightBase>::ptr cloneMe() const {
39 return dynamic_ptr_cast<Ptr<MatchboxReweightBase>::ptr>(clone());
40 }
41
45 virtual void cloneDependencies(const std::string& prefix = "");
46
50 virtual void setXComb(tStdXCombPtr) = 0;
51
55 virtual bool apply() const = 0;
56
62 virtual void flushCaches() = 0;
63
67 virtual double evaluate() const = 0;
68
74 virtual void setVetoScales(tSubProPtr) const {}
75
76public:
77
81 virtual void print(ostream&) const {}
82
86 virtual void printLastEvent(ostream&) const {}
87
88public:
89
97
103 void persistentInput(PersistentIStream & is, int version);
105
112 static void Init();
113
114
115// If needed, insert declarations of virtual function defined in the
116// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
117
118private:
119
125
126};
127
128}
129
130
131#endif /* HERWIG_MatchboxReweightBase_H */
MatchboxReweightBase is the base class for reweighting MatchboxMEBase matrix elements as |M|^2 ( w_1 ...
virtual bool apply() const =0
Return true, if applies to the process in the xcomb.
virtual double evaluate() const =0
Evaluate the reweight.
virtual void setVetoScales(tSubProPtr) const
Set veto scales on the particles at the given SubProcess which has been generated using this matrix e...
virtual void cloneDependencies(const std::string &prefix="")
Clone the dependencies, using a given prefix.
MatchboxReweightBase & operator=(const MatchboxReweightBase &)=delete
The assignment operator is private and must never be called.
virtual void print(ostream &) const
Dump the setup to an ostream.
virtual void flushCaches()=0
Inform this matrix element that a new phase space point is about to be generated, so all caches shoul...
static void Init()
The standard Init function used to initialize the interfaces.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual void setXComb(tStdXCombPtr)=0
Set the XComb object.
Ptr< MatchboxReweightBase >::ptr cloneMe() const
Clone this reweight.
virtual void printLastEvent(ostream &) const
Print debug information on the last event.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual IBPtr clone() const=0
-*- C++ -*-
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr