thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
NoRemnants.h
1// -*- C++ -*-
2//
3// NoRemnants.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_NoRemnants_H
10#define ThePEG_NoRemnants_H
11// This is the declaration of the NoRemnants class.
12
13#include "ThePEG/PDF/RemnantHandler.h"
14// #include "NoRemnants.fh"
15// #include "NoRemnants.xh"
16
17namespace ThePEG {
18
30
31public:
32
40 virtual bool canHandle(tcPDPtr, const cPDVector & partons) const {
41 return partons.empty();
42 }
43
49 virtual Lorentz5Momentum generate(PartonBinInstance & pb, const double * r,
50 Energy2 scale,
51 const LorentzMomentum & p,
52 bool fixedPartonMomentum = false) const;
53
68 virtual Lorentz5Momentum generate(PartonBinInstance & pb, const double * r,
69 Energy2 scale, Energy2 shat,
70 const LorentzMomentum & parent,
71 bool fixedPartonMomentum = false) const;
73
74public:
75
79 static void Init();
80
81protected:
82
89 virtual IBPtr clone() const;
90
95 virtual IBPtr fullclone() const;
97
98private:
99
104
108 NoRemnants & operator=(const NoRemnants &) = delete;
109
110};
111
116template <>
117struct BaseClassTrait<NoRemnants,1>: public ClassTraitsType {
119 typedef RemnantHandler NthBase;
120};
121
124template <>
125struct ClassTraits<NoRemnants>: public ClassTraitsBase<NoRemnants> {
127 static string className() { return "ThePEG::NoRemnants"; }
128};
129
132}
133
134#endif /* ThePEG_NoRemnants_H */
A concreate implementation of ClassDescriptionBase describing a concrete class without persistent dat...
NoRemnants inherits from RemnantHandler but can only handle particles without sub-structure with the ...
Definition: NoRemnants.h:29
static void Init()
Standard Init function used to initialize the interface.
virtual Lorentz5Momentum generate(PartonBinInstance &pb, const double *r, Energy2 scale, Energy2 shat, const LorentzMomentum &parent, bool fixedPartonMomentum=false) const
Generate the momentum of the extracted parton with the parent momentum given by the last argument.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual bool canHandle(tcPDPtr, const cPDVector &partons) const
Return true if this remnant handler can handle extracting all specified partons.
Definition: NoRemnants.h:40
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
NoRemnants & operator=(const NoRemnants &)=delete
Private and non-existent assignment operator.
static NoPIOClassDescription< NoRemnants > initNoRemnants
Describe a concrete class without persistent data.
Definition: NoRemnants.h:103
virtual Lorentz5Momentum generate(PartonBinInstance &pb, const double *r, Energy2 scale, const LorentzMomentum &p, bool fixedPartonMomentum=false) const
Generate Remnants.
PartonBinInstance is used to store information about the generation of a given parton extraction for ...
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
RemnantHandler is an abstract base class for implementing classes used to generate remnants when part...
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
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