File indexing completed on 2024-09-07 04:38:12
0001 #ifndef TopObjetcResolutionsJet_h
0002 #define TopObjetcResolutionsJet_h
0003
0004 #include <cmath>
0005
0006 namespace res {
0007 class HelperJet {
0008 public:
0009 enum Flavor { kUds, kB };
0010
0011 HelperJet() {}
0012 ~HelperJet() {}
0013
0014 inline double pt(double pt, double eta, Flavor flav);
0015 inline double eta(double pt, double eta, Flavor flav);
0016 inline double phi(double pt, double eta, Flavor flav);
0017 inline double a(double pt, double eta, Flavor flav);
0018 inline double b(double pt, double eta, Flavor flav);
0019 inline double c(double pt, double eta, Flavor flav);
0020 inline double d(double pt, double eta, Flavor flav);
0021 inline double et(double pt, double eta, Flavor flav);
0022 inline double theta(double pt, double eta, Flavor flav);
0023 };
0024 }
0025
0026 inline double res::HelperJet::pt(double pt, double eta, Flavor flav) {
0027 double res = 0.29 * sqrt(pt);
0028 if (fabs(eta) < 1.4)
0029 res += 6.68;
0030 else
0031 res += -3.14 * fabs(eta) + 11.89;
0032 if (flav == kB) {
0033 res = 0.33 * sqrt(pt);
0034 if (fabs(eta) < 1.4)
0035 res += 6.57;
0036 else
0037 res += -1.09 * fabs(eta) + 8.50;
0038 }
0039 return res;
0040 }
0041
0042 inline double res::HelperJet::a(double pt, double eta, Flavor flav) {
0043 double res = 0.29 * sqrt(pt);
0044 if (flav == kB) {
0045 if (fabs(eta) < 0.17)
0046 res = 0.142188 + 0.288157 * exp(-(0.0275628 * pt));
0047 else if (fabs(eta) < 0.35)
0048 res = 0.141215 + 0.277502 * exp(-(0.0282327 * pt));
0049 else if (fabs(eta) < 0.5)
0050 res = 0.140493 + 0.26136 * exp(-(0.0254784 * pt));
0051 else if (fabs(eta) < 0.7)
0052 res = 0.142608 + 0.371256 * exp(-(0.0299132 * pt));
0053 else if (fabs(eta) < 0.9)
0054 res = 0.138817 + 0.237167 * exp(-(0.0268413 * pt));
0055 else if (fabs(eta) < 1.15)
0056 res = 0.137322 + 0.293834 * exp(-(0.0264771 * pt));
0057 else if (fabs(eta) < 1.4)
0058 res = 0.147184 + 0.40834 * exp(-(0.0366769 * pt));
0059 else if (fabs(eta) < 1.7)
0060 res = 0.141529 + 0.195563 * exp(-(0.023933 * pt));
0061 else if (fabs(eta) < 2.1)
0062 res = 0.129132 + 0.261012 * exp(-(0.0323658 * pt));
0063 else if (fabs(eta) < 2.5)
0064 res = 0.120065 + 0.239351 * exp(-(0.0356176 * pt));
0065 } else {
0066 if (fabs(eta) < 0.17)
0067 res = 0.142145 + 0.274541 * exp(-(0.0286487 * pt));
0068 else if (fabs(eta) < 0.35)
0069 res = 0.146112 + 0.284777 * exp(-(0.031039 * pt));
0070 else if (fabs(eta) < 0.5)
0071 res = 0.146703 + 0.343982 * exp(-(0.0333917 * pt));
0072 else if (fabs(eta) < 0.7)
0073 res = 0.149067 + 0.241197 * exp(-(0.0303415 * pt));
0074 else if (fabs(eta) < 0.9)
0075 res = 0.141233 + 0.304052 * exp(-(0.0314644 * pt));
0076 else if (fabs(eta) < 1.15)
0077 res = 0.144531 + 0.266871 * exp(-(0.0283385 * pt));
0078 else if (fabs(eta) < 1.4)
0079 res = 0.156593 + 0.41251 * exp(-(0.0411896 * pt));
0080 else if (fabs(eta) < 1.7)
0081 res = 0.13452 + 0.269 * exp(-(0.0230171 * pt));
0082 else if (fabs(eta) < 2.1)
0083 res = 0.0969416 + 0.211636 * exp(-(0.0166117 * pt));
0084 else if (fabs(eta) < 2.5)
0085 res = 0.0727398 + 0.205132 * exp(-(0.01661 * pt));
0086 }
0087 return res;
0088 }
0089
0090 inline double res::HelperJet::b(double pt, double eta, Flavor flav) {
0091 double res = 0.29 * sqrt(pt);
0092 if (flav == kB) {
0093 if (fabs(eta) < 0.17)
0094 res = 2.02521 + 0.174301 * exp(-(-0.0136646 * pt));
0095 else if (fabs(eta) < 0.35)
0096 res = 0.690872 + 1.32174 * exp(-(-0.00459989 * pt));
0097 else if (fabs(eta) < 0.5)
0098 res = -956.522 + 958.486 * exp(-(-7.57551e-06 * pt));
0099 else if (fabs(eta) < 0.7)
0100 res = 2.01017 + 0.0670861 * exp(-(-0.0194879 * pt));
0101 else if (fabs(eta) < 0.9)
0102 res = 1.92701 + 0.124384 * exp(-(-0.0144246 * pt));
0103 else if (fabs(eta) < 1.15)
0104 res = 1.94854 + 0.034138 * exp(-(-0.0227995 * pt));
0105 else if (fabs(eta) < 1.4)
0106 res = 2.07599 + 0.0208406 * exp(-(-0.0214439 * pt));
0107 else if (fabs(eta) < 1.7)
0108 res = 1.99002 + 0.0077067 * exp(-(-0.0278379 * pt));
0109 else if (fabs(eta) < 2.1)
0110 res = 1.93181 + 0.00196985 * exp(-(-0.0390155 * pt));
0111 else if (fabs(eta) < 2.5)
0112 res = 1.75611 + 0.0287099 * exp(-(-0.0202162 * pt));
0113 } else {
0114 if (fabs(eta) < 0.17)
0115 res = -644.18 + 645.342 * exp(-(-1.7462e-05 * pt));
0116 else if (fabs(eta) < 0.35)
0117 res = -1.34986 + 2.48937 * exp(-(-0.00396448 * pt));
0118 else if (fabs(eta) < 0.5)
0119 res = -4.8078 + 5.98195 * exp(-(-0.0015 * pt));
0120 else if (fabs(eta) < 0.7)
0121 res = -9.55949 + 10.7419 * exp(-(-0.000891802 * pt));
0122 else if (fabs(eta) < 0.9)
0123 res = 0.374264 + 0.884391 * exp(-(-0.00642501 * pt));
0124 else if (fabs(eta) < 1.15)
0125 res = -9.51561 + 10.7429 * exp(-(-0.000639173 * pt));
0126 else if (fabs(eta) < 1.4)
0127 res = -0.158886 + 1.43841 * exp(-(-0.00347282 * pt));
0128 else if (fabs(eta) < 1.7)
0129 res = 0.28876 + 0.992659 * exp(-(-0.00454673 * pt));
0130 else if (fabs(eta) < 2.1)
0131 res = 0.292201 + 0.922609 * exp(-(-0.00536289 * pt));
0132 else if (fabs(eta) < 2.5)
0133 res = -657.479 + 658.533 * exp(-(-1.40481e-05 * pt));
0134 }
0135 return res;
0136 }
0137
0138 inline double res::HelperJet::c(double pt, double eta, Flavor flav) {
0139 double res = 0.29 * sqrt(pt);
0140 if (flav == kB) {
0141 if (fabs(eta) < 0.17)
0142 res = -2048.11 + 2051.27 * exp(-(1.81337e-06 * pt));
0143 else if (fabs(eta) < 0.35)
0144 res = 2.86314 + 0.598484 * exp(-(0.0322582 * pt));
0145 else if (fabs(eta) < 0.5)
0146 res = 2.54785 + 0.77807 * exp(-(0.0100979 * pt));
0147 else if (fabs(eta) < 0.7)
0148 res = 2.78865 + 6.82558 * exp(-(0.0677953 * pt));
0149 else if (fabs(eta) < 0.9)
0150 res = 2.63261 + 2.66562 * exp(-(0.044099 * pt));
0151 else if (fabs(eta) < 1.15)
0152 res = 2.51691 + 2.75456 * exp(-(0.0425201 * pt));
0153 else if (fabs(eta) < 1.4)
0154 res = 2.60458 + 0.623776 * exp(-(0.0148415 * pt));
0155 else if (fabs(eta) < 1.7)
0156 res = 2.39005 + 1.60119 * exp(-(0.0154536 * pt));
0157 else if (fabs(eta) < 2.1)
0158 res = 2.49783 + 0.408896 * exp(-(0.04005 * pt));
0159 else if (fabs(eta) < 2.5)
0160 res = 2.02143 + 0.000354016 * exp(-(-0.0476218 * pt));
0161 } else {
0162 if (fabs(eta) < 0.17)
0163 res = 1.72736 + 0.212526 * exp(-(-0.00672611 * pt));
0164 else if (fabs(eta) < 0.35)
0165 res = -3480.32 + 3482.17 * exp(-(-7.08939e-07 * pt));
0166 else if (fabs(eta) < 0.5)
0167 res = 1.89173 + 0.0381423 * exp(-(-0.0151248 * pt));
0168 else if (fabs(eta) < 0.7)
0169 res = 2 + 0.00575323 * exp(-(-0.0233459 * pt));
0170 else if (fabs(eta) < 0.9)
0171 res = 1.92618 + 0.00541047 * exp(-(-0.0269683 * pt));
0172 else if (fabs(eta) < 1.15)
0173 res = 1.95535 + 0.0194328 * exp(-(-0.0175058 * pt));
0174 else if (fabs(eta) < 1.4)
0175 res = 1.99855 + 0.00403398 * exp(-(-0.027822 * pt));
0176 else if (fabs(eta) < 1.7)
0177 res = 2.02356 + 1.33745e-15 * exp(-(-0.201028 * pt));
0178 else if (fabs(eta) < 2.1)
0179 res = 1.70305 + 0.0428122 * exp(-(-0.0206051 * pt));
0180 else if (fabs(eta) < 2.5)
0181 res = 0.964128 + 0.370407 * exp(-(-0.0119056 * pt));
0182 }
0183 return res;
0184 }
0185
0186 inline double res::HelperJet::d(double pt, double eta, Flavor flav) {
0187 double res = 0.29 * sqrt(pt);
0188 if (flav == kB) {
0189 if (fabs(eta) < 0.17)
0190 res = 0.144545 + 0.374307 * exp(-(0.0314642 * pt));
0191 else if (fabs(eta) < 0.35)
0192 res = 0.141366 + 0.241457 * exp(-(0.0263273 * pt));
0193 else if (fabs(eta) < 0.5)
0194 res = 0.142509 + 0.324478 * exp(-(0.0288208 * pt));
0195 else if (fabs(eta) < 0.7)
0196 res = 0.139809 + 0.292392 * exp(-(0.0257797 * pt));
0197 else if (fabs(eta) < 0.9)
0198 res = 0.137762 + 0.258213 * exp(-(0.0265974 * pt));
0199 else if (fabs(eta) < 1.15)
0200 res = 0.135831 + 0.338346 * exp(-(0.0277574 * pt));
0201 else if (fabs(eta) < 1.4)
0202 res = 0.148253 + 0.53999 * exp(-(0.0415757 * pt));
0203 else if (fabs(eta) < 1.7)
0204 res = 0.145785 + 0.297049 * exp(-(0.0319928 * pt));
0205 else if (fabs(eta) < 2.1)
0206 res = 0.126895 + 0.291297 * exp(-(0.0328976 * pt));
0207 else if (fabs(eta) < 2.5)
0208 res = 0.119259 + 0.228403 * exp(-(0.0341018 * pt));
0209 } else {
0210 if (fabs(eta) < 0.17)
0211 res = 0.139738 + 0.310387 * exp(-(0.0296992 * pt));
0212 else if (fabs(eta) < 0.35)
0213 res = 0.142229 + 0.274556 * exp(-(0.0286575 * pt));
0214 else if (fabs(eta) < 0.5)
0215 res = 0.14344 + 0.313425 * exp(-(0.0294567 * pt));
0216 else if (fabs(eta) < 0.7)
0217 res = 0.147284 + 0.252005 * exp(-(0.0303533 * pt));
0218 else if (fabs(eta) < 0.9)
0219 res = 0.13541 + 0.261376 * exp(-(0.0260026 * pt));
0220 else if (fabs(eta) < 1.15)
0221 res = 0.144023 + 0.27422 * exp(-(0.0282282 * pt));
0222 else if (fabs(eta) < 1.4)
0223 res = 0.158694 + 0.352571 * exp(-(0.0385597 * pt));
0224 else if (fabs(eta) < 1.7)
0225 res = 0.135936 + 0.24773 * exp(-(0.0226282 * pt));
0226 else if (fabs(eta) < 2.1)
0227 res = 0.0957325 + 0.213108 * exp(-(0.016424 * pt));
0228 else if (fabs(eta) < 2.5)
0229 res = 0.0622281 + 0.185045 * exp(-(0.0129321 * pt));
0230 }
0231 return res;
0232 }
0233
0234 inline double res::HelperJet::theta(double pt, double eta, Flavor flav) {
0235 double res = 0.29 * sqrt(pt);
0236 if (flav == kB) {
0237 if (fabs(eta) < 0.17)
0238 res = 0.0348657 + 0.0966067 * exp(-(0.0388496 * pt));
0239 else if (fabs(eta) < 0.35)
0240 res = 0.0327521 + 0.0901303 * exp(-(0.0354149 * pt));
0241 else if (fabs(eta) < 0.5)
0242 res = 0.030283 + 0.0970732 * exp(-(0.036806 * pt));
0243 else if (fabs(eta) < 0.7)
0244 res = 0.0266898 + 0.0994089 * exp(-(0.0379773 * pt));
0245 else if (fabs(eta) < 0.9)
0246 res = 0.022614 + 0.091974 * exp(-(0.0384986 * pt));
0247 else if (fabs(eta) < 1.15)
0248 res = 0.0173219 + 0.0923928 * exp(-(0.0395886 * pt));
0249 else if (fabs(eta) < 1.4)
0250 res = 0.0129851 + 0.077473 * exp(-(0.0363236 * pt));
0251 else if (fabs(eta) < 1.7)
0252 res = 0.00967747 + 0.0667463 * exp(-(0.0383101 * pt));
0253 else if (fabs(eta) < 2.1)
0254 res = 0.00744593 + 0.050027 * exp(-(0.0432323 * pt));
0255 else if (fabs(eta) < 2.5)
0256 res = 0.00589309 + 0.0346904 * exp(-(0.0484705 * pt));
0257 } else {
0258 if (fabs(eta) < 0.17)
0259 res = 0.0384999 + 0.105382 * exp(-(0.0440247 * pt));
0260 else if (fabs(eta) < 0.35)
0261 res = 0.0384758 + 0.086093 * exp(-(0.0436464 * pt));
0262 else if (fabs(eta) < 0.5)
0263 res = 0.0325808 + 0.0860212 * exp(-(0.0371074 * pt));
0264 else if (fabs(eta) < 0.7)
0265 res = 0.0304022 + 0.094116 * exp(-(0.0402575 * pt));
0266 else if (fabs(eta) < 0.9)
0267 res = 0.0246649 + 0.0883167 * exp(-(0.0386519 * pt));
0268 else if (fabs(eta) < 1.15)
0269 res = 0.0197668 + 0.080217 * exp(-(0.0368397 * pt));
0270 else if (fabs(eta) < 1.4)
0271 res = 0.0148531 + 0.0692569 * exp(-(0.0354383 * pt));
0272 else if (fabs(eta) < 1.7)
0273 res = 0.0113007 + 0.0601861 * exp(-(0.0373138 * pt));
0274 else if (fabs(eta) < 2.1)
0275 res = 0.00860103 + 0.0522148 * exp(-(0.0450405 * pt));
0276 else if (fabs(eta) < 2.5)
0277 res = 0.00692992 + 0.031671 * exp(-(0.0490789 * pt));
0278 }
0279 return res;
0280 }
0281
0282 inline double res::HelperJet::phi(double pt, double eta, Flavor flav) {
0283 double res = 0.29 * sqrt(pt);
0284 if (flav == kB) {
0285 if (fabs(eta) < 0.17)
0286 res = 0.0217379 + 0.157228 * exp(-(0.0237049 * pt));
0287 else if (fabs(eta) < 0.35)
0288 res = 0.0246735 + 0.165694 * exp(-(0.0269728 * pt));
0289 else if (fabs(eta) < 0.5)
0290 res = 0.0226496 + 0.162875 * exp(-(0.0250225 * pt));
0291 else if (fabs(eta) < 0.7)
0292 res = 0.0232004 + 0.167887 * exp(-(0.0259427 * pt));
0293 else if (fabs(eta) < 0.9)
0294 res = 0.0220083 + 0.183889 * exp(-(0.0273017 * pt));
0295 else if (fabs(eta) < 1.15)
0296 res = 0.0216601 + 0.18482 * exp(-(0.027148 * pt));
0297 else if (fabs(eta) < 1.4)
0298 res = 0.0225191 + 0.19558 * exp(-(0.0271747 * pt));
0299 else if (fabs(eta) < 1.7)
0300 res = 0.0208365 + 0.19241 * exp(-(0.0262627 * pt));
0301 else if (fabs(eta) < 2.1)
0302 res = 0.0233749 + 0.180684 * exp(-(0.032052 * pt));
0303 else if (fabs(eta) < 2.5)
0304 res = 0.0231891 + 0.165484 * exp(-(0.0389916 * pt));
0305 } else {
0306 if (fabs(eta) < 0.17)
0307 res = 0.025945 + 0.16529 * exp(-(0.027385 * pt));
0308 else if (fabs(eta) < 0.35)
0309 res = 0.0257294 + 0.155366 * exp(-(0.0268639 * pt));
0310 else if (fabs(eta) < 0.5)
0311 res = 0.0231924 + 0.166508 * exp(-(0.0264153 * pt));
0312 else if (fabs(eta) < 0.7)
0313 res = 0.0252736 + 0.176977 * exp(-(0.0281594 * pt));
0314 else if (fabs(eta) < 0.9)
0315 res = 0.0269299 + 0.174505 * exp(-(0.0295757 * pt));
0316 else if (fabs(eta) < 1.15)
0317 res = 0.0250191 + 0.178321 * exp(-(0.0284006 * pt));
0318 else if (fabs(eta) < 1.4)
0319 res = 0.0242345 + 0.174682 * exp(-(0.027202 * pt));
0320 else if (fabs(eta) < 1.7)
0321 res = 0.0242234 + 0.199735 * exp(-(0.0291262 * pt));
0322 else if (fabs(eta) < 2.1)
0323 res = 0.0300017 + 0.175617 * exp(-(0.0357093 * pt));
0324 else if (fabs(eta) < 2.5)
0325 res = 0.0282978 + 0.141994 * exp(-(0.0383663 * pt));
0326 }
0327 return res;
0328 }
0329
0330 inline double res::HelperJet::et(double pt, double eta, Flavor flav) {
0331 double res = 0.29 * sqrt(pt);
0332 if (flav == kB) {
0333 if (fabs(eta) < 0.17)
0334 res = 10.1445 + 0.0445196 * pt;
0335 else if (fabs(eta) < 0.35)
0336 res = 8.944 + 0.0576391 * pt;
0337 else if (fabs(eta) < 0.5)
0338 res = 8.8462 + 0.0630703 * pt;
0339 else if (fabs(eta) < 0.7)
0340 res = 8.90812 + 0.057605 * pt;
0341 else if (fabs(eta) < 0.9)
0342 res = 8.42307 + 0.0623024 * pt;
0343 else if (fabs(eta) < 1.15)
0344 res = 8.64735 + 0.0619689 * pt;
0345 else if (fabs(eta) < 1.4)
0346 res = 8.90574 + 0.0595526 * pt;
0347 else if (fabs(eta) < 1.7)
0348 res = 8.74415 + 0.0612412 * pt;
0349 else if (fabs(eta) < 2.1)
0350 res = 7.80525 + 0.0511843 * pt;
0351 else if (fabs(eta) < 2.5)
0352 res = 6.07877 + 0.0569574 * pt;
0353 } else {
0354 if (fabs(eta) < 0.17)
0355 res = 8.04345 + 0.0705188 * pt;
0356 else if (fabs(eta) < 0.35)
0357 res = 7.77565 + 0.0722247 * pt;
0358 else if (fabs(eta) < 0.5)
0359 res = 8.53558 + 0.0647725 * pt;
0360 else if (fabs(eta) < 0.7)
0361 res = 7.99374 + 0.0681428 * pt;
0362 else if (fabs(eta) < 0.9)
0363 res = 7.51695 + 0.0755128 * pt;
0364 else if (fabs(eta) < 1.15)
0365 res = 7.70804 + 0.0748981 * pt;
0366 else if (fabs(eta) < 1.4)
0367 res = 7.2996 + 0.0852397 * pt;
0368 else if (fabs(eta) < 1.7)
0369 res = 7.95923 + 0.0715722 * pt;
0370 else if (fabs(eta) < 2.1)
0371 res = 7.68012 + 0.0543317 * pt;
0372 else if (fabs(eta) < 2.5)
0373 res = 6.59141 + 0.0452384 * pt;
0374 }
0375 return res;
0376 }
0377
0378 inline double res::HelperJet::eta(double pt, double eta, Flavor flav) {
0379 double res = -1.53e-4 * pt + 0.05;
0380 if (flav == kB) {
0381 if (fabs(eta) < 0.17)
0382 res = 0.0354411 + 0.130211 * exp(-(0.0423321 * pt));
0383 else if (fabs(eta) < 0.35)
0384 res = 0.0341742 + 0.115784 * exp(-(0.0375787 * pt));
0385 else if (fabs(eta) < 0.5)
0386 res = 0.0336537 + 0.143109 * exp(-(0.0416702 * pt));
0387 else if (fabs(eta) < 0.7)
0388 res = 0.031894 + 0.140572 * exp(-(0.0405564 * pt));
0389 else if (fabs(eta) < 0.9)
0390 res = 0.0301507 + 0.126005 * exp(-(0.0384231 * pt));
0391 else if (fabs(eta) < 1.15)
0392 res = 0.0268018 + 0.140956 * exp(-(0.03872 * pt));
0393 else if (fabs(eta) < 1.4)
0394 res = 0.0242941 + 0.131887 * exp(-(0.0337869 * pt));
0395 else if (fabs(eta) < 1.7)
0396 res = 0.0223985 + 0.142949 * exp(-(0.0351412 * pt));
0397 else if (fabs(eta) < 2.1)
0398 res = 0.0229694 + 0.145993 * exp(-(0.0391759 * pt));
0399 else if (fabs(eta) < 2.5)
0400 res = 0.0243171 + 0.145419 * exp(-(0.0430824 * pt));
0401 } else {
0402 if (fabs(eta) < 0.17)
0403 res = 0.038575 + 0.129026 * exp(-(0.0427157 * pt));
0404 else if (fabs(eta) < 0.35)
0405 res = 0.0400221 + 0.127222 * exp(-(0.0458212 * pt));
0406 else if (fabs(eta) < 0.5)
0407 res = 0.0358472 + 0.119962 * exp(-(0.0395586 * pt));
0408 else if (fabs(eta) < 0.7)
0409 res = 0.0359612 + 0.136094 * exp(-(0.04212 * pt));
0410 else if (fabs(eta) < 0.9)
0411 res = 0.0327581 + 0.127339 * exp(-(0.0393077 * pt));
0412 else if (fabs(eta) < 1.15)
0413 res = 0.0305095 + 0.116238 * exp(-(0.0347537 * pt));
0414 else if (fabs(eta) < 1.4)
0415 res = 0.027529 + 0.117893 * exp(-(0.032858 * pt));
0416 else if (fabs(eta) < 1.7)
0417 res = 0.0253065 + 0.112751 * exp(-(0.0307028 * pt));
0418 else if (fabs(eta) < 2.1)
0419 res = 0.0266957 + 0.131998 * exp(-(0.0380667 * pt));
0420 else if (fabs(eta) < 2.5)
0421 res = 0.0298413 + 0.13651 * exp(-(0.0458475 * pt));
0422 }
0423 return res;
0424 }
0425
0426 #endif