herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
WeakCurrents
EtaPiPiDefaultCurrent.h
1
// -*- C++ -*-
2
//
3
// EtaPiPiDefaultCurrent.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_EtaPiPiDefaultCurrent_H
10
#define HERWIG_EtaPiPiDefaultCurrent_H
11
//
12
// This is the declaration of the EtaPiPiDefaultCurrent class.
13
//
14
#include "WeakCurrent.h"
15
#include "Herwig/Utilities/Interpolator.h"
16
#include "Herwig/Utilities/Kinematics.h"
17
#include "ThePEG/StandardModel/StandardModelBase.h"
18
#include "Herwig/Decay/ResonanceHelpers.h"
19
#include <numeric>
20
21
namespace
Herwig
{
22
using namespace
ThePEG
;
23
33
class
EtaPiPiDefaultCurrent
:
public
WeakCurrent
{
34
35
public
:
36
40
EtaPiPiDefaultCurrent
();
41
55
virtual
vector<LorentzPolarizationVectorE>
56
current
(
tcPDPtr
resonance,
57
FlavourInfo
flavour,
58
const
int
imode,
const
int
ichan,Energy & scale,
59
const
tPDVector
&
outgoing
,
60
const
vector<Lorentz5Momentum> & momenta,
61
DecayIntegrator::MEOption
meopt)
const
;
62
68
virtual
bool
accept
(vector<int>
id
);
69
76
virtual
unsigned
int
decayMode
(vector<int>
id
);
77
86
virtual
tPDVector
particles
(
int
icharge,
unsigned
int
imode,
int
iq,
int
ia);
87
88
public
:
89
96
void
persistentOutput
(
PersistentOStream
& os)
const
;
97
103
void
persistentInput
(
PersistentIStream
& is,
int
version);
105
109
static
void
Init
();
110
111
public
:
112
133
virtual
bool
createMode
(
int
icharge,
tcPDPtr
resonance,
134
FlavourInfo
flavour,
135
unsigned
int
imode,PhaseSpaceModePtr mode,
136
unsigned
int
iloc,
int
ires,
137
PhaseSpaceChannel
phase, Energy upp );
139
146
virtual
void
dataBaseOutput
(ofstream & os,
bool
header,
bool
create)
const
;
147
148
protected
:
149
156
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
157
162
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
164
165
protected
:
166
172
virtual
void
doinit
();
173
174
private
:
175
179
EtaPiPiDefaultCurrent
&
operator=
(
const
EtaPiPiDefaultCurrent
&) =
delete
;
180
181
private
:
182
189
Complex
BrhoF123
(Energy2 q2,
int
ires)
const
{
190
Complex
output(0.);
191
Complex
norm = std::accumulate(
_rhoF123wgts
.begin(),
_rhoF123wgts
.end(),
Complex
(0.));
192
if
(ires<0) {
193
for
(
unsigned
int
ix=0;ix<
_rhoF123wgts
.size();++ix) {
194
output+=
_rhoF123wgts
[ix]*
195
Resonance::BreitWignerPWave(q2,
_rhoF123masses
[ix],
196
_rhoF123widths
[ix],
_mpi
,
_mpi
);
197
}
198
}
199
else
{
200
assert(ires<=
int
(
_rhoF123wgts
.size()));
201
output=
_rhoF123wgts
[ires]*
202
Resonance::BreitWignerPWave(q2,
_rhoF123masses
[ires],
203
_rhoF123widths
[ires],
_mpi
,
_mpi
);
204
}
205
return
output/norm;
206
}
207
214
Complex
BrhoF5
(Energy2 q2,
int
ires)
const
{
215
Complex
output(0.);
216
Complex
norm = std::accumulate(
_rhoF5wgts
.begin(),
_rhoF5wgts
.end(),
Complex
(0.0));
217
if
(ires<0) {
218
for
(
unsigned
int
ix=0;ix<
_rhoF5wgts
.size();++ix) {
219
output+=
_rhoF5wgts
[ix]*
220
Resonance::BreitWignerPWave(q2,
_rhoF5masses
[ix],
221
_rhoF5widths
[ix],
_mpi
,
_mpi
);
222
}
223
}
224
else
{
225
assert(ires<=
int
(
_rhoF123wgts
.size()));
226
output=
_rhoF5wgts
[ires]*
227
Resonance::BreitWignerPWave(q2,
_rhoF5masses
[ires],
228
_rhoF5widths
[ires],
_mpi
,
_mpi
);
229
}
230
return
output/norm;
231
}
232
233
private
:
234
239
vector<double>
_rhoF123wgts
;
240
245
vector<double>
_rhoF5wgts
;
246
250
Energy
_fpi
;
251
255
Energy
_mpi
;
256
260
vector<Energy>
_rhoF123masses
;
261
265
vector<Energy>
_rhoF5masses
;
266
270
vector<Energy>
_rhoF123widths
;
271
275
vector<Energy>
_rhoF5widths
;
276
};
277
278
}
279
280
#endif
/* HERWIG_EtaPiPiDefaultCurrent_H */
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:72
Herwig::EtaPiPiDefaultCurrent
The EtaPiPiDefaultCurrent class implements the current from Z.Phys.C58:445 (1992),...
Definition:
EtaPiPiDefaultCurrent.h:33
Herwig::EtaPiPiDefaultCurrent::Init
static void Init()
Standard Init function used to initialize the interfaces.
Herwig::EtaPiPiDefaultCurrent::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
Herwig::EtaPiPiDefaultCurrent::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::EtaPiPiDefaultCurrent::BrhoF123
Complex BrhoF123(Energy2 q2, int ires) const
The Breit-Wigner for the form factors.
Definition:
EtaPiPiDefaultCurrent.h:189
Herwig::EtaPiPiDefaultCurrent::_rhoF5masses
vector< Energy > _rhoF5masses
The masses for the form factors.
Definition:
EtaPiPiDefaultCurrent.h:265
Herwig::EtaPiPiDefaultCurrent::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
EtaPiPiDefaultCurrent.h:156
Herwig::EtaPiPiDefaultCurrent::accept
virtual bool accept(vector< int > id)
Accept the decay.
Herwig::EtaPiPiDefaultCurrent::_rhoF5widths
vector< Energy > _rhoF5widths
The widths for the form factors.
Definition:
EtaPiPiDefaultCurrent.h:275
Herwig::EtaPiPiDefaultCurrent::_rhoF123masses
vector< Energy > _rhoF123masses
The masses for the form factors.
Definition:
EtaPiPiDefaultCurrent.h:260
Herwig::EtaPiPiDefaultCurrent::_mpi
Energy _mpi
The pion mass.
Definition:
EtaPiPiDefaultCurrent.h:255
Herwig::EtaPiPiDefaultCurrent::decayMode
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
Herwig::EtaPiPiDefaultCurrent::operator=
EtaPiPiDefaultCurrent & operator=(const EtaPiPiDefaultCurrent &)=delete
Private and non-existent assignment operator.
Herwig::EtaPiPiDefaultCurrent::EtaPiPiDefaultCurrent
EtaPiPiDefaultCurrent()
Default constructor.
Herwig::EtaPiPiDefaultCurrent::_rhoF123wgts
vector< double > _rhoF123wgts
Parameters for the Breit-Wigner in the form factors.
Definition:
EtaPiPiDefaultCurrent.h:239
Herwig::EtaPiPiDefaultCurrent::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::EtaPiPiDefaultCurrent::_rhoF123widths
vector< Energy > _rhoF123widths
The widths for the form factors.
Definition:
EtaPiPiDefaultCurrent.h:270
Herwig::EtaPiPiDefaultCurrent::particles
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
Herwig::EtaPiPiDefaultCurrent::current
virtual vector< LorentzPolarizationVectorE > current(tcPDPtr resonance, FlavourInfo flavour, const int imode, const int ichan, Energy &scale, const tPDVector &outgoing, const vector< Lorentz5Momentum > &momenta, DecayIntegrator::MEOption meopt) const
Hadronic current.
Herwig::EtaPiPiDefaultCurrent::createMode
virtual bool createMode(int icharge, tcPDPtr resonance, FlavourInfo flavour, unsigned int imode, PhaseSpaceModePtr mode, unsigned int iloc, int ires, PhaseSpaceChannel phase, Energy upp)
Complete the construction of the decay mode for integration.classes inheriting from this one.
Herwig::EtaPiPiDefaultCurrent::BrhoF5
Complex BrhoF5(Energy2 q2, int ires) const
The Breit-Wigner for the form factors.
Definition:
EtaPiPiDefaultCurrent.h:214
Herwig::EtaPiPiDefaultCurrent::_rhoF5wgts
vector< double > _rhoF5wgts
Parameters for the Breit-Wigner in the form factors.
Definition:
EtaPiPiDefaultCurrent.h:245
Herwig::EtaPiPiDefaultCurrent::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
EtaPiPiDefaultCurrent.h:162
Herwig::EtaPiPiDefaultCurrent::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::EtaPiPiDefaultCurrent::_fpi
Energy _fpi
The pion decay constant, .
Definition:
EtaPiPiDefaultCurrent.h:250
Herwig::PhaseSpaceChannel
This class is designed to store the information needed for a given phase-space channel for use by the...
Definition:
PhaseSpaceChannel.h:52
Herwig::WeakCurrent
The WeakCurrent class is the base class for the hadronic currents produced in weak decays.
Definition:
WeakCurrent.h:59
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity::outgoing
outgoing
ThePEG
ThePEG::Complex
std::complex< double > Complex
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tPDVector
vector< tPDPtr > tPDVector
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Herwig::FlavourInfo
Definition:
IsoSpin.h:46
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6