herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
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 "WeakCurrent.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
98
class
ThreePionCLEOCurrent
:
public
WeakCurrent
{
99
104
friend
class
ThreePionCLEOa1MatrixElement
;
105
106
public
:
107
111
ThreePionCLEOCurrent
();
112
126
virtual
vector<LorentzPolarizationVectorE>
127
current
(
tcPDPtr
resonance,
128
FlavourInfo
flavour,
129
const
int
imode,
const
int
ichan,Energy & scale,
130
const
tPDVector
&
outgoing
,
131
const
vector<Lorentz5Momentum> & momenta,
132
DecayIntegrator::MEOption
meopt)
const
;
133
139
virtual
bool
accept
(vector<int>
id
);
140
147
virtual
unsigned
int
decayMode
(vector<int>
id
);
148
157
virtual
tPDVector
particles
(
int
icharge,
unsigned
int
imode,
int
iq,
int
ia);
158
159
public
:
160
181
virtual
bool
createMode
(
int
icharge,
tcPDPtr
resonance,
182
FlavourInfo
flavour,
183
unsigned
int
imode,PhaseSpaceModePtr mode,
184
unsigned
int
iloc,
int
ires,
185
PhaseSpaceChannel
phase, Energy upp );
187
194
virtual
void
dataBaseOutput
(ofstream & os,
bool
header,
bool
create)
const
;
195
208
double
threeBodyMatrixElement
(
const
int
iopt,
const
Energy2 q2,
209
const
Energy2 s3,
const
Energy2 s2,
210
const
Energy2 s1,
const
Energy m1,
211
const
Energy m2,
const
Energy m3)
const
;
212
213
public
:
214
221
void
persistentOutput
(
PersistentOStream
& os)
const
;
222
228
void
persistentInput
(
PersistentIStream
& is,
int
version);
230
234
static
void
Init
();
235
236
protected
:
237
251
void
CLEOFormFactor
(
int
imode,
int
ichan,Energy2 q2,Energy2 s1, Energy2 s2,
252
Energy2 s3,
Complex
& F1,
Complex
& F2,
Complex
& F3)
const
;
253
254
protected
:
255
262
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
263
268
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
270
271
protected
:
272
280
virtual
void
doinit
();
281
285
virtual
void
doinitrun
();
286
290
virtual
void
doupdate
();
292
293
private
:
294
298
ThreePionCLEOCurrent
&
operator=
(
const
ThreePionCLEOCurrent
&) =
delete
;
299
300
private
:
301
307
Energy
a1width
(Energy2 q2)
const
;
308
313
void
inita1Width
(
int
iopt);
314
320
Complex
a1BreitWigner
(Energy2 q2)
const
{
321
Complex
ii(0.,1.);
322
Energy2 m2=
_a1mass
*
_a1mass
; Energy q=
sqrt
(q2);
323
Complex
output=m2/(m2-q2-ii*q*
a1width
(q2));
324
return
output;
325
}
326
327
private
:
328
332
vector<Energy>
_rhomass
;
333
337
vector<Energy>
_rhowidth
;
338
342
Energy
_f2mass
;
343
347
Energy
_f2width
;
348
352
Energy
_f0mass
;
353
357
Energy
_f0width
;
358
362
Energy
_sigmamass
;
363
367
Energy
_sigmawidth
;
368
372
Energy
_mpi0
;
373
377
Energy
_mpic
;
378
382
Energy
_a1mass
;
383
387
Energy
_a1width
;
388
392
Energy
_mKstar
;
393
397
Energy
_mK
;
398
402
double
_gammk
;
403
407
Energy
_fpi
;
408
412
InvEnergy
_fact
;
413
418
vector<double>
_rhomagP
;
419
424
vector<double>
_rhophaseP
;
425
430
vector<Complex>
_rhocoupP
;
431
436
vector<InvEnergy2>
_rhomagD
;
437
442
vector<double>
_rhophaseD
;
443
448
vector<complex<InvEnergy2> >
_rhocoupD
;
449
454
InvEnergy2
_f2mag
;
455
460
double
_f2phase
;
461
466
complex<InvEnergy2>
_f2coup
;
467
472
double
_f0mag
;
473
478
double
_f0phase
;
479
484
Complex
_f0coup
;
485
490
double
_sigmamag
;
491
496
double
_sigmaphase
;
497
502
Complex
_sigmacoup
;
503
507
vector<Energy>
_a1runwidth
;
508
512
vector<Energy2>
_a1runq2
;
513
514
518
Interpolator<Energy,Energy2>::Ptr
_a1runinter
;
519
523
bool
_initializea1
;
524
528
bool
_a1opt
;
529
533
Energy
_maxmass
;
534
538
Energy
_maxcalc
;
539
540
};
541
542
}
543
544
#endif
/* THEPEG_ThreePionCLEOCurrent_H */
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:72
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::ThreePionCLEOCurrent
The ThreePionCLEOCurrent class implements the decay of the weak current to three pions using the curr...
Definition:
ThreePionCLEOCurrent.h:98
Herwig::ThreePionCLEOCurrent::_f2phase
double _f2phase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:460
Herwig::ThreePionCLEOCurrent::particles
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
Herwig::ThreePionCLEOCurrent::doupdate
virtual void doupdate()
Check sanity of the object during the setup phase.
Herwig::ThreePionCLEOCurrent::_f0mass
Energy _f0mass
Mass of the resonance.
Definition:
ThreePionCLEOCurrent.h:352
Herwig::ThreePionCLEOCurrent::_f2width
Energy _f2width
Width of the resonance.
Definition:
ThreePionCLEOCurrent.h:347
Herwig::ThreePionCLEOCurrent::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::ThreePionCLEOCurrent::_maxmass
Energy _maxmass
The maximum mass of the hadronic system.
Definition:
ThreePionCLEOCurrent.h:533
Herwig::ThreePionCLEOCurrent::_f0mag
double _f0mag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:472
Herwig::ThreePionCLEOCurrent::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
Herwig::ThreePionCLEOCurrent::_rhomass
vector< Energy > _rhomass
Masses of the resonances.
Definition:
ThreePionCLEOCurrent.h:332
Herwig::ThreePionCLEOCurrent::_mKstar
Energy _mKstar
Mass of the resonace.
Definition:
ThreePionCLEOCurrent.h:392
Herwig::ThreePionCLEOCurrent::_gammk
double _gammk
Coupling for the term in the running width.
Definition:
ThreePionCLEOCurrent.h:402
Herwig::ThreePionCLEOCurrent::_a1width
Energy _a1width
The width.
Definition:
ThreePionCLEOCurrent.h:387
Herwig::ThreePionCLEOCurrent::_f2coup
complex< InvEnergy2 > _f2coup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:466
Herwig::ThreePionCLEOCurrent::_rhocoupD
vector< complex< InvEnergy2 > > _rhocoupD
-wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:448
Herwig::ThreePionCLEOCurrent::_initializea1
bool _initializea1
Initialize the running width.
Definition:
ThreePionCLEOCurrent.h:523
Herwig::ThreePionCLEOCurrent::a1width
Energy a1width(Energy2 q2) const
The running width.
Herwig::ThreePionCLEOCurrent::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::ThreePionCLEOCurrent::_a1opt
bool _a1opt
Option for the width.
Definition:
ThreePionCLEOCurrent.h:528
Herwig::ThreePionCLEOCurrent::ThreePionCLEOCurrent
ThreePionCLEOCurrent()
Default constructor.
Herwig::ThreePionCLEOCurrent::_f0width
Energy _f0width
Width of the resonance.
Definition:
ThreePionCLEOCurrent.h:357
Herwig::ThreePionCLEOCurrent::_mpi0
Energy _mpi0
Mass of the neutral pion.
Definition:
ThreePionCLEOCurrent.h:372
Herwig::ThreePionCLEOCurrent::_sigmaphase
double _sigmaphase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:496
Herwig::ThreePionCLEOCurrent::_fact
InvEnergy _fact
The prefactor.
Definition:
ThreePionCLEOCurrent.h:412
Herwig::ThreePionCLEOCurrent::_rhomagP
vector< double > _rhomagP
Magnitude of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:418
Herwig::ThreePionCLEOCurrent::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::ThreePionCLEOCurrent::_mK
Energy _mK
Mass of the resonace.
Definition:
ThreePionCLEOCurrent.h:397
Herwig::ThreePionCLEOCurrent::_sigmamass
Energy _sigmamass
Mass of the resonance.
Definition:
ThreePionCLEOCurrent.h:362
Herwig::ThreePionCLEOCurrent::accept
virtual bool accept(vector< int > id)
Accept the decay.
Herwig::ThreePionCLEOCurrent::ThreePionCLEOa1MatrixElement
friend class ThreePionCLEOa1MatrixElement
The matrix element for the running width is a friend to keep some members private.
Definition:
ThreePionCLEOCurrent.h:104
Herwig::ThreePionCLEOCurrent::_sigmawidth
Energy _sigmawidth
Width of the resonance.
Definition:
ThreePionCLEOCurrent.h:367
Herwig::ThreePionCLEOCurrent::_rhocoupP
vector< Complex > _rhocoupP
-wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:430
Herwig::ThreePionCLEOCurrent::_a1mass
Energy _a1mass
The mass.
Definition:
ThreePionCLEOCurrent.h:382
Herwig::ThreePionCLEOCurrent::inita1Width
void inita1Width(int iopt)
Initialize the running width.
Herwig::ThreePionCLEOCurrent::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 for the a1 decay to calculate the running width
Herwig::ThreePionCLEOCurrent::_a1runq2
vector< Energy2 > _a1runq2
The for the running width calculation.
Definition:
ThreePionCLEOCurrent.h:512
Herwig::ThreePionCLEOCurrent::operator=
ThreePionCLEOCurrent & operator=(const ThreePionCLEOCurrent &)=delete
Private and non-existent assignment operator.
Herwig::ThreePionCLEOCurrent::Init
static void Init()
Standard Init function used to initialize the interfaces.
Herwig::ThreePionCLEOCurrent::_mpic
Energy _mpic
Mass of the charged pion.
Definition:
ThreePionCLEOCurrent.h:377
Herwig::ThreePionCLEOCurrent::_f0coup
Complex _f0coup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:484
Herwig::ThreePionCLEOCurrent::_maxcalc
Energy _maxcalc
The maximum mass when the running width was calculated.
Definition:
ThreePionCLEOCurrent.h:538
Herwig::ThreePionCLEOCurrent::_rhophaseP
vector< double > _rhophaseP
Phase of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:424
Herwig::ThreePionCLEOCurrent::_sigmamag
double _sigmamag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:490
Herwig::ThreePionCLEOCurrent::decayMode
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
Herwig::ThreePionCLEOCurrent::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::ThreePionCLEOCurrent::_a1runwidth
vector< Energy > _a1runwidth
The width for the running width calculation.
Definition:
ThreePionCLEOCurrent.h:507
Herwig::ThreePionCLEOCurrent::CLEOFormFactor
void CLEOFormFactor(int imode, int ichan, Energy2 q2, Energy2 s1, Energy2 s2, Energy2 s3, Complex &F1, Complex &F2, Complex &F3) const
Calculate CLEO form factors for the current.
Herwig::ThreePionCLEOCurrent::_rhomagD
vector< InvEnergy2 > _rhomagD
Magnitude of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:436
Herwig::ThreePionCLEOCurrent::a1BreitWigner
Complex a1BreitWigner(Energy2 q2) const
Breit-Wigner
Definition:
ThreePionCLEOCurrent.h:320
Herwig::ThreePionCLEOCurrent::_a1runinter
Interpolator< Energy, Energy2 >::Ptr _a1runinter
The interpolator for the running width calculation.
Definition:
ThreePionCLEOCurrent.h:518
Herwig::ThreePionCLEOCurrent::_f2mag
InvEnergy2 _f2mag
Magntiude of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:454
Herwig::ThreePionCLEOCurrent::_rhophaseD
vector< double > _rhophaseD
Phase of the -wave couplings of the rho resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:442
Herwig::ThreePionCLEOCurrent::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::ThreePionCLEOCurrent::_f0phase
double _f0phase
Phase of the coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:478
Herwig::ThreePionCLEOCurrent::_sigmacoup
Complex _sigmacoup
Coupling of the resonance, , ( in the CLEO paper.)
Definition:
ThreePionCLEOCurrent.h:502
Herwig::ThreePionCLEOCurrent::_fpi
Energy _fpi
pion decay constant
Definition:
ThreePionCLEOCurrent.h:407
Herwig::ThreePionCLEOCurrent::_f2mass
Energy _f2mass
Mass of the resonance.
Definition:
ThreePionCLEOCurrent.h:342
Herwig::ThreePionCLEOCurrent::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
ThreePionCLEOCurrent.h:262
Herwig::ThreePionCLEOCurrent::doinitrun
virtual void doinitrun()
Initialize this object to the begining of the run phase.
Herwig::ThreePionCLEOCurrent::_rhowidth
vector< Energy > _rhowidth
Widths of the resonances.
Definition:
ThreePionCLEOCurrent.h:337
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:268
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::sqrt
double sqrt(int x)
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