thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
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
42
QuarksToHadronsDecayer
()
43
:
theFixedN
(0),
theMinN
(2),
theC1
(4.5),
theC2
(0.7*GeV),
theC3
(0.0) {}
44
45
public
:
46
56
virtual
bool
accept
(
const
DecayMode
& dm)
const
;
57
64
virtual
ParticleVector
decay
(
const
DecayMode
& dm,
const
Particle
& p)
const
;
66
72
virtual
int
getN
(
Energy
m0,
Energy
summq,
int
Nq)
const
;
73
78
virtual
PVector
getHadrons
(
int
Nh,
tcPDVector
quarks)
const
;
79
85
virtual
void
distribute
(
const
Particle
& parent,
PVector
& children)
const
;
86
92
virtual
double
reweight
(
const
Particle
& parent,
93
const
PVector
& children)
const
;
94
95
public
:
96
102
int
fixedN
()
const
{
return
theFixedN
; }
103
107
int
minN
()
const
{
return
theMinN
; }
108
113
double
c1
()
const
{
return
theC1
; }
114
119
Energy
c2
()
const
{
return
theC2
; }
120
125
double
c3
()
const
{
return
theC3
; }
126
130
tcFlavGenPtr
flavourGenerator
()
const
{
return
theFlavourGenerator
; }
131
132
public
:
133
134
141
void
persistentOutput
(
PersistentOStream
& os)
const
;
142
148
void
persistentInput
(
PersistentIStream
& is,
int
version);
150
154
static
void
Init
();
155
156
protected
:
157
158
159
protected
:
160
167
virtual
IBPtr
clone
()
const
;
168
173
virtual
IBPtr
fullclone
()
const
;
175
176
private
:
177
182
int
theFixedN
;
183
187
int
theMinN
;
188
192
double
theC1
;
196
Energy
theC2
;
197
201
double
theC3
;
202
207
FlavGenPtr
theFlavourGenerator
;
208
209
private
:
210
214
static
ClassDescription<QuarksToHadronsDecayer>
initQuarksToHadronsDecayer
;
215
219
QuarksToHadronsDecayer
&
operator=
(
const
QuarksToHadronsDecayer
&) =
delete
;
220
221
};
222
223
}
224
225
226
namespace
ThePEG
{
227
232
template
<>
233
struct
BaseClassTrait<QuarksToHadronsDecayer,1>:
public
ClassTraitsType {
235
typedef
Decayer
NthBase
;
236
};
237
241
template
<>
242
struct
ClassTraits<QuarksToHadronsDecayer>
243
:
public
ClassTraitsBase<QuarksToHadronsDecayer> {
245
static
string
className
() {
return
"ThePEG::QuarksToHadronsDecayer"
; }
249
static
string
library
() {
return
"QuarksToHadronsDecayer.so"
; }
250
};
251
254
}
255
256
#endif
/* THEPEG_QuarksToHadronsDecayer_H */
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::ClassDescription
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
Definition:
ClassDescription.h:333
ThePEG::DecayMode
The DecayMode class describes a decay channel of a particle.
Definition:
DecayMode.h:87
ThePEG::Decayer
Decayer is an abstract base class to specify objects modelling the decay of a particle.
Definition:
Decayer.h:29
ThePEG::FlavourGenerator
FlavourGenerator is an abstract base class to be used to implement models describing the quark conten...
Definition:
FlavourGenerator.h:39
ThePEG::Particle
The Particle class is used to describe an instance of a particle.
Definition:
Particle.h:83
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
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::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
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::Qty< 0, 1, 0 >
ThePEG::QuarksToHadronsDecayer
The QuarksToHadronsDecayer class inherits from Decayer and is able to decay particles to (2 or 4) qu...
Definition:
QuarksToHadronsDecayer.h:35
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,...
ThePEG::QuarksToHadronsDecayer::minN
int minN() const
Return the minimum number of hadrons to be produced.
Definition:
QuarksToHadronsDecayer.h:107
ThePEG::QuarksToHadronsDecayer::reweight
virtual double reweight(const Particle &parent, const PVector &children) const
Called by distribute() to reweight the default flat phase spece.
ThePEG::QuarksToHadronsDecayer::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
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::QuarksToHadronsDecayer::c2
Energy c2() const
Return the parameter used for the multiplicity distriution.
Definition:
QuarksToHadronsDecayer.h:119
ThePEG::QuarksToHadronsDecayer::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::QuarksToHadronsDecayer::theFlavourGenerator
FlavGenPtr theFlavourGenerator
The object in charge of generating hadrons spieces from given quark flavours.
Definition:
QuarksToHadronsDecayer.h:207
ThePEG::QuarksToHadronsDecayer::distribute
virtual void distribute(const Particle &parent, PVector &children) const
Distribute the produced children in phase space.
ThePEG::QuarksToHadronsDecayer::Init
static void Init()
Standard Init function used to initialize the interfaces.
ThePEG::QuarksToHadronsDecayer::getHadrons
virtual PVector getHadrons(int Nh, tcPDVector quarks) const
Produce Nh hadrons from the specified quarks.
ThePEG::QuarksToHadronsDecayer::c3
double c3() const
Return the parameter used for the multiplicity distriution.
Definition:
QuarksToHadronsDecayer.h:125
ThePEG::QuarksToHadronsDecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::QuarksToHadronsDecayer::flavourGenerator
tcFlavGenPtr flavourGenerator() const
Return a pointer to the flavour generator to be used.
Definition:
QuarksToHadronsDecayer.h:130
ThePEG::QuarksToHadronsDecayer::QuarksToHadronsDecayer
QuarksToHadronsDecayer()
Default constructor.
Definition:
QuarksToHadronsDecayer.h:42
ThePEG::QuarksToHadronsDecayer::theMinN
int theMinN
The minimum hadrons to be produced.
Definition:
QuarksToHadronsDecayer.h:187
ThePEG::QuarksToHadronsDecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::QuarksToHadronsDecayer::initQuarksToHadronsDecayer
static ClassDescription< QuarksToHadronsDecayer > initQuarksToHadronsDecayer
Describe a concrete class with persistent data.
Definition:
QuarksToHadronsDecayer.h:214
ThePEG::QuarksToHadronsDecayer::theC1
double theC1
The parameter of the multiplicity distribution.
Definition:
QuarksToHadronsDecayer.h:192
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::QuarksToHadronsDecayer::c1
double c1() const
Return the parameter used for the multiplicity distriution.
Definition:
QuarksToHadronsDecayer.h:113
ThePEG::QuarksToHadronsDecayer::theC3
double theC3
The parameter of the multiplicity distribution.
Definition:
QuarksToHadronsDecayer.h:201
ThePEG::QuarksToHadronsDecayer::theFixedN
int theFixedN
The fixed number of hadrons to be produced.
Definition:
QuarksToHadronsDecayer.h:182
ThePEG::QuarksToHadronsDecayer::operator=
QuarksToHadronsDecayer & operator=(const QuarksToHadronsDecayer &)=delete
Private and non-existent assignment operator.
ThePEG::QuarksToHadronsDecayer::fixedN
int fixedN() const
Return the fixed number of hadrons to be produced.
Definition:
QuarksToHadronsDecayer.h:102
ThePEG::QuarksToHadronsDecayer::theC2
Energy theC2
The parameter of the multiplicity distribution.
Definition:
QuarksToHadronsDecayer.h:196
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
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::tcPDVector
vector< tcPDPtr > tcPDVector
A vector of transient pointers to const ParticleData objects.
Definition:
Containers.h:42
ThePEG::BaseClassTrait::NthBase
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition:
ClassTraits.h:161
ThePEG::ClassTraitsBase::className
static string className()
Return the name of class T.
Definition:
ClassTraits.h:66
ThePEG::ClassTraitsBase::library
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition:
ClassTraits.h:85
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6