herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
Decay
VectorMeson
a1ThreePionCLEODecayer.h
1
// -*- C++ -*-
2
//
3
// a1ThreePionCLEODecayer.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_a1ThreePionCLEODecayer_H
10
#define HERWIG_a1ThreePionCLEODecayer_H
11
//
12
// This is the declaration of the a1ThreePionCLEODecayer class.
13
//
14
#include "Herwig/Decay/DecayIntegrator.h"
15
#include "Herwig/Decay/DecayPhaseSpaceMode.h"
16
#include "Herwig/Utilities/Kinematics.h"
17
#include "ThePEG/Helicity/LorentzPolarizationVector.h"
18
19
namespace
Herwig
{
20
using namespace
ThePEG
;
21
146
class
a1ThreePionCLEODecayer
:
public
DecayIntegrator
{
147
148
public
:
149
153
a1ThreePionCLEODecayer
();
154
161
virtual
int
modeNumber(
bool
& cc,
tcPDPtr
parent,
162
const
tPDVector
& children)
const
;
163
172
double
me2(
const
int
ichan,
const
Particle
& part,
173
const
ParticleVector
& decay,
MEOption
meopt)
const
;
174
180
virtual
WidthCalculatorBasePtr threeBodyMEIntegrator(
const
DecayMode
& dm)
const
;
181
195
virtual
double
threeBodyMatrixElement(
const
int
imode ,
const
Energy2 q2,
196
const
Energy2 s3,
const
Energy2 s2,
197
const
Energy2 s1,
const
Energy m1,
198
const
Energy m2,
const
Energy m3)
const
;
199
205
virtual
void
dataBaseOutput(ofstream & os,
bool
header)
const
;
206
207
public
:
208
215
void
persistentOutput(
PersistentOStream
& os)
const
;
216
222
void
persistentInput(
PersistentIStream
& is,
int
version);
224
228
static
void
Init();
229
230
protected
:
231
238
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
239
244
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
246
247
protected
:
248
256
virtual
void
doinit();
257
261
virtual
void
doinitrun();
263
264
private
:
265
269
a1ThreePionCLEODecayer
& operator=(
const
a1ThreePionCLEODecayer
&) =
delete
;
270
271
private
:
272
280
Complex
rhoBreitWigner
(
int
ires, Energy2 q2,
int
icharge)
const
{
281
Energy q=
sqrt
(q2);
282
Complex
ii(0.,1.);
283
double
ratio = icharge==0 ?
284
Kinematics::pstarTwoBodyDecay
(q,_mpic,_mpic)/_prhocc[ires] :
285
Kinematics::pstarTwoBodyDecay
(q,_mpic,_mpi0)/_prhoc0[ires];
286
Energy gamrun=_rhowidth[ires]*
pow
(ratio,3)*_rhomass[ires]/q;
287
return
sqr
(_rhomass[ires])
288
/(
sqr
(_rhomass[ires])-q2-ii*_rhomass[ires]*gamrun);
289
}
290
297
Complex
sigmaBreitWigner
(Energy2 q2,
int
icharge)
const
{
298
Energy q=
sqrt
(q2);
299
Complex
ii(0.,1.);
300
double
ratio = icharge==0 ?
301
Kinematics::pstarTwoBodyDecay
(q,_mpic,_mpic)/_psigmacc :
302
Kinematics::pstarTwoBodyDecay
(q,_mpi0,_mpi0)/_psigma00;
303
Energy gamrun=_sigmawidth*ratio*_sigmamass/q;
304
return
sqr
(_sigmamass)/(
sqr
(_sigmamass)-q2-ii*_sigmamass*gamrun);
305
}
306
313
Complex
f0BreitWigner
(Energy2 q2,
int
icharge)
const
{
314
Energy q=
sqrt
(q2);
315
Complex
ii(0.,1.);
316
double
ratio = icharge==0 ?
317
Kinematics::pstarTwoBodyDecay
(q,_mpic,_mpic)/_pf0cc :
318
Kinematics::pstarTwoBodyDecay
(q,_mpi0,_mpi0)/_pf000;
319
Energy gamrun=_f0width*ratio*_f0mass/q;
320
return
sqr
(_f0mass)/(
sqr
(_f0mass)-q2-ii*_f0mass*gamrun);
321
}
322
329
Complex
f2BreitWigner
(Energy2 q2,
int
icharge)
const
{
330
Energy q=
sqrt
(q2);
331
Complex
ii(0.,1.);
332
double
ratio = icharge==0 ?
333
Kinematics::pstarTwoBodyDecay
(q,_mpic,_mpic)/_pf2cc :
334
Kinematics::pstarTwoBodyDecay
(q,_mpi0,_mpi0)/_pf200;
335
Energy gamrun=_f2width*
pow
(ratio,5)*_f2mass/q;
336
return
sqr
(_f2mass)/(
sqr
(_f2mass)-q2-ii*_f2mass*gamrun);
337
}
338
352
void
formFactors(
int
iopt,
int
ichan,Energy2 q2,Energy2 s1,Energy2 s2,
353
Energy2 s3,
354
complex<InvEnergy> & F1,
355
complex<InvEnergy> & F2,
356
complex<InvEnergy> & F3)
const
;
357
358
private
:
359
363
vector<Energy>
_rhomass
;
364
368
vector<Energy>
_rhowidth
;
369
373
vector<Energy>
_prhocc
;
374
378
vector<Energy>
_prhoc0
;
379
383
Energy
_f2mass
;
384
388
Energy
_f2width
;
389
393
Energy
_pf2cc
;
394
398
Energy
_pf200
;
399
403
Energy
_f0mass
;
404
408
Energy
_f0width
;
409
413
Energy
_pf0cc
;
414
418
Energy
_pf000
;
419
423
Energy
_sigmamass
;
424
428
Energy
_sigmawidth
;
429
433
Energy
_psigmacc
;
434
438
Energy
_psigma00
;
439
443
Energy
_mpi0
;
444
448
Energy
_mpic
;
449
453
InvEnergy
_coupling
;
454
459
vector<double>
_rhomagP
;
460
465
vector<double>
_rhophaseP
;
466
471
vector<Complex>
_rhocoupP
;
472
477
vector<InvEnergy2>
_rhomagD
;
478
483
vector<double>
_rhophaseD
;
484
489
vector<complex<InvEnergy2> >
_rhocoupD
;
490
495
InvEnergy2
_f2mag
;
496
501
double
_f2phase
;
502
507
complex<InvEnergy2>
_f2coup
;
508
513
double
_f0mag
;
514
519
double
_f0phase
;
520
525
Complex
_f0coup
;
526
531
double
_sigmamag
;
532
537
double
_sigmaphase
;
538
543
Complex
_sigmacoup
;
544
548
bool
_localparameters
;
549
553
mutable
vector<double>
_zerowgts
;
554
558
mutable
vector<double>
_onewgts
;
559
563
mutable
vector<double>
_twowgts
;
564
568
mutable
vector<double>
_threewgts
;
569
573
mutable
double
_zeromax
;
574
578
mutable
double
_onemax
;
579
583
mutable
double
_twomax
;
584
588
mutable
double
_threemax
;
589
593
mutable
RhoDMatrix
_rho
;
594
598
mutable
vector<Helicity::LorentzPolarizationVector>
_vectors
;
599
};
600
601
}
602
603
604
#endif
/* HERWIG_a1ThreePionCLEODecayer_H */
Herwig::a1ThreePionCLEODecayer::_pf2cc
Energy _pf2cc
Momentum for the decay of the to two charged pions.
Definition:
a1ThreePionCLEODecayer.h:393
ThePEG::PersistentIStream
Herwig::a1ThreePionCLEODecayer::_mpic
Energy _mpic
Mass of the charged pion.
Definition:
a1ThreePionCLEODecayer.h:448
sqrt
double sqrt(int x)
ThePEG::Complex
std::complex< double > Complex
Herwig::a1ThreePionCLEODecayer::_prhoc0
vector< Energy > _prhoc0
Momentum of the particles produced in neutral rho decay.
Definition:
a1ThreePionCLEODecayer.h:378
ThePEG::Particle
Herwig::a1ThreePionCLEODecayer::_pf000
Energy _pf000
Momentum for the decay of the to two neutral pions.
Definition:
a1ThreePionCLEODecayer.h:418
Herwig::a1ThreePionCLEODecayer::_f2mag
InvEnergy2 _f2mag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:495
Herwig::a1ThreePionCLEODecayer::_onemax
double _onemax
Maximum weight for the one charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:578
pow
constexpr double pow(double x, ExponentT p)
Herwig::a1ThreePionCLEODecayer::_f2phase
double _f2phase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:501
Herwig::a1ThreePionCLEODecayer::_f2width
Energy _f2width
Width of the .
Definition:
a1ThreePionCLEODecayer.h:388
Herwig::a1ThreePionCLEODecayer::_f0mass
Energy _f0mass
Mass of the .
Definition:
a1ThreePionCLEODecayer.h:403
Herwig::a1ThreePionCLEODecayer::_prhocc
vector< Energy > _prhocc
Momentum of the particles produced in charged rho decay.
Definition:
a1ThreePionCLEODecayer.h:373
ThePEG::PersistentOStream
Herwig::a1ThreePionCLEODecayer::f0BreitWigner
Complex f0BreitWigner(Energy2 q2, int icharge) const
Breit wigner for the , .
Definition:
a1ThreePionCLEODecayer.h:313
Herwig::a1ThreePionCLEODecayer::f2BreitWigner
Complex f2BreitWigner(Energy2 q2, int icharge) const
Breit wigner for the , .
Definition:
a1ThreePionCLEODecayer.h:329
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::a1ThreePionCLEODecayer::_f0width
Energy _f0width
Width of the .
Definition:
a1ThreePionCLEODecayer.h:408
Herwig::a1ThreePionCLEODecayer::_vectors
vector< Helicity::LorentzPolarizationVector > _vectors
Polarization vectors.
Definition:
a1ThreePionCLEODecayer.h:598
sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
Herwig::a1ThreePionCLEODecayer::_sigmamag
double _sigmamag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:531
Herwig::a1ThreePionCLEODecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
a1ThreePionCLEODecayer.h:238
Herwig::a1ThreePionCLEODecayer::_sigmamass
Energy _sigmamass
Mass of the meson.
Definition:
a1ThreePionCLEODecayer.h:423
Herwig::a1ThreePionCLEODecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
a1ThreePionCLEODecayer.h:244
Herwig::a1ThreePionCLEODecayer::_rhomagP
vector< double > _rhomagP
Magnitude of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:459
ThePEG
Herwig::a1ThreePionCLEODecayer::_sigmaphase
double _sigmaphase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:537
Herwig::a1ThreePionCLEODecayer::_pf0cc
Energy _pf0cc
Momentum for the decay of the to two charged pions.
Definition:
a1ThreePionCLEODecayer.h:413
Herwig::a1ThreePionCLEODecayer::_threewgts
vector< double > _threewgts
Weights for the channels for the three charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:568
Herwig::a1ThreePionCLEODecayer::_rhophaseD
vector< double > _rhophaseD
Phase of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:483
Herwig::a1ThreePionCLEODecayer::_threemax
double _threemax
Maximum weight for the three charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:588
Herwig::a1ThreePionCLEODecayer::_psigmacc
Energy _psigmacc
Momentum for the decay of the to two charged pions.
Definition:
a1ThreePionCLEODecayer.h:433
Herwig::a1ThreePionCLEODecayer::_zerowgts
vector< double > _zerowgts
Weights for the channels for the zero charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:553
Herwig::a1ThreePionCLEODecayer::rhoBreitWigner
Complex rhoBreitWigner(int ires, Energy2 q2, int icharge) const
Breit wigner for the , .
Definition:
a1ThreePionCLEODecayer.h:280
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:79
Herwig::a1ThreePionCLEODecayer::_f2coup
complex< InvEnergy2 > _f2coup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:507
Herwig::a1ThreePionCLEODecayer::_rhocoupP
vector< Complex > _rhocoupP
-wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:471
Herwig::a1ThreePionCLEODecayer::_sigmawidth
Energy _sigmawidth
Width of the meson.
Definition:
a1ThreePionCLEODecayer.h:428
Herwig::a1ThreePionCLEODecayer::_rhomagD
vector< InvEnergy2 > _rhomagD
Magnitude of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:477
ThePEG::tPDVector
vector< tPDPtr > tPDVector
Herwig::a1ThreePionCLEODecayer::sigmaBreitWigner
Complex sigmaBreitWigner(Energy2 q2, int icharge) const
Breit wigner for the , .
Definition:
a1ThreePionCLEODecayer.h:297
Herwig::a1ThreePionCLEODecayer::_rhomass
vector< Energy > _rhomass
Masses of the rho resonaces.
Definition:
a1ThreePionCLEODecayer.h:363
Herwig::a1ThreePionCLEODecayer::_rho
RhoDMatrix _rho
Spin density matrix.
Definition:
a1ThreePionCLEODecayer.h:593
Herwig::DecayIntegrator
Main class for Decayers implementing multi-channel phase space integration.
Definition:
DecayIntegrator.h:62
Herwig::a1ThreePionCLEODecayer::_psigma00
Energy _psigma00
Momentum for the decay of the to two neutral pions.
Definition:
a1ThreePionCLEODecayer.h:438
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Herwig::a1ThreePionCLEODecayer::_coupling
InvEnergy _coupling
overall coupling for the decay
Definition:
a1ThreePionCLEODecayer.h:453
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::a1ThreePionCLEODecayer::_rhocoupD
vector< complex< InvEnergy2 > > _rhocoupD
-wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:489
Herwig::a1ThreePionCLEODecayer::_f2mass
Energy _f2mass
Mass of the .
Definition:
a1ThreePionCLEODecayer.h:383
Herwig::a1ThreePionCLEODecayer::_mpi0
Energy _mpi0
Mass of the neutral pion.
Definition:
a1ThreePionCLEODecayer.h:443
Herwig::a1ThreePionCLEODecayer::_f0coup
Complex _f0coup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:525
Herwig::a1ThreePionCLEODecayer::_twomax
double _twomax
Maximum weight for the two charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:583
Herwig::a1ThreePionCLEODecayer::_twowgts
vector< double > _twowgts
Weights for the channels for the two charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:563
Herwig::a1ThreePionCLEODecayer::_f0mag
double _f0mag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:513
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::a1ThreePionCLEODecayer::_onewgts
vector< double > _onewgts
Weights for the channels for the one charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:558
ThePEG::DecayMode
Herwig::a1ThreePionCLEODecayer::_rhowidth
vector< Energy > _rhowidth
Widths of the rho resonaces.
Definition:
a1ThreePionCLEODecayer.h:368
Herwig::a1ThreePionCLEODecayer::_pf200
Energy _pf200
Momentum for the decay of the to two neutral pions.
Definition:
a1ThreePionCLEODecayer.h:398
Herwig::a1ThreePionCLEODecayer::_rhophaseP
vector< double > _rhophaseP
Phase of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:465
Herwig::a1ThreePionCLEODecayer::_localparameters
bool _localparameters
Use local values of the mass parameters.
Definition:
a1ThreePionCLEODecayer.h:548
Herwig::a1ThreePionCLEODecayer::_zeromax
double _zeromax
Maximum weight for the zero charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:573
Herwig::a1ThreePionCLEODecayer
The a1ThreePionCLEODecayer class is designed to implement the decay of the to three pions using the ...
Definition:
a1ThreePionCLEODecayer.h:146
Herwig::a1ThreePionCLEODecayer::_sigmacoup
Complex _sigmacoup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:543
ThePEG::ParticleVector
vector< PPtr > ParticleVector
ThePEG::RhoDMatrix
Herwig::a1ThreePionCLEODecayer::_f0phase
double _f0phase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:519
Generated on Sat Apr 11 2020 14:50:28 for Herwig by
1.8.13