thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
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 
14 namespace ThePEG {
15 
27 
28 public:
29 
37 
38 public:
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 
129 public:
130 
137  void persistentOutput(PersistentOStream & os) const;
138 
144  void persistentInput(PersistentIStream & is, int version);
146 
150  static void Init();
151 
152 protected:
153 
160  virtual IBPtr clone() const;
161 
166  virtual IBPtr fullclone() const;
168 
176  virtual void doinit();
178 
179 private:
180 
184  double minX;
185 
190 
191 private:
192 
197 
201  UnResolvedRemnant & operator=(const UnResolvedRemnant &) = delete;
202 
203 };
204 
209 template <>
212  typedef RemnantHandler NthBase;
213 };
214 
218 template <>
219 struct 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 */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
double minX
The minimum energy fraction allowed for a photon remnant.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
UnResolvedRemnant()
Default constructor.
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
virtual Lorentz5Momentum generate(PartonBinInstance &pb, const double *r, Energy2 scale, const LorentzMomentum &p, bool fixedPartonMomentum=false) const
Generate momenta.
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
tPDPtr thePhoton
Easy access to a photon data object.
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
static void Init()
Standard Init function used to initialize the interface.
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.
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...
The PartonBin class is used by the PartonExtractor class to store information about the extraction of...
Definition: PartonBin.h:38
UnResolvedRemnant & operator=(const UnResolvedRemnant &)=delete
Private and non-existent assignment operator.
virtual IBPtr clone() const
Make a simple clone of this object.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
vector< cPDPtr > cPDVector
A vector of pointers to const ParticleData objects.
Definition: Containers.h:36
PartonBinInstance is used to store information about the generation of a given parton extraction for ...
UnResolvedRemnant inherits from the RemnantHandler and implements the generation of either the incomi...
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...
static ClassDescription< UnResolvedRemnant > initUnResolvedRemnant
Describe a concrete class with persistent data.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< PPtr > PVector
A vector of pointers to Particle objects.
Definition: Containers.h:76
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52