File indexing completed on 2026-06-02 08:17:13
0001
0002
0003
0004
0005
0006
0007 #pragma once
0008
0009 #include "apfel/expression.h"
0010 #include "apfel/massivezerocoefficientfunctionsunp_sl.h"
0011
0012 #include <vector>
0013
0014 namespace apfel
0015 {
0016
0017
0018
0019
0020
0021
0022
0023
0024 extern"C"
0025 {
0026 double c2log_(double *wr,double *xi);
0027 double cllog_(double *wr,double *xi);
0028 double d2nloq_(double *wr,double *xi);
0029 double dlnloq_(double *wr,double *xi);
0030 double c2nlog_(double *wr,double *xi);
0031 double clnlog_(double *wr,double *xi);
0032 double c2nloq_(double *wr,double *xi);
0033 double clnloq_(double *wr,double *xi);
0034 double c2nlobarg_(double *wr,double *xi);
0035 double clnlobarg_(double *wr,double *xi);
0036 double c2nlobarq_(double *wr,double *xi);
0037 double clnlobarq_(double *wr,double *xi);
0038 }
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060 class Cm21gNC: public Expression
0061 {
0062 public:
0063 Cm21gNC(double const& eta);
0064 double Regular(double const& x) const;
0065 private:
0066 double const _eta;
0067 };
0068
0069
0070
0071
0072 class CmL1gNC: public Expression
0073 {
0074 public:
0075 CmL1gNC(double const& eta);
0076 double Regular(double const& x) const;
0077 private:
0078 double const _eta;
0079 };
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093 class Cm22nsNC: public Expression
0094 {
0095 public:
0096 Cm22nsNC(double const& eta);
0097 double Regular(double const& x) const;
0098 double Local(double const&) const;
0099 private:
0100 double const _eta;
0101 double _adler;
0102 };
0103
0104
0105
0106
0107
0108
0109
0110 class CmL2nsNC: public Expression
0111 {
0112 public:
0113 CmL2nsNC(double const& eta);
0114 double Regular(double const& x) const;
0115 private:
0116 double const _eta;
0117 };
0118
0119
0120
0121
0122
0123 class Cm22gNC: public Expression
0124 {
0125 public:
0126 Cm22gNC(double const& eta);
0127 double Regular(double const& x) const;
0128 private:
0129 double const _eta;
0130 };
0131
0132
0133
0134
0135
0136 class CmL2gNC: public Expression
0137 {
0138 public:
0139 CmL2gNC(double const& eta);
0140 double Regular(double const& x) const;
0141 private:
0142 double const _eta;
0143 };
0144
0145
0146
0147
0148
0149
0150 class Cm22psNC: public Expression
0151 {
0152 public:
0153 Cm22psNC(double const& eta);
0154 double Regular(double const& x) const;
0155 private:
0156 double const _eta;
0157 };
0158
0159
0160
0161
0162
0163
0164 class CmL2psNC: public Expression
0165 {
0166 public:
0167 CmL2psNC(double const& eta);
0168 double Regular(double const& x) const;
0169 private:
0170 double const _eta;
0171 };
0172
0173
0174
0175
0176
0177
0178 class Cm22bargNC: public Expression
0179 {
0180 public:
0181 Cm22bargNC(double const& eta);
0182 double Regular(double const& x) const;
0183 private:
0184 double const _eta;
0185 };
0186
0187
0188
0189
0190
0191
0192 class CmL2bargNC: public Expression
0193 {
0194 public:
0195 CmL2bargNC(double const& eta);
0196 double Regular(double const& x) const;
0197 private:
0198 double const _eta;
0199 };
0200
0201
0202
0203
0204
0205
0206
0207 class Cm22barpsNC: public Expression
0208 {
0209 public:
0210 Cm22barpsNC(double const& eta);
0211 double Regular(double const& x) const;
0212 private:
0213 double const _eta;
0214 };
0215
0216
0217
0218
0219
0220
0221
0222 class CmL2barpsNC: public Expression
0223 {
0224 public:
0225 CmL2barpsNC(double const& eta);
0226 double Regular(double const& x) const;
0227 private:
0228 double const _eta;
0229 };
0230
0231
0232
0233
0234
0235
0236
0237
0238
0239
0240
0241
0242 class Cmth23gNC: public Expression
0243 {
0244 public:
0245 Cmth23gNC(int const& nf, double const& eta, bool const& muterms = true, int const& imod = 0);
0246 double Regular(double const& x) const;
0247 double Delta(double const& x) const;
0248 private:
0249 int const _nf;
0250 double const _eta;
0251 bool const _muterms;
0252 int const _imod;
0253 Cm21gNC const _c21g;
0254 };
0255
0256
0257
0258
0259
0260
0261 class CmthL3gNC: public Expression
0262 {
0263 public:
0264 CmthL3gNC(int const& nf, double const& eta, bool const& muterms = true, int const& imod = 0);
0265 double Regular(double const& x) const;
0266 double Delta(double const& x) const;
0267 private:
0268 int const _nf;
0269 double const _eta;
0270 bool const _muterms;
0271 int const _imod;
0272 CmL1gNC const _cL1g;
0273 };
0274
0275
0276
0277
0278
0279
0280
0281
0282
0283
0284
0285
0286 class Cmsx23gNC: public Expression
0287 {
0288 public:
0289 Cmsx23gNC(int const& nf, double const& eta, bool const& muterms = true, int const& imod = 0);
0290 double Regular(double const& x) const;
0291 double CoefficientLL() const { return _cll; }
0292 double CoefficientNLLCentral() const { return _cnllc; }
0293 double CoefficientNLLVariation() const { return _cnllv; }
0294 private:
0295 int const _nf;
0296 bool const _muterms;
0297 int const _imod;
0298 double _cll;
0299 double _cnllc;
0300 double _cnllv;
0301 };
0302
0303
0304
0305
0306
0307
0308 class Cmsx23psNC: public Expression
0309 {
0310 public:
0311 Cmsx23psNC(int const& nf, double const& eta, bool const& muterms = true, int const& imod = 0);
0312 double Regular(double const& x) const;
0313 double CoefficientLL() const;
0314 double CoefficientNLLCentral() const;
0315 double CoefficientNLLVariation() const;
0316 private:
0317 Cmsx23gNC const _c23g;
0318 };
0319
0320
0321
0322
0323
0324
0325 class CmsxL3gNC: public Expression
0326 {
0327 public:
0328 CmsxL3gNC(int const& nf, double const& eta, bool const& muterms = true, int const& imod = 0);
0329 double Regular(double const& x) const;
0330 double CoefficientLL() const { return _cll; }
0331 double CoefficientNLLCentral() const { return _cnllc; }
0332 double CoefficientNLLVariation() const { return _cnllv; }
0333 private:
0334 int const _nf;
0335 bool const _muterms;
0336 int const _imod;
0337 double _cll;
0338 double _cnllc;
0339 double _cnllv;
0340 };
0341
0342
0343
0344
0345
0346
0347 class CmsxL3psNC: public Expression
0348 {
0349 public:
0350 CmsxL3psNC(int const& nf, double const& eta, bool const& muterms = true, int const& imod = 0);
0351 double Regular(double const& x) const;
0352 double CoefficientLL() const;
0353 double CoefficientNLLCentral() const;
0354 double CoefficientNLLVariation() const;
0355 private:
0356 CmsxL3gNC const _cL3g;
0357 };
0358
0359
0360
0361
0362
0363
0364
0365
0366
0367
0368
0369
0370 class Cm0sx23gNC: public Expression
0371 {
0372 public:
0373 Cm0sx23gNC(int const& nf, double const& eta, bool const& muterms = true, int const& imod = 0);
0374 double Regular(double const& x) const;
0375 double CoefficientLL() const { return _cll; }
0376 double CoefficientNLLCentral() const { return _cnllc; }
0377 double CoefficientNLLVariation() const { return _cnllv; }
0378 private:
0379 int const _nf;
0380 bool const _muterms;
0381 int const _imod;
0382 double _cll;
0383 double _cnllc;
0384 double _cnllv;
0385 };
0386
0387
0388
0389
0390
0391
0392 class Cm0sx23psNC: public Expression
0393 {
0394 public:
0395 Cm0sx23psNC(int const& nf, double const& eta, bool const& muterms = true, int const& imod = 0);
0396 double Regular(double const& x) const;
0397 double CoefficientLL() const;
0398 double CoefficientNLLCentral() const;
0399 double CoefficientNLLVariation() const;
0400 private:
0401 Cm0sx23gNC const _c23g;
0402 };
0403
0404
0405
0406
0407
0408
0409 class Cm0sxL3gNC: public Expression
0410 {
0411 public:
0412 Cm0sxL3gNC(int const& nf, double const& eta, bool const& muterms = true, int const& imod = 0);
0413 double Regular(double const& x) const;
0414 double CoefficientLL() const { return _cll; }
0415 double CoefficientNLLCentral() const { return _cnllc; }
0416 double CoefficientNLLVariation() const { return _cnllv; }
0417 private:
0418 int const _nf;
0419 bool const _muterms;
0420 int const _imod;
0421 double _cll;
0422 double _cnllc;
0423 double _cnllv;
0424 };
0425
0426
0427
0428
0429
0430
0431 class Cm0sxL3psNC: public Expression
0432 {
0433 public:
0434 Cm0sxL3psNC(int const& nf, double const& eta, bool const& muterms = true, int const& imod = 0);
0435 double Regular(double const& x) const;
0436 double CoefficientLL() const;
0437 double CoefficientNLLCentral() const;
0438 double CoefficientNLLVariation() const;
0439 private:
0440 Cm0sxL3gNC const _cL3g;
0441 };
0442
0443
0444
0445
0446
0447
0448
0449
0450
0451
0452
0453
0454
0455
0456
0457
0458 class Cm2a3gNC: public Expression
0459 {
0460 public:
0461 Cm2a3gNC(int const& nf, double const& eta, double const& imodthr = 0, double const& imodasy = 0, double const& damppow = 1, bool const& muterms = true);
0462 double Regular(double const& x) const;
0463 private:
0464 double const _eta;
0465 double const _imodthr;
0466 double const _imodasy;
0467 double const _damppow;
0468 Cmth23gNC const _cmth23g;
0469 Cm023gNC_c const _cm023g_c;
0470 Cm023gNC_l const _cm023g_l;
0471 Cm023gNC_l2 const _cm023g_l2;
0472 Cm023gNC_l3 const _cm023g_l3;
0473 Cmsx23gNC const _cmsx23g;
0474 Cm0sx23gNC const _cm0sx23g;
0475 double _cllsx;
0476 double _cllsx0;
0477 double _cnllcsx;
0478 double _cnllcsx0;
0479 double _cnllvsx;
0480 double _cnllvsx0;
0481 };
0482
0483
0484
0485
0486
0487 class Cm2a3psNC: public Expression
0488 {
0489 public:
0490 Cm2a3psNC(int const& nf, double const& eta, double const& imodasy = 0, double const& damppow = 1, bool const& muterms = true);
0491 double Regular(double const& x) const;
0492 private:
0493 double const _eta;
0494 double const _imodasy;
0495 double const _damppow;
0496 Cm023psNC_c const _cm023ps_c;
0497 Cm023psNC_l const _cm023ps_l;
0498 Cm023psNC_l2 const _cm023ps_l2;
0499 Cm023psNC_l3 const _cm023ps_l3;
0500 Cmsx23psNC const _cmsx23ps;
0501 Cm0sx23psNC const _cm0sx23ps;
0502 double _cllsx;
0503 double _cllsx0;
0504 double _cnllcsx;
0505 double _cnllcsx0;
0506 double _cnllvsx;
0507 double _cnllvsx0;
0508 };
0509
0510
0511
0512
0513
0514 class CmLa3gNC: public Expression
0515 {
0516 public:
0517 CmLa3gNC(int const& nf, double const& eta, double const& imodthr = 0, double const& imodasy = 0, double const& damppow = 1, bool const& muterms = true);
0518 double Regular(double const& x) const;
0519 private:
0520 double const _eta;
0521 double const _imodthr;
0522 double const _imodasy;
0523 double const _damppow;
0524 CmthL3gNC const _cmthL3g;
0525 Cm0L3gNC_c const _cm0L3g_c;
0526 Cm0L3gNC_l const _cm0L3g_l;
0527 Cm0L3gNC_l2 const _cm0L3g_l2;
0528 CmsxL3gNC const _cmsxL3g;
0529 Cm0sxL3gNC const _cm0sxL3g;
0530 double _cllsx;
0531 double _cllsx0;
0532 double _cnllcsx;
0533 double _cnllcsx0;
0534 double _cnllvsx;
0535 double _cnllvsx0;
0536 };
0537
0538
0539
0540
0541
0542 class CmLa3psNC: public Expression
0543 {
0544 public:
0545 CmLa3psNC(int const& nf, double const& eta, double const& imodasy = 0, double const& damppow = 1, bool const& muterms = true);
0546 double Regular(double const& x) const;
0547 private:
0548 double const _eta;
0549 double const _imodasy;
0550 double const _damppow;
0551 Cm0L3psNC_c const _cm0L3ps_c;
0552 Cm0L3psNC_l const _cm0L3ps_l;
0553 Cm0L3psNC_l2 const _cm0L3ps_l2;
0554 CmsxL3psNC const _cmsxL3ps;
0555 Cm0sxL3psNC const _cm0sxL3ps;
0556 double _cllsx;
0557 double _cllsx0;
0558 double _cnllcsx;
0559 double _cnllcsx0;
0560 double _cnllvsx;
0561 double _cnllvsx0;
0562 };
0563
0564
0565
0566
0567
0568
0569
0570
0571
0572
0573
0574
0575
0576
0577
0578
0579
0580
0581
0582
0583
0584
0585
0586 class Cm11ns: public Expression
0587 {
0588 public:
0589 Cm11ns(double const& m1, double const& m2, double const& Q, double const& Splus, double const& Sminus);
0590 double Regular(double const& x) const;
0591 double Singular(double const& x) const;
0592 double Local(double const& x) const;
0593 private:
0594 double _R(double const& x) const;
0595 double const _m1;
0596 double const _m2;
0597 double const _Splus;
0598 double const _Sminus;
0599 double const _m12;
0600 double const _m22;
0601 double const _Q2;
0602 double const _Del;
0603 double const _Del2;
0604 double const _Spp;
0605 double const _Spm;
0606 double const _Smp;
0607 double const _fact1;
0608 double _S1;
0609 double _V1;
0610 double _R1;
0611 };
0612
0613
0614
0615
0616
0617
0618 class Cm21ns: public Expression
0619 {
0620 public:
0621 Cm21ns(double const& m1, double const& m2, double const& Q, double const& Splus, double const& Sminus);
0622 double Regular(double const& x) const;
0623 double Singular(double const& x) const;
0624 double Local(double const& x) const;
0625 private:
0626 double _R(double const& x) const;
0627 double const _m1;
0628 double const _m2;
0629 double const _Splus;
0630 double const _Sminus;
0631 double const _m12;
0632 double const _m22;
0633 double const _Q2;
0634 double const _Del;
0635 double const _Del2;
0636 double const _Spp;
0637 double const _Spm;
0638 double const _Smp;
0639 double const _fact2;
0640 double _S2;
0641 double _V2;
0642 double _R1;
0643 };
0644
0645
0646
0647
0648
0649
0650 class Cm31ns: public Expression
0651 {
0652 public:
0653 Cm31ns(double const& m1, double const& m2, double const& Q, double const& Rplus, double const& Rminus);
0654 double Regular(double const& x) const;
0655 double Singular(double const& x) const;
0656 double Local(double const& x) const;
0657 private:
0658 double _R(double const& x) const;
0659 double const _m1;
0660 double const _m2;
0661 double const _Rplus;
0662 double const _Rminus;
0663 double const _m12;
0664 double const _m22;
0665 double const _Q2;
0666 double const _Del;
0667 double const _Del2;
0668 double const _Spp;
0669 double const _Spm;
0670 double const _Smp;
0671 double const _fact3;
0672 double _S3;
0673 double _V3;
0674 double _R1;
0675 };
0676
0677
0678
0679
0680
0681
0682 class CmL1ns: public Expression
0683 {
0684 public:
0685 CmL1ns(double const& m1, double const& m2, double const& Q, double const& Splus, double const& Sminus);
0686 double Regular(double const& x) const;
0687 double Singular(double const& x) const;
0688 double Local(double const& x) const;
0689 private:
0690 Cm11ns const _C1;
0691 Cm21ns const _C2;
0692 double const _factL;
0693 };
0694
0695
0696
0697
0698
0699
0700
0701
0702
0703
0704
0705
0706
0707
0708
0709
0710
0711
0712
0713
0714
0715 class Cm21qCC: public Expression
0716 {
0717 public:
0718 Cm21qCC(double const& lambda);
0719 double Regular(double const& x) const;
0720 double Singular(double const& x) const;
0721 double Local(double const& x) const;
0722 private:
0723 double const _lambda;
0724 };
0725
0726
0727
0728
0729 class Cm21gCC: public Expression
0730 {
0731 public:
0732 Cm21gCC(double const& lambda);
0733 double Regular(double const& x) const;
0734 private:
0735 double const _lambda;
0736 };
0737
0738
0739
0740
0741 class CmL1qCC: public Expression
0742 {
0743 public:
0744 CmL1qCC(double const& lambda);
0745 double Regular(double const& x) const;
0746 double Singular(double const& x) const;
0747 double Local(double const& x) const;
0748 private:
0749 double const _lambda;
0750 };
0751
0752
0753
0754
0755 class CmL1gCC: public Expression
0756 {
0757 public:
0758 CmL1gCC(double const& lambda);
0759 double Regular(double const& x) const;
0760 private:
0761 double const _lambda;
0762 };
0763
0764
0765
0766
0767 class Cm31qCC: public Expression
0768 {
0769 public:
0770 Cm31qCC(double const& lambda);
0771 double Regular(double const& x) const;
0772 double Singular(double const& x) const;
0773 double Local(double const& x) const;
0774 private:
0775 double const _lambda;
0776 };
0777
0778
0779
0780
0781 class Cm31gCC: public Expression
0782 {
0783 public:
0784 Cm31gCC(double const& lambda);
0785 double Regular(double const& x) const;
0786 private:
0787 double const _lambda;
0788 };
0789
0790 }