herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MatchboxReference.h
1 // -*- C++ -*-
2 //
3 // MatchboxReference.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_MatchboxReference_H
10 #define Herwig_MatchboxReference_H
11 //
12 // This is the declaration of the MatchboxReference class.
13 //
14 
15 #include "Herwig/MatrixElement/Matchbox/Phasespace/MatchboxPhasespace.h"
16 
17 namespace Herwig {
18 
19 using namespace ThePEG;
20 
29 
30 public:
31 
38 
42  virtual ~MatchboxReference();
44 
45 public:
46 
50  virtual double generateTwoToNKinematics(const double*,
51  vector<Lorentz5Momentum>& momenta);
52 
57  virtual int nDimPhasespace(int nFinal) const {
58  if ( nFinal == 1 )
59  return 1;
60  return 4*nFinal + 2;
61  }
62 
67  virtual bool haveX1X2() const { return true; }
68 
73  virtual bool wantCMS() const { return false; }
74 
75 public:
76 
83  void persistentOutput(PersistentOStream & os) const;
84 
90  void persistentInput(PersistentIStream & is, int version);
92 
99  static void Init();
100 
101 protected:
102 
109  virtual IBPtr clone() const;
110 
115  virtual IBPtr fullclone() const;
117 
118 
119 // If needed, insert declarations of virtual function defined in the
120 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
121 
122 
123 private:
124 
129  MatchboxReference & operator=(const MatchboxReference &) = delete;
130 
134  map<cPDVector,ifstream*> referenceSamples;
135 
136 };
137 
138 }
139 
140 #endif /* Herwig_MatchboxReference_H */
map< cPDVector, ifstream * > referenceSamples
Stream to read the reference samples.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
MatchboxPhasespace defines an abstract interface to a phase space generator.
virtual int nDimPhasespace(int nFinal) const
Return the number of random numbers required to produce a given multiplicity final state...
virtual bool haveX1X2() const
Return true, if this phase space generator will generate incoming partons itself. ...
virtual bool wantCMS() const
Return true, if this phase space generator expects the incoming partons in their center-of-mass syste...
-*- C++ -*-
MatchboxReference implements reference sample phase space generation.