File indexing completed on 2026-06-02 08:17:14
0001
0002
0003
0004
0005
0006
0007 #pragma once
0008
0009 #include "apfel/distribution.h"
0010 #include "apfel/operator.h"
0011 #include "apfel/set.h"
0012
0013 namespace apfel
0014 {
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039 const double RotQCDEvToPhys[6][6] =
0040 {
0041 {1./6., -1./2., 1./6., 1./12., 1./20., 1./30.},
0042 {1./6., 1./2., 1./6., 1./12., 1./20., 1./30.},
0043 {1./6., 0., -1./3., 1./12., 1./20., 1./30.},
0044 {1./6., 0., 0., -1./4., 1./20., 1./30.},
0045 {1./6., 0., 0., 0., -1./5., 1./30.},
0046 {1./6., 0., 0., 0., 0., -1./6.}
0047 };
0048
0049
0050
0051
0052
0053 const double RotQCDEvToPhysFull[13][13] =
0054 {
0055 { 0., 1./12., -1./12., 0., 0., 0., 0., 0., 0., 0., 0., -1./12., 1./12.},
0056 { 0., 1./12., -1./12., 0., 0., 0., 0., 0., 0., -1./10., 1./10., 1./60., -1./60.},
0057 { 0., 1./12., -1./12., 0., 0., 0., 0., -1./8., 1./8., 1./40., -1./40., 1./60., -1./60.},
0058 { 0., 1./12., -1./12., 0., 0., -1./6., 1./6., 1./24., -1./24., 1./40., -1./40., 1./60., -1./60.},
0059 { 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.},
0060 { 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.},
0061 { 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
0062 { 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.},
0063 { 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.},
0064 { 0., 1./12., 1./12., 0., 0., -1./6., -1./6., 1./24., 1./24., 1./40., 1./40., 1./60., 1./60.},
0065 { 0., 1./12., 1./12., 0., 0., 0., 0., -1./8., -1./8., 1./40., 1./40., 1./60., 1./60.},
0066 { 0., 1./12., 1./12., 0., 0., 0., 0., 0., 0., -1./10., -1./10., 1./60., 1./60.},
0067 { 0., 1./12., 1./12., 0., 0., 0., 0., 0., 0., 0., 0., -1./12., -1./12.}
0068 };
0069
0070
0071
0072
0073
0074 const double RotPhysToQCDEv[6][6] =
0075 {
0076 { 1., 1., 1., 1., 1., 1.},
0077 { -1., 1., 0., 0., 0., 0.},
0078 { 1., 1., -2., 0., 0., 0.},
0079 { 1., 1., 1., -3., 0., 0.},
0080 { 1., 1., 1., 1., -4., 0.},
0081 { 1., 1., 1., 1., 1., -5.}
0082 };
0083
0084
0085
0086
0087
0088 const double RotPhysToQCDEvFull[13][13] =
0089 {
0090
0091 { 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.},
0092 { 1., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., 1.},
0093 { -1., -1., -1., -1., -1., -1., 0., 1., 1., 1., 1., 1., 1.},
0094 { 0., 0., 0., 0., 1., -1., 0., -1., 1., 0., 0., 0., 0.},
0095 { 0., 0., 0., 0., -1., 1., 0., -1., 1., 0., 0., 0., 0.},
0096 { 0., 0., 0., -2., 1., 1., 0., 1., 1., -2., 0., 0., 0.},
0097 { 0., 0., 0., 2., -1., -1., 0., 1., 1., -2., 0., 0., 0.},
0098 { 0., 0., -3., 1., 1., 1., 0., 1., 1., 1., -3., 0., 0.},
0099 { 0., 0., 3., -1., -1., -1., 0., 1., 1., 1., -3., 0., 0.},
0100 { 0., -4., 1., 1., 1., 1., 0., 1., 1., 1., 1., -4., 0.},
0101 { 0., 4., -1., -1., -1., -1., 0., 1., 1., 1., 1., -4., 0.},
0102 { -5., 1., 1., 1., 1., 1., 0., 1., 1., 1., 1., 1., -5.},
0103 { 5., -1., -1., -1., -1., -1., 0., 1., 1., 1., 1., 1., -5.}
0104 };
0105
0106
0107
0108
0109
0110 const double RotPhysToPlusMinus[13][13] =
0111 {
0112
0113 { -1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.},
0114 { 0., -1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.},
0115 { 0., 0., -1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.},
0116 { 0., 0., 0., -1., 0., 0., 0., 0., 0., 1., 0., 0., 0.},
0117 { 0., 0., 0., 0., -1., 0., 0., 0., 1., 0., 0., 0., 0.},
0118 { 0., 0., 0., 0., 0., -1., 0., 1., 0., 0., 0., 0., 0.},
0119 { 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.},
0120 { 0., 0., 0., 0., 0., 1., 0., 1., 0., 0., 0., 0., 0.},
0121 { 0., 0., 0., 0., 1., 0., 0., 0., 1., 0., 0., 0., 0.},
0122 { 0., 0., 0., 1., 0., 0., 0., 0., 0., 1., 0., 0., 0.},
0123 { 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.},
0124 { 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.},
0125 { 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.},
0126 };
0127
0128
0129
0130
0131
0132 const double RotPlusMinusToPhys[13][13] =
0133 {
0134
0135 {-0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5},
0136 { 0., -0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5, 0. },
0137 { 0., 0., -0.5, 0., 0., 0., 0., 0., 0., 0., 0.5, 0., 0. },
0138 { 0., 0., 0., -0.5, 0., 0., 0., 0., 0., 0.5, 0., 0., 0. },
0139 { 0., 0., 0., 0., -0.5, 0., 0., 0., 0.5, 0., 0., 0., 0. },
0140 { 0., 0., 0., 0., 0., -0.5, 0., 0.5, 0., 0., 0., 0., 0. },
0141 { 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0. },
0142 { 0., 0., 0., 0., 0., 0.5, 0., 0.5, 0., 0., 0., 0., 0. },
0143 { 0., 0., 0., 0., 0.5, 0., 0., 0., 0.5, 0., 0., 0., 0. },
0144 { 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0.5, 0., 0., 0. },
0145 { 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0.5, 0., 0. },
0146 { 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5, 0. },
0147 { 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5}
0148 };
0149
0150
0151
0152
0153
0154 const double RotPhysToPlusMinusQCDQED[20][20] =
0155 {
0156
0157 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 1.},
0158 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 1., 0.},
0159 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 0.},
0160 { 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.},
0161 { 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
0162 { 0., 0., 0., 0., 1., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
0163 { 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.},
0164 { 0., 0., 0., 1., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
0165 { 0., 0., 0., 0., 0., 1., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
0166 { 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
0167 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.},
0168 { 0., 0., 0., 0., 0., -1., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
0169 { 0., 0., 0., -1., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
0170 { 0., -1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.},
0171 { 0., 0., 0., 0., -1., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
0172 { 0., 0., -1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
0173 { -1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.},
0174 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., -1., 0., 1., 0., 0.},
0175 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., -1., 0., 0., 0., 1., 0.},
0176 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., -1., 0., 0., 0., 0., 0., 1.}
0177 };
0178
0179
0180
0181
0182
0183
0184 const double RotPlusMinusQCDQEDToPhys[20][20] =
0185 {
0186
0187 { 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., -0.5, 0., 0., 0. },
0188 { 0., 0., 0., 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0., -0.5, 0., 0., 0., 0., 0., 0. },
0189 { 0., 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., -0.5, 0., 0., 0., 0. },
0190 { 0., 0., 0., 0., 0., 0., 0., 0.5, 0., 0., 0., 0., -0.5, 0., 0., 0., 0., 0., 0., 0. },
0191 { 0., 0., 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0., -0.5, 0., 0., 0., 0., 0. },
0192 { 0., 0., 0., 0., 0., 0., 0., 0., 0.5, 0., 0., -0.5, 0., 0., 0., 0., 0., 0., 0., 0. },
0193 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
0194 { 0., 0., 0., 0., 0., 0., 0., 0., 0.5, 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0. },
0195 { 0., 0., 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0.5, 0., 0., 0., 0., 0. },
0196 { 0., 0., 0., 0., 0., 0., 0., 0.5, 0., 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0. },
0197 { 0., 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5, 0., 0., 0., 0. },
0198 { 0., 0., 0., 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0. },
0199 { 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5, 0., 0., 0. },
0200 { 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., -0.5},
0201 { 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., -0.5, 0. },
0202 { 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., -0.5, 0., 0. },
0203 { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
0204 { 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5, 0., 0. },
0205 { 0., 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5, 0. },
0206 { 0.5, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.5}
0207 };
0208
0209
0210
0211
0212
0213
0214 std::map<int, double> PhysToQCDEv(std::map<int, double> const& InPhysMap);
0215
0216
0217
0218
0219
0220
0221
0222 std::map<int, Distribution> PhysToQCDEv(std::map<int, Distribution> const& InPhysMap);
0223
0224
0225
0226
0227
0228
0229
0230
0231 Set<Distribution> PhysToQCDEv(std::map<int, Distribution> const& InPhysMap, int const& nf);
0232
0233
0234
0235
0236
0237
0238
0239
0240 Set<Operator> PhysToQCDEv(std::map<int, Operator> const& InPhysMap, int const& nf);
0241
0242
0243
0244
0245
0246
0247 std::map<int, double> QCDEvToPhys(std::map<int, double> const& QCDEvMap);
0248
0249
0250
0251
0252
0253
0254
0255 std::map<int, Distribution> QCDEvToPhys(std::map<int, Distribution> const& QCDEvMap);
0256
0257
0258
0259
0260
0261
0262
0263 std::map<int, Operator> QCDEvToPhys(std::map<int, Operator> const& QCDEvMap);
0264
0265
0266
0267
0268
0269
0270 std::map<int, double> PhysToPlusMinus(std::map<int, double> const& InPhysMap);
0271
0272
0273
0274
0275
0276
0277
0278 std::map<int, Distribution> PhysToPlusMinus(std::map<int, Distribution> const& InPhysMap);
0279
0280
0281
0282
0283
0284
0285 std::map<int, double> PlusMinusToPhys(std::map<int, double> const& PlusMinusMap);
0286
0287
0288
0289
0290
0291
0292
0293 std::map<int, Distribution> PlusMinusToPhys(std::map<int, Distribution> const& PlusMinusMap);
0294
0295
0296
0297
0298
0299
0300
0301 std::map<int, double> PlusMinusQCDQEDToPhys(std::map<int, double> const& PlusMinusMap);
0302
0303
0304
0305
0306
0307
0308
0309
0310 std::map<int, Distribution> PlusMinusQCDQEDToPhys(std::map<int, Distribution> const& PlusMinusMap);
0311
0312
0313
0314
0315
0316
0317
0318 std::map<int, double> PhysToPlusMinusQCDQED(std::map<int, double> const& InPhysMap);
0319
0320
0321
0322
0323
0324
0325
0326 std::map<int, Distribution> PhysToPlusMinusQCDQED(std::map<int, Distribution> const& InPhysMap);
0327
0328 }