File indexing completed on 2026-08-06 09:24:10
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef Herwig_MatchboxAmplitudelnuqqbarqqbar_H
0010 #define Herwig_MatchboxAmplitudelnuqqbarqqbar_H
0011
0012
0013
0014
0015 #include "Herwig/MatrixElement/Matchbox/Base/MatchboxAmplitude.h"
0016 #include "Herwig/MatrixElement/Matchbox/Builtin/Amplitudes/MatchboxCurrents.h"
0017 #include "Herwig/MatrixElement/Matchbox/Utility/SU2Helper.h"
0018 #include "ThePEG/StandardModel/StandardModelBase.h"
0019 #include "ThePEG/Interface/ClassDocumentation.h"
0020 #include "ThePEG/Interface/Switch.h"
0021 #include "ThePEG/Interface/Parameter.h"
0022 #include "ThePEG/EventRecord/Particle.h"
0023 #include "ThePEG/Repository/UseRandom.h"
0024 #include "ThePEG/Repository/EventGenerator.h"
0025 #include "ThePEG/Utilities/DescribeClass.h"
0026 #include "ThePEG/Persistency/PersistentOStream.h"
0027 #include "ThePEG/Persistency/PersistentIStream.h"
0028 #include "ThePEG/PDT/EnumParticles.h"
0029
0030 namespace Herwig {
0031
0032 using namespace ThePEG;
0033
0034
0035
0036
0037
0038
0039
0040 class MatchboxAmplitudelnuqqbarqqbar: public MatchboxAmplitude, public MatchboxCurrents {
0041
0042 public:
0043
0044
0045
0046
0047 MatchboxAmplitudelnuqqbarqqbar();
0048
0049
0050
0051
0052
0053 virtual unsigned int orderInGs() const { return 2; }
0054
0055
0056
0057
0058
0059 virtual unsigned int orderInGem() const { return 2; }
0060
0061
0062
0063
0064
0065 virtual bool haveOneLoop() const { return false; }
0066
0067
0068
0069
0070 virtual bool canHandle(const PDVector&) const;
0071
0072
0073
0074
0075
0076 virtual void prepareAmplitudes(Ptr<MatchboxMEBase>::tcptr);
0077
0078
0079
0080
0081
0082 virtual Complex evaluate(size_t, const vector<int>&, Complex&);
0083
0084
0085
0086
0087
0088 virtual bool isBDK() const { return true; }
0089
0090
0091
0092
0093
0094
0095 virtual Energy2 mu2() const { return lastSHat(); }
0096
0097
0098
0099
0100 virtual void flushCaches() {
0101 MatchboxCurrents::reset();
0102 MatchboxAmplitude::flushCaches();
0103 }
0104
0105
0106
0107
0108
0109 void persistentOutput(PersistentOStream & os) const;
0110
0111
0112
0113
0114
0115
0116 void persistentInput(PersistentIStream & is, int version);
0117
0118
0119
0120
0121
0122
0123
0124 static void Init();
0125
0126 protected:
0127
0128
0129
0130
0131
0132 virtual IBPtr clone() const;
0133
0134
0135
0136
0137
0138 virtual IBPtr fullclone() const;
0139
0140
0141
0142
0143
0144
0145 virtual void doinit();
0146
0147
0148
0149
0150
0151 virtual void doinitrun();
0152
0153 private:
0154
0155
0156
0157
0158
0159 bool theDiagonal;
0160
0161
0162
0163
0164 vector< vector<Complex> > theCKM;
0165
0166
0167
0168
0169
0170 MatchboxAmplitudelnuqqbarqqbar & operator=(const MatchboxAmplitudelnuqqbarqqbar &) = delete;
0171
0172 };
0173
0174 }
0175
0176 #endif