herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
ScalarMeson
PScalarVectorFermionsDecayer.h
1
// -*- C++ -*-
2
//
3
// PScalarVectorFermionsDecayer.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_PScalarVectorFermionsDecayer_H
10
#define THEPEG_PScalarVectorFermionsDecayer_H
11
//
12
// This is the declaration of the PScalarVectorFermionsDecayer class.
13
//
14
#include "Herwig/Decay/DecayIntegrator.h"
15
#include "Herwig/Decay/PhaseSpaceMode.h"
16
#include "ThePEG/Helicity/LorentzPolarizationVector.h"
17
#include "ThePEG/Helicity/LorentzSpinorBar.h"
18
19
namespace
Herwig
{
20
using namespace
ThePEG
;
21
49
class
PScalarVectorFermionsDecayer
:
public
DecayIntegrator
{
50
51
public
:
52
56
PScalarVectorFermionsDecayer
();
57
64
virtual
int
modeNumber
(
bool
& cc,
tcPDPtr
parent,
65
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
;
86
92
virtual
WidthCalculatorBasePtr
threeBodyMEIntegrator
(
const
DecayMode
& dm)
const
;
93
104
virtual
InvEnergy
threeBodydGammads
(
const
int
imode
,
const
Energy2 q2,
105
const
Energy2 s,
106
const
Energy m1,
const
Energy m2,
107
const
Energy m3)
const
;
108
114
virtual
void
dataBaseOutput
(ofstream & os,
bool
header)
const
;
115
116
public
:
117
124
void
persistentOutput
(
PersistentOStream
& os)
const
;
125
131
void
persistentInput
(
PersistentIStream
& is,
int
version);
133
137
static
void
Init
();
138
139
protected
:
140
147
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
148
153
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
155
156
protected
:
157
165
virtual
void
doinit
();
166
170
virtual
void
doinitrun
();
172
173
private
:
174
178
PScalarVectorFermionsDecayer
&
operator=
(
const
PScalarVectorFermionsDecayer
&) =
delete
;
179
180
public
:
181
185
string
setUpDecayMode
(
string
arg);
186
187
private
:
188
192
vector<InvEnergy>
coupling_
;
193
197
vector<int>
incoming_
;
198
202
vector<pair<long,long> >
outgoing_
;
203
207
vector<double>
maxweight_
;
208
212
vector<int>
includeVMD_
;
213
217
vector<int>
VMDid_
;
218
222
vector<Energy>
VMDmass_
;
223
227
vector<Energy>
VMDwidth_
;
231
mutable
RhoDMatrix
rho_
;
232
236
mutable
vector<Helicity::LorentzPolarizationVector>
vectors_
;
237
241
mutable
vector<Helicity::LorentzSpinor <SqrtEnergy> >
wave_
;
242
246
mutable
vector<Helicity::LorentzSpinorBar<SqrtEnergy> >
wavebar_
;
247
};
248
249
}
250
251
252
#endif
/* THEPEG_PScalarVectorFermionsDecayer_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::PScalarVectorFermionsDecayer
The PScalarVectorFermionsDecayer class is designed for the decay of a pseudoscalar meson to a spin-1 ...
Definition:
PScalarVectorFermionsDecayer.h:49
Herwig::PScalarVectorFermionsDecayer::wave_
vector< Helicity::LorentzSpinor< SqrtEnergy > > wave_
Spinors for the fermions.
Definition:
PScalarVectorFermionsDecayer.h:241
Herwig::PScalarVectorFermionsDecayer::maxweight_
vector< double > maxweight_
maximum weight for a decay
Definition:
PScalarVectorFermionsDecayer.h:207
Herwig::PScalarVectorFermionsDecayer::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::PScalarVectorFermionsDecayer::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::PScalarVectorFermionsDecayer::operator=
PScalarVectorFermionsDecayer & operator=(const PScalarVectorFermionsDecayer &)=delete
Private and non-existent assignment operator.
Herwig::PScalarVectorFermionsDecayer::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::PScalarVectorFermionsDecayer::wavebar_
vector< Helicity::LorentzSpinorBar< SqrtEnergy > > wavebar_
Barred spinors for the fermions.
Definition:
PScalarVectorFermionsDecayer.h:246
Herwig::PScalarVectorFermionsDecayer::rho_
RhoDMatrix rho_
Spin density matrix.
Definition:
PScalarVectorFermionsDecayer.h:231
Herwig::PScalarVectorFermionsDecayer::vectors_
vector< Helicity::LorentzPolarizationVector > vectors_
Polarization vectors for the decay product.
Definition:
PScalarVectorFermionsDecayer.h:236
Herwig::PScalarVectorFermionsDecayer::setUpDecayMode
string setUpDecayMode(string arg)
Set the parameters for a decay mode.
Herwig::PScalarVectorFermionsDecayer::PScalarVectorFermionsDecayer
PScalarVectorFermionsDecayer()
Default constructor.
Herwig::PScalarVectorFermionsDecayer::incoming_
vector< int > incoming_
the PDG codes for the incoming particles
Definition:
PScalarVectorFermionsDecayer.h:197
Herwig::PScalarVectorFermionsDecayer::threeBodyMEIntegrator
virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode &dm) const
Method to return an object to calculate the 3 body partial width.
Herwig::PScalarVectorFermionsDecayer::constructSpinInfo
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
Herwig::PScalarVectorFermionsDecayer::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::PScalarVectorFermionsDecayer::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
PScalarVectorFermionsDecayer.h:153
Herwig::PScalarVectorFermionsDecayer::outgoing_
vector< pair< long, long > > outgoing_
the PDG codes for the outgoing vector
Definition:
PScalarVectorFermionsDecayer.h:202
Herwig::PScalarVectorFermionsDecayer::VMDid_
vector< int > VMDid_
PDG code for thte particle to use in the VMD factor.
Definition:
PScalarVectorFermionsDecayer.h:217
Herwig::PScalarVectorFermionsDecayer::threeBodydGammads
virtual InvEnergy threeBodydGammads(const int imode, const Energy2 q2, const Energy2 s, const Energy m1, const Energy m2, const Energy m3) const
The differential three body decay rate with one integral performed.
Herwig::PScalarVectorFermionsDecayer::VMDmass_
vector< Energy > VMDmass_
Mass to use in the VMD factor.
Definition:
PScalarVectorFermionsDecayer.h:222
Herwig::PScalarVectorFermionsDecayer::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
PScalarVectorFermionsDecayer.h:147
Herwig::PScalarVectorFermionsDecayer::doinitrun
virtual void doinitrun()
Initialize this object to the begining of the run phase.
Herwig::PScalarVectorFermionsDecayer::coupling_
vector< InvEnergy > coupling_
coupling for a decay
Definition:
PScalarVectorFermionsDecayer.h:192
Herwig::PScalarVectorFermionsDecayer::includeVMD_
vector< int > includeVMD_
Include the VMD factor.
Definition:
PScalarVectorFermionsDecayer.h:212
Herwig::PScalarVectorFermionsDecayer::VMDwidth_
vector< Energy > VMDwidth_
Width to use in the VMD factor.
Definition:
PScalarVectorFermionsDecayer.h:227
Herwig::PScalarVectorFermionsDecayer::Init
static void Init()
Standard Init function used to initialize the interfaces.
Herwig::PScalarVectorFermionsDecayer::modeNumber
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
Herwig::PScalarVectorFermionsDecayer::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
ThePEG::DecayMode
ThePEG::Particle
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::RhoDMatrix
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity::outgoing
outgoing
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
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6