herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
17namespace Herwig {
18
19using namespace ThePEG;
20
29
30public:
31
35 virtual double generateTwoToNKinematics(const double*,
36 vector<Lorentz5Momentum>& momenta);
37
42 virtual int nDimPhasespace(int nFinal) const {
43 if ( nFinal == 1 )
44 return 1;
45 return 4*nFinal + 2;
46 }
47
52 virtual bool haveX1X2() const { return true; }
53
58 virtual bool wantCMS() const { return false; }
59
60public:
61
69
75 void persistentInput(PersistentIStream & is, int version);
77
84 static void Init();
85
86protected:
87
94 virtual IBPtr clone() const;
95
100 virtual IBPtr fullclone() const;
102
103
104// If needed, insert declarations of virtual function defined in the
105// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
106
107
108private:
109
115
119 map<cPDVector,ifstream*> referenceSamples;
120
121};
122
123}
124
125#endif /* Herwig_MatchboxReference_H */
MatchboxPhasespace defines an abstract interface to a phase space generator.
MatchboxReference implements reference sample phase space generation.
virtual double generateTwoToNKinematics(const double *, vector< Lorentz5Momentum > &momenta)
Generate a phase space point and return its weight.
virtual int nDimPhasespace(int nFinal) const
Return the number of random numbers required to produce a given multiplicity final state.
MatchboxReference & operator=(const MatchboxReference &)=delete
The assignment operator is private and must never be called.
virtual bool haveX1X2() const
Return true, if this phase space generator will generate incoming partons itself.
virtual IBPtr clone() const
Make a simple clone of this object.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
map< cPDVector, ifstream * > referenceSamples
Stream to read the reference samples.
virtual bool wantCMS() const
Return true, if this phase space generator expects the incoming partons in their center-of-mass syste...
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 IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr