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