thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.2.1
Handlers
FlavourGenerator.h
1
// -*- C++ -*-
2
//
3
// FlavourGenerator.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_FlavourGenerator_H
10
#define ThePEG_FlavourGenerator_H
11
// This is the declaration of the FlavourGenerator class.
12
13
#include "
ThePEG/Config/ThePEG.h
"
14
#include "ThePEG/Handlers/HandlerBase.h"
15
16
namespace
ThePEG
{
17
39
class
FlavourGenerator
:
public
HandlerBase
{
40
41
public
:
42
56
virtual
tcPDPair
generateHadron
(
tcPDPtr
quark)
const
= 0;
57
62
tcPDPair
alwaysGenerateHadron
(
tcPDPtr
quark)
const
;
63
74
virtual
tcPDPtr
getHadron
(
tcPDPtr
q1,
tcPDPtr
q2)
const
;
75
86
virtual
tcPDPtr
getHadron
(
long
iq1,
long
iq2)
const
;
87
92
tcPDPtr
alwaysGetHadron
(
tcPDPtr
q1,
tcPDPtr
q2)
const
;
93
98
tcPDPtr
alwaysGetHadron
(
long
iq1,
long
iq2)
const
;
99
112
virtual
tcPDPtr
getBaryon
(
tcPDPtr
q1,
tcPDPtr
q2,
tcPDPtr
q3)
const
;
113
126
virtual
tcPDPtr
getBaryon
(
long
q1,
long
q2,
long
q3)
const
;
127
132
tcPDPtr
alwaysGetBaryon
(
tcPDPtr
q1,
tcPDPtr
q2,
tcPDPtr
q3)
const
;
137
tcPDPtr
alwaysGetBaryon
(
long
q1,
long
q2,
long
q3)
const
;
138
142
virtual
long
selectQuark
()
const
= 0;
143
147
virtual
long
selectFlavour
()
const
= 0;
149
150
public
:
151
158
void
persistentOutput
(
PersistentOStream
& os)
const
;
159
165
void
persistentInput
(
PersistentIStream
& is,
int
version);
167
171
static
void
Init
();
172
173
174
private
:
175
179
static
AbstractNoPIOClassDescription<FlavourGenerator>
initFlavourGenerator
;
180
184
FlavourGenerator
&
operator=
(
const
FlavourGenerator
&) =
delete
;
185
186
};
187
191
class
FlavourGeneratorException:
public
Exception
{};
200
template
<>
201
struct
BaseClassTrait
<FlavourGenerator,1>:
public
ClassTraitsType
{
203
typedef
HandlerBase
NthBase;
204
};
205
210
template
<>
211
struct
ClassTraits
<FlavourGenerator>:
212
public
ClassTraitsBase
<FlavourGenerator> {
214
static
string
className() {
215
return
"ThePEG::FlavourGenerator"
;
216
}
217
};
218
221
}
222
223
#endif
/* ThePEG_FlavourGenerator_H */
ThePEG::tcPDPair
pair< tcPDPtr, tcPDPtr > tcPDPair
A pair of transient pointers to const ParticleData objects.
Definition:
Containers.h:124
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
ThePEG::FlavourGenerator::alwaysGetHadron
tcPDPtr alwaysGetHadron(tcPDPtr q1, tcPDPtr q2) const
Same as getHadron(tcPDPtr, tcPDPtr) but thows an exception if no hadron could be produced.
ThePEG::ClassTraitsType
ClassTraitsType is an empty, non-polymorphic, base class.
Definition:
ClassTraits.h:30
ThePEG::FlavourGenerator::selectQuark
virtual long selectQuark() const =0
Generate a random quark flavour.
ThePEG::PersistentOStream
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
Definition:
PersistentOStream.h:51
ThePEG::FlavourGenerator::Init
static void Init()
Standard Init function used to initialize the interface.
ThePEG::Pointer::TransientConstRCPtr
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition:
RCPtr.h:696
ThePEG::FlavourGenerator::alwaysGetBaryon
tcPDPtr alwaysGetBaryon(tcPDPtr q1, tcPDPtr q2, tcPDPtr q3) const
Same as getBaryon(tcPDPtr, tcPDPtr, tcPDPtr), but throws an exception if no baryon could be produced...
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG.h
This is the main config header file for ThePEG.
ThePEG::FlavourGenerator
FlavourGenerator is an abstract base class to be used to implement models describing the quark conten...
Definition:
FlavourGenerator.h:39
ThePEG::FlavourGenerator::alwaysGenerateHadron
tcPDPair alwaysGenerateHadron(tcPDPtr quark) const
Same as generateHadron(tcPDPtr), but throws an exception if no hadron could be produced.
ThePEG::AbstractNoPIOClassDescription
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
Definition:
ClassDescription.h:423
ThePEG::FlavourGenerator::generateHadron
virtual tcPDPair generateHadron(tcPDPtr quark) const =0
Generate a hadron from a quark.
ThePEG::HandlerBase
HandlerBase is an abstract base class derived from the Interfaced class via the HandlerBaseT class ad...
Definition:
HandlerBase.h:151
ThePEG::Exception
Exception is the base class for all exceptions to be used in ThePEG.
Definition:
Exception.h:44
ThePEG::FlavourGenerator::getBaryon
virtual tcPDPtr getBaryon(tcPDPtr q1, tcPDPtr q2, tcPDPtr q3) const
Return a baryon with the flavour content given by the (anti)quarks in the argument.
ThePEG::ClassTraits
The default concrete implementation of ClassTraitsBase.
Definition:
ClassTraits.h:134
ThePEG::FlavourGenerator::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::FlavourGenerator::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::FlavourGenerator::selectFlavour
virtual long selectFlavour() const =0
Generate a random (di)quark flavour.
ThePEG::FlavourGenerator::initFlavourGenerator
static AbstractNoPIOClassDescription< FlavourGenerator > initFlavourGenerator
Describe aa abstract class without persistent data.
Definition:
FlavourGenerator.h:179
ThePEG::BaseClassTrait
BaseClassTraits describes the base classes of the templated class.
Definition:
ClassTraits.h:156
ThePEG::FlavourGenerator::getHadron
virtual tcPDPtr getHadron(tcPDPtr q1, tcPDPtr q2) const
Get hadron from flavours.
ThePEG::FlavourGenerator::operator=
FlavourGenerator & operator=(const FlavourGenerator &)=delete
Private and non-existent assignment operator.
ThePEG::ClassTraitsBase
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition:
ClassTraits.h:52
Generated on Sat Apr 11 2020 14:31:17 for ThePEG by
1.8.13