herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
16 namespace Herwig {
17  using namespace ThePEG;
18 
26 
27 public:
28 
37  virtual double me2(const int ichan, const Particle & part,
38  const ParticleVector & decay, MEOption meopt) const;
39 
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  VtoFFVDecayer & operator=(const VtoFFVDecayer &) = delete;
105 
106 private:
107 
111  vector<pair<AbstractVVSVertexPtr, AbstractFFSVertexPtr> > sca_;
112 
116  vector<pair<AbstractFFVVertexPtr, AbstractFFVVertexPtr> > fer_;
117 
121  vector<pair<AbstractVVVVertexPtr, AbstractFFVVertexPtr> > vec_;
122 
126  vector<pair<AbstractVVTVertexPtr, AbstractFFTVertexPtr> > ten_;
127 
131  mutable RhoDMatrix rho_;
132 
136  mutable vector<VectorWaveFunction> inVector_;
137 
142 
146  mutable vector<VectorWaveFunction> outVector_;
147 
151  mutable pair<vector<SpinorWaveFunction>,vector<SpinorBarWaveFunction> > outspin_[3];
152 };
153 
154 }
155 
156 #endif /* THEPEG_VtoFFVDecayer_H */
vector< VectorWaveFunction > outVector_
Polarization vectors for the decay products.
vector< pair< AbstractFFVVertexPtr, AbstractFFVVertexPtr > > fer_
Store the vertices for fermion intrermediate.
vector< pair< AbstractVVVVertexPtr, AbstractFFVVertexPtr > > vec_
Store the vertices for vector intrermediate.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ScalarWaveFunction swave_
Scalar wavefunction for the decay products.
vector< VectorWaveFunction > inVector_
Polarization vectors for the decaying particle.
MEOption
Enum for the matrix element option.
Here is the documentation of the GeneralThreeBodyDecayer class.
vector< pair< AbstractVVTVertexPtr, AbstractFFTVertexPtr > > ten_
Store the vertices for vector intrermediate.
vector< pair< AbstractVVSVertexPtr, AbstractFFSVertexPtr > > sca_
Store the vertices for scalar intrermediate.
RhoDMatrix rho_
Spinr density matrix.
-*- C++ -*-
Here is the documentation of the VtoFFVDecayer class.
Definition: VtoFFVDecayer.h:25
vector< PPtr > ParticleVector