herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
FtoFFFDecayer.h
1// -*- C++ -*-
2#ifndef HERWIG_FtoFFFDecayer_H
3#define HERWIG_FtoFFFDecayer_H
4//
5// This is the declaration of the FtoFFFDecayer 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
13namespace Herwig {
14using namespace ThePEG;
15
24
25public:
26
36 double me2(const int ichan,const Particle & part,
37 const tPDVector & outgoing,
38 const vector<Lorentz5Momentum> & momenta,
39 MEOption meopt) const;
40
44 virtual void constructSpinInfo(const Particle & part,
46
52 virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode & dm) const;
53
54public:
55 void persistentOutput(PersistentOStream & os) const;
62
68 void persistentInput(PersistentIStream & is, int version);
70
77 static void Init();
78
79protected:
80
87 virtual IBPtr clone() const;
88
93 virtual IBPtr fullclone() const;
95
96protected:
97
101 virtual void setupDiagrams(bool checkKinematics);
102
103private:
104
110
111private:
112
116 vector<pair<AbstractFFSVertexPtr, AbstractFFSVertexPtr> > sca_;
117
121 vector<pair<AbstractFFVVertexPtr, AbstractFFVVertexPtr> > vec_;
122
126 vector<pair<AbstractFFTVertexPtr, AbstractFFTVertexPtr> > ten_;
127
132
136 mutable pair<vector<SpinorWaveFunction>,vector<SpinorBarWaveFunction> > inwave_;
137
141 mutable pair<vector<SpinorWaveFunction>,vector<SpinorBarWaveFunction> > outwave_[3];
142};
143
144}
145
146#endif /* HERWIG_FtoFFFDecayer_H */
MEOption
Enum for the matrix element option.
The FtoFFFDecayer class provides the general matrix elements for the decay of a (anti)fermion to thre...
Definition: FtoFFFDecayer.h:23
pair< vector< SpinorWaveFunction >, vector< SpinorBarWaveFunction > > outwave_[3]
Spinors for outgoing particles.
RhoDMatrix rho_
Spin density matrix.
vector< pair< AbstractFFSVertexPtr, AbstractFFSVertexPtr > > sca_
Store the vector of FFSVertex pairs.
vector< pair< AbstractFFTVertexPtr, AbstractFFTVertexPtr > > ten_
Store the vector of FFTVertex pairs.
vector< pair< AbstractFFVVertexPtr, AbstractFFVVertexPtr > > vec_
Store the vector of FFVVertex pairs.
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.
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual void setupDiagrams(bool checkKinematics)
Set up the diagrams etc.
static void Init()
The standard Init function used to initialize the interfaces.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
pair< vector< SpinorWaveFunction >, vector< SpinorBarWaveFunction > > inwave_
Spinors for incoming particle.
virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode &dm) const
Method to return an object to calculate the 3 (or higher body) partial width.
FtoFFFDecayer & operator=(const FtoFFFDecayer &)=delete
The assignment operator is private and must never be called.
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.
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