herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
StoFFFFDecayer.h
1// -*- C++ -*-
2#ifndef HERWIG_StoFFFFDecayer_H
3#define HERWIG_StoFFFFDecayer_H
4//
5// This is the declaration of the StoFFFFDecayer class.
6//
7
8#include "GeneralFourBodyDecayer.h"
9#include "ThePEG/Helicity/Vertex/AbstractSSSVertex.h"
10#include "ThePEG/Helicity/Vertex/AbstractFFSVertex.h"
11#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
12#include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h"
13#include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
14
15namespace Herwig {
16
17using namespace ThePEG;
18
26
27public:
28
38 double me2(const int ichan,const Particle & part,
39 const tPDVector & outgoing,
40 const vector<Lorentz5Momentum> & momenta,
41 MEOption meopt) const;
42
46 virtual void constructSpinInfo(const Particle & part,
48
49public:
50
58
64 void persistentInput(PersistentIStream & is, int version);
66
73 static void Init();
74
75protected:
76
83 virtual IBPtr clone() const;
84
89 virtual IBPtr fullclone() const;
91
92protected:
93
101 virtual void doinit();
103
104private:
105
111
112private:
113
117 vector<double> sign_;
118
126 vector<AbstractVVSVertexPtr> firstVVS_;
127
131 vector<AbstractVSSVertexPtr> firstVSS_;
132
136 vector<AbstractSSSVertexPtr> firstSSS_;
137
141 vector<AbstractFFSVertexPtr> firstFFS_;
143
151 vector<AbstractFFVVertexPtr> secondFFV_;
152
156 vector<AbstractFFSVertexPtr> secondFFS_;
158
166 vector<AbstractFFVVertexPtr> thirdFFV_;
167
171 vector<AbstractFFSVertexPtr> thirdFFS_;
173
178
183
187 mutable pair<vector<SpinorWaveFunction>,vector<SpinorBarWaveFunction> > outwave_[4];
188
189};
190
191}
192
193#endif /* HERWIG_StoFFFFDecayer_H */
MEOption
Enum for the matrix element option.
Here is the documentation of the GeneralFourBodyDecayer class.
const tPDVector & outgoing() const
Outgoing particles.
Here is the documentation of the StoFFFFDecayer class.
vector< AbstractFFVVertexPtr > thirdFFV_
Potential vertices for the third step.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
vector< AbstractVVSVertexPtr > firstVVS_
Potential vertices for the first step.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
vector< AbstractFFSVertexPtr > firstFFS_
FFS Vertex.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
vector< double > sign_
Signs for NO.
pair< vector< SpinorWaveFunction >, vector< SpinorBarWaveFunction > > outwave_[4]
Spinors for outgoing particles.
vector< AbstractFFSVertexPtr > secondFFS_
FFS Vertex.
vector< AbstractFFVVertexPtr > secondFFV_
Potential vertices for the second step.
StoFFFFDecayer & operator=(const StoFFFFDecayer &)=delete
The assignment operator is private and must never be called.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
vector< AbstractVSSVertexPtr > firstVSS_
VSS Vertex.
ScalarWaveFunction swave_
Scalar wavefunction.
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.
vector< AbstractFFSVertexPtr > thirdFFS_
FFS Vertex.
vector< AbstractSSSVertexPtr > firstSSS_
SSS Vertex.
RhoDMatrix rho_
Spin density matrix.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
vector< PPtr > ParticleVector