herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Hadronization
PartonSplitter.h
1
// -*- C++ -*-
2
//
3
// PartonSplitter.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4
// Copyright (C) 2002-2019 The Herwig Collaboration
5
//
6
// Herwig 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 HERWIG_PartonSplitter_H
10
#define HERWIG_PartonSplitter_H
11
12
#include "CluHadConfig.h"
13
#include <ThePEG/Interface/Interfaced.h>
14
#include <ThePEG/Utilities/Selector.h>
15
#include "PartonSplitter.fh"
16
17
namespace
Herwig
{
18
19
20
using namespace
ThePEG
;
21
22
44
class
PartonSplitter
:
public
Interfaced
{
45
46
public
:
47
51
PartonSplitter
() :
52
_splitPwtUquark
(1),
53
_splitPwtDquark(1),
54
_splitPwtSquark(0.5),
55
_gluonDistance
(
ZERO
),
56
_splitGluon
(0),
57
_enhanceSProb
(0),
58
_m0
(10.*GeV),
59
_massMeasure
(0)
60
{}
61
69
void
split
(
PVector
& tagged);
70
71
public
:
72
79
void
persistentOutput
(
PersistentOStream
& os)
const
;
80
86
void
persistentInput
(
PersistentIStream
& is,
int
version);
88
95
static
void
Init
();
96
97
protected
:
98
105
virtual
IBPtr
clone
()
const
;
106
111
virtual
IBPtr
fullclone
()
const
;
113
114
protected
:
115
123
virtual
void
doinit
();
124
126
127
private
:
128
132
PartonSplitter
&
operator=
(
const
PartonSplitter
&) =
delete
;
133
141
void
splitTimeLikeGluon
(
tcPPtr
gluon,
PPtr
& quark,
PPtr
& anti);
142
143
153
void
massSplitTimeLikeGluon
(
tcPPtr
gluon,
PPtr
& quark,
PPtr
& anti,
154
size_t
i);
155
161
void
colourSorted
(
PVector
& tagged);
162
166
double
enhanceStrange
(
size_t
i);
167
168
private
:
169
174
double
_splitPwtUquark
;
175
double
_splitPwtDquark;
176
double
_splitPwtSquark;
177
181
Selector<PDPtr,double>
_quarkSelector
;
182
186
Length
_gluonDistance
;
187
191
int
_splitGluon
;
192
197
vector<int>
_colSingletSize
;
198
203
vector<Energy2>
_colSingletm2
;
204
209
int
_enhanceSProb
;
210
214
Energy
_m0
;
215
220
int
_massMeasure
;
221
226
const
double
_maxScale
= 20.;
227
228
};
229
230
}
231
232
#endif
/* HERWIG_PartonSplitter_H */
Herwig::PartonSplitter
This class splits the gluons from the end of the shower.
Definition:
PartonSplitter.h:44
Herwig::PartonSplitter::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::PartonSplitter::_maxScale
const double _maxScale
Constant variable that stops the scale in strangeness enhancement from becoming too large.
Definition:
PartonSplitter.h:226
Herwig::PartonSplitter::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::PartonSplitter::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::PartonSplitter::enhanceStrange
double enhanceStrange(size_t i)
Method to calculate the probability for producing strange quarks.
Herwig::PartonSplitter::_quarkSelector
Selector< PDPtr, double > _quarkSelector
The selector to pick the type of quark.
Definition:
PartonSplitter.h:181
Herwig::PartonSplitter::colourSorted
void colourSorted(PVector &tagged)
Colour-sort the event into grouped colour-singlets.
Herwig::PartonSplitter::_enhanceSProb
int _enhanceSProb
Option to choose which functional form to use for strangeness production.
Definition:
PartonSplitter.h:209
Herwig::PartonSplitter::massSplitTimeLikeGluon
void massSplitTimeLikeGluon(tcPPtr gluon, PPtr &quark, PPtr &anti, size_t i)
Non-perturbatively split a time-like gluon using a mass-based strangeness enhancement,...
Herwig::PartonSplitter::_colSingletSize
vector< int > _colSingletSize
Vector that stores the index in the event record of the anti-triplet of the colour-singlets,...
Definition:
PartonSplitter.h:197
Herwig::PartonSplitter::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::PartonSplitter::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::PartonSplitter::splitTimeLikeGluon
void splitTimeLikeGluon(tcPPtr gluon, PPtr &quark, PPtr &anti)
Non-perturbatively split a time-like gluon, if something goes wrong null pointers are returned.
Herwig::PartonSplitter::_massMeasure
int _massMeasure
Flag that switches between mass measures used in strangeness enhancement: cluster mass,...
Definition:
PartonSplitter.h:220
Herwig::PartonSplitter::_splitPwtUquark
double _splitPwtUquark
Different variables for the weight for splitting into various light quark species.
Definition:
PartonSplitter.h:174
Herwig::PartonSplitter::_splitGluon
int _splitGluon
Flag used to determine between normal gluon splitting and alternative gluon splitting.
Definition:
PartonSplitter.h:191
Herwig::PartonSplitter::operator=
PartonSplitter & operator=(const PartonSplitter &)=delete
Private and non-existent assignment operator.
Herwig::PartonSplitter::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::PartonSplitter::PartonSplitter
PartonSplitter()
Default constructor.
Definition:
PartonSplitter.h:51
Herwig::PartonSplitter::_gluonDistance
Length _gluonDistance
c tau for gluon decays
Definition:
PartonSplitter.h:186
Herwig::PartonSplitter::_m0
Energy _m0
Characteristic mass scale for strangeness enhancement.
Definition:
PartonSplitter.h:214
Herwig::PartonSplitter::split
void split(PVector &tagged)
This method does the nonperturbative splitting of: time-like gluons.
Herwig::PartonSplitter::_colSingletm2
vector< Energy2 > _colSingletm2
Vector that stores the masses of the colour-singlets or of a colourless particle.
Definition:
PartonSplitter.h:203
ThePEG::Interfaced
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::Selector
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tcPPtr
ThePEG::Ptr< Particle >::transient_const_pointer tcPPtr
ThePEG::PPtr
ThePEG::Ptr< Particle >::pointer PPtr
ThePEG::ZERO
constexpr ZeroUnit ZERO
ThePEG::PVector
vector< PPtr > PVector
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6