herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEChargedCurrentDIS.h
1 // -*- C++ -*-
2 #ifndef HERWIG_MEChargedCurrentDIS_H
3 #define HERWIG_MEChargedCurrentDIS_H
4 //
5 // This is the declaration of the MEChargedCurrentDIS class.
6 //
7 
8 #include "DISBase.h"
9 #include "ThePEG/Helicity/Vertex/AbstractFFVVertex.fh"
10 #include "Herwig/MatrixElement/ProductionMatrixElement.h"
11 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
12 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
13 
14 namespace Herwig {
15 
16 using namespace ThePEG;
17 
30 
31 public:
32 
37 
44  virtual unsigned int orderInAlphaS() const;
45 
50  virtual unsigned int orderInAlphaEW() const;
51 
59  virtual double me2() const;
60 
64  virtual void getDiagrams() const;
65 
74  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
75 
84  colourGeometries(tcDiagPtr diag) const;
85 
89  virtual void constructVertex(tSubProPtr);
91 
92 
93 public:
94 
101  void persistentOutput(PersistentOStream & os) const;
102 
108  void persistentInput(PersistentIStream & is, int version);
110 
117  static void Init();
118 
119 protected:
120 
131  double helicityME(vector<SpinorWaveFunction> & f1 ,
132  vector<SpinorWaveFunction> & f2,
133  vector<SpinorBarWaveFunction> & a1 ,
134  vector<SpinorBarWaveFunction> & a2,
135  bool lorder, bool qorder,
136  bool me) const;
137 
142  virtual double A(tcPDPtr lin, tcPDPtr lout, tcPDPtr qin, tcPDPtr qout,
143  Energy2 scale) const;
144 
145 protected:
146 
153  virtual IBPtr clone() const {return new_ptr(*this);}
154 
159  virtual IBPtr fullclone() const {return new_ptr(*this);}
161 
162 protected:
163 
171  virtual void doinit();
173 
174 private:
175 
180  MEChargedCurrentDIS & operator=(const MEChargedCurrentDIS &) = delete;
181 
182 private:
183 
187  AbstractFFVVertexPtr _theFFWVertex;
188 
192  unsigned int _maxflavour;
193 
197  unsigned int _massopt;
198 
203 
212 
218 };
219 
220 }
221 
222 #endif /* HERWIG_MEChargedCurrentDIS_H */
unsigned int _maxflavour
The allowed flavours of the incoming quarks.
AbstractFFVVertexPtr _theFFWVertex
Pointer to the vertex for the helicity calculations.
tcPDPtr _wm
Pointer to the .
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual IBPtr clone() const
Make a simple clone of this object.
The storage of the helicity amplitude expression for the matrix element of a hard process...
unsigned int _massopt
Option for the mass of the outgoing quarks.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
tcPDPtr _wp
Pointers to the intermediates resonances.
vector< DiagPtr > DiagramVector
The MEChargedCurrentDIS class provides the matrix elements for charged current DIS.
-*- C++ -*-
ProductionMatrixElement _me
Matrix element for spin correlations.
The DISBase class is the base class for the implementation of DIS type processes including correction...
Definition: DISBase.h:23