thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
UnResolvedRemnant.h
1// -*- C++ -*-
2//
3// UnResolvedRemnant.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_UnResolvedRemnant_H
10#define ThePEG_UnResolvedRemnant_H
11
12#include "ThePEG/PDF/RemnantHandler.h"
13
14namespace ThePEG {
15
27
28public:
29
37
38public:
39
46 virtual bool canHandle(tcPDPtr particle, const cPDVector & partons) const;
47
58 virtual int nDim(const PartonBin & pb, bool doScale) const;
59
68 virtual bool recreateRemnants(PartonBinInstance & pb, tPPtr oldp, tPPtr newp,
69 double newl, Energy2 scale,
70 const LorentzMomentum & p,
71 const PVector & prev = PVector()) const;
84 virtual bool recreateRemnants(PartonBinInstance & pb, tPPtr oldp, tPPtr newp,
85 double newl, Energy2 scale,
86 Energy2 shat, const LorentzMomentum & p,
87 const PVector & prev = PVector()) const;
88
104 virtual Lorentz5Momentum generate(PartonBinInstance & pb, const double * r,
105 Energy2 scale,
106 const LorentzMomentum & p,
107 bool fixedPartonMomentum = false) const;
108
123 virtual Lorentz5Momentum generate(PartonBinInstance & pb, const double * r,
124 Energy2 scale, Energy2 shat,
125 const LorentzMomentum & parent,
126 bool fixedPartonMomentum = false) const;
128
129public:
130
138
144 void persistentInput(PersistentIStream & is, int version);
146
150 static void Init();
151
152protected:
153
160 virtual IBPtr clone() const;
161
166 virtual IBPtr fullclone() const;
168
176 virtual void doinit();
178
179private:
180
184 double minX;
185
190
191private:
192
197
202
203};
204
209template <>
212 typedef RemnantHandler NthBase;
213};
214
218template <>
219struct ClassTraits<UnResolvedRemnant>:
220 public ClassTraitsBase<UnResolvedRemnant> {
222 static string className() { return "ThePEG::UnResolvedRemnant"; }
226 static string library() { return "UnResolvedRemnant.so"; }
227};
228
231}
232
233#endif /* ThePEG_UnResolvedRemnant_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
PartonBinInstance is used to store information about the generation of a given parton extraction for ...
The PartonBin class is used by the PartonExtractor class to store information about the extraction of...
Definition: PartonBin.h:38
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
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
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:519
RemnantHandler is an abstract base class for implementing classes used to generate remnants when part...
UnResolvedRemnant inherits from the RemnantHandler and implements the generation of either the incomi...
static ClassDescription< UnResolvedRemnant > initUnResolvedRemnant
Describe a concrete class with persistent data.
tPDPtr thePhoton
Easy access to a photon data object.
UnResolvedRemnant()
Default constructor.
virtual int nDim(const PartonBin &pb, bool doScale) const
If the generation of remnants is expected to influence the actual cross section of the hard sub proce...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual bool canHandle(tcPDPtr particle, const cPDVector &partons) const
Return true if this remnant handler can handle extracting all specified partons form the given partic...
double minX
The minimum energy fraction allowed for a photon remnant.
UnResolvedRemnant & operator=(const UnResolvedRemnant &)=delete
Private and non-existent assignment operator.
virtual bool recreateRemnants(PartonBinInstance &pb, tPPtr oldp, tPPtr newp, double newl, Energy2 scale, Energy2 shat, const LorentzMomentum &p, const PVector &prev=PVector()) const
Redo the remnant generation for the given particle bin, pb.
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 Lorentz5Momentum generate(PartonBinInstance &pb, const double *r, Energy2 scale, const LorentzMomentum &p, bool fixedPartonMomentum=false) const
Generate momenta.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual bool recreateRemnants(PartonBinInstance &pb, tPPtr oldp, tPPtr newp, double newl, Energy2 scale, const LorentzMomentum &p, const PVector &prev=PVector()) const
Redo the remnant generation for the given particle bin, pb.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
vector< PPtr > PVector
A vector of pointers to Particle objects.
Definition: Containers.h:76
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
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition: ClassTraits.h:85
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30