herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
ScalarMeson
ScalarMesonFactorizedDecayer.h
1
// -*- C++ -*-
2
//
3
// ScalarMesonFactorizedDecayer.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_ScalarMesonFactorizedDecayer_H
10
#define HERWIG_ScalarMesonFactorizedDecayer_H
11
//
12
// This is the declaration of the ScalarMesonFactorizedDecayer class.
13
//
14
15
#include "Herwig/Decay/DecayIntegrator.h"
16
#include "Herwig/Decay/WeakCurrents/WeakCurrent.h"
17
#include "Herwig/Decay/FormFactors/ScalarFormFactor.h"
18
#include "ThePEG/StandardModel/StandardModelBase.h"
19
#include "ThePEG/Helicity/LorentzPolarizationVector.h"
20
#include "Herwig/Models/StandardModel/StandardCKM.h"
21
22
namespace
Herwig
{
23
using namespace
ThePEG
;
24
37
class
ScalarMesonFactorizedDecayer
:
public
DecayIntegrator
{
38
39
public
:
40
44
ScalarMesonFactorizedDecayer
();
45
46
public
:
47
56
virtual
int
modeNumber
(
bool
& cc,
tcPDPtr
parent,
57
const
tPDVector
& children)
const
;
58
65
virtual
bool
accept
(
tcPDPtr
parent,
const
tPDVector
& children)
const
;
66
76
double
me2
(
const
int
ichan,
const
Particle
& part,
77
const
tPDVector
&
outgoing
,
78
const
vector<Lorentz5Momentum> & momenta,
79
MEOption
meopt)
const
;
80
84
virtual
void
constructSpinInfo
(
const
Particle
& part,
85
ParticleVector
outgoing
)
const
;
87
93
virtual
void
dataBaseOutput
(ofstream & os,
bool
header)
const
;
94
95
public
:
96
103
void
persistentOutput
(
PersistentOStream
& os)
const
;
104
110
void
persistentInput
(
PersistentIStream
& is,
int
version);
112
119
static
void
Init
();
120
121
protected
:
122
129
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
130
135
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
137
138
protected
:
139
147
virtual
void
doinit
();
148
153
virtual
void
doinitrun
();
154
164
virtual
void
rebind
(
const
TranslationMap
& trans)
165
;
166
172
virtual
IVector
getReferences
();
174
175
176
private
:
177
186
void
findModes
(
unsigned
int
imode
,
tPDVector
&
incoming
,
187
vector<tPDVector> &
outgoing
,
188
vector<unsigned int> & loc,vector<bool> & cc);
189
190
private
:
191
196
ScalarMesonFactorizedDecayer
&
operator=
(
const
ScalarMesonFactorizedDecayer
&) =
delete
;
197
198
private
:
199
203
vector<WeakCurrentPtr>
_current
;
204
208
vector<ScalarFormFactorPtr>
_form
;
209
217
double
_a1b
;
218
222
double
_a2b
;
223
227
double
_a1c
;
228
232
double
_a2c
;
234
242
vector<vector<unsigned int> >
_currentmapA
;
243
247
vector<vector<unsigned int> >
_currentmapB
;
249
257
vector<vector<unsigned int> >
_formmapA
;
258
262
vector<vector<unsigned int> >
_formmapB
;
264
267
vector<vector<unsigned int> >
_formpart
;
268
272
vector<vector<Complex> >
_CKMfact
;
273
277
vector<int>
_wgtloc
;
278
282
vector<double>
_wgtmax
;
283
287
vector<double>
_weights
;
288
292
Ptr<StandardCKM>::pointer
_ckm
;
293
297
mutable
RhoDMatrix
_rho
;
298
302
mutable
vector<vector<Helicity::LorentzPolarizationVector> >
_vectors
;
303
307
mutable
vector<vector<Helicity::LorentzTensor<double> > >
_tensors
;
308
309
};
310
311
}
312
313
#endif
/* HERWIG_ScalarMesonFactorizedDecayer_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::ScalarMesonFactorizedDecayer
The ScalarMesonFactorizedDecayer class is a class which combines a WeakCurrent and a ScalarFormFactor...
Definition:
ScalarMesonFactorizedDecayer.h:37
Herwig::ScalarMesonFactorizedDecayer::constructSpinInfo
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
Herwig::ScalarMesonFactorizedDecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
ScalarMesonFactorizedDecayer.h:129
Herwig::ScalarMesonFactorizedDecayer::_CKMfact
vector< vector< Complex > > _CKMfact
The CKM factors.
Definition:
ScalarMesonFactorizedDecayer.h:272
Herwig::ScalarMesonFactorizedDecayer::rebind
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
Herwig::ScalarMesonFactorizedDecayer::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::ScalarMesonFactorizedDecayer::_formmapB
vector< vector< unsigned int > > _formmapB
Second map.
Definition:
ScalarMesonFactorizedDecayer.h:262
Herwig::ScalarMesonFactorizedDecayer::_a2c
double _a2c
The perturbative coefficient for c decays.
Definition:
ScalarMesonFactorizedDecayer.h:232
Herwig::ScalarMesonFactorizedDecayer::_vectors
vector< vector< Helicity::LorentzPolarizationVector > > _vectors
Polarization vectors for the decay products.
Definition:
ScalarMesonFactorizedDecayer.h:302
Herwig::ScalarMesonFactorizedDecayer::_form
vector< ScalarFormFactorPtr > _form
The baryon form factor.
Definition:
ScalarMesonFactorizedDecayer.h:208
Herwig::ScalarMesonFactorizedDecayer::_weights
vector< double > _weights
Weights for the different channels.
Definition:
ScalarMesonFactorizedDecayer.h:287
Herwig::ScalarMesonFactorizedDecayer::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::ScalarMesonFactorizedDecayer::_a2b
double _a2b
The perturbative coefficient for b decays.
Definition:
ScalarMesonFactorizedDecayer.h:222
Herwig::ScalarMesonFactorizedDecayer::_wgtloc
vector< int > _wgtloc
location of the weights
Definition:
ScalarMesonFactorizedDecayer.h:277
Herwig::ScalarMesonFactorizedDecayer::_a1c
double _a1c
The perturbative coefficient for c decays.
Definition:
ScalarMesonFactorizedDecayer.h:227
Herwig::ScalarMesonFactorizedDecayer::accept
virtual bool accept(tcPDPtr parent, const tPDVector &children) const
Check if this decayer can perfom the decay for a particular mode.
Herwig::ScalarMesonFactorizedDecayer::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::ScalarMesonFactorizedDecayer::_ckm
Ptr< StandardCKM >::pointer _ckm
Pointer to the CKM object.
Definition:
ScalarMesonFactorizedDecayer.h:292
Herwig::ScalarMesonFactorizedDecayer::getReferences
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
Herwig::ScalarMesonFactorizedDecayer::findModes
void findModes(unsigned int imode, tPDVector &incoming, vector< tPDVector > &outgoing, vector< unsigned int > &loc, vector< bool > &cc)
Find duplicate modes in the list of particles.
Herwig::ScalarMesonFactorizedDecayer::doinitrun
virtual void doinitrun()
Initialize this object.
Herwig::ScalarMesonFactorizedDecayer::_rho
RhoDMatrix _rho
Spin density matrix.
Definition:
ScalarMesonFactorizedDecayer.h:297
Herwig::ScalarMesonFactorizedDecayer::modeNumber
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
Herwig::ScalarMesonFactorizedDecayer::_currentmapA
vector< vector< unsigned int > > _currentmapA
Mapping of the modes to the currents.
Definition:
ScalarMesonFactorizedDecayer.h:242
Herwig::ScalarMesonFactorizedDecayer::_tensors
vector< vector< Helicity::LorentzTensor< double > > > _tensors
Polarization tensors for the decay products.
Definition:
ScalarMesonFactorizedDecayer.h:307
Herwig::ScalarMesonFactorizedDecayer::_formpart
vector< vector< unsigned int > > _formpart
Outgoing particle from the form factor.
Definition:
ScalarMesonFactorizedDecayer.h:267
Herwig::ScalarMesonFactorizedDecayer::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
Herwig::ScalarMesonFactorizedDecayer::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::ScalarMesonFactorizedDecayer::ScalarMesonFactorizedDecayer
ScalarMesonFactorizedDecayer()
The default constructor.
Herwig::ScalarMesonFactorizedDecayer::_wgtmax
vector< double > _wgtmax
the maximum weights
Definition:
ScalarMesonFactorizedDecayer.h:282
Herwig::ScalarMesonFactorizedDecayer::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::ScalarMesonFactorizedDecayer::_a1b
double _a1b
The perturbative coefficients.
Definition:
ScalarMesonFactorizedDecayer.h:217
Herwig::ScalarMesonFactorizedDecayer::_currentmapB
vector< vector< unsigned int > > _currentmapB
Second map.
Definition:
ScalarMesonFactorizedDecayer.h:247
Herwig::ScalarMesonFactorizedDecayer::_current
vector< WeakCurrentPtr > _current
The weak decay current.
Definition:
ScalarMesonFactorizedDecayer.h:203
Herwig::ScalarMesonFactorizedDecayer::_formmapA
vector< vector< unsigned int > > _formmapA
Mapping of the modes to the form factors.
Definition:
ScalarMesonFactorizedDecayer.h:257
Herwig::ScalarMesonFactorizedDecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
ScalarMesonFactorizedDecayer.h:135
Herwig::ScalarMesonFactorizedDecayer::operator=
ScalarMesonFactorizedDecayer & operator=(const ScalarMesonFactorizedDecayer &)=delete
The assignment operator is private and must never be called.
ThePEG::Particle
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::Rebinder
ThePEG::RhoDMatrix
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity::outgoing
outgoing
ThePEG::Helicity::incoming
incoming
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tPDVector
vector< tPDPtr > tPDVector
ThePEG::ParticleVector
vector< PPtr > ParticleVector
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::IVector
vector< IBPtr > IVector
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6