File indexing completed on 2026-08-06 09:24:01
0001
0002 #ifndef THEPEG_StoFFVDecayer_H
0003 #define THEPEG_StoFFVDecayer_H
0004
0005
0006
0007
0008 #include "GeneralThreeBodyDecayer.h"
0009 #include "ThePEG/Helicity/Vertex/AbstractFFSVertex.h"
0010 #include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h"
0011 #include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
0012 #include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
0013 #include "ThePEG/Helicity/Vertex/AbstractRFVVertex.h"
0014 #include "ThePEG/Helicity/Vertex/AbstractRFSVertex.h"
0015 #include "ThePEG/Helicity/Vertex/AbstractFFVSVertex.h"
0016
0017 namespace Herwig {
0018 using namespace ThePEG;
0019
0020
0021
0022
0023
0024
0025
0026 class StoFFVDecayer: public GeneralThreeBodyDecayer {
0027
0028 public:
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039 double me2(const int ichan,const Particle & part,
0040 const tPDVector & outgoing,
0041 const vector<Lorentz5Momentum> & momenta,
0042 MEOption meopt) const;
0043
0044
0045
0046
0047 virtual void constructSpinInfo(const Particle & part,
0048 ParticleVector outgoing) const;
0049
0050
0051
0052
0053
0054
0055
0056 virtual WidthCalculatorBasePtr threeBodyMEIntegrator(const DecayMode & dm) const;
0057
0058 public:
0059
0060
0061
0062
0063
0064
0065
0066 void persistentOutput(PersistentOStream & os) const;
0067
0068
0069
0070
0071
0072
0073 void persistentInput(PersistentIStream & is, int version);
0074
0075
0076
0077
0078
0079
0080
0081
0082 static void Init();
0083
0084 protected:
0085
0086
0087
0088
0089
0090
0091
0092 virtual IBPtr clone() const;
0093
0094
0095
0096
0097
0098 virtual IBPtr fullclone() const;
0099
0100
0101 protected:
0102
0103
0104
0105
0106 virtual void setupDiagrams(bool checkKinematics);
0107
0108 private:
0109
0110
0111
0112
0113
0114 StoFFVDecayer & operator=(const StoFFVDecayer &) = delete;
0115
0116 private:
0117
0118
0119
0120
0121 vector<pair<AbstractFFSVertexPtr, AbstractFFVVertexPtr> > fer_;
0122
0123
0124
0125
0126 vector<pair<AbstractRFSVertexPtr, AbstractRFVVertexPtr> > RSfer_;
0127
0128
0129
0130
0131 vector<pair<AbstractVSSVertexPtr, AbstractFFSVertexPtr> > sca_;
0132
0133
0134
0135
0136 vector<pair<AbstractVVSVertexPtr, AbstractFFVVertexPtr> > vec_;
0137
0138
0139
0140
0141 vector<AbstractFFVSVertexPtr> four_;
0142
0143
0144
0145
0146 mutable RhoDMatrix rho_;
0147
0148
0149
0150
0151 mutable ScalarWaveFunction swave_;
0152
0153
0154
0155
0156 mutable vector<VectorWaveFunction> outVector_;
0157
0158
0159
0160
0161 mutable pair<vector<SpinorWaveFunction>,vector<SpinorBarWaveFunction> > outspin_[3];
0162 };
0163
0164 }
0165
0166 #endif