herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
WeakCurrents
ThreeMesonCurrentBase.h
1
// -*- C++ -*-
2
//
3
// ThreeMesonCurrentBase.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_ThreeMesonCurrentBase_H
10
#define HERWIG_ThreeMesonCurrentBase_H
11
// This is the declaration of the ThreeMesonCurrentBase class.
12
13
#include "WeakDecayCurrent.h"
14
15
namespace
Herwig
{
16
using namespace
ThePEG
;
17
59
class
ThreeMesonCurrentBase
:
public
WeakDecayCurrent {
60
61
public
:
62
66
ThreeMesonCurrentBase
();
67
71
static
void
Init
();
72
73
public
:
74
75
85
virtual
vector<LorentzPolarizationVectorE>
86
current
(
const
int
imode,
const
int
ichan,Energy & scale,
87
const
ParticleVector
& decay,
DecayIntegrator::MEOption
meopt)
const
;
88
94
virtual
bool
accept
(vector<int>
id
);
95
102
virtual
unsigned
int
decayMode
(vector<int>
id
);
103
112
virtual
tPDVector
particles
(
int
icharge,
unsigned
int
imode,
int
iq,
int
ia);
113
120
virtual
void
dataBaseOutput
(ofstream & os,
bool
header,
bool
create)
const
;
121
122
protected
:
123
129
virtual
bool
acceptMode
(
int
imode)
const
=0;
130
134
struct
FormFactors
{
135
139
complex<InvEnergy>
F1
;
140
144
complex<InvEnergy>
F2
;
145
149
complex<InvEnergy>
F3
;
150
154
complex<InvEnergy>
F4
;
155
159
complex<InvEnergy3>
F5
;
160
169
FormFactors
(complex<InvEnergy> f1 = InvEnergy(),
170
complex<InvEnergy> f2 = InvEnergy(),
171
complex<InvEnergy> f3 = InvEnergy(),
172
complex<InvEnergy> f4 = InvEnergy(),
173
complex<InvEnergy3> f5 = InvEnergy3())
174
:
F1
(f1),
F2
(f2),
F3
(f3),
F4
(f4),
F5
(f5) {}
175
};
176
186
virtual
FormFactors
calculateFormFactors
(
const
int
ichan,
const
int
imode,
187
Energy2 q2,
188
Energy2 s1, Energy2 s2, Energy2 s3)
const
= 0;
189
190
private
:
191
196
ThreeMesonCurrentBase
&
operator=
(
const
ThreeMesonCurrentBase
&) =
delete
;
197
198
};
199
200
}
201
202
#endif
/* HERWIG_ThreeMesonCurrentBase_H */
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:72
Herwig::ThreeMesonCurrentBase
This is the base class for the three meson decays of the weak current.
Definition:
ThreeMesonCurrentBase.h:59
Herwig::ThreeMesonCurrentBase::Init
static void Init()
Standard Init function used to initialize the interfaces.
Herwig::ThreeMesonCurrentBase::calculateFormFactors
virtual FormFactors calculateFormFactors(const int ichan, const int imode, Energy2 q2, Energy2 s1, Energy2 s2, Energy2 s3) const =0
Calculate the form factor for the current.
Herwig::ThreeMesonCurrentBase::accept
virtual bool accept(vector< int > id)
Accept the decay.
Herwig::ThreeMesonCurrentBase::operator=
ThreeMesonCurrentBase & operator=(const ThreeMesonCurrentBase &)=delete
The assignment operator is private and must never be called.
Herwig::ThreeMesonCurrentBase::current
virtual vector< LorentzPolarizationVectorE > current(const int imode, const int ichan, Energy &scale, const ParticleVector &decay, DecayIntegrator::MEOption meopt) const
Hadronic current.
Herwig::ThreeMesonCurrentBase::particles
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
Herwig::ThreeMesonCurrentBase::decayMode
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
Herwig::ThreeMesonCurrentBase::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
Herwig::ThreeMesonCurrentBase::acceptMode
virtual bool acceptMode(int imode) const =0
can a particular decayer handle this type of mode
Herwig::ThreeMesonCurrentBase::ThreeMesonCurrentBase
ThreeMesonCurrentBase()
Default constructor.
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::tPDVector
vector< tPDPtr > tPDVector
ThePEG::ParticleVector
vector< PPtr > ParticleVector
Herwig::ThreeMesonCurrentBase::FormFactors
Helper class for form factors.
Definition:
ThreeMesonCurrentBase.h:134
Herwig::ThreeMesonCurrentBase::FormFactors::FormFactors
FormFactors(complex< InvEnergy > f1=InvEnergy(), complex< InvEnergy > f2=InvEnergy(), complex< InvEnergy > f3=InvEnergy(), complex< InvEnergy > f4=InvEnergy(), complex< InvEnergy3 > f5=InvEnergy3())
Constructor.
Definition:
ThreeMesonCurrentBase.h:169
Herwig::ThreeMesonCurrentBase::FormFactors::F1
complex< InvEnergy > F1
Definition:
ThreeMesonCurrentBase.h:139
Herwig::ThreeMesonCurrentBase::FormFactors::F5
complex< InvEnergy3 > F5
Definition:
ThreeMesonCurrentBase.h:159
Herwig::ThreeMesonCurrentBase::FormFactors::F2
complex< InvEnergy > F2
Definition:
ThreeMesonCurrentBase.h:144
Herwig::ThreeMesonCurrentBase::FormFactors::F3
complex< InvEnergy > F3
Definition:
ThreeMesonCurrentBase.h:149
Herwig::ThreeMesonCurrentBase::FormFactors::F4
complex< InvEnergy > F4
Definition:
ThreeMesonCurrentBase.h:154
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6