herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
WeakCurrents
TwoPionRhoCurrent.h
1
// -*- C++ -*-
2
//
3
// TwoPionRhoCurrent.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_TwoPionRhoCurrent_H
10
#define HERWIG_TwoPionRhoCurrent_H
11
// This is the declaration of the TwoPionRhoCurrent class.
12
13
#include "WeakCurrent.h"
14
#include "ThePEG/PDT/EnumParticles.h"
15
#include "Herwig/Utilities/Kinematics.h"
16
#include "ThePEG/StandardModel/StandardModelBase.h"
17
#include "Herwig/Decay/ResonanceHelpers.h"
18
19
namespace
Herwig
{
20
using namespace
ThePEG
;
21
53
class
TwoPionRhoCurrent
:
public
WeakCurrent
{
54
55
public
:
56
60
TwoPionRhoCurrent
();
61
82
virtual
bool
createMode
(
int
icharge,
tcPDPtr
resonance,
83
FlavourInfo
flavour,
84
unsigned
int
imode,PhaseSpaceModePtr mode,
85
unsigned
int
iloc,
int
ires,
86
PhaseSpaceChannel
phase, Energy upp );
87
97
virtual
tPDVector
particles
(
int
icharge,
unsigned
int
imode,
int
iq,
int
ia);
99
113
virtual
vector<LorentzPolarizationVectorE>
114
current
(
tcPDPtr
resonance,
115
FlavourInfo
flavour,
116
const
int
imode,
const
int
ichan,Energy & scale,
117
const
tPDVector
&
outgoing
,
118
const
vector<Lorentz5Momentum> & momenta,
119
DecayIntegrator::MEOption
meopt)
const
;
120
126
virtual
bool
accept
(vector<int>
id
);
127
133
virtual
unsigned
int
decayMode
(vector<int>
id
);
134
141
virtual
void
dataBaseOutput
(ofstream & os,
bool
header,
bool
create)
const
;
142
143
public
:
144
151
void
persistentOutput
(
PersistentOStream
& os)
const
;
152
158
void
persistentInput
(
PersistentIStream
& is,
int
version);
160
164
static
void
Init
();
165
166
protected
:
167
174
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
175
180
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
182
183
protected
:
184
187
193
virtual
void
doinit
();
195
196
private
:
197
201
TwoPionRhoCurrent
&
operator=
(
const
TwoPionRhoCurrent
&) =
delete
;
202
203
private
:
204
212
Complex
BreitWigner
(Energy2 q2,
unsigned
int
imodel,
213
unsigned
int
ires)
const
{
214
// calculate the BW
215
if
(imodel==0) {
216
return
Resonance::BreitWignerPWave(q2,
_mass
[ires],
_width
[ires],
217
_massa
[ires],_massb[ires]);
218
}
219
else
if
(imodel==1) {
220
return
Resonance::BreitWignerGS(q2,
_mass
[ires],
_width
[ires],
221
_massa
[ires],_massb[ires],
222
_h0
[ires],
_dh
[ires],
_hres
[ires]);
223
}
224
else
225
assert(
false
);
226
}
227
228
private
:
229
237
vector<Complex>
_piwgt
;
238
242
vector<double>
_pimag
;
243
247
vector<double>
_piphase
;
249
253
int
_pimodel
;
254
258
bool
_rhoparameters
;
259
263
vector<Energy>
_rhomasses
;
264
268
vector<Energy>
_rhowidths
;
269
277
vector<Energy>
_mass
;
278
282
vector<Energy>
_width
;
283
287
vector<Energy>
_massa
,_massb;
288
293
vector<double>
_dh
;
294
299
vector<Energy2>
_hres
;
300
305
vector<Energy2>
_h0
;
307
};
308
309
}
310
311
312
#endif
/* HERWIG_TwoPionRhoCurrent_H */
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:72
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::TwoPionRhoCurrent
Weak current for the production of two mesons via the resonances.
Definition:
TwoPionRhoCurrent.h:53
Herwig::TwoPionRhoCurrent::_hres
vector< Energy2 > _hres
The function at for the GS form of the Breit-Wigner.
Definition:
TwoPionRhoCurrent.h:299
Herwig::TwoPionRhoCurrent::accept
virtual bool accept(vector< int > id)
Accept the decay.
Herwig::TwoPionRhoCurrent::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
TwoPionRhoCurrent.h:180
Herwig::TwoPionRhoCurrent::_h0
vector< Energy2 > _h0
The parameter for the GS form of the Breit-Wigner.
Definition:
TwoPionRhoCurrent.h:305
Herwig::TwoPionRhoCurrent::_piwgt
vector< Complex > _piwgt
Weights for the different resonances in the current, .
Definition:
TwoPionRhoCurrent.h:237
Herwig::TwoPionRhoCurrent::_rhomasses
vector< Energy > _rhomasses
The masses of the resonances.
Definition:
TwoPionRhoCurrent.h:263
Herwig::TwoPionRhoCurrent::BreitWigner
Complex BreitWigner(Energy2 q2, unsigned int imodel, unsigned int ires) const
-wave breit wigner for form-factors
Definition:
TwoPionRhoCurrent.h:212
Herwig::TwoPionRhoCurrent::_dh
vector< double > _dh
The function at for the GS form of the Breit-Wigner.
Definition:
TwoPionRhoCurrent.h:293
Herwig::TwoPionRhoCurrent::Init
static void Init()
Standard Init function used to initialize the interfaces.
Herwig::TwoPionRhoCurrent::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::TwoPionRhoCurrent::_piphase
vector< double > _piphase
The phase for input.
Definition:
TwoPionRhoCurrent.h:247
Herwig::TwoPionRhoCurrent::particles
virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia)
The particles produced by the current.
Herwig::TwoPionRhoCurrent::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::TwoPionRhoCurrent::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header, bool create) const
Output the setup information for the particle database.
Herwig::TwoPionRhoCurrent::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::TwoPionRhoCurrent::operator=
TwoPionRhoCurrent & operator=(const TwoPionRhoCurrent &)=delete
Private and non-existent assignment operator.
Herwig::TwoPionRhoCurrent::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::TwoPionRhoCurrent::_pimodel
int _pimodel
Model to use for the propagator.
Definition:
TwoPionRhoCurrent.h:253
Herwig::TwoPionRhoCurrent::_width
vector< Energy > _width
The widths of the resonances.
Definition:
TwoPionRhoCurrent.h:282
Herwig::TwoPionRhoCurrent::decayMode
virtual unsigned int decayMode(vector< int > id)
Return the decay mode number for a given set of particles in the current.
Herwig::TwoPionRhoCurrent::_mass
vector< Energy > _mass
Parameters for the Breit-Wigners.
Definition:
TwoPionRhoCurrent.h:277
Herwig::TwoPionRhoCurrent::_rhowidths
vector< Energy > _rhowidths
The widths of the resonances.
Definition:
TwoPionRhoCurrent.h:268
Herwig::TwoPionRhoCurrent::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::TwoPionRhoCurrent::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
TwoPionRhoCurrent.h:174
Herwig::TwoPionRhoCurrent::_pimag
vector< double > _pimag
The magnitude for input.
Definition:
TwoPionRhoCurrent.h:242
Herwig::TwoPionRhoCurrent::_rhoparameters
bool _rhoparameters
Option not to use the physical masses and widths for the .
Definition:
TwoPionRhoCurrent.h:258
Herwig::TwoPionRhoCurrent::TwoPionRhoCurrent
TwoPionRhoCurrent()
Default constructor.
Herwig::TwoPionRhoCurrent::_massa
vector< Energy > _massa
Masses of the decay products for the momentum calculation.
Definition:
TwoPionRhoCurrent.h:287
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::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