herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Hadronization
ClusterDecayer.h
1
// -*- C++ -*-
2
//
3
// ClusterDecayer.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_ClusterDecayer_H
10
#define HERWIG_ClusterDecayer_H
11
12
#include <ThePEG/Interface/Interfaced.h>
13
#include <ThePEG/EventRecord/Step.h>
14
#include "CluHadConfig.h"
15
#include "HadronSelector.h"
16
#include "ClusterDecayer.fh"
17
18
namespace
Herwig
{
19
using namespace
ThePEG
;
20
37
class
ClusterDecayer
:
public
Interfaced
{
38
39
public
:
40
46
ClusterDecayer
();
48
56
void
decay
(
const
ClusterVector
& clusters,
tPVector
& finalhadrons)
57
;
58
59
public
:
60
64
void
persistentOutput
(
PersistentOStream
&)
const
;
65
69
void
persistentInput
(
PersistentIStream
&,
int
);
70
74
static
void
Init
();
75
76
protected
:
77
84
virtual
IBPtr
clone
()
const
;
85
90
virtual
IBPtr
fullclone
()
const
;
92
93
private
:
94
98
ClusterDecayer
&
operator=
(
const
ClusterDecayer
&) =
delete
;
99
100
public
:
101
113
pair<PPtr,PPtr>
decayIntoTwoHadrons
(tClusterPtr ptr);
114
115
private
:
116
123
void
calculatePositions
(
const
Lorentz5Momentum &,
const
LorentzPoint &,
124
const
Lorentz5Momentum &,
const
Lorentz5Momentum &,
125
LorentzPoint &, LorentzPoint &)
const
;
126
130
Ptr<HadronSelector>::pointer
_hadronsSelector
;
131
133
136
bool
_clDirLight
;
137
bool
_clDirBottom;
138
bool
_clDirCharm;
139
bool
_clDirExotic;
140
144
double
_clSmrLight
;
145
double
_clSmrBottom;
146
double
_clSmrCharm;
147
double
_clSmrExotic;
149
154
bool
_onshell
;
155
159
unsigned
int
_masstry
;
160
161
162
};
163
164
165
}
166
167
#endif
/* HERWIG_ClusterDecayer_H */
Herwig::ClusterDecayer
This class decays the "normal" clusters.
Definition:
ClusterDecayer.h:37
Herwig::ClusterDecayer::ClusterDecayer
ClusterDecayer()
Default constructor.
Herwig::ClusterDecayer::decay
void decay(const ClusterVector &clusters, tPVector &finalhadrons)
Decays all remaining clusters into hadrons.
Herwig::ClusterDecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::ClusterDecayer::_clDirLight
bool _clDirLight
Whether a cluster decays along the perturbative parton direction.
Definition:
ClusterDecayer.h:136
Herwig::ClusterDecayer::persistentOutput
void persistentOutput(PersistentOStream &) const
Standard ThePEG function for writing a persistent stream.
Herwig::ClusterDecayer::decayIntoTwoHadrons
pair< PPtr, PPtr > decayIntoTwoHadrons(tClusterPtr ptr)
Decays the cluster into two hadrons.
Herwig::ClusterDecayer::operator=
ClusterDecayer & operator=(const ClusterDecayer &)=delete
Private and non-existent assignment operator.
Herwig::ClusterDecayer::calculatePositions
void calculatePositions(const Lorentz5Momentum &, const LorentzPoint &, const Lorentz5Momentum &, const Lorentz5Momentum &, LorentzPoint &, LorentzPoint &) const
Compute the positions of the new hadrons based on the clusters position.
Herwig::ClusterDecayer::_onshell
bool _onshell
Whether or not the hadrons produced should be on-shell or generated used the MassGenerator.
Definition:
ClusterDecayer.h:154
Herwig::ClusterDecayer::_masstry
unsigned int _masstry
Number of tries to generate the masses of the decay products.
Definition:
ClusterDecayer.h:159
Herwig::ClusterDecayer::_clSmrLight
double _clSmrLight
The S parameter from decayIntoTwoHadrons.
Definition:
ClusterDecayer.h:144
Herwig::ClusterDecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::ClusterDecayer::_hadronsSelector
Ptr< HadronSelector >::pointer _hadronsSelector
Pointer to a Herwig::HadronSelector for choosing decay types.
Definition:
ClusterDecayer.h:130
Herwig::ClusterDecayer::persistentInput
void persistentInput(PersistentIStream &, int)
Standard ThePEG function for reading from a persistent stream.
Herwig::ClusterDecayer::Init
static void Init()
Standard Init function used to initialize the interfaces.
ThePEG::Interfaced
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::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tPVector
vector< tPPtr > tPVector
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6