herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
VtoFFVDecayer.h
1// -*- C++ -*-
2#ifndef THEPEG_VtoFFVDecayer_H
3#define THEPEG_VtoFFVDecayer_H
4//
5// This is the declaration of the VtoFFVDecayer 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/AbstractVVVVertex.h"
13#include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
14#include "ThePEG/Helicity/Vertex/AbstractVVTVertex.h"
15
16namespace Herwig {
17 using 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
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<AbstractVVSVertexPtr, AbstractFFSVertexPtr> > sca_;
121
125 vector<pair<AbstractFFVVertexPtr, AbstractFFVVertexPtr> > fer_;
126
130 vector<pair<AbstractVVVVertexPtr, AbstractFFVVertexPtr> > vec_;
131
135 vector<pair<AbstractVVTVertexPtr, AbstractFFTVertexPtr> > ten_;
136
141
145 mutable vector<VectorWaveFunction> inVector_;
146
151
155 mutable vector<VectorWaveFunction> outVector_;
156
160 mutable pair<vector<SpinorWaveFunction>,vector<SpinorBarWaveFunction> > outspin_[3];
161};
162
163}
164
165#endif /* THEPEG_VtoFFVDecayer_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 VtoFFVDecayer class.
Definition: VtoFFVDecayer.h:25
vector< pair< AbstractVVSVertexPtr, AbstractFFSVertexPtr > > sca_
Store the vertices for scalar intrermediate.
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.
VtoFFVDecayer & operator=(const VtoFFVDecayer &)=delete
The assignment operator is private and must never be called.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
pair< vector< SpinorWaveFunction >, vector< SpinorBarWaveFunction > > outspin_[3]
Spinors for the decay products.
RhoDMatrix rho_
Spinr density matrix.
vector< VectorWaveFunction > outVector_
Polarization vectors for the decay products.
virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode &dm) const
Method to return an object to calculate the 3 (or higher body) partial width.
vector< pair< AbstractFFVVertexPtr, AbstractFFVVertexPtr > > fer_
Store the vertices for fermion intrermediate.
virtual void setupDiagrams(bool checkKinematics)
Set up the diagrams etc.
static void Init()
The standard Init function used to initialize the interfaces.
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
vector< pair< AbstractVVTVertexPtr, AbstractFFTVertexPtr > > ten_
Store the vertices for vector intrermediate.
vector< pair< AbstractVVVVertexPtr, AbstractFFVVertexPtr > > vec_
Store the vertices for vector intrermediate.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< VectorWaveFunction > inVector_
Polarization vectors for the decaying particle.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ScalarWaveFunction swave_
Scalar wavefunction for the decay products.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
vector< PPtr > ParticleVector