herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
FtoFVVDecayer.h
1// -*- C++ -*-
2#ifndef HERWIG_FtoFVVDecayer_H
3#define HERWIG_FtoFVVDecayer_H
4//
5// This is the declaration of the FtoFVVDecayer class.
6//
7
8#include "GeneralThreeBodyDecayer.h"
9#include "ThePEG/Helicity/Vertex/AbstractFFSVertex.h"
10#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
11#include "ThePEG/Helicity/Vertex/AbstractFFTVertex.h"
12#include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
13#include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
14#include "ThePEG/Helicity/Vertex/AbstractVVTVertex.h"
15
16namespace Herwig {
17using namespace ThePEG;
18
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
55 virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode & dm) const;
56
57public:
58
66
72 void persistentInput(PersistentIStream & is, int version);
74
81 static void Init();
82
83protected:
84
91 virtual IBPtr clone() const;
92
97 virtual IBPtr fullclone() const;
99
100protected:
101
105 virtual void setupDiagrams(bool checkKinematics);
106
107private:
108
114
115private:
116
120 vector<pair<AbstractFFSVertexPtr, AbstractVVSVertexPtr> > sca_;
121
125 vector<pair<AbstractFFVVertexPtr, AbstractFFVVertexPtr> > fer_;
126
130 vector<pair<AbstractFFVVertexPtr, AbstractVVVVertexPtr> > vec_;
131
135 vector<pair<AbstractFFTVertexPtr, AbstractVVTVertexPtr> > ten_;
136
141
145 mutable vector<SpinorWaveFunction> fwave_;
146
150 mutable vector<SpinorBarWaveFunction> fbwave_;
151
155 mutable pair<vector<VectorWaveFunction>, vector<VectorWaveFunction> > vwave_;
156};
157
158}
159
160#endif /* HERWIG_FtoFVVDecayer_H */
MEOption
Enum for the matrix element option.
The FtoFVVDecayer class provides the general matrix elements for the decay of a fermion to a fermion ...
Definition: FtoFVVDecayer.h:26
RhoDMatrix rho_
Spin density matrix.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode &dm) const
Method to return an object to calculate the 3 (or higher body) partial width.
FtoFVVDecayer & operator=(const FtoFVVDecayer &)=delete
The assignment operator is private and must never be called.
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< SpinorBarWaveFunction > fbwave_
Barred spinor wavefunctions.
static void Init()
The standard Init function used to initialize the interfaces.
vector< SpinorWaveFunction > fwave_
Spinor wavefunctions.
virtual void setupDiagrams(bool checkKinematics)
Set up the diagrams etc.
vector< pair< AbstractFFSVertexPtr, AbstractVVSVertexPtr > > sca_
Store the vector of scalar intermediates.
virtual IBPtr clone() const
Make a simple clone of this object.
vector< pair< AbstractFFVVertexPtr, AbstractFFVVertexPtr > > fer_
Store the vector for fermion intermediates.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
pair< vector< VectorWaveFunction >, vector< VectorWaveFunction > > vwave_
Vector wavefunctions.
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
vector< pair< AbstractFFTVertexPtr, AbstractVVTVertexPtr > > ten_
Store the vector of tensor intermediates.
vector< pair< AbstractFFVVertexPtr, AbstractVVVVertexPtr > > vec_
Store the vector for gauge boson intermediates.
Here is the documentation of the GeneralThreeBodyDecayer class.
const vector< tPDPtr > & outgoing() const
Outgoing particles.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
vector< PPtr > ParticleVector