herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Hadronization
HwppSelector.h
1
// -*- C++ -*-
2
//
3
// HwppSelector.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_HwppSelector_H
10
#define HERWIG_HwppSelector_H
11
//
12
// This is the declaration of the HwppSelector class.
13
//
14
15
#include "HadronSelector.h"
16
17
namespace
Herwig
{
18
19
using namespace
ThePEG
;
20
28
class
HwppSelector
:
public
HadronSelector
{
29
30
public
:
31
35
HwppSelector
() :
HadronSelector
(1),
36
_pwtDquark
( 1.0 ),
_pwtUquark
( 1.0 ),
_pwtSquark
( 1.0 ),
_pwtCquark
( 0.0 ),
37
_pwtBquark
( 0.0 ),
_pwtDIquark
(1.0 ),
38
_sngWt
( 1.0 ),
_decWt
( 1.0 ),
39
_mode
(1),
_enhanceSProb
(0),
_m0Decay
(1.*GeV),
40
_scHadronWtFactor
(1.),
_sbHadronWtFactor
(1.)
41
{}
42
43
public
:
44
51
void
persistentOutput
(
PersistentOStream
& os)
const
;
52
58
void
persistentInput
(
PersistentIStream
& is,
int
version);
60
67
static
void
Init
();
68
69
protected
:
70
74
virtual
double
baryonWeight
(
long
id
)
const
;
75
79
std::tuple<bool,bool,bool>
selectBaryon
(
const
Energy cluMass,
tcPDPtr
par1,
tcPDPtr
par2)
const
;
80
84
virtual
double
strangeWeight
(
const
Energy cluMass,
tcPDPtr
par1,
tcPDPtr
par2)
const
;
85
91
inline
Energy
massLightestBaryonPair
(
tcPDPtr
ptr1,
tcPDPtr
ptr2)
const
{
92
map<pair<long,long>,
tcPDPair
>::const_iterator lightest =
93
lightestBaryons_
.find(make_pair(abs(ptr1->id()),abs(ptr2->id())));
94
assert(lightest!=
lightestBaryons_
.end());
95
return
lightest->second.first->mass()+lightest->second.second->mass();
96
}
97
103
tcPDPair
lightestBaryonPair
(
tcPDPtr
ptr1,
tcPDPtr
ptr2)
const
;
104
105
protected
:
106
113
virtual
IBPtr
clone
()
const
;
114
119
virtual
IBPtr
fullclone
()
const
;
121
122
protected
:
123
131
virtual
void
doinit
();
133
134
private
:
135
140
HwppSelector
&
operator=
(
const
HwppSelector
&) =
delete
;
141
142
private
:
143
151
double
_pwtDquark
;
152
156
double
_pwtUquark
;
157
161
double
_pwtSquark
;
162
166
double
_pwtCquark
;
167
171
double
_pwtBquark
;
172
176
double
_pwtDIquark
;
178
186
double
_sngWt
;
187
191
double
_decWt
;
193
194
private
:
195
199
unsigned
int
_mode
;
200
205
int
_enhanceSProb
;
206
210
Energy
_m0Decay
;
211
216
int
_massMeasure
;
217
222
const
double
_maxScale
= 20.;
223
227
double
_scHadronWtFactor
;
228
232
double
_sbHadronWtFactor
;
233
241
map<pair<long,long>,
tcPDPair
>
lightestBaryons_
;
243
244
};
245
246
}
247
248
#endif
/* HERWIG_HwppSelector_H */
Herwig::HadronSelector
This class selects the hadron flavours of a cluster decay.
Definition:
HadronSelector.h:51
Herwig::HwppSelector
The HwppSelector class selects the hadrons produced in cluster decay using the Herwig variant of the ...
Definition:
HwppSelector.h:28
Herwig::HwppSelector::lightestBaryons_
map< pair< long, long >, tcPDPair > lightestBaryons_
Caches of lightest pairs for speed.
Definition:
HwppSelector.h:241
Herwig::HwppSelector::massLightestBaryonPair
Energy massLightestBaryonPair(tcPDPtr ptr1, tcPDPtr ptr2) const
Returns the mass of the lightest pair of baryons.
Definition:
HwppSelector.h:91
Herwig::HwppSelector::lightestBaryonPair
tcPDPair lightestBaryonPair(tcPDPtr ptr1, tcPDPtr ptr2) const
Returns the mass of the lightest pair of baryons.
Herwig::HwppSelector::baryonWeight
virtual double baryonWeight(long id) const
Weights for baryons.
Herwig::HwppSelector::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::HwppSelector::_pwtBquark
double _pwtBquark
The probability of producting a bottom quark.
Definition:
HwppSelector.h:171
Herwig::HwppSelector::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::HwppSelector::_pwtSquark
double _pwtSquark
The probability of producting a strange quark.
Definition:
HwppSelector.h:161
Herwig::HwppSelector::strangeWeight
virtual double strangeWeight(const Energy cluMass, tcPDPtr par1, tcPDPtr par2) const
Strange quark weight.
Herwig::HwppSelector::operator=
HwppSelector & operator=(const HwppSelector &)=delete
The assignment operator is private and must never be called.
Herwig::HwppSelector::_maxScale
const double _maxScale
Constant variable that stops the scale in strangeness enhancement from becoming too large.
Definition:
HwppSelector.h:222
Herwig::HwppSelector::_pwtUquark
double _pwtUquark
The probability of producting an up quark.
Definition:
HwppSelector.h:156
Herwig::HwppSelector::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::HwppSelector::_enhanceSProb
int _enhanceSProb
Flag that switches between no strangeness enhancement, scaling enhancement, and exponential enhanceme...
Definition:
HwppSelector.h:205
Herwig::HwppSelector::_massMeasure
int _massMeasure
Flag that switches between mass measures used in strangeness enhancement: cluster mass,...
Definition:
HwppSelector.h:216
Herwig::HwppSelector::_sngWt
double _sngWt
Singlet and Decuplet weights.
Definition:
HwppSelector.h:186
Herwig::HwppSelector::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::HwppSelector::_scHadronWtFactor
double _scHadronWtFactor
Heavy strange-charm hadron wight coefficient.
Definition:
HwppSelector.h:227
Herwig::HwppSelector::_sbHadronWtFactor
double _sbHadronWtFactor
Heavy strange-bottom hadron wight coefficient.
Definition:
HwppSelector.h:232
Herwig::HwppSelector::HwppSelector
HwppSelector()
The default constructor.
Definition:
HwppSelector.h:35
Herwig::HwppSelector::_pwtDquark
double _pwtDquark
The weights for the different quarks and diquarks.
Definition:
HwppSelector.h:151
Herwig::HwppSelector::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::HwppSelector::_pwtCquark
double _pwtCquark
The probability of producting a charm quark.
Definition:
HwppSelector.h:166
Herwig::HwppSelector::_m0Decay
Energy _m0Decay
Parameter that governs the strangeness enhancement scaling.
Definition:
HwppSelector.h:210
Herwig::HwppSelector::_pwtDIquark
double _pwtDIquark
The probability of producting a diquark.
Definition:
HwppSelector.h:176
Herwig::HwppSelector::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::HwppSelector::_mode
unsigned int _mode
Which algorithm to use.
Definition:
HwppSelector.h:199
Herwig::HwppSelector::_decWt
double _decWt
The decuplet weight.
Definition:
HwppSelector.h:191
Herwig::HwppSelector::selectBaryon
std::tuple< bool, bool, bool > selectBaryon(const Energy cluMass, tcPDPtr par1, tcPDPtr par2) const
Whether to select a meson or a baryon.
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tcPDPair
pair< tcPDPtr, tcPDPtr > tcPDPair
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6