herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
WeakCurrents
FourPionNovosibirskCurrent.h
1
// -*- C++ -*-
2
//
3
// FourPionNovosibirskCurrent.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_FourPionNovosibirskCurrent_H
10
#define HERWIG_FourPionNovosibirskCurrent_H
11
//
12
// This is the declaration of the FourPionNovosibirskCurrent class.
13
//
14
#include "WeakCurrent.h"
15
#include "Herwig/Utilities/Interpolator.h"
16
#include "Herwig/Utilities/Kinematics.h"
17
18
namespace
Herwig
{
19
using namespace
ThePEG
;
20
37
class
FourPionNovosibirskCurrent
:
public
WeakCurrent
{
38
43
friend
class
FourPionDefaultMatrixElement
;
44
45
public
:
46
50
FourPionNovosibirskCurrent
();
51
58
void
persistentOutput
(
PersistentOStream
& os)
const
;
59
65
void
persistentInput
(
PersistentIStream
& is,
int
version);
67
71
static
void
Init
();
72
73
public
:
74
95
virtual
bool
createMode
(
int
icharge,
tcPDPtr
resonance,
96
FlavourInfo
flavour,
97
unsigned
int
imode,PhaseSpaceModePtr mode,
98
unsigned
int
iloc,
int
ires,
99
PhaseSpaceChannel
phase, Energy upp );
100
110
virtual
tPDVector
particles
(
int
icharge,
unsigned
int
imode,
int
iq,
int
ia);
112
113
127
virtual
vector<LorentzPolarizationVectorE>
128
current
(
tcPDPtr
resonance,
129
FlavourInfo
flavour,
130
const
int
imode,
const
int
ichan,Energy & scale,
131
const
tPDVector
&
outgoing
,
132
const
vector<Lorentz5Momentum> & momenta,
133
DecayIntegrator::MEOption
meopt)
const
;
134
140
virtual
bool
accept
(vector<int>
id
);
141
148
virtual
unsigned
int
decayMode
(vector<int>
id
);
149
156
virtual
void
dataBaseOutput
(ofstream & os,
bool
header,
bool
create)
const
;
157
170
double
threeBodyMatrixElement
(
const
int
iopt,
const
Energy2 q2,
171
const
Energy2 s3,
const
Energy2 s2,
172
const
Energy2 s1,
const
Energy m1,
173
const
Energy m2,
const
Energy m3)
const
;
174
175
protected
:
176
183
virtual
IBPtr
clone
()
const
;
184
189
virtual
IBPtr
fullclone
()
const
;
191
192
protected
:
193
201
virtual
void
doinit
();
202
206
virtual
void
doinitrun
();
207
211
virtual
void
doupdate
();
213
214
private
:
215
219
FourPionNovosibirskCurrent
&
operator=
(
const
FourPionNovosibirskCurrent
&) =
delete
;
220
221
protected
:
222
223
229
void
inita1width
(
int
iopt);
230
236
double
a1FormFactor
(Energy2 q2)
const
{
237
return
sqr
((1.+
_a1massolam2
)/(1.+q2*
_onedlam2
));
238
}
239
246
Complex
sigmaBreitWigner
(Energy2 q2,
unsigned
int
iopt)
const
;
247
253
Complex
a1BreitWigner
(Energy2 q2)
const
;
254
260
Complex
omegaBreitWigner
(Energy2 q2)
const
;
261
267
Complex
rhoBreitWigner
(Energy2 q2)
const
;
268
274
Energy
a1width
(Energy2 q2)
const
{
return
(*
_a1runinter
)(q2);}
275
284
LorentzVector<complex<Energy5>
>
285
t1
(Lorentz5Momentum & q1,Lorentz5Momentum & q2,
286
Lorentz5Momentum & q3,Lorentz5Momentum & q4)
const
;
287
297
LorentzVector<complex<Energy5>
>
298
t2
(Lorentz5Momentum & q1,Lorentz5Momentum & q2,
299
Lorentz5Momentum & q3,Lorentz5Momentum & q4,
300
unsigned
int
iopt)
const
;
301
310
LorentzVector<complex<Energy5>
>
311
t3
(Lorentz5Momentum & q1,Lorentz5Momentum & q2,
312
Lorentz5Momentum & q3,Lorentz5Momentum & q4)
const
;
313
320
InvEnergy6
gFunction
(Energy2 q2,
int
ichan)
const
;
321
325
Energy2
DParameter
()
const
;
326
330
double
dhdq2Parameter
()
const
;
331
337
Energy2
hFunction
(
const
Energy q)
const
;
338
339
private
:
340
348
Interpolator<double,Energy>::Ptr
_Fomega
;
349
353
Interpolator<double,Energy>::Ptr
_Fthreec
;
354
358
Interpolator<double,Energy>::Ptr
_Fonec
;
359
363
Interpolator<double,Energy2>::Ptr
_Fsigma
;
365
369
Energy
_mpic
;
370
374
Energy
_mpi0
;
375
379
Energy
_rhomass
;
380
384
Energy
_a1mass
;
385
389
Energy
_omegamass
;
390
394
Energy
_sigmamass
;
395
399
Energy
_rhowidth
;
400
404
Energy
_a1width
;
405
409
Energy
_omegawidth
;
410
414
Energy
_sigmawidth
;
415
420
Energy
_intmass
;
421
426
Energy
_intwidth
;
427
431
Complex
_zsigma
;
432
436
double
_zmag
;
437
441
double
_zphase
;
442
446
Energy2
_lambda2
;
447
451
InvEnergy2
_onedlam2
;
452
457
double
_a1massolam2
;
458
463
vector<Energy>
_psigma
;
464
468
Energy2
_mpic2
;
469
473
Energy2
_mpi02
;
474
478
Energy2
_hm2
;
479
483
Energy2
_rhoD
;
484
488
Energy
_prho
;
489
493
double
_dhdq2m2
;
494
498
InvEnergy
_aomega
;
499
503
InvEnergy
_athreec
;
504
508
InvEnergy
_aonec
;
509
513
double
_bomega
;
514
518
double
_bthreec
;
519
523
double
_bonec
;
524
528
double
_comega
;
529
533
double
_cthreec
;
534
538
double
_conec
;
539
543
vector<double>
_omegaparam
;
544
548
bool
_initializea1
;
549
553
bool
_localparameters
;
554
558
vector<Energy>
_a1runwidth
;
559
563
vector<Energy2>
_a1runq2
;
564
568
Interpolator<Energy,Energy2>::Ptr
_a1runinter
;
569
573
Energy
_maxmass
;
574
578
Energy
_maxcalc
;
579
};
580
581
}
582
583
#endif
/* HERWIG_FourPionNovosibirskCurrent_H */
584
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:72
Herwig::FourPionNovosibirskCurrent
The FourPionNovosibirskCurrent class implements the decay of the weak current to 4 pions using the ha...
Definition:
FourPionNovosibirskCurrent.h:37
Herwig::FourPionNovosibirskCurrent::_mpic
Energy _mpic
The charged pion mass.
Definition:
FourPionNovosibirskCurrent.h:369
Herwig::FourPionNovosibirskCurrent::_sigmawidth
Energy _sigmawidth
The width.
Definition:
FourPionNovosibirskCurrent.h:414
Herwig::FourPionNovosibirskCurrent::_a1runq2
vector< Energy2 > _a1runq2
The values for the interpolation table for the running width.
Definition:
FourPionNovosibirskCurrent.h:563
Herwig::FourPionNovosibirskCurrent::omegaBreitWigner
Complex omegaBreitWigner(Energy2 q2) const
The Breit-Wigner for the .
Herwig::FourPionNovosibirskCurrent::dhdq2Parameter
double dhdq2Parameter() const
The function in the rho propagator evaluated at .
Herwig::FourPionNovosibirskCurrent::inita1width
void inita1width(int iopt)
Initialize the width.
Herwig::FourPionNovosibirskCurrent::_a1mass
Energy _a1mass
The mass of the for the current.
Definition:
FourPionNovosibirskCurrent.h:384
Herwig::FourPionNovosibirskCurrent::_psigma
vector< Energy > _psigma
The momentum of the pions in on-shell decay which is used in the calculation of the running width.
Definition:
FourPionNovosibirskCurrent.h:463
Herwig::FourPionNovosibirskCurrent::_Fthreec
Interpolator< double, Energy >::Ptr _Fthreec
The interpolator for the three charged pion current.
Definition:
FourPionNovosibirskCurrent.h:353
Herwig::FourPionNovosibirskCurrent::DParameter
Energy2 DParameter() const
The d parameter in the propagator.
Herwig::FourPionNovosibirskCurrent::_intmass
Energy _intmass
Mass for the intermediate in the phase-space, this is a technical parameter to improve the phase-spac...
Definition:
FourPionNovosibirskCurrent.h:420
Herwig::FourPionNovosibirskCurrent::_omegawidth
Energy _omegawidth
The width.
Definition:
FourPionNovosibirskCurrent.h:409
Herwig::FourPionNovosibirskCurrent::_conec
double _conec
Magic number for the one charged pion current.
Definition:
FourPionNovosibirskCurrent.h:538
Herwig::FourPionNovosibirskCurrent::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::FourPionNovosibirskCurrent::t1
LorentzVector< complex< Energy5 > > t1(Lorentz5Momentum &q1, Lorentz5Momentum &q2, Lorentz5Momentum &q3, Lorentz5Momentum &q4) const
The current used in calculating the current.
Herwig::FourPionNovosibirskCurrent::_mpi0
Energy _mpi0
The neutral pion mass.
Definition:
FourPionNovosibirskCurrent.h:374
Herwig::FourPionNovosibirskCurrent::_prho
Energy _prho
The momentum of the pions produced in on-shell decay.
Definition:
FourPionNovosibirskCurrent.h:488
Herwig::FourPionNovosibirskCurrent::_dhdq2m2
double _dhdq2m2
evaluates at for the .
Definition:
FourPionNovosibirskCurrent.h:493
Herwig::FourPionNovosibirskCurrent::gFunction
InvEnergy6 gFunction(Energy2 q2, int ichan) const
The G functions of hep-ph/0201149.
Herwig::FourPionNovosibirskCurrent::doinitrun
virtual void doinitrun()
Initialize this object to the begining of the run phase.
Herwig::FourPionNovosibirskCurrent::_bonec
double _bonec
Magic number for the one charged pion current.
Definition:
FourPionNovosibirskCurrent.h:523
Herwig::FourPionNovosibirskCurrent::_a1width
Energy _a1width
The width.
Definition:
FourPionNovosibirskCurrent.h:404
Herwig::FourPionNovosibirskCurrent::doupdate
virtual void doupdate()
Check sanity of the object during the setup phase.
Herwig::FourPionNovosibirskCurrent::_Fonec
Interpolator< double, Energy >::Ptr _Fonec
The interpolator for the one charged pion current.
Definition:
FourPionNovosibirskCurrent.h:358
Herwig::FourPionNovosibirskCurrent::sigmaBreitWigner
Complex sigmaBreitWigner(Energy2 q2, unsigned int iopt) const
Breit-Wigner for the meson.
Herwig::FourPionNovosibirskCurrent::_sigmamass
Energy _sigmamass
The mass of the for the current.
Definition:
FourPionNovosibirskCurrent.h:394
Herwig::FourPionNovosibirskCurrent::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
Herwig::FourPionNovosibirskCurrent::_maxmass
Energy _maxmass
The maximum mass of the hadronic system.
Definition:
FourPionNovosibirskCurrent.h:573
Herwig::FourPionNovosibirskCurrent::t3
LorentzVector< complex< Energy5 > > t3(Lorentz5Momentum &q1, Lorentz5Momentum &q2, Lorentz5Momentum &q3, Lorentz5Momentum &q4) const
The current used in calculating the current.
Herwig::FourPionNovosibirskCurrent::_bthreec
double _bthreec
Magic number for the three charged pion current.
Definition:
FourPionNovosibirskCurrent.h:518
Herwig::FourPionNovosibirskCurrent::_rhomass
Energy _rhomass
The mass of the for the current.
Definition:
FourPionNovosibirskCurrent.h:379
Herwig::FourPionNovosibirskCurrent::_comega
double _comega
Magic number for the omega current.
Definition:
FourPionNovosibirskCurrent.h:528
Herwig::FourPionNovosibirskCurrent::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::FourPionNovosibirskCurrent::operator=
FourPionNovosibirskCurrent & operator=(const FourPionNovosibirskCurrent &)=delete
Private and non-existent assignment operator.
Herwig::FourPionNovosibirskCurrent::_lambda2
Energy2 _lambda2
The mass parameter for the form-factor.
Definition:
FourPionNovosibirskCurrent.h:446
Herwig::FourPionNovosibirskCurrent::_rhoD
Energy2 _rhoD
The d parameter for the width.
Definition:
FourPionNovosibirskCurrent.h:483
Herwig::FourPionNovosibirskCurrent::_localparameters
bool _localparameters
use local values of the particle masses
Definition:
FourPionNovosibirskCurrent.h:553
Herwig::FourPionNovosibirskCurrent::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::FourPionNovosibirskCurrent::FourPionNovosibirskCurrent
FourPionNovosibirskCurrent()
Default constructor.
Herwig::FourPionNovosibirskCurrent::_mpi02
Energy2 _mpi02
The neutral pion mass squared.
Definition:
FourPionNovosibirskCurrent.h:473
Herwig::FourPionNovosibirskCurrent::_bomega
double _bomega
Magic number for the omega current.
Definition:
FourPionNovosibirskCurrent.h:513
Herwig::FourPionNovosibirskCurrent::_zsigma
Complex _zsigma
The coupling.
Definition:
FourPionNovosibirskCurrent.h:431
Herwig::FourPionNovosibirskCurrent::threeBodyMatrixElement
double threeBodyMatrixElement(const int iopt, const Energy2 q2, const Energy2 s3, const Energy2 s2, const Energy2 s1, const Energy m1, const Energy m2, const Energy m3) const
The matrix element to evaluate the running width.
Herwig::FourPionNovosibirskCurrent::rhoBreitWigner
Complex rhoBreitWigner(Energy2 q2) const
The Breit-Wigner for the .
Herwig::FourPionNovosibirskCurrent::_initializea1
bool _initializea1
whether or not to initialize the calculation of the width
Definition:
FourPionNovosibirskCurrent.h:548
Herwig::FourPionNovosibirskCurrent::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::FourPionNovosibirskCurrent::_aonec
InvEnergy _aonec
Magic number for the one charged pion current.
Definition:
FourPionNovosibirskCurrent.h:508
Herwig::FourPionNovosibirskCurrent::_mpic2
Energy2 _mpic2
The charged pion mass squared.
Definition:
FourPionNovosibirskCurrent.h:468
Herwig::FourPionNovosibirskCurrent::a1width
Energy a1width(Energy2 q2) const
Return the running width.
Definition:
FourPionNovosibirskCurrent.h:274
Herwig::FourPionNovosibirskCurrent::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::FourPionNovosibirskCurrent::_cthreec
double _cthreec
Magic number for the three charged pion current.
Definition:
FourPionNovosibirskCurrent.h:533
Herwig::FourPionNovosibirskCurrent::_athreec
InvEnergy _athreec
Magic number for the three charged pion current.
Definition:
FourPionNovosibirskCurrent.h:503
Herwig::FourPionNovosibirskCurrent::a1FormFactor
double a1FormFactor(Energy2 q2) const
Form foactor for the vertex.
Definition:
FourPionNovosibirskCurrent.h:236
Herwig::FourPionNovosibirskCurrent::_a1massolam2
double _a1massolam2
The physical mass divided by the mass parameter in the form-factor.
Definition:
FourPionNovosibirskCurrent.h:457
Herwig::FourPionNovosibirskCurrent::accept
virtual bool accept(vector< int > id)
Accept the decay.
Herwig::FourPionNovosibirskCurrent::particles
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
Herwig::FourPionNovosibirskCurrent::decayMode
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
Herwig::FourPionNovosibirskCurrent::_zmag
double _zmag
The magnitude of the coupling.
Definition:
FourPionNovosibirskCurrent.h:436
Herwig::FourPionNovosibirskCurrent::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::FourPionNovosibirskCurrent::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::FourPionNovosibirskCurrent::_a1runinter
Interpolator< Energy, Energy2 >::Ptr _a1runinter
The interpolator for the running width.
Definition:
FourPionNovosibirskCurrent.h:568
Herwig::FourPionNovosibirskCurrent::_Fomega
Interpolator< double, Energy >::Ptr _Fomega
Interpolating functions for the G functions of hep-ph/0201149.
Definition:
FourPionNovosibirskCurrent.h:348
Herwig::FourPionNovosibirskCurrent::_omegamass
Energy _omegamass
The mass of the for the current.
Definition:
FourPionNovosibirskCurrent.h:389
Herwig::FourPionNovosibirskCurrent::_aomega
InvEnergy _aomega
Magic number for the omega current.
Definition:
FourPionNovosibirskCurrent.h:498
Herwig::FourPionNovosibirskCurrent::_hm2
Energy2 _hm2
The h function evaluated at the mass.
Definition:
FourPionNovosibirskCurrent.h:478
Herwig::FourPionNovosibirskCurrent::t2
LorentzVector< complex< Energy5 > > t2(Lorentz5Momentum &q1, Lorentz5Momentum &q2, Lorentz5Momentum &q3, Lorentz5Momentum &q4, unsigned int iopt) const
The current used in calculating the current.
Herwig::FourPionNovosibirskCurrent::Init
static void Init()
Standard Init function used to initialize the interfaces.
Herwig::FourPionNovosibirskCurrent::_Fsigma
Interpolator< double, Energy2 >::Ptr _Fsigma
The interpolator for the current.
Definition:
FourPionNovosibirskCurrent.h:363
Herwig::FourPionNovosibirskCurrent::_intwidth
Energy _intwidth
Width for the intermediate in the phase-space, this is a technical parameter to improve the phase-spa...
Definition:
FourPionNovosibirskCurrent.h:426
Herwig::FourPionNovosibirskCurrent::hFunction
Energy2 hFunction(const Energy q) const
The h function in the propagator.
Herwig::FourPionNovosibirskCurrent::_maxcalc
Energy _maxcalc
The maximum mass when the running width was calculated.
Definition:
FourPionNovosibirskCurrent.h:578
Herwig::FourPionNovosibirskCurrent::_omegaparam
vector< double > _omegaparam
magic numbers for the running omega width
Definition:
FourPionNovosibirskCurrent.h:543
Herwig::FourPionNovosibirskCurrent::FourPionDefaultMatrixElement
friend class FourPionDefaultMatrixElement
The FourPionDefaultMatrixElement class is a friend so it can perform the integration.
Definition:
FourPionNovosibirskCurrent.h:43
Herwig::FourPionNovosibirskCurrent::a1BreitWigner
Complex a1BreitWigner(Energy2 q2) const
The breit wigner.
Herwig::FourPionNovosibirskCurrent::_rhowidth
Energy _rhowidth
The width for the .
Definition:
FourPionNovosibirskCurrent.h:399
Herwig::FourPionNovosibirskCurrent::_a1runwidth
vector< Energy > _a1runwidth
The widths for the interpolation table for the running width.
Definition:
FourPionNovosibirskCurrent.h:558
Herwig::FourPionNovosibirskCurrent::_onedlam2
InvEnergy2 _onedlam2
The inverse of the mass parameter for the form-factor.
Definition:
FourPionNovosibirskCurrent.h:451
Herwig::FourPionNovosibirskCurrent::_zphase
double _zphase
The phase of the coupling.
Definition:
FourPionNovosibirskCurrent.h:441
Herwig::Interpolator::Ptr
Ptr< Interpolator< ValT, ArgT > >::pointer Ptr
Pointer to an Interpolator.
Definition:
Interpolator.h:38
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::LorentzVector
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
ThePEG::sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
Herwig::FlavourInfo
Definition:
IsoSpin.h:46
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6