herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MinBiasPDF.h
1 // -*- C++ -*-
2 //
3 // MinBiasPDF.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_MinBiasPDF_H
10 #define HERWIG_MinBiasPDF_H
11 //
12 // This is the declaration of the MinBiasPDF class.
13 //
14 
15 #include "ThePEG/PDF/PDFBase.h"
16 #include "MinBiasPDF.fh"
17 
18 namespace Herwig {
19 using namespace ThePEG;
31 class MinBiasPDF: public PDFBase {
32 
33 public:
34 
40  MinBiasPDF() : thePDF(PDFPtr()) {}
41 
45  MinBiasPDF(const MinBiasPDF & x) :
46  PDFBase(x), thePDF(x.thePDF) {}
47 
51  virtual ~MinBiasPDF() {}
52 
54 
55 public:
56 
63  virtual bool canHandleParticle(tcPDPtr particle) const;
64 
69  virtual cPDVector partons(tcPDPtr particle) const;
70 
77  virtual double xfx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
78  double x, double eps=0.0, Energy2 particleScale = ZERO) const;
79 
89  virtual double xfvx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
90  double x, double eps=0.0, Energy2 particleScale = ZERO) const;
92 
94  tcPDFPtr originalPDF() const {return thePDF;}
95 
96 public:
97 
104  void persistentOutput(PersistentOStream & os) const;
105 
111  void persistentInput(PersistentIStream & is, int version);
113 
120  static void Init();
121 
122 protected:
123 
130  virtual IBPtr clone() const { return new_ptr(*this); }
131 
136  virtual IBPtr fullclone() const { return new_ptr(*this); }
138 
139 
140 // If needed, insert declarations of virtual function defined in the
141 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
142 
143 
144 private:
145 
150  MinBiasPDF & operator=(const MinBiasPDF &) = delete;
151 
156 
157 };
158 
159 }
160 
161 #endif /* HERWIG_MinBiasPDF_H */
MinBiasPDF(const MinBiasPDF &x)
The copy constructor.
Definition: MinBiasPDF.h:45
ThePEG::Ptr< PDFBase >::transient_const_pointer tcPDFPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual ~MinBiasPDF()
The destructor.
Definition: MinBiasPDF.h:51
PDFPtr thePDF
pointer to the underlying ThePEG::PDFBase object, we are modifying.
Definition: MinBiasPDF.h:155
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
The MinBiasPDF class defines a modified pdf which uses an existing pdf object to add modifications li...
Definition: MinBiasPDF.h:31
vector< cPDPtr > cPDVector
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: MinBiasPDF.h:136
-*- C++ -*-
ThePEG::Ptr< PDFBase >::pointer PDFPtr
tcPDFPtr originalPDF() const
return the underlying PDFBase pointer
Definition: MinBiasPDF.h:94
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: MinBiasPDF.h:130
constexpr ZeroUnit ZERO
MinBiasPDF()
The default constructor.
Definition: MinBiasPDF.h:40