herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
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/PhaseSpaceMode.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
173
double
me2
(
const
int
ichan,
const
Particle
& part,
174
const
tPDVector
&
outgoing
,
175
const
vector<Lorentz5Momentum> & momenta,
176
MEOption
meopt)
const
;
177
181
virtual
void
constructSpinInfo
(
const
Particle
& part,
182
ParticleVector
outgoing
)
const
;
183
189
virtual
WidthCalculatorBasePtr
threeBodyMEIntegrator
(
const
DecayMode
& dm)
const
;
190
204
virtual
double
threeBodyMatrixElement
(
const
int
imode
,
const
Energy2 q2,
205
const
Energy2 s3,
const
Energy2 s2,
206
const
Energy2 s1,
const
Energy m1,
207
const
Energy m2,
const
Energy m3)
const
;
208
214
virtual
void
dataBaseOutput
(ofstream & os,
bool
header)
const
;
215
216
public
:
217
224
void
persistentOutput
(
PersistentOStream
& os)
const
;
225
231
void
persistentInput
(
PersistentIStream
& is,
int
version);
233
237
static
void
Init
();
238
239
protected
:
240
247
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
248
253
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
255
256
protected
:
257
265
virtual
void
doinit
();
266
270
virtual
void
doinitrun
();
272
273
private
:
274
278
a1ThreePionCLEODecayer
&
operator=
(
const
a1ThreePionCLEODecayer
&) =
delete
;
279
280
private
:
281
289
Complex
rhoBreitWigner
(
int
ires, Energy2 q2,
int
icharge)
const
{
290
Energy q=
sqrt
(q2);
291
Complex
ii(0.,1.);
292
double
ratio = icharge==0 ?
293
Kinematics::pstarTwoBodyDecay
(q,
_mpic
,
_mpic
)/
_prhocc
[ires] :
294
Kinematics::pstarTwoBodyDecay
(q,
_mpic
,
_mpi0
)/
_prhoc0
[ires];
295
Energy gamrun=
_rhowidth
[ires]*
pow
(ratio,3)*
_rhomass
[ires]/q;
296
return
sqr
(
_rhomass
[ires])
297
/(
sqr
(
_rhomass
[ires])-q2-ii*
_rhomass
[ires]*gamrun);
298
}
299
306
Complex
sigmaBreitWigner
(Energy2 q2,
int
icharge)
const
{
307
Energy q=
sqrt
(q2);
308
Complex
ii(0.,1.);
309
double
ratio = icharge==0 ?
310
Kinematics::pstarTwoBodyDecay
(q,
_mpic
,
_mpic
)/
_psigmacc
:
311
Kinematics::pstarTwoBodyDecay
(q,
_mpi0
,
_mpi0
)/
_psigma00
;
312
Energy gamrun=
_sigmawidth
*ratio*
_sigmamass
/q;
313
return
sqr
(
_sigmamass
)/(
sqr
(
_sigmamass
)-q2-ii*
_sigmamass
*gamrun);
314
}
315
322
Complex
f0BreitWigner
(Energy2 q2,
int
icharge)
const
{
323
Energy q=
sqrt
(q2);
324
Complex
ii(0.,1.);
325
double
ratio = icharge==0 ?
326
Kinematics::pstarTwoBodyDecay
(q,
_mpic
,
_mpic
)/
_pf0cc
:
327
Kinematics::pstarTwoBodyDecay
(q,
_mpi0
,
_mpi0
)/
_pf000
;
328
Energy gamrun=
_f0width
*ratio*
_f0mass
/q;
329
return
sqr
(
_f0mass
)/(
sqr
(
_f0mass
)-q2-ii*
_f0mass
*gamrun);
330
}
331
338
Complex
f2BreitWigner
(Energy2 q2,
int
icharge)
const
{
339
Energy q=
sqrt
(q2);
340
Complex
ii(0.,1.);
341
double
ratio = icharge==0 ?
342
Kinematics::pstarTwoBodyDecay
(q,
_mpic
,
_mpic
)/
_pf2cc
:
343
Kinematics::pstarTwoBodyDecay
(q,
_mpi0
,
_mpi0
)/
_pf200
;
344
Energy gamrun=
_f2width
*
pow
(ratio,5)*
_f2mass
/q;
345
return
sqr
(
_f2mass
)/(
sqr
(
_f2mass
)-q2-ii*
_f2mass
*gamrun);
346
}
347
361
void
formFactors
(
int
iopt,
int
ichan,Energy2 q2,Energy2 s1,Energy2 s2,
362
Energy2 s3,
363
complex<InvEnergy> & F1,
364
complex<InvEnergy> & F2,
365
complex<InvEnergy> & F3)
const
;
366
367
private
:
368
372
vector<Energy>
_rhomass
;
373
377
vector<Energy>
_rhowidth
;
378
382
vector<Energy>
_prhocc
;
383
387
vector<Energy>
_prhoc0
;
388
392
Energy
_f2mass
;
393
397
Energy
_f2width
;
398
402
Energy
_pf2cc
;
403
407
Energy
_pf200
;
408
412
Energy
_f0mass
;
413
417
Energy
_f0width
;
418
422
Energy
_pf0cc
;
423
427
Energy
_pf000
;
428
432
Energy
_sigmamass
;
433
437
Energy
_sigmawidth
;
438
442
Energy
_psigmacc
;
443
447
Energy
_psigma00
;
448
452
Energy
_mpi0
;
453
457
Energy
_mpic
;
458
462
InvEnergy
_coupling
;
463
468
vector<double>
_rhomagP
;
469
474
vector<double>
_rhophaseP
;
475
480
vector<Complex>
_rhocoupP
;
481
486
vector<InvEnergy2>
_rhomagD
;
487
492
vector<double>
_rhophaseD
;
493
498
vector<complex<InvEnergy2> >
_rhocoupD
;
499
504
InvEnergy2
_f2mag
;
505
510
double
_f2phase
;
511
516
complex<InvEnergy2>
_f2coup
;
517
522
double
_f0mag
;
523
528
double
_f0phase
;
529
534
Complex
_f0coup
;
535
540
double
_sigmamag
;
541
546
double
_sigmaphase
;
547
552
Complex
_sigmacoup
;
553
557
bool
_localparameters
;
558
562
mutable
vector<double>
_zerowgts
;
563
567
mutable
vector<double>
_onewgts
;
568
572
mutable
vector<double>
_twowgts
;
573
577
mutable
vector<double>
_threewgts
;
578
582
mutable
double
_zeromax
;
583
587
mutable
double
_onemax
;
588
592
mutable
double
_twomax
;
593
597
mutable
double
_threemax
;
598
602
mutable
RhoDMatrix
_rho
;
603
607
mutable
vector<Helicity::LorentzPolarizationVector>
_vectors
;
608
};
609
610
}
611
612
613
#endif
/* HERWIG_a1ThreePionCLEODecayer_H */
Herwig::DecayIntegrator
Main class for Decayers implementing multi-channel phase space integration.
Definition:
DecayIntegrator.h:60
Herwig::DecayIntegrator::imode
int imode() const
The mode being used for this decay.
Definition:
DecayIntegrator.h:118
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:72
Herwig::a1ThreePionCLEODecayer
The a1ThreePionCLEODecayer class is designed to implement the decay of the to three pions using the ...
Definition:
a1ThreePionCLEODecayer.h:146
Herwig::a1ThreePionCLEODecayer::modeNumber
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
Herwig::a1ThreePionCLEODecayer::_sigmaphase
double _sigmaphase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:546
Herwig::a1ThreePionCLEODecayer::formFactors
void formFactors(int iopt, int ichan, Energy2 q2, Energy2 s1, Energy2 s2, Energy2 s3, complex< InvEnergy > &F1, complex< InvEnergy > &F2, complex< InvEnergy > &F3) const
Calculate the form factors.
Herwig::a1ThreePionCLEODecayer::sigmaBreitWigner
Complex sigmaBreitWigner(Energy2 q2, int icharge) const
Breit wigner for the , .
Definition:
a1ThreePionCLEODecayer.h:306
Herwig::a1ThreePionCLEODecayer::_mpic
Energy _mpic
Mass of the charged pion.
Definition:
a1ThreePionCLEODecayer.h:457
Herwig::a1ThreePionCLEODecayer::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
Herwig::a1ThreePionCLEODecayer::_prhoc0
vector< Energy > _prhoc0
Momentum of the particles produced in neutral rho decay.
Definition:
a1ThreePionCLEODecayer.h:387
Herwig::a1ThreePionCLEODecayer::_f2mass
Energy _f2mass
Mass of the .
Definition:
a1ThreePionCLEODecayer.h:392
Herwig::a1ThreePionCLEODecayer::_pf0cc
Energy _pf0cc
Momentum for the decay of the to two charged pions.
Definition:
a1ThreePionCLEODecayer.h:422
Herwig::a1ThreePionCLEODecayer::_sigmamass
Energy _sigmamass
Mass of the meson.
Definition:
a1ThreePionCLEODecayer.h:432
Herwig::a1ThreePionCLEODecayer::_f2mag
InvEnergy2 _f2mag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:504
Herwig::a1ThreePionCLEODecayer::threeBodyMEIntegrator
virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode &dm) const
Method to return an object to calculate the 3 body partial width.
Herwig::a1ThreePionCLEODecayer::_f2phase
double _f2phase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:510
Herwig::a1ThreePionCLEODecayer::_f0width
Energy _f0width
Width of the .
Definition:
a1ThreePionCLEODecayer.h:417
Herwig::a1ThreePionCLEODecayer::_pf2cc
Energy _pf2cc
Momentum for the decay of the to two charged pions.
Definition:
a1ThreePionCLEODecayer.h:402
Herwig::a1ThreePionCLEODecayer::_mpi0
Energy _mpi0
Mass of the neutral pion.
Definition:
a1ThreePionCLEODecayer.h:452
Herwig::a1ThreePionCLEODecayer::_onemax
double _onemax
Maximum weight for the one charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:587
Herwig::a1ThreePionCLEODecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
a1ThreePionCLEODecayer.h:247
Herwig::a1ThreePionCLEODecayer::_f0phase
double _f0phase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:528
Herwig::a1ThreePionCLEODecayer::_zeromax
double _zeromax
Maximum weight for the zero charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:582
Herwig::a1ThreePionCLEODecayer::_f0mass
Energy _f0mass
Mass of the .
Definition:
a1ThreePionCLEODecayer.h:412
Herwig::a1ThreePionCLEODecayer::doinitrun
virtual void doinitrun()
Initialize this object to the begining of the run phase.
Herwig::a1ThreePionCLEODecayer::_onewgts
vector< double > _onewgts
Weights for the channels for the one charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:567
Herwig::a1ThreePionCLEODecayer::_f0coup
Complex _f0coup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:534
Herwig::a1ThreePionCLEODecayer::threeBodyMatrixElement
virtual double threeBodyMatrixElement(const int imode, 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 be integrated for the three-body decays as a function of the invariant masses o...
Herwig::a1ThreePionCLEODecayer::_sigmamag
double _sigmamag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:540
Herwig::a1ThreePionCLEODecayer::a1ThreePionCLEODecayer
a1ThreePionCLEODecayer()
Default constructor.
Herwig::a1ThreePionCLEODecayer::_coupling
InvEnergy _coupling
overall coupling for the decay
Definition:
a1ThreePionCLEODecayer.h:462
Herwig::a1ThreePionCLEODecayer::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::a1ThreePionCLEODecayer::_rhowidth
vector< Energy > _rhowidth
Widths of the rho resonaces.
Definition:
a1ThreePionCLEODecayer.h:377
Herwig::a1ThreePionCLEODecayer::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::a1ThreePionCLEODecayer::_rhomagD
vector< InvEnergy2 > _rhomagD
Magnitude of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:486
Herwig::a1ThreePionCLEODecayer::f0BreitWigner
Complex f0BreitWigner(Energy2 q2, int icharge) const
Breit wigner for the , .
Definition:
a1ThreePionCLEODecayer.h:322
Herwig::a1ThreePionCLEODecayer::f2BreitWigner
Complex f2BreitWigner(Energy2 q2, int icharge) const
Breit wigner for the , .
Definition:
a1ThreePionCLEODecayer.h:338
Herwig::a1ThreePionCLEODecayer::me2
double me2(const int ichan, const Particle &part, const tPDVector &outgoing, const vector< Lorentz5Momentum > &momenta, MEOption meopt) const
Return the matrix element squared for a given mode and phase-space channel.
Herwig::a1ThreePionCLEODecayer::_rho
RhoDMatrix _rho
Spin density matrix.
Definition:
a1ThreePionCLEODecayer.h:602
Herwig::a1ThreePionCLEODecayer::_f0mag
double _f0mag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:522
Herwig::a1ThreePionCLEODecayer::_rhocoupP
vector< Complex > _rhocoupP
-wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:480
Herwig::a1ThreePionCLEODecayer::_f2width
Energy _f2width
Width of the .
Definition:
a1ThreePionCLEODecayer.h:397
Herwig::a1ThreePionCLEODecayer::_f2coup
complex< InvEnergy2 > _f2coup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:516
Herwig::a1ThreePionCLEODecayer::_twowgts
vector< double > _twowgts
Weights for the channels for the two charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:572
Herwig::a1ThreePionCLEODecayer::_rhophaseP
vector< double > _rhophaseP
Phase of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:474
Herwig::a1ThreePionCLEODecayer::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::a1ThreePionCLEODecayer::rhoBreitWigner
Complex rhoBreitWigner(int ires, Energy2 q2, int icharge) const
Breit wigner for the , .
Definition:
a1ThreePionCLEODecayer.h:289
Herwig::a1ThreePionCLEODecayer::_sigmawidth
Energy _sigmawidth
Width of the meson.
Definition:
a1ThreePionCLEODecayer.h:437
Herwig::a1ThreePionCLEODecayer::_threewgts
vector< double > _threewgts
Weights for the channels for the three charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:577
Herwig::a1ThreePionCLEODecayer::_rhocoupD
vector< complex< InvEnergy2 > > _rhocoupD
-wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:498
Herwig::a1ThreePionCLEODecayer::Init
static void Init()
Standard Init function used to initialize the interfaces.
Herwig::a1ThreePionCLEODecayer::_prhocc
vector< Energy > _prhocc
Momentum of the particles produced in charged rho decay.
Definition:
a1ThreePionCLEODecayer.h:382
Herwig::a1ThreePionCLEODecayer::_vectors
vector< Helicity::LorentzPolarizationVector > _vectors
Polarization vectors.
Definition:
a1ThreePionCLEODecayer.h:607
Herwig::a1ThreePionCLEODecayer::_rhomass
vector< Energy > _rhomass
Masses of the rho resonaces.
Definition:
a1ThreePionCLEODecayer.h:372
Herwig::a1ThreePionCLEODecayer::_pf200
Energy _pf200
Momentum for the decay of the to two neutral pions.
Definition:
a1ThreePionCLEODecayer.h:407
Herwig::a1ThreePionCLEODecayer::_localparameters
bool _localparameters
Use local values of the mass parameters.
Definition:
a1ThreePionCLEODecayer.h:557
Herwig::a1ThreePionCLEODecayer::_twomax
double _twomax
Maximum weight for the two charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:592
Herwig::a1ThreePionCLEODecayer::_psigmacc
Energy _psigmacc
Momentum for the decay of the to two charged pions.
Definition:
a1ThreePionCLEODecayer.h:442
Herwig::a1ThreePionCLEODecayer::operator=
a1ThreePionCLEODecayer & operator=(const a1ThreePionCLEODecayer &)=delete
Private and non-existent assignment operator.
Herwig::a1ThreePionCLEODecayer::constructSpinInfo
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
Herwig::a1ThreePionCLEODecayer::_rhophaseD
vector< double > _rhophaseD
Phase of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:492
Herwig::a1ThreePionCLEODecayer::_zerowgts
vector< double > _zerowgts
Weights for the channels for the zero charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:562
Herwig::a1ThreePionCLEODecayer::_sigmacoup
Complex _sigmacoup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:552
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:253
Herwig::a1ThreePionCLEODecayer::_pf000
Energy _pf000
Momentum for the decay of the to two neutral pions.
Definition:
a1ThreePionCLEODecayer.h:427
Herwig::a1ThreePionCLEODecayer::_rhomagP
vector< double > _rhomagP
Magnitude of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
a1ThreePionCLEODecayer.h:468
Herwig::a1ThreePionCLEODecayer::_psigma00
Energy _psigma00
Momentum for the decay of the to two neutral pions.
Definition:
a1ThreePionCLEODecayer.h:447
Herwig::a1ThreePionCLEODecayer::_threemax
double _threemax
Maximum weight for the three charged pion channel.
Definition:
a1ThreePionCLEODecayer.h:597
ThePEG::DecayMode
ThePEG::Particle
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::RhoDMatrix
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
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity::outgoing
outgoing
ThePEG
ThePEG::sqrt
double sqrt(int x)
ThePEG::Complex
std::complex< double > Complex
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::pow
constexpr double pow(double x, ExponentT p)
ThePEG::tPDVector
vector< tPDPtr > tPDVector
ThePEG::ParticleVector
vector< PPtr > ParticleVector
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6