herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MatchboxAmplitudelnuqqbargg.h
1 // -*- C++ -*-
2 //
3 // MatchboxAmplitudelnuqqbargg.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef Herwig_MatchboxAmplitudelnuqqbargg_H
10 #define Herwig_MatchboxAmplitudelnuqqbargg_H
11 //
12 // This is the declaration of the MatchboxAmplitudelnuqqbargg class.
13 //
14 
15 #include "Herwig/MatrixElement/Matchbox/Base/MatchboxAmplitude.h"
16 #include "Herwig/MatrixElement/Matchbox/Builtin/Amplitudes/MatchboxCurrents.h"
17 #include "ThePEG/StandardModel/StandardModelBase.h"
18 #include "ThePEG/Interface/ClassDocumentation.h"
19 #include "ThePEG/EventRecord/Particle.h"
20 #include "ThePEG/Repository/UseRandom.h"
21 #include "ThePEG/Repository/EventGenerator.h"
22 #include "ThePEG/Utilities/DescribeClass.h"
23 #include "ThePEG/Persistency/PersistentOStream.h"
24 #include "ThePEG/Persistency/PersistentIStream.h"
25 #include "ThePEG/PDT/EnumParticles.h"
26 #include "Herwig/MatrixElement/Matchbox/Utility/SU2Helper.h"
27 
28 namespace Herwig {
29 
30 using namespace ThePEG;
31 
39 
40 public:
41 
46 
50  virtual ~MatchboxAmplitudelnuqqbargg();
51 
56  virtual unsigned int orderInGs() const { return 2; }
57 
62  virtual unsigned int orderInGem() const { return 2; }
63 
68  virtual bool haveOneLoop() const { return false; }
69 
73  virtual bool canHandle(const PDVector&) const;
74 
79  virtual void prepareAmplitudes(Ptr<MatchboxMEBase>::tcptr);
80 
85  virtual Complex evaluate(size_t, const vector<int>&, Complex&);
86 
91  virtual bool isBDK() const { return true; }
92 
98  virtual Energy2 mu2() const { return lastSHat(); }
99 
103  virtual void flushCaches() {
106  }
107 
112  void persistentOutput(PersistentOStream & os) const;
113 
119  void persistentInput(PersistentIStream & is, int version);
120 
127  static void Init();
128 
129 protected:
130 
135  virtual IBPtr clone() const;
136 
141  virtual IBPtr fullclone() const;
142 
148  virtual void doinit();
149 
154  virtual void doinitrun();
155 
156 private:
157 
163 
167  vector< vector<Complex> > theCKM;
168 
173  MatchboxAmplitudelnuqqbargg & operator=(const MatchboxAmplitudelnuqqbargg &) = delete;
174 
175 };
176 
177 }
178 
179 #endif /* Herwig_MatchboxAmplitudelnuqqbargg_H */
virtual void flushCaches()
Flush all cashes.
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
MatchboxAmplitude is the base class for amplitude implementations inside Matchbox.
vector< vector< Complex > > theCKM
The ckm.
virtual unsigned int orderInGem() const
Return the (tree-level) order in in which this matrix element is given.
virtual void flushCaches()
Flush all cashes.
virtual Energy2 mu2() const
Return the value of the dimensional regularization parameter.
virtual unsigned int orderInGs() const
Return the (tree-level) order in in which this matrix element is given.
-*- C++ -*-
vector< PDPtr > PDVector
virtual bool haveOneLoop() const
Return true, if this amplitude is capable of calculating one-loop (QCD) corrections.
virtual bool isBDK() const
Return true, if one loop corrections are given in the conventions of BDK.
bool theDiagonal
True, if a diagonal CKM matrix should be assumed.
MatchboxCurrents.