herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
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
21
namespace
Herwig
{
22
using namespace
ThePEG
;
23
24
51
class
ClusterHadronizationHandler
:
public
HadronizationHandler
{
52
53
public
:
54
62
virtual
void
handle(
EventHandler
& ch,
const
tPVector
& tagged,
63
const
Hint
& hint);
64
69
Energy2
minVirtuality2
()
const
70
{
return
_minVirtuality2; }
71
76
Length
maxDisplacement
()
const
77
{
return
_maxDisplacement; }
78
83
bool
isSoftUnderlyingEventON
()
const
84
{
return
_underlyingEventHandler; }
85
89
static
const
ClusterHadronizationHandler
*
currentHandler
() {
90
if
(!currentHandler_){
91
cerr<<
" \nCreating new ClusterHadronizationHandler without input from infiles."
;
92
cerr<<
" \nWhen using for example the string model "
;
93
cerr<<
" hadronic decays are still treated by the Cluster model\n"
;
94
currentHandler_=
new
ClusterHadronizationHandler
();;
95
}
96
return
currentHandler_;
97
}
98
99
public
:
100
107
void
persistentOutput(
PersistentOStream
& os)
const
;
108
114
void
persistentInput(
PersistentIStream
& is,
int
version);
116
120
static
void
Init();
121
122
protected
:
123
130
virtual
IBPtr
clone()
const
;
131
136
virtual
IBPtr
fullclone()
const
;
138
139
private
:
140
144
ClusterHadronizationHandler
& operator=(
const
ClusterHadronizationHandler
&) =
delete
;
145
149
PartonSplitterPtr
_partonSplitter
;
150
154
ClusterFinderPtr
_clusterFinder
;
155
159
ColourReconnectorPtr
_colourReconnector
;
160
164
ClusterFissionerPtr
_clusterFissioner
;
165
169
LightClusterDecayerPtr
_lightClusterDecayer
;
170
174
ClusterDecayerPtr
_clusterDecayer
;
175
180
Energy2 _minVirtuality2 = 0.1_GeV2;
181
186
Length _maxDisplacement = 1.0e-10_mm;
187
191
StepHdlPtr
_underlyingEventHandler
;
192
196
bool
_reduceToTwoComponents =
true
;
197
201
void
_setChildren(
const
ClusterVector
& clusters)
const
;
202
206
static
ClusterHadronizationHandler
*
currentHandler_
;
207
208
209
};
210
211
212
}
213
214
#endif
/* HERWIG_ClusterHadronizationHandler_H */
Herwig::ClusterHadronizationHandler::isSoftUnderlyingEventON
bool isSoftUnderlyingEventON() const
It returns true/false according if the soft underlying model is switched on/off.
Definition:
ClusterHadronizationHandler.h:83
ThePEG::PersistentIStream
Herwig::ClusterHadronizationHandler::_clusterFissioner
ClusterFissionerPtr _clusterFissioner
This is a pointer to a Herwig::ClusterFissioner object.
Definition:
ClusterHadronizationHandler.h:164
Herwig::ClusterHadronizationHandler::currentHandler_
static ClusterHadronizationHandler * currentHandler_
pointer to "this", the current HadronizationHandler.
Definition:
ClusterHadronizationHandler.h:206
ThePEG::EventHandler
Herwig::ClusterHadronizationHandler::minVirtuality2
Energy2 minVirtuality2() const
It returns minimum virtuality^2 of partons to use in calculating distances.
Definition:
ClusterHadronizationHandler.h:69
Herwig::ClusterHadronizationHandler::currentHandler
static const ClusterHadronizationHandler * currentHandler()
pointer to "this", the current HadronizationHandler.
Definition:
ClusterHadronizationHandler.h:89
ThePEG::PersistentOStream
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
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:76
ThePEG::StepHdlPtr
ThePEG::Ptr< StepHandler >::pointer StepHdlPtr
ThePEG
Herwig::ClusterHadronizationHandler::_clusterFinder
ClusterFinderPtr _clusterFinder
This is a pointer to a Herwig::ClusterFinder object.
Definition:
ClusterHadronizationHandler.h:154
Herwig::ClusterHadronizationHandler::_underlyingEventHandler
StepHdlPtr _underlyingEventHandler
The pointer to the Underlying Event handler.
Definition:
ClusterHadronizationHandler.h:191
Herwig::ClusterHadronizationHandler
Class that controls the cluster hadronization algorithm.
Definition:
ClusterHadronizationHandler.h:51
Herwig::ClusterVector
vector< ClusterPtr > ClusterVector
This file contains the typedef declarations used in Hadronization.
Definition:
CluHadConfig.h:38
ThePEG::HadronizationHandler
ThePEG::Hint
Herwig::ClusterHadronizationHandler::_partonSplitter
PartonSplitterPtr _partonSplitter
This is a pointer to a Herwig::PartonSplitter object.
Definition:
ClusterHadronizationHandler.h:149
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::ClusterHadronizationHandler::_colourReconnector
ColourReconnectorPtr _colourReconnector
This is a pointer to a Herwig::ColourReconnector object.
Definition:
ClusterHadronizationHandler.h:159
ThePEG::tPVector
vector< tPPtr > tPVector
Herwig::ClusterHadronizationHandler::_clusterDecayer
ClusterDecayerPtr _clusterDecayer
This is a pointer to a Herwig::ClusterDecayer object.
Definition:
ClusterHadronizationHandler.h:174
Herwig::ClusterHadronizationHandler::_lightClusterDecayer
LightClusterDecayerPtr _lightClusterDecayer
This is a pointer to a Herwig::LightClusterDecayer object.
Definition:
ClusterHadronizationHandler.h:169
Generated on Sat Apr 11 2020 14:50:28 for Herwig by
1.8.13