herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
18namespace Herwig {
19using namespace ThePEG;
31class MinBiasPDF: public PDFBase {
32
33public:
34
39
40public:
41
48 virtual bool canHandleParticle(tcPDPtr particle) const;
49
54 virtual cPDVector partons(tcPDPtr particle) const;
55
62 virtual double xfx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
63 double x, double eps=0.0, Energy2 particleScale = ZERO) const;
64
74 virtual double xfvx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
75 double x, double eps=0.0, Energy2 particleScale = ZERO) const;
77
79 tcPDFPtr originalPDF() const {return thePDF;}
80
81public:
82
90
96 void persistentInput(PersistentIStream & is, int version);
98
105 static void Init();
106
107protected:
108
115 virtual IBPtr clone() const { return new_ptr(*this); }
116
121 virtual IBPtr fullclone() const { return new_ptr(*this); }
123
124
125// If needed, insert declarations of virtual function defined in the
126// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
127
128
129private:
130
135 MinBiasPDF & operator=(const MinBiasPDF &) = delete;
136
141
142};
143
144}
145
146#endif /* HERWIG_MinBiasPDF_H */
The MinBiasPDF class defines a modified pdf which uses an existing pdf object to add modifications li...
Definition: MinBiasPDF.h:31
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: MinBiasPDF.h:121
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: MinBiasPDF.h:115
static void Init()
The standard Init function used to initialize the interfaces.
MinBiasPDF()
The default constructor.
Definition: MinBiasPDF.h:38
PDFPtr thePDF
pointer to the underlying ThePEG::PDFBase object, we are modifying.
Definition: MinBiasPDF.h:140
MinBiasPDF & operator=(const MinBiasPDF &)=delete
The assignment operator is private and must never be called.
virtual double xfvx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const
The valence density.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
tcPDFPtr originalPDF() const
return the underlying PDFBase pointer
Definition: MinBiasPDF.h:79
virtual cPDVector partons(tcPDPtr particle) const
Return the partons which this PDF may extract from the given particle.
virtual double xfx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const
The density.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual bool canHandleParticle(tcPDPtr particle) const
Return true if this PDF can handle the extraction of partons from the given particle.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< PDFBase >::transient_const_pointer tcPDFPtr
constexpr ZeroUnit ZERO
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::Ptr< PDFBase >::pointer PDFPtr
vector< cPDPtr > cPDVector