herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MPIPDF.h
1 // -*- C++ -*-
2 //
3 // MPIPDF.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_MPIPDF_H
10 #define HERWIG_MPIPDF_H
11 //
12 // This is the declaration of the MPIPDF class.
13 //
14 
15 #include "ThePEG/PDF/PDFBase.h"
16 #include "MPIPDF.fh"
17 
18 namespace Herwig {
19 using namespace ThePEG;
31 class MPIPDF: public PDFBase {
32 
33 public:
34 
37 
41  MPIPDF(cPDFPtr orig = cPDFPtr()) : thePDF(orig) {}
42 
46  virtual ~MPIPDF();
48 
49 public:
50 
57  virtual bool canHandleParticle(tcPDPtr particle) const;
58 
63  virtual cPDVector partons(tcPDPtr particle) const;
64 
72  virtual double xfx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
73  double x, double eps = 0.0,
74  Energy2 particleScale = ZERO) const;
75 
76 
86  virtual double xfvx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
87  double x, double eps = 0.0,
88  Energy2 particleScale = ZERO) const;
90 
91 
92 public:
93 
100  void persistentOutput(PersistentOStream & os) const;
101 
107  void persistentInput(PersistentIStream & is, int version);
109 
116  static void Init();
117 
118 protected:
119 
126  virtual IBPtr clone() const;
127 
132  virtual IBPtr fullclone() const;
134 
135 
136 // If needed, insert declarations of virtual function defined in the
137 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
138 
139 
140 private:
141 
146  MPIPDF & operator=(const MPIPDF &) = delete;
147 
152 };
153 
154 }
155 
156 #endif /* HERWIG_MPIPDF_H */
cPDFPtr thePDF
pointer to the underlying ThePEG::PDFBase object, we are modifying.
Definition: MPIPDF.h:151
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
MPIPDF(cPDFPtr orig=cPDFPtr())
The constructor which takes a PDF object as argument, to work with.
Definition: MPIPDF.h:41
The MPIPDF class defines a modified pdf which uses an existing pdf object to add modifications like r...
Definition: MPIPDF.h:31
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::Ptr< PDFBase >::const_pointer cPDFPtr
vector< cPDPtr > cPDVector
-*- C++ -*-
constexpr ZeroUnit ZERO