herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
DipoleEventReweight.h
1 // -*- C++ -*-
2 //
3 // DipoleEventReweight.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_DipoleEventReweight_H
10 #define Herwig_DipoleEventReweight_H
11 //
12 // This is the declaration of the DipoleEventReweight class.
13 //
14 
15 #include "ThePEG/Handlers/HandlerBase.h"
16 #include "ThePEG/StandardModel/AlphaSBase.h"
17 
18 
19 namespace Herwig {
20 
21 using namespace ThePEG;
22 
32 
33 public:
34 
41 
45  virtual ~DipoleEventReweight();
47 
48 public:
49 
54  virtual double weight(const PPair& in, const PList& out, const PList& hard,
55  Ptr<AlphaSBase>::tptr as) const = 0;
56 
61  virtual double weightCascade(const PPair& in, const PList& out, const PList& hard,
62  Ptr<AlphaSBase>::tptr as) const = 0;
63 
67  virtual bool firstInteraction() const = 0;
68 
72  virtual bool secondaryInteractions() const = 0;
73 
74 public:
75 
82  void persistentOutput(PersistentOStream & os) const;
83 
89  void persistentInput(PersistentIStream & is, int version);
91 
98  static void Init();
99 
100 
101 // If needed, insert declarations of virtual function defined in the
102 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
103 
104 
105 private:
106 
111  DipoleEventReweight & operator=(const DipoleEventReweight &) = delete;
112 
113 };
114 
115 }
116 
117 #endif /* Herwig_DipoleEventReweight_H */
transient_pointer tptr
pair< PPtr, PPtr > PPair
-*- C++ -*-
Reweight full final states produced by the shower.
list< PPtr > PList