herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
18 namespace Herwig {
19 
20 using namespace ThePEG;
21 
32 
33 public:
34 
41 
45  virtual ~MatchboxReweightBase();
47 
48 public:
49 
53  Ptr<MatchboxReweightBase>::ptr cloneMe() const {
54  return dynamic_ptr_cast<Ptr<MatchboxReweightBase>::ptr>(clone());
55  }
56 
60  virtual void cloneDependencies(const std::string& prefix = "");
61 
65  virtual void setXComb(tStdXCombPtr) = 0;
66 
70  virtual bool apply() const = 0;
71 
77  virtual void flushCaches() = 0;
78 
82  virtual double evaluate() const = 0;
83 
89  virtual void setVetoScales(tSubProPtr) const {}
90 
91 public:
92 
96  virtual void print(ostream&) const {}
97 
101  virtual void printLastEvent(ostream&) const {}
102 
103 public:
104 
111  void persistentOutput(PersistentOStream & os) const;
112 
118  void persistentInput(PersistentIStream & is, int version);
120 
127  static void Init();
128 
129 
130 // If needed, insert declarations of virtual function defined in the
131 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
132 
133 private:
134 
139  MatchboxReweightBase & operator=(const MatchboxReweightBase &) = delete;
140 
141 };
142 
143 }
144 
145 
146 #endif /* HERWIG_MatchboxReweightBase_H */
virtual void print(ostream &) const
Dump the setup to an ostream.
Ptr< MatchboxReweightBase >::ptr cloneMe() const
Clone this reweight.
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
MatchboxReweightBase is the base class for reweighting MatchboxMEBase matrix elements as |M|^2 ( w_1 ...
virtual void printLastEvent(ostream &) const
Print debug information on the last event.
-*- C++ -*-
virtual void setVetoScales(tSubProPtr) const
Set veto scales on the particles at the given SubProcess which has been generated using this matrix e...