herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
SpinCorrelationTensor.h
1 // -*- C++ -*-
2 //
3 // SpinCorrelationTensor.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_SpinCorrelationTensor_H
10 #define HERWIG_SpinCorrelationTensor_H
11 
12 #include "ThePEG/Config/Unitsystem.h"
13 
14 namespace Herwig {
15 
16 using namespace ThePEG;
17 
29 
33  double theDiagonal;
34 
38  Lorentz5Momentum theMomentum;
39 
43  Energy2 theScale;
44 
45 public:
46 
52  SpinCorrelationTensor(double diag,
53  const Lorentz5Momentum& p,
54  Energy2 sc)
55  : theDiagonal(diag), theMomentum(p), theScale(sc) {}
56 
57 public:
58 
62  double diagonal() const { return theDiagonal; }
63 
67  const Lorentz5Momentum& momentum() const { return theMomentum; }
68 
72  Energy2 scale() const { return theScale; }
73 
74 public:
75 
81  const LorentzVector<Complex>& right) const {
82  return
83  left.dot(momentum())*right.dot(momentum())/scale();
84  }
85 
86 };
87 
88 }
89 
90 #endif // HERWIG_SpinCorrelationTensor_H
std::complex< double > Complex
auto dot(const LorentzVector< U > &a) const -> decltype(this->t() *a.t())
SpinCorrelationTensor(double diag, const Lorentz5Momentum &p, Energy2 sc)
The standard constructor, giving diagonal part, and vector for off-diagonal components and the scale...
double theDiagonal
The diagonal part.
double diagonal() const
Return the diagonal part.
const Lorentz5Momentum & momentum() const
Return the off-diagonal vector part.
Energy2 theScale
The scale for the off-diagonal part.
-*- C++ -*-
Lorentz5Momentum theMomentum
The vector to define to off-diagonal part.
Energy2 scale() const
Return the scale.
SpinCorrelationTensor represents a spin correlation tensor of the form.
Complex matrixElement(const LorentzVector< Complex > &left, const LorentzVector< Complex > &right) const
Return a matrix element of the diagonal part, by contracting with the given polarization vectors...