herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
17 namespace Herwig {
18  using namespace ThePEG;
19 
27 
28 public:
29 
38  virtual double me2(const int ichan, const Particle & part,
39  const ParticleVector & decay, MEOption meopt) const;
40 
47  virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode & dm) const;
48 
49 public:
50 
57  void persistentOutput(PersistentOStream & os) const;
58 
64  void persistentInput(PersistentIStream & is, int version);
66 
73  static void Init();
74 
75 protected:
76 
83  virtual IBPtr clone() const;
84 
89  virtual IBPtr fullclone() const;
91 
92 protected:
93 
97  virtual void setupDiagrams(bool checkKinematics);
98 
99 private:
100 
105  StoFFVDecayer & operator=(const StoFFVDecayer &) = delete;
106 
107 private:
108 
112  vector<pair<AbstractFFSVertexPtr, AbstractFFVVertexPtr> > fer_;
113 
117  vector<pair<AbstractRFSVertexPtr, AbstractRFVVertexPtr> > RSfer_;
118 
122  vector<pair<AbstractVSSVertexPtr, AbstractFFSVertexPtr> > sca_;
123 
127  vector<pair<AbstractVVSVertexPtr, AbstractFFVVertexPtr> > vec_;
128 
132  vector<AbstractFFVSVertexPtr> four_;
133 
137  mutable RhoDMatrix rho_;
138 
143 
147  mutable vector<VectorWaveFunction> outVector_;
148 
152  mutable pair<vector<SpinorWaveFunction>,vector<SpinorBarWaveFunction> > outspin_[3];
153 };
154 
155 }
156 
157 #endif /* THEPEG_StoFFVDecayer_H */
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< pair< AbstractRFSVertexPtr, AbstractRFVVertexPtr > > RSfer_
Store the vertices for fermion intrermediate.
RhoDMatrix rho_
Spin density matrix.
vector< AbstractFFVSVertexPtr > four_
Store the vertices for 4-point diagrams.
vector< pair< AbstractFFSVertexPtr, AbstractFFVVertexPtr > > fer_
Store the vertices for fermion intrermediate.
MEOption
Enum for the matrix element option.
Here is the documentation of the StoFFVDecayer class.
Definition: StoFFVDecayer.h:26
vector< pair< AbstractVVSVertexPtr, AbstractFFVVertexPtr > > vec_
Store the vertices for vector intrermediate.
Here is the documentation of the GeneralThreeBodyDecayer class.
ScalarWaveFunction swave_
Scalar wavefunction.
vector< VectorWaveFunction > outVector_
Vector wavefunction.
-*- C++ -*-
vector< pair< AbstractVSSVertexPtr, AbstractFFSVertexPtr > > sca_
Store the vertices for scalar intrermediate.
vector< PPtr > ParticleVector