herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Hadronization
ClusterHadronizationHandler.h
1
// -*- C++ -*-
2
//
3
// ClusterHadronizationHandler.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_ClusterHadronizationHandler_H
10
#define HERWIG_ClusterHadronizationHandler_H
11
12
#include <ThePEG/Handlers/HadronizationHandler.h>
13
#include "PartonSplitter.h"
14
#include "ClusterFinder.h"
15
#include "ColourReconnector.h"
16
#include "ClusterFissioner.h"
17
#include "LightClusterDecayer.h"
18
#include "ClusterDecayer.h"
19
#include "ClusterHadronizationHandler.fh"
20
#include "Herwig/Utilities/Reshuffler.h"
21
#include "GluonMassGenerator.h"
22
23
namespace
Herwig
{
24
using namespace
ThePEG
;
25
26
53
class
ClusterHadronizationHandler
:
54
public
HadronizationHandler
,
public
Reshuffler
{
55
56
public
:
57
65
virtual
void
handle
(
EventHandler
& ch,
const
tPVector
& tagged,
66
const
Hint
& hint);
67
72
Energy2
minVirtuality2
()
const
73
{
return
_minVirtuality2
; }
74
79
Length
maxDisplacement
()
const
80
{
return
_maxDisplacement
; }
81
86
bool
isSoftUnderlyingEventON
()
const
87
{
return
_underlyingEventHandler
; }
88
92
static
const
ClusterHadronizationHandler
*
currentHandler
() {
93
if
(!
currentHandler_
){
94
cerr<<
" \nCreating new ClusterHadronizationHandler without input from infiles."
;
95
cerr<<
" \nWhen using for example the string model "
;
96
cerr<<
" hadronic decays are still treated by the Cluster model\n"
;
97
currentHandler_
=
new
ClusterHadronizationHandler
();;
98
}
99
return
currentHandler_
;
100
}
101
105
Ptr<GluonMassGenerator>::tptr
gluonMassGenerator
()
const
{
106
return
gluonMassGenerator_
;
107
}
108
109
public
:
110
117
void
persistentOutput
(
PersistentOStream
& os)
const
;
118
124
void
persistentInput
(
PersistentIStream
& is,
int
version);
126
130
static
void
Init
();
131
132
protected
:
133
140
virtual
IBPtr
clone
()
const
;
141
146
virtual
IBPtr
fullclone
()
const
;
148
149
private
:
150
154
ClusterHadronizationHandler
&
operator=
(
const
ClusterHadronizationHandler
&) =
delete
;
155
159
PartonSplitterPtr
_partonSplitter
;
160
164
ClusterFinderPtr
_clusterFinder
;
165
169
ColourReconnectorPtr
_colourReconnector
;
170
174
ClusterFissionerPtr
_clusterFissioner
;
175
179
LightClusterDecayerPtr
_lightClusterDecayer
;
180
184
ClusterDecayerPtr
_clusterDecayer
;
185
189
bool
reshuffle_
=
false
;
190
194
int
reshuffleMode_
= 0;
195
199
Ptr<GluonMassGenerator>::ptr
gluonMassGenerator_
;
200
205
Energy2
_minVirtuality2
= 0.1_GeV2;
206
211
Length
_maxDisplacement
= 1.0e-10_mm;
212
216
StepHdlPtr
_underlyingEventHandler
;
217
221
bool
_reduceToTwoComponents
=
true
;
222
226
void
_setChildren
(
const
ClusterVector
& clusters)
const
;
227
228
232
void
splitIntoColourSinglets
(
PVector
thelist,
233
vector<PVector>& reshufflelists);
234
235
239
static
ClusterHadronizationHandler
*
currentHandler_
;
240
241
242
};
243
244
245
}
246
247
#endif
/* HERWIG_ClusterHadronizationHandler_H */
Herwig::ClusterHadronizationHandler
Class that controls the cluster hadronization algorithm.
Definition:
ClusterHadronizationHandler.h:54
Herwig::ClusterHadronizationHandler::_clusterFinder
ClusterFinderPtr _clusterFinder
This is a pointer to a Herwig::ClusterFinder object.
Definition:
ClusterHadronizationHandler.h:164
Herwig::ClusterHadronizationHandler::_minVirtuality2
Energy2 _minVirtuality2
The minimum virtuality^2 of partons to use in calculating distances.
Definition:
ClusterHadronizationHandler.h:205
Herwig::ClusterHadronizationHandler::handle
virtual void handle(EventHandler &ch, const tPVector &tagged, const Hint &hint)
The main method which manages the all cluster hadronization.
Herwig::ClusterHadronizationHandler::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::ClusterHadronizationHandler::gluonMassGenerator
Ptr< GluonMassGenerator >::tptr gluonMassGenerator() const
A pointer to a gluon mass generator for the reshuffling.
Definition:
ClusterHadronizationHandler.h:105
Herwig::ClusterHadronizationHandler::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::ClusterHadronizationHandler::_maxDisplacement
Length _maxDisplacement
The maximum displacement that is allowed for a particle (used to determine the position of a cluster ...
Definition:
ClusterHadronizationHandler.h:211
Herwig::ClusterHadronizationHandler::currentHandler_
static ClusterHadronizationHandler * currentHandler_
pointer to "this", the current HadronizationHandler.
Definition:
ClusterHadronizationHandler.h:239
Herwig::ClusterHadronizationHandler::_setChildren
void _setChildren(const ClusterVector &clusters) const
Tag the constituents of the clusters as their parents.
Herwig::ClusterHadronizationHandler::Init
static void Init()
Standard Init function used to initialize the interfaces.
Herwig::ClusterHadronizationHandler::currentHandler
static const ClusterHadronizationHandler * currentHandler()
pointer to "this", the current HadronizationHandler.
Definition:
ClusterHadronizationHandler.h:92
Herwig::ClusterHadronizationHandler::_colourReconnector
ColourReconnectorPtr _colourReconnector
This is a pointer to a Herwig::ColourReconnector object.
Definition:
ClusterHadronizationHandler.h:169
Herwig::ClusterHadronizationHandler::minVirtuality2
Energy2 minVirtuality2() const
It returns minimum virtuality^2 of partons to use in calculating distances.
Definition:
ClusterHadronizationHandler.h:72
Herwig::ClusterHadronizationHandler::reshuffleMode_
int reshuffleMode_
Which type of reshuffling (global (default) or colour connected) is used.
Definition:
ClusterHadronizationHandler.h:194
Herwig::ClusterHadronizationHandler::_underlyingEventHandler
StepHdlPtr _underlyingEventHandler
The pointer to the Underlying Event handler.
Definition:
ClusterHadronizationHandler.h:216
Herwig::ClusterHadronizationHandler::_partonSplitter
PartonSplitterPtr _partonSplitter
This is a pointer to a Herwig::PartonSplitter object.
Definition:
ClusterHadronizationHandler.h:159
Herwig::ClusterHadronizationHandler::isSoftUnderlyingEventON
bool isSoftUnderlyingEventON() const
It returns true/false according if the soft underlying model is switched on/off.
Definition:
ClusterHadronizationHandler.h:86
Herwig::ClusterHadronizationHandler::maxDisplacement
Length maxDisplacement() const
It returns the maximum displacement that is allowed for a particle (used to determine the position of...
Definition:
ClusterHadronizationHandler.h:79
Herwig::ClusterHadronizationHandler::operator=
ClusterHadronizationHandler & operator=(const ClusterHadronizationHandler &)=delete
Private and non-existent assignment operator.
Herwig::ClusterHadronizationHandler::_lightClusterDecayer
LightClusterDecayerPtr _lightClusterDecayer
This is a pointer to a Herwig::LightClusterDecayer object.
Definition:
ClusterHadronizationHandler.h:179
Herwig::ClusterHadronizationHandler::_clusterDecayer
ClusterDecayerPtr _clusterDecayer
This is a pointer to a Herwig::ClusterDecayer object.
Definition:
ClusterHadronizationHandler.h:184
Herwig::ClusterHadronizationHandler::_clusterFissioner
ClusterFissionerPtr _clusterFissioner
This is a pointer to a Herwig::ClusterFissioner object.
Definition:
ClusterHadronizationHandler.h:174
Herwig::ClusterHadronizationHandler::gluonMassGenerator_
Ptr< GluonMassGenerator >::ptr gluonMassGenerator_
A pointer to a gluon mass generator for the reshuffling.
Definition:
ClusterHadronizationHandler.h:199
Herwig::ClusterHadronizationHandler::reshuffle_
bool reshuffle_
Perform reshuffling to constituent masses.
Definition:
ClusterHadronizationHandler.h:189
Herwig::ClusterHadronizationHandler::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::ClusterHadronizationHandler::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::ClusterHadronizationHandler::_reduceToTwoComponents
bool _reduceToTwoComponents
How to handle baryon-number clusters.
Definition:
ClusterHadronizationHandler.h:221
Herwig::ClusterHadronizationHandler::splitIntoColourSinglets
void splitIntoColourSinglets(PVector thelist, vector< PVector > &reshufflelists)
Split the list of partons into colour connected sub-lists before reshuffling.
Herwig::Reshuffler
The Reshuffler class implements reshuffling of partons on their nominal mass shell to their constitue...
Definition:
Reshuffler.h:29
ThePEG::EventHandler
ThePEG::HadronizationHandler
ThePEG::Hint
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig::ClusterVector
vector< ClusterPtr > ClusterVector
This file contains the typedef declarations used in Hadronization.
Definition:
CluHadConfig.h:38
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::StepHdlPtr
ThePEG::Ptr< StepHandler >::pointer StepHdlPtr
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tPVector
vector< tPPtr > tPVector
ThePEG::PVector
vector< PPtr > PVector
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6