herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
16 namespace Herwig {
17 using namespace ThePEG;
18 
27 
28 public:
29 
38  virtual double me2(const int ichan, const Particle & part,
39  const ParticleVector & decay, MEOption meopt) const;
40 
46  virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode & dm) const;
47 
48 public:
49 
56  void persistentOutput(PersistentOStream & os) const;
57 
63  void persistentInput(PersistentIStream & is, int version);
65 
72  static void Init();
73 
74 protected:
75 
82  virtual IBPtr clone() const;
83 
88  virtual IBPtr fullclone() const;
90 
91 protected:
92 
96  virtual void setupDiagrams(bool checkKinematics);
97 
98 private:
99 
104  FtoFVVDecayer & operator=(const FtoFVVDecayer &) = delete;
105 
106 private:
107 
111  vector<pair<AbstractFFSVertexPtr, AbstractVVSVertexPtr> > sca_;
112 
116  vector<pair<AbstractFFVVertexPtr, AbstractFFVVertexPtr> > fer_;
117 
121  vector<pair<AbstractFFVVertexPtr, AbstractVVVVertexPtr> > vec_;
122 
126  vector<pair<AbstractFFTVertexPtr, AbstractVVTVertexPtr> > ten_;
127 
131  mutable RhoDMatrix rho_;
132 
136  mutable vector<SpinorWaveFunction> fwave_;
137 
141  mutable vector<SpinorBarWaveFunction> fbwave_;
142 
146  mutable pair<vector<VectorWaveFunction>, vector<VectorWaveFunction> > vwave_;
147 };
148 
149 }
150 
151 #endif /* HERWIG_FtoFVVDecayer_H */
vector< SpinorWaveFunction > fwave_
Spinor wavefunctions.
vector< pair< AbstractFFVVertexPtr, AbstractFFVVertexPtr > > fer_
Store the vector for fermion intermediates.
vector< pair< AbstractFFVVertexPtr, AbstractVVVVertexPtr > > vec_
Store the vector for gauge boson intermediates.
pair< vector< VectorWaveFunction >, vector< VectorWaveFunction > > vwave_
Vector wavefunctions.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
The FtoFVVDecayer class provides the general matrix elements for the decay of a fermion to a fermion ...
Definition: FtoFVVDecayer.h:26
vector< SpinorBarWaveFunction > fbwave_
Barred spinor wavefunctions.
MEOption
Enum for the matrix element option.
Here is the documentation of the GeneralThreeBodyDecayer class.
vector< pair< AbstractFFSVertexPtr, AbstractVVSVertexPtr > > sca_
Store the vector of scalar intermediates.
-*- C++ -*-
vector< pair< AbstractFFTVertexPtr, AbstractVVTVertexPtr > > ten_
Store the vector of tensor intermediates.
vector< PPtr > ParticleVector
RhoDMatrix rho_
Spin density matrix.