herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MatchboxAmplitudelnuqqbarqqbar.h
1// -*- C++ -*-
2//
3// MatchboxAmplitudelnuqqbarqqbar.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_MatchboxAmplitudelnuqqbarqqbar_H
10#define Herwig_MatchboxAmplitudelnuqqbarqqbar_H
11//
12// This is the declaration of the MatchboxAmplitudelnuqqbarqqbar class.
13//
14
15#include "Herwig/MatrixElement/Matchbox/Base/MatchboxAmplitude.h"
16#include "Herwig/MatrixElement/Matchbox/Builtin/Amplitudes/MatchboxCurrents.h"
17#include "Herwig/MatrixElement/Matchbox/Utility/SU2Helper.h"
18#include "ThePEG/StandardModel/StandardModelBase.h"
19#include "ThePEG/Interface/ClassDocumentation.h"
20#include "ThePEG/Interface/Switch.h"
21#include "ThePEG/Interface/Parameter.h"
22#include "ThePEG/EventRecord/Particle.h"
23#include "ThePEG/Repository/UseRandom.h"
24#include "ThePEG/Repository/EventGenerator.h"
25#include "ThePEG/Utilities/DescribeClass.h"
26#include "ThePEG/Persistency/PersistentOStream.h"
27#include "ThePEG/Persistency/PersistentIStream.h"
28#include "ThePEG/PDT/EnumParticles.h"
29
30namespace Herwig {
31
32using namespace ThePEG;
33
41
42public:
43
48
53 virtual unsigned int orderInGs() const { return 2; }
54
59 virtual unsigned int orderInGem() const { return 2; }
60
65 virtual bool haveOneLoop() const { return false; }
66
70 virtual bool canHandle(const PDVector&) const;
71
76 virtual void prepareAmplitudes(Ptr<MatchboxMEBase>::tcptr);
77
82 virtual Complex evaluate(size_t, const vector<int>&, Complex&);
83
88 virtual bool isBDK() const { return true; }
89
95 virtual Energy2 mu2() const { return lastSHat(); }
96
100 virtual void flushCaches() {
103 }
104
110
116 void persistentInput(PersistentIStream & is, int version);
117
124 static void Init();
125
126protected:
127
132 virtual IBPtr clone() const;
133
138 virtual IBPtr fullclone() const;
139
145 virtual void doinit();
146
151 virtual void doinitrun();
152
153private:
154
160
164 vector< vector<Complex> > theCKM;
165
171
172};
173
174}
175
176#endif /* Herwig_MatchboxAmplitudelnuqqbarqqbar_H */
MatchboxAmplitude is the base class for amplitude implementations inside Matchbox.
virtual void flushCaches()
Flush all cashes.
virtual unsigned int orderInGs() const
Return the (tree-level) order in in which this matrix element is given.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void doinitrun()
Initialize this object.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual Energy2 mu2() const
Return the value of the dimensional regularization parameter.
MatchboxAmplitudelnuqqbarqqbar()
The default constructor.
virtual bool canHandle(const PDVector &) const
Return true, if this amplitude can handle the given process.
virtual void prepareAmplitudes(Ptr< MatchboxMEBase >::tcptr)
Calculate the tree level amplitudes for the phasespace point stored in lastXComb.
bool theDiagonal
True, if a diagonal CKM matrix should be assumed.
virtual bool isBDK() const
Return true, if one loop corrections are given in the conventions of BDK.
virtual Complex evaluate(size_t, const vector< int > &, Complex &)
Evaluate the amplitude for the given colour tensor id and helicity assignment.
virtual unsigned int orderInGem() const
Return the (tree-level) order in in which this matrix element is given.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual bool haveOneLoop() const
Return true, if this amplitude is capable of calculating one-loop (QCD) corrections.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
MatchboxAmplitudelnuqqbarqqbar & operator=(const MatchboxAmplitudelnuqqbarqqbar &)=delete
The assignment operator is private and must never be called.
static void Init()
The standard Init function used to initialize the interfaces.
-*- C++ -*-
vector< PDPtr > PDVector
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr