herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
Partonic
PartonicDecayerBase.h
1
// -*- C++ -*-
2
//
3
// PartonicDecayerBase.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_PartonicDecayerBase_H
10
#define HERWIG_PartonicDecayerBase_H
11
//
12
// This is the declaration of the PartonicDecayerBase class.
13
//
14
15
#include "Herwig/Decay/HwDecayerBase.h"
16
#include "Herwig/Hadronization/PartonSplitter.h"
17
#include "Herwig/Hadronization/ClusterFinder.h"
18
#include "Herwig/Hadronization/ClusterFissioner.h"
19
#include "Herwig/Hadronization/LightClusterDecayer.h"
20
#include "Herwig/Hadronization/ClusterDecayer.h"
21
#include "Herwig/Hadronization/Cluster.h"
22
#include "Herwig/Shower/QTilde/Base/PartnerFinder.h"
23
#include "Herwig/Shower/QTilde/SplittingFunctions/SplittingGenerator.h"
24
#include "Herwig/Shower/QTilde/Kinematics/KinematicsReconstructor.h"
25
26
namespace
Herwig
{
27
28
using namespace
ThePEG
;
29
33
ThePEG_DECLARE_MULTISET
(
tcPDPtr
,cParticleMSet);
34
41
class
PartonicDecayerBase
:
public
HwDecayerBase
{
42
43
public
:
44
48
PartonicDecayerBase
();
49
58
virtual
bool
accept
(
tcPDPtr
parent,
const
tPDVector
& children)
const
= 0;
59
66
virtual
ParticleVector
decay
(
const
Particle
& parent,
67
const
tPDVector
& children)
const
= 0;
68
75
virtual
ParticleVector
decay
(
const
DecayMode
& dm,
const
Particle
& p)
const
;
76
82
virtual
void
dataBaseOutput
(ofstream & os,
bool
header)
const
;
84
85
protected
:
86
90
PVector
shower
(
const
Particle
& parent,
ParticleVector
& partons)
const
;
91
92
bool
timeLikeShower(tShowerParticlePtr particle,
93
Branching
fb,
bool
first,
PVector
& output)
const
;
94
95
public
:
96
103
void
persistentOutput
(
PersistentOStream
& os)
const
;
104
110
void
persistentInput
(
PersistentIStream
& is,
int
version);
112
119
static
void
Init
();
120
121
protected
:
122
130
virtual
void
doinit
();
132
133
protected
:
134
142
bool
duplicateMode
(
const
Particle
& parent,
143
const
vector<tPPtr> & hadrons)
const
;
144
145
private
:
146
151
PartonicDecayerBase
&
operator=
(
const
PartonicDecayerBase
&) =
delete
;
152
153
private
:
154
158
PartonSplitterPtr
_partonSplitter
;
159
163
ClusterFinderPtr
_clusterFinder
;
164
168
ClusterFissionerPtr
_clusterFissioner
;
169
173
LightClusterDecayerPtr
_lightClusterDecayer
;
174
178
ClusterDecayerPtr
_clusterDecayer
;
179
183
bool
_exclusive
;
184
188
unsigned
int
_partontries
;
189
193
bool
_inter
;
194
195
// @name Parton Shower related variables
197
200
bool
_shower
;
201
205
SplittingGeneratorPtr
_splittingGenerator
;
206
210
PartnerFinderPtr
_partnerFinder
;
211
215
KinematicsReconstructorPtr
_reconstructor
;
217
218
};
219
220
}
221
222
#endif
/* HERWIG_PartonicDecayerBase_H */
Herwig::HwDecayerBase
The HwDecayerBase class is the base class for Decayers in Herwig.
Definition:
HwDecayerBase.h:37
Herwig::PartonicDecayerBase
Here is the documentation of the PartonicDecayerBase class.
Definition:
PartonicDecayerBase.h:41
Herwig::PartonicDecayerBase::_splittingGenerator
SplittingGeneratorPtr _splittingGenerator
Pointer to the splitting generator.
Definition:
PartonicDecayerBase.h:205
Herwig::PartonicDecayerBase::_clusterDecayer
ClusterDecayerPtr _clusterDecayer
This is a pointer to a Herwig::ClusterDecayer object.
Definition:
PartonicDecayerBase.h:178
Herwig::PartonicDecayerBase::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
Herwig::PartonicDecayerBase::_partontries
unsigned int _partontries
Number of tries for partonic modes.
Definition:
PartonicDecayerBase.h:188
Herwig::PartonicDecayerBase::_partnerFinder
PartnerFinderPtr _partnerFinder
Pointer to the PartnerFinder object.
Definition:
PartonicDecayerBase.h:210
Herwig::PartonicDecayerBase::_reconstructor
KinematicsReconstructorPtr _reconstructor
Pointer to the KinematicsReconstructor object.
Definition:
PartonicDecayerBase.h:215
Herwig::PartonicDecayerBase::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::PartonicDecayerBase::accept
virtual bool accept(tcPDPtr parent, const tPDVector &children) const =0
Check if this decayer can perfom the decay for a particular mode.
Herwig::PartonicDecayerBase::_clusterFinder
ClusterFinderPtr _clusterFinder
This is a pointer to a Herwig::ClusterFinder object.
Definition:
PartonicDecayerBase.h:163
Herwig::PartonicDecayerBase::decay
virtual ParticleVector decay(const DecayMode &dm, const Particle &p) const
Perform a decay for a given DecayMode and a given Particle instance.
Herwig::PartonicDecayerBase::_inter
bool _inter
Whether or not to include the intermediates.
Definition:
PartonicDecayerBase.h:193
Herwig::PartonicDecayerBase::_shower
bool _shower
Wheher or not to perform the parton shower.
Definition:
PartonicDecayerBase.h:200
Herwig::PartonicDecayerBase::decay
virtual ParticleVector decay(const Particle &parent, const tPDVector &children) const =0
Perform the decay of the particle to the specified decay products.
Herwig::PartonicDecayerBase::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::PartonicDecayerBase::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::PartonicDecayerBase::_lightClusterDecayer
LightClusterDecayerPtr _lightClusterDecayer
This is a pointer to a Herwig::LightClusterDecayer object.
Definition:
PartonicDecayerBase.h:173
Herwig::PartonicDecayerBase::_clusterFissioner
ClusterFissionerPtr _clusterFissioner
This is a pointer to a Herwig::ClusterFissioner object.
Definition:
PartonicDecayerBase.h:168
Herwig::PartonicDecayerBase::shower
PVector shower(const Particle &parent, ParticleVector &partons) const
Perform the parton shower.
Herwig::PartonicDecayerBase::duplicateMode
bool duplicateMode(const Particle &parent, const vector< tPPtr > &hadrons) const
Check hadrons produced in a partonic hadron decay do not reproduce an inclusive mode.
Herwig::PartonicDecayerBase::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::PartonicDecayerBase::_exclusive
bool _exclusive
Switch to control hadrons produced in partonic b and c decays.
Definition:
PartonicDecayerBase.h:183
Herwig::PartonicDecayerBase::operator=
PartonicDecayerBase & operator=(const PartonicDecayerBase &)=delete
The assignment operator is private and must never be called.
Herwig::PartonicDecayerBase::_partonSplitter
PartonSplitterPtr _partonSplitter
This is a pointer to a Herwig::PartonSplitter object.
Definition:
PartonicDecayerBase.h:158
Herwig::PartonicDecayerBase::PartonicDecayerBase
PartonicDecayerBase()
The default constructor.
ThePEG::DecayMode
ThePEG::Particle
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::ThePEG_DECLARE_MULTISET
ThePEG_DECLARE_MULTISET(tcPDPtr, cParticleMSet)
Define some sets.
ThePEG
ThePEG::tPDVector
vector< tPDPtr > tPDVector
ThePEG::ParticleVector
vector< PPtr > ParticleVector
ThePEG::PVector
vector< PPtr > PVector
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Herwig::Branching
The branching struct is used to store information on the branching.
Definition:
Branching.h:20
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6