herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Shower
QTilde
SplittingFunctions
SplittingGenerator.h
1
// -*- C++ -*-
2
//
3
// SplittingGenerator.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_SplittingGenerator_H
10
#define HERWIG_SplittingGenerator_H
11
//
12
// This is the declaration of the SplittingGenerator class.
13
//
14
15
#include "ThePEG/Interface/Interfaced.h"
16
#include "Herwig/Shower/QTilde/Base/Branching.h"
17
#include "Herwig/Shower/QTilde/SplittingFunctions/SudakovFormFactor.h"
18
#include "SplittingGenerator.fh"
19
#include "Herwig/Shower/QTilde/Base/ShowerParticle.h"
20
#include "Herwig/Shower/QTilde/Kinematics/ShowerKinematics.h"
21
22
namespace
Herwig
{
23
24
using namespace
ThePEG
;
25
55
class
SplittingGenerator
:
public
Interfaced
{
56
57
public
:
58
64
SplittingGenerator
() :
_deTuning
(1.) {}
66
67
public
:
68
92
Branching
chooseForwardBranching
(
ShowerParticle
& particle,
93
double
enhance,
94
ShowerInteraction
type)
const
;
95
106
Branching
chooseDecayBranching
(
ShowerParticle
& particle,
107
const
ShowerParticle::EvolutionScales
& maxScales,
108
Energy minmass,
double
enhance,
109
ShowerInteraction
type)
const
;
110
132
Branching
133
chooseBackwardBranching
(
ShowerParticle
& particle,
134
PPtr
beamparticle,
135
double
enhance,
136
Ptr<BeamParticleData>::transient_const_pointer beam,
137
ShowerInteraction
type,
138
tcPDFPtr
, Energy )
const
;
140
141
public
:
142
151
string
addFinalSplitting
(
string
arg) {
return
addSplitting
(arg,
true
); }
152
156
string
addInitialSplitting
(
string
arg) {
return
addSplitting
(arg,
false
); }
157
161
string
deleteFinalSplitting
(
string
arg) {
return
deleteSplitting
(arg,
true
); }
162
166
string
deleteInitialSplitting
(
string
arg) {
return
deleteSplitting
(arg,
false
); }
168
176
const
BranchingList
&
finalStateBranchings
()
const
{
return
_fbranchings
; }
177
181
const
BranchingList
&
initialStateBranchings
()
const
{
return
_bbranchings
; }
183
184
185
public
:
186
193
void
persistentOutput
(
PersistentOStream
& os)
const
;
194
200
void
persistentInput
(
PersistentIStream
& is,
int
version);
202
209
static
void
Init
();
210
211
protected
:
212
219
virtual
IBPtr
clone
()
const
;
220
225
virtual
IBPtr
fullclone
()
const
;
227
228
protected
:
229
241
virtual
void
rebind
(
const
TranslationMap
& trans)
242
;
243
249
virtual
IVector
getReferences
();
251
252
private
:
253
260
void
addToMap
(
const
IdList
& ids,
const
SudakovPtr & sudakov,
bool
final
);
261
268
void
deleteFromMap
(
const
IdList
& ids,
const
SudakovPtr & sudakov,
bool
final
);
269
276
void
finalStateBasisVectors
(
ShowerParticle
particle, Lorentz5Momentum & p,
277
Lorentz5Momentum & n)
const
;
278
284
string
addSplitting
(
string
in ,
bool
final
);
285
291
string
deleteSplitting
(
string
in ,
bool
final
);
292
293
private
:
294
299
SplittingGenerator
&
operator=
(
const
SplittingGenerator
&) =
delete
;
300
301
private
:
302
306
BranchingList
_fbranchings
;
307
311
BranchingList
_bbranchings
;
312
316
double
_deTuning
;
317
};
318
319
}
320
321
#endif
/* HERWIG_SplittingGenerator_H */
Herwig::ShowerParticle
This class represents a particle in the showering process.
Definition:
ShowerParticle.h:60
Herwig::SplittingGenerator
This class is responsible for creating, at the beginning of the Run, all the SplittingFunction object...
Definition:
SplittingGenerator.h:55
Herwig::SplittingGenerator::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::SplittingGenerator::deleteFinalSplitting
string deleteFinalSplitting(string arg)
Add a final-state splitting.
Definition:
SplittingGenerator.h:161
Herwig::SplittingGenerator::initialStateBranchings
const BranchingList & initialStateBranchings() const
Access the initial-state branchings.
Definition:
SplittingGenerator.h:181
Herwig::SplittingGenerator::addInitialSplitting
string addInitialSplitting(string arg)
Add an initial-state splitting.
Definition:
SplittingGenerator.h:156
Herwig::SplittingGenerator::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::SplittingGenerator::chooseBackwardBranching
Branching chooseBackwardBranching(ShowerParticle &particle, PPtr beamparticle, double enhance, Ptr< BeamParticleData >::transient_const_pointer beam, ShowerInteraction type, tcPDFPtr, Energy) const
Choose a new backward branching for a space-like particle.
Herwig::SplittingGenerator::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::SplittingGenerator::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::SplittingGenerator::chooseDecayBranching
Branching chooseDecayBranching(ShowerParticle &particle, const ShowerParticle::EvolutionScales &maxScales, Energy minmass, double enhance, ShowerInteraction type) const
Select the next branching of a particles for the initial-state shower in the particle's decay.
Herwig::SplittingGenerator::getReferences
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
Herwig::SplittingGenerator::finalStateBasisVectors
void finalStateBasisVectors(ShowerParticle particle, Lorentz5Momentum &p, Lorentz5Momentum &n) const
Obtain the reference vectors for a final-state particle.
Herwig::SplittingGenerator::chooseForwardBranching
Branching chooseForwardBranching(ShowerParticle &particle, double enhance, ShowerInteraction type) const
Methods to select the next branching and reconstruct the kinematics.
Herwig::SplittingGenerator::addToMap
void addToMap(const IdList &ids, const SudakovPtr &sudakov, bool final)
Add a branching to the map.
Herwig::SplittingGenerator::deleteFromMap
void deleteFromMap(const IdList &ids, const SudakovPtr &sudakov, bool final)
Remove a branching to the map.
Herwig::SplittingGenerator::deleteInitialSplitting
string deleteInitialSplitting(string arg)
Add an initial-state splitting.
Definition:
SplittingGenerator.h:166
Herwig::SplittingGenerator::_fbranchings
BranchingList _fbranchings
List of the branchings and the appropriate Sudakovs for forward branchings.
Definition:
SplittingGenerator.h:306
Herwig::SplittingGenerator::addSplitting
string addSplitting(string in, bool final)
Add a splitting.
Herwig::SplittingGenerator::rebind
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
Herwig::SplittingGenerator::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::SplittingGenerator::SplittingGenerator
SplittingGenerator()
The default constructor.
Definition:
SplittingGenerator.h:64
Herwig::SplittingGenerator::_bbranchings
BranchingList _bbranchings
Lists of the branchings and the appropriate Sudakovs for backward branchings.
Definition:
SplittingGenerator.h:311
Herwig::SplittingGenerator::finalStateBranchings
const BranchingList & finalStateBranchings() const
Access to the splittings.
Definition:
SplittingGenerator.h:176
Herwig::SplittingGenerator::addFinalSplitting
string addFinalSplitting(string arg)
Methods to parse the information from the input files to create the branchings.
Definition:
SplittingGenerator.h:151
Herwig::SplittingGenerator::operator=
SplittingGenerator & operator=(const SplittingGenerator &)=delete
The assignment operator is private and must never be called.
Herwig::SplittingGenerator::deleteSplitting
string deleteSplitting(string in, bool final)
Delete a splitting.
Herwig::SplittingGenerator::_deTuning
double _deTuning
The detuning parameter.
Definition:
SplittingGenerator.h:316
ThePEG::Interfaced
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::Rebinder
Herwig::ShowerInteraction
ShowerInteraction
Handy header file to be included in all Shower classes.
Definition:
ShowerInteraction.h:23
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::IdList
vector< tcPDPtr > IdList
Definition of the IdList for branchings.
Definition:
ShowerConfig.h:64
Herwig::BranchingList
multimap< long, BranchingElement > BranchingList
typedef to pair the PDG code of the particle and the BranchingElement
Definition:
ShowerConfig.h:127
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tcPDFPtr
ThePEG::Ptr< PDFBase >::transient_const_pointer tcPDFPtr
ThePEG::PPtr
ThePEG::Ptr< Particle >::pointer PPtr
ThePEG::IVector
vector< IBPtr > IVector
Herwig::Branching
The branching struct is used to store information on the branching.
Definition:
Branching.h:20
Herwig::ShowerParticle::EvolutionScales
Struct to store the evolution scales.
Definition:
ShowerParticle.h:100
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6