APFEL 4.8.0
A PDF evolution library in C++
Loading...
Searching...
No Matches
rotations.h
Go to the documentation of this file.
1//
2// APFEL++ 2017
3//
4// Author: Valerio Bertone: valerio.bertone@cern.ch
5//
6
7#pragma once
8
10#include "apfel/operator.h"
11#include "apfel/set.h"
12
13namespace apfel
14{
35
39 const double RotQCDEvToPhys[6][6] =
40 {
41 {1./6., -1./2., 1./6., 1./12., 1./20., 1./30.}, // T/V --> d^{+-}
42 {1./6., 1./2., 1./6., 1./12., 1./20., 1./30.}, // u^{+-}
43 {1./6., 0., -1./3., 1./12., 1./20., 1./30.}, // s^{+-}
44 {1./6., 0., 0., -1./4., 1./20., 1./30.}, // c^{+-}
45 {1./6., 0., 0., 0., -1./5., 1./30.}, // b^{+-}
46 {1./6., 0., 0., 0., 0., -1./6.} // t^{+-}
47 };
48
53 const double RotQCDEvToPhysFull[13][13] =
54 {
55 { 0., 1./12., -1./12., 0., 0., 0., 0., 0., 0., 0., 0., -1./12., 1./12.},
56 { 0., 1./12., -1./12., 0., 0., 0., 0., 0., 0., -1./10., 1./10., 1./60., -1./60.},
57 { 0., 1./12., -1./12., 0., 0., 0., 0., -1./8., 1./8., 1./40., -1./40., 1./60., -1./60.},
58 { 0., 1./12., -1./12., 0., 0., -1./6., 1./6., 1./24., -1./24., 1./40., -1./40., 1./60., -1./60.},
59 { 0., 1./12., -1./12., 1./4., -1./4., 1./12., -1./12., 1./24., -1./24., 1./40., -1./40., 1./60., -1./60.},
60 { 0., 1./12., -1./12., -1./4., 1./4., 1./12., -1./12., 1./24., -1./24., 1./40., -1./40., 1./60., -1./60.},
61 { 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
62 { 0., 1./12., 1./12., -1./4., -1./4., 1./12., 1./12., 1./24., 1./24., 1./40., 1./40., 1./60., 1./60.},
63 { 0., 1./12., 1./12., 1./4., 1./4., 1./12., 1./12., 1./24., 1./24., 1./40., 1./40., 1./60., 1./60.},
64 { 0., 1./12., 1./12., 0., 0., -1./6., -1./6., 1./24., 1./24., 1./40., 1./40., 1./60., 1./60.},
65 { 0., 1./12., 1./12., 0., 0., 0., 0., -1./8., -1./8., 1./40., 1./40., 1./60., 1./60.},
66 { 0., 1./12., 1./12., 0., 0., 0., 0., 0., 0., -1./10., -1./10., 1./60., 1./60.},
67 { 0., 1./12., 1./12., 0., 0., 0., 0., 0., 0., 0., 0., -1./12., -1./12.}
68 };
69
74 const double RotPhysToQCDEv[6][6] =
75 {
76 { 1., 1., 1., 1., 1., 1.}, // q^{+-} --> Sigma/V
77 { -1., 1., 0., 0., 0., 0.}, // T3/V3
78 { 1., 1., -2., 0., 0., 0.}, // T8/V8
79 { 1., 1., 1., -3., 0., 0.}, // T15/V15
80 { 1., 1., 1., 1., -4., 0.}, // T24/V24
81 { 1., 1., 1., 1., 1., -5.} // T35/V35
82 };
83
88 const double RotPhysToQCDEvFull[13][13] =
89 {
90 // tb bb cb sb ub db g d u s c b t
91 { 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.}, // g
92 { 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1.}, // Sigma
93 { -1., -1., -1., -1., -1., -1., 0., 1., 1., 1., 1., 1., 1.}, // V
94 { 0., 0., 0., 0., 1., -1., 0., -1., 1., 0., 0., 0., 0.}, // T3
95 { 0., 0., 0., 0., -1., 1., 0., -1., 1., 0., 0., 0., 0.}, // V3
96 { 0., 0., 0., -2., 1., 1., 0., 1., 1., -2., 0., 0., 0.}, // T8
97 { 0., 0., 0., 2., -1., -1., 0., 1., 1., -2., 0., 0., 0.}, // V8
98 { 0., 0., -3., 1., 1., 1., 0., 1., 1., 1., -3., 0., 0.}, // T15
99 { 0., 0., 3., -1., -1., -1., 0., 1., 1., 1., -3., 0., 0.}, // V15
100 { 0., -4., 1., 1., 1., 1., 0., 1., 1., 1., 1., -4., 0.}, // T24
101 { 0., 4., -1., -1., -1., -1., 0., 1., 1., 1., 1., -4., 0.}, // V24
102 { -5., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., -5.}, // T35
103 { 5., -1., -1., -1., -1., -1., 0., 1., 1., 1., 1., 1., -5.} // V35
104 };
105
110 const double RotPhysToPlusMinus[13][13] =
111 {
112 // tb bb cb sb ub db g d u s c b t
113 { 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.}, // g
114 { 0., 0., 0., 0., 0., 1., 0., 1., 0., 0., 0., 0., 0.}, // d+
115 { 0., 0., 0., 0., 0., -1., 0., 1., 0., 0., 0., 0., 0.}, // d-
116 { 0., 0., 0., 0., 1., 0., 0., 0., 1., 0., 0., 0., 0.}, // u+
117 { 0., 0., 0., 0., -1., 0., 0., 0., 1., 0., 0., 0., 0.}, // u-
118 { 0., 0., 0., 1., 0., 0., 0., 0., 0., 1., 0., 0., 0.}, // s+
119 { 0., 0., 0., -1., 0., 0., 0., 0., 0., 1., 0., 0., 0.}, // s-
120 { 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.}, // c+
121 { 0., 0., -1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.}, // c-
122 { 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.}, // b+
123 { 0., -1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.}, // b-
124 { 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.}, // t+
125 { -1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.} // t-
126 };
127
132 const double RotPlusMinusToPhys[13][13] =
133 {
134 // g d+ d- u+ u- s+ s- c+ c- b+ b- t+ t-
135 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5, -0.5}, // tb
136 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5, -0.5, 0., 0.}, // bb
137 { 0., 0., 0., 0., 0., 0., 0., 0.5, -0.5, 0., 0., 0., 0.}, // cb
138 { 0., 0., 0., 0., 0., 0.5, -0.5, 0., 0., 0., 0., 0., 0.}, // sb
139 { 0., 0., 0., 0.5, -0.5, 0., 0., 0., 0., 0., 0., 0., 0.}, // ub
140 { 0., 0.5, -0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}, // db
141 { 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}, // g
142 { 0., 0.5, 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}, // d
143 { 0., 0., 0., 0.5, 0.5, 0., 0., 0., 0., 0., 0., 0., 0.}, // u
144 { 0., 0., 0., 0., 0., 0.5, 0.5, 0., 0., 0., 0., 0., 0.}, // s
145 { 0., 0., 0., 0., 0., 0., 0., 0.5, 0.5, 0., 0., 0., 0.}, // c
146 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5, 0.5, 0., 0.}, // b
147 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5, 0.5} // t
148 };
149
155 std::map<int, double> PhysToQCDEv(std::map<int, double> const& InPhysMap);
156
164 Set<Distribution> PhysToQCDEv(std::map<int, Distribution> const& InPhysMap, int const& nf);
165
173 Set<Operator> PhysToQCDEv(std::map<int, Operator> const& InPhysMap, int const& nf);
174
180 std::map<int, double> QCDEvToPhys(std::map<int, double> const& QCDEvMap);
181
188 std::map<int, Distribution> QCDEvToPhys(std::map<int, Distribution> const& QCDEvMap);
189
196 std::map<int, Operator> QCDEvToPhys(std::map<int, Operator> const& QCDEvMap);
197
203 std::map<int, double> PhysToPlusMinus(std::map<int, double> const& InPhysMap);
204
210 std::map<int, double> PlusMinusToPhys(std::map<int, double> const& PlusMinusMap);
211
218 std::map<int, Distribution> PlusMinusToPhys(std::map<int, Distribution> const& PlusMinusMap);
220}
The Set template class allocates a collection of objects of type T along the ConvolutionMap and provi...
Definition set.h:22
Namespace for all APFEL++ functions and classes.
Definition alphaqcd.h:14
std::map< int, double > PlusMinusToPhys(std::map< int, double > const &PlusMinusMap)
Rotation from to the PlusMinus basis to the physical basis.
const double RotPhysToQCDEv[6][6]
Rotation matrix from the physical to the QCD evolution basis. Inverse of RotQCDEvToPhys.
Definition rotations.h:74
std::map< int, double > QCDEvToPhys(std::map< int, double > const &QCDEvMap)
Rotation from the QCD evolution to the physical basis.
const double RotQCDEvToPhysFull[13][13]
Rotation matrix from the QCD evolution to the physical basis for the full bases. Inverse of RotPhysTo...
Definition rotations.h:53
const double RotPlusMinusToPhys[13][13]
Rotation matrix from the basis of q_{+/-} = q +/- qbar to the physical basis. Inverse of RotPhysToPlu...
Definition rotations.h:132
const double RotPhysToQCDEvFull[13][13]
Rotation matrix from the physical to the QCD evolution basis for the full bases. Inverse of RotQCDEvT...
Definition rotations.h:88
const double RotPhysToPlusMinus[13][13]
Rotation matrix from the physical basis to the basis of q_{+/-} = q +/- qbar.
Definition rotations.h:110
const double RotQCDEvToPhys[6][6]
Rotation matrix from the QCD evolution to the physical basis. Inverse of RotPhysToQCDEv.
Definition rotations.h:39
std::map< int, double > PhysToQCDEv(std::map< int, double > const &InPhysMap)
Rotation from the physical to the QCD evolution basis.
std::map< int, double > PhysToPlusMinus(std::map< int, double > const &InPhysMap)
Rotation from the physical to the PlusMinus basis.