herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
Matchbox
ColorFull
Orthogonal_basis.h
1
/*
2
* Orthogonal_basis.h
3
* Contains the declarations of the class Orthogonal_basis, related types and operators.
4
* Created on: May 25, 2013
5
* Author: Malin Sjodahl
6
*/
7
8
#ifndef COLORFULL_Orthogonal_basis_h
9
#define COLORFULL_Orthogonal_basis_h
10
11
12
#include "Col_basis.h"
13
14
15
namespace
ColorFull {
16
22
class
Orthogonal_basis
:
public
Col_basis
{
23
24
public
:
27
Orthogonal_basis
():
Col_basis
(){
28
orthogonal_basis =
true
;
29
}
30
33
dvec
diagonal_d_spm
;
34
37
Poly_vec
diagonal_P_spm
;
38
39
40
/******************** Functions for scalar products **********************/
41
45
void
scalar_product_matrix
();
46
52
void
diagonal_scalar_product_matrix
(
bool
save_P_diagonal_spm,
bool
save_d_diagonal_spm,
bool
use_mem );
53
57
Poly_vec
decompose
(
const
Col_amp
& Ca );
58
64
Polynomial
scalar_product
(
const
Col_amp
& Ca1,
const
Col_amp
& Ca2 );
65
72
cnum
scalar_product_num
(
const
Col_amp
& Ca1,
const
Col_amp
& Ca2 );
73
78
cnum
scalar_product_num
(
const
cvec & v1,
const
cvec & v2 );
79
80
81
/******************** Functions for reading and writing **********************/
82
86
std::string
diagonal_spm_file_name
(
const
bool
leading,
const
bool
poly )
const
;
87
89
void
write_out_diagonal_d_spm
( std::string filename )
const
;
90
92
void
write_out_diagonal_d_spm
( )
const
;
93
95
void
write_out_diagonal_P_spm
( std::string filename )
const
;
96
98
void
write_out_diagonal_P_spm
( )
const
;
99
104
void
write_out_diagonal_spm
(
const
dvec & dv,
const
bool
leading )
const
;
105
110
void
write_out_diagonal_spm
(
const
Poly_vec
& pv,
const
bool
leading )
const
;
111
112
private
:
113
120
void
scalar_product_matrix
(
bool
save_P_spm,
bool
save_d_spm,
bool
use_mem );
121
122
123
};
// end class Orthogonal_basis
124
125
}
// end namespace ColorFull
126
127
128
#endif
/* COLORFULL_Orthogonal_basis_h */
ColorFull::Col_amp
The full color amplitude is Scalar + Cs1+Cs2+Cs3... Col_amp is a class to contain info on several Col...
Definition:
Col_amp.h:24
ColorFull::Col_basis
To contain a color basis, where each basis vector is a Col_amp.
Definition:
Col_basis.h:24
ColorFull::Orthogonal_basis
This class is for containing orthogonal bases, i.e.
Definition:
Orthogonal_basis.h:22
ColorFull::Orthogonal_basis::scalar_product_num
cnum scalar_product_num(const cvec &v1, const cvec &v2)
Calculates the scalar product between decomposed amplitudes v1, V2 using the diagonal_d_spm diagonal ...
ColorFull::Orthogonal_basis::write_out_diagonal_spm
void write_out_diagonal_spm(const dvec &dv, const bool leading) const
Function for writing out a dvec (the diagonal scalar products, diagonal_d_spm) to a file with standar...
ColorFull::Orthogonal_basis::scalar_product_matrix
void scalar_product_matrix()
Calculates the scalar product matrix assuming the basis to be orthogonal.
ColorFull::Orthogonal_basis::diagonal_scalar_product_matrix
void diagonal_scalar_product_matrix(bool save_P_diagonal_spm, bool save_d_diagonal_spm, bool use_mem)
Calculates the diagonal entries in the scalar product matrix, and (depending on arguments),...
ColorFull::Orthogonal_basis::scalar_product_matrix
void scalar_product_matrix(bool save_P_spm, bool save_d_spm, bool use_mem)
Function for calculating the scalar products matrix.
ColorFull::Orthogonal_basis::write_out_diagonal_P_spm
void write_out_diagonal_P_spm(std::string filename) const
Writes out diagonal_P_spm to the file filename.
ColorFull::Orthogonal_basis::diagonal_P_spm
Poly_vec diagonal_P_spm
To contain information about scalar products as a Poly_vec, i.e., entry i is the square of vector i.
Definition:
Orthogonal_basis.h:37
ColorFull::Orthogonal_basis::write_out_diagonal_P_spm
void write_out_diagonal_P_spm() const
Writes out diagonal_P_spm to the standard filename, see diagonal_spm_file_name.
ColorFull::Orthogonal_basis::write_out_diagonal_spm
void write_out_diagonal_spm(const Poly_vec &pv, const bool leading) const
Function for writing out a Poly_vec (the diagonal scalar products, diagonal_d_spm) to a file with sta...
ColorFull::Orthogonal_basis::write_out_diagonal_d_spm
void write_out_diagonal_d_spm(std::string filename) const
Writes out diagonal_d_spm to the file filename.
ColorFull::Orthogonal_basis::write_out_diagonal_d_spm
void write_out_diagonal_d_spm() const
Writes out diagonal_d_spm to the standard filename, see diagonal_spm_file_name.
ColorFull::Orthogonal_basis::diagonal_spm_file_name
std::string diagonal_spm_file_name(const bool leading, const bool poly) const
Creates a default filename for writing out diagonal scalar products.
ColorFull::Orthogonal_basis::scalar_product_num
cnum scalar_product_num(const Col_amp &Ca1, const Col_amp &Ca2)
Function for calculating scalar products given the information about the basis and the scalar product...
ColorFull::Orthogonal_basis::Orthogonal_basis
Orthogonal_basis()
Default constructor, puts private variable orthogonal_basis=true and calls the constructor of Col_bas...
Definition:
Orthogonal_basis.h:27
ColorFull::Orthogonal_basis::scalar_product
Polynomial scalar_product(const Col_amp &Ca1, const Col_amp &Ca2)
Function for calculating scalar products given the information about the basis and the scalar product...
ColorFull::Orthogonal_basis::decompose
Poly_vec decompose(const Col_amp &Ca)
The decomposition of a Col_amp in an orthogonal basis is done by calculating scalar products and divi...
ColorFull::Orthogonal_basis::diagonal_d_spm
dvec diagonal_d_spm
To contain information about scalar products as a dvec, i.e., entry i is the square of vector i.
Definition:
Orthogonal_basis.h:33
ColorFull::Poly_vec
Class for containing vector of Polynomials, and functions for Polynomial vectors.
Definition:
Poly_vec.h:25
ColorFull::Polynomial
For containing a Polynomial (in Nc, CF and TR), as a sum of Monomials.
Definition:
Polynomial.h:30
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6