herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
StoFFVDecayer.h
1// -*- C++ -*-
2#ifndef THEPEG_StoFFVDecayer_H
3#define THEPEG_StoFFVDecayer_H
4//
5// This is the declaration of the StoFFVDecayer class.
6//
7
8#include "GeneralThreeBodyDecayer.h"
9#include "ThePEG/Helicity/Vertex/AbstractFFSVertex.h"
10#include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h"
11#include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
12#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
13#include "ThePEG/Helicity/Vertex/AbstractRFVVertex.h"
14#include "ThePEG/Helicity/Vertex/AbstractRFSVertex.h"
15#include "ThePEG/Helicity/Vertex/AbstractFFVSVertex.h"
16
17namespace Herwig {
18 using namespace ThePEG;
19
27
28public:
29
39 double me2(const int ichan,const Particle & part,
40 const tPDVector & outgoing,
41 const vector<Lorentz5Momentum> & momenta,
42 MEOption meopt) const;
43
47 virtual void constructSpinInfo(const Particle & part,
49
56 virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode & dm) const;
57
58public:
59
67
73 void persistentInput(PersistentIStream & is, int version);
75
82 static void Init();
83
84protected:
85
92 virtual IBPtr clone() const;
93
98 virtual IBPtr fullclone() const;
100
101protected:
102
106 virtual void setupDiagrams(bool checkKinematics);
107
108private:
109
115
116private:
117
121 vector<pair<AbstractFFSVertexPtr, AbstractFFVVertexPtr> > fer_;
122
126 vector<pair<AbstractRFSVertexPtr, AbstractRFVVertexPtr> > RSfer_;
127
131 vector<pair<AbstractVSSVertexPtr, AbstractFFSVertexPtr> > sca_;
132
136 vector<pair<AbstractVVSVertexPtr, AbstractFFVVertexPtr> > vec_;
137
141 vector<AbstractFFVSVertexPtr> four_;
142
147
152
156 mutable vector<VectorWaveFunction> outVector_;
157
161 mutable pair<vector<SpinorWaveFunction>,vector<SpinorBarWaveFunction> > outspin_[3];
162};
163
164}
165
166#endif /* THEPEG_StoFFVDecayer_H */
MEOption
Enum for the matrix element option.
Here is the documentation of the GeneralThreeBodyDecayer class.
const vector< tPDPtr > & outgoing() const
Outgoing particles.
Here is the documentation of the StoFFVDecayer class.
Definition: StoFFVDecayer.h:26
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ScalarWaveFunction swave_
Scalar wavefunction.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< pair< AbstractRFSVertexPtr, AbstractRFVVertexPtr > > RSfer_
Store the vertices for fermion intrermediate.
vector< VectorWaveFunction > outVector_
Vector wavefunction.
virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode &dm) const
Method to return an object to calculate the 3 (or higher body) partial width.
StoFFVDecayer & operator=(const StoFFVDecayer &)=delete
The assignment operator is private and must never be called.
virtual void setupDiagrams(bool checkKinematics)
Set up the diagrams etc.
vector< pair< AbstractVVSVertexPtr, AbstractFFVVertexPtr > > vec_
Store the vertices for vector intrermediate.
vector< AbstractFFVSVertexPtr > four_
Store the vertices for 4-point diagrams.
RhoDMatrix rho_
Spin density matrix.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
pair< vector< SpinorWaveFunction >, vector< SpinorBarWaveFunction > > outspin_[3]
Spinor wavefunctions.
virtual IBPtr clone() const
Make a simple clone of this object.
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< pair< AbstractFFSVertexPtr, AbstractFFVVertexPtr > > fer_
Store the vertices for fermion intrermediate.
vector< pair< AbstractVSSVertexPtr, AbstractFFSVertexPtr > > sca_
Store the vertices for scalar intrermediate.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
vector< PPtr > ParticleVector