thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.2.1
PDT
QuarksToHadronsDecayer.h
1
// -*- C++ -*-
2
//
3
// QuarksToHadronsDecayer.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_QuarksToHadronsDecayer_H
10
#define THEPEG_QuarksToHadronsDecayer_H
11
// This is the declaration of the QuarksToHadronsDecayer class.
12
13
#include "ThePEG/PDT/Decayer.h"
14
#include "ThePEG/Handlers/FlavourGenerator.h"
15
16
namespace
ThePEG
{
17
18
ThePEG_DECLARE_CLASS_POINTERS
(
FlavourGenerator
,
FlavGenPtr
);
19
35
class
QuarksToHadronsDecayer
:
public
Decayer
{
36
37
public
:
38
44
QuarksToHadronsDecayer
()
45
:
theFixedN
(0),
theMinN
(2),
theC1
(4.5),
theC2
(0.7*GeV),
theC3
(0.0) {}
46
50
virtual
~QuarksToHadronsDecayer
();
52
53
public
:
54
64
virtual
bool
accept
(
const
DecayMode
& dm)
const
;
65
72
virtual
ParticleVector
decay
(
const
DecayMode
& dm,
const
Particle
& p)
const
;
74
80
virtual
int
getN
(
Energy
m0,
Energy
summq,
int
Nq)
const
;
81
86
virtual
PVector
getHadrons
(
int
Nh,
tcPDVector
quarks)
const
;
87
93
virtual
void
distribute
(
const
Particle
& parent,
PVector
& children)
const
;
94
100
virtual
double
reweight
(
const
Particle
& parent,
101
const
PVector
& children)
const
;
102
103
public
:
104
110
int
fixedN
()
const
{
return
theFixedN
; }
111
115
int
minN
()
const
{
return
theMinN
; }
116
121
double
c1
()
const
{
return
theC1
; }
122
127
Energy
c2
()
const
{
return
theC2
; }
128
133
double
c3
()
const
{
return
theC3
; }
134
138
tcFlavGenPtr
flavourGenerator
()
const
{
return
theFlavourGenerator
; }
139
140
public
:
141
142
149
void
persistentOutput
(
PersistentOStream
& os)
const
;
150
156
void
persistentInput
(
PersistentIStream
& is,
int
version);
158
162
static
void
Init
();
163
164
protected
:
165
166
167
protected
:
168
175
virtual
IBPtr
clone
()
const
;
176
181
virtual
IBPtr
fullclone
()
const
;
183
184
private
:
185
190
int
theFixedN
;
191
195
int
theMinN
;
196
200
double
theC1
;
204
Energy
theC2
;
205
209
double
theC3
;
210
215
FlavGenPtr
theFlavourGenerator
;
216
217
private
:
218
222
static
ClassDescription<QuarksToHadronsDecayer>
initQuarksToHadronsDecayer
;
223
227
QuarksToHadronsDecayer
&
operator=
(
const
QuarksToHadronsDecayer
&) =
delete
;
228
229
};
230
231
}
232
233
234
namespace
ThePEG
{
235
240
template
<>
241
struct
BaseClassTrait
<QuarksToHadronsDecayer,1>:
public
ClassTraitsType
{
243
typedef
Decayer
NthBase;
244
};
245
249
template
<>
250
struct
ClassTraits
<QuarksToHadronsDecayer>
251
:
public
ClassTraitsBase
<QuarksToHadronsDecayer> {
253
static
string
className() {
return
"ThePEG::QuarksToHadronsDecayer"
; }
257
static
string
library() {
return
"QuarksToHadronsDecayer.so"
; }
258
};
259
262
}
263
264
#endif
/* THEPEG_QuarksToHadronsDecayer_H */
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
ThePEG::QuarksToHadronsDecayer::accept
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
ThePEG::Particle
The Particle class is used to describe an instance of a particle.
Definition:
Particle.h:83
ThePEG::ClassTraitsType
ClassTraitsType is an empty, non-polymorphic, base class.
Definition:
ClassTraits.h:30
ThePEG::QuarksToHadronsDecayer::theC3
double theC3
The parameter of the multiplicity distribution.
Definition:
QuarksToHadronsDecayer.h:209
ThePEG::QuarksToHadronsDecayer::c3
double c3() const
Return the parameter used for the multiplicity distriution.
Definition:
QuarksToHadronsDecayer.h:133
ThePEG::QuarksToHadronsDecayer::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::QuarksToHadronsDecayer::reweight
virtual double reweight(const Particle &parent, const PVector &children) const
Called by distribute() to reweight the default flat phase spece.
ThePEG::ClassDescription
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
Definition:
ClassDescription.h:339
ThePEG::QuarksToHadronsDecayer::distribute
virtual void distribute(const Particle &parent, PVector &children) const
Distribute the produced children in phase space.
ThePEG::QuarksToHadronsDecayer::theMinN
int theMinN
The minimum hadrons to be produced.
Definition:
QuarksToHadronsDecayer.h:195
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::tcPDVector
vector< tcPDPtr > tcPDVector
A vector of transient pointers to const ParticleData objects.
Definition:
Containers.h:42
ThePEG::QuarksToHadronsDecayer::theC2
Energy theC2
The parameter of the multiplicity distribution.
Definition:
QuarksToHadronsDecayer.h:204
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
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::QuarksToHadronsDecayer::c1
double c1() const
Return the parameter used for the multiplicity distriution.
Definition:
QuarksToHadronsDecayer.h:121
ThePEG::QuarksToHadronsDecayer::~QuarksToHadronsDecayer
virtual ~QuarksToHadronsDecayer()
Destructor.
ThePEG::QuarksToHadronsDecayer::c2
Energy c2() const
Return the parameter used for the multiplicity distriution.
Definition:
QuarksToHadronsDecayer.h:127
ThePEG::QuarksToHadronsDecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::QuarksToHadronsDecayer::getHadrons
virtual PVector getHadrons(int Nh, tcPDVector quarks) const
Produce Nh hadrons from the specified quarks.
ThePEG_DECLARE_CLASS_POINTERS
#define ThePEG_DECLARE_CLASS_POINTERS(full, abbrev)
This macro helps us to declare pointers and stuff to standard classes.
Definition:
Pointers.h:58
ThePEG::FlavourGenerator
FlavourGenerator is an abstract base class to be used to implement models describing the quark conten...
Definition:
FlavourGenerator.h:39
ThePEG::QuarksToHadronsDecayer::initQuarksToHadronsDecayer
static ClassDescription< QuarksToHadronsDecayer > initQuarksToHadronsDecayer
Describe a concrete class with persistent data.
Definition:
QuarksToHadronsDecayer.h:222
ThePEG::QuarksToHadronsDecayer::QuarksToHadronsDecayer
QuarksToHadronsDecayer()
Default constructor.
Definition:
QuarksToHadronsDecayer.h:44
ThePEG::QuarksToHadronsDecayer::theFlavourGenerator
FlavGenPtr theFlavourGenerator
The object in charge of generating hadrons spieces from given quark flavours.
Definition:
QuarksToHadronsDecayer.h:215
ThePEG::QuarksToHadronsDecayer::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::QuarksToHadronsDecayer::theC1
double theC1
The parameter of the multiplicity distribution.
Definition:
QuarksToHadronsDecayer.h:200
ThePEG::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
ThePEG::QuarksToHadronsDecayer::fixedN
int fixedN() const
Return the fixed number of hadrons to be produced.
Definition:
QuarksToHadronsDecayer.h:110
ThePEG::QuarksToHadronsDecayer::operator=
QuarksToHadronsDecayer & operator=(const QuarksToHadronsDecayer &)=delete
Private and non-existent assignment operator.
ThePEG::QuarksToHadronsDecayer::Init
static void Init()
Standard Init function used to initialize the interfaces.
ThePEG::QuarksToHadronsDecayer::minN
int minN() const
Return the minimum number of hadrons to be produced.
Definition:
QuarksToHadronsDecayer.h:115
ThePEG::ClassTraits
The default concrete implementation of ClassTraitsBase.
Definition:
ClassTraits.h:134
ThePEG::DecayMode
The DecayMode class describes a decay channel of a particle.
Definition:
DecayMode.h:87
ThePEG::QuarksToHadronsDecayer::getN
virtual int getN(Energy m0, Energy summq, int Nq) const
Get the number of hadrons to be produced, given the mass of the decaying particle, m0, and the number, Nq and summed masses of the quarks, summq.
ThePEG::QuarksToHadronsDecayer::flavourGenerator
tcFlavGenPtr flavourGenerator() const
Return a pointer to the flavour generator to be used.
Definition:
QuarksToHadronsDecayer.h:138
ThePEG::Qty< 0, 1, 0 >
ThePEG::QuarksToHadronsDecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::Decayer
Decayer is an abstract base class to specify objects modelling the decay of a particle.
Definition:
Decayer.h:29
ThePEG::QuarksToHadronsDecayer
The QuarksToHadronsDecayer class inherits from Decayer and is able to decay particles to (2 or 4) qu...
Definition:
QuarksToHadronsDecayer.h:35
ThePEG::ParticleVector
vector< PPtr > ParticleVector
A vector of pointers to Particle objects.
Definition:
Containers.h:73
ThePEG::PVector
vector< PPtr > PVector
A vector of pointers to Particle objects.
Definition:
Containers.h:76
ThePEG::BaseClassTrait
BaseClassTraits describes the base classes of the templated class.
Definition:
ClassTraits.h:156
ThePEG::QuarksToHadronsDecayer::theFixedN
int theFixedN
The fixed number of hadrons to be produced.
Definition:
QuarksToHadronsDecayer.h:190
ThePEG::QuarksToHadronsDecayer::decay
virtual ParticleVector decay(const DecayMode &dm, const Particle &p) const
Perform a decay for a given DecayMode and a given Particle instance.
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