thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
RemnantParticle.h
1// -*- C++ -*-
2//
3// RemnantParticle.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_RemnantParticle_H
10#define THEPEG_RemnantParticle_H
11//
12// This is the declaration of the RemnantParticle class.
13//
14
15#include "ThePEG/EventRecord/Particle.h"
16#include "RemnantParticle.fh"
17#include "ThePEG/PDT/RemnantData.fh"
18#include "ThePEG/PDT/RemnantDecayer.fh"
19
20namespace ThePEG {
21
26
27public:
28
32 friend class RemnantDecayer;
33
34public:
35
44 RemnantParticle(const Particle & particle, RemDecPtr decayer,
45 tPPtr parton = tPPtr());
46
47public:
48
54 bool extract(tPPtr parton, bool fixcolour = false);
55
62 bool reextract(tPPtr oldp, tPPtr newp, bool fixcolour = false);
63
68 bool remove(tPPtr parton);
69
73 const PVector & extracted() const {
74 return theExtracted;
75 }
76
77public:
78
86
92 void persistentInput(PersistentIStream & is, int version);
94
101 static void Init();
102
103protected:
104
108 void fixColourLines(tPPtr parton);
109
110private:
111
115 RemPDPtr remData;
116
121
126
127protected:
128
134
139 friend struct ClassTraits<RemnantParticle>;
140
141private:
142
148
154
155};
156
157}
158
159#include "ThePEG/Utilities/ClassTraits.h"
160
161namespace ThePEG {
162
167template <>
168struct BaseClassTrait<RemnantParticle,1> {
170 typedef Particle NthBase;
171};
172
175template <>
176struct ClassTraits<RemnantParticle>
177 : public ClassTraitsBase<RemnantParticle> {
179 static string className() { return "ThePEG::RemnantParticle"; }
181 static TPtr create() { return TPtr::Create(RemnantParticle()); }
182};
183
186}
187
188#endif /* THEPEG_RemnantParticle_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
The Particle class is used to describe an instance of a particle.
Definition: Particle.h:83
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...
static RCPtr Create()
Allocate and construct an object of class T and return a RCPtr to it.
Definition: RCPtr.h:120
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
The RemnantDecayer class is the base class to be used for all decayers capable of decaying a RemnantP...
Here is the documentation of the RemnantParticle class.
bool reextract(tPPtr oldp, tPPtr newp, bool fixcolour=false)
Modify the properties to reflect that the previously extracted parton, oldp, was evolved backwards to...
static void Init()
The standard Init function used to initialize the interfaces.
bool remove(tPPtr parton)
Modify the properties to reflect that the given parton which was previously extracted is removed.
tcPPtr parent
The parent from which this remnant resulted.
const PVector & extracted() const
Acces the extracted partons.
static ClassDescription< RemnantParticle > initRemnantParticle
The static object used to initialize the description of this class.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
void fixColourLines(tPPtr parton)
If necessary, colour-connect this remnant to the given parton.
RemnantParticle & operator=(const RemnantParticle &)=delete
The assignment operator is private and must never be called.
PVector theExtracted
The set of extracted partons.
RemnantParticle()
Private default constructor must only be used by the PersistentIStream class via the ClassTraits<Remn...
RemPDPtr remData
The RemnantData object associated to this remnant.
bool extract(tPPtr parton, bool fixcolour=false)
Modify the properties to reflect that the given parton was extracted.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
RemnantParticle(const Particle &particle, RemDecPtr decayer, tPPtr parton=tPPtr())
The standard constructor takes as argument the particle for which this is the remnant and a decayer c...
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
ThePEG::Ptr< Particle >::transient_pointer tPPtr
Alias for a transient pointer to Particle .
Definition: Pointers.h:67
vector< PPtr > PVector
A vector of pointers to Particle objects.
Definition: Containers.h:76
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 TPtr create()
Create a T object and return a smart pointer to it.
Definition: ClassTraits.h:60
ThePEG::Ptr< T >::pointer TPtr
Alias for a reference counted pointer to T .
Definition: ClassTraits.h:54
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134