herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
DecayMatrixElement.h
1
// -*- C++ -*-
2
#ifndef Herwig_DecayMatrixElement_H
3
#define Herwig_DecayMatrixElement_H
4
//
5
// This is the declaration of the DecayMatrixElement class.
6
//
7
8
#include "ThePEG/Pointer/ReferenceCounted.h"
9
#include <
ThePEG/Config/ThePEG.h
>
10
#include <
ThePEG/Helicity/HelicityDefinitions.h
>
11
#include <ThePEG/EventRecord/RhoDMatrix.h>
12
#include "DecayMatrixElement.fh"
13
14
namespace
Herwig
{
15
16
using namespace
ThePEG
;
17
21
class
DecayMatrixElement
:
public
Pointer::ReferenceCounted
{
22
23
public
:
24
30
DecayMatrixElement
(
unsigned
int
ntemp=999,
PDT::Spin
spin =
PDT::SpinUndefined
)
31
:
nOut_
(ntemp),
inSpin_
(spin) {}
32
36
virtual
~DecayMatrixElement
();
38
39
public
:
40
48
PDT::Spin
inspin
()
const
{
return
inSpin_
;}
49
53
const
vector<PDT::Spin> &
outspin
()
const
{
return
outSpin_
;}
55
59
unsigned
int
nOut
()
const
{
return
nOut_
;}
60
69
virtual
RhoDMatrix
calculateDMatrix
(
const
vector<RhoDMatrix> & rhoout)
const
= 0;
70
77
virtual
RhoDMatrix
calculateRhoMatrix
(
int
ipart,
const
RhoDMatrix
& rhoin,
78
const
vector<RhoDMatrix> & rhoout)
const
= 0;
79
85
virtual
Complex
contract
(
const
RhoDMatrix
& rhoin)
const
= 0;
86
87
// /**
88
// * Contract the matrix element with the \f$\rho\f$ matrix of the
89
// * incoming particle. The spins of the decay products are summed over.
90
// * @param con The conjugate matrix elemetn for the contraction
91
// * @param rhoin The \f$\rho\f$ matrix for the decaying particle.
92
// */
93
// Complex contract(const DecayMatrixElement & con,
94
// const RhoDMatrix & rhoin);
96
97
public
:
98
109
virtual
Complex
operator ()
(
unsigned
int
inhel,
unsigned
int
outhel1,
110
unsigned
int
outhel2)
const
= 0;
111
118
virtual
Complex
&
operator ()
(
unsigned
int
inhel,
unsigned
int
outhel1,
119
unsigned
int
outhel2) = 0;
120
128
virtual
Complex
operator ()
(
unsigned
int
inhel,
unsigned
int
outhel1,
129
unsigned
int
outhel2,
unsigned
int
outhel3)
const
= 0;
130
138
virtual
Complex
&
operator ()
(
unsigned
int
inhel,
unsigned
int
outhel1,
139
unsigned
int
outhel2,
unsigned
int
outhel3) = 0;
140
149
virtual
Complex
operator ()
(
unsigned
int
inhel,
unsigned
int
outhel1,
150
unsigned
int
outhel2,
unsigned
int
outhel3,
151
unsigned
int
outhel4)
const
= 0;
152
161
virtual
Complex
&
operator ()
(
unsigned
int
inhel,
unsigned
int
outhel1,
162
unsigned
int
outhel2,
unsigned
int
outhel3,
163
unsigned
int
outhel4) = 0;
164
174
virtual
Complex
operator ()
(
unsigned
int
inhel,
unsigned
int
outhel1,
175
unsigned
int
outhel2,
unsigned
int
outhel3,
176
unsigned
int
outhel4,
unsigned
int
outhel5)
const
= 0;
177
187
virtual
Complex
&
operator ()
(
unsigned
int
inhel,
unsigned
int
outhel1,
188
unsigned
int
outhel2,
unsigned
int
outhel3,
189
unsigned
int
outhel4,
unsigned
int
outhel5) = 0;
190
201
virtual
Complex
operator ()
(
unsigned
int
inhel,
unsigned
int
outhel1,
202
unsigned
int
outhel2,
unsigned
int
outhel3,
203
unsigned
int
outhel4,
unsigned
int
outhel5,
204
unsigned
int
outhel6)
const
= 0;
205
216
virtual
Complex
&
operator ()
(
unsigned
int
inhel,
unsigned
int
outhel1,
217
unsigned
int
outhel2,
unsigned
int
outhel3,
218
unsigned
int
outhel4,
unsigned
int
outhel5,
219
unsigned
int
outhel6) = 0;
220
225
virtual
Complex
operator ()
(
const
vector<unsigned int> & in)
const
= 0;
226
231
virtual
Complex
&
operator ()
(
const
vector<unsigned int> & in) = 0;
233
237
virtual
void
zero
() = 0;
238
239
private
:
240
245
DecayMatrixElement
&
operator=
(
const
DecayMatrixElement
&) =
delete
;
246
247
protected
:
248
252
vector<PDT::Spin> &
outspin
() {
return
outSpin_
;}
253
254
private
:
255
259
unsigned
int
nOut_
;
260
264
PDT::Spin
inSpin_
;
265
269
vector<PDT::Spin>
outSpin_
;
270
271
};
272
273
}
274
275
#endif
/* Herwig_DecayMatrixElement_H */
HelicityDefinitions.h
ThePEG.h
Herwig::DecayMatrixElement
Here is the documentation of the DecayMatrixElement class.
Definition:
DecayMatrixElement.h:21
Herwig::DecayMatrixElement::nOut
unsigned int nOut() const
Get the number of outgoing particles.
Definition:
DecayMatrixElement.h:59
Herwig::DecayMatrixElement::calculateRhoMatrix
virtual RhoDMatrix calculateRhoMatrix(int ipart, const RhoDMatrix &rhoin, const vector< RhoDMatrix > &rhoout) const =0
Calculate the matrix for a given outgoing particle.
Herwig::DecayMatrixElement::inspin
PDT::Spin inspin() const
Access to the spins of the particles.
Definition:
DecayMatrixElement.h:48
Herwig::DecayMatrixElement::~DecayMatrixElement
virtual ~DecayMatrixElement()
The destructor.
Herwig::DecayMatrixElement::calculateDMatrix
virtual RhoDMatrix calculateDMatrix(const vector< RhoDMatrix > &rhoout) const =0
Spin Density matrices.
Herwig::DecayMatrixElement::inSpin_
PDT::Spin inSpin_
Spin of the incoming particle as 2s+1.
Definition:
DecayMatrixElement.h:264
Herwig::DecayMatrixElement::outspin
const vector< PDT::Spin > & outspin() const
Get the spins of the outgoing particles.
Definition:
DecayMatrixElement.h:53
Herwig::DecayMatrixElement::DecayMatrixElement
DecayMatrixElement(unsigned int ntemp=999, PDT::Spin spin=PDT::SpinUndefined)
The default constructor.
Definition:
DecayMatrixElement.h:30
Herwig::DecayMatrixElement::operator=
DecayMatrixElement & operator=(const DecayMatrixElement &)=delete
The assignment operator is private and must never be called.
Herwig::DecayMatrixElement::nOut_
unsigned int nOut_
Number of outgoing particles.
Definition:
DecayMatrixElement.h:259
Herwig::DecayMatrixElement::zero
virtual void zero()=0
Member to zero all the elements for the matrix element.
Herwig::DecayMatrixElement::operator()
virtual Complex operator()(unsigned int inhel, unsigned int outhel1, unsigned int outhel2) const =0
Access to the individual helicity components.
Herwig::DecayMatrixElement::contract
virtual Complex contract(const RhoDMatrix &rhoin) const =0
Contract the matrix element with the matrix of the incoming particle.
Herwig::DecayMatrixElement::outSpin_
vector< PDT::Spin > outSpin_
Spins of the outgoing particles.
Definition:
DecayMatrixElement.h:269
Herwig::DecayMatrixElement::outspin
vector< PDT::Spin > & outspin()
Get the spins of the outgoing particles.
Definition:
DecayMatrixElement.h:252
ThePEG::PDT::Spin
Spin
ThePEG::PDT::SpinUndefined
SpinUndefined
ThePEG::Pointer::ReferenceCounted
ThePEG::RhoDMatrix
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::Complex
std::complex< double > Complex
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6