herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEGammaGamma2PiPi.h
1// -*- C++ -*-
2#ifndef Herwig_MEGammaGamma2PiPi_H
3#define Herwig_MEGammaGamma2PiPi_H
4//
5// This is the declaration of the MEGammaGamma2PiPi class.
6//
7
8#include "Herwig/MatrixElement/HwMEBase.h"
9#include "Herwig/MatrixElement/ProductionMatrixElement.h"
10#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
11
12namespace Herwig {
13
14using namespace ThePEG;
16
23class MEGammaGamma2PiPi: public HwMEBase {
24
25public:
26
30 MEGammaGamma2PiPi();
31
32public:
33
40 virtual unsigned int orderInAlphaS() const;
41
46 virtual unsigned int orderInAlphaEW() const;
47
55 virtual double me2() const;
56
60 virtual Energy2 scale() const;
61
65 virtual void getDiagrams() const;
66
75 virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
76
85 colourGeometries(tcDiagPtr diag) const;
87
91 virtual void constructVertex(tSubProPtr);
92
93public:
94
101 static void Init();
102
103protected:
104
112 double helicityME(vector<VectorWaveFunction> &p1,vector<VectorWaveFunction> &p2,
113 const vector<Lorentz5Momentum> & momenta,
114 bool calc) const;
115
116protected:
117
124 virtual IBPtr clone() const;
125
130 virtual IBPtr fullclone() const;
132
133private:
134
139 MEGammaGamma2PiPi & operator=(const MEGammaGamma2PiPi &) = delete;
140
141private:
142
146 mutable ProductionMatrixElement me_;
147
148};
149
150}
151
152#endif /* Herwig_MEGammaGamma2PiPi_H */
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr