thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
NoPDF.h
1// -*- C++ -*-
2//
3// NoPDF.h is a part of ThePEG - Toolkit for HEP Event Generation
4// Copyright (C) 1999-2019 Leif Lonnblad
5//
6// ThePEG 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 ThePEG_NoPDF_H
10#define ThePEG_NoPDF_H
11// This is the declaration of the NoPDF class.
12
13#include "ThePEG/PDF/PDFBase.h"
14// #include "NoPDF.fh"
15// #include "NoPDF.xh"
16
17namespace ThePEG {
18
29class NoPDF: public PDFBase {
30
31public:
32
38 virtual bool canHandleParticle(tcPDPtr particle) const;
39
44 virtual bool canHandle(tcPDPtr particle) const;
45
51 virtual bool hasPoleIn1(tcPDPtr particle, tcPDPtr parton) const;
52
56 virtual cPDVector partons(tcPDPtr p) const;
57
61 virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
62 double l, Energy2 particleScale = ZERO) const;
64
65public:
66
70 static void Init();
71
72protected:
73
80 virtual IBPtr clone() const;
81
86 virtual IBPtr fullclone() const;
88
89private:
90
95
99 NoPDF & operator=(const NoPDF &) = delete;
100
101};
102
107template <>
108struct BaseClassTrait<NoPDF,1>: public ClassTraitsType {
110 typedef PDFBase NthBase;
111};
112
115template <>
116struct ClassTraits<NoPDF>: public ClassTraitsBase<NoPDF> {
118 static string className() { return "ThePEG::NoPDF"; }
119};
120
123}
124
125#endif /* ThePEG_NoPDF_H */
NoPDF inherits from PDFBase and represents particles without sub-structure.
Definition: NoPDF.h:29
NoPDF & operator=(const NoPDF &)=delete
Private and non-existent assignment operator.
virtual cPDVector partons(tcPDPtr p) const
Simply return the particle.
virtual bool canHandle(tcPDPtr particle) const
Return true if canHandleParticle() and if the corresponding method for remnantHandler() returns true.
virtual IBPtr clone() const
Make a simple clone of this object.
static NoPIOClassDescription< NoPDF > initNoPDF
Describe a concrete class without persistent data.
Definition: NoPDF.h:94
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
static void Init()
Standard Init function used to initialize the interface.
virtual bool canHandleParticle(tcPDPtr particle) const
Return true because we can handle any particle.
virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The delta function.
virtual bool hasPoleIn1(tcPDPtr particle, tcPDPtr parton) const
Return true if this PDF has a pole at $x=1$ for the given particle and parton.
A concreate implementation of ClassDescriptionBase describing a concrete class without persistent dat...
PDFBase is the base class for implementing parton density functions for particles with sub-structure.
Definition: PDFBase.h:40
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
constexpr ZeroUnit ZERO
ZERO can be used as zero for any unitful quantity.
Definition: PhysicalQty.h:35
vector< cPDPtr > cPDVector
A vector of pointers to const ParticleData objects.
Definition: Containers.h:36
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30