herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
Decay
WeakCurrents
WeakDecayCurrent.h
1
// -*- C++ -*-
2
//
3
// WeakDecayCurrent.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_WeakDecayCurrent_H
10
#define HERWIG_WeakDecayCurrent_H
11
//
12
// This is the declaration of the WeakDecayCurrent class.
13
//
14
#include "ThePEG/Interface/Interfaced.h"
15
#include "WeakDecayCurrent.fh"
16
#include "Herwig/Decay/DecayPhaseSpaceMode.h"
17
#include "Herwig/Decay/DecayPhaseSpaceChannel.h"
18
#include "ThePEG/Helicity/LorentzPolarizationVector.h"
19
20
namespace
Herwig
{
21
using namespace
ThePEG
;
22
using
ThePEG::Helicity::LorentzPolarizationVector
;
23
using
ThePEG::Helicity::LorentzPolarizationVectorE
;
24
57
class
WeakDecayCurrent
:
public
Interfaced
{
58
59
public
:
60
64
WeakDecayCurrent
() : _numbermodes(0) {}
65
66
public
:
67
86
virtual
bool
createMode(
int
icharge,
unsigned
int
imode,DecayPhaseSpaceModePtr mode,
87
unsigned
int
iloc,
unsigned
int
ires,
88
DecayPhaseSpaceChannelPtr phase,Energy upp)=0;
89
99
virtual
tPDVector
particles(
int
icharge,
unsigned
int
imode,
int
iq,
int
ia)=0;
101
105
unsigned
int
numberOfModes
()
const
{
return
_quark.size();}
106
117
virtual
vector<LorentzPolarizationVectorE>
118
current(
const
int
imode,
const
int
ichan,Energy & scale,
119
const
ParticleVector
& decay,
DecayIntegrator::MEOption
meopt)
const
=0;
120
127
virtual
bool
accept(vector<int>
id
)=0;
128
136
virtual
unsigned
int
decayMode(vector<int>
id
)=0;
137
144
void
decayModeInfo
(
unsigned
int
imode,
int
& iq,
int
& ia)
const
{
145
if
(imode<_quark.size()) {
146
iq=_quark[imode];
147
ia=_antiquark[imode];
148
}
149
else
{
150
iq=0;
151
ia=0;
152
}
153
}
154
161
virtual
void
dataBaseOutput(ofstream & os,
bool
header,
bool
create)
const
;
162
163
public
:
164
171
void
persistentOutput(
PersistentOStream
& os)
const
;
172
178
void
persistentInput(
PersistentIStream
& is,
int
version);
180
184
static
void
Init();
185
186
protected
:
187
193
void
addDecayMode
(
int
iq,
int
ia) {
194
_quark.push_back(iq);
195
_antiquark.push_back(ia);
196
}
197
202
void
setInitialModes
(
unsigned
int
nmodes) {_numbermodes=nmodes;}
203
204
private
:
205
209
WeakDecayCurrent
& operator=(
const
WeakDecayCurrent
&) =
delete
;
210
211
private
:
212
216
vector<int>
_quark
;
217
221
vector<int>
_antiquark
;
222
226
unsigned
int
_numbermodes
;
227
228
};
229
230
}
231
232
233
#endif
/* HERWIG_WeakDecayCurrent_H */
Herwig::WeakDecayCurrent::_quark
vector< int > _quark
The PDG codes for the quarks contained in the current.
Definition:
WeakDecayCurrent.h:216
ThePEG::PersistentIStream
Herwig::WeakDecayCurrent
The WeakDecayCurrent class is the base class for the hadronic currents produced in weak decays...
Definition:
WeakDecayCurrent.h:57
Herwig::WeakDecayCurrent::numberOfModes
unsigned int numberOfModes() const
Return the number of modes handled by this current.
Definition:
WeakDecayCurrent.h:105
Herwig::WeakDecayCurrent::WeakDecayCurrent
WeakDecayCurrent()
Default constructor.
Definition:
WeakDecayCurrent.h:64
ThePEG::PersistentOStream
ThePEG
Herwig::WeakDecayCurrent::decayModeInfo
void decayModeInfo(unsigned int imode, int &iq, int &ia) const
Information on a decay mode.
Definition:
WeakDecayCurrent.h:144
Herwig::WeakDecayCurrent::_antiquark
vector< int > _antiquark
The PDG codes for the antiquarks contained in the current.
Definition:
WeakDecayCurrent.h:221
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:79
Herwig::WeakDecayCurrent::_numbermodes
unsigned int _numbermodes
The initial number of modes.
Definition:
WeakDecayCurrent.h:226
ThePEG::tPDVector
vector< tPDPtr > tPDVector
Herwig::WeakDecayCurrent::addDecayMode
void addDecayMode(int iq, int ia)
Add a decay mode to the list.
Definition:
WeakDecayCurrent.h:193
ThePEG::Helicity::LorentzPolarizationVectorE
LorentzVector< complex< Energy > > LorentzPolarizationVectorE
ThePEG::Interfaced
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::WeakDecayCurrent::setInitialModes
void setInitialModes(unsigned int nmodes)
Set initial number of modes.
Definition:
WeakDecayCurrent.h:202
ThePEG::Helicity::LorentzPolarizationVector
LorentzVector< complex< double > > LorentzPolarizationVector
ThePEG::ParticleVector
vector< PPtr > ParticleVector
Generated on Sat Apr 11 2020 14:50:32 for Herwig by
1.8.13