herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MergerBase.h
1 // -*- C++ -*-
2 //
3 // MergerBase.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_MergerBase_H
10 #define HERWIG_MergerBase_H
11 //
12 // This is the declaration of the MergerBase class.
13 //
14 
15 #include "ThePEG/Handlers/HandlerBase.h"
16 #include "ThePEG/MatrixElement/MEBase.h"
17 #include "Herwig/MatrixElement/Matchbox/Utility/LastMatchboxXCombInfo.h"
18 #include "Herwig/MatrixElement/Matchbox/Utility/MatchboxXComb.h"
19 
20 #include "MatchboxMEBase.fh"
21 
22 namespace Herwig {
23 
24 using namespace ThePEG;
25 class MergerBase;
26 
27 ThePEG_DECLARE_POINTERS(MergerBase,MergerBasePtr);
28 
38 class MergerBase: public HandlerBase {
39 
40 public:
41 
47  MergerBase();
48 
52  virtual ~MergerBase();
54  virtual bool matrixElementRegion(PVector incoming,
55  PVector outcoming,
56  Energy winnerScale,
57  Energy cutscale) const = 0;
59  virtual CrossSection MergingDSigDR() = 0;
61  virtual void setXComb( tStdXCombPtr) = 0;
63  virtual void setME(Ptr<MatchboxMEBase>::ptr) = 0;
65  virtual void setKinematics() = 0;
67  virtual void clearKinematics() = 0;
69  virtual bool generateKinematics( const double * ) = 0;
75  virtual void flushCaches() = 0;
77  virtual size_t maxLegs() const = 0;
79  virtual Energy mergingScale() const = 0;
81  virtual double emissionProbability() const = 0;
83  virtual void setEmissionProbability( double ) = 0;
85 
86 public:
87 
94  static void Init();
95 
96 
97 
98 };
99 
100 
101 
102 }
103 
104 #endif /* HERWIG_MergerBase_H */
-*- C++ -*-
vector< PPtr > PVector
MergerBase is the base class MergingHelpers.
Definition: MergerBase.h:38