herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
Decay
WeakCurrents
ThreePionCLEOCurrent.h
1
// -*- C++ -*-
2
//
3
// ThreePionCLEOCurrent.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 THEPEG_ThreePionCLEOCurrent_H
10
#define THEPEG_ThreePionCLEOCurrent_H
11
//
12
// This is the declaration of the ThreePionCLEOCurrent class.
13
//
14
#include "ThreeMesonCurrentBase.h"
15
#include "Herwig/Utilities/Interpolator.h"
16
#include "Herwig/Utilities/Kinematics.h"
17
#include "ThePEG/StandardModel/StandardModelBase.h"
18
19
namespace
Herwig
{
20
using namespace
ThePEG
;
21
99
class
ThreePionCLEOCurrent
:
public
ThreeMesonCurrentBase
{
100
105
friend
class
ThreePionCLEOa1MatrixElement;
106
107
public
:
108
112
ThreePionCLEOCurrent
();
113
120
void
persistentOutput(
PersistentOStream
& os)
const
;
121
127
void
persistentInput(
PersistentIStream
& is,
int
version);
129
133
static
void
Init();
134
135
public
:
136
139
154
virtual
bool
createMode(
int
icharge,
unsigned
int
imode,DecayPhaseSpaceModePtr mode,
155
unsigned
int
iloc,
unsigned
int
ires,
156
DecayPhaseSpaceChannelPtr phase,Energy upp);
158
165
virtual
void
dataBaseOutput(ofstream & os,
bool
header,
bool
create)
const
;
166
179
double
threeBodyMatrixElement(
const
int
iopt,
const
Energy2 q2,
180
const
Energy2 s3,
const
Energy2 s2,
181
const
Energy2 s1,
const
Energy m1,
182
const
Energy m2,
const
Energy m3)
const
;
183
184
protected
:
185
190
virtual
bool
acceptMode(
int
)
const
;
191
202
virtual
FormFactors
calculateFormFactors(
const
int
ichan,
const
int
imode,Energy2 q2,
203
Energy2 s1,Energy2 s2,Energy2 s3)
const
;
204
218
void
CLEOFormFactor(
int
imode,
int
ichan,Energy2 q2,Energy2 s1, Energy2 s2,
219
Energy2 s3,
Complex
& F1,
Complex
& F2,
Complex
& F3)
const
;
220
221
protected
:
222
229
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
230
235
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
237
238
protected
:
239
247
virtual
void
doinit();
248
252
virtual
void
doinitrun();
253
257
virtual
void
doupdate();
259
260
private
:
261
265
ThreePionCLEOCurrent
& operator=(
const
ThreePionCLEOCurrent
&) =
delete
;
266
267
private
:
268
274
Energy a1width(Energy2 q2)
const
;
275
280
void
inita1Width(
int
iopt);
281
287
Complex
a1BreitWigner
(Energy2 q2)
const
{
288
Complex
ii(0.,1.);
289
Energy2 m2=_a1mass*_a1mass; Energy q=
sqrt
(q2);
290
Complex
output=m2/(m2-q2-ii*q*a1width(q2));
291
return
output;
292
}
293
301
Complex
rhoBreitWigner
(
int
ires, Energy2 q2,
int
icharge)
const
{
302
Energy q=
sqrt
(q2);
303
double
ratio;
Complex
ii(0.,1.);
304
if
(icharge==0) ratio=
Kinematics::pstarTwoBodyDecay
(q,_mpic,_mpic)/_prhocc[ires];
305
else
ratio=
Kinematics::pstarTwoBodyDecay
(q,_mpic,_mpi0)/_prhoc0[ires];
306
ratio*= ratio*ratio;
307
Energy gamrun=_rhowidth[ires]*ratio*_rhomass[ires]/q;
308
return
_rhomass[ires]*_rhomass[ires]/(_rhomass[ires]*_rhomass[ires]
309
-q2-ii*_rhomass[ires]*gamrun);
310
}
311
319
Complex
sigmaBreitWigner
(Energy2 q2,
int
icharge)
const
{
320
Energy q=
sqrt
(q2);
321
double
ratio;
Complex
ii(0.,1.);
322
if
(icharge==0) ratio=
Kinematics::pstarTwoBodyDecay
(q,_mpic,_mpic)/_psigmacc;
323
else
ratio=
Kinematics::pstarTwoBodyDecay
(q,_mpi0,_mpi0)/_psigma00;
324
Energy gamrun=_sigmawidth*ratio*_sigmamass/q;
325
return
_sigmamass*_sigmamass/(_sigmamass*_sigmamass-q2-ii*_sigmamass*gamrun);
326
}
327
335
Complex
f0BreitWigner
(Energy2 q2,
int
icharge)
const
{
336
Energy q=
sqrt
(q2);
337
double
ratio;
Complex
ii(0.,1.);
338
if
(icharge==0) ratio=
Kinematics::pstarTwoBodyDecay
(q,_mpic,_mpic)/_pf0cc;
339
else
ratio=
Kinematics::pstarTwoBodyDecay
(q,_mpi0,_mpi0)/_pf000;
340
Energy gamrun=_f0width*ratio*_f0mass/q;
341
return
_f0mass*_f0mass/(_f0mass*_f0mass-q2-ii*_f0mass*gamrun);
342
}
343
351
Complex
f2BreitWigner
(Energy2 q2,
int
icharge)
const
{
352
Energy q=
sqrt
(q2);
353
double
ratio;
Complex
ii(0.,1.);
354
if
(icharge==0) ratio=
Kinematics::pstarTwoBodyDecay
(q,_mpic,_mpic)/_pf2cc;
355
else
ratio=
Kinematics::pstarTwoBodyDecay
(q,_mpi0,_mpi0)/_pf200;
356
ratio*= ratio*ratio*ratio*ratio;
357
Energy gamrun=_f2width*ratio*_f2mass/q;
358
return
_f2mass*_f2mass/(_f2mass*_f2mass-q2-ii*_f2mass*gamrun);
359
}
360
361
private
:
362
366
vector<Energy>
_rhomass
;
367
371
vector<Energy>
_rhowidth
;
372
376
vector<Energy>
_prhocc
;
377
381
vector<Energy>
_prhoc0
;
382
386
Energy
_f2mass
;
387
391
Energy
_f2width
;
392
396
Energy
_pf2cc
;
397
401
Energy
_pf200
;
402
406
Energy
_f0mass
;
407
411
Energy
_f0width
;
412
416
Energy
_pf0cc
;
417
421
Energy
_pf000
;
422
426
Energy
_sigmamass
;
427
431
Energy
_sigmawidth
;
432
436
Energy
_psigmacc
;
437
441
Energy
_psigma00
;
442
446
Energy
_mpi0
;
447
451
Energy
_mpic
;
452
456
Energy
_a1mass
;
457
461
Energy
_a1width
;
462
466
Energy
_mKstar
;
467
471
Energy
_mK
;
472
476
double
_gammk
;
477
481
Energy
_fpi
;
482
486
InvEnergy
_fact
;
487
492
vector<double>
_rhomagP
;
493
498
vector<double>
_rhophaseP
;
499
504
vector<Complex>
_rhocoupP
;
505
510
vector<InvEnergy2>
_rhomagD
;
511
516
vector<double>
_rhophaseD
;
517
522
vector<complex<InvEnergy2> >
_rhocoupD
;
523
528
InvEnergy2
_f2mag
;
529
534
double
_f2phase
;
535
540
complex<InvEnergy2>
_f2coup
;
541
546
double
_f0mag
;
547
552
double
_f0phase
;
553
558
Complex
_f0coup
;
559
564
double
_sigmamag
;
565
570
double
_sigmaphase
;
571
576
Complex
_sigmacoup
;
577
581
bool
_localparameters
;
582
586
vector<Energy>
_a1runwidth
;
587
591
vector<Energy2>
_a1runq2
;
592
593
597
Interpolator<Energy,Energy2>::Ptr
_a1runinter
;
598
602
bool
_initializea1
;
603
607
bool
_a1opt
;
608
612
Energy
_maxmass
;
613
617
Energy
_maxcalc
;
618
619
};
620
621
}
622
623
#endif
/* THEPEG_ThreePionCLEOCurrent_H */
Herwig::ThreePionCLEOCurrent::_sigmaphase
double _sigmaphase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:570
Herwig::ThreePionCLEOCurrent::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
ThreePionCLEOCurrent.h:229
Herwig::ThreePionCLEOCurrent
The ThreePionCLEOCurrent class implements the decay of the weak current to three pions using the curr...
Definition:
ThreePionCLEOCurrent.h:99
Herwig::ThreePionCLEOCurrent::_mKstar
Energy _mKstar
Mass of the resonace.
Definition:
ThreePionCLEOCurrent.h:466
ThePEG::PersistentIStream
sqrt
double sqrt(int x)
Herwig::ThreePionCLEOCurrent::_prhoc0
vector< Energy > _prhoc0
Momenta of the decay products for charged decay.
Definition:
ThreePionCLEOCurrent.h:381
ThePEG::Complex
std::complex< double > Complex
Herwig::ThreePionCLEOCurrent::_f0coup
Complex _f0coup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:558
Herwig::ThreePionCLEOCurrent::_f0width
Energy _f0width
Width of the resonance.
Definition:
ThreePionCLEOCurrent.h:411
Herwig::ThreePionCLEOCurrent::_rhophaseD
vector< double > _rhophaseD
Phase of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:516
Herwig::ThreePionCLEOCurrent::_pf000
Energy _pf000
Momenta of the decay products for decay to neutral pions.
Definition:
ThreePionCLEOCurrent.h:421
Herwig::ThreePionCLEOCurrent::_psigmacc
Energy _psigmacc
Momenta of the decay products for decay to charged pions.
Definition:
ThreePionCLEOCurrent.h:436
Herwig::ThreePionCLEOCurrent::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
ThreePionCLEOCurrent.h:235
ThePEG::PersistentOStream
Herwig::ThreePionCLEOCurrent::_f0phase
double _f0phase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:552
Herwig::ThreePionCLEOCurrent::_f0mag
double _f0mag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:546
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::ThreePionCLEOCurrent::f0BreitWigner
Complex f0BreitWigner(Energy2 q2, int icharge) const
Breit-Wigner for the .
Definition:
ThreePionCLEOCurrent.h:335
Herwig::ThreePionCLEOCurrent::_f2mass
Energy _f2mass
Mass of the resonance.
Definition:
ThreePionCLEOCurrent.h:386
Herwig::ThreePionCLEOCurrent::_rhomagD
vector< InvEnergy2 > _rhomagD
Magnitude of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:510
Herwig::ThreePionCLEOCurrent::_rhocoupD
vector< complex< InvEnergy2 > > _rhocoupD
-wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:522
Herwig::ThreePionCLEOCurrent::_initializea1
bool _initializea1
Initialize the running width.
Definition:
ThreePionCLEOCurrent.h:602
Herwig::ThreePionCLEOCurrent::f2BreitWigner
Complex f2BreitWigner(Energy2 q2, int icharge) const
Breit-Wigner for the .
Definition:
ThreePionCLEOCurrent.h:351
Herwig::Interpolator
Definition:
Interpolator.h:31
ThePEG
Herwig::ThreePionCLEOCurrent::_maxcalc
Energy _maxcalc
The maximum mass when the running width was calculated.
Definition:
ThreePionCLEOCurrent.h:617
Herwig::ThreePionCLEOCurrent::_f2width
Energy _f2width
Width of the resonance.
Definition:
ThreePionCLEOCurrent.h:391
Herwig::ThreePionCLEOCurrent::_sigmawidth
Energy _sigmawidth
Width of the resonance.
Definition:
ThreePionCLEOCurrent.h:431
Herwig::ThreePionCLEOCurrent::_a1runinter
Interpolator< Energy, Energy2 >::Ptr _a1runinter
The interpolator for the running width calculation.
Definition:
ThreePionCLEOCurrent.h:597
Herwig::ThreePionCLEOCurrent::_a1opt
bool _a1opt
Option for the width.
Definition:
ThreePionCLEOCurrent.h:607
Herwig::ThreePionCLEOCurrent::_localparameters
bool _localparameters
use local values of the mass parameters
Definition:
ThreePionCLEOCurrent.h:581
Herwig::ThreePionCLEOCurrent::_mpi0
Energy _mpi0
Mass of the neutral pion.
Definition:
ThreePionCLEOCurrent.h:446
Herwig::ThreePionCLEOCurrent::rhoBreitWigner
Complex rhoBreitWigner(int ires, Energy2 q2, int icharge) const
The Breit-Wigner.
Definition:
ThreePionCLEOCurrent.h:301
Herwig::ThreePionCLEOCurrent::_f2mag
InvEnergy2 _f2mag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:528
Herwig::ThreePionCLEOCurrent::_fpi
Energy _fpi
pion decay constant
Definition:
ThreePionCLEOCurrent.h:481
Herwig::ThreePionCLEOCurrent::_pf200
Energy _pf200
Momenta of the decay products for decay to neutral pions.
Definition:
ThreePionCLEOCurrent.h:401
Herwig::ThreePionCLEOCurrent::_sigmacoup
Complex _sigmacoup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:576
Herwig::ThreePionCLEOCurrent::sigmaBreitWigner
Complex sigmaBreitWigner(Energy2 q2, int icharge) const
Breit-Wigner for the .
Definition:
ThreePionCLEOCurrent.h:319
Herwig::ThreePionCLEOCurrent::_f0mass
Energy _f0mass
Mass of the resonance.
Definition:
ThreePionCLEOCurrent.h:406
Herwig::ThreePionCLEOCurrent::_a1runwidth
vector< Energy > _a1runwidth
The width for the running width calculation.
Definition:
ThreePionCLEOCurrent.h:586
Herwig::ThreePionCLEOCurrent::_rhocoupP
vector< Complex > _rhocoupP
-wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:504
Herwig::ThreePionCLEOCurrent::_mpic
Energy _mpic
Mass of the charged pion.
Definition:
ThreePionCLEOCurrent.h:451
Herwig::ThreePionCLEOCurrent::_f2coup
complex< InvEnergy2 > _f2coup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:540
Herwig::ThreePionCLEOCurrent::_a1width
Energy _a1width
The width.
Definition:
ThreePionCLEOCurrent.h:461
Herwig::ThreePionCLEOCurrent::_prhocc
vector< Energy > _prhocc
Momenta of the decay products for neutral decay.
Definition:
ThreePionCLEOCurrent.h:376
Herwig::ThreePionCLEOCurrent::_rhophaseP
vector< double > _rhophaseP
Phase of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:498
Herwig::ThreePionCLEOCurrent::_gammk
double _gammk
Coupling for the term in the running width.
Definition:
ThreePionCLEOCurrent.h:476
Herwig::ThreePionCLEOCurrent::_f2phase
double _f2phase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:534
Herwig::ThreePionCLEOCurrent::_a1runq2
vector< Energy2 > _a1runq2
The for the running width calculation.
Definition:
ThreePionCLEOCurrent.h:591
Herwig::ThreePionCLEOCurrent::_pf2cc
Energy _pf2cc
Momenta of the decay products for decay to charged pions.
Definition:
ThreePionCLEOCurrent.h:396
Herwig::Kinematics::pstarTwoBodyDecay
Energy pstarTwoBodyDecay(const Energy M, const Energy m1, const Energy m2)
For the two body decay M -> m1 + m2 it gives the module of the 3-momentum of the decay product in the...
Definition:
Kinematics.h:93
Herwig::ThreePionCLEOCurrent::_rhomass
vector< Energy > _rhomass
Masses of the resonances.
Definition:
ThreePionCLEOCurrent.h:366
Herwig::ThreePionCLEOCurrent::_sigmamag
double _sigmamag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:564
Herwig::ThreePionCLEOCurrent::_sigmamass
Energy _sigmamass
Mass of the resonance.
Definition:
ThreePionCLEOCurrent.h:426
Herwig::ThreePionCLEOCurrent::_fact
InvEnergy _fact
The prefactor.
Definition:
ThreePionCLEOCurrent.h:486
Herwig::ThreePionCLEOCurrent::_pf0cc
Energy _pf0cc
Momenta of the decay products for decay to charged pions.
Definition:
ThreePionCLEOCurrent.h:416
Herwig::ThreePionCLEOCurrent::_rhomagP
vector< double > _rhomagP
Magnitude of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:492
Herwig::ThreePionCLEOCurrent::_a1mass
Energy _a1mass
The mass.
Definition:
ThreePionCLEOCurrent.h:456
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::ThreePionCLEOCurrent::a1BreitWigner
Complex a1BreitWigner(Energy2 q2) const
Breit-Wigner
Definition:
ThreePionCLEOCurrent.h:287
Herwig::ThreePionCLEOCurrent::_psigma00
Energy _psigma00
Momenta of the decay products for decay to neutral pions.
Definition:
ThreePionCLEOCurrent.h:441
Herwig::ThreePionCLEOCurrent::_maxmass
Energy _maxmass
The maximum mass of the hadronic system.
Definition:
ThreePionCLEOCurrent.h:612
Herwig::ThreeMesonCurrentBase::FormFactors
Helper class for form factors.
Definition:
ThreeMesonCurrentBase.h:134
Herwig::ThreePionCLEOCurrent::_mK
Energy _mK
Mass of the resonace.
Definition:
ThreePionCLEOCurrent.h:471
Herwig::ThreePionCLEOCurrent::_rhowidth
vector< Energy > _rhowidth
Widths of the resonances.
Definition:
ThreePionCLEOCurrent.h:371
Herwig::ThreeMesonCurrentBase
This is the base class for the three meson decays of the weak current.
Definition:
ThreeMesonCurrentBase.h:59
Generated on Sat Apr 11 2020 14:50:32 for Herwig by
1.8.13