CMS 3D CMS Logo

CSCTFPtMethods.cc
Go to the documentation of this file.
3 
4 #include <cmath>
5 
6 //-----------------
7 // Static variables
8 //-----------------
9 
10 //L1MuTriggerPtScale CSCTFPtMethods::trigger_scale;
11 
12 // Global scale factor to multiply all parameterizations by
13 //const float CSCTFPtMethods::kGlobalScaleFactor = 1.055;
14 // Now scale to 90% effic definition like in old ORCA
15 const float CSCTFPtMethods::kGlobalScaleFactor = 1.36;
16 
17 // First ME1andME2, then ME1andME3, then MB1andME2
18 // units are radians*GeV
19 
20 // These arrays contain the values for the best fit parameters for three station measurements
21 
23  // {-4.026, 8.139, -5.350, 1.176}, //hit detectors 1 and 2
24  //??? {0.5170, -11.13, 8.255, -1.980}, //hit detectors 1 and 2
25  {3.900, -8.391, 6.062, -1.436}, //hit detectors 1 and 2
26  // {-2.241, 4.405, -2.756, 0.5878}, //13
27  {8.03602, -17.5355, 12.7725, -3.0616}, //13
28  {0.8372, -2.220, 1.908, -0.5233}, //23
29  {-0.04389, 0.05174, 0.0, 0.0}, //24
30  {-0.5519E-02, 0.8496E-02, 0.0, 0.0}, //34
31  {-4.228, 8.546, -5.617, 1.235}, //12
32  {0.80, -0.54, 0.0, 0.0}, //25
33  {0.80, -0.54, 0.0, 0.0}, //26
34 };
35 
37  // {0.6644, -0.2312, 0.0, 0.0}, //12
38  {0.6275, -0.2133, 0.0, 0.0}, //12
39  {-1.124, 2.492, -1.347, 0.2204}, //13
40  {0.5214, -0.7536, 0.3913, -.06739}, //23
41  {1.394, -1.886, 0.8809, -0.1369}, //24
42  {-0.5519E-02, 0.8496E-02, 0.0, 0.0}, //34
43  {0.6644, -0.2312, 0.0, 0.0}, //12
44  {0.80, -0.54, 0.0, 0.0}, //25
45  {0.80, -0.54, 0.0, 0.0}, //26
46 };
47 
48 // These arrays contain the values for the best fit parameters found imperically to determine Pt for a two station measurement
49 // The realtionship is dphi = A/Pt + B/Pt^2
51  // {-3.198, 6.703, -4.539, 1.028}, //12
52  {-0.6131, 0.6870, 0.0285, -0.1147}, //12
53  // {-6.705, 14.52, -10.32, 2.449}, //13
54  {8.03602, -17.5355, 12.7725, -3.0616}, //13
55  {5.765, -12.85, 9.543, -2.345}, //23
56  {-4.068, 8.254, -5.491, 1.214}, //24
57  {-.02974, .04816, -.02105, .003640}, //34
58  {-3.358, 7.038, -4.766, 1.079}, //12
59  {0.80, -0.54, 0.0, 0.0}, //25
60  {0.80, -0.54, 0.0, 0.0}, //26
61 };
63  {0.6425, -0.2308, 0.0, 0.0}, //12
64  {0.6923, -0.2336, 0.0, 0.0}, //13
65  {-0.7147, .01117, -0.5255E-04, 0.7991E-07}, //23
66  {-1.377, 2.150, -1.046, 0.1667}, //24
67  {-.02974, .04816, -.02105, .003640}, //34
68  {0.6425, -0.2308, 0.0, 0.0}, //12
69  {0.80, -0.54, 0.0, 0.0}, //25
70  {0.80, -0.54, 0.0, 0.0}, //26
71 };
72 
74  // {-0.5873, 0.0802, 0.2337, 0.0}, //12
75  {7.0509, -7.3282, -0.1465, 1.308}, //12
76  // {-0.5677, 1.907, -1.365, 0.2899}, //13
77  {0.0, 0.0, 0.0, 0.0}, //13
78  {-38.55, 82.95, -59.66, 14.29}, //23
79  {20.71, -45.34, 32.05, -7.415}, //24
80  {0.0, 0.0, 0.0, 0.0}, //34
81  {-0.6167, 0.08421, 0.2454, 0.0}, //12
82  {0.0, 0.0, 0.0, 0.0}, //25
83  {0.0, 0.0, 0.0, 0.0} //26
84 };
86  {14.79, -21.10, 10.16, -1.623}, //12
87  {70.67, -105.7, 52.49, -8.631}, //13
88  {15.70, -23.94, 11.89, -1.939}, //23
89  {17.18, -26.38, 13.13, -2.139}, //24
90  {0.0, 0.0, 0.0, 0.0}, //34
91  {14.79, -21.10, 10.16, -1.623}, //12
92  {0.0, 0.0, 0.0, 0.0}, //25
93  {0.0, 0.0, 0.0, 0.0} //26
94 };
95 
96 const float CSCTFPtMethods::FRCorrLowEta[kME2andMB2][2] = {
97  // {1.13, 0.87}, //12
98  // {1.14, 0.85}, //13
99  {1.30, 1.0}, //12
100  {1.30, 1.0}, //13
101  {1.0, 1.0}, //23
102  {1.0, 1.0}, //24
103  {1.0, 1.0}, //34
104  {1.0, 1.0}, //12
105  {1.0, 1.0}, //25
106  {1.0, 1.0} //26
107 };
108 const float CSCTFPtMethods::FRCorrHighEta[kME2andMB2][2] = {
109  // {0.92, 1.12}, //12
110  // {0.92, 1.12}, //13
111  {0.966, 1.176}, //12
112  {0.966, 1.176}, //13
113  {1.0, 1.0}, //23
114  {1.0, 1.0}, //24
115  {1.0, 1.0}, //34
116  {1.0, 1.0}, //12
117  {1.0, 1.0}, //25
118  {1.0, 1.0} //26
119 };
120 
121 // Anna's 2011 parametrization
122 
123 const double CSCTFPtMethods::AB_mu12FnoME11[4][15] = {{0,
124  0,
125  0,
126  0.089491067646809183134,
127  0.10739646024310070538,
128  0.12549844133338972085,
129  0.11746188101535759429,
130  0.11365654376086815891,
131  0,
132  0,
133  0,
134  0,
135  0,
136  0,
137  0},
138  {0,
139  0,
140  0,
141  -0.16463359422729287318,
142  -0.18522613297525072906,
143  -0.17065296570525056996,
144  -0.11673113772749151018,
145  -0.096673008784020367234,
146  0,
147  0,
148  0,
149  0,
150  0,
151  0,
152  0},
153  {0,
154  0,
155  0,
156  5.0479701928535670313e-06,
157  -8.5107255627149016024e-05,
158  -0.00031591725812981632723,
159  2.8829297417277944225e-05,
160  -3.3664459708458401629e-05,
161  0,
162  0,
163  0,
164  0,
165  0,
166  0,
167  0},
168  {0,
169  0,
170  0,
171  1.6276716966428210753,
172  1.1244502885068945464,
173  0.44061802755260442988,
174  0.82271567628154873564,
175  0.65764083792276606388,
176  0,
177  0,
178  0,
179  0,
180  0,
181  0,
182  0}};
183 const double CSCTFPtMethods::AB_mu13FnoME11[4][15] = {{0,
184  0,
185  0,
186  0.11479489063486028599,
187  0.1385846143670735886,
188  0.16069130395935576905,
189  0.16229285551120029019,
190  0.15970793987729367536,
191  0,
192  0,
193  0,
194  0,
195  0,
196  0,
197  0},
198  {0,
199  0,
200  0,
201  -0.31624871209539057171,
202  -0.37204708239816158821,
203  -0.35001738011313637822,
204  -0.28067946142333310977,
205  -0.22587297159275510072,
206  0,
207  0,
208  0,
209  0,
210  0,
211  0,
212  0},
213  {0,
214  0,
215  0,
216  4.5422334693538224219e-05,
217  -0.0001534874341906974503,
218  -0.00049456554072302828882,
219  -0.00040362112138876319418,
220  -0.00037532294041719521617,
221  0,
222  0,
223  0,
224  0,
225  0,
226  0,
227  0},
228  {0,
229  0,
230  0,
231  1.3698214790637726068,
232  0.83827124867878388681,
233  0.35268421062422455892,
234  0.30966868638086236798,
235  0.39552380610102405578,
236  0,
237  0,
238  0,
239  0,
240  0,
241  0,
242  0}};
243 const double CSCTFPtMethods::AB_mu14FnoME11[4][15] = {{0,
244  0,
245  0,
246  0,
247  0.10167174785035071327,
248  0.072305163037876873933,
249  0.12811797755236814522,
250  0.15630771929281417343,
251  0,
252  0,
253  0,
254  0,
255  0,
256  0,
257  0},
258  {0,
259  0,
260  0,
261  0,
262  -0.2851531414997146574,
263  -0.12625245577882274195,
264  -0.2693337001449228052,
265  -0.35816854038946227545,
266  0,
267  0,
268  0,
269  0,
270  0,
271  0,
272  0},
273  {0,
274  0,
275  0,
276  0,
277  0.0016536940782984094634,
278  0.0032050914503555030799,
279  0.0017500898659728782863,
280  0.0014193550176488352668,
281  0,
282  0,
283  0,
284  0,
285  0,
286  0,
287  0},
288  {0,
289  0,
290  0,
291  0,
292  1.8999999999960794916,
293  1.8999999999875891721,
294  1.1603749006227730423,
295  0.36919547110219635977,
296  0,
297  0,
298  0,
299  0,
300  0,
301  0,
302  0}};
303 const double CSCTFPtMethods::AB_mu12RnoME11[4][15] = {{0,
304  0.1017548888755877845,
305  0.13020457985822880831,
306  0.11777472840868662141,
307  0.1352735458205116259,
308  0.14797523226644127003,
309  0.14891234013414389459,
310  0,
311  0,
312  0,
313  0,
314  0,
315  0,
316  0,
317  0},
318  {0,
319  -0.40835812179222591434,
320  -0.4909339449226597929,
321  -0.19396964458569518341,
322  -0.18405457126044733052,
323  -0.15348184403810183341,
324  -0.11949446624665205352,
325  0,
326  0,
327  0,
328  0,
329  0,
330  0,
331  0,
332  0},
333  {0,
334  -0.00046324193156588387276,
335  -0.0012328343527384165272,
336  5.8536010291841255454e-05,
337  5.3175743777652564014e-05,
338  -0.00027992198289290446886,
339  0.00017291608058844862988,
340  0,
341  0,
342  0,
343  0,
344  0,
345  0,
346  0,
347  0},
348  {0,
349  0.82326825991227925439,
350  0.66225151266154569374,
351  1.6047267765109303195,
352  1.172660602794620921,
353  0.91611151466846096891,
354  0.923434361821059424,
355  0,
356  0,
357  0,
358  0,
359  0,
360  0,
361  0,
362  0}};
363 const double CSCTFPtMethods::AB_mu13RnoME11[4][15] = {{0,
364  0,
365  0,
366  0.17152643870188713504,
367  0.18220699353677527466,
368  0.19718061346676321599,
369  0.20409261783490945108,
370  0,
371  0,
372  0,
373  0,
374  0,
375  0,
376  0,
377  0},
378  {0,
379  0,
380  0,
381  -0.51329151983333287657,
382  -0.43421697939765058205,
383  -0.38701854807672181336,
384  -0.29367743292763504037,
385  0,
386  0,
387  0,
388  0,
389  0,
390  0,
391  0,
392  0},
393  {0,
394  0,
395  0,
396  -0.00028330256767296205581,
397  -0.00011104889576832950495,
398  -0.0003659472931155986178,
399  -0.0004494825869971541348,
400  0,
401  0,
402  0,
403  0,
404  0,
405  0,
406  0,
407  0},
408  {0,
409  0,
410  0,
411  1.0806773148892279135,
412  0.81710737240426545291,
413  0.49165515886235822141,
414  0.40288815951359424616,
415  0,
416  0,
417  0,
418  0,
419  0,
420  0,
421  0,
422  0}};
423 const double CSCTFPtMethods::AB_mu14RnoME11[4][15] = {{0,
424  0,
425  0,
426  0.11411457974213083666,
427  0.14612498789299999125,
428  0.15438328053344949065,
429  0.17021962182813230036,
430  0,
431  0,
432  0,
433  0,
434  0,
435  0,
436  0,
437  0},
438  {0,
439  0,
440  0,
441  -0.32211539883453449429,
442  -0.3332077022119345755,
443  -0.28947013547326555516,
444  -0.31678412927379157038,
445  0,
446  0,
447  0,
448  0,
449  0,
450  0,
451  0,
452  0},
453  {0,
454  0,
455  0,
456  0.0021189308480414714535,
457  0.0017232488622970817526,
458  0.0014181868364706309241,
459  0.0020581588744611055593,
460  0,
461  0,
462  0,
463  0,
464  0,
465  0,
466  0,
467  0},
468  {0,
469  0,
470  0,
471  1.8999999998213816799,
472  1.8999999999320695832,
473  1.2588510283946776624,
474  0.91969335359675130626,
475  0,
476  0,
477  0,
478  0,
479  0,
480  0,
481  0,
482  0}};
483 const double CSCTFPtMethods::AB_mu12FME11[4][15] = {{0,
484  0,
485  0,
486  0,
487  0,
488  0,
489  0,
490  0.30997988806094234349,
491  0.2960464576032310613,
492  0.26865522361643923155,
493  0.24306471114654951138,
494  0.21612598016341960649,
495  0.20916086000526656896,
496  0.14505390185826338989,
497  0.19626640578808879356},
498  {0,
499  0,
500  0,
501  0,
502  0,
503  0,
504  0,
505  -0.18938263233962521204,
506  -0.18099881965541908535,
507  -0.15817156292403300455,
508  -0.13527092529520332032,
509  -0.11802970951212833628,
510  -0.13142443653269073045,
511  -0.081045302368033256268,
512  -0.16548691953190999837},
513  {0,
514  0,
515  0,
516  0,
517  0,
518  0,
519  0,
520  1.9132754352698083493e-05,
521  0.0001244919158836254626,
522  -0.00036815494148734217474,
523  -0.0003021495594158459864,
524  0.00032190104529820852321,
525  5.9699515482881178492e-05,
526  0.0035011369787794933972,
527  -0.0021251348628855359045},
528  {0,
529  0,
530  0,
531  0,
532  0,
533  0,
534  0,
535  1.2633991230895826874,
536  1.2237510610710955472,
537  1.2446734233372107603,
538  1.2072459880229720053,
539  1.2073932498298223237,
540  0.64342700161682475635,
541  1.0965614756840385002,
542  0.41184878672694380519}};
543 const double CSCTFPtMethods::AB_mu13FME11[4][15] = {{0,
544  0,
545  0,
546  0,
547  0,
548  0,
549  0.17684262466990949281,
550  0.34711584948456875033,
551  0.34173632193931768875,
552  0.31856060138741582044,
553  0.29169375726034846297,
554  0.24666606646956890092,
555  0.21434901698955760585,
556  0.22194241387027591195,
557  0.13650791328679393044},
558  {0,
559  0,
560  0,
561  0,
562  0,
563  0,
564  0.99999999999949551466,
565  0.99999999999457755973,
566  -0.30995317528055632561,
567  -0.26510423524582477084,
568  -0.22052246537701888918,
569  -0.1597247313884862796,
570  -0.14032250966056744601,
571  -0.14430798488566201621,
572  -0.075894576731296098382},
573  {0,
574  0,
575  0,
576  0,
577  0,
578  0,
579  0.010426580434797315736,
580  0.00056720513052092998933,
581  -0.00047916406780649806879,
582  -0.00043513801305821104073,
583  -0.00035934925416836774022,
584  0.00064159373840440422562,
585  0.0011012063282968072471,
586  0.00059066112387542329433,
587  0.0061369729760295480686},
588  {0,
589  0,
590  0,
591  0,
592  0,
593  0,
594  -0.46194813956282321232,
595  -2.1380051317667612132,
596  0.99475655086418368622,
597  1.0240107231697159751,
598  1.0710375546859214335,
599  1.1466745846418702204,
600  1.0634581787492956018,
601  0.35737857407704720636,
602  1.1165504043676175439}};
603 const double CSCTFPtMethods::AB_mu14FME11[4][15] = {{0,
604  0,
605  0,
606  0,
607  0,
608  0,
609  0,
610  0,
611  0.21118188098880102954,
612  0.33402008586605308471,
613  0.29298980221468984286,
614  0.26806296448653738063,
615  0.23720733268363508595,
616  0.2510285652964933667,
617  0.14583302968662079091},
618  {0,
619  0,
620  0,
621  0,
622  0,
623  0,
624  0,
625  0,
626  -0.14883704087325219656,
627  -0.39197899608005709604,
628  -0.28520435482868433663,
629  -0.23819454759756183981,
630  -0.2024802801289519727,
631  -0.2369976701205682712,
632  -0.086510146140783658608},
633  {0,
634  0,
635  0,
636  0,
637  0,
638  0,
639  0,
640  0,
641  0.010748111373072187155,
642  -0.00054440793841566191644,
643  -6.6117096422286744401e-05,
644  0.00032426109337843134813,
645  0.00086123563095007638242,
646  0.00046858791450944800496,
647  0.0055934740677286293176},
648  {0,
649  0,
650  0,
651  0,
652  0,
653  0,
654  0,
655  0,
656  1.8177576283415954883,
657  0.90124364385162747393,
658  1.0058576108118726378,
659  0.97434013632935245752,
660  0.75135849774137752899,
661  0.090012990328703759713,
662  1.1491738867249043921}};
663 const double CSCTFPtMethods::AB_mu12RME11[4][15] = {{0,
664  0,
665  0,
666  0,
667  0,
668  0,
669  0,
670  0.27354810039733407079,
671  0.25530642585169710523,
672  0.2281232078009739761,
673  0.20002002697391027541,
674  0.18418628467434680629,
675  0.1691868825133146792,
676  0.15081083142497944682,
677  0.11470950819931940989},
678  {0,
679  0,
680  0,
681  0,
682  0,
683  0,
684  0,
685  -0.16735504499789077837,
686  -0.15229365225374749682,
687  -0.12925824722117412735,
688  -0.10394284592720609561,
689  -0.093240817997744127044,
690  -0.073171468346305876262,
691  -0.088574463929812302654,
692  -0.066404461904397707461},
693  {0,
694  0,
695  0,
696  0,
697  0,
698  0,
699  0,
700  -0.00050299673411093688211,
701  5.1602356927429220493e-05,
702  -3.0794024894263357945e-05,
703  0.0004052733857930102164,
704  -7.420268691546845442e-05,
705  0.00011377542095117624751,
706  0.002401982811750403863,
707  0.0024540507098964291222},
708  {0,
709  0,
710  0,
711  0,
712  0,
713  0,
714  0,
715  1.1883256550892249415,
716  1.1930557391196678907,
717  1.1956122499877577248,
718  1.2507536548522568687,
719  1.1818664879149434199,
720  0.74072892184538741134,
721  0.4975999389532442807,
722  1.0630008076007997353}};
723 const double CSCTFPtMethods::AB_mu13RME11[4][15] = {{0,
724  0,
725  0,
726  0,
727  0,
728  0,
729  0,
730  0.28630621682529061589,
731  0.29827733143141249572,
732  0.27230375589683164517,
733  0.23990484313749371736,
734  0.21461969319969206871,
735  0.20904691221965984727,
736  0.17455215996464093497,
737  0.10530528191221873169},
738  {0,
739  0,
740  0,
741  0,
742  0,
743  0,
744  0,
745  -0.21320341298073050562,
746  -0.27792002471345611525,
747  -0.22893879370711203713,
748  -0.17267579393860862935,
749  -0.13655560753368203852,
750  -0.13221415752155918355,
751  -0.092817386598587681146,
752  -0.047633722138851357364},
753  {0,
754  0,
755  0,
756  0,
757  0,
758  0,
759  0,
760  0.0012300659344863943204,
761  -0.00026218872327451808128,
762  -0.00020411464851349467309,
763  8.8191777702590311294e-05,
764  0.00044047024925421437123,
765  -0.00067348979494906663183,
766  0.0026726730924768165448,
767  0.0067869186945352134865},
768  {0,
769  0,
770  0,
771  0,
772  0,
773  0,
774  0,
775  1.2315550372405590362,
776  0.86296110777082257748,
777  0.94745955410457627366,
778  1.0617206089293684812,
779  1.0876186592684131682,
780  0.81349751399897141102,
781  0.51174005862466220851,
782  1.3970393153313427348}};
783 const double CSCTFPtMethods::AB_mu14RME11[4][15] = {{0,
784  0,
785  0,
786  0,
787  0,
788  0,
789  0,
790  0.2321760802583729133,
791  0.17425716826944270821,
792  0.28951128850821888916,
793  0.26122027532891867185,
794  0.23988161223010590062,
795  0.21857963541150710052,
796  0.15353493229255876784,
797  0.09952290576921750398},
798  {0,
799  0,
800  0,
801  0,
802  0,
803  0,
804  0,
805  -0.20453745460356828612,
806  -0.15291198577104561651,
807  -0.370982786914061613,
808  -0.27553292468971468665,
809  -0.22166866616439959148,
810  -0.17253577136118664059,
811  -0.10047612457180872536,
812  -0.044726719317877430826},
813  {0,
814  0,
815  0,
816  0,
817  0,
818  0,
819  0,
820  0.0075216673069431437548,
821  0.0091493927899154794958,
822  -0.00026846347496581161613,
823  -0.00028436379808289408404,
824  -0.00033797061806371863149,
825  -0.00032290147294330767604,
826  0.0043983126453711971632,
827  0.0087398021641503856327},
828  {0,
829  0,
830  0,
831  0,
832  0,
833  0,
834  0,
835  1.4021232447364970763,
836  1.6613910381816205941,
837  0.73820877609189006208,
838  0.87917756535000690654,
839  0.86376276633863802168,
840  0.64791792386852542496,
841  1.0974109668506901727,
842  1.475947804634221372}};
843 const double CSCTFPtMethods::AB_sig12FnoME11[4][15] = {{0,
844  0,
845  0,
846  -0.0076412310580529349199,
847  0.013106555291144636813,
848  0.025063779434470568469,
849  0.0087226608724667777789,
850  -0.0012964802596261630445,
851  0,
852  0,
853  0,
854  0,
855  0,
856  0,
857  0},
858  {0,
859  0,
860  0,
861  0.11492024270448454593,
862  0.021102150917381608253,
863  -4.2436183419689021967e-08,
864  0.072972237191400349254,
865  0.19729003982512077764,
866  0,
867  0,
868  0,
869  0,
870  0,
871  0,
872  0},
873  {0,
874  0,
875  0,
876  0.0021104070024291496713,
877  0.0018253795336503611177,
878  0.0016311827288382637312,
879  0.0024898068482018614021,
880  0.0023171447579502014481,
881  0,
882  0,
883  0,
884  0,
885  0,
886  0,
887  0},
888  {0,
889  0,
890  0,
891  0.90082232171804188514,
892  1.4715701060292549762,
893  0.38179435996930433106,
894  -0.31089206041852102125,
895  -1.8605481532163505864,
896  0,
897  0,
898  0,
899  0,
900  0,
901  0,
902  0}};
903 const double CSCTFPtMethods::AB_sig13FnoME11[4][15] = {{0,
904  0,
905  0,
906  -0.013922695503875197331,
907  -0.0018020343253406317062,
908  0.017121560844724798001,
909  0.018609272384097541586,
910  -0.0050380425848817458542,
911  0,
912  0,
913  0,
914  0,
915  0,
916  0,
917  0},
918  {0,
919  0,
920  0,
921  0.36952186524609842433,
922  0.29771940602043445168,
923  0.25881377301982183559,
924  0.21522443888607742379,
925  0.59520725339836588752,
926  0,
927  0,
928  0,
929  0,
930  0,
931  0,
932  0},
933  {0,
934  0,
935  0,
936  0.0021171146723497585689,
937  0.001962910013039776292,
938  0.0016295699065661407162,
939  0.0017542445121842159018,
940  0.0018291018059847885362,
941  0,
942  0,
943  0,
944  0,
945  0,
946  0,
947  0},
948  {0,
949  0,
950  0,
951  -0.24903532893487495548,
952  -0.20762623792196052697,
953  -1.23723285975173658,
954  -0.93877564336741559092,
955  -2.7137466589111389759,
956  0,
957  0,
958  0,
959  0,
960  0,
961  0,
962  0}};
963 const double CSCTFPtMethods::AB_sig14FnoME11[4][15] = {{0,
964  0,
965  0,
966  0,
967  -0.049226069782944893716,
968  -0.05447625811386536121,
969  0.024782117383430092572,
970  0.0087723204390127967195,
971  0,
972  0,
973  0,
974  0,
975  0,
976  0,
977  0},
978  {0,
979  0,
980  0,
981  0,
982  0.96194395556167033856,
983  1.9107390804546595664,
984  0.10243277620694382635,
985  0.29010825363315317915,
986  0,
987  0,
988  0,
989  0,
990  0,
991  0,
992  0},
993  {0,
994  0,
995  0,
996  0,
997  0.0025849149683154332667,
998  0.0022908589943121454233,
999  0.0017080431015829389101,
1000  0.0022045212844627971524,
1001  0,
1002  0,
1003  0,
1004  0,
1005  0,
1006  0,
1007  0},
1008  {0,
1009  0,
1010  0,
1011  0,
1012  -1.2932328975948934602,
1013  -4.7562023014669927434,
1014  0.78711144534012145169,
1015  -0.57517454556474645333,
1016  0,
1017  0,
1018  0,
1019  0,
1020  0,
1021  0,
1022  0}};
1023 const double CSCTFPtMethods::AB_sig12RnoME11[4][15] = {{0,
1024  -0.024837587047074519142,
1025  -0.038443755326854262,
1026  0.010789426545740953695,
1027  0.016714316978066363906,
1028  0.036977680482507623017,
1029  0.023903736191005935108,
1030  0,
1031  0,
1032  0,
1033  0,
1034  0,
1035  0,
1036  0,
1037  0},
1038  {0,
1039  0.44916461963533510504,
1040  0.54293566642571933212,
1041  0.018977673263371359902,
1042  0.007932079958008179596,
1043  -9.4309201558850225267e-08,
1044  5.2699963039304353885e-09,
1045  0,
1046  0,
1047  0,
1048  0,
1049  0,
1050  0,
1051  0,
1052  0},
1053  {0,
1054  0.0022745078222873717048,
1055  0.0026499504248443657255,
1056  0.0019347176520538985831,
1057  0.0018882668324742895791,
1058  0.0015313004238581028917,
1059  0.0027721700163088574924,
1060  0,
1061  0,
1062  0,
1063  0,
1064  0,
1065  0,
1066  0,
1067  0},
1068  {0,
1069  -0.87241910961768964761,
1070  -1.0549928243465211963,
1071  1.8999999999485288615,
1072  1.6191292705343984792,
1073  -0.63912490618228612327,
1074  0.6398194632982362462,
1075  0,
1076  0,
1077  0,
1078  0,
1079  0,
1080  0,
1081  0,
1082  0}};
1083 const double CSCTFPtMethods::AB_sig13RnoME11[4][15] = {{0,
1084  0,
1085  0,
1086  0.0036225404374523491324,
1087  0.020602869778294785608,
1088  0.031371735116656827846,
1089  0.044385023713376312027,
1090  0,
1091  0,
1092  0,
1093  0,
1094  0,
1095  0,
1096  0,
1097  0},
1098  {0,
1099  0,
1100  0,
1101  0.40723755341312423139,
1102  0.24719809506286585798,
1103  0.23886286984905105713,
1104  0.092388265632692603835,
1105  0,
1106  0,
1107  0,
1108  0,
1109  0,
1110  0,
1111  0,
1112  0},
1113  {0,
1114  0,
1115  0,
1116  0.0018900875181423510037,
1117  0.0016683560130446085414,
1118  0.0015517088923086459762,
1119  0.0014400104759778459274,
1120  0,
1121  0,
1122  0,
1123  0,
1124  0,
1125  0,
1126  0,
1127  0},
1128  {0,
1129  0,
1130  0,
1131  -0.50487582216370696653,
1132  -0.21797446389232158492,
1133  -0.76054681766358056549,
1134  -0.16793042826918122556,
1135  0,
1136  0,
1137  0,
1138  0,
1139  0,
1140  0,
1141  0,
1142  0}};
1143 const double CSCTFPtMethods::AB_sig14RnoME11[4][15] = {{0,
1144  0,
1145  0,
1146  -0.035861540596622137889,
1147  -0.1163451242952821818,
1148  -0.3223054960806409075,
1149  0.028427718090213778546,
1150  0,
1151  0,
1152  0,
1153  0,
1154  0,
1155  0,
1156  0,
1157  0},
1158  {0,
1159  0,
1160  0,
1161  0.91272061044138930175,
1162  1.0649835191592700312,
1163  3.75045883898615795,
1164  0.20554379357162461117,
1165  0,
1166  0,
1167  0,
1168  0,
1169  0,
1170  0,
1171  0,
1172  0},
1173  {0,
1174  0,
1175  0,
1176  0.0023100741888551377598,
1177  0.0065631885708627574205,
1178  0.010122343115052657297,
1179  0.0021541859801294522929,
1180  0,
1181  0,
1182  0,
1183  0,
1184  0,
1185  0,
1186  0,
1187  0},
1188  {0,
1189  0,
1190  0,
1191  -0.85246870399928331707,
1192  -1.26158946908596592,
1193  -4.209205295019181392,
1194  0.071706289987386498397,
1195  0,
1196  0,
1197  0,
1198  0,
1199  0,
1200  0,
1201  0,
1202  0}};
1203 const double CSCTFPtMethods::AB_sig12FME11[4][15] = {{0,
1204  0,
1205  0,
1206  0,
1207  0,
1208  0,
1209  0,
1210  0.05458876370405055245,
1211  0.014223815371885261197,
1212  0.051739718849001303802,
1213  0.0043781295277517066206,
1214  -0.073251670679359628946,
1215  0.016350518117378025351,
1216  0.024953176408713924339,
1217  0.018013937106717257258},
1218  {0,
1219  0,
1220  0,
1221  0,
1222  0,
1223  0,
1224  0,
1225  -0.037781377479947614306,
1226  0.80848693770251023327,
1227  0.1697030494994675176,
1228  0.78252633158781936817,
1229  1.2537997106918414847,
1230  0.10612967759966565606,
1231  -9.206320800321521336e-08,
1232  2.2213840653040328732e-07},
1233  {0,
1234  0,
1235  0,
1236  0,
1237  0,
1238  0,
1239  0,
1240  0.0013753615162960116606,
1241  0.0017341536986479849473,
1242  0.0013675349666495530479,
1243  0.0017609996279085446749,
1244  0.0046166207484297843919,
1245  0.00495761383888420476,
1246  0.0050988257402144569752,
1247  0.0064203615570604640264},
1248  {0,
1249  0,
1250  0,
1251  0,
1252  0,
1253  0,
1254  0,
1255  1.8999999999988979038,
1256  -3.2324234827503541823,
1257  -0.81829590015205422304,
1258  -2.7507108181454631435,
1259  -1.7359928981630718958,
1260  0.40689058927975751967,
1261  1.4828812725128097672,
1262  1.5951851243514818535}};
1263 const double CSCTFPtMethods::AB_sig13FME11[4][15] = {{0,
1264  0,
1265  0,
1266  0,
1267  0,
1268  0,
1269  -0.19347059395018284533,
1270  0.072568004970527941189,
1271  0.08577237659734933406,
1272  0.078682638529076837086,
1273  0.077062920521249994588,
1274  0.080098726616512086474,
1275  0.023748955156449799708,
1276  0.015834208336261056116,
1277  -0.021587059944354128338},
1278  {0,
1279  0,
1280  0,
1281  0,
1282  0,
1283  0,
1284  2.6546929735503304038,
1285  -0.040973653768088071081,
1286  -0.063777717641833361895,
1287  -0.050952537148763105135,
1288  -0.044007209248372716748,
1289  -0.044262064708301115945,
1290  0.29785332091460725579,
1291  0.71835272096206526093,
1292  0.65633476797761147736},
1293  {0,
1294  0,
1295  0,
1296  0,
1297  0,
1298  0,
1299  0.0065104044193550428959,
1300  0.0011700415681633554756,
1301  0.00045437269348538639104,
1302  0.0008801332589677031415,
1303  0.00078367838118213598627,
1304  0.00060453583918787642728,
1305  0.004657287607776092013,
1306  0.0037849066904824596111,
1307  0.0061259831222526071187},
1308  {0,
1309  0,
1310  0,
1311  0,
1312  0,
1313  0,
1314  -4.9999999979557490093,
1315  1.1707517726253902079,
1316  1.0992454619450249265,
1317  1.2206213897813062985,
1318  1.2578764060460077001,
1319  1.3625276752124573232,
1320  -1.0956263938322794438,
1321  -2.8508701454429501432,
1322  -2.1472735770040620729}};
1323 const double CSCTFPtMethods::AB_sig14FME11[4][15] = {{0,
1324  0,
1325  0,
1326  0,
1327  0,
1328  0,
1329  0,
1330  0,
1331  0.0011704660991897508117,
1332  0.084739514416067682201,
1333  0.086139578586588813613,
1334  0.093199773864805768309,
1335  0.0068597584931722067197,
1336  0.073137137801632320921,
1337  -0.024117519905137906056},
1338  {0,
1339  0,
1340  0,
1341  0,
1342  0,
1343  0,
1344  0,
1345  0,
1346  0.7338374554546823747,
1347  -0.036989032906862853722,
1348  -0.038391760412970953042,
1349  -0.046077469375633541004,
1350  0.62423005995004055002,
1351  -0.040314539852839455236,
1352  0.63248947781334297069},
1353  {0,
1354  0,
1355  0,
1356  0,
1357  0,
1358  0,
1359  0,
1360  0,
1361  0.0031924502818212936207,
1362  0.0010331185400558220815,
1363  0.0010342430652703427443,
1364  0.00092674943585657754141,
1365  0.0050760196464007447531,
1366  0.0032319531506008868788,
1367  0.0067125188107654068514},
1368  {0,
1369  0,
1370  0,
1371  0,
1372  0,
1373  0,
1374  0,
1375  0,
1376  -1.785448670968939,
1377  1.3255257799041022526,
1378  1.3571670682651415518,
1379  1.3337095100618956423,
1380  -2.0375413343465438309,
1381  1.4881244856244408847,
1382  -1.5048835864460361478}};
1383 const double CSCTFPtMethods::AB_sig12RME11[4][15] = {{0,
1384  0,
1385  0,
1386  0,
1387  0,
1388  0,
1389  0,
1390  0.029083895221947490134,
1391  0.02931261189231387787,
1392  -0.035917405392017993926,
1393  0.02606608527812858539,
1394  -0.032213952425992904705,
1395  0.034901077580037881409,
1396  0.038079609520293045133,
1397  -0.087892299038559315583},
1398  {0,
1399  0,
1400  0,
1401  0,
1402  0,
1403  0,
1404  0,
1405  0.41762122325588330041,
1406  0.24571503336772770876,
1407  1.382448398827999192,
1408  0.59561568267877507132,
1409  1.3203480961328621923,
1410  -2.9132130347376411494e-08,
1411  -4.2309101866118761781e-07,
1412  1.3315902017409027014},
1413  {0,
1414  0,
1415  0,
1416  0,
1417  0,
1418  0,
1419  0,
1420  0.0019308246518827238379,
1421  0.0018496885043595501577,
1422  0.0027736328929315792052,
1423  0.0017558352623714590553,
1424  0.0025111400562270263202,
1425  0.0029777661938234362138,
1426  0.0043603459843407146868,
1427  0.0076843830249820627848},
1428  {0,
1429  0,
1430  0,
1431  0,
1432  0,
1433  0,
1434  0,
1435  -2.0511755338229731294,
1436  -0.82689722791688569092,
1437  -4.4494753588966791114,
1438  -2.9771639615408234114,
1439  -4.4060610830752349187,
1440  0.96642022916504122243,
1441  0.27488639218488036819,
1442  -4.9999999999412514384}};
1443 const double CSCTFPtMethods::AB_sig13RME11[4][15] = {{0,
1444  0,
1445  0,
1446  0,
1447  0,
1448  0,
1449  0,
1450  0.069382927814675421363,
1451  0.062546773192992718982,
1452  0.066219648548532128451,
1453  0.066114165177748651647,
1454  0.06496853782135392219,
1455  0.051540701102725301752,
1456  -0.14520516691085255667,
1457  -0.029300158926639723045},
1458  {0,
1459  0,
1460  0,
1461  0,
1462  0,
1463  0,
1464  0,
1465  -0.03808324381918145457,
1466  -0.02868588030414172263,
1467  -0.031288010457747920945,
1468  -0.030725505585511597717,
1469  -0.02843978176922726947,
1470  8.9697287389278734793e-07,
1471  1.7723836220217532578,
1472  0.79014048067174824652},
1473  {0,
1474  0,
1475  0,
1476  0,
1477  0,
1478  0,
1479  0,
1480  0.00031828670642815944016,
1481  0.0012881264558822541535,
1482  0.00092903731815034164537,
1483  0.0011795342397226430894,
1484  0.00083538336551440930174,
1485  0.0027329868075334912136,
1486  0.0097615976891543883992,
1487  0.0062076155203765765594},
1488  {0,
1489  0,
1490  0,
1491  0,
1492  0,
1493  0,
1494  0,
1495  1.3727842579605455953,
1496  1.5374702505093122973,
1497  1.4476836940454602676,
1498  1.4342564093482235155,
1499  1.3613055874742052698,
1500  0.85184697646817630901,
1501  -3.994547310920665506,
1502  -2.8070031114324471844}};
1503 const double CSCTFPtMethods::AB_sig14RME11[4][15] = {{0,
1504  0,
1505  0,
1506  0,
1507  0,
1508  0,
1509  0,
1510  0.082096556211616628085,
1511  -0.15497763380540566236,
1512  0.077768957501462190884,
1513  0.079360215708304482352,
1514  0.070390471145737557035,
1515  0.045116756706396796139,
1516  -0.064677235510244679428,
1517  0.042981004219577227665},
1518  {0,
1519  0,
1520  0,
1521  0,
1522  0,
1523  0,
1524  0,
1525  -0.046354224360547445494,
1526  3.4600023508388892957,
1527  -0.029070628904851493479,
1528  -0.030476400557346697284,
1529  -0.023356274628402451388,
1530  0.42581998625965733485,
1531  1.1914459601216282891,
1532  0.11545316275932009098},
1533  {0,
1534  0,
1535  0,
1536  0,
1537  0,
1538  0,
1539  0,
1540  0.0018078552644396556418,
1541  0.0040218048707196616537,
1542  0.00086395925657936829302,
1543  0.0010071336547866846251,
1544  0.0010978456712284635072,
1545  0.002842508081006394835,
1546  0.0071491121214516993934,
1547  0.0050018422461340821331},
1548  {0,
1549  0,
1550  0,
1551  0,
1552  0,
1553  0,
1554  0,
1555  1.2752968417470296192,
1556  -4.9999999984414591481,
1557  1.5920301262211007387,
1558  1.5139579024840714716,
1559  1.5241944165676217793,
1560  -2.2799951898153256735,
1561  -3.0288054012274616689,
1562  -0.35716168503710210569}};
1563 const double CSCTFPtMethods::AB_mu12F[4][15] = {{0,
1564  0,
1565  0,
1566  0.089491067646809183134,
1567  0.10739646024310070538,
1568  0.12549844133338972085,
1569  0.1194760053165676017,
1570  0.30626893792235526659,
1571  0.30009410052196983099,
1572  0.2690532347360728993,
1573  0.23688757461948814487,
1574  0.21899489554680626191,
1575  0.21285418228245533978,
1576  0.15525112596260939868,
1577  0.1770936851403528689},
1578  {0,
1579  0,
1580  0,
1581  -0.16463359422729287318,
1582  -0.18522613297525072906,
1583  -0.17065296570525056996,
1584  -0.1155394236109319045,
1585  -0.18380971440851143206,
1586  -0.1859966131117936905,
1587  -0.15845841533583629457,
1588  -0.12868208564229521862,
1589  -0.11875959710980291129,
1590  -0.13461549793851387835,
1591  -0.090885866696312114787,
1592  -0.14347961143957646546},
1593  {0,
1594  0,
1595  0,
1596  5.0479701928535670313e-06,
1597  -8.5107255627149016024e-05,
1598  -0.00031591725812981632723,
1599  -0.00010313307150067754737,
1600  6.1998863886012596167e-05,
1601  3.5535741450015050427e-05,
1602  -0.00033034534768735314718,
1603  0.00025570884563717226432,
1604  -3.2430491772480606483e-05,
1605  -3.928192779951495588e-05,
1606  0.0028259336045576349469,
1607  -0.00124297387660909117},
1608  {0,
1609  0,
1610  0,
1611  1.6276716966428210753,
1612  1.1244502885068945464,
1613  0.44061802755260442988,
1614  0.68081944372417602107,
1615  1.2892912513078853554,
1616  1.2098030702058406582,
1617  1.2406526312160988113,
1618  1.2588644895814975477,
1619  1.2343544778925670258,
1620  0.59901494992516879368,
1621  0.9845753793507600049,
1622  0.72134724334000244195}};
1623 const double CSCTFPtMethods::AB_mu13F[4][15] = {{0,
1624  0,
1625  0,
1626  0.11794009048617049018,
1627  0.14086291718874013879,
1628  0.16139997805131156561,
1629  0.15937656116892420788,
1630  0.34414162356457134173,
1631  0.34440937003010801964,
1632  0.31471704006829814837,
1633  0.27226322158180205069,
1634  0.24550847587442392594,
1635  0.24463956799494918082,
1636  0.16276628030235296141,
1637  0.183078101259807835},
1638  {0,
1639  0,
1640  0,
1641  -0.33781826981928775311,
1642  -0.37684193029815427067,
1643  -0.3462789133929889962,
1644  -0.25060466660909758163,
1645  0.99999999999361011138,
1646  -0.31182750009024823301,
1647  -0.25849818207822566896,
1648  -0.19230025423676194718,
1649  -0.15638199224610474514,
1650  -0.1860677216141479462,
1651  -0.089736178206281214109,
1652  -0.12591247971454427867},
1653  {0,
1654  0,
1655  0,
1656  -1.8754239266677112923e-05,
1657  -0.00019673769085880689952,
1658  -0.00052669062346466261493,
1659  -0.00030449439108233132979,
1660  0.00071230918348081078556,
1661  -0.00045941836356435766754,
1662  -0.00045256277284001311754,
1663  0.00064215185932415489584,
1664  0.00046541851817373622747,
1665  0.00019049878005133037782,
1666  0.0043442731774379211851,
1667  0.0015460291314785047125},
1668  {0,
1669  0,
1670  0,
1671  1.2452803747346312679,
1672  0.74944265252708708314,
1673  0.37224767027460281543,
1674  0.31339057767893530038,
1675  -2.0890914872066272956,
1676  0.95830873379506731347,
1677  1.0457163419608694888,
1678  1.1230565694613476868,
1679  1.1770351235140514845,
1680  0.65014435708651741042,
1681  1.129972103442078657,
1682  0.68378819802357770907}};
1683 const double CSCTFPtMethods::AB_mu14F[4][15] = {{0,
1684  0,
1685  0,
1686  0.12104944074518421415,
1687  0.10503732418316034936,
1688  0.099386285225076712035,
1689  0.15823526186568545593,
1690  0.25605688745800425643,
1691  0.39267951247468363407,
1692  0.32990417209085837191,
1693  0.29155610498631334693,
1694  0.25993455189370084923,
1695  0.27876104145873625839,
1696  0.17123500452830145435,
1697  0.1377101784898823178},
1698  {0,
1699  0,
1700  0,
1701  -0.34834159047255092156,
1702  -0.3100051372552997675,
1703  -0.19689884687529440876,
1704  -0.42846101907983596968,
1705  -0.19825501228941203036,
1706  -0.69127391031064666649,
1707  -0.37799519092326222536,
1708  -0.2813623780771447036,
1709  -0.21851172477385713555,
1710  -0.29451256139301251746,
1711  -0.11968566909919842178,
1712  -0.082430041079910781887},
1713  {0,
1714  0,
1715  0,
1716  0.0006127466960683334565,
1717  0.0018163416142308417157,
1718  0.0023773788535300438216,
1719  0.0015618030372482551073,
1720  0.0074745015886553429346,
1721  0.018200042017815356438,
1722  -0.00044263832599834499045,
1723  -0.00013173112084098321899,
1724  0.00048044142847010538715,
1725  -0.00028331509653057088387,
1726  0.0047044170533411542104,
1727  0.0077579174433774081635},
1728  {0,
1729  0,
1730  0,
1731  1.8999999999207801693,
1732  1.3811827661042299642,
1733  1.361253443017911513,
1734  0.16448981101549500772,
1735  1.7211759130995385458,
1736  0.30399083099267765196,
1737  0.92381972077138352351,
1738  0.98949705099683071818,
1739  1.0305604944719717331,
1740  0.18365768267421325732,
1741  0.96525152167887728893,
1742  1.1235655996998157313}};
1743 const double CSCTFPtMethods::AB_mu12R[4][15] = {{0,
1744  0.1017548888755877845,
1745  0.13020457985822880831,
1746  0.11777472840868662141,
1747  0.1352735458205116259,
1748  0.14797523226644127003,
1749  0.14891234013414389459,
1750  0.27354809992824791198,
1751  0.25530642162633726544,
1752  0.22812303598569572127,
1753  0.20002002697417936572,
1754  0.18418627647990021279,
1755  0.16918688305075030298,
1756  0.1508108314248207682,
1757  0.11470950874198342084},
1758  {0,
1759  -0.40835812179222591434,
1760  -0.4909339449226597929,
1761  -0.19396964458569518341,
1762  -0.18405457126044733052,
1763  -0.15348184403810183341,
1764  -0.11949446624665205352,
1765  -0.16735504431990988472,
1766  -0.15229364636923176102,
1767  -0.1292580848284842765,
1768  -0.10394284592826465163,
1769  -0.093240808678399900167,
1770  -0.073171468194201616519,
1771  -0.088574463928718608074,
1772  -0.066404462713869835677},
1773  {0,
1774  -0.00046324193156588387276,
1775  -0.0012328343527384165272,
1776  5.8536010291841255454e-05,
1777  5.3175743777652564014e-05,
1778  -0.00027992198289290446886,
1779  0.00017291608058844862988,
1780  -0.00050299670363365375,
1781  5.1602382309461525441e-05,
1782  -3.0783724988483899057e-05,
1783  0.00040527338575157016622,
1784  -7.4202404535834238977e-05,
1785  0.00011377538633743067547,
1786  0.0024019828117533849852,
1787  0.0024540507720086741569},
1788  {0,
1789  0.82326825991227925439,
1790  0.66225151266154569374,
1791  1.6047267765109303195,
1792  1.172660602794620921,
1793  0.91611151466846096891,
1794  0.923434361821059424,
1795  1.188325655620871224,
1796  1.1930557749505621423,
1797  1.1956156176382155554,
1798  1.2507536548585385106,
1799  1.1818666483459900896,
1800  0.74072890966654614253,
1801  0.49759993894696635808,
1802  1.0630007937555521202}};
1803 const double CSCTFPtMethods::AB_mu13R[4][15] = {{0,
1804  0,
1805  0,
1806  0.17152643870188713504,
1807  0.18220699353677527466,
1808  0.19718061346676321599,
1809  0.20409261783490945108,
1810  0.28630621673439216046,
1811  0.29827733143097401314,
1812  0.27230375589695204885,
1813  0.23990484313734378174,
1814  0.21461969319950535695,
1815  0.20904691238932027186,
1816  0.17455215996309358939,
1817  0.10530527961885094435},
1818  {0,
1819  0,
1820  0,
1821  -0.51329151983333287657,
1822  -0.43421697939765058205,
1823  -0.38701854807672181336,
1824  -0.29367743292763504037,
1825  -0.21320341238440754239,
1826  -0.27792002471255045082,
1827  -0.22893879370744105173,
1828  -0.17267579393834603385,
1829  -0.13655560753345002967,
1830  -0.13221415770245384391,
1831  -0.092817386598829765276,
1832  -0.047633719610788972931},
1833  {0,
1834  0,
1835  0,
1836  -0.00028330256767296205581,
1837  -0.00011104889576832950495,
1838  -0.0003659472931155986178,
1839  -0.0004494825869971541348,
1840  0.0012300659193085917292,
1841  -0.00026218872326014996304,
1842  -0.00020411464851317293609,
1843  8.8191777707538176329e-05,
1844  0.0004404702492616239173,
1845  -0.00067348981143074907862,
1846  0.0026726730925728564743,
1847  0.0067869187519593900115},
1848  {0,
1849  0,
1850  0,
1851  1.0806773148892279135,
1852  0.81710737240426545291,
1853  0.49165515886235822141,
1854  0.40288815951359424616,
1855  1.2315550399117412006,
1856  0.86296110777384626989,
1857  0.94745955410233306804,
1858  1.0617206089312878348,
1859  1.0876186592703975808,
1860  0.81349751271060222191,
1861  0.51174005866205685145,
1862  1.3970393581376403525}};
1863 const double CSCTFPtMethods::AB_mu14R[4][15] = {{0,
1864  0,
1865  0,
1866  0.11411457974213083666,
1867  0.14612498789299999125,
1868  0.15438328053344949065,
1869  0.17021962182813230036,
1870  0.23217608026225655671,
1871  0.17425716827684778476,
1872  0.28951128865791975198,
1873  0.26122027861775976021,
1874  0.23988161223077880679,
1875  0.21857963541170638555,
1876  0.15353493229270298581,
1877  0.099522853724256579722},
1878  {0,
1879  0,
1880  0,
1881  -0.32211539883453449429,
1882  -0.3332077022119345755,
1883  -0.28947013547326555516,
1884  -0.31678412927379157038,
1885  -0.20453745460807634671,
1886  -0.15291198578472323111,
1887  -0.37098278728491984602,
1888  -0.2755329314623077841,
1889  -0.22166866616574540383,
1890  -0.17253577136159981009,
1891  -0.10047612457203594638,
1892  -0.044726394456946053091},
1893  {0,
1894  0,
1895  0,
1896  0.0021189308480414714535,
1897  0.0017232488622970817526,
1898  0.0014181868364706309241,
1899  0.0020581588744611055593,
1900  0.0075216673068132632735,
1901  0.0091493927895737042766,
1902  -0.00026846347791510813061,
1903  -0.00028436387259422706009,
1904  -0.00033797061809048655314,
1905  -0.00032290147294203845477,
1906  0.0043983126453652227755,
1907  0.0087398105487928243185},
1908  {0,
1909  0,
1910  0,
1911  1.8999999998213816799,
1912  1.8999999999320695832,
1913  1.2588510283946776624,
1914  0.91969335359675130626,
1915  1.402123244759204912,
1916  1.6613910381353069745,
1917  0.73820877543905039087,
1918  0.87917754884863041909,
1919  0.86376276633290960394,
1920  0.6479179238685032205,
1921  1.0974109668483333913,
1922  1.4759522529227795395}};
1923 const double CSCTFPtMethods::AB_sig12F[4][15] = {{0,
1924  0,
1925  0,
1926  -0.0076412310580529349199,
1927  0.013106555291144636813,
1928  0.025063779434470568469,
1929  0.01934375127428624927,
1930  0.053326545670601563365,
1931  0.0093197497326487303143,
1932  0.0564902513339693782,
1933  0.032206519204039697757,
1934  -0.035023660563668873591,
1935  0.028213900213068406758,
1936  0.022784114759202493683,
1937  0.042615038347082211112},
1938  {0,
1939  0,
1940  0,
1941  0.11492024270448454593,
1942  0.021102150917381608253,
1943  -4.2436183419689021967e-08,
1944  1.3095720405656430252e-08,
1945  -0.037472879155788924033,
1946  0.84044166517252949511,
1947  0.15966830269465748238,
1948  0.37149319186299001316,
1949  0.84416754574977770353,
1950  0.033343799149249016278,
1951  6.6539790067633719506e-08,
1952  -1.3686068460749822862e-06},
1953  {0,
1954  0,
1955  0,
1956  0.0021104070024291496713,
1957  0.0018253795336503611177,
1958  0.0016311827288382637312,
1959  0.0021015267562687076422,
1960  0.0014715412047011698984,
1961  0.0018518237493182830404,
1962  0.0011606808553826068482,
1963  0.0013698268430796098002,
1964  0.0034437807938464026943,
1965  0.004439146916271847175,
1966  0.0056493862115556715831,
1967  0.0036722950074267479183},
1968  {0,
1969  0,
1970  0,
1971  0.90082232171804188514,
1972  1.4715701060292549762,
1973  0.38179435996930433106,
1974  0.90052675260749392994,
1975  1.8999999999893364411,
1976  -3.1887755118603267057,
1977  -0.93952603198035322674,
1978  -1.4200273548894686293,
1979  -1.3313935786554595975,
1980  0.84940608722578914147,
1981  1.5495399676596248728,
1982  0.1693217499087649458}};
1983 const double CSCTFPtMethods::AB_sig13F[4][15] = {{0,
1984  0,
1985  0,
1986  -0.016313221502792758094,
1987  -0.0012344271616210600317,
1988  0.022739050214132340566,
1989  0.019894322103056659434,
1990  0.070152538754905693907,
1991  0.079150371235280320148,
1992  0.079140295486563524974,
1993  0.073877518420634002982,
1994  0.082767871936852088766,
1995  0.021369139940037504971,
1996  -0.16477473035652481781,
1997  -0.055605012351420450567},
1998  {0,
1999  0,
2000  0,
2001  0.40633016978672931163,
2002  0.31906794350617523337,
2003  0.18604815325310422591,
2004  0.22274309425577301647,
2005  -0.038098997442242876765,
2006  -0.054611240400435009934,
2007  -0.050739779309414811959,
2008  -0.040691137768363160043,
2009  -0.046730053313388586478,
2010  0.34160850069918163863,
2011  2.4811837846155828657,
2012  1.1192582255168381788},
2013  {0,
2014  0,
2015  0,
2016  0.002149342213264975824,
2017  0.0019487436377840527436,
2018  0.0015505100309095498287,
2019  0.0017303935347270330437,
2020  0.0012782681837905638701,
2021  0.00077081684260600570775,
2022  0.00078212255888550081661,
2023  0.00085709016208379811951,
2024  0.00040671635301994584974,
2025  0.0047052241934661294398,
2026  0.0091387563643038176309,
2027  0.0065810423040581775625},
2028  {0,
2029  0,
2030  0,
2031  -0.47422656465701568118,
2032  -0.40214476680739164038,
2033  -0.807446632577722756,
2034  -1.1159653538458467192,
2035  1.1939302604989951995,
2036  1.2565879679975411332,
2037  1.2135620508983242516,
2038  1.3126461466411822876,
2039  1.3303466630446105778,
2040  -1.3225160658785197754,
2041  -4.99999996608921915,
2042  -3.3146932668018336265}};
2043 const double CSCTFPtMethods::AB_sig14F[4][15] = {{0,
2044  0,
2045  0,
2046  -0.023008179953388042255,
2047  -0.087196623845599563474,
2048  0.014221968418245287125,
2049  -0.021787486380662964697,
2050  0.066204099694590276548,
2051  0.13000102518515968542,
2052  0.086982120087735009806,
2053  0.086006702272218293892,
2054  0.090001124258988041138,
2055  0.013343436845426187576,
2056  0.058197437679117815235,
2057  0.015055422275464733217},
2058  {0,
2059  0,
2060  0,
2061  0.58165240914811378037,
2062  1.6572607614650631813,
2063  0.26374858984348420465,
2064  0.56929114216912790614,
2065  -0.031761470721266109318,
2066  6.8045996289272520086e-06,
2067  -0.040675205849149999315,
2068  -0.038282822732629118168,
2069  -0.041914122856581741139,
2070  0.73743983985226857492,
2071  -0.015956321538818291073,
2072  0.31976184596833290286},
2073  {0,
2074  0,
2075  0,
2076  0.0021194192496740956247,
2077  0.0031051396726804536899,
2078  0.0016030344438190185716,
2079  0.0037337124950505506081,
2080  0.00038923034858751352164,
2081  0.00435858958532461295,
2082  0.00085195563700394898957,
2083  0.0011709394391764601367,
2084  0.0007183252935922569693,
2085  0.0048589598885515790372,
2086  0.0035711294225182332179,
2087  0.0063024666771318840416},
2088  {0,
2089  0,
2090  0,
2091  -0.11185686895850970035,
2092  -2.8414639600328577274,
2093  -0.10356160152745381986,
2094  -1.2383039973901615038,
2095  1.8999999999999264144,
2096  -1.1268332104959208895,
2097  1.3399041969100440319,
2098  1.3441201753115872286,
2099  1.4026191965547902818,
2100  -2.9935330315178338978,
2101  1.8045262655928504536,
2102  -1.0659192090967317679}};
2103 const double CSCTFPtMethods::AB_sig12R[4][15] = {{0,
2104  -0.024837587047074519142,
2105  -0.038443755326854262,
2106  0.010789426545740953695,
2107  0.016714316978066363906,
2108  0.036977680482507623017,
2109  0.023903736191005935108,
2110  0.029083895240537907534,
2111  0.029312604029813168344,
2112  -0.035917405187485026974,
2113  0.026066086885230148329,
2114  -0.032213952427413247714,
2115  0.034901078113956519877,
2116  0.038079760873761171747,
2117  -0.087892299405550919356},
2118  {0,
2119  0.44916461963533510504,
2120  0.54293566642571933212,
2121  0.018977673263371359902,
2122  0.007932079958008179596,
2123  -9.4309201558850225267e-08,
2124  5.2699963039304353885e-09,
2125  0.41762122295566816987,
2126  0.24571510737505500299,
2127  1.3824483935622682296,
2128  0.59561566602531357262,
2129  1.3203480960823190671,
2130  -2.930413320681446443e-08,
2131  6.1897109794855492693e-08,
2132  1.3315902039120812717},
2133  {0,
2134  0.0022745078222873717048,
2135  0.0026499504248443657255,
2136  0.0019347176520538985831,
2137  0.0018882668324742895791,
2138  0.0015313004238581028917,
2139  0.0027721700163088574924,
2140  0.0019308246515342586576,
2141  0.0018496886131083114559,
2142  0.0027736328912367847269,
2143  0.0017558352148668789246,
2144  0.0025111400562838814485,
2145  0.0029777661392665598361,
2146  0.0043603280275831372836,
2147  0.0076843830377456264283},
2148  {0,
2149  -0.87241910961768964761,
2150  -1.0549928243465211963,
2151  1.8999999999485288615,
2152  1.6191292705343984792,
2153  -0.63912490618228612327,
2154  0.6398194632982362462,
2155  -2.0511755324568126113,
2156  -0.82689751226606089674,
2157  -4.4494753423464956654,
2158  -2.9771639242617897736,
2159  -4.40606108289291587,
2160  0.96642021015404266926,
2161  0.27486695110845749124,
2162  -4.9999999999409219242}};
2163 const double CSCTFPtMethods::AB_sig13R[4][15] = {{0,
2164  0,
2165  0,
2166  0.0036225404374523491324,
2167  0.020602869778294785608,
2168  0.031371735116656827846,
2169  0.044385023713376312027,
2170  0.069382928901304388725,
2171  0.062546773237833669379,
2172  0.066219648548455148362,
2173  0.066114165216842671335,
2174  0.064968538738919279218,
2175  0.051540701111634862341,
2176  -0.14520516686903245374,
2177  -0.029300157343301824753},
2178  {0,
2179  0,
2180  0,
2181  0.40723755341312423139,
2182  0.24719809506286585798,
2183  0.23886286984905105713,
2184  0.092388265632692603835,
2185  -0.038083245108582644556,
2186  -0.028685880355116981366,
2187  -0.031288010457665590969,
2188  -0.03072550558016601957,
2189  -0.028439782714834840882,
2190  8.984728870169156334e-07,
2191  1.7723836216527502074,
2192  0.79014046453097108724},
2193  {0,
2194  0,
2195  0,
2196  0.0018900875181423510037,
2197  0.0016683560130446085414,
2198  0.0015517088923086459762,
2199  0.0014400104759778459274,
2200  0.00031828667387254205856,
2201  0.0012881264560692922555,
2202  0.00092903731815355522061,
2203  0.0011795342366973096335,
2204  0.00083538332113278278117,
2205  0.0027329868075049237874,
2206  0.0097615976878032660602,
2207  0.0062076155003686038503},
2208  {0,
2209  0,
2210  0,
2211  -0.50487582216370696653,
2212  -0.21797446389232158492,
2213  -0.76054681766358056549,
2214  -0.16793042826918122556,
2215  1.3727842428768588512,
2216  1.5374702497476731011,
2217  1.4476836940468174042,
2218  1.4342564113548856852,
2219  1.3613055688979065483,
2220  0.85184694861412824096,
2221  -3.9945473104690254473,
2222  -2.8070030811132413717}};
2223 const double CSCTFPtMethods::AB_sig14R[4][15] = {{0,
2224  0,
2225  0,
2226  -0.035861540596622137889,
2227  -0.1163451242952821818,
2228  -0.3223054960806409075,
2229  0.028427718090213778546,
2230  0.082096556211394805525,
2231  -0.15497655162567502973,
2232  0.077768957491548482142,
2233  0.079360069813406791672,
2234  0.070390471478570457164,
2235  0.045116757562121037606,
2236  -0.064677236200079091244,
2237  0.042980998502111025794},
2238  {0,
2239  0,
2240  0,
2241  0.91272061044138930175,
2242  1.0649835191592700312,
2243  3.75045883898615795,
2244  0.20554379357162461117,
2245  -0.046354224360297492658,
2246  3.4599916691801695379,
2247  -0.029070628890768772379,
2248  -0.03047627128290695056,
2249  -0.02335627487211913364,
2250  0.42581999019359662029,
2251  1.1914459601497096042,
2252  0.11545322117611778179},
2253  {0,
2254  0,
2255  0,
2256  0.0023100741888551377598,
2257  0.0065631885708627574205,
2258  0.010122343115052657297,
2259  0.0021541859801294522929,
2260  0.0018078552644429368712,
2261  0.0040217835853228389373,
2262  0.00086395925415043829752,
2263  0.0010071371561587601478,
2264  0.0010978456762463116234,
2265  0.0028425080621485550661,
2266  0.0071491121463381828924,
2267  0.0050018423505071209906},
2268  {0,
2269  0,
2270  0,
2271  -0.85246870399928331707,
2272  -1.26158946908596592,
2273  -4.209205295019181392,
2274  0.071706289987386498397,
2275  1.2752968417552010827,
2276  -4.9999999999938600226,
2277  1.5920301264071463621,
2278  1.5139604617023065813,
2279  1.5241944088777494848,
2280  -2.2799952377707408679,
2281  -3.0288053889674522168,
2282  -0.35716203827983550312}};
2283 const double CSCTFPtMethods::AB_mu23[4][15] = {{0,
2284  0,
2285  0.040640362633691015648,
2286  0.04143975404558240816,
2287  0.04469283410800238554,
2288  0.050265056377639047436,
2289  0.057855720910264404888,
2290  0.040911062522024761734,
2291  0.054867130272661442103,
2292  0.054846907254368672258,
2293  0.046280965740868151848,
2294  0.038682214878367017497,
2295  0.047358821703414828719,
2296  0.037269955397813366027,
2297  0.015397788631092694522},
2298  {0,
2299  0,
2300  -0.30371495175799717581,
2301  -0.27234040198084696893,
2302  -0.27046501071411871431,
2303  -0.26067833814957336314,
2304  -0.26954736490580177843,
2305  -0.1426457415021130104,
2306  -0.23307410221367635961,
2307  -0.18779763084602629775,
2308  -0.11810763599908662147,
2309  -0.072929591279204522558,
2310  -0.079006610877654537273,
2311  -0.042031527428910676891,
2312  0.46158743398909729549},
2313  {0,
2314  0,
2315  -0.00025828047348465653929,
2316  -0.00027808828382601912237,
2317  -0.00020419752504549583318,
2318  -0.00028862468215624839229,
2319  -0.00051268154965345151715,
2320  0.00019102278127906206339,
2321  -0.00054091437361434690362,
2322  -0.00041573301097917752687,
2323  -0.000207953040744469843,
2324  0.0001988367837501522125,
2325  -0.00031823156270582506067,
2326  0.00033071671524661735465,
2327  0.00045799410811140088724},
2328  {0,
2329  0,
2330  0.72752266254137853974,
2331  1.0478492412845885617,
2332  0.60915246815134527214,
2333  0.26469232068298520488,
2334  0.036425986309331782886,
2335  0.7132004473344412121,
2336  0.4197273677305951578,
2337  0.44676889254736196211,
2338  0.60643361041043153392,
2339  0.7258089895367305644,
2340  0.21165518657016521575,
2341  0.40994342351793594537,
2342  -4.9999999982804226306}};
2343 const double CSCTFPtMethods::AB_mu24[4][15] = {{0,
2344  0,
2345  0,
2346  0.053011865513752004508,
2347  0.062832623407280213668,
2348  0.052170541013462037871,
2349  0.041027537810126024631,
2350  0.040854761324689348179,
2351  0.071402550009543430676,
2352  0.076745077029754082965,
2353  0.079391267110108354466,
2354  0.061688220309377483908,
2355  0.067651891693652002613,
2356  0.053009728431201032228,
2357  0.046716301280283124842},
2358  {0,
2359  0,
2360  0,
2361  -0.3616747887108062165,
2362  -0.45141581345418907434,
2363  -0.28705970459229912528,
2364  -0.2938013269353861312,
2365  -0.27050961323017558291,
2366  -0.55762354970371696972,
2367  -0.39024523502067204328,
2368  -0.31496123297823475085,
2369  -0.1983420756482438263,
2370  -0.17915991058479247,
2371  -0.1008896787182539112,
2372  -0.055261431747836577133},
2373  {0,
2374  0,
2375  0,
2376  -0.00011948386184051261938,
2377  -0.00041171189171825890067,
2378  4.5077223215480308541e-05,
2379  0.00064791923408717482999,
2380  0.00079626044366867831676,
2381  -0.00020119232396926791046,
2382  -0.00036565327240405023478,
2383  -0.00092893743231344070178,
2384  -0.00011554026166780945835,
2385  -0.00037143262941893379287,
2386  0.00034827979969636918729,
2387  0.00038063971268359605635},
2388  {0,
2389  0,
2390  0,
2391  1.2751116233058998883,
2392  0.70084162417453721439,
2393  0.90478318682312330878,
2394  0.6800676895845826353,
2395  0.50537353022178055362,
2396  0.054689818098332523832,
2397  0.35827703859892973126,
2398  0.37385157757276732404,
2399  0.50609881884151997067,
2400  0.24620464307424153039,
2401  0.33739943648039177893,
2402  0.61708181749152601903}};
2403 const double CSCTFPtMethods::AB_mu34[4][15] = {{0,
2404  0,
2405  0,
2406  0.019865692759581058541,
2407  0.028670254062000518486,
2408  0.0062000769568667634529,
2409  0.059000642112303595954,
2410  0.021075145497371470388,
2411  -0.058857073670921543351,
2412  0.022193946634618946789,
2413  0.032900966871925077517,
2414  0.022468452340586538007,
2415  0.017925131684213620187,
2416  0.021562743542542832376,
2417  0.0096332062965229867807},
2418  {0,
2419  0,
2420  0,
2421  -0.16028204223466294143,
2422  -0.24129340031911647446,
2423  -0.12167938296678502963,
2424  -0.48887217760468759664,
2425  -0.41129235965903232497,
2426  -0.0044574375495286568116,
2427  -0.20497526229305951251,
2428  -0.20945390137984670753,
2429  -0.133016919476993567,
2430  -0.09164367838969658675,
2431  -0.078156831196806775264,
2432  -0.027061677954361280235},
2433  {0,
2434  0,
2435  0,
2436  -7.2934093657490810247e-05,
2437  -0.0005630858306214800782,
2438  0.00056399922304054862787,
2439  -0.0014284170932996325277,
2440  0.00026420696996418537115,
2441  0.0019432020683277269335,
2442  5.0465562334091047629e-05,
2443  -0.00051405817655614813658,
2444  -0.0001476820743599914173,
2445  6.32019763480822774e-05,
2446  -0.00034513677440660433691,
2447  0.00057652344564092553817},
2448  {0,
2449  0,
2450  0,
2451  1.4981302006935997007,
2452  0.74196319813429467693,
2453  1.0145720473926143068,
2454  -0.61744054266046588531,
2455  -0.95877986541993265313,
2456  1.2494500863514628186,
2457  0.39038293713197214085,
2458  0.24923581566989111424,
2459  0.37358913393430570604,
2460  0.3656156971405563616,
2461  0.18480549227136852664,
2462  0.58966094664056056818}};
2463 const double CSCTFPtMethods::AB_mu51[4][15] = {{0.30091153701686212951,
2464  0.21726754617902110933,
2465  0.1456728385238945378,
2466  0.043250093988852815474,
2467  0,
2468  0,
2469  0,
2470  0,
2471  0,
2472  0,
2473  0,
2474  0,
2475  0,
2476  0,
2477  0},
2478  {-0.29502353719653978681,
2479  -0.19109266041343297982,
2480  -0.12108184175216289702,
2481  0.72288502126591014374,
2482  0,
2483  0,
2484  0,
2485  0,
2486  0,
2487  0,
2488  0,
2489  0,
2490  0,
2491  0,
2492  0},
2493  {0.00012873560389623916068,
2494  4.9291809907909536412e-05,
2495  -0.00021151799450913838594,
2496  0.00032645001523661659488,
2497  0,
2498  0,
2499  0,
2500  0,
2501  0,
2502  0,
2503  0,
2504  0,
2505  0,
2506  0,
2507  0},
2508  {1.5787330473223266658,
2509  1.6594505002776189784,
2510  1.8999999999615408974,
2511  -4.9999999999974642506,
2512  0,
2513  0,
2514  0,
2515  0,
2516  0,
2517  0,
2518  0,
2519  0,
2520  0,
2521  0,
2522  0}};
2523 const double CSCTFPtMethods::AB_mu52[4][15] = {
2524  {0, 0.28757434234141143747, 0.22290303793570814817, 0.17273536730279337448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2525  {0, -0.42706501927164292054, -0.32770564806566382376, -0.24329418737097086023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2526  {0, -1.4010615867360699891e-05, -0.00025119211587389166183, 0.0004052999487437024392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2527  {0, 1.3739531719045416924, 1.2264113571191062046, 1.5786429063982712062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
2528 const double CSCTFPtMethods::AB_mu53[4][15] = {
2529  {0, 0, 0.26147063359849342934, 0.21941755760197284575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2530  {0, 0, -0.62831662471165483641, -0.5360020970162280296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2531  {0, 0, -0.00054456170542904129128, -5.2823850021272572564e-05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2532  {0, 0, 0.90160457604797583642, 0.89939017343329996645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
2533 const double CSCTFPtMethods::AB_mu5[4][15] = {{-21.733893412375444143,
2534  -20.005957733042006197,
2535  -17.376452159382715479,
2536  -17.985193664266713398,
2537  0,
2538  0,
2539  0,
2540  0,
2541  0,
2542  0,
2543  0,
2544  0,
2545  0,
2546  0,
2547  0},
2548  {16.418302072038855499,
2549  13.469008846185953843,
2550  12.429426411511585115,
2551  13.9963454706980297,
2552  0,
2553  0,
2554  0,
2555  0,
2556  0,
2557  0,
2558  0,
2559  0,
2560  0,
2561  0,
2562  0},
2563  {-0.055045848107516816283,
2564  -0.040869122792827908275,
2565  -0.025980934073070366397,
2566  0.24210701585155450233,
2567  0,
2568  0,
2569  0,
2570  0,
2571  0,
2572  0,
2573  0,
2574  0,
2575  0,
2576  0,
2577  0},
2578  {1.8999999999801029382,
2579  1.7642902553920492004,
2580  1.8222993024358542513,
2581  1.7990108859658437979,
2582  0,
2583  0,
2584  0,
2585  0,
2586  0,
2587  0,
2588  0,
2589  0,
2590  0,
2591  0,
2592  0}};
2593 const double CSCTFPtMethods::AB_sig23[4][15] = {{0,
2594  0,
2595  -0.010357268292725162889,
2596  -0.016380566175621592839,
2597  -0.019840699509577841564,
2598  -0.0086381386262834487788,
2599  -0.003374013086892733819,
2600  -0.011814434815520722527,
2601  -0.00084060561010774765417,
2602  -0.017179591290799121894,
2603  0.0035639959717427907582,
2604  0.0047700899414562444867,
2605  0.010577222576560912568,
2606  0.02059122419865432041,
2607  0.011800502388303060752},
2608  {0,
2609  0,
2610  0.14187419330052780664,
2611  0.23041504331599421684,
2612  0.31155426692107951459,
2613  0.26259379394895659976,
2614  0.22004268983078550947,
2615  0.34945904479011519195,
2616  0.26666091393686436328,
2617  0.38600077292544848762,
2618  0.18137548923438057136,
2619  0.12968791855407682534,
2620  0.083124796029554012811,
2621  0.010205021983518632739,
2622  0.071807703627737515251},
2623  {0,
2624  0,
2625  0.0021465575441230368842,
2626  0.0022224405572812359205,
2627  0.002251545746496887504,
2628  0.0020929103385102986942,
2629  0.0020355680620528313757,
2630  0.0020702424442080634773,
2631  0.0018383336874655056836,
2632  0.0025004017593913750554,
2633  0.001949774989293934788,
2634  0.001939959052276510592,
2635  0.0017195026729185311498,
2636  0.0017139698182589511305,
2637  0.0019431688340545527453},
2638  {0,
2639  0,
2640  1.0630745945983459677,
2641  0.3265773132215800123,
2642  -0.65134529804641994044,
2643  -1.0524984197072553282,
2644  -1.0511032049676600764,
2645  -1.8483720507053891247,
2646  -1.3389601882033761449,
2647  -1.8551069091565570712,
2648  -0.98414331636612584209,
2649  -0.6063730875586622604,
2650  -0.38865902654376205394,
2651  0.43290122641744543941,
2652  -0.53818963658092677793}};
2653 const double CSCTFPtMethods::AB_sig24[4][15] = {{0,
2654  0,
2655  0,
2656  -0.019324652110983078085,
2657  -0.012002425151063148695,
2658  -0.02231499394993846988,
2659  -0.020935767372829247601,
2660  -0.066886386651832344108,
2661  -0.04726302695322702474,
2662  -0.04612160370322201941,
2663  -0.0015531365858601525916,
2664  0.013723579428071824154,
2665  0.016617430908367349096,
2666  0.030685502798890051251,
2667  0.002966505822064327124},
2668  {0,
2669  0,
2670  0,
2671  0.38549899615915406148,
2672  0.32619220210735977439,
2673  0.34706342932948464064,
2674  0.68304114341992616666,
2675  0.9242780677421167379,
2676  0.9319676477585573382,
2677  0.81979381283063590402,
2678  0.4452794101956150663,
2679  0.25406245303464969343,
2680  0.16553792723142907173,
2681  0.11438558724198649719,
2682  0.32271248995562107353},
2683  {0,
2684  0,
2685  0,
2686  0.0022171043021711415305,
2687  0.0021520852248391748179,
2688  0.0029359514546444223822,
2689  0.0021275297531913790229,
2690  0.0033328143360110804201,
2691  0.0024627396815788253105,
2692  0.0037704003574912637285,
2693  0.0023868429840302176834,
2694  0.0020064709921131366512,
2695  0.0021463956760972590677,
2696  0.0015026596429240307931,
2697  0.0023198792169650144825},
2698  {0,
2699  0,
2700  0,
2701  0.086888271968145289192,
2702  0.019758737551725517878,
2703  -0.17987080158763540938,
2704  -1.7261300785529098967,
2705  -2.6644913692232643498,
2706  -2.3141437377987581492,
2707  -1.8966055410735647158,
2708  -1.2208593823013969004,
2709  -0.653071688514877291,
2710  -0.34080947192812982571,
2711  -0.40136037854760781007,
2712  -1.4481957993152787534}};
2713 const double CSCTFPtMethods::AB_sig34[4][15] = {{0,
2714  0,
2715  0,
2716  -0.012400659358070893756,
2717  -0.009978612935288379282,
2718  -0.038466135371859951075,
2719  -0.01237181151567546232,
2720  -0.055252999880455823389,
2721  0.044965296368124886561,
2722  0.0020215713950015390746,
2723  0.0018486442968475248413,
2724  -0.011461744909954231161,
2725  0.00041337329418400558037,
2726  0.013323692621683664444,
2727  -0.0011526907758626363416},
2728  {0,
2729  0,
2730  0,
2731  0.11483786317689233247,
2732  0.17614008187718299681,
2733  0.35943587710185270767,
2734  0.31393248752071051255,
2735  0.81003852118825403483,
2736  2.8222370465191132238e-07,
2737  0.15870310756426259102,
2738  0.18489150278200164323,
2739  0.2277514636318530572,
2740  0.10863865522427501586,
2741  0.0081807264119966201232,
2742  0.10304189680104243465},
2743  {0,
2744  0,
2745  0,
2746  0.0023086535455528549819,
2747  0.002110004845191660542,
2748  0.0030013629537848584249,
2749  0.0021561954526101824794,
2750  0.0029044705640973510034,
2751  0.001129264217117841116,
2752  0.0020148575420415437004,
2753  0.0022924616641584912025,
2754  0.0022462281749858711323,
2755  0.001953151997646814745,
2756  0.0022772917353313174016,
2757  0.002205332383050566912},
2758  {0,
2759  0,
2760  0,
2761  1.4465873202620711524,
2762  0.018290937265976234261,
2763  -1.0034048194561047129,
2764  -1.5842206847979445339,
2765  -3.6001627650055127994,
2766  0.54269742517812191718,
2767  -0.54629346359450747794,
2768  -0.88004590995407039333,
2769  -1.0607951764628562596,
2770  -0.386770214915317323,
2771  0.73185507165720742329,
2772  -0.7791766852022135037}};
2773 const double CSCTFPtMethods::AB_sig51[4][15] = {{0.0019758831360956788901,
2774  0.046577756215196844392,
2775  -0.05341714103952534265,
2776  0.038119020055320480822,
2777  0,
2778  0,
2779  0,
2780  0,
2781  0,
2782  0,
2783  0,
2784  0,
2785  0,
2786  0,
2787  0},
2788  {0.85917433021287148431,
2789  3.6326347655629698252e-08,
2790  1.2753791210899891873,
2791  -0.02296026572998403209,
2792  0,
2793  0,
2794  0,
2795  0,
2796  0,
2797  0,
2798  0,
2799  0,
2800  0,
2801  0,
2802  0},
2803  {0.0018421521390111581656,
2804  0.0013309336424003853465,
2805  0.0024439910926895226824,
2806  0.00084506127844618638811,
2807  0,
2808  0,
2809  0,
2810  0,
2811  0,
2812  0,
2813  0,
2814  0,
2815  0,
2816  0,
2817  0},
2818  {-2.8012298341138666125,
2819  0.89678691204809468651,
2820  -4.9999999999931583616,
2821  1.899999999961135444,
2822  0,
2823  0,
2824  0,
2825  0,
2826  0,
2827  0,
2828  0,
2829  0,
2830  0,
2831  0,
2832  0}};
2833 const double CSCTFPtMethods::AB_sig52[4][15] = {
2834  {0, 0.015190485414726475483, 0.029402840059661459332, -0.03788341461455211473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2835  {0, 0.57880911770054299659, 0.086708840790683153199, 0.96143975820959226564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2836  {0, 0.0017431812547872745089, 0.0016439557621822475496, 0.0024073931799825833838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2837  {0, -1.4962480474138397657, 0.43719757342237014486, -2.5570410154645890621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
2838 const double CSCTFPtMethods::AB_sig53[4][15] = {
2839  {0, 0, 0.0048807272389305694088, 0.072311934401593946919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2840  {0, 0, 0.58247011082391897396, -0.031665576145842380673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2841  {0, 0, 0.0019289670515048294459, -0.00057867999502623438789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2842  {0, 0, -1.1919870686056455167, 1.8999999999981564969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
2843 const double CSCTFPtMethods::AB_sig5[4][15] = {{8.0056375707676412645,
2844  2.9947749309947320207,
2845  1.2367570923503916624,
2846  19.305763753429292962,
2847  0,
2848  0,
2849  0,
2850  0,
2851  0,
2852  0,
2853  0,
2854  0,
2855  0,
2856  0,
2857  0},
2858  {-30.026695140142752649,
2859  8.307837839928444712e-06,
2860  -2.4301404809023985365e-06,
2861  -99.99999999998537703,
2862  0,
2863  0,
2864  0,
2865  0,
2866  0,
2867  0,
2868  0,
2869  0,
2870  0,
2871  0,
2872  0},
2873  {0.49287055372768900918,
2874  0.59795299802278500945,
2875  0.72517967446074338422,
2876  1.499999999999955147,
2877  0,
2878  0,
2879  0,
2880  0,
2881  0,
2882  0,
2883  0,
2884  0,
2885  0,
2886  0,
2887  0},
2888  {-4.7146152770331735127,
2889  -1.6075341775064360128,
2890  0.81763143841002616785,
2891  -2.2550678981626472996,
2892  0,
2893  0,
2894  0,
2895  0,
2896  0,
2897  0,
2898  0,
2899  0,
2900  0,
2901  0,
2902  0}};
2903 const double CSCTFPtMethods::AB_rho123F[5][15] = {{0,
2904  0,
2905  0,
2906  0.22630471857151249204,
2907  -0.013379305064225920779,
2908  -0.095121706310405507168,
2909  0.090200403370782444856,
2910  0.068042852566437661554,
2911  0.079571614226972439687,
2912  0.088219335458001243988,
2913  0.11303324434571153378,
2914  0.10710141493712137251,
2915  0.026455786925147606325,
2916  0.046817553749737651769,
2917  0.039162183157051222437},
2918  {0,
2919  0,
2920  0,
2921  -0.10527570667400622251,
2922  0.12879264930099568187,
2923  0.15092684710998546804,
2924  0.007231087835331297814,
2925  -0.015515942667432135182,
2926  -0.028054920465640682814,
2927  -0.025513746642979444335,
2928  -0.038661914393439029969,
2929  -0.033319542824023648531,
2930  0.017459601922314698513,
2931  -0.015147480411169431461,
2932  -0.0040274062679487923622},
2933  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2934  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2935  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
2936 const double CSCTFPtMethods::AB_rho123R[5][15] = {{0,
2937  0,
2938  0,
2939  -0.50534064712241677508,
2940  0.15886026549683709974,
2941  0.24117112423743908289,
2942  0.19155165906038881807,
2943  0.082144222540501604657,
2944  0.079920425013872073428,
2945  0.10933442504482954183,
2946  0.11216820513068381793,
2947  0.14139192912438111605,
2948  0.081067695752670754228,
2949  0.068628530591297767782,
2950  0.105151142748966267},
2951  {0,
2952  0,
2953  0,
2954  0.4061798017233729241,
2955  -0.036885583937586396974,
2956  -0.10109132139709975373,
2957  -0.093632233538226902758,
2958  -0.023232568114674286008,
2959  -0.0085349848344330059985,
2960  -0.030347560681224468315,
2961  -0.04053489453902145434,
2962  -0.065178885697974128788,
2963  -0.016390211022617402759,
2964  -0.016822502733541477155,
2965  -0.062227091495819800149},
2966  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2967  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2968  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
2969 const double CSCTFPtMethods::AB_rho124F[5][15] = {{0,
2970  0,
2971  0,
2972  -0.58347458948865937867,
2973  0.40592680503129663361,
2974  0.01641809001879873664,
2975  0.11475806753693058859,
2976  -0.18048876743928712885,
2977  0.0068468168498605876462,
2978  -0.030777506509684072339,
2979  0.054741994048828152009,
2980  0.097187337842417537148,
2981  0.025067334674935798366,
2982  0.075946312071830973656,
2983  0.085523782829277653073},
2984  {0,
2985  0,
2986  0,
2987  0.4258108214245352463,
2988  -0.23106738109445768004,
2989  0.052661321450187599524,
2990  -0.038151728575192320192,
2991  0.1458955237360785584,
2992  0.024582860384737240111,
2993  0.040630008358215272124,
2994  -0.0014353305569224008437,
2995  -0.020931085629827921035,
2996  0.029892828324785188088,
2997  -0.014638662581363729928,
2998  -0.031371352411171941899},
2999  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3000  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3001  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
3002 const double CSCTFPtMethods::AB_rho124R[5][15] = {{0,
3003  0,
3004  0,
3005  -0.36581744112230984989,
3006  -0.016324931472307423197,
3007  -0.208168363607231649,
3008  -0.15220265819093764526,
3009  0.049548837240151813455,
3010  -0.046656697978846251029,
3011  0.037095174357064712722,
3012  0.035330048922600804095,
3013  0.074157637081893032494,
3014  0.036436813593929799626,
3015  0.14420567874993162061,
3016  0.19071920385708884815},
3017  {0,
3018  0,
3019  0,
3020  0.29009232235255510979,
3021  0.053824155318333753717,
3022  0.11835331987655291208,
3023  0.10356729636019955387,
3024  0.0067230075967922332814,
3025  0.11622283669531324746,
3026  0.0088495323612498635879,
3027  0.010530505354448004701,
3028  -0.015216911572413798284,
3029  0.029269517338766565251,
3030  -0.060899379503146208736,
3031  -0.10887509306211247406},
3032  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3033  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3034  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
3035 const double CSCTFPtMethods::AB_rho134F[5][15] = {{0,
3036  0,
3037  0,
3038  -0.18585738888975150696,
3039  0.13519522007618323123,
3040  0.28221167590680890092,
3041  0.18146765887707849707,
3042  0.1244677849160726324,
3043  0.31105116640597857414,
3044  -0.16202243055042145348,
3045  0.039896884577315043507,
3046  -0.37248330593247946929,
3047  -0.17019868779262120606,
3048  -0.029323371944494535518,
3049  0.149148671625682544},
3050  {0,
3051  0,
3052  0,
3053  0.14049664985969073649,
3054  -0.0029515280689123499225,
3055  -0.14984825183404815174,
3056  -0.053408519838017261272,
3057  -0.055260431588822184201,
3058  -0.24961446622059946243,
3059  0.16914774696773446361,
3060  0.026377838114293443439,
3061  0.38350727297664199966,
3062  0.20884886406321828689,
3063  0.088477254929584317478,
3064  -0.049311016665284521099},
3065  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3066  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3067  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
3068 const double CSCTFPtMethods::AB_rho134R[5][15] = {{0,
3069  0,
3070  0,
3071  -0.32424288544586399308,
3072  0.065574046096960866836,
3073  -0.49534925125377193833,
3074  -0.41401921450752909859,
3075  0,
3076  -0.054897105600349827004,
3077  -0.054121337557626672532,
3078  -0.29310761272328111904,
3079  -0.15103243717763431553,
3080  -0.24914325132296299969,
3081  0.07909932691386906134,
3082  0.12529327248093721781},
3083  {0,
3084  0,
3085  0,
3086  0.27459892265632174224,
3087  -0.0040433910166926267937,
3088  0.37706697672498318274,
3089  0.4151086501992986566,
3090  0,
3091  0.096654494887792055668,
3092  0.085974946019564915667,
3093  0.29549944312402365298,
3094  0.18974566842525927846,
3095  0.29979099594550706609,
3096  0.0234247525877835025,
3097  -0.040829919454425725456},
3098  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3099  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3100  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
3101 const double CSCTFPtMethods::AB_rho234[5][15] = {{0,
3102  0,
3103  0,
3104  -0.66569231418957641733,
3105  -0.16487806934241325263,
3106  -0.31385730203879769196,
3107  0.52187103693478709143,
3108  0.37489404891915861784,
3109  0.29994883232428287689,
3110  -0.12176552846395131968,
3111  0.023619718470720949682,
3112  -0.1231122737596004324,
3113  -0.013562360832243002678,
3114  0.153600562632957377,
3115  0.21939787654152581586},
3116  {0,
3117  0,
3118  0,
3119  0.5208746747250042608,
3120  0.18612484901444453778,
3121  0.27332732398493131409,
3122  -0.23999307292846960848,
3123  -0.25179957455310036929,
3124  -0.18381974435716647021,
3125  0.20095666079537191639,
3126  0.099861239186999406492,
3127  0.23937023494386369671,
3128  0.16677027620912032724,
3129  0.030275177235765518557,
3130  -0.0069954356449047749161},
3131  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3132  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3133  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
3134 const double CSCTFPtMethods::AB_rho512[5][15] = {
3135  {0, -0.10435343690000213612, 0.057141083389519162217, 0.023329220607928163878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3136  {0, 0.061466220874112284522, -0.001239563289620342415, -0.028051900619679361049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3137  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3138  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3139  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
3140 const double CSCTFPtMethods::AB_rho513[5][15] = {
3141  {0, 0, -0.089534856488077518843, -0.084337975857153926751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3142  {0, 0, 0.058028755308100914145, 0.033446616671726735193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3143  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3144  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3145  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
3146 const double CSCTFPtMethods::AB_rho523[5][15] = {
3147  {0, -0.48242311538441046137, 0.25779875833780019345, -0.45638836512748476304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3148  {0, 0.28941463846496195966, -0.15113497713160561897, 0.36832995181674366147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3149  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3150  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3151  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
3152 const double CSCTFPtMethods::AB_rho51B[5][15] = {{98.146234211833089489,
3153  199.99999999999047873,
3154  199.99591177997166369,
3155  -3.3007364270967505249,
3156  0,
3157  0,
3158  0,
3159  0,
3160  0,
3161  0,
3162  0,
3163  0,
3164  0,
3165  0,
3166  0},
3167  {-198.36420128721084666,
3168  199.99999999971919351,
3169  -68.130825896452520851,
3170  5.6331862234953877788,
3171  0,
3172  0,
3173  0,
3174  0,
3175  0,
3176  0,
3177  0,
3178  0,
3179  0,
3180  0,
3181  0},
3182  {138.59040321786872596,
3183  -199.99999999975074161,
3184  -75.103918757648003179,
3185  -3.3878388130039773785,
3186  0,
3187  0,
3188  0,
3189  0,
3190  0,
3191  0,
3192  0,
3193  0,
3194  0,
3195  0,
3196  0},
3197  {-35.107257005538130556,
3198  -78.172491143917071099,
3199  0.25111444908575936141,
3200  0.62856545928460827444,
3201  0,
3202  0,
3203  0,
3204  0,
3205  0,
3206  0,
3207  0,
3208  0,
3209  0,
3210  0,
3211  0},
3212  {3.1832394351004249522,
3213  4.981276803141434506,
3214  4.5629636390469778817,
3215  1.1898949050757507973,
3216  0,
3217  0,
3218  0,
3219  0,
3220  0,
3221  0,
3222  0,
3223  0,
3224  0,
3225  0,
3226  0}};
3227 const double CSCTFPtMethods::AB_rho52B[5][15] = {
3228  {0, -7.746830214751867949, -0.46812267787622985349, -0.41343591928047368489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3229  {0, 12.920758877131683917, 2.1193678084821674368, 0.85191889903041662091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3230  {0, -7.1168839095051934507, -2.1008659109588445624, -0.69884960118479577673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3231  {0, 1.239800569290119725, 0.49720027595717164459, 0.15699136302342500682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3232  {0, 1.2582151000263612772, 1.2238929501776998343, 0.88233142702097189236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
3233 const double CSCTFPtMethods::AB_rho53B[5][15] = {
3234  {0, 0, 105.35018363918895545, 62.071727282426813588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3235  {0, 0, -180.24672833591944254, -170.8283169841847382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3236  {0, 0, 109.89608697213377297, 171.57904987557179766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3237  {0, 0, -25.005328082184355765, -60.507830469988306277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3238  {0, 0, 3.0701361165201541681, 4.0540449945183194558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
3239 
3240 /*
3241  const double CSCTFPtMethods::AB_mu12F[4][15] =
3242  {
3243  {0, 0, 0, 0.089491197077583115038, 0.10739646114119137665, 0.12484612309276715836, 0.12107457559814104042, 0.32100648056577807399, 0.31559934186960514335, 0.27904201938970829566, 0.24107252259247277659, 0.22375609791218128986, 0.21315488055164613646, 0.15525112328982976218, 0.1770936432612582323},
3244  {0, 0, 0, -0.16463926016624763626, -0.18522613246415364774, -0.16806343812839372176, -0.11970576992958406604, -0.20980687790723681618, -0.21121432405796525256, -0.17357771168403127171, -0.13447695742874665736, -0.12462497601448342677, -0.13288174494405455284, -0.090885863966620059062, -0.14347955581137328274},
3245  {0, 0, 0, 5.3268434221882604226e-06, -8.5107300514016459483e-05, -0.00030578974891000469888, -0.0001603418756362900272, -0.00053214670979622651168, -0.00055664627477279766433, -0.00067837769016207102087, 9.8375418692391242495e-05, -0.00022734717951328333807, -4.6067317621643834487e-05, 0.0028259338550636840109, -0.0012429687928150318348},
3246  {0, 0, 0, 1.6276107021895365179, 1.1244503234167095851, 0.48381199206753811026, 0.6521829384503078364, 1.1967186256839628111, 1.0895619640773057668, 1.1511732463823045602, 1.1902521254981024423, 1.1633346478091382004, 0.57785407327314464165, 0.98457540775822882662, 0.72134750742279629687}
3247  };
3248 const double CSCTFPtMethods::AB_mu13F[4][15] =
3249  {
3250  {0, 0, 0, 0.11794009048617049018, 0.14088759484277332823, 0.16139997805145156473, 0.15924014633426775145, 0.34166140488658447438, 0.34702413335511289594, 0.32010695305030567592, 0.2754515982876076241, 0.24995233529692478802, 0.24473952965767659107, 0.16276629881527174271, 0.18307810125970991333},
3251  {0, 0, 0, -0.33781826981928775311, -0.37697407458444626149, -0.34627891339356470235, -0.2495281510358635102, 0.99999999999997757349, -0.31970550241711948036, -0.27098552536887665632, -0.19871096917742270271, -0.16382565983962907308, -0.18583964558555723934, -0.089736193434904326649, -0.12591247971420319041},
3252  {0, 0, 0, -1.8754239266677112923e-05, -0.00019661947183321836592, -0.00052669062346857333217, -0.00031426336450206927104, 0.00074135784198859060873, -0.00055327447631547889591, -0.00061397357196147500646, 0.0005513478108715907846, 0.00030281795212565223042, 0.00018809277538133742542, 0.0043442716153720252817, 0.0015460291315088062116},
3253  {0, 0, 0, 1.2452803747346312679, 0.74899299728776114193, 0.3722476702724113462, 0.32663500009046370076, -2.0530993850153551605, 0.94271305514658809699, 1.0071853490324427227, 1.0853085211028365986, 1.1204909555426088019, 0.64565209089225994443, 1.1299720140519045053, 0.68378819801841583814}
3254  };
3255 const double CSCTFPtMethods::AB_mu14F[4][15] =
3256  {
3257  {0, 0, 0, 0.12104944074518421415, 0.10503732418316034936, 0.099386285225076712035, 0.15823526186568545593, 0.25605688745800425643, 0.39267951247468363407, 0.32713902125758226314, 0.29153130557246226262, 0.26057754487562223566, 0.2787610414578671203, 0.17123500452835416219, 0.13771017848907712855},
3258  {0, 0, 0, -0.34834159047255092156, -0.3100051372552997675, -0.19689884687529440876, -0.42846101907983596968, -0.19825501228941203036, -0.69127391031064666649, -0.37133716526774046551, -0.28129274363985412588, -0.22005378496424787826, -0.29451256139072762297, -0.11968566909928436692, -0.082430041078971602597},
3259  {0, 0, 0, 0.0006127466960683334565, 0.0018163416142308417157, 0.0023773788535300438216, 0.0015618030372482551073, 0.0074745015886553429346, 0.018200042017815356438, -0.00037850173062430958817, -0.0001310013795632218917, 0.0004588064301207423791, -0.00028331509652615585, 0.0047044170533407638976, 0.0077579174434402355109},
3260  {0, 0, 0, 1.8999999999207801693, 1.3811827661042299642, 1.361253443017911513, 0.16448981101549500772, 1.7211759130995385458, 0.30399083099267765196, 0.93667281777770805551, 0.98970790081004300642, 1.0239036500876732561, 0.18365768268235896366, 0.9652515216778745355, 1.1235655997117797167}
3261  };
3262 const double CSCTFPtMethods::AB_mu12R[4][15] =
3263  {
3264  {0, 0.1017548888755877845, 0.13020457923539549561, 0.11777472840871647253, 0.135259653412823172, 0.15046936351520370789, 0.15033311904520965663, 0.27592431185059518306, 0.26261203783391384725, 0.23590422375068151317, 0.20542666917863602882, 0.18571989573685471209, 0.16892774190980749949, 0.15081083142543386111, 0.11470950869186374854},
3265  {0, -0.40835812179222591434, -0.49093394317051980424, -0.19396964458572663048, -0.18295086340095234601, -0.15883083260793051661, -0.12180030676387867961, -0.17142280024651118664, -0.16303048487901222741, -0.13932305333731584418, -0.10994759868937176162, -0.094596273339978872996, -0.074565522370199435742, -0.088574463930121957733, -0.066404462635971134299},
3266  {0, -0.00046324193156588387276, -0.0012328343343721989093, 5.853601028974310741e-05, 4.6551402962594318029e-05, -0.00037379710698656352843, 0.00013027765573736787424, -0.00058774094710430232688, -0.00026013465704373937588, -0.00031686525863970090673, 0.00019995024156887846161, -0.00013201225684480750316, 0.00012138566102844140695, 0.0024019828116854068101, 0.002454050768466287287},
3267  {0, 0.82326825991227925439, 0.6622515135971137612, 1.604726776511440578, 1.1913289041725036999, 0.92295363547504083446, 0.88387376488231517158, 1.1710955379641101448, 1.1237408525988819008, 1.090451903341310258, 1.1596094691084575246, 1.1568643334317050275, 0.75952946727681092121, 0.49759993894885606869, 1.063000794824717099}
3268  };
3269 const double CSCTFPtMethods::AB_mu13R[4][15] =
3270  {
3271  {0, 0, 0, 0.17151724172609877916, 0.18220699354740277354, 0.1971806134666532484, 0.20374010863761735091, 0.28349946603158304725, 0.29955890850476568632, 0.27687904734885987468, 0.24303184602970617778, 0.21558087490443028633, 0.20880080988319943414, 0.17455215996556627811, 0.10530527997452461542},
3272  {0, 0, 0, -0.51324304402681020232, -0.43421697944855691675, -0.38701854807632224409, -0.29241935343763897359, -0.20871597367009694923, -0.28188419096433631195, -0.24021461843739672082, -0.17856499996545552311, -0.13799534780447694771, -0.13259660131895426027, -0.092817386598798845565, -0.047633720002815273242},
3273  {0, 0, 0, -0.0002832228831297351054, -0.00011104889602297010609, -0.00036594729311201532962, -0.00045307390748000288998, 0.0013004023247916438651, -0.00030382496669450169283, -0.00035621571030299009489, -1.5526317287871784553e-05, 0.00040373454108751040317, -0.00066646698390456816929, 0.0026726730924115484414, 0.0067869187429414031335},
3274  {0, 0, 0, 1.0807877438092829969, 0.81710737216052486964, 0.4916551588634892056, 0.41353040356462944516, 1.2440300524121079562, 0.85083388011817795427, 0.89970477318504005204, 1.0198709857106920129, 1.0706254801939762977, 0.82353411895961936562, 0.51174005860627325148, 1.3970393515240444593}
3275  };
3276 const double CSCTFPtMethods::AB_mu14R[4][15] =
3277  {
3278  {0, 0, 0, 0.11411457974213083666, 0.14612498789299999125, 0.15438328053344949065, 0.17021962182813230036, 0.23217608026225655671, 0.17425716827684778476, 0.28951128865791975198, 0.26122027861775976021, 0.24000759859415121689, 0.21857963541141381403, 0.1535349322927131166, 0.099523188319583275052},
3279  {0, 0, 0, -0.32211539883453449429, -0.3332077022119345755, -0.28947013547326555516, -0.31678412927379157038, -0.20453745460807634671, -0.15291198578472323111, -0.37098278728491984602, -0.2755329314623077841, -0.22199156842477890672, -0.17253577136104261691, -0.10047612457202366454, -0.044726844357957776244},
3280  {0, 0, 0, 0.0021189308480414714535, 0.0017232488622970817526, 0.0014181868364706309241, 0.0020581588744611055593, 0.0075216673068132632735, 0.0091493927895737042766, -0.00026846347791510813061, -0.00028436387259422706009, -0.00034200230860254732116, -0.00032290147293964632531, 0.0043983126453619632301, 0.0087397754915012667437},
3281  {0, 0, 0, 1.8999999998213816799, 1.8999999999320695832, 1.2588510283946776624, 0.91969335359675130626, 1.402123244759204912, 1.6613910381353069745, 0.73820877543905039087, 0.87917754884863041909, 0.86223584668569153155, 0.64791792386949675908, 1.0974109668486700109, 1.4759477521933648259}
3282  };
3283 const double CSCTFPtMethods::AB_sig12F[4][15] =
3284  {
3285  {0, 0, 0, -0.0072662909883246416462, 0.013719915012791324485, 0.025391731980074987163, 0.019339420068030886007, 0.053326545665516936201, 0.0093197486670135200326, 0.056490074687743196957, 0.032206767426382759689, -0.035023634200557013374, 0.028213900230512060918, 0.022784146439966394826, 0.042614741605066668029},
3286  {0, 0, 0, 0.10823046777530002938, 0.01878931206060864903, 7.6655861869050212487e-08, 2.6103505241896474143e-08, -0.037472879148333762545, 0.84044168914522066061, 0.1596730107851508651, 0.37148947348342054031, 0.84416665360404552487, 0.033343799167991072796, -3.0637296741242714404e-08, 1.0763679972065204327e-07},
3287  {0, 0, 0, 0.0021057909484815525922, 0.001787927570908084832, 0.0016044920308954427855, 0.0021017028916686941731, 0.0014715412052789850379, 0.0018518237683180956143, 0.0011606826124997866867, 0.0013698228830716840596, 0.0034437828228962175797, 0.0044391469161792901366, 0.0056493798171646505621, 0.0036723245279772593827},
3288  {0, 0, 0, 0.99067714489116509569, 1.5044636171885787945, 0.35129633070368504466, 0.90079093171596547052, 1.8999999999893355529, -3.1887755854982775539, -0.93955730039878893045, -1.4200124454624811765, -1.3313909517381459224, 0.84940608625462010739, 1.5495433266818319229, 0.16930559499641162358}
3289  };
3290 const double CSCTFPtMethods::AB_sig13F[4][15] =
3291  {
3292  {0, 0, 0, -0.018414620671899382953, -0.0063421183947521258401, 0.019621855504556442312, 0.022067753543131330557, 0.070152538754796989195, 0.079150371235707506212, 0.079140295486170103567, 0.073877518421508400759, 0.082767871937039536046, 0.021369139938776086918, -0.16477473170806974934, -0.055605010807305503551},
3293  {0, 0, 0, 0.43219221841769328574, 0.38483806508941348357, 0.21697207053032832591, 0.2101344849017230676, -0.038098997442349964715, -0.054611240401914125375, -0.050739779308866243823, -0.040691137769481910968, -0.046730053313653409364, 0.34160850071169007736, 2.4811837948791053421, 1.119258204820076763},
3294  {0, 0, 0, 0.0021781382803023824693, 0.0019875143955268028371, 0.0016285688513061977872, 0.0016305488842204146627, 0.0012782681837918978725, 0.00077081684258208809941, 0.00078212255890452531213, 0.00085709016204132926989, 0.00040671635300752262757, 0.0047052241935035543641, 0.009138756403904884848, 0.006581042287601297433},
3295  {0, 0, 0, -0.57972924553460980501, -0.68468820136347818828, -0.97038451810774917217, -1.0717793859812905222, 1.1939302605060790885, 1.256587967991098731, 1.2135620509254290145, 1.3126461466228707131, 1.3303466630418721017, -1.3225160659219186154, -4.9999999661396543615, -3.3146932332622203177}
3296  };
3297 const double CSCTFPtMethods::AB_sig14F[4][15] =
3298  {
3299  {0, 0, 0, -0.023008179953388042255, -0.087196623845599563474, 0.014221968418245287125, -0.021787486380662964697, 0.066204099694590276548, 0.13000102518515968542, 0.088152940985918665229, 0.086006702296547610231, 0.090001124259240672387, 0.013343436852110169069, 0.058197437719081840379, 0.01505542228323810891},
3300  {0, 0, 0, 0.58165240914811378037, 1.6572607614650631813, 0.26374858984348420465, 0.56929114216912790614, -0.031761470721266109318, 6.8045996289272520086e-06, -0.041841810393849120098, -0.038282822754810812149, -0.041914122856969986131, 0.7374398397890853385, -0.015956321800768006464, 0.3197618459139073277},
3301  {0, 0, 0, 0.0021194192496740956247, 0.0031051396726804536899, 0.0016030344438190185716, 0.0037337124950505506081, 0.00038923034858751352164, 0.00435858958532461295, 0.00082943931444573449057, 0.0011709394337778087757, 0.00071832529359430491878, 0.0048589598883952743805, 0.0035711294356746648912, 0.0063024666768379707105},
3302  {0, 0, 0, -0.11185686895850970035, -2.8414639600328577274, -0.10356160152745381986, -1.2383039973901615038, 1.8999999999999264144, -1.1268332104959208895, 1.3179872870842119781, 1.3441201747507667275, 1.4026191965487366797, -2.9935330314488335368, 1.8045262602213363312, -1.0659192089400841841}
3303  };
3304 const double CSCTFPtMethods::AB_sig12R[4][15] =
3305  {
3306  {0, -0.024707713454999773173, -0.038443755326060806421, 0.010871842479360502298, 0.016714368961743577419, 0.038685029953164279393, 0.02390372984130531564, 0.029083895236059510714, 0.029312604030381151504, -0.035917405189748431715, 0.026066042529095882763, -0.032213952423461089669, 0.034901078112193437142, 0.038079734973208073656, -0.087892299438871682171},
3307  {0, 0.40843932424117945779, 0.54293566641814372531, 0.018832795613827488235, 0.0079319743967482744806, -1.3344384624776675641e-07, 2.4731323841273300523e-08, 0.41762122302294357734, 0.2457151073649548878, 1.3824483935679199309, 0.59561752502182341296, 1.3203480959501494585, -2.9300474866690573439e-08, -5.0505151304169881854e-08, 1.33159020410869533},
3308  {0, 0.0023254028360933497871, 0.002649950424820056178, 0.0019277178040729803059, 0.0018882653538893393562, 0.0014641263016252968436, 0.0027721702922578615909, 0.0019308246516262011702, 0.0018496886131080477779, 0.0027736328913035065286, 0.0017558336048563169887, 0.0025111400562683348567, 0.0029777661394122844143, 0.0043603321450967087031, 0.0076843830389115574953},
3309  {0, -0.57683271957068615876, -1.054992824312653843, 1.899999999963281061, 1.6191284732501969312, -0.81388064201435006417, 0.63981909200404141203, -2.051175532753063635, -0.82689751221137741677, -4.4494753422774939722, -2.9771693614691576713, -4.4060610825726218565, 0.96642021012703760441, 0.2748708997533949594, -4.9999999999408935025}
3310  };
3311 const double CSCTFPtMethods::AB_sig13R[4][15] =
3312  {
3313  {0, 0, 0, 0.00360542021125605152, 0.020602869777912733579, 0.03338432349679926886, 0.044385023713335559903, 0.069822381089744381399, 0.062546773236855104927, 0.066219648547959142348, 0.06611416521692425885, 0.06497177188943759063, 0.051540701348302922491, -0.14520516680358769301, -0.029300157339847341526},
3314  {0, 0, 0, 0.4085534255831447803, 0.24719809506838325008, 0.22799199818643953175, 0.092388265633298341517, -0.038646029439082504875, -0.028685880353590667569, -0.031288010457215374716, -0.030725505580235051156, -0.028415643540171672127, 9.3603867356737910366e-07, 1.7723836209535592801, 0.79014046450754893414},
3315  {0, 0, 0, 0.0018866521687494811326, 0.0016683560130498699577, 0.0014583718343991452365, 0.0014400104759788815573, 0.00030960964835738120741, 0.0012881264560630871496, 0.00092903731815353960809, 0.0011795342366904821955, 0.00083536183942388160095, 0.0027329868065747320999, 0.0097615976862859086399, 0.0062076155002320975926},
3316  {0, 0, 0, -0.51153770481744431642, -0.21797446392083433264, -0.73366402168423128227, -0.16793042827415577412, 1.3634759226070360949, 1.5374702497725512007, 1.4476836940432020739, 1.4342564113539701953, 1.3603273178484918127, 0.85184624997002589275, -3.994547309503146959, -2.8070030810796544607}
3317  };
3318 const double CSCTFPtMethods::AB_sig14R[4][15] =
3319  {
3320  {0, 0, 0, -0.035861540596622137889, -0.1163451242952821818, -0.3223054960806409075, 0.028427718090213778546, 0.082096556211394805525, -0.15497655162567502973, 0.077768957491548482142, 0.079360069813406791672, 0.070390830092954659314, 0.045116757562570351803, -0.064677236200661736287, 0.042980998498605572922},
3321  {0, 0, 0, 0.91272061044138930175, 1.0649835191592700312, 3.75045883898615795, 0.20554379357162461117, -0.046354224360297492658, 3.4599916691801695379, -0.029070628890768772379, -0.03047627128290695056, -0.023352404883102650252, 0.42581999018403432489, 1.1914459601584066473, 0.11545322121954273986},
3322  {0, 0, 0, 0.0023100741888551377598, 0.0065631885708627574205, 0.010122343115052657297, 0.0021541859801294522929, 0.0018078552644429368712, 0.0040217835853228389373, 0.00086395925415043829752, 0.0010071371561587601478, 0.0010978464681265795791, 0.0028425080621420056176, 0.007149112146344593563, 0.0050018423505699708895},
3323  {0, 0, 0, -0.85246870399928331707, -1.26158946908596592, -4.209205295019181392, 0.071706289987386498397, 1.2752968417552010827, -4.9999999999938600226, 1.5920301264071463621, 1.5139604617023065813, 1.5240783568834928019, -2.2799952377284649074, -3.0288053889868216118, -0.35716203856376926851}
3324  };
3325 const double CSCTFPtMethods::AB_mu23[4][15] =
3326  {
3327  {0, 0, 0.040640362633691015648, 0.041439895659457770538, 0.044692834118692070788, 0.050265059196205767733, 0.057855781845786831419, 0.040911062011686524786, 0.054867129215603105408, 0.054950002550886931085, 0.04628096985537989011, 0.0386822143533562951, 0.047358821668104643388, 0.037269724720912909832, 0.015397965365282755001},
3328  {0, 0, -0.30371495175799717581, -0.27234144993672854129, -0.27046501074758982908, -0.26067835847765863377, -0.26954762805984294749, -0.1426457406009814799, -0.23307410258067257081, -0.18832397122889199537, -0.11810764453638407379, -0.07292958939195615109, -0.079006610759413689604, -0.042031026026755985425, 0.46158683411526485463},
3329  {0, 0, -0.00025828047348465653929, -0.00027809037187354816549, -0.00020419752530604902245, -0.00028862476294847243165, -0.0005126844925482460175, 0.00019102281095152457563, -0.00054091429879001191611, -0.00041787351999948647895, -0.00020795331916966821283, 0.00019883680996083264846, -0.00031823156140864297236, 0.00033073555709824023052, 0.00045798264976761775616},
3330  {0, 0, 0.72752266254137853974, 1.0478460846247070748, 0.60915246823586477465, 0.26469225006383612087, 0.03642520365582532782, 0.71320044222334588735, 0.41972736248122854974, 0.44434170513663123758, 0.60643357599054859008, 0.72580899653377339842, 0.21165518987418086017, 0.40996107847780505207, -4.9999999999467634737}
3331  };
3332 const double CSCTFPtMethods::AB_mu24[4][15] =
3333  {
3334  {0, 0, 0, 0.053011865513752004508, 0.06313177697029372093, 0.05352084682330453258, 0.041027537820005684222, 0.040854761316574075836, 0.071402550245544899044, 0.07736719855382165334, 0.079438040698963527375, 0.061688220302594951039, 0.067651891731527510898, 0.052963807889076452984, 0.046716371658662027289},
3335  {0, 0, 0, -0.3616747887108062165, -0.44478796457305330714, -0.29166259789877752029, -0.29380132699441008359, -0.27050961328514633308, -0.55762354967613492196, -0.3936011893747999868, -0.31526772180018108882, -0.19834207563864661439, -0.17915991072026557496, -0.10076823982822344372, -0.055261578442674569311},
3336  {0, 0, 0, -0.00011948386184051261938, -0.0004377035707288234748, -1.5096856666038595447e-06, 0.00064791923379202854411, 0.00079626044396309916297, -0.00020119232514042466927, -0.00038577749709032405209, -0.00093011706547101180315, -0.00011554026119632592904, -0.00037143263105509765351, 0.00035067034962929022942, 0.00038063551578985043659},
3337  {0, 0, 0, 1.2751116233058998883, 0.73216838887711510608, 0.89682810391191047916, 0.68006768939986506073, 0.50537352978830141215, 0.054689817039132032628, 0.3551147830680470574, 0.37259002091189941108, 0.50609881889683205891, 0.24620464257366159178, 0.33817952977709087037, 0.61708106073631430188}
3338  };
3339 const double CSCTFPtMethods::AB_mu34[4][15] =
3340  {
3341  {0, 0, 0, 0.019865692759581058541, 0.028669852043158385729, 0.0061995800427958030338, 0.059000299883545020974, 0.021075145735423551907, -0.058857041409780444519, 0.024667592379148572251, 0.032653808103308000488, 0.022458031770245540787, 0.01792514222572837157, 0.021562783607549321913, 0.0096216089563556771863},
3342  {0, 0, 0, -0.16028204223466294143, -0.24129291619361287191, -0.12167690740695827345, -0.48886768749438458403, -0.41129236199911262117, -0.0044580020884623077632, -0.21747416644594624868, -0.20792639176268520873, -0.13295152726891287798, -0.091643743275156591688, -0.078156998408433070447, -0.027032449911459321273},
3343  {0, 0, 0, -7.2934093657490810247e-05, -0.00056307052572997283533, 0.00056401627209529397056, -0.001428418455371307811, 0.00026420696280349427725, 0.0019432058653304881864, -1.4101588242989779309e-05, -0.00050638968612514670842, -0.00014734760272619207332, 6.320198060251979149e-05, -0.00034513817764213352126, 0.00057747077087608850686},
3344  {0, 0, 0, 1.4981302006935997007, 0.74195678633729156282, 1.0145865296590363958, -0.61742551412101398522, -0.95877987406953490979, 1.2494426320923743834, 0.36142361465918354524, 0.25628769594642597518, 0.3741147629105586736, 0.365615069336391596, 0.18480357829838381378, 0.5901979250242155306}
3345  };
3346 const double CSCTFPtMethods::AB_mu51[4][15] =
3347  {
3348  {0.30968585217406008336, 0.22114029366912527075, 0.14560838945559098634, 0.043050218711845451847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3349  {-0.317391172523608045, -0.19748764832039111816, -0.12103956190508825819, 0.72463403638600509815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3350  {-0.00010752106748940020668, -4.6072314728751336248e-05, -0.00020800584810109703929, 0.00033077669460946062651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3351  {1.5451989748370562605, 1.5930686622089456073, 1.8999999999979138021, -4.9999999999877386969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3352  };
3353 const double CSCTFPtMethods::AB_mu52[4][15] =
3354  {
3355  {0, 0.29089555712829096024, 0.22409035657291778709, 0.17273536730257388339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3356  {0, -0.43681921590138955702, -0.33001737647025841671, -0.24329418737026767272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3357  {0, -0.00010643314222352778407, -0.00031956169647435724371, 0.00040529994876056351771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3358  {0, 1.3951067657640845443, 1.2698178861615445623, 1.5786429063985620846, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3359  };
3360 const double CSCTFPtMethods::AB_mu53[4][15] =
3361  {
3362  {0, 0, 0.26038412925299281309, 0.21941755760271858255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3363  {0, 0, -0.61721194828669312393, -0.53600209701934642403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3364  {0, 0, -0.00056428232649683839756, -5.2823850044021085706e-05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3365  {0, 0, 0.94850025872825582951, 0.89939017342749116857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3366  };
3367 const double CSCTFPtMethods::AB_mu5[4][15] =
3368  {
3369  {-21.773943957733699506, -20.451306495642462835, -17.619293017663956391, -17.985193664137248959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3370  {15.981287025955555947, 13.662338397855792849, 12.698834069804624036, 13.996345470486554419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3371  {-0.061346409143613597759, -0.030528939724191926641, -0.021492236674697007964, 0.24210701584829638633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3372  {1.8075565358091265633, 1.6365385762740469744, 1.7445149566969406774, 1.7990108859790623352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3373  };
3374 const double CSCTFPtMethods::AB_sig23[4][15] =
3375  {
3376  {0, 0, -0.0094472830143822704441, -0.010353883065660221541, -0.015601327378638136373, -0.0083991887622088135662, -0.0038116819341330646607, 0.017694776574912907813, -3.0418423374763137179e-05, -0.017083474678572161537, 0.0030620488929764769909, 0.017250003890826686587, 0.0093475052428345049849, 0.020375148710649073486, 0.010825941272754753195},
3377  {0, 0, 0.12318105169788677589, 0.16505972139582619773, 0.263159083213652778, 0.26421790122008942392, 0.23011122781312612351, -0.0029907504110232440049, 0.2662480243269049196, 0.37307765589709518395, 0.18835664858385614551, -0.0037750353709654835277, 0.098617292357490976551, 0.012272312117637594608, 0.08273140888309518659},
3378  {0, 0, 0.0021613847603855311508, 0.0021330265880287833241, 0.0021695206819646582243, 0.0020640370557124072468, 0.0020048207254594494972, 0.0014767405252029560357, 0.0017674128894213845219, 0.0025204999982808081078, 0.0019567585272304921853, 0.0017176170124729862442, 0.0017211733630609592216, 0.0017231460782773917826, 0.0019575057733585408438},
3379  {0, 0, 1.2774261918853997422, 0.78296130809877573231, -0.37439956367077026345, -1.069757156759185035, -1.1169051718060274414, 1.8723437538832861105, -1.3529025051179361938, -1.7597610310938422984, -1.0397927716846628865, 1.751460152036041773, -0.5607845639862726328, 0.38169069644802128272, -0.67820448402866129189}
3380  };
3381 const double CSCTFPtMethods::AB_sig24[4][15] =
3382  {
3383  {0, 0, 0, -0.019324652110983078085, -0.014097627204506661333, -0.024009933572701678411, -0.020935767487239648893, -0.066886386670231376406, -0.04726302695081713301, -0.04581885223042039823, -0.0022530391239994115166, 0.012941230376038602781, 0.015015675163022421112, 0.040290964473749905916, 0.00057743831082023152831},
3384  {0, 0, 0, 0.38549899615915406148, 0.36399829139474371154, 0.35169918487968249154, 0.68304114463142939773, 0.924278067861450503, 0.93196764772733042825, 0.81473285865204680967, 0.45546643991332796952, 0.26322508591964527414, 0.1818180989316907914, 0.043498303978469606002, 0.34659825827423174083},
3385  {0, 0, 0, 0.0022171043021711415305, 0.0021747338101839835782, 0.0029940267352052294877, 0.0021275297553744344087, 0.00333281433667635121, 0.0024627396815433810068, 0.0037669222073941294529, 0.0023976648979574955584, 0.0020217750711657845979, 0.0021837076490728861596, 0.0012144425569054367355, 0.002374985696282168237},
3386  {0, 0, 0, 0.086888271968145289192, -0.16601964501317648115, -0.17314993364576378165, -1.7261300821354781387, -2.664491369228591644, -2.3141437377298186284, -1.8792879627112784036, -1.2606774796648803072, -0.69467662222261306049, -0.43108677719729054933, 0.10302409352825184219, -1.5414538145867078267}
3387  };
3388 const double CSCTFPtMethods::AB_sig34[4][15] =
3389  {
3390  {0, 0, 0, -0.011900935391395110405, -0.0099786129323683296632, -0.03846567510080637492, -0.012370991149719094346, -0.055252999502503549745, 0.044966193083524036433, -0.00027213472446938578864, 0.0021399237064631750245, -0.012043959370962682362, 0.00030539002522898643643, 0.013165853183139508698, 0.00031172134354808022152},
3391  {0, 0, 0, 0.111273956912252725, 0.1761400818445788552, 0.35943108699238940362, 0.31392703938750776693, 0.81003851538686244549, 7.9026928716339345238e-07, 0.17123782818945096351, 0.18309348520126816906, 0.23474101370135130873, 0.10971023080469560762, 0.010540318711930948131, 0.097075156214686139644},
3392  {0, 0, 0, 0.0023008684843514003171, 0.0021100048451113389419, 0.0030013525121405674675, 0.0021561747583490843347, 0.0029044705579195947802, 0.0011292473915371563191, 0.0020602518937551739589, 0.0022831018423480099744, 0.0022549864255083677464, 0.0019554188567418107417, 0.0022790974638247727541, 0.002187312548748918551},
3393  {0, 0, 0, 1.4773740578325260664, 0.018290937563995572634, -1.0033798535764466564, -1.5842086993923574223, -3.6001627441020871423, 0.54264104475808871975, -0.59687853097356946552, -0.87818291672479875665, -1.1101641260377899112, -0.39819220908857072549, 0.64153798465161648856, -0.77169187422540497234}
3394  };
3395 const double CSCTFPtMethods::AB_sig51[4][15] =
3396  {
3397  {0.00020466983430282321282, 0.047505782475661187392, -0.053417141048077265708, 0.039017115805722264732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3398  {0.91340592460032132838, -2.3265261778725176978e-09, 1.2753791211682063977, -0.024097491702141229236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3399  {0.0018152770979815904123, 0.0012666078956331508661, 0.0024439910928461300484, 0.00081068594431841524677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3400  {-2.9577250260529730497, 0.83105421659328959638, -4.9999999999931565853, 1.8999999999836647557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3401  };
3402 const double CSCTFPtMethods::AB_sig52[4][15] =
3403  {
3404  {0, 0.013024634848957779287, 0.030326831867631701134, -0.037883414612387561471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3405  {0, 0.60655763110407245886, 0.086549467449585568146, 0.96143975817822979746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3406  {0, 0.0017838502242368942628, 0.001549072940288412966, 0.0024073931799526598375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3407  {0, -1.5742327665558009109, 0.42138058335326011861, -2.5570410153890166249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3408  };
3409 const double CSCTFPtMethods::AB_sig53[4][15] =
3410  {
3411  {0, 0, 0.0050716226036932833196, 0.072311934385767509537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3412  {0, 0, 0.584416896221089055, -0.031665576103488260462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3413  {0, 0, 0.0019163928931876126824, -0.00057867999258552171686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3414  {0, 0, -1.1966097325097744264, 1.8999999999981582732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3415  };
3416 const double CSCTFPtMethods::AB_sig5[4][15] =
3417  {
3418  {7.8205209077391470984, 2.9855734606682107213, 1.1825497246141358776, 19.305732840291909724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3419  {-28.925099295750328565, -1.1590698515764885634e-05, 2.1058004914323302792e-06, -99.999999999237957127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3420  {0.49543754065341683024, 0.59927339473627028177, 0.72787082140560965815, 1.4999999999905031522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3421  {-4.4205814548277118092, -1.731856240515097678, 0.91982931738965656443, -2.2550825501853273281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3422  };
3423 const double CSCTFPtMethods::AB_rho123F[5][15] =
3424  {
3425  {0, 0, 0, 0.21591246799314617322, -0.0088050420313028690544, -0.088535622769352645411, 0.1006486675958642163, 0.067288821235719803449, 0.094183111621421872206, 0.11161107798998388951, 0.11398888280887224667, 0.10503939211879674553, 0.024474774056199476852, 0.046753912210887135781, 0.040088150557658401574},
3426  {0, 0, 0, -0.098239875317249245046, 0.12779984161744517568, 0.14575642641392180798, 0.00097994339623410156581, -0.017044028681701687417, -0.041821834675341319765, -0.03996460686227946979, -0.038564860655556879032, -0.033600698334453546479, 0.018439524738640494794, -0.015109111485474606418, -0.0045695887184472334247},
3427  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3428  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3429  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3430  };
3431 const double CSCTFPtMethods::AB_rho123R[5][15] =
3432  {
3433  {0, 0, 0, -0.47568140563221139594, 0.16168003252830986938, 0.25872690555461436146, 0.199495248815122872, 0.10461699853024816753, 0.096749760238894186304, 0.12110848659141376649, 0.11865295930901736954, 0.13774043814412179065, 0.084006936630821260614, 0.068568916018588138561, 0.10326984780227360661},
3434  {0, 0, 0, 0.38437441019930046471, -0.039988232827630004751, -0.11333474899807700897, -0.098018610920314108714, -0.027684275921977110485, -0.020477410702221525429, -0.039128511514004080118, -0.041694544300297106676, -0.063510349952433278742, -0.017922560128537899649, -0.016785071384088808, -0.061230529811631448367},
3435  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3436  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3437  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3438  };
3439 const double CSCTFPtMethods::AB_rho124F[5][15] =
3440  {
3441  {0, 0, 0, -0.59309777973105870519, 0.40674864730572002358, 0.025457362459962610407, 0.12390836361392933151, -0.095057602683116318443, 0.020804212882217412717, 0.0037573456395767730956, 0.051564942370207866862, 0.095392860178285313055, 0.025068145207744741559, 0.074930159107728350198, 0.083894685659705744984},
3442  {0, 0, 0, 0.43249344815524365382, -0.22620914049875265328, 0.047340519949311848924, -0.043393009608351185147, 0.089991823076996074748, 0.017785749716159038325, 0.018363489474203294888, 0.00038439875526154188012, -0.01981142588979651134, 0.029870972349476748731, -0.014713153742897349188, -0.030515833639204549554},
3443  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3444  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3445  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3446  };
3447 const double CSCTFPtMethods::AB_rho124R[5][15] =
3448  {
3449  {0, 0, 0, -0.3790214723591084911, 0.008629294656197683891, -0.18476862186063011673, -0.14382291114342518612, 0.062423042856956378888, -0.01457735302975383257, 0.054710076752791991783, 0.046163675870020424996, 0.073923291317618017304, 0.036368609033315117685, 0.13845699145909207139, 0.19089158859242033595},
3450  {0, 0, 0, 0.29446400959310820022, 0.036382668388190271547, 0.10273587571656045414, 0.098901655648261907472, -0.0024084820537273766983, 0.096524156316618106577, -0.0020090841757854135258, 0.0041754682815653386407, -0.015903678190480090987, 0.029186690106470097872, -0.057996964818734043912, -0.10902135889862836493},
3451  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3452  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3453  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3454  };
3455 const double CSCTFPtMethods::AB_rho134F[5][15] =
3456  {
3457  {0, 0, 0, -0.18540056438689667129, 0.13948900273564729391, 0.28239862898948059344, 0.18152200630689951932, 0.12019173512533826154, 0.33004964169263961704, -0.19271610018409221499, 0.010571838928394724014, -0.35782517965138482818, -0.1667933388665421568, -0.029610523966235428178, 0.14921983595489249352},
3458  {0, 0, 0, 0.14018592629407464201, -0.0058491444860705784498, -0.15000052378446995793, -0.053446371008268357683, -0.054095925229749527996, -0.25878658016296007816, 0.19159454488908850278, 0.051622440147487090589, 0.37406385695410443448, 0.20690833738895109128, 0.088602990694543637407, -0.049658965143950316301},
3459  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3460  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3461  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3462  };
3463 const double CSCTFPtMethods::AB_rho134R[5][15] =
3464  {
3465  {0, 0, 0, -0.32466278494115075048, 0.06557151645351706748, -0.49502508225505659212, -0.41235874470132255487, 0, -0.058206185496771437049, -0.11994212694833844557, -0.28765504885129739021, -0.14630986783496638393, -0.2506902435838725407, 0.077895192872688825969, 0.124491687529346029},
3466  {0, 0, 0, 0.27488604690515439088, -0.0040425703778970423219, 0.37667381909165875697, 0.41399717354299681027, 0, 0.099105082166226002305, 0.14152702361577107482, 0.29199015482789675291, 0.18481068509958351043, 0.30061000836172008244, 0.024035962765780741895, -0.039987755352911616424},
3467  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3468  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3469  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3470  };
3471 const double CSCTFPtMethods::AB_rho234[5][15] =
3472  {
3473  {0, 0, 0, -0.70172108162723456637, -0.16790171221494132325, -0.31359257756370256809, 0.52195596788366016572, 0.35469616250708335681, 0.29972961639836864789, -0.12733383185241853308, 0.023732260311915418655, -0.11620070369401960808, -0.012271043428981569592, 0.15272636020019583758, 0.22639228046259637916},
3474  {0, 0, 0, 0.5466181131903057322, 0.1896976252586676237, 0.27309056219009231192, -0.2403671552670139655, -0.24805788613689500055, -0.18366569226946502513, 0.20613233813122075477, 0.099476351393539552692, 0.23721131992179073089, 0.1662158153666866145, 0.030774565037216095043, -0.011281034689275959773},
3475  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3476  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3477  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3478  };
3479 const double CSCTFPtMethods::AB_rho512[5][15] =
3480  {
3481  {0, -0.10122374386788027256, 0.05867279399992569866, 0.022992784714161641768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3482  {0, 0.060780405957416211438, -0.0018903031693155436521, -0.027696685591685570732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3483  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3484  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3485  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3486  };
3487 const double CSCTFPtMethods::AB_rho513[5][15] =
3488  {
3489  {0, 0, -0.089930042979514415724, -0.093269939725297734689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3490  {0, 0, 0.058029285354766410587, 0.03709347335623498082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3491  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3492  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3493  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3494  };
3495 const double CSCTFPtMethods::AB_rho523[5][15] =
3496  {
3497  {0, -0.36007557586623134549, 0.36086751765228869404, -0.49597380394918910707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3498  {0, 0.23104888116180791191, -0.21165442151467717125, 0.39616810472416036371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3499  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3500  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3501  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3502  };
3503 const double CSCTFPtMethods::AB_rho51B[5][15] =
3504  {
3505  {-23.317206441977930353, 0.38311096711317893515, 138.73025928148325647, -3.3895984991624619198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3506  {39.81331931040932659, -0.58265538873024502742, -197.09814590529396128, 5.7801784630612900173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3507  {-21.692379671233720018, 0.16303933981615081894, 92.527943431966605203, -3.4630147948370328947, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3508  {3.6815612322193729256, 2.1215317965894708863e-05, -18.739157224127048096, 0.64092416582054112517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3509  {1.4065782520225946772, 0.47918084713644876205, 3.4270868776988145932, 1.1911679883977874805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3510  };
3511 const double CSCTFPtMethods::AB_rho52B[5][15] =
3512  {
3513  {0, -11.115614234839123142, 199.99999993867194803, -0.41345082980668335093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3514  {0, 18.640929927342266836, 199.91384480242638233, 0.85194663719311369832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3515  {0, -10.215935151734681696, -199.99199382783231727, -0.69886651036510760715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3516  {0, 1.758281666952397071, -95.546949944038203739, 0.15699448924348563539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3517  {0, 1.3487188994777750128, 5.4534491073916449011, 0.88233434422240508699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3518  };
3519 const double CSCTFPtMethods::AB_rho53B[5][15] =
3520  {
3521  {0, 0, 199.20037694773515113, 58.711955576749318197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3522  {0, 0, -50.001539058211825761, -162.05665958847185948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3523  {0, 0, -75.823665036302642761, 163.90256775382573551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3524  {0, 0, -0.56535096647798599445, -58.227592407129677099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
3525  {0, 0, 4.7457461205225630607, 4.0420077737038067056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
3526  };
3527 */
3528 
3529 // Anna's 2010 parametrization
3530 const double CSCTFPtMethods::A_mu12Front[4][15] = {{0,
3531  0,
3532  0,
3533  -0.10523922235654110946,
3534  -0.10983929659374999654,
3535  -0.11452047380694262146,
3536  -0.11922097760176857129,
3537  -0.31345770385362781152,
3538  -0.29879434616186489881,
3539  -0.26915122313015271693,
3540  -0.23825592462089598134,
3541  -0.21577716540165170489,
3542  -0.19031742310020227649,
3543  -0.16472747325571124311,
3544  -0.13913752341122032075},
3545  {0,
3546  0,
3547  0,
3548  0.26520808786388666567,
3549  0.20543788970357632073,
3550  0.15092171845376831096,
3551  0.10960449046799547457,
3552  0.07249357497808966988,
3553  0.084725241812656573726,
3554  0.080545185052021503469,
3555  0.063499540823294411962,
3556  0.052274729725005748826,
3557  0.041661879230324716517,
3558  0.030222161181156725895,
3559  0.018782443131988790785},
3560  {0,
3561  0,
3562  0,
3563  0.00053807554094229155788,
3564  0.00045289727656323158257,
3565  0.00048500971554021258918,
3566  0.00062343043239925161666,
3567  0.00018916793540052533398,
3568  9.9877853046464147579e-05,
3569  0.00011936753945903473204,
3570  -0.00013555974179713960442,
3571  -0.00018396374782998390577,
3572  -0.00027673232078907284218,
3573  -0.0003749024169206836149,
3574  -0.00047307251305229438762},
3575  {0,
3576  0,
3577  0,
3578  0.5999999999999999778,
3579  0.5999999999999999778,
3580  0.5999999999999999778,
3581  0.5999999999999999778,
3582  0.5999999999999999778,
3583  0.5999999999999999778,
3584  0.5999999999999999778,
3585  0.5999999999999999778,
3586  0.5999999999999999778,
3587  0.59999999975777595917,
3588  0.59999999975777595917,
3589  0.59999999975777595917}};
3590 
3591 const double CSCTFPtMethods::A_sig12Front[3][15] = {{0,
3592  0,
3593  0,
3594  0.012128390128145795368,
3595  0.0060118459615588950434,
3596  0.0066857690437444544998,
3597  0.016870580188088974555,
3598  3.2471855065940857799e-17,
3599  0.04950616849006982817,
3600  0.047875666889731632869,
3601  0.046434926233452016031,
3602  0.043576561593816925955,
3603  0.04204094046553233377,
3604  0.040117984331038282486,
3605  0.038195028196544238142},
3606  {0,
3607  0,
3608  0,
3609  0.11205437847560090203,
3610  0.14710111810994394577,
3611  0.12139003108545433351,
3612  0.05805544863709271447,
3613  0.44230910905171338943,
3614  0.097455948703866090987,
3615  0.091167182629549800565,
3616  0.08155034337565571223,
3617  0.10115334241053108855,
3618  0.066199416910004638126,
3619  0.058246614245665323528,
3620  0.05029381158132600893},
3621  {0,
3622  0,
3623  0,
3624  0.00045794655246943964493,
3625  0.00060328713936987944655,
3626  0.00059167776206113108402,
3627  0.00032821487645948946993,
3628  0.0017467056059844235372,
3629  0.00059613339189244513722,
3630  0.00058184715339610595854,
3631  0.00064476542748265707177,
3632  0.00065843267283058381015,
3633  0.00062029466140044826547,
3634  0.00062029466140044826547,
3635  0.00062029466140044826547}};
3636 const double CSCTFPtMethods::A_mu13Front[4][15] = {{0,
3637  0,
3638  0,
3639  -0.13778088536998894797,
3640  -0.15278054690526707282,
3641  -0.143346136779766542,
3642  -0.14969165155567873415,
3643  -0.31735124864642083597,
3644  -0.33366154127080654979,
3645  -0.32035587063652937179,
3646  -0.29063133844224109392,
3647  -0.2625110988870774098,
3648  -0.24099599747273847683,
3649  -0.21667841153818945266,
3650  -0.19236082560364053951},
3651  {0,
3652  0,
3653  0,
3654  0.50472519215627242861,
3655  0.45431218833331760143,
3656  0.27978303792475944789,
3657  0.21659344933388599563,
3658  0.39042059382545513113,
3659  0.21436973705419076763,
3660  0.21989939737961083921,
3661  0.17248537946455347325,
3662  0.14545152483288878442,
3663  0.068978577839075017053,
3664  0.015796328281602489696,
3665  -0.037385921275869593572},
3666  {0,
3667  0,
3668  0,
3669  0.00074029784977316568338,
3670  0.00094379263107391029794,
3671  0.00044290989468863904959,
3672  0.00032465731761844673995,
3673  0.00080437043173185620963,
3674  0.00030621821048436737717,
3675  0.00036742704696401365556,
3676  0.00031744969589481185704,
3677  4.3755432326479009111e-05,
3678  -8.5155390635296632218e-05,
3679  -0.0002361552419779932438,
3680  -0.00038715509332068898801},
3681  {0,
3682  0,
3683  0,
3684  0.5999999999999999778,
3685  0.5999999999999999778,
3686  0.5999999999999999778,
3687  0.5999999999999999778,
3688  0.5999999999999999778,
3689  0.5999999999999999778,
3690  0.5999999999999999778,
3691  0.5999999999999999778,
3692  0.5999999999999999778,
3693  0.59999999975777595917,
3694  0.59999999975777595917,
3695  0.59999999975777595917}};
3696 const double CSCTFPtMethods::A_sig13Front[3][15] = {{0,
3697  0,
3698  0,
3699  0.022229486577380466045,
3700  0.014786622332179612943,
3701  0.022206319015528955263,
3702  0.030956563988669690696,
3703  0.10438632614093404372,
3704  0.052151139493775117151,
3705  0.061379169888241082165,
3706  0.063070119166874993866,
3707  0.062738437335733338029,
3708  0.062395908796719634637,
3709  0.062395908796719634637,
3710  0.062395908796719634637},
3711  {0,
3712  0,
3713  0,
3714  0.17561127734822717938,
3715  0.248243347883890908,
3716  0.15435972163154007553,
3717  0.098222588303399416265,
3718  0.28864281120179885454,
3719  0.28143242857015660086,
3720  0.16091447629058408531,
3721  0.13483945718353784748,
3722  0.13542102637707623125,
3723  0.062124540683669238206,
3724  0.015713618115037908396,
3725  -0.030697304453592977325},
3726  {0,
3727  0,
3728  0,
3729  0.00050105260335033322255,
3730  0.00060095811169912115909,
3731  0.00049407859567527159534,
3732  0.00062091453005704531909,
3733  0.00046438613640785659023,
3734  0.00074251112464886865304,
3735  0.00070054085319381544095,
3736  0.00064104982805283157888,
3737  0.00060566613754535849647,
3738  0.00055493548941629275602,
3739  0.00050793289077544624514,
3740  0.00046093029213459995111}};
3741 const double CSCTFPtMethods::A_mu14Front[4][15] = {{0,
3742  0,
3743  0,
3744  0,
3745  0,
3746  0,
3747  0,
3748  0,
3749  0,
3750  -0.32728513383665119862,
3751  -0.30618420062024648276,
3752  -0.27554118389520276811,
3753  -0.16285631900256525295,
3754  -0.13698434403203019194,
3755  -0.084591397909304699709},
3756  {0,
3757  0,
3758  0,
3759  0,
3760  0,
3761  0,
3762  0,
3763  0,
3764  0,
3765  0.32023477684420448286,
3766  0.2693691108403535317,
3767  0.22056748837118930751,
3768  0.064251774309308562483,
3769  0.014418130072725965363,
3770  -0.067256932934660618173},
3771  {0,
3772  0,
3773  0,
3774  0,
3775  0,
3776  0,
3777  0,
3778  0,
3779  0,
3780  0.00042613689417415228419,
3781  0.00055054357631906247761,
3782  0.00015434926334609733872,
3783  -0.012950297280226659088,
3784  0.00037700991127977064596,
3785  0.00037700991127977064596},
3786  {0,
3787  0,
3788  0,
3789  0,
3790  0,
3791  0,
3792  0,
3793  0,
3794  0,
3795  0.5999999999999999778,
3796  0.5999999999999999778,
3797  0.5999999999999999778,
3798  0.5999999999999999778,
3799  0.59999999974533591018,
3800  0.59999999974533591018}};
3801 const double CSCTFPtMethods::A_sig14Front[3][15] = {{0,
3802  0,
3803  0,
3804  0,
3805  0,
3806  0,
3807  0,
3808  0,
3809  0,
3810  0.060082258981389996544,
3811  0.07247051398468504213,
3812  0.069785008221314948074,
3813  3.6424053064063738328e-12,
3814  0.067445927062646751637,
3815  0.067445927062646751637},
3816  {0,
3817  0,
3818  0,
3819  0,
3820  0,
3821  0,
3822  0,
3823  0,
3824  0,
3825  0.30722806049859069377,
3826  0.20925971382909466789,
3827  0.21969785537300090539,
3828  0.022179262487250456931,
3829  -0.021585840075354578715,
3830  -0.10605666532436131},
3831  {0,
3832  0,
3833  0,
3834  0,
3835  0,
3836  0,
3837  0,
3838  0,
3839  0,
3840  0.00094734288756094921311,
3841  0.00069588950170735620632,
3842  0.00069173065831375820777,
3843  0.095265205090887594697,
3844  0.0007783210158606876589,
3845  0.0007783210158606876589}};
3846 
3847 //
3848 // Rare without CSCTF resolution
3849 const double CSCTFPtMethods::A_mu12Rare[4][15] = {{0,
3850  -0.10374889091836100863,
3851  -0.099788822609968519384,
3852  -0.13818657823143312702,
3853  -0.13717556879309533713,
3854  -0.14490849378394998759,
3855  -0.14408105919423722097,
3856  -0.2740736915947392105,
3857  -0.25354252758973594428,
3858  -0.22856287512160483599,
3859  -0.19978450972956338094,
3860  -0.18078462391477437277,
3861  -0.15524879962407600598,
3862  -0.13121518430206646766,
3863  -0.10718156898005704036},
3864  {0,
3865  0.43901381552049162371,
3866  0.33269140862921836588,
3867  0.2867281989745522619,
3868  0.1745740696789168378,
3869  0.13068773408294853677,
3870  0.090289532623200399741,
3871  0.14511096793044100939,
3872  0.089110172781148286325,
3873  0.088325915559225531837,
3874  0.058284739852102536439,
3875  0.054838099980182117288,
3876  0.023722628572238391165,
3877  0.0025855116892946616858,
3878  -0.018551605193649012282},
3879  {0,
3880  0.00090427118272218449946,
3881  0.00051285798655137816021,
3882  0.00096712518524937637985,
3883  0.0005533967588738022839,
3884  0.00058699577022335697706,
3885  0.00046096277656442602704,
3886  0.00059775151582151515688,
3887  0.0002982802094889720106,
3888  0.00025087464533485412822,
3889  -1.2763501682976573746e-06,
3890  8.7075909949317653082e-05,
3891  -0.00014973114536521569401,
3892  -0.0002818219225062231284,
3893  -0.00041391269964723056279},
3894  {0,
3895  0.5999999999999999778,
3896  0.5999999999999999778,
3897  0.5999999999999999778,
3898  0.5999999999999999778,
3899  0.5999999999999999778,
3900  0.5999999999999999778,
3901  0.5999999999999999778,
3902  0.5999999999999999778,
3903  0.5999999999999999778,
3904  0.5999999999999999778,
3905  0.5999999999999999778,
3906  0.59999999975777595917,
3907  0.59999999975777595917,
3908  0.59999999975777595917}};
3909 const double CSCTFPtMethods::A_sig12Rare[3][15] = {{0,
3910  0.0038093885421048444447,
3911  0.0065769632315039548015,
3912  0.0055592323950014550446,
3913  0.0093835962422483230883,
3914  0.017396352418037726306,
3915  0.020259861529127568686,
3916  0.028034021369845840699,
3917  0.039800110854239546809,
3918  0.039980148857628114434,
3919  0.038524308685830198351,
3920  0.040281758067103733134,
3921  0.039646581616244812307,
3922  0.039646581616244812307,
3923  0.039646581616244812307},
3924  {0,
3925  0.23514753393254139713,
3926  0.20840454339700395514,
3927  0.1734554515667367236,
3928  0.14712778893221009624,
3929  0.068478644292554124995,
3930  0.045578777378287992084,
3931  0.17971688457142401263,
3932  0.10413274328597779683,
3933  0.096806606002943468292,
3934  0.095972114441355463321,
3935  0.077888109608563196873,
3936  0.073807795186255298336,
3937  0.065850955926872206669,
3938  0.057894116667489142758},
3939  {0,
3940  0.00060835884164537896556,
3941  0.00057248928258038056342,
3942  0.00054601310456751364283,
3943  0.00045596139082362406765,
3944  0.00036256195477186049098,
3945  0.00033554189220614231851,
3946  0.00081415383922815243514,
3947  0.00064529700989722222747,
3948  0.00063280618158918571729,
3949  0.00066801533625483495039,
3950  0.00061304601669530541484,
3951  0.0006244051798697089397,
3952  0.00061825079737559966893,
3953  0.00061209641488149039816}};
3954 const double CSCTFPtMethods::A_mu13Rare[4][15] = {{0,
3955  0,
3956  -0.12623127354128180211,
3957  -0.17935797490956165157,
3958  -0.18060840788964968584,
3959  -0.18696605249703140972,
3960  -0.19077279628481272344,
3961  -0.29349472537983850584,
3962  -0.28999462954606641807,
3963  -0.28042269536018021858,
3964  -0.24794997339523475177,
3965  -0.22381101094323510581,
3966  -0.21271098141773814305,
3967  -0.1945697729153351152,
3968  -0.17642856441293225389},
3969  {0,
3970  0,
3971  0.46581826439734036471,
3972  0.59045368664701669559,
3973  0.42112504758806018623,
3974  0.31214409746624299791,
3975  0.22991099738945788844,
3976  0.38259688787882195626,
3977  0.21032714197086083141,
3978  0.23803428613207575082,
3979  0.16848812991169570541,
3980  0.13391107896586992854,
3981  0.064908316006158539579,
3982  0.010987253017647136133,
3983  -0.042933809970864045269},
3984  {0,
3985  0,
3986  0.0002201385928033240463,
3987  0.00094588024264893161806,
3988  0.0006090017795757148196,
3989  0.00055819818498869361832,
3990  0.00051220623767016942862,
3991  0.0010722093641169425093,
3992  0.00033951226487555219435,
3993  0.00057667736469464204747,
3994  0.00038672362687909188003,
3995  0.00018665348905046641372,
3996  -4.8148940218185019846e-06,
3997  -0.00017720493282215006928,
3998  -0.00034959497162248120289},
3999  {0,
4000  0,
4001  0.5999999999999999778,
4002  0.5999999999999999778,
4003  0.5999999999999999778,
4004  0.5999999999999999778,
4005  0.5999999999999999778,
4006  0.5999999999999999778,
4007  0.5999999999999999778,
4008  0.5999999999999999778,
4009  0.5999999999999999778,
4010  0.5999999999999999778,
4011  0.59999999975777595917,
4012  0.59999999975777595917,
4013  0.59999999975777595917}};
4014 const double CSCTFPtMethods::A_sig13Rare[3][15] = {{0,
4015  0,
4016  0.015046443595756202674,
4017  0.024350274050281187077,
4018  0.030516519859742685661,
4019  0.034951536569288559064,
4020  0.040872596013944946514,
4021  0.075500038528175023034,
4022  0.054258877880390701809,
4023  0.057948329004836200695,
4024  0.055684189309453437089,
4025  0.055547652610341891055,
4026  0.055859762201452584085,
4027  0.055859762201452584085,
4028  0.055859762201452584085},
4029  {0,
4030  0,
4031  0.72981359973468040714,
4032  0.25552798678505961316,
4033  0.20538399097483123201,
4034  0.13568477284924612691,
4035  0.087691623490571385391,
4036  0.14380693710811331965,
4037  0.17784552932129321645,
4038  0.15447707796169932171,
4039  0.15118995597952319954,
4040  0.13106219757004208826,
4041  0.11773441089914793434,
4042  0.10337069917555474774,
4043  0.089006987451961616653},
4044  {0,
4045  0,
4046  0.00047001852983351251119,
4047  0.00053481400606665866967,
4048  0.00036348184816972377081,
4049  0.00037774161715020031574,
4050  0.00026657604722595630358,
4051  0.00029086094173271957383,
4052  0.00068184877937593074432,
4053  0.00058313040724595804811,
4054  0.00061068422520455867882,
4055  0.00061315948044054677767,
4056  0.0006222057231541136546,
4057  0.0006222057231541136546,
4058  0.0006222057231541136546}};
4059 const double CSCTFPtMethods::A_mu14Rare[4][15] = {{0,
4060  0,
4061  0,
4062  0,
4063  0,
4064  0,
4065  0,
4066  0,
4067  0,
4068  -0.2849452232390318196,
4069  -0.26600970450734234829,
4070  -0.23683395869018955548,
4071  -0.22057309433227462181,
4072  -0.1965174620579153153,
4073  -0.17428824880417448373},
4074  {0,
4075  0,
4076  0,
4077  0,
4078  0,
4079  0,
4080  0,
4081  0,
4082  0,
4083  0.33740004932669764859,
4084  0.27762229117854592131,
4085  0.19628468723350062097,
4086  0.17323896845886521678,
4087  0.10268128741218718325,
4088  0.045299202757331347158},
4089  {0,
4090  0,
4091  0,
4092  0,
4093  0,
4094  0,
4095  0,
4096  0,
4097  0,
4098  0.00036794862559287675862,
4099  0.00059266387001125628905,
4100  0.00029802341315537321086,
4101  0.00025629117987456756858,
4102  0.00022132857323278612785,
4103  0.00015836729382168461717},
4104  {0,
4105  0,
4106  0,
4107  0,
4108  0,
4109  0,
4110  0,
4111  0,
4112  0,
4113  0.5999999999999999778,
4114  0.5999999999999999778,
4115  0.5999999999999999778,
4116  0.5999999999999999778,
4117  0.59999999974533591018,
4118  0.59999999974533591018}};
4119 const double CSCTFPtMethods::A_sig14Rare[3][15] = {{0,
4120  0,
4121  0,
4122  0,
4123  0,
4124  0,
4125  0,
4126  0,
4127  0,
4128  0.057936258148966857107,
4129  0.067831242837197713857,
4130  0.065620840504349520206,
4131  0.054328715544637938561,
4132  0.061429264258856704217,
4133  0.061429264258856704217},
4134  {0,
4135  0,
4136  0,
4137  0,
4138  0,
4139  0,
4140  0,
4141  0,
4142  0,
4143  0.30423086251952391468,
4144  0.20761013178198547968,
4145  0.19093892168102474804,
4146  0.38288685251508419727,
4147  0.2714166921244430819,
4148  0.2714166921244430819},
4149  {0,
4150  0,
4151  0,
4152  0,
4153  0,
4154  0,
4155  0,
4156  0,
4157  0,
4158  0.00080261760198784384054,
4159  0.00063696047781503656055,
4160  0.00065139580093967995589,
4161  0.00069639579902228165072,
4162  0.00069684237379447067084,
4163  0.00069684237379447067084}};
4164 
4165 const double CSCTFPtMethods::A_mu51[4][15] = {
4166  {-0.30205049387075266765, -0.19825408793401680385, -0.10259572704977054647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4167  {0.39029489236430164878, -0.99999999999950184293, -0.99999999991334242999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4168  {-0.0082240407388394932281, -0.008489109806000837144, -0.0096722775887914218262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4169  {1.4884036315353963431, -2.8577685774096766025, -3.1123617094902709113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
4170 
4171 const double CSCTFPtMethods::A_sig51[3][15] = {
4172  {0.013883456707760059509, 0.011790507803505339071, 2.4609763012162222395e-15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4173  {0.33358000572065177325, 0.19837044850549298558, 0.21329994540971500272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4174  {0.0026062373849642236565, 0.0026272077989507240485, 0.0025484832112267707081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
4175 
4176 const double CSCTFPtMethods::A_mu52[4][15] = {
4177  {0, -0.31934822512291188845, -0.24671378669106625026, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4178  {0, -0.99999999999980493381, -0.99999999999999167333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4179  {0, -0.0073087160764979198016, -0.0070564603063957591009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4180  {0, -5.0384103551069152616, -5.6736067150957572025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
4181 const double CSCTFPtMethods::A_sig52[3][15] = {
4182  {0, 0.021754484285831678786, 0.0079969520010703034479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4183  {0, 0.31662456185786602703, 0.25320436095234394314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4184  {0, 0.0026259453672001680305, 0.0027192866432913216992, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
4185 
4186 const double CSCTFPtMethods::A_mu53[4][15] = {{0, 0, -0.2362111548723856147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4187  {0, 0, 0.58675988413655344456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4188  {0, 0, -0.0074765217760223816323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4189  {0, 0, 1.392910355886719076, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
4190 
4191 const double CSCTFPtMethods::A_sig53[3][15] = {{0, 0, 0.010082748878246528337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4192  {0, 0, 0.37397019929001934502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4193  {0, 0, 0.002686637834141298968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
4194 
4196 const double CSCTFPtMethods::A_rho512[5][15] = {
4197  {0, -1.3270643828972497058, -0.40947841616853780655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4198  {0, 2.025201781399017964, 0.58089265964690128818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4199  {0, -0.73760841017029699085, -0.060534778841327505083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4200  {0, 0.077735281441295198124, -0.017952905037001157251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4201  {0, 0.005510074476231469412, 0.26061236699994605459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
4202 const double CSCTFPtMethods::A_rho513[5][15] = {{0, 0, 0.18116780706048338234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4203  {0, 0, -0.10826967270771679919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4204  {0, 0, 0.033488168126484141318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4205  {0, 0, -0.0040355575386412517735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4206  {0, 0, -0.4934185910548575249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
4207 const double CSCTFPtMethods::A_rho523[5][15] = {{0, 0, -1.9080285362497979573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4208  {0, 0, 3.2540326879755121503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4209  {0, 0, -1.2246911037569772063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4210  {0, 0, 0.13624286476587679773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
4211  {0, 0, 0.24605674796105389546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
4212 
4213 const double CSCTFPtMethods::A_mu23[4][15] = {
4214 
4215  {0,
4216  0,
4217  -0.038262994788483634112,
4218  -0.038329955987871006107,
4219  -0.0374748823380766094,
4220  -0.041131685825480934771,
4221  -0.041682237062370237901,
4222  -0.043941548191289134251,
4223  -0.036858451809650610853,
4224  -0.041160145519271960912,
4225  -0.03640665951155453578,
4226  -0.037033177234847232395,
4227  -0.039730205721839016719,
4228  -0.041049544792113090708,
4229  -0.03904511674158141904},
4230  {0,
4231  0,
4232  0.22476203480449799543,
4233  0.19067575131669534105,
4234  0.15256324303025625699,
4235  0.13801063658393192268,
4236  0.12256502197662035025,
4237  0.11905632873396845839,
4238  0.10056103279215167223,
4239  0.094455197819930808434,
4240  0.06542931061274483151,
4241  0.055715924150473321308,
4242  0.053301837423971050456,
4243  0.045890095913808617856,
4244  0.027949821903864861122},
4245  {0,
4246  0,
4247  0.00069404495353071109318,
4248  0.00065670816947569431686,
4249  0.00050715045635956769714,
4250  0.00051087666765004164943,
4251  0.00050201870311558270069,
4252  0.00025160072489320881679,
4253  0.00026119341522217484446,
4254  0.00027099698566654400892,
4255  9.9011225161971808595e-05,
4256  7.3884094779271263388e-05,
4257  0.00025118886053809180194,
4258  0.00035276812785148709559,
4259  0.00023201907068018601732},
4260  {0,
4261  0,
4262  1.5949221750821838128,
4263  1.7201281725872403783,
4264  1.58953615582846286,
4265  1.1423843849936006212,
4266  0.97788843089194554814,
4267  0.90488697221367975221,
4268  1.1715145764654877336,
4269  1.1384185105977693286,
4270  1.1222106905033706337,
4271  0.8870702391119174024,
4272  0.61881410578333895245,
4273  0.2103057782202895909,
4274  0.20906493220451535797}};
4275 const double CSCTFPtMethods::A_sig23[3][15] = {{0,
4276  0,
4277  5.1487948019707241443e-14,
4278  1.371515748194163109e-17,
4279  5.7867664653155070908e-15,
4280  0.0018689633292167232882,
4281  0.0022366390858728274135,
4282  0.0098612407883851022766,
4283  6.8801945206625053642e-12,
4284  0.0032973305248131545321,
4285  0.0054990363466139750501,
4286  0.0092745687266331533483,
4287  0.011501230292384876167,
4288  0.012866555123334103353,
4289  0.01433335748409165708},
4290  {0,
4291  0,
4292  0.20455300017238808863,
4293  0.19201919320235372179,
4294  0.17201776141542601817,
4295  0.12441381076621171875,
4296  0.1050096955004960475,
4297  0.086699597450937707088,
4298  0.12195247491883690061,
4299  0.12325808533281308599,
4300  0.096676601548240911899,
4301  0.075608663356511091047,
4302  0.063411508431177876499,
4303  0.053299915739310803342,
4304  0.048982690822271121589},
4305  {0,
4306  0,
4307  0.00067345631439024247495,
4308  0.00071637601448934864513,
4309  0.00073991596851847836816,
4310  0.0007991069380909875423,
4311  0.0008004777620410123912,
4312  0.00089609812741991013828,
4313  0.001505913962207979526,
4314  0.0014477291363779595194,
4315  0.001410515534491615236,
4316  0.0013306603256628582281,
4317  0.0012465454381592282456,
4318  0.0012290059929163277448,
4319  0.001182792281371985825}};
4320 const double CSCTFPtMethods::A_mu24[4][15] = {{0,
4321  0,
4322  0,
4323  0,
4324  0,
4325  0,
4326  0,
4327  0,
4328  0,
4329  -0.061959407101930465134,
4330  -0.058818321370234280532,
4331  -0.068352281408454867995,
4332  -0.061460298909070447404,
4333  -0.052235918421231680719,
4334  -0.072498226107478094815},
4335  {0,
4336  0,
4337  0,
4338  0,
4339  0,
4340  0,
4341  0,
4342  0,
4343  0,
4344  0.21211506894042392313,
4345  0.1693324759070968244,
4346  0.16427164509165567696,
4347  0.12206249376578166832,
4348  0.059425221503678751778,
4349  0.10342818163255371178},
4350  {0,
4351  0,
4352  0,
4353  0,
4354  0,
4355  0,
4356  0,
4357  0,
4358  0,
4359  0.00082310131655814202344,
4360  0.00076119821363284040708,
4361  0.0011383177083823211358,
4362  0.00088025107979697856699,
4363  0.00053811687741542281113,
4364  0.0012072828551724611168},
4365  {0,
4366  0,
4367  0,
4368  0,
4369  0,
4370  0,
4371  0,
4372  0,
4373  0,
4374  0.90513569051375386554,
4375  0.84830498879329219175,
4376  0.61907648481747246105,
4377  0.62281733240515868566,
4378  0.96959526780257299095,
4379  0.22278747273629403991}};
4380 const double CSCTFPtMethods::A_sig24[3][15] = {{0,
4381  0,
4382  0,
4383  0,
4384  0,
4385  0,
4386  0,
4387  0,
4388  0,
4389  0.036897103741702109991,
4390  0.039899187881393870236,
4391  0.037199371928606554671,
4392  0.044110460084859734464,
4393  0.04574632914580819415,
4394  0.043819228659279139959},
4395  {0,
4396  0,
4397  0,
4398  0,
4399  0,
4400  0,
4401  0,
4402  0,
4403  0,
4404  0.12588087914450593607,
4405  0.096275574709463407341,
4406  0.097301378507412841778,
4407  0.062284950968221723666,
4408  0.040981290949611878793,
4409  0.062080679266191686472},
4410  {0,
4411  0,
4412  0,
4413  0,
4414  0,
4415  0,
4416  0,
4417  0,
4418  0,
4419  0.00015197851743841865125,
4420  0.00020141684336612834154,
4421  0.00023753469072643055345,
4422  5.280883524679438998e-05,
4423  5.5577569515852236366e-05,
4424  6.1083145679098556401e-05}};
4425 const double CSCTFPtMethods::A_mu34[4][15] = {{0,
4426  0,
4427  0,
4428  0,
4429  0,
4430  0,
4431  0,
4432  0,
4433  0,
4434  -0.0058446275511135183447,
4435  -0.0044363335612002457661,
4436  -0.0063690633680748938092,
4437  -0.0071732602982787522714,
4438  -0.0060076595959582691081,
4439  -0.0097192787716524169095},
4440  {0,
4441  0,
4442  0,
4443  0,
4444  0,
4445  0,
4446  0,
4447  0,
4448  0,
4449  0.069899440774008433919,
4450  0.041945454306693608082,
4451  0.033695321175754334997,
4452  0.02572107994967174141,
4453  0.011966531649750349747,
4454  0.013632158523237790024},
4455  {0,
4456  0,
4457  0,
4458  0,
4459  0,
4460  0,
4461  0,
4462  0,
4463  0,
4464  -0.00028713324507221590172,
4465  -0.00029722368993748908127,
4466  -0.00021881992359872021571,
4467  -0.00019444183718237873664,
4468  -0.00019245346134829781652,
4469  -4.7403620157884084486e-05},
4470  {0,
4471  0,
4472  0,
4473  0,
4474  0,
4475  0,
4476  0,
4477  0,
4478  0,
4479  1.23011991602398707,
4480  1.3460026509066507217,
4481  1.3048596027895269511,
4482  1.1101126497057096643,
4483  1.3404667534791459005,
4484  1.1961024662925265893}};
4485 const double CSCTFPtMethods::A_sig34[3][15] = {{0,
4486  0,
4487  0,
4488  0,
4489  0,
4490  0,
4491  0,
4492  0,
4493  0,
4494  0.014243461206981972156,
4495  0.010278183995352333305,
4496  0.013373297961434488582,
4497  0.018049641090122695714,
4498  0.018285814028279508137,
4499  0.018004419633993375832},
4500  {0,
4501  0,
4502  0,
4503  0,
4504  0,
4505  0,
4506  0,
4507  0,
4508  0,
4509  0.080281940189430453514,
4510  0.097702954127336857915,
4511  0.068717674384759980244,
4512  0.047838267178665204449,
4513  0.043271382660605303694,
4514  0.034571413197575895371},
4515  {0,
4516  0,
4517  0,
4518  0,
4519  0,
4520  0,
4521  0,
4522  0,
4523  0,
4524  0.00019610172919627981338,
4525  0.00020181030100052541531,
4526  9.721123551963389408e-05,
4527  7.9515919724251022879e-05,
4528  3.152903608551011833e-05,
4529  -1.5281155054305934032e-05}};
4530 
4531 /*
4532 const double CSCTFPtMethods::A_mu23CSCTF[4][15] =
4533  {
4534  {0, 0, -0.05159583579882612292, -0.057495850955557127604, -0.038777381197559336601, -0.034650103854195257735, -0.035866685307932126558, -0.036520018265937925772, -0.039140048431005991514, -0.04132313862170765989, -0.036795418654570546946, -0.034712298048110004633, -0.030675971294882777712, -0.026581567107835060715, -0.027082610124683551694},
4535  {0, 0, 0.30930157379625533576, 0.30528792735566101513, 0.18101621729540517958, 0.13261043687180154582, 0.11710185518524707238, 0.1042269425450448872, 0.12842978872597279882, 0.11026714080229071957, 0.077195052828225488306, 0.052779807661988357992, 0.031907294195008026327, 0.015010793353952620391, 0.0083693744640667474405},
4536  {0, 0, 0.003303237228747075635, 0.0036877622923072827903, 0.0028778748613812418257, 0.0027697479676805046578, 0.0029722472234315878113, 0.0027557729541331493078, 0.0027439686054866367984, 0.0027429867920243330461, 0.0026205380860322580877, 0.0025684796211763527909, 0.0024501533836338673482, 0.0022886566312508992323, 0.0023109047428951515549},
4537  {0, 0, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778}
4538  };
4539 const double CSCTFPtMethods::A_sig23CSCTF[3][15] =
4540  {
4541  {0, 0, 1.9795336160186027818e-14, 1.9915059185082739646e-14, 3.1018595894952150083e-13, 3.247104191431149367e-15, 8.1315162936412832551e-20, 1.240503468176445967e-14, 5.42101086242752217e-20, 1.0611672131288774068e-13, 1.5769479363818283968e-13, 1.3950757324528162417e-13, 9.006754760412793992e-14, 6.4351600220433069488e-14, 3.422793732471562933e-14},
4542  {0, 0, 0.16247290882387102617, 0.17175130285728712476, 0.12863499593873295446, 0.087195343431809388401, 0.075178796525218818947, 0.084968005914806410406, 0.097534051101499472103, 0.10072101959821762318, 0.086515842289935293574, 0.077487068666586722543, 0.066495426545906038962, 0.05829523793723847408, 0.058469062331064518279},
4543  {0, 0, 0.0030866184008234202017, 0.0027157845892710396826, 0.0031000107472930020502, 0.0032948728256854639164, 0.0032523838944876529676, 0.0032908170044063911851, 0.0031077703733701392101, 0.003168310045777431895, 0.0031995826882447926144, 0.0033172473608836330373, 0.003481731357302361371, 0.0035885923423450909013, 0.0036197682854273677093}
4544  };
4545 const double CSCTFPtMethods::A_mu24CSCTF[4][15] =
4546  {
4547  {0, 0, 0, 0, 0, 0, 0, 0, 0, -0.040588070215567317867, -0.037244899938720932298, -0.032557928194235655206, -0.033625486248390609734, -0.030979888871088396424, -0.034417775727303090427},
4548  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.14679164922919202274, 0.10155103197601543508, 0.05654629310554831062, 0.045376829456755543579, 0.027509877797561234358, 0.023419523710039816256},
4549  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0020633358759647897618, 0.001896533050698436711, 0.0017858761282068486096, 0.001844050222271934221, 0.0017557139477893672803, 0.0018426777898371733428},
4550  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.8287338692316308375, 0.99774828307731855404, 1.1829866290816364316, 1.1602087549628306018, 1.2464326048294538385, 1.2759641819434877075}
4551  };
4552 const double CSCTFPtMethods::A_sig24CSCTF[3][15] =
4553  {
4554  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.037625952557573547064, 0.01799213091317735172, 1.6125862879181815379e-11, 1.0562397310953652863e-12, 1.241077634541939978e-12, 0.0010355011396506045348},
4555  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.042427032035622765094, 0.098803329688397070751, 0.14389559700484103044, 0.13799560522998333134, 0.12970987520579105312, 0.12360506328208811788},
4556  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0016583711392086320988, 0.0026285030865632191821, 0.0035332492384275056285, 0.0035536381484177958709, 0.0036008804486243150937, 0.003671342260090017847}
4557  };
4558 const double CSCTFPtMethods::A_mu34CSCTF[4][15] =
4559  {
4560  {0, 0, 0, 0, 0, 0, 0, 0, 0, -0.024386862247056880632, -0.021528537191676071216, -0.02005083006670880727, -0.01336094590546606925, -0.011202986245246833105, -0.010221348552148104907},
4561  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.13932346391503466765, 0.10879329554634586952, 0.082131024131389118725, 0.049386143583177943839, 0.031626039045900805613, 0.018428910788041489438},
4562  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.002260334327917361795, 0.0022298163315863312253, 0.0022548694122104897576, 0.0018759307742583139749, 0.00177881208252465557, 0.0017313182633728260718},
4563  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778, 0.5999999999999999778}
4564  };
4565 const double CSCTFPtMethods::A_sig34CSCTF[3][15] =
4566  {
4567  {0, 0, 0, 0, 0, 0, 0, 0, 0, 8.7898167477201694098e-15, 9.6596450456509774796e-15, 5.8301345522149272682e-15, 4.2091980942404738641e-15, 5.3458485468199645751e-15, 3.1712051604473878719e-13},
4568  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.093687563387992001118, 0.079820927326800600321, 0.066984420892720844543, 0.056708328335080805671, 0.047536365785603315604, 0.038169598629265347189},
4569  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0030253104511002268558, 0.0031726875548676886779, 0.0032496716988121504902, 0.0033443354915219845012, 0.0034738654347779623563, 0.0036318730482019275646}
4570 //
4571  };
4572 */
4573 
4574 /*
4575 // correlation
4576 const double CSCTFPtMethods::A_rho123FrontCSCTF[5][15] =
4577  {
4578  {0, 0, 0, -7.1040670977031510347, -12.670315837935662628, -8.7170331637018456661, -0.67519391792989291723, -82.734134458636077625, -0.75423027516740670517, -1.5375638068488624022, -1.9436626689216969233, -3.3048393305106831264, 0, 0, 0},
4579  {0, 0, 0, 13.120105991486797237, 24.351734925387280128, 17.466447377883568493, 3.4093984643667423207, 194.02337279340923715, 2.3366398860307699969, 3.18999491763136378, 3.6653450973208929753, 5.5669645488507377706, 0, 0, 0},
4580  {0, 0, 0, -6.3122732945347292954, -12.092235620129875073, -8.964306376251860442, -2.0956518253881668556, -14.276757245102295713, -1.052341283927880955, -1.3351509494835234193, -1.4259213982588558878, -1.7115493310298179885, 0, 0, 0},
4581  {0, 0, 0, 0.88435981237335747895, 1.7435813620171676241, 1.3426959412552754713, 0.34444942151920626694, -87.449791709635917414, 0.12377690603711703765, 0.15538477196375066747, 0.15008809252689520042, 0.10296388213110005405, 0, 0, 0},
4582  {0, 0, 0, 0.6301630452598394605, 0.95776009332113687389, 0.9017528066816278276, 0.50478537372345588796, 4.2993192028223639056, 0.44617114302999638653, 0.34541691945594366064, 0.42054938381219214572, 0.7433264993299159018, 0, 0, 0}
4583  };
4584 const double CSCTFPtMethods::A_rho124FrontCSCTF[5][15] =
4585  {
4586  {0, 0, 0, 0, 0, 0, 0, 0, -67.653257351760515803, -14.640453888061129462, -8.0061864057341729506, -6.380532066411966241, 0, 0, 0},
4587  {0, 0, 0, 0, 0, 0, 0, 0, 199.99999998356389597, 18.625354490890874359, 10.511672179624257595, 8.772341856627665635, 0, 0, 0},
4588  {0, 0, 0, 0, 0, 0, 0, 0, -190.6065599611967798, -3.7847886886961528141, -2.2651826031392530147, -1.9160721119800219192, 0, 0, 0},
4589  {0, 0, 0, 0, 0, 0, 0, 0, 58.439288729233759057, -2.3364343906401296991e-06, 3.6855623904152867709e-07, -3.0414002648998517131e-06, 0, 0, 0},
4590  {0, 0, 0, 0, 0, 0, 0, 0, 2.8796301484731765541, 1.3626067779332513563, 1.0087454870715759636, 0.90653374832410571482, 0, 0, 0}
4591  };
4592 const double CSCTFPtMethods::A_rho134FrontCSCTF[5][15] =
4593  {
4594  {0, 0, 0, 0, 0, 0, 0, 0, 0, -5.1253686146165238213, -3.9460979852191035988, 50.876993645544430933, 0, 0, 0},
4595  {0, 0, 0, 0, 0, 0, 0, 0, 0, 8.6945510876485556651, 6.9804335263398149536, -138.23002940118752235, 0, 0, 0},
4596  {0, 0, 0, 0, 0, 0, 0, 0, 0, -3.7766962717672067917, -3.021481709800325266, 114.72054763323052384, 0, 0, 0},
4597  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.47276435137618078031, 0.37604585592516825976, -25.936589905717454485, 0, 0, 0},
4598  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0.67139180168906242852, 0.65599257431238855443, 2.2983843503797514174, 0, 0, 0}
4599  };
4600 const double CSCTFPtMethods::A_rho123RareCSCTF[5][15] =
4601  {
4602  {0, 3.693736660096563762e-07, -6.3780194230193432148, -13.770035906375994728, -5.1562051118343141809, -3.7461867441730016814, -1.2805080447177172864, 0.50294375115506961826, -1.4740723006986149457, -2.5387426474729517523, -2.1923622917088105844, -3.0911905495886267126, 0, 0, 0},
4603  {0, 1.2460479107724575787e-08, 11.270599218378388073, 22.392173152402016001, 9.3862642825355049325, 7.7578075325167734633, 4.2953294294048536273, 0.22827419724359693243, 3.4825602170197607066, 5.0470037914562615455, 4.4340011683393560915, 6.2256125281916929737, 0, 0, 0},
4604  {0, -3.4521070809865814222e-09, -5.0004899240308509079, -10.311644488849697865, -4.282123228906844048, -3.7150337817860408229, -2.2556284401727886291, -0.25683718959054824271, -1.5532530344313972837, -2.0501268102747358668, -1.6048499907132562914, -2.42639211677826383, 0, 0, 0},
4605  {0, 0.11247782203128549317, 0.65621333795917502485, 1.4508425971339706795, 0.57554752401241371373, 0.51651149712728827712, 0.32553981050209734871, 0.041454698814621479541, 0.1892053332712004543, 0.23183666635265892664, 0.14070399770166691633, 0.25037305153793043555, 0, 0, 0},
4606  {0, 5.2468060541259898405e-05, 0.59902231088968072026, 0.64691306718481345062, 0.56825725017267580963, 0.55227308775738792601, 0.52292618714173277894, 0.15015264640230108206, 0.47276305428305431811, 0.58130632102024715202, 0.66287057871639254447, 0.70571047503796380251, 0, 0, 0}
4607  };
4608 const double CSCTFPtMethods::A_rho124RareCSCTF[5][15] =
4609  {
4610  {0, 0, 0, 0, 0, 0, 0, 0, -62.063614454439573365, -9.3911739932179134627, -6.1205175819402386495, -3.1911920231298327444, 0, 0, 0},
4611  {0, 0, 0, 0, 0, 0, 0, 0, 176.01031612404437965, 12.375741099204100593, 8.5587121090773408127, 5.7559625518179906578, 0, 0, 0},
4612  {0, 0, 0, 0, 0, 0, 0, 0, -160.26616104904954341, -2.5400842729151151822, -1.8386520927660907621, -2.1326757988726772197, 0, 0, 0},
4613  {0, 0, 0, 0, 0, 0, 0, 0, 46.856826297399912562, -4.8053174807327625473e-07, 3.6069918621373098233e-07, 0.21904388264162638622, 0, 0, 0},
4614  {0, 0, 0, 0, 0, 0, 0, 0, 2.6686667219206672286, 1.1798705662301880448, 0.9751334566408034199, 0.50657760373212734617, 0, 0, 0}
4615  };
4616 const double CSCTFPtMethods::A_rho134RareCSCTF[5][15] =
4617  {
4618  {0, 0, 0, 0, 0, 0, 0, 0, 0, 22.63925623244709584, 33.307602374459399641, -4.7351194818759818617, 0, 0, 0},
4619  {0, 0, 0, 0, 0, 0, 0, 0, 0, -81.727537829168539929, -106.94890709205490964, 9.1466321665848884237, 0, 0, 0},
4620  {0, 0, 0, 0, 0, 0, 0, 0, 0, 81.287234092264910146, 99.769637227574477834, -3.9238059375998592948, 0, 0, 0},
4621  {0, 0, 0, 0, 0, 0, 0, 0, 0, -19.366748957614952076, -21.885672253322599801, 0.45930089549956160111, 0, 0, 0},
4622  {0, 0, 0, 0, 0, 0, 0, 0, 0, 2.3976365353544930592, 2.6613591378002552368, 0.90958735012798141994, 0, 0, 0}
4623  };
4624 const double CSCTFPtMethods::A_rho234CSCTF[5][15] =
4625  {
4626  {0, 0, 0, 0, 0, 0, 0, 0, 0, -9.8545541776242284726, -64.883134763134137302, -2.7111481630799327824, -0.094635535725662925377, -0.24145993067693449774, -0.86334668692406080215},
4627  {0, 0, 0, 0, 0, 0, 0, 0, 0, 20.483521463583567623, 128.78793309543945611, 8.4668465066294569255, 3.2196840916959703627, 3.5062716967070435281, 4.8689870431603861078},
4628  {0, 0, 0, 0, 0, 0, 0, 0, 0, -10.072715847457928362, -81.865408753031090328, -4.2797400827660840861, -1.8900888882082564901, -2.0494364954339538976, -2.6715697235200512871},
4629  {0, 0, 0, 0, 0, 0, 0, 0, 0, 1.4368420319765635718, 44.864139609984853507, 0.57906617181020891838, 0.27668065500104588317, 0.30413204972393043102, 0.38082905421452400985},
4630  {0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1952334817255199084, 3.5585102799355743386, 1.062066264100966162, 0.76269875289384825301, 0.75934194995400139394, 0.84343143505690310047}
4631  };
4632 */
4633 // correlation is calculated without CSCTF resolution
4634 const double CSCTFPtMethods::A_rho123FrontCSCTF[5][15] = {{0,
4635  0,
4636  0,
4637  -1.8018355270558423786,
4638  -3.0800442413303450451,
4639  -73.019003781704810763,
4640  -71.455790570687398144,
4641  -64.380384468942153831,
4642  2.1550121774347754666,
4643  2.5576552488389672213,
4644  2.449616802429892104,
4645  2.6048654763866916362,
4646  2.4417874257938438909,
4647  2.4417874257938438909,
4648  2.4417874257938438909},
4649  {0,
4650  0,
4651  0,
4652  -2.1007675246065984354,
4653  5.0425956104081919307,
4654  199.99999998505296617,
4655  197.550283903424031,
4656  199.99999998947504309,
4657  -3.6752175165788334432,
4658  -5.1722529027050292427,
4659  -4.3622079033393852399,
4660  -3.8822092661387657131,
4661  -4.2729718954881441562,
4662  -4.2729718954881441562,
4663  -4.2729718954881441562},
4664  {0,
4665  0,
4666  0,
4667  4.7467280498208239692,
4668  -0.9954101483761357283,
4669  -174.31370635014994264,
4670  -172.76138545990900752,
4671  -195.76348611065316163,
4672  3.4105036734574345481,
4673  4.6147873662827647578,
4674  3.7484788313774726198,
4675  3.1712066148946220778,
4676  3.7362441319556776165,
4677  3.7362441319556776165,
4678  3.7362441319556776165},
4679  {0,
4680  0,
4681  0,
4682  0.30810891952961361184,
4683  -1.5943850767419220915e-06,
4684  54.774256057823905053,
4685  53.990647071858525408,
4686  62.484493391665445472,
4687  -0.69848464296741152868,
4688  -0.91930506751317175862,
4689  -0.74283883233049896599,
4690  -0.63029551267626326982,
4691  -0.74773101223055604692,
4692  -0.74773101223055604692,
4693  -0.74773101223055604692},
4694  {0,
4695  0,
4696  0,
4697  1.5832663901749726154,
4698  0.74552216086091394054,
4699  2.3871718840149540597,
4700  2.3429031884405246977,
4701  2.5923987724387411724,
4702  0.78470036712835855575,
4703  0.84997184658808944135,
4704  0.77449725473134001241,
4705  0.7103384244719952445,
4706  0.77987697419799162368,
4707  0.77987697419799162368,
4708  0.77987697419799162368}};
4709 const double CSCTFPtMethods::A_rho124FrontCSCTF[5][15] = {{0,
4710  0,
4711  0,
4712  0,
4713  0,
4714  0,
4715  0,
4716  0,
4717  0,
4718  1.3870060999256690337,
4719  2.9712356450806232111,
4720  3.570810174736656073,
4721  4.8268213813923779298,
4722  5.9187234187980806155,
4723  7.0106254562037761957},
4724  {0,
4725  0,
4726  0,
4727  0,
4728  0,
4729  0,
4730  0,
4731  0,
4732  0,
4733  -2.5249315692538325528,
4734  -5.0029964029336300158,
4735  -5.9723457657194050086,
4736  -7.9475054424365261241,
4737  -9.6712125406703215447,
4738  -11.394919638904116965},
4739  {0,
4740  0,
4741  0,
4742  0,
4743  0,
4744  0,
4745  0,
4746  0,
4747  0,
4748  2.5905258665507675531,
4749  3.7350919226554304409,
4750  4.4308882990573090765,
4751  5.4258644619269134068,
4752  6.3460456781797809356,
4753  7.2662268944326449116},
4754  {0,
4755  0,
4756  0,
4757  0,
4758  0,
4759  0,
4760  0,
4761  0,
4762  0,
4763  -0.46509034721864128681,
4764  -0.65123509278498414865,
4765  -0.77222404956138701593,
4766  -0.93665019886425904261,
4767  -1.0902170500355508054,
4768  -1.24378390120684168},
4769  {0,
4770  0,
4771  0,
4772  0,
4773  0,
4774  0,
4775  0,
4776  0,
4777  0,
4778  0.80362588618902608406,
4779  0.76388670904989408594,
4780  0.8119443249235495097,
4781  0.79315230672804426515,
4782  0.79315230672804426515,
4783  0.79315230672804426515}};
4784 const double CSCTFPtMethods::A_rho134FrontCSCTF[5][15] = {{0,
4785  0,
4786  0,
4787  0,
4788  0,
4789  0,
4790  0,
4791  0,
4792  0,
4793  1.9650106495811070495,
4794  4.4682144046367060497,
4795  3.6127345552596952238,
4796  3.3486532031297944201,
4797  3.3486532031297944201,
4798  3.3486532031297944201},
4799  {0,
4800  0,
4801  0,
4802  0,
4803  0,
4804  0,
4805  0,
4806  0,
4807  0,
4808  -2.8639423697800454605,
4809  -8.5042162539937766752,
4810  -6.2743097440414938859,
4811  -5.8808227847000313915,
4812  -5.8808227847000313915,
4813  -5.8808227847000313915},
4814  {0,
4815  0,
4816  0,
4817  0,
4818  0,
4819  0,
4820  0,
4821  0,
4822  0,
4823  2.3846745836159768395,
4824  6.2976695885419857746,
4825  4.8907783903396619962,
4826  4.5243741882849342062,
4827  4.5243741882849342062,
4828  4.5243741882849342062},
4829  {0,
4830  0,
4831  0,
4832  0,
4833  0,
4834  0,
4835  0,
4836  0,
4837  0,
4838  -0.45508861624906205012,
4839  -1.1535577557401812676,
4840  -0.887603855749135362,
4841  -0.83208340850272133338,
4842  -0.83208340850272133338,
4843  -0.83208340850272133338},
4844  {0,
4845  0,
4846  0,
4847  0,
4848  0,
4849  0,
4850  0,
4851  0,
4852  0,
4853  0.61133320621013831353,
4854  0.8416666357275194299,
4855  0.84060163399865650558,
4856  0.76453382567690186811,
4857  0.76453382567690186811,
4858  0.76453382567690186811}};
4859 const double CSCTFPtMethods::A_rho123RareCSCTF[5][15] = {{0,
4860  3.693736660096563762e-07,
4861  3.6624889920579235536,
4862  -1.5878130861362493853,
4863  -16.882029490672145755,
4864  -19.782998814333478066,
4865  -60.455933184308456418,
4866  4.7409034663087075145,
4867  1.2313698717610916944,
4868  4.0535624038761168819,
4869  2.839672990936767949,
4870  1.1264072104945499486,
4871  2.7983831906712062221,
4872  2.7983831906712062221,
4873  2.7983831906712062221},
4874  {0,
4875  1.2460479107724575787e-08,
4876  -9.1322692253088106895,
4877  2.7885945213228429118,
4878  35.574384349975474606,
4879  52.562872763020486389,
4880  165.96545891988304788,
4881  -7.8572084740661054525,
4882  -2.2073725837258022509,
4883  -8.2319545861659868535,
4884  -5.2739465547973312098,
4885  -1.6641893104460985242,
4886  -5.0469343040027743186,
4887  -5.0469343040027743186,
4888  -5.0469343040027743186},
4889  {0,
4890  -3.4521070809865814222e-09,
4891  0.304049807886722534,
4892  -1.0070939003771062215,
4893  -25.509204584815140748,
4894  -43.856338459435548316,
4895  -142.9795139802988615,
4896  5.1120722960994200434,
4897  2.5507720910098483635,
4898  6.5298492011791555711,
4899  4.4578719360600889132,
4900  2.2487455007422072484,
4901  4.1798622107590110986,
4902  4.1798622107590110986,
4903  4.1798622107590110986},
4904  {0,
4905  0.11247782203128549317,
4906  6.1743739480412145326,
4907  0.11162411914689808479,
4908  8.9528675403092599083,
4909  15.100558849256662697,
4910  44.430568006333729159,
4911  -0.9341261050017011236,
4912  -0.55701647459573400134,
4913  -1.2571707419142834627,
4914  -0.88779580801276813951,
4915  -0.51779245640493165581,
4916  -0.83078031791749751278,
4917  -0.83078031791749751278,
4918  -0.83078031791749751278},
4919  {0,
4920  5.2468060541259898405e-05,
4921  1.8940496384956984066,
4922  0.066707207826664116634,
4923  1.7508237418861856138,
4924  1.8900280458873763845,
4925  2.1844068317738409846,
4926  0.76180412238695105476,
4927  0.72372957011062566401,
4928  0.89275082928758009437,
4929  0.81250184984526685472,
4930  0.71783981961882159517,
4931  0.78172523860247711269,
4932  0.78172523860247711269,
4933  0.78172523860247711269}};
4934 const double CSCTFPtMethods::A_rho124RareCSCTF[5][15] = {{0,
4935  0,
4936  0,
4937  0,
4938  0,
4939  0,
4940  0,
4941  0,
4942  0,
4943  3.6863837484595949334,
4944  2.3224336525694582178,
4945  3.2507026803368823664,
4946  3.0865066927589901447,
4947  3.0865066927589901447,
4948  3.0865066927589901447},
4949  {0,
4950  0,
4951  0,
4952  0,
4953  0,
4954  0,
4955  0,
4956  0,
4957  0,
4958  -6.9075821699787951502,
4959  -4.3426737934213210934,
4960  -6.2428017762167931082,
4961  -5.8310192443035493426,
4962  -5.8310192443035493426,
4963  -5.8310192443035493426},
4964  {0,
4965  0,
4966  0,
4967  0,
4968  0,
4969  0,
4970  0,
4971  0,
4972  0,
4973  5.1741882361155777659,
4974  3.6659747818805397124,
4975  5.1137870308059385493,
4976  4.6513166894848883004,
4977  4.6513166894848883004,
4978  4.6513166894848883004},
4979  {0,
4980  0,
4981  0,
4982  0,
4983  0,
4984  0,
4985  0,
4986  0,
4987  0,
4988  -0.8788429753762293517,
4989  -0.6687776952912940498,
4990  -0.89611818355296113392,
4991  -0.81457961884259244556,
4992  -0.81457961884259244556,
4993  -0.81457961884259244556},
4994  {0,
4995  0,
4996  0,
4997  0,
4998  0,
4999  0,
5000  0,
5001  0,
5002  0,
5003  0.89064996021251574554,
5004  0.79339716446029262542,
5005  0.92504977817804989737,
5006  0.86969896765468779343,
5007  0.86969896765468779343,
5008  0.86969896765468779343}};
5009 const double CSCTFPtMethods::A_rho134RareCSCTF[5][15] = {{0,
5010  0,
5011  0,
5012  0,
5013  0,
5014  0,
5015  0,
5016  0,
5017  0,
5018  3.4612440846722587473,
5019  5.7154640478562965811,
5020  6.1988763822017318716,
5021  7.8628271357737773428,
5022  9.2316432845389506667,
5023  10.600459433304120438},
5024  {0,
5025  0,
5026  0,
5027  0,
5028  0,
5029  0,
5030  0,
5031  0,
5032  0,
5033  -5.7252426310553330424,
5034  -10.734814097449786985,
5035  -11.773479219426080888,
5036  -15.459415237678861388,
5037  -18.483533531863088228,
5038  -21.507651826047307964},
5039  {0,
5040  0,
5041  0,
5042  0,
5043  0,
5044  0,
5045  0,
5046  0,
5047  0,
5048  4.1825411479975462825,
5049  7.4929964403945605866,
5050  8.4655628853855269256,
5051  10.996721895319737428,
5052  13.138232764016670728,
5053  15.279743632713589818},
5054  {0,
5055  0,
5056  0,
5057  0,
5058  0,
5059  0,
5060  0,
5061  0,
5062  0,
5063  -0.76190351147590362757,
5064  -1.349101837260204606,
5065  -1.4909015696715794963,
5066  -1.9296336976648227335,
5067  -2.2941327267626210329,
5068  -2.6586317558604193323},
5069  {0,
5070  0,
5071  0,
5072  0,
5073  0,
5074  0,
5075  0,
5076  0,
5077  0,
5078  0.73180297067413413448,
5079  0.85937126410475961347,
5080  0.96408406745158758966,
5081  1.0840338641877096393,
5082  1.200174412576484162,
5083  1.3163149609652586847}};
5084 //
5085 const double CSCTFPtMethods::A_rho234CSCTF[5][15] = {{0,
5086  0,
5087  0,
5088  0,
5089  0,
5090  0,
5091  0,
5092  0,
5093  0,
5094  0.90545523934272553745,
5095  0.87175008048078328482,
5096  11.473027189906936485,
5097  11.663806475851881572,
5098  0.42441495626586411838,
5099  0.32838673222117276129},
5100  {0,
5101  0,
5102  0,
5103  0,
5104  0,
5105  0,
5106  0,
5107  0,
5108  0,
5109  -0.44139458152853866535,
5110  -0.42393288245808863346,
5111  -22.394533628750806997,
5112  -23.701781706067023947,
5113  0.3795109868989199331,
5114  0.61276617249320963765},
5115  {0,
5116  0,
5117  0,
5118  0,
5119  0,
5120  0,
5121  0,
5122  0,
5123  0,
5124  0.051844682585598461655,
5125  0.049996912305763613338,
5126  16.507523030995347568,
5127  17.496995261382853215,
5128  -0.25771028946901503032,
5129  -0.35814371755433299649},
5130  {0,
5131  0,
5132  0,
5133  0,
5134  0,
5135  0,
5136  0,
5137  0,
5138  0,
5139  2.7429208195040022389e-07,
5140  9.0318461390404003453e-08,
5141  -3.1629404839892929502,
5142  -3.4008584782052286855,
5143  0.032310851118482836197,
5144  0.04444079467290308616},
5145  {0,
5146  0,
5147  0,
5148  0,
5149  0,
5150  0,
5151  0,
5152  0,
5153  0,
5154  -0.42794073513595692893,
5155  -0.42484700224018712156,
5156  1.2597467573071601254,
5157  1.2343273593218078155,
5158  -0.1335866415068663049,
5159  -0.10123375520631937297}};
5160 
5161 // Constructor
5163 
5164 // compute PT from dphi = A/Pt + B/Pt^2
5165 // this involves solving the quadratic equation and storing it as Pt
5166 // out of the two possible roots, the return value is always the larger value for Pt
5167 
5168 float CSCTFPtMethods::Pt2Stn(int type, float eta, float dphi, int fr) const {
5169  float A = 0;
5170  float B = 0;
5171  if (dphi == 0.0)
5172  dphi = 1.e-6;
5173  if (eta < 0.0)
5174  eta = static_cast<float>(fabs(static_cast<double>(eta)));
5175  if (dphi < 0.0)
5176  dphi = static_cast<float>(fabs(static_cast<double>(dphi)));
5178 #ifdef L1CSC_STANDALONE
5179  if (type == kME1andME2 && eta <= 1.25)
5180  fr = 1;
5181 #else
5182  if (type == kME1andME2 && eta < 1.2)
5183  fr = 1;
5184 #endif
5185  if (type >= kME1andME2 && type <= kME2andMB2 && eta < 2.5) {
5186  if (eta >= 0.0 && eta < 1.6) {
5187  A = AkLowEta_Fit2[type - 1][0] + AkLowEta_Fit2[type - 1][1] * eta + AkLowEta_Fit2[type - 1][2] * eta * eta +
5188  AkLowEta_Fit2[type - 1][3] * eta * eta * eta;
5189  B = BkLowEta_Fit2[type - 1][0] + BkLowEta_Fit2[type - 1][1] * eta + BkLowEta_Fit2[type - 1][2] * eta * eta +
5190  BkLowEta_Fit2[type - 1][3] * eta * eta * eta;
5191  if (fr >= 0 && fr <= 1) {
5192  A *= FRCorrLowEta[type - 1][fr];
5193  B *= FRCorrLowEta[type - 1][fr];
5194  }
5195  }
5196 
5197  if (eta >= 1.6 && eta < 2.5) {
5198  A = AkHighEta_Fit2[type - 1][0] + AkHighEta_Fit2[type - 1][1] * eta + AkHighEta_Fit2[type - 1][2] * eta * eta +
5199  AkHighEta_Fit2[type - 1][3] * eta * eta * eta;
5200  B = BkHighEta_Fit2[type - 1][0] + BkHighEta_Fit2[type - 1][1] * eta + BkHighEta_Fit2[type - 1][2] * eta * eta +
5201  BkHighEta_Fit2[type - 1][3] * eta * eta * eta;
5202  if (fr >= 0 && fr <= 1) {
5203  A *= FRCorrHighEta[type - 1][fr];
5204  B *= FRCorrHighEta[type - 1][fr];
5205  }
5206  }
5207 
5208  A *= kGlobalScaleFactor;
5209  B *= kGlobalScaleFactor;
5210  float Pt = (A + sqrt(A * A + 4. * dphi * B)) / (2. * dphi);
5211 
5212  // return (Pt>0.0) ? Pt : 0.0;
5213  return (Pt > trigger_scale->getPtScale()->getLowEdge(1)) ? Pt : trigger_scale->getPtScale()->getLowEdge(1);
5214  }
5215  return 0.0;
5216 }
5217 
5218 float CSCTFPtMethods::Pt3Stn(int type, float eta, float dphi1, float dphi2, int fr) const {
5219  int ty1 = 0, ty2 = 0;
5220 
5221  switch (type) {
5222  case 1:
5223  ty1 = kME1andME2 - 1; // subtype sets the right position for array A
5224  ty2 = kME2andME3 - 1;
5225  break;
5226  case 2:
5227  ty1 = kME1andME2 - 1;
5228  ty2 = kME2andME4 - 1;
5229  break;
5230  case 3:
5231  ty1 = kME1andME3 - 1;
5232  ty2 = kME3andME4 - 1;
5233  break;
5234  case 4:
5235  ty1 = kME2andME3 - 1;
5236  ty2 = kME3andME4 - 1;
5237  break;
5238  default:
5239  return 0.0;
5240  }
5241 
5242  // Switch to 2-Station measurement if dphi is too small
5243  // box cut around Pt of 10 GeV
5244  float Pt;
5245  // if ( (fabs(static_cast<double>(dphi2))<0.004) &&
5246  // (fabs(static_cast<double>(dphi1))<0.030)) {
5247  if (fabs(static_cast<double>(dphi2)) < 0.004) {
5248  Pt = Pt2Stn((ty1 + 1), eta, dphi1, fr);
5249  } else {
5250  float c1 = (-.2999 * (eta * eta * eta) + 2.030 * (eta * eta) - 4.235 * eta + 3.024) + 0.02;
5251  float c2 = (-2.484 * (eta * eta * eta) + 14.43 * (eta * eta) - 27.66 * eta + 18.47) * .72;
5252  float r = 0.6; //correlation
5253  float A1 = 0;
5254  float A2 = 0;
5255 
5256  if (dphi1 == 0.0)
5257  dphi1 = 1.e-6;
5258  if (dphi2 == 0.0)
5259  dphi2 = 1.e-6;
5260  if (eta < 0.0)
5261  eta = static_cast<float>(fabs(static_cast<double>(eta)));
5262  if (eta >= 0.0 && eta < 1.6) {
5263  A1 = AkLowEta_Fit1[ty1][0] + AkLowEta_Fit1[ty1][1] * eta + AkLowEta_Fit1[ty1][2] * eta * eta +
5264  AkLowEta_Fit1[ty1][3] * eta * eta * eta;
5265  A2 = AkLowEta_Fit1[ty2][0] + AkLowEta_Fit1[ty2][1] * eta + AkLowEta_Fit1[ty2][2] * eta * eta +
5266  AkLowEta_Fit1[ty2][3] * eta * eta * eta;
5267  if (fr >= 0 && fr <= 1) {
5268  A1 *= FRCorrLowEta[ty1][fr];
5269  }
5270  }
5271 
5272  if (eta >= 1.6 && eta < 2.5) {
5273  A1 = AkHighEta_Fit1[ty1][0] + AkHighEta_Fit1[ty1][1] * eta + AkHighEta_Fit1[ty1][2] * eta * eta +
5274  AkHighEta_Fit1[ty1][3] * eta * eta * eta;
5275  A2 = AkHighEta_Fit1[ty2][0] + AkHighEta_Fit1[ty2][1] * eta + AkHighEta_Fit1[ty2][2] * eta * eta +
5276  AkHighEta_Fit1[ty2][3] * eta * eta * eta;
5277  if (fr >= 0 && fr <= 1) {
5278  A1 *= FRCorrHighEta[ty1][fr];
5279  }
5280  }
5281  A1 *= kGlobalScaleFactor;
5282  A2 *= kGlobalScaleFactor;
5283  Pt =
5284  1 /
5285  (((-dphi1 / c1 / c1 / A1 + r * dphi2 / c1 / c2 / A2 + dphi1 * r / c1 / c2 / A1 - dphi2 / c2 / c2 / A2) +
5286  sqrt((dphi1 / c1 / c1 / A1 - r * dphi2 / c1 / c2 / A2 - dphi1 * r / c1 / A1 / c2 + dphi2 / c2 / c2 / A2) *
5287  (dphi1 / c1 / c1 / A1 - r * dphi2 / c1 / c2 / A2 - dphi1 * r / c1 / A1 / c2 + dphi2 / c2 / c2 / A2) +
5288  8 * (1 - r * r) *
5289  (dphi1 * dphi1 / c1 / c1 / A1 / A1 - 2 * dphi1 * dphi2 * r / c1 / A1 / c2 / A2 +
5290  dphi2 * dphi2 / c2 / c2 / A2 / A2))) /
5291  (4 * (1 - r * r)));
5292 
5293  } // end 2 or 3 station method
5294  // if (Pt<0.0) Pt = 0.0;
5295  if (Pt < trigger_scale->getPtScale()->getLowEdge(1))
5296  Pt = trigger_scale->getPtScale()->getLowEdge(1);
5297 
5298  // switch to 2-stn Pt above 10 GeV:
5299  /*
5300  if (Pt>10.0) {
5301  switch (type)
5302  {
5303  case 1 :
5304  case 2 :
5305  Pt = Pt2Stn(1, eta, dphi1);
5306  break;
5307  case 3:
5308  Pt = Pt2Stn(2, eta, dphi1);
5309  break;
5310  case 4:
5311  Pt = Pt2Stn(3, eta, dphi1);
5312  }
5313  }
5314  */
5315 
5316  return Pt;
5317 }
5318 
5319 // Now for C.Yeh's Chisquare method
5320 
5321 /*
5322 type:
5323 sta1-2 = 0
5324 sta1-3 = 1
5325 sta2-3 = 2
5326 sta2-4 = 3
5327 sta1-2-3 = 4
5328 sta1-2-4 = 5
5329 
5330 2.0 <= pt < 140.0
5331 0.9 <= eta < 2.4
5332 
5333 Note: So far,
5334 Pt2Stn only defined for types 0 and 1
5335 Pt3Stn only defined for types 4 and 5
5336 */
5337 
5338 //arrays for pt and eta bins
5339 
5340 const float CSCTFPtMethods::ptbins[29] = {2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0,
5341  10.0, 12.0, 14.0, 16.0, 18.0, 20.0, 25.0, 30.0, 35.0, 40.0,
5342  45.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 120.0, 140.0};
5343 
5344 const float CSCTFPtMethods::etabins[16] = {
5345  0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4};
5346 
5347 double CSCTFPtMethods::Likelihood2(double *phi12, double *par_m12, double *par_sig12, double *v) const {
5348  double fitval = 0.;
5349  double Pi = acos(-1.);
5350  double m12 = 0;
5351  if (v[0] > par_m12[3])
5352  m12 =
5353  par_m12[0] / (v[0] - par_m12[3]) + par_m12[1] / (v[0] - par_m12[3]) / (v[0] - par_m12[3]) + par_m12[2]; //mu12
5354  double sig12 = 0.1;
5355  if (v[0] > 0.)
5356  sig12 = par_sig12[0] / v[0] + par_sig12[1] / v[0] / v[0] + par_sig12[2]; //sig12
5357  //
5358  fitval = -(phi12[0] - m12) * (phi12[0] - m12) / 2. / sig12 / sig12;
5359  fitval = fitval - log(sig12) - 0.5 * log(2 * Pi);
5360 
5361  return fitval;
5362 }
5363 double CSCTFPtMethods::Likelihood2_2011(double *phi12, double *par_m12, double *par_sig12, double *v) const {
5364  double fitval = 0.;
5365  double Pi = acos(-1.);
5366  double m12 = 0;
5367  if (v[0] > par_m12[3])
5368  m12 =
5369  par_m12[0] / (v[0] - par_m12[3]) + par_m12[1] / (v[0] - par_m12[3]) / (v[0] - par_m12[3]) + par_m12[2]; //mu12
5370  double sig12 = 0.1;
5371  if (v[0] > par_sig12[3])
5372  sig12 = par_sig12[0] / (v[0] - par_sig12[3]) + par_sig12[1] / (v[0] - par_sig12[3]) / (v[0] - par_sig12[3]) +
5373  par_sig12[2]; //sig12
5374  if (sig12 < 0.0015)
5375  sig12 = 0.0015;
5376  //
5377  fitval = -(phi12[0] - m12) * (phi12[0] - m12) / 2. / sig12 / sig12;
5378  fitval = fitval - log(sig12) - 0.5 * log(2 * Pi);
5379 
5380  return fitval;
5381 }
5382 double CSCTFPtMethods::Likelihood(double *phi12,
5383  double *phi23,
5384  double *par_m12,
5385  double *par_m23,
5386  double *par_sig12,
5387  double *par_sig23,
5388  double *par_rho,
5389  double *v) const {
5390  double fitval = 0.;
5391  //double Pi = acos(-1.);
5392  double m12 = 0.;
5393  if (v[0] > par_m12[3])
5394  m12 =
5395  par_m12[0] / (v[0] - par_m12[3]) + par_m12[1] / (v[0] - par_m12[3]) / (v[0] - par_m12[3]) + par_m12[2]; //mu12
5396  double m23 = 0.;
5397  if (v[0] > par_m23[3])
5398  m23 =
5399  par_m23[0] / (v[0] - par_m23[3]) + par_m23[1] / (v[0] - par_m23[3]) / (v[0] - par_m23[3]) + par_m23[2]; //mu23
5400  double sig12 = 0.1;
5401  if (v[0] > 0.)
5402  sig12 = par_sig12[0] / v[0] + par_sig12[1] / v[0] / v[0] + par_sig12[2]; //sig12
5403  double sig23 = 0.1;
5404  if (v[0] > 0.)
5405  sig23 = par_sig23[0] / v[0] + par_sig23[1] / v[0] / v[0] + par_sig23[2]; //sig23
5406 
5407  double rho = (par_rho[0] + par_rho[1] * log(v[0]) + par_rho[2] * log(v[0]) * log(v[0]) +
5408  par_rho[3] * log(v[0]) * log(v[0]) * log(v[0])) *
5409  exp(-par_rho[4] * log(v[0])); //rho
5410  if (rho > 0.95)
5411  rho = 0.95;
5412  if (rho < -0.95)
5413  rho = -0.95;
5414  //
5415  fitval = (phi12[0] - m12) * (phi12[0] - m12) / sig12 / sig12 + (phi23[0] - m23) * (phi23[0] - m23) / sig23 / sig23;
5416  fitval = fitval - 2. * rho * (phi12[0] - m12) * (phi23[0] - m23) / sig12 / sig23;
5417  fitval = fitval * (-1. / (2. * (1 - rho * rho)));
5418  fitval = fitval - log(sig12) - log(sig23) - 0.5 * log(1 - rho * rho);
5419 
5420  return fitval;
5421 }
5422 double CSCTFPtMethods::Likelihood2011(double *phi12,
5423  double *phi23,
5424  double *par_m12,
5425  double *par_m23,
5426  double *par_sig12,
5427  double *par_sig23,
5428  double *par_rho,
5429  double *v) const {
5430  double fitval = 0.;
5431  //double Pi = acos(-1.);
5432  double m12 = 0.;
5433  if (v[0] > par_m12[3])
5434  m12 =
5435  par_m12[0] / (v[0] - par_m12[3]) + par_m12[1] / (v[0] - par_m12[3]) / (v[0] - par_m12[3]) + par_m12[2]; //mu12
5436  double m23 = 0.;
5437  if (v[0] > par_m23[3])
5438  m23 =
5439  par_m23[0] / (v[0] - par_m23[3]) + par_m23[1] / (v[0] - par_m23[3]) / (v[0] - par_m23[3]) + par_m23[2]; //mu23
5440  double sig12 = 0.1;
5441  if (v[0] > par_sig12[3])
5442  sig12 = par_sig12[0] / (v[0] - par_sig12[3]) + par_sig12[1] / (v[0] - par_sig12[3]) / (v[0] - par_sig12[3]) +
5443  par_sig12[2]; //sig12
5444  double sig23 = 0.1;
5445  if (v[0] > par_sig23[3])
5446  sig23 = par_sig23[0] / (v[0] - par_sig23[3]) + par_sig23[1] / (v[0] - par_sig23[3]) / (v[0] - par_sig23[3]) +
5447  par_sig23[2]; //sig12
5448  if (sig12 < 0.0015)
5449  sig12 = 0.0015;
5450  if (sig23 < 0.0015)
5451  sig23 = 0.0015;
5452 
5453  double rho = (par_rho[0] + par_rho[1] * log(v[0]) + par_rho[2] * log(v[0]) * log(v[0]) +
5454  par_rho[3] * log(v[0]) * log(v[0]) * log(v[0])) *
5455  exp(-par_rho[4] * log(v[0])); //rho
5456  //if(rho > 0.95) rho = 0.95;
5457  //if(rho < -0.95) rho = -0.95;
5458  if (rho > 0.7)
5459  rho = 0.7;
5460  if (rho < -0.7)
5461  rho = -0.7;
5462  //rho = 0.4;
5463  //
5464  fitval = (phi12[0] - m12) * (phi12[0] - m12) / sig12 / sig12 + (phi23[0] - m23) * (phi23[0] - m23) / sig23 / sig23;
5465  fitval = fitval - 2. * rho * (phi12[0] - m12) * (phi23[0] - m23) / sig12 / sig23;
5466  fitval = fitval * (-1. / (2. * (1 - rho * rho)));
5467  fitval = fitval - log(sig12) - log(sig23) - 0.5 * log(1 - rho * rho);
5468 
5469  return fitval;
5470 }
5471 
5472 float CSCTFPtMethods::Pt2Stn2010(int type, float eta, float dphi, int fr, int method) const {
5473  if (fabs(eta) >= 2.4)
5474  eta = 2.35;
5475  double PTsolv = 1.; // for muon plus hypothesis
5476  double PTsolvMinus = 1.; //for muon minus hypothesis
5477  for (int iETA = 0; iETA < 15; iETA++) {
5478  if (fabs(eta) >= etabins[iETA] && fabs(eta) < etabins[iETA + 1]) {
5479  // calculate curvers of mean and sigma
5480  // calculate phi12 mean
5481  double par1[4] = {0., 0., 0., 0.};
5482  //double phi12mean = fitf5(v, par1); //mu12
5483  double par_sig1[3] = {0., 0., 0.};
5484  int iETA1 = iETA;
5485  switch (type) // type = mode here
5486  {
5487  case 6: //1-2
5488  if (fr == 1) {
5489  if (iETA1 < 3)
5490  iETA1 = 3;
5491  //if(iETA1 > 11)iETA1 = 11;
5492  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
5493  par1[0] = A_mu12Front[0][iETA1];
5494  par1[1] = A_mu12Front[1][iETA1];
5495  par1[2] = A_mu12Front[2][iETA1];
5496  par1[3] = A_mu12Front[3][iETA1];
5497  par_sig1[0] = A_sig12Front[0][iETA1];
5498  par_sig1[1] = A_sig12Front[1][iETA1];
5499  par_sig1[2] = A_sig12Front[2][iETA1];
5500  }
5501  if (fr == 0) {
5502  if (iETA1 < 1)
5503  iETA1 = 1;
5504  //if(iETA1 > 11)iETA1 = 11;
5505  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
5506  par1[0] = A_mu12Rare[0][iETA1];
5507  par1[1] = A_mu12Rare[1][iETA1];
5508  par1[2] = A_mu12Rare[2][iETA1];
5509  par1[3] = A_mu12Rare[3][iETA1];
5510  par_sig1[0] = A_sig12Rare[0][iETA1];
5511  par_sig1[1] = A_sig12Rare[1][iETA1];
5512  par_sig1[2] = A_sig12Rare[2][iETA1];
5513  }
5514  break;
5515  case 7: //1-3
5516  if (fr == 1) {
5517  if (iETA1 < 3)
5518  iETA1 = 3;
5519  //if(iETA1 > 11)iETA1 = 11;
5520  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
5521  par1[0] = A_mu13Front[0][iETA1];
5522  par1[1] = A_mu13Front[1][iETA1];
5523  par1[2] = A_mu13Front[2][iETA1];
5524  par1[3] = A_mu13Front[3][iETA1];
5525  par_sig1[0] = A_sig13Front[0][iETA1];
5526  par_sig1[1] = A_sig13Front[1][iETA1];
5527  par_sig1[2] = A_sig13Front[2][iETA1];
5528  }
5529  if (fr == 0) {
5530  if (iETA1 < 2)
5531  iETA1 = 2;
5532  //if(iETA1 > 11)iETA1 = 11;
5533  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
5534  par1[0] = A_mu13Rare[0][iETA1];
5535  par1[1] = A_mu13Rare[1][iETA1];
5536  par1[2] = A_mu13Rare[2][iETA1];
5537  par1[3] = A_mu13Rare[3][iETA1];
5538  par_sig1[0] = A_sig13Rare[0][iETA1];
5539  par_sig1[1] = A_sig13Rare[1][iETA1];
5540  par_sig1[2] = A_sig13Rare[2][iETA1];
5541  }
5542  break;
5543  case 8: //2-3
5544  if (iETA1 < 2)
5545  iETA1 = 2;
5546  par1[0] = A_mu23[0][iETA1];
5547  par1[1] = A_mu23[1][iETA1];
5548  par1[2] = A_mu23[2][iETA1];
5549  par1[3] = A_mu23[3][iETA1];
5550  par_sig1[0] = A_sig23[0][iETA1];
5551  par_sig1[1] = A_sig23[1][iETA1];
5552  par_sig1[2] = A_sig23[2][iETA1];
5553  break;
5554  case 9: //2-4
5555  if (iETA1 < 9)
5556  iETA1 = 9;
5557  par1[0] = A_mu24[0][iETA1];
5558  par1[1] = A_mu24[1][iETA1];
5559  par1[2] = A_mu24[2][iETA1];
5560  par1[3] = A_mu24[3][iETA1];
5561  par_sig1[0] = A_sig24[0][iETA1];
5562  par_sig1[1] = A_sig24[1][iETA1];
5563  par_sig1[2] = A_sig24[2][iETA1];
5564  break;
5565  case 10: //3-4
5566  if (iETA1 < 9)
5567  iETA1 = 9;
5568  par1[0] = A_mu34[0][iETA1];
5569  par1[1] = A_mu34[1][iETA1];
5570  par1[2] = A_mu34[2][iETA1];
5571  par1[3] = A_mu34[3][iETA1];
5572  par_sig1[0] = A_sig34[0][iETA1];
5573  par_sig1[1] = A_sig34[1][iETA1];
5574  par_sig1[2] = A_sig34[2][iETA1];
5575  break;
5576  case 13: //1-4
5577  if (iETA1 < 9)
5578  iETA1 = 9;
5579  if (iETA1 > 12)
5580  iETA1 = 12;
5581  if (fr == 1) {
5582  par1[0] = A_mu14Front[0][iETA1];
5583  par1[1] = A_mu14Front[1][iETA1];
5584  par1[2] = A_mu14Front[2][iETA1];
5585  par1[3] = A_mu14Front[3][iETA1];
5586  par_sig1[0] = A_sig14Front[0][iETA1];
5587  par_sig1[1] = A_sig14Front[1][iETA1];
5588  par_sig1[2] = A_sig14Front[2][iETA1];
5589  }
5590  if (fr == 0) {
5591  par1[0] = A_mu14Rare[0][iETA1];
5592  par1[1] = A_mu14Rare[1][iETA1];
5593  par1[2] = A_mu14Rare[2][iETA1];
5594  par1[3] = A_mu14Rare[3][iETA1];
5595  par_sig1[0] = A_sig14Rare[0][iETA1];
5596  par_sig1[1] = A_sig14Rare[1][iETA1];
5597  par_sig1[2] = A_sig14Rare[2][iETA1];
5598  }
5599  break;
5600  case 11: // b1-3
5601  if (iETA1 != 2)
5602  iETA1 = 2;
5603  par1[0] = A_mu53[0][iETA1];
5604  par1[1] = A_mu53[1][iETA1];
5605  par1[2] = A_mu53[2][iETA1];
5606  par1[3] = A_mu53[3][iETA1];
5607  par_sig1[0] = A_sig53[0][iETA1];
5608  par_sig1[1] = A_sig53[1][iETA1];
5609  par_sig1[2] = A_sig53[2][iETA1];
5610 
5611  break;
5612  case 12: //1-2-b1 = 2-b1 for pt_method < 10, for pt_method > 10: b1-2
5613  if (iETA1 < 1)
5614  iETA1 = 1;
5615  if (iETA1 > 2)
5616  iETA1 = 2;
5617  par1[0] = A_mu52[0][iETA1];
5618  par1[1] = A_mu52[1][iETA1];
5619  par1[2] = A_mu52[2][iETA1];
5620  par1[3] = A_mu52[3][iETA1];
5621  par_sig1[0] = A_sig52[0][iETA1];
5622  par_sig1[1] = A_sig52[1][iETA1];
5623  par_sig1[2] = A_sig52[2][iETA1];
5624  break;
5625  case 14: //2-b1 for pt_method < 10 and b1-1 for pt_method > 10
5626  if (method < 10) {
5627  if (iETA1 < 1)
5628  iETA1 = 1;
5629  if (iETA1 > 2)
5630  iETA1 = 2;
5631  }
5632  par1[0] = A_mu52[0][iETA1];
5633  par1[1] = A_mu52[1][iETA1];
5634  par1[2] = A_mu52[2][iETA1];
5635  par1[3] = A_mu52[3][iETA1];
5636  par_sig1[0] = A_sig52[0][iETA1];
5637  par_sig1[1] = A_sig52[1][iETA1];
5638  par_sig1[2] = A_sig52[2][iETA1];
5639  if (method > 10) {
5640  if (iETA1 > 2)
5641  iETA1 = 2;
5642  par1[0] = A_mu51[0][iETA1];
5643  par1[1] = A_mu51[1][iETA1];
5644  par1[2] = A_mu51[2][iETA1];
5645  par1[3] = A_mu51[3][iETA1];
5646  par_sig1[0] = A_sig51[0][iETA1];
5647  par_sig1[1] = A_sig51[1][iETA1];
5648  par_sig1[2] = A_sig51[2][iETA1];
5649  }
5650  break;
5651  //default:
5652  //return 0.0;
5653  }
5654 
5655  //************* solve equation dLog(Likelihood)/dpt = 0 for muon + ;
5656  //if(fabs(dphi) >= 0.002)
5657  //if(fabs(dphi) >= 0.00)
5658  //if(fabs(dphi) >= 0.002 || (fabs(dphi) >= 0.01 && (type == 12 || type == 14)))
5659  //{
5660  double pt = 140;
5661  double dpt = 0.1;
5662  double step = 5.;
5663  while (pt > 2.) {
5664  double par_phi12[1] = {dphi};
5665  double v[1], lpt1_1, lpt1_2, lpt2_1, lpt2_2;
5666  v[0] = pt;
5667  lpt1_1 = Likelihood2(par_phi12, par1, par_sig1, v);
5668  v[0] = pt + dpt;
5669  lpt1_2 = Likelihood2(par_phi12, par1, par_sig1, v);
5670  double lpt1 = (lpt1_2 - lpt1_1) / dpt; // derivative at point pt1 = pt
5671  v[0] = pt - step;
5672  lpt2_1 = Likelihood2(par_phi12, par1, par_sig1, v);
5673  v[0] = pt - step + dpt;
5674  lpt2_2 = Likelihood2(par_phi12, par1, par_sig1, v);
5675  double lpt2 = (lpt2_2 - lpt2_1) / dpt; // derivative at point pt1 = pt - step
5676  // calculate 2nd derivative at point pt-0.5*step, it should be > 0 if minimum
5677  v[0] = pt - 0.5 * step;
5678  double fx = Likelihood2(par_phi12, par1, par_sig1, v);
5679  v[0] = pt - 0.5 * step + dpt;
5680  double fxh = Likelihood2(par_phi12, par1, par_sig1, v);
5681  v[0] = pt - 0.5 * step + 2 * dpt;
5682  double fx2h = Likelihood2(par_phi12, par1, par_sig1, v);
5683 
5684  double lpt2nd = -(fx2h + fx - 2 * fxh) / dpt / dpt;
5685  //if(lpt1*lpt2 <= 0 && lpt2nd < 0) std::cout << "lpt2nd < 0 dphi12 = " << dphi <<" PT = " << pt<< " eta =" << fabs(eta) << std::endl;
5686  //lpt2nd = 1.; // don't care about 2nd derivative
5687  if (lpt1 * lpt2 <= 0 && lpt2nd > 0) {
5688  PTsolv = pt - 0.5 * step;
5689  break;
5690  } // lpt = 0 between lpt1 and lpt2 => maximum pt_solv is a solution of the likelihood
5691  /*
5692  if(pt == 140.){
5693  v[0] = 200;
5694  lpt2_1 = Likelihood2(par_phi12, par1, par_sig1, v);
5695  v[0] = 200. + 5.;
5696  lpt2_2 = Likelihood2(par_phi12, par1, par_sig1, v);
5697  lpt2 = (lpt2_2-lpt2_1)/5.;
5698 
5699  v[0] = 170.;
5700  fx = Likelihood2(par_phi12, par1, par_sig1, v);
5701  v[0] = 170.+5.;
5702  fxh = Likelihood2(par_phi12, par1, par_sig1, v);
5703  v[0] = 170.+2*5.;
5704  fx2h = Likelihood2(par_phi12, par1, par_sig1, v);
5705  lpt2nd = -(fx2h + fx - 2*fxh)/5./5.;
5706  }
5707  if(pt == 140. && lpt1*lpt2 <= 0 && lpt2nd > 0 && fabs(dphi) < 0.1 ){PTsolv = 137.5; break;}
5708 */
5709  if (pt > 25) {
5710  dpt = 0.1;
5711  step = 5.;
5712  } else if (pt <= 25) {
5713  dpt = 0.01;
5714  step = 0.5;
5715  }
5716  pt = pt - step;
5717  } // end while
5718  //*********** end solve equation for muon plus
5719  //************* solve equation dLog(Likelihood)/dpt = 0 for muon minus ;
5720  // for one station method we know sing of muon: dphi > 0 for muon minus!!! => dphi = -dphi < 0
5721  dphi = -dphi;
5722  pt = 140;
5723  dpt = 0.1;
5724  step = 5.;
5725  while (pt > 2.) {
5726  double par_phi12[1] = {dphi};
5727  double v[1], lpt1_1, lpt1_2, lpt2_1, lpt2_2;
5728  v[0] = pt;
5729  lpt1_1 = Likelihood2(par_phi12, par1, par_sig1, v);
5730  v[0] = pt + dpt;
5731  lpt1_2 = Likelihood2(par_phi12, par1, par_sig1, v);
5732  double lpt1 = (lpt1_2 - lpt1_1) / dpt; // derivative at point pt1 = pt
5733  v[0] = pt - step;
5734  lpt2_1 = Likelihood2(par_phi12, par1, par_sig1, v);
5735  v[0] = pt - step + dpt;
5736  lpt2_2 = Likelihood2(par_phi12, par1, par_sig1, v);
5737  double lpt2 = (lpt2_2 - lpt2_1) / dpt; // derivative at point pt1 = pt - step
5738  // calculate 2nd derivative at point pt-0.5*step, it should be > 0 if minimum
5739  v[0] = pt - 0.5 * step;
5740  double fx = Likelihood2(par_phi12, par1, par_sig1, v);
5741  v[0] = pt - 0.5 * step + dpt;
5742  double fxh = Likelihood2(par_phi12, par1, par_sig1, v);
5743  v[0] = pt - 0.5 * step + 2 * dpt;
5744  double fx2h = Likelihood2(par_phi12, par1, par_sig1, v);
5745 
5746  double lpt2nd = -(fx2h + fx - 2 * fxh) / dpt / dpt;
5747 
5748  if (lpt1 * lpt2 <= 0 && lpt2nd > 0) {
5749  PTsolvMinus = pt - 0.5 * step;
5750  break;
5751  } // lpt = 0 between lpt1 and lpt2 => maximum pt_solv is a solution of the likelihood
5752  /*
5753  if(pt == 140.){
5754  v[0] = 200;
5755  lpt2_1 = Likelihood2(par_phi12, par1, par_sig1, v);
5756  v[0] = 200. + 5.;
5757  lpt2_2 = Likelihood2(par_phi12, par1, par_sig1, v);
5758 
5759  lpt2 = (lpt2_2-lpt2_1)/5.;
5760 
5761  v[0] = 170.;
5762  fx = Likelihood2(par_phi12, par1, par_sig1, v);
5763  v[0] = 170.+5.;
5764  fxh = Likelihood2(par_phi12, par1, par_sig1, v);
5765  v[0] = 170.+2*5.;
5766  fx2h = Likelihood2(par_phi12, par1, par_sig1, v);
5767  lpt2nd = -(fx2h + fx - 2*fxh)/5./5.;
5768  }
5769  if(pt == 140. && lpt1*lpt2 <= 0 && lpt2nd > 0 && fabs(dphi) < 0.1){PTsolvMinus = 137.5; break;}
5770 */
5771  if (pt > 25) {
5772  dpt = 0.1;
5773  step = 5.;
5774  } else if (pt <= 25) {
5775  dpt = 0.01;
5776  step = 0.5;
5777  }
5778  pt = pt - step;
5779  } // end while
5780  // }// if(fabs(dphi) >= 0.002)
5781  // else
5782  // {PTsolv = 137.5;}
5783 
5784  //*********** end solve equation for muon minus
5785  PTsolv = (PTsolv > PTsolvMinus) ? PTsolv
5786  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
5787  PTsolv = PTsolv * 1.2;
5788  if (PTsolv > 137.5)
5789  PTsolv = 137.5;
5790  if (fabs(dphi) <= 0.002 && PTsolv < 120.)
5791  PTsolv = 140.;
5792  if (fabs(dphi) <= 0.01 && (type == 11 || type == 12 || type == 14) && PTsolv < 120.)
5793  PTsolv = 140.;
5794  dphi = -dphi; //return to correct sing dphi
5795 
5796  } //if(fabs(eta_TracMy)
5797  } //end "for by iETA"
5798 
5799  float Pt = PTsolv;
5800  if (Pt > 10 && fabs(dphi) >= 0.1)
5801  std::cout << "iF = 0 for dphi = " << dphi << " and Pt = " << Pt << std::endl;
5802 
5803  //if(Pt > 100 && (type == 12 || type == 14) && fabs(eta) <= 1.2 && dphi > 0.015 )std::cout << "dphi = " << dphi << " eta = " << eta << std::endl;
5804  //if(Pt < 10 && (type == 12 || type == 14) && fabs(eta) <= 1.2 && dphi < 0.01)std::cout << "dphi = " << dphi << " eta = " << eta << std::endl;
5805  // return (Pt>0.0) ? Pt : 0.0;
5806 
5807  float Pt_min = trigger_scale->getPtScale()->getLowEdge(1); // 0 GeV
5808  if (method > 10)
5809  Pt_min = trigger_scale->getPtScale()->getLowEdge(3); // 2 GeV
5810 
5811  return (Pt > Pt_min) ? Pt : Pt_min;
5812 }
5813 float CSCTFPtMethods::Pt2Stn2011(int type, float eta, float dphi, int fr, int method, int phiSign) const {
5814  //if(fabs(eta) >= 2.4) eta = 2.35;
5815  if (fabs(eta) >= 2.2)
5816  eta = 2.15;
5817  double PTsolv = 1.; // for muon plus hypothesis
5818  double PTsolvMinus = 1.; //for muon minus hypothesis
5819  for (int iETA = 0; iETA < 15; iETA++) {
5820  if (fabs(eta) >= etabins[iETA] && fabs(eta) < etabins[iETA + 1]) {
5821  // calculate curvers of mean and sigma
5822  // calculate phi12 mean
5823  double par1[4] = {0., 0., 0., 0.};
5824  //double phi12mean = fitf5(v, par1); //mu12
5825  double par_sig1[4] = {0., 0., 0., 0};
5826  int iETA1 = iETA;
5827  int iETA2 = iETA;
5828 
5829  const double(*Amean12FnoME11)[15] = AB_mu12FnoME11;
5830  const double(*Asig12FnoME11)[15] = AB_sig12FnoME11;
5831  const double(*Amean12RnoME11)[15] = AB_mu12RnoME11;
5832  const double(*Asig12RnoME11)[15] = AB_sig12RnoME11;
5833 
5834  const double(*Amean13FnoME11)[15] = AB_mu13FnoME11;
5835  const double(*Asig13FnoME11)[15] = AB_sig13FnoME11;
5836  const double(*Amean13RnoME11)[15] = AB_mu13RnoME11;
5837  const double(*Asig13RnoME11)[15] = AB_sig13RnoME11;
5838 
5839  const double(*Amean14FnoME11)[15] = AB_mu14FnoME11;
5840  const double(*Asig14FnoME11)[15] = AB_sig14FnoME11;
5841  const double(*Amean14RnoME11)[15] = AB_mu14RnoME11;
5842  const double(*Asig14RnoME11)[15] = AB_sig14RnoME11;
5843  //
5844  const double(*Amean12FME11)[15] = AB_mu12FME11;
5845  const double(*Asig12FME11)[15] = AB_sig12FME11;
5846  const double(*Amean12RME11)[15] = AB_mu12RME11;
5847  const double(*Asig12RME11)[15] = AB_sig12RME11;
5848 
5849  const double(*Amean13FME11)[15] = AB_mu13FME11;
5850  const double(*Asig13FME11)[15] = AB_sig13FME11;
5851  const double(*Amean13RME11)[15] = AB_mu13RME11;
5852  const double(*Asig13RME11)[15] = AB_sig13RME11;
5853 
5854  const double(*Amean14FME11)[15] = AB_mu14FME11;
5855  const double(*Asig14FME11)[15] = AB_sig14FME11;
5856  const double(*Amean14RME11)[15] = AB_mu14RME11;
5857  const double(*Asig14RME11)[15] = AB_sig14RME11;
5858  //
5859  const double(*Amean12F)[15] = AB_mu12F;
5860  const double(*Asig12F)[15] = AB_sig12F;
5861  const double(*Amean12R)[15] = AB_mu12R;
5862  const double(*Asig12R)[15] = AB_sig12R;
5863 
5864  const double(*Amean13F)[15] = AB_mu13F;
5865  const double(*Asig13F)[15] = AB_sig13F;
5866  const double(*Amean13R)[15] = AB_mu13R;
5867  const double(*Asig13R)[15] = AB_sig13R;
5868 
5869  const double(*Amean14F)[15] = AB_mu14F;
5870  const double(*Asig14F)[15] = AB_sig14F;
5871  const double(*Amean14R)[15] = AB_mu14R;
5872  const double(*Asig14R)[15] = AB_sig14R;
5873 
5874  const double(*Amean23)[15] = AB_mu23;
5875  const double(*Asig23)[15] = AB_sig23;
5876  const double(*Amean24)[15] = AB_mu24;
5877  const double(*Asig24)[15] = AB_sig24;
5878  const double(*Amean34)[15] = AB_mu34;
5879  const double(*Asig34)[15] = AB_sig34;
5880 
5881  const double(*Amean51)[15] = AB_mu51;
5882  const double(*Asig51)[15] = AB_sig51;
5883  const double(*Amean52)[15] = AB_mu52;
5884  const double(*Asig52)[15] = AB_sig52;
5885  const double(*Amean53)[15] = AB_mu53;
5886  const double(*Asig53)[15] = AB_sig53;
5887 
5888  switch (type) // type = mode here
5889  {
5890  case 6: //1-2
5891  if (fr == 1) {
5892  if (iETA1 < 3)
5893  iETA1 = 3;
5894  //if(iETA1 > 11)iETA1 = 11;
5895  par1[0] = (*(Amean12F + 0))[iETA1];
5896  par1[1] = (*(Amean12F + 1))[iETA1];
5897  par1[2] = (*(Amean12F + 2))[iETA1];
5898  par1[3] = (*(Amean12F + 3))[iETA1];
5899  par_sig1[0] = (*(Asig12F + 0))[iETA1];
5900  par_sig1[1] = (*(Asig12F + 1))[iETA1];
5901  par_sig1[2] = (*(Asig12F + 2))[iETA1];
5902  par_sig1[3] = (*(Asig12F + 3))[iETA1];
5903  }
5904  if (fr == 0) {
5905  if (iETA1 < 1)
5906  iETA1 = 1;
5907  //if(iETA1 > 11)iETA1 = 11;
5908  par1[0] = (*(Amean12R + 0))[iETA1];
5909  par1[1] = (*(Amean12R + 1))[iETA1];
5910  par1[2] = (*(Amean12R + 2))[iETA1];
5911  par1[3] = (*(Amean12R + 3))[iETA1];
5912  par_sig1[0] = (*(Asig12R + 0))[iETA1];
5913  par_sig1[1] = (*(Asig12R + 1))[iETA1];
5914  par_sig1[2] = (*(Asig12R + 2))[iETA1];
5915  par_sig1[3] = (*(Asig12R + 3))[iETA1];
5916  }
5917  if (phiSign == 0) { // track belong to ME11 station
5918  if (fr == 1) {
5919  if (iETA2 < 7)
5920  iETA2 = 7;
5921  par1[0] = (*(Amean12FME11 + 0))[iETA2];
5922  par1[1] = (*(Amean12FME11 + 1))[iETA2];
5923  par1[2] = (*(Amean12FME11 + 2))[iETA2];
5924  par1[3] = (*(Amean12FME11 + 3))[iETA2];
5925  par_sig1[0] = (*(Asig12FME11 + 0))[iETA2];
5926  par_sig1[1] = (*(Asig12FME11 + 1))[iETA2];
5927  par_sig1[2] = (*(Asig12FME11 + 2))[iETA2];
5928  par_sig1[3] = (*(Asig12FME11 + 3))[iETA2];
5929  }
5930  if (fr == 0) {
5931  if (iETA2 < 7)
5932  iETA2 = 7;
5933  par1[0] = (*(Amean12RME11 + 0))[iETA2];
5934  par1[1] = (*(Amean12RME11 + 1))[iETA2];
5935  par1[2] = (*(Amean12RME11 + 2))[iETA2];
5936  par1[3] = (*(Amean12RME11 + 3))[iETA2];
5937  par_sig1[0] = (*(Asig12RME11 + 0))[iETA2];
5938  par_sig1[1] = (*(Asig12RME11 + 1))[iETA2];
5939  par_sig1[2] = (*(Asig12RME11 + 2))[iETA2];
5940  par_sig1[3] = (*(Asig12RME11 + 3))[iETA2];
5941  }
5942  }
5943  if (phiSign == 1) { // track belong to ME1/2 or ME1/3 station
5944  if (fr == 1) {
5945  if (iETA2 < 3)
5946  iETA2 = 3;
5947  if (iETA2 > 7)
5948  iETA2 = 7;
5949  par1[0] = (*(Amean12FnoME11 + 0))[iETA2];
5950  par1[1] = (*(Amean12FnoME11 + 1))[iETA2];
5951  par1[2] = (*(Amean12FnoME11 + 2))[iETA2];
5952  par1[3] = (*(Amean12FnoME11 + 3))[iETA2];
5953  par_sig1[0] = (*(Asig12FnoME11 + 0))[iETA2];
5954  par_sig1[1] = (*(Asig12FnoME11 + 1))[iETA2];
5955  par_sig1[2] = (*(Asig12FnoME11 + 2))[iETA2];
5956  par_sig1[3] = (*(Asig12FnoME11 + 3))[iETA2];
5957  }
5958  if (fr == 0) {
5959  if (iETA2 < 1)
5960  iETA2 = 1;
5961  if (iETA2 > 6)
5962  iETA2 = 6; // rare ME1/2 only till 1.6
5963  par1[0] = (*(Amean12RnoME11 + 0))[iETA2];
5964  par1[1] = (*(Amean12RnoME11 + 1))[iETA2];
5965  par1[2] = (*(Amean12RnoME11 + 2))[iETA2];
5966  par1[3] = (*(Amean12RnoME11 + 3))[iETA2];
5967  par_sig1[0] = (*(Asig12RnoME11 + 0))[iETA2];
5968  par_sig1[1] = (*(Asig12RnoME11 + 1))[iETA2];
5969  par_sig1[2] = (*(Asig12RnoME11 + 2))[iETA2];
5970  par_sig1[3] = (*(Asig12RnoME11 + 3))[iETA2];
5971  }
5972  }
5973 
5974  break;
5975  case 7: //1-3
5976  if (fr == 1) {
5977  if (iETA1 < 3)
5978  iETA1 = 3;
5979  //if(iETA1 > 11)iETA1 = 11;
5980  par1[0] = (*(Amean13F + 0))[iETA1];
5981  par1[1] = (*(Amean13F + 1))[iETA1];
5982  par1[2] = (*(Amean13F + 2))[iETA1];
5983  par1[3] = (*(Amean13F + 3))[iETA1];
5984  par_sig1[0] = (*(Asig13F + 0))[iETA1];
5985  par_sig1[1] = (*(Asig13F + 1))[iETA1];
5986  par_sig1[2] = (*(Asig13F + 2))[iETA1];
5987  par_sig1[3] = (*(Asig13F + 3))[iETA1];
5988  }
5989  if (fr == 0) {
5990  if (iETA1 < 3)
5991  iETA1 = 3;
5992  //if(iETA1 > 11)iETA1 = 11;
5993  par1[0] = (*(Amean13R + 0))[iETA1];
5994  par1[1] = (*(Amean13R + 1))[iETA1];
5995  par1[2] = (*(Amean13R + 2))[iETA1];
5996  par1[3] = (*(Amean13R + 3))[iETA1];
5997  par_sig1[0] = (*(Asig13R + 0))[iETA1];
5998  par_sig1[1] = (*(Asig13R + 1))[iETA1];
5999  par_sig1[2] = (*(Asig13R + 2))[iETA1];
6000  par_sig1[3] = (*(Asig13R + 3))[iETA1];
6001  }
6002  if (phiSign == 0) { // track belong to ME11 station
6003  if (fr == 1) {
6004  if (iETA2 < 7)
6005  iETA2 = 7;
6006  par1[0] = (*(Amean13FME11 + 0))[iETA2];
6007  par1[1] = (*(Amean13FME11 + 1))[iETA2];
6008  par1[2] = (*(Amean13FME11 + 2))[iETA2];
6009  par1[3] = (*(Amean13FME11 + 3))[iETA2];
6010  par_sig1[0] = (*(Asig13FME11 + 0))[iETA2];
6011  par_sig1[1] = (*(Asig13FME11 + 1))[iETA2];
6012  par_sig1[2] = (*(Asig13FME11 + 2))[iETA2];
6013  par_sig1[3] = (*(Asig13FME11 + 3))[iETA2];
6014  }
6015  if (fr == 0) {
6016  if (iETA2 < 7)
6017  iETA2 = 7;
6018  par1[0] = (*(Amean13RME11 + 0))[iETA2];
6019  par1[1] = (*(Amean13RME11 + 1))[iETA2];
6020  par1[2] = (*(Amean13RME11 + 2))[iETA2];
6021  par1[3] = (*(Amean13RME11 + 3))[iETA2];
6022  par_sig1[0] = (*(Asig13RME11 + 0))[iETA2];
6023  par_sig1[1] = (*(Asig13RME11 + 1))[iETA2];
6024  par_sig1[2] = (*(Asig13RME11 + 2))[iETA2];
6025  par_sig1[3] = (*(Asig13RME11 + 3))[iETA2];
6026  }
6027  }
6028  if (phiSign == 1) { // track belong to ME1/2 or ME1/3 station
6029  if (fr == 1) {
6030  if (iETA2 < 3)
6031  iETA2 = 3;
6032  if (iETA2 > 7)
6033  iETA2 = 7;
6034  par1[0] = (*(Amean13FnoME11 + 0))[iETA2];
6035  par1[1] = (*(Amean13FnoME11 + 1))[iETA2];
6036  par1[2] = (*(Amean13FnoME11 + 2))[iETA2];
6037  par1[3] = (*(Amean13FnoME11 + 3))[iETA2];
6038  par_sig1[0] = (*(Asig13FnoME11 + 0))[iETA2];
6039  par_sig1[1] = (*(Asig13FnoME11 + 1))[iETA2];
6040  par_sig1[2] = (*(Asig13FnoME11 + 2))[iETA2];
6041  par_sig1[3] = (*(Asig13FnoME11 + 3))[iETA2];
6042  }
6043  if (fr == 0) {
6044  if (iETA2 < 3)
6045  iETA2 = 3;
6046  if (iETA2 > 6)
6047  iETA2 = 6; // rare ME1/2 only till 1.6
6048  par1[0] = (*(Amean13RnoME11 + 0))[iETA2];
6049  par1[1] = (*(Amean13RnoME11 + 1))[iETA2];
6050  par1[2] = (*(Amean13RnoME11 + 2))[iETA2];
6051  par1[3] = (*(Amean13RnoME11 + 3))[iETA2];
6052  par_sig1[0] = (*(Asig13RnoME11 + 0))[iETA2];
6053  par_sig1[1] = (*(Asig13RnoME11 + 1))[iETA2];
6054  par_sig1[2] = (*(Asig13RnoME11 + 2))[iETA2];
6055  par_sig1[3] = (*(Asig13RnoME11 + 3))[iETA2];
6056  }
6057  }
6058  break;
6059  case 8: //2-3
6060  if (iETA1 < 2)
6061  iETA1 = 2;
6062  par1[0] = (*(Amean23 + 0))[iETA1];
6063  par1[1] = (*(Amean23 + 1))[iETA1];
6064  par1[2] = (*(Amean23 + 2))[iETA1];
6065  par1[3] = (*(Amean23 + 3))[iETA1];
6066  par_sig1[0] = (*(Asig23 + 0))[iETA1];
6067  par_sig1[1] = (*(Asig23 + 1))[iETA1];
6068  par_sig1[2] = (*(Asig23 + 2))[iETA1];
6069  par_sig1[3] = (*(Asig23 + 3))[iETA1];
6070 
6071  break;
6072  case 9: //2-4
6073  if (iETA1 < 3)
6074  iETA1 = 3;
6075  par1[0] = (*(Amean24 + 0))[iETA1];
6076  par1[1] = (*(Amean24 + 1))[iETA1];
6077  par1[2] = (*(Amean24 + 2))[iETA1];
6078  par1[3] = (*(Amean24 + 3))[iETA1];
6079  par_sig1[0] = (*(Asig24 + 0))[iETA1];
6080  par_sig1[1] = (*(Asig24 + 1))[iETA1];
6081  par_sig1[2] = (*(Asig24 + 2))[iETA1];
6082  par_sig1[3] = (*(Asig24 + 3))[iETA1];
6083  break;
6084  case 10: //3-4
6085  if (iETA1 < 3)
6086  iETA1 = 3;
6087  par1[0] = (*(Amean34 + 0))[iETA1];
6088  par1[1] = (*(Amean34 + 1))[iETA1];
6089  par1[2] = (*(Amean34 + 2))[iETA1];
6090  par1[3] = (*(Amean34 + 3))[iETA1];
6091  par_sig1[0] = (*(Asig34 + 0))[iETA1];
6092  par_sig1[1] = (*(Asig34 + 1))[iETA1];
6093  par_sig1[2] = (*(Asig34 + 2))[iETA1];
6094  par_sig1[3] = (*(Asig34 + 3))[iETA1];
6095  break;
6096  case 13: //1-4
6097  if (fr == 1) {
6098  if (iETA1 < 3)
6099  iETA1 = 3;
6100  //if(iETA1 > 11)iETA1 = 11;
6101  par1[0] = (*(Amean14F + 0))[iETA1];
6102  par1[1] = (*(Amean14F + 1))[iETA1];
6103  par1[2] = (*(Amean14F + 2))[iETA1];
6104  par1[3] = (*(Amean14F + 3))[iETA1];
6105  par_sig1[0] = (*(Asig14F + 0))[iETA1];
6106  par_sig1[1] = (*(Asig14F + 1))[iETA1];
6107  par_sig1[2] = (*(Asig14F + 2))[iETA1];
6108  par_sig1[3] = (*(Asig14F + 3))[iETA1];
6109  }
6110  if (fr == 0) {
6111  if (iETA1 < 2)
6112  iETA1 = 2;
6113  //if(iETA1 > 11)iETA1 = 11;
6114  par1[0] = (*(Amean14R + 0))[iETA1];
6115  par1[1] = (*(Amean14R + 1))[iETA1];
6116  par1[2] = (*(Amean14R + 2))[iETA1];
6117  par1[3] = (*(Amean14R + 3))[iETA1];
6118  par_sig1[0] = (*(Asig14R + 0))[iETA1];
6119  par_sig1[1] = (*(Asig14R + 1))[iETA1];
6120  par_sig1[2] = (*(Asig14R + 2))[iETA1];
6121  par_sig1[3] = (*(Asig14R + 3))[iETA1];
6122  }
6123  if (phiSign == 0) { // track belong to ME11 station
6124  if (fr == 1) {
6125  if (iETA2 < 9)
6126  iETA2 = 9;
6127  par1[0] = (*(Amean14FME11 + 0))[iETA2];
6128  par1[1] = (*(Amean14FME11 + 1))[iETA2];
6129  par1[2] = (*(Amean14FME11 + 2))[iETA2];
6130  par1[3] = (*(Amean14FME11 + 3))[iETA2];
6131  par_sig1[0] = (*(Asig14FME11 + 0))[iETA2];
6132  par_sig1[1] = (*(Asig14FME11 + 1))[iETA2];
6133  par_sig1[2] = (*(Asig14FME11 + 2))[iETA2];
6134  par_sig1[3] = (*(Asig14FME11 + 3))[iETA2];
6135  }
6136  if (fr == 0) {
6137  if (iETA2 < 9)
6138  iETA2 = 9;
6139  par1[0] = (*(Amean14RME11 + 0))[iETA2];
6140  par1[1] = (*(Amean14RME11 + 1))[iETA2];
6141  par1[2] = (*(Amean14RME11 + 2))[iETA2];
6142  par1[3] = (*(Amean14RME11 + 3))[iETA2];
6143  par_sig1[0] = (*(Asig14RME11 + 0))[iETA2];
6144  par_sig1[1] = (*(Asig14RME11 + 1))[iETA2];
6145  par_sig1[2] = (*(Asig14RME11 + 2))[iETA2];
6146  par_sig1[3] = (*(Asig14RME11 + 3))[iETA2];
6147  }
6148  }
6149  if (phiSign == 1) { // track belong to ME1/2 or ME1/3 station
6150  if (fr == 1) {
6151  if (iETA2 < 4)
6152  iETA2 = 4;
6153  if (iETA2 > 7)
6154  iETA2 = 7;
6155  par1[0] = (*(Amean14FnoME11 + 0))[iETA2];
6156  par1[1] = (*(Amean14FnoME11 + 1))[iETA2];
6157  par1[2] = (*(Amean14FnoME11 + 2))[iETA2];
6158  par1[3] = (*(Amean14FnoME11 + 3))[iETA2];
6159  par_sig1[0] = (*(Asig14FnoME11 + 0))[iETA2];
6160  par_sig1[1] = (*(Asig14FnoME11 + 1))[iETA2];
6161  par_sig1[2] = (*(Asig14FnoME11 + 2))[iETA2];
6162  par_sig1[3] = (*(Asig14FnoME11 + 3))[iETA2];
6163  }
6164  if (fr == 0) {
6165  if (iETA2 < 4)
6166  iETA2 = 4;
6167  if (iETA2 > 6)
6168  iETA2 = 6; // rare ME1/2 only till 1.6
6169  par1[0] = (*(Amean14RnoME11 + 0))[iETA2];
6170  par1[1] = (*(Amean14RnoME11 + 1))[iETA2];
6171  par1[2] = (*(Amean14RnoME11 + 2))[iETA2];
6172  par1[3] = (*(Amean14RnoME11 + 3))[iETA2];
6173  par_sig1[0] = (*(Asig14RnoME11 + 0))[iETA2];
6174  par_sig1[1] = (*(Asig14RnoME11 + 1))[iETA2];
6175  par_sig1[2] = (*(Asig14RnoME11 + 2))[iETA2];
6176  par_sig1[3] = (*(Asig14RnoME11 + 3))[iETA2];
6177  }
6178  }
6179 
6180  break;
6181  case 11: // b1-3 for pt_method > 10 & fr = 0, singles for pt_method < 10
6182  if (iETA1 != 2)
6183  iETA1 = 2;
6184  par1[0] = (*(Amean53 + 0))[iETA1];
6185  par1[1] = (*(Amean53 + 1))[iETA1];
6186  par1[2] = (*(Amean53 + 2))[iETA1];
6187  par1[3] = (*(Amean53 + 3))[iETA1];
6188  par_sig1[0] = (*(Asig53 + 0))[iETA1];
6189  par_sig1[1] = (*(Asig53 + 1))[iETA1];
6190  par_sig1[2] = (*(Asig53 + 2))[iETA1];
6191  par_sig1[3] = (*(Asig53 + 3))[iETA1];
6192  break;
6193 
6194  case 12: //1-2-b1 = 2-b1 for pt_method < 10, for pt_method > 10 & fr = 0: b1-2
6195  if (iETA1 < 1)
6196  iETA1 = 1;
6197  if (iETA1 > 2)
6198  iETA1 = 2;
6199 
6200  par1[0] = (*(Amean52 + 0))[iETA1];
6201  par1[1] = (*(Amean52 + 1))[iETA1];
6202  par1[2] = (*(Amean52 + 2))[iETA1];
6203  par1[3] = (*(Amean52 + 3))[iETA1];
6204  par_sig1[0] = (*(Asig52 + 0))[iETA1];
6205  par_sig1[1] = (*(Asig52 + 1))[iETA1];
6206  par_sig1[2] = (*(Asig52 + 2))[iETA1];
6207  par_sig1[3] = (*(Asig52 + 3))[iETA1];
6208 
6209  break;
6210  case 14: //2-b1 for pt_method < 10 and b1-1 for pt_method > 10 & fr = 0
6211  if (method < 10) {
6212  if (iETA1 < 1)
6213  iETA1 = 1;
6214  if (iETA1 > 2)
6215  iETA1 = 2;
6216  }
6217  par1[0] = (*(Amean52 + 0))[iETA1];
6218  par1[1] = (*(Amean52 + 1))[iETA1];
6219  par1[2] = (*(Amean52 + 2))[iETA1];
6220  par1[3] = (*(Amean52 + 3))[iETA1];
6221  par_sig1[0] = (*(Asig52 + 0))[iETA1];
6222  par_sig1[1] = (*(Asig52 + 1))[iETA1];
6223  par_sig1[2] = (*(Asig52 + 2))[iETA1];
6224  par_sig1[3] = (*(Asig52 + 3))[iETA1];
6225 
6226  if (method > 10) {
6227  if (iETA1 > 2)
6228  iETA1 = 2;
6229  par1[0] = (*(Amean51 + 0))[iETA1];
6230  par1[1] = (*(Amean51 + 1))[iETA1];
6231  par1[2] = (*(Amean51 + 2))[iETA1];
6232  par1[3] = (*(Amean51 + 3))[iETA1];
6233  par_sig1[0] = (*(Asig51 + 0))[iETA1];
6234  par_sig1[1] = (*(Asig51 + 1))[iETA1];
6235  par_sig1[2] = (*(Asig51 + 2))[iETA1];
6236  par_sig1[3] = (*(Asig51 + 3))[iETA1];
6237  }
6238  break;
6239  //default:
6240  //return 0.0;
6241  }
6242 
6243  //************* solve equation dLog(Likelihood)/dpt = 0 for muon + ;
6244  //if(fabs(dphi) >= 0.002)
6245  //if(fabs(dphi) >= 0.00)
6246  //if(fabs(dphi) >= 0.002 || (fabs(dphi) >= 0.01 && (type == 12 || type == 14)))
6247  //{
6248  double pt = 140;
6249  double dpt = 0.1;
6250  double step = 5.;
6251  while (pt > 2.) {
6252  double par_phi12[1] = {dphi};
6253  double v[1], lpt1_1, lpt1_2, lpt2_1, lpt2_2;
6254  v[0] = pt;
6255  lpt1_1 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6256  v[0] = pt + dpt;
6257  lpt1_2 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6258  double lpt1 = (lpt1_2 - lpt1_1) / dpt; // derivative at point pt1 = pt
6259  v[0] = pt - step;
6260  lpt2_1 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6261  v[0] = pt - step + dpt;
6262  lpt2_2 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6263  double lpt2 = (lpt2_2 - lpt2_1) / dpt; // derivative at point pt1 = pt - step
6264  // calculate 2nd derivative at point pt-0.5*step, it should be > 0 if minimum
6265  v[0] = pt - 0.5 * step;
6266  double fx = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6267  v[0] = pt - 0.5 * step + dpt;
6268  double fxh = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6269  v[0] = pt - 0.5 * step + 2 * dpt;
6270  double fx2h = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6271 
6272  double lpt2nd = -(fx2h + fx - 2 * fxh) / dpt / dpt;
6273  //if(lpt1*lpt2 <= 0 && lpt2nd < 0) std::cout << "lpt2nd < 0 dphi12 = " << dphi <<" PT = " << pt<< " eta =" << fabs(eta) << std::endl;
6274  //lpt2nd = 1.; // don't care about 2nd derivative
6275  if (lpt1 * lpt2 <= 0 && lpt2nd > 0) {
6276  PTsolv = pt - 0.5 * step;
6277  break;
6278  } // lpt = 0 between lpt1 and lpt2 => maximum pt_solv is a solution of the likelihood
6279  /*
6280  if(pt == 140.){
6281  v[0] = 200;
6282  lpt2_1 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6283  v[0] = 200. + 5.;
6284  lpt2_2 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6285  lpt2 = (lpt2_2-lpt2_1)/5.;
6286 
6287  v[0] = 170.;
6288  fx = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6289  v[0] = 170.+5.;
6290  fxh = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6291  v[0] = 170.+2*5.;
6292  fx2h = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6293  lpt2nd = -(fx2h + fx - 2*fxh)/5./5.;
6294  }
6295  if(pt == 140. && lpt1*lpt2 <= 0 && lpt2nd > 0 && fabs(dphi) < 0.1 ){PTsolv = 137.5; break;}
6296 */
6297  if (pt > 25) {
6298  dpt = 0.1;
6299  step = 5.;
6300  } else if (pt <= 25) {
6301  dpt = 0.01;
6302  step = 0.5;
6303  }
6304  pt = pt - step;
6305  } // end while
6306  //*********** end solve equation for muon plus
6307  //************* solve equation dLog(Likelihood)/dpt = 0 for muon minus ;
6308  // for one station method we know sing of muon: dphi > 0 for muon minus!!! => dphi = -dphi < 0
6309  dphi = -dphi;
6310  pt = 140;
6311  dpt = 0.1;
6312  step = 5.;
6313  while (pt > 2.) {
6314  double par_phi12[1] = {dphi};
6315  double v[1], lpt1_1, lpt1_2, lpt2_1, lpt2_2;
6316  v[0] = pt;
6317  lpt1_1 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6318  v[0] = pt + dpt;
6319  lpt1_2 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6320  double lpt1 = (lpt1_2 - lpt1_1) / dpt; // derivative at point pt1 = pt
6321  v[0] = pt - step;
6322  lpt2_1 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6323  v[0] = pt - step + dpt;
6324  lpt2_2 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6325  double lpt2 = (lpt2_2 - lpt2_1) / dpt; // derivative at point pt1 = pt - step
6326  // calculate 2nd derivative at point pt-0.5*step, it should be > 0 if minimum
6327  v[0] = pt - 0.5 * step;
6328  double fx = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6329  v[0] = pt - 0.5 * step + dpt;
6330  double fxh = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6331  v[0] = pt - 0.5 * step + 2 * dpt;
6332  double fx2h = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6333 
6334  double lpt2nd = -(fx2h + fx - 2 * fxh) / dpt / dpt;
6335 
6336  if (lpt1 * lpt2 <= 0 && lpt2nd > 0) {
6337  PTsolvMinus = pt - 0.5 * step;
6338  break;
6339  } // lpt = 0 between lpt1 and lpt2 => maximum pt_solv is a solution of the likelihood
6340  /*
6341  if(pt == 140.){
6342  v[0] = 200;
6343  lpt2_1 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6344  v[0] = 200. + 5.;
6345  lpt2_2 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6346 
6347  lpt2 = (lpt2_2-lpt2_1)/5.;
6348 
6349  v[0] = 170.;
6350  fx = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6351  v[0] = 170.+5.;
6352  fxh = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6353  v[0] = 170.+2*5.;
6354  fx2h = Likelihood2_2011(par_phi12, par1, par_sig1, v);
6355  lpt2nd = -(fx2h + fx - 2*fxh)/5./5.;
6356  }
6357  if(pt == 140. && lpt1*lpt2 <= 0 && lpt2nd > 0 && fabs(dphi) < 0.1){PTsolvMinus = 137.5; break;}
6358 */
6359  if (pt > 25) {
6360  dpt = 0.1;
6361  step = 5.;
6362  } else if (pt <= 25) {
6363  dpt = 0.01;
6364  step = 0.5;
6365  }
6366  pt = pt - step;
6367  } // end while
6368  // }// if(fabs(dphi) >= 0.002)
6369  // else
6370  // {PTsolv = 137.5;}
6371 
6372  //*********** end solve equation for muon minus
6373  PTsolv = (PTsolv > PTsolvMinus) ? PTsolv
6374  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
6375  PTsolv = PTsolv * 1.2;
6376  if (PTsolv > 137.5)
6377  PTsolv = 137.5;
6378  if (fabs(dphi) <= 0.002 && PTsolv < 120.)
6379  PTsolv = 140.;
6380  //if( fabs(dphi) <= 0.01 && (type == 11 || type == 12 || type == 14) && PTsolv < 120.)PTsolv = 140.;
6381  dphi = -dphi; //return to correct sing dphi
6382 
6383  } //if(fabs(eta_TracMy)
6384  } //end "for by iETA"
6385 
6386  float Pt = PTsolv;
6387 
6388  //float Pt_min = trigger_scale->getPtScale()->getLowEdge(1);// 0 GeV
6389  //if(method > 10) Pt_min = trigger_scale->getPtScale()->getLowEdge(3);// 2 GeV
6390  float Pt_min = 2; // 0 GeV
6391 
6392  return (Pt > Pt_min) ? Pt : Pt_min;
6393 }
6394 float CSCTFPtMethods::Pt3Stn2010(int type, float eta, float dphi1, float dphi2, int fr, int method) const {
6395  if (fabs(eta) >= 2.4)
6396  eta = 2.35;
6397  float Pt = 0.;
6398  double PTsolv = 1.; // for muon plus hypothesis
6399  double PTsolvMinus = 1.; //for muon minus hypothesis
6400  for (int iETA = 0; iETA < 15; iETA++) {
6401  if (fabs(eta) >= etabins[iETA] && fabs(eta) < etabins[iETA + 1]) {
6402  // calculate curvers of mean and sigma
6403  // calculate phi12 mean
6404  double par1[4] = {0., 0., 0., 0.};
6405  //double phi12mean = fitf5(v, par1); //mu12
6406  double par_sig1[3] = {0., 0., 0.};
6407  // calculate phi23 mean
6408  double par2[4] = {0., 0., 0., 0.};
6409  // calculate phi23 sig
6410  double par_sig2[3] = {0., 0., 0.};
6411  // calculate correlation rho
6412  double par_rho[5] = {0., 0., 0., 0., 0.};
6413  int iETA1 = iETA;
6414  int iETA2 = iETA;
6415  switch (type) // type = mode here
6416  {
6417  case 2: //1-2-3
6418  if (fr == 1) {
6419  if (iETA1 < 3)
6420  iETA1 = 3;
6421  //if(iETA1 > 11)iETA1 = 11;
6422  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
6423  par1[0] = A_mu12Front[0][iETA1];
6424  par1[1] = A_mu12Front[1][iETA1];
6425  par1[2] = A_mu12Front[2][iETA1];
6426  par1[3] = A_mu12Front[3][iETA1];
6427  par_sig1[0] = A_sig12Front[0][iETA1];
6428  par_sig1[1] = A_sig12Front[1][iETA1];
6429  par_sig1[2] = A_sig12Front[2][iETA1];
6430  par_rho[0] = A_rho123FrontCSCTF[0][iETA1];
6431  par_rho[1] = A_rho123FrontCSCTF[1][iETA1];
6432  par_rho[2] = A_rho123FrontCSCTF[2][iETA1];
6433  par_rho[3] = A_rho123FrontCSCTF[3][iETA1];
6434  par_rho[4] = A_rho123FrontCSCTF[4][iETA1];
6435  }
6436  if (fr == 0) {
6437  if (iETA1 < 1)
6438  iETA1 = 1;
6439  //if(iETA1 > 11)iETA1 = 11;
6440  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
6441  par1[0] = A_mu12Rare[0][iETA1];
6442  par1[1] = A_mu12Rare[1][iETA1];
6443  par1[2] = A_mu12Rare[2][iETA1];
6444  par1[3] = A_mu12Rare[3][iETA1];
6445  par_sig1[0] = A_sig12Rare[0][iETA1];
6446  par_sig1[1] = A_sig12Rare[1][iETA1];
6447  par_sig1[2] = A_sig12Rare[2][iETA1];
6448  par_rho[0] = A_rho123RareCSCTF[0][iETA1];
6449  par_rho[1] = A_rho123RareCSCTF[1][iETA1];
6450  par_rho[2] = A_rho123RareCSCTF[2][iETA1];
6451  par_rho[3] = A_rho123RareCSCTF[3][iETA1];
6452  par_rho[4] = A_rho123RareCSCTF[4][iETA1];
6453  }
6454  if (iETA2 < 2)
6455  iETA2 = 2;
6456  par2[0] = A_mu23[0][iETA2];
6457  par2[1] = A_mu23[1][iETA2];
6458  par2[2] = A_mu23[2][iETA2];
6459  par2[3] = A_mu23[3][iETA2];
6460  par_sig2[0] = A_sig23[0][iETA2];
6461  par_sig2[1] = A_sig23[1][iETA2];
6462  par_sig2[2] = A_sig23[2][iETA2];
6463 
6464  break;
6465  case 3: //1-2-4
6466  if (fr == 1) {
6467  if (iETA1 < 3)
6468  iETA1 = 3;
6469  //if(iETA1 > 11)iETA1 = 11;
6470  par1[0] = A_mu12Front[0][iETA1];
6471  par1[1] = A_mu12Front[1][iETA1];
6472  par1[2] = A_mu12Front[2][iETA1];
6473  par1[3] = A_mu12Front[3][iETA1];
6474  par_sig1[0] = A_sig12Front[0][iETA1];
6475  par_sig1[1] = A_sig12Front[1][iETA1];
6476  par_sig1[2] = A_sig12Front[2][iETA1];
6477  par_rho[0] = A_rho124FrontCSCTF[0][iETA1];
6478  par_rho[1] = A_rho124FrontCSCTF[1][iETA1];
6479  par_rho[2] = A_rho124FrontCSCTF[2][iETA1];
6480  par_rho[3] = A_rho124FrontCSCTF[3][iETA1];
6481  par_rho[4] = A_rho124FrontCSCTF[4][iETA1];
6482  }
6483  if (fr == 0) {
6484  if (iETA1 < 1)
6485  iETA1 = 1;
6486  //if(iETA1 > 11)iETA1 = 11;
6487  par1[0] = A_mu12Rare[0][iETA1];
6488  par1[1] = A_mu12Rare[1][iETA1];
6489  par1[2] = A_mu12Rare[2][iETA1];
6490  par1[3] = A_mu12Rare[3][iETA1];
6491  par_sig1[0] = A_sig12Rare[0][iETA1];
6492  par_sig1[1] = A_sig12Rare[1][iETA1];
6493  par_sig1[2] = A_sig12Rare[2][iETA1];
6494  par_rho[0] = A_rho124RareCSCTF[0][iETA1];
6495  par_rho[1] = A_rho124RareCSCTF[1][iETA1];
6496  par_rho[2] = A_rho124RareCSCTF[2][iETA1];
6497  par_rho[3] = A_rho124RareCSCTF[3][iETA1];
6498  par_rho[4] = A_rho124RareCSCTF[4][iETA1];
6499  }
6500  if (iETA2 < 9)
6501  iETA2 = 9;
6502  par2[0] = A_mu24[0][iETA2];
6503  par2[1] = A_mu24[1][iETA2];
6504  par2[2] = A_mu24[2][iETA2];
6505  par2[3] = A_mu24[3][iETA2];
6506  par_sig2[0] = A_sig24[0][iETA2];
6507  par_sig2[1] = A_sig24[1][iETA2];
6508  par_sig2[2] = A_sig24[2][iETA2];
6509  break;
6510  case 4: //1-3-4
6511  if (fr == 1) {
6512  if (iETA1 < 3)
6513  iETA1 = 3;
6514  //if(iETA1 > 11)iETA1 = 11;
6515  par1[0] = A_mu13Front[0][iETA1];
6516  par1[1] = A_mu13Front[1][iETA1];
6517  par1[2] = A_mu13Front[2][iETA1];
6518  par1[3] = A_mu13Front[3][iETA1];
6519  par_sig1[0] = A_sig13Front[0][iETA1];
6520  par_sig1[1] = A_sig13Front[1][iETA1];
6521  par_sig1[2] = A_sig13Front[2][iETA1];
6522  par_rho[0] = A_rho134FrontCSCTF[0][iETA1];
6523  par_rho[1] = A_rho134FrontCSCTF[1][iETA1];
6524  par_rho[2] = A_rho134FrontCSCTF[2][iETA1];
6525  par_rho[3] = A_rho134FrontCSCTF[3][iETA1];
6526  par_rho[4] = A_rho134FrontCSCTF[4][iETA1];
6527  }
6528  if (fr == 0) {
6529  if (iETA1 < 2)
6530  iETA1 = 2;
6531  //if(iETA1 > 11)iETA1 = 11;
6532  par1[0] = A_mu13Rare[0][iETA1];
6533  par1[1] = A_mu13Rare[1][iETA1];
6534  par1[2] = A_mu13Rare[2][iETA1];
6535  par1[3] = A_mu13Rare[3][iETA1];
6536  par_sig1[0] = A_sig13Rare[0][iETA1];
6537  par_sig1[1] = A_sig13Rare[1][iETA1];
6538  par_sig1[2] = A_sig13Rare[2][iETA1];
6539  par_rho[0] = A_rho134RareCSCTF[0][iETA1];
6540  par_rho[1] = A_rho134RareCSCTF[1][iETA1];
6541  par_rho[2] = A_rho134RareCSCTF[2][iETA1];
6542  par_rho[3] = A_rho134RareCSCTF[3][iETA1];
6543  par_rho[4] = A_rho134RareCSCTF[4][iETA1];
6544  }
6545  if (iETA2 < 9)
6546  iETA2 = 9;
6547  par2[0] = A_mu34[0][iETA2];
6548  par2[1] = A_mu34[1][iETA2];
6549  par2[2] = A_mu34[2][iETA2];
6550  par2[3] = A_mu34[3][iETA2];
6551  par_sig2[0] = A_sig34[0][iETA2];
6552  par_sig2[1] = A_sig34[1][iETA2];
6553  par_sig2[2] = A_sig34[2][iETA2];
6554  break;
6555  case 5: //2-3-4
6556  if (iETA1 < 9)
6557  iETA1 = 9;
6558  par1[0] = A_mu23[0][iETA1];
6559  par1[1] = A_mu23[1][iETA1];
6560  par1[2] = A_mu23[2][iETA1];
6561  par1[3] = A_mu23[3][iETA1];
6562  par_sig1[0] = A_sig23[0][iETA1];
6563  par_sig1[1] = A_sig23[1][iETA1];
6564  par_sig1[2] = A_sig23[2][iETA1];
6565  par_rho[0] = A_rho234CSCTF[0][iETA1];
6566  par_rho[1] = A_rho234CSCTF[1][iETA1];
6567  par_rho[2] = A_rho234CSCTF[2][iETA1];
6568  par_rho[3] = A_rho234CSCTF[3][iETA1];
6569  par_rho[4] = A_rho234CSCTF[4][iETA1];
6570 
6571  par2[0] = A_mu34[0][iETA1];
6572  par2[1] = A_mu34[1][iETA1];
6573  par2[2] = A_mu34[2][iETA1];
6574  par2[3] = A_mu34[3][iETA1];
6575  par_sig2[0] = A_sig34[0][iETA1];
6576  par_sig2[1] = A_sig34[1][iETA1];
6577  par_sig2[2] = A_sig34[2][iETA1];
6578  break;
6579  case 11: // b1-1-3
6580  if (iETA1 != 2)
6581  iETA1 = 2;
6582  par1[0] = A_mu51[0][iETA1];
6583  par1[1] = A_mu51[1][iETA1];
6584  par1[2] = A_mu51[2][iETA1];
6585  par1[3] = A_mu51[3][iETA1];
6586  par_sig1[0] = A_sig51[0][iETA1];
6587  par_sig1[1] = A_sig51[1][iETA1];
6588  par_sig1[2] = A_sig51[2][iETA1];
6589  par_rho[0] = A_rho513[0][iETA1];
6590  par_rho[1] = A_rho513[0][iETA1];
6591  par_rho[2] = A_rho513[0][iETA1];
6592  par_rho[3] = A_rho513[0][iETA1];
6593  par_rho[4] = A_rho513[0][iETA1];
6594 
6595  par2[0] = A_mu13Rare[0][iETA1];
6596  par2[1] = A_mu13Rare[1][iETA1];
6597  par2[2] = A_mu13Rare[2][iETA1];
6598  par2[3] = A_mu13Rare[3][iETA1];
6599  par_sig2[0] = A_sig13Rare[0][iETA1];
6600  par_sig2[1] = A_sig13Rare[1][iETA1];
6601  par_sig2[2] = A_sig13Rare[2][iETA1];
6602  break;
6603  case 12: // b1-2-3
6604  if (iETA1 != 2)
6605  iETA1 = 2;
6606  par1[0] = A_mu52[0][iETA1];
6607  par1[1] = A_mu52[1][iETA1];
6608  par1[2] = A_mu52[2][iETA1];
6609  par1[3] = A_mu52[3][iETA1];
6610  par_sig1[0] = A_sig52[0][iETA1];
6611  par_sig1[1] = A_sig52[1][iETA1];
6612  par_sig1[2] = A_sig52[2][iETA1];
6613  par_rho[0] = A_rho523[0][iETA1];
6614  par_rho[1] = A_rho523[0][iETA1];
6615  par_rho[2] = A_rho523[0][iETA1];
6616  par_rho[3] = A_rho523[0][iETA1];
6617  par_rho[4] = A_rho523[0][iETA1];
6618 
6619  par2[0] = A_mu23[0][iETA1];
6620  par2[1] = A_mu23[1][iETA1];
6621  par2[2] = A_mu23[2][iETA1];
6622  par2[3] = A_mu23[3][iETA1];
6623  par_sig2[0] = A_sig23[0][iETA1];
6624  par_sig2[1] = A_sig23[1][iETA1];
6625  par_sig2[2] = A_sig23[2][iETA1];
6626  break;
6627  case 14: // b1-1-2-(3)
6628  if (iETA1 < 1)
6629  iETA1 = 1;
6630  if (iETA1 > 2)
6631  iETA1 = 2;
6632  par1[0] = A_mu51[0][iETA1];
6633  par1[1] = A_mu51[1][iETA1];
6634  par1[2] = A_mu51[2][iETA1];
6635  par1[3] = A_mu51[3][iETA1];
6636  par_sig1[0] = A_sig51[0][iETA1];
6637  par_sig1[1] = A_sig51[1][iETA1];
6638  par_sig1[2] = A_sig51[2][iETA1];
6639  par_rho[0] = A_rho512[0][iETA1];
6640  par_rho[1] = A_rho512[0][iETA1];
6641  par_rho[2] = A_rho512[0][iETA1];
6642  par_rho[3] = A_rho512[0][iETA1];
6643  par_rho[4] = A_rho512[0][iETA1];
6644 
6645  par2[0] = A_mu12Rare[0][iETA1];
6646  par2[1] = A_mu12Rare[1][iETA1];
6647  par2[2] = A_mu12Rare[2][iETA1];
6648  par2[3] = A_mu12Rare[3][iETA1];
6649  par_sig2[0] = A_sig12Rare[0][iETA1];
6650  par_sig2[1] = A_sig12Rare[1][iETA1];
6651  par_sig2[2] = A_sig12Rare[2][iETA1];
6652  break;
6653  //default:
6654  //return 0.0;
6655  }
6656 
6657  // Switch to 2-Station measurement if dphi is too small
6658  // box cut around Pt of 10 GeV
6659  if (fabs(static_cast<double>(dphi2)) < 0.004) {
6660  if (type == 2 || type == 3)
6661  type = 6; // 1-2-3(or 4) -> 1-2
6662  if (type == 4)
6663  type = 7; // 1-3-4 -> 1-3
6664  if (type == 5)
6665  type = 8; // 2-3-4 -> 2-3
6666  if (type == 11)
6667  type = 14; // b1-1-3 -> b1-1 for pt_method > 10
6668  Pt = Pt2Stn2010(type, eta, dphi1, fr, method);
6669  } else {
6670  //************* solve equation dLog(Likelihood)/dpt = 0 for muon + ;
6671  double pt = 140;
6672  double dpt = 0.1;
6673  double step = 5.;
6674  while (pt > 2.) {
6675  double par_phi12[1] = {dphi1};
6676  double par_phi23[1] = {dphi2};
6677  double v[1], lpt1_1, lpt1_2, lpt2_1, lpt2_2;
6678  v[0] = pt;
6679  lpt1_1 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6680  v[0] = pt + dpt;
6681  lpt1_2 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6682  double lpt1 = (lpt1_2 - lpt1_1) / dpt; // derivative at point pt1 = pt
6683  v[0] = pt - step;
6684  lpt2_1 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6685  v[0] = pt - step + dpt;
6686  lpt2_2 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6687  double lpt2 = (lpt2_2 - lpt2_1) / dpt; // derivative at point pt1 = pt - step
6688  // calculate 2nd derivative at point pt-0.5*step, it should be > 0 if minimum
6689  v[0] = pt - 0.5 * step;
6690  double fx = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6691  v[0] = pt - 0.5 * step + dpt;
6692  double fxh = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6693  v[0] = pt - 0.5 * step + 2 * dpt;
6694  double fx2h = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6695 
6696  double lpt2nd = -(fx2h + fx - 2 * fxh) / dpt / dpt;
6697 
6698  if (lpt1 * lpt2 <= 0 && lpt2nd > 0) {
6699  PTsolv = pt - 0.5 * step;
6700  break;
6701  } // lpt = 0 between lpt1 and lpt2 => maximum pt_solv is a solution of the likelihood
6702  /*
6703  if(pt == 140.){
6704  v[0] = 200.;
6705  lpt2_1 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6706  v[0] = 200.+ 5.;
6707  lpt2_2 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6708  lpt2 = (lpt2_2-lpt2_1)/5.;
6709  v[0] = 170.;
6710  fx = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6711  v[0] = 170.+5.;
6712  fxh = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6713  v[0] = 170.+2*5.;
6714  fx2h = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6715  lpt2nd = -(fx2h + fx - 2*fxh)/5./5.;
6716  }
6717 
6718  if(pt == 140. && lpt1*lpt2 <= 0 && lpt2nd > 0){PTsolv = 137.5; break;}
6719 */
6720  //double rho = fitfrho(v, par_rho); //rho
6721  if (pt > 25) {
6722  dpt = 0.1;
6723  step = 5.;
6724  } else if (pt <= 25) {
6725  dpt = 0.01;
6726  step = 0.5;
6727  }
6728  pt = pt - step;
6729  } // end while
6730  //*********** end solve equation for muon plus
6731  //************* solve equation dLog(Likelihood)/dpt = 0 for muon minus ;
6732  // for one station method we know sing of muon: dphi1 > 0 for muon minus!!! => dphi1 = -dphi1 < 0
6733  dphi1 = -dphi1;
6734  dphi2 = -dphi2;
6735  pt = 140;
6736  dpt = 0.1;
6737  step = 5.;
6738  while (pt > 2.) {
6739  double par_phi12[1] = {dphi1};
6740  double par_phi23[1] = {dphi2};
6741  double v[1], lpt1_1, lpt1_2, lpt2_1, lpt2_2;
6742  v[0] = pt;
6743  lpt1_1 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6744  v[0] = pt + dpt;
6745  lpt1_2 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6746  double lpt1 = (lpt1_2 - lpt1_1) / dpt; // derivative at point pt1 = pt
6747  v[0] = pt - step;
6748  lpt2_1 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6749  v[0] = pt - step + dpt;
6750  lpt2_2 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6751  double lpt2 = (lpt2_2 - lpt2_1) / dpt; // derivative at point pt1 = pt - step
6752  // calculate 2nd derivative at point pt-0.5*step, it should be > 0 if minimum
6753  v[0] = pt - 0.5 * step;
6754  double fx = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6755  v[0] = pt - 0.5 * step + dpt;
6756  double fxh = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6757  v[0] = pt - 0.5 * step + 2 * dpt;
6758  double fx2h = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6759 
6760  double lpt2nd = -(fx2h + fx - 2 * fxh) / dpt / dpt;
6761 
6762  if (lpt1 * lpt2 <= 0 && lpt2nd > 0) {
6763  PTsolvMinus = pt - 0.5 * step;
6764  break;
6765  } // lpt = 0 between lpt1 and lpt2 => maximum pt_solv is a solution of the likelihood
6766  //if(iETA == 3 && v[0] < 4 && v[0] > 3) cout << "m12 = " << fitf5(v, par1) << " sig12 = " << fitf2(v, par_sig1) << endl;
6768  /*
6769  if(pt == 140.){
6770  v[0] = 200.;
6771  lpt2_1 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6772  v[0] = 200.+ 5.;
6773  lpt2_2 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6774  lpt2 = (lpt2_2-lpt2_1)/5.;
6775  v[0] = 170.;
6776  fx = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6777  v[0] = 170.+5.;
6778  fxh = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6779  v[0] = 170.+2*5.;
6780  fx2h = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
6781  lpt2nd = -(fx2h + fx - 2*fxh)/5./5.;
6782  }
6783  if(pt == 140. && lpt1*lpt2 <= 0 && lpt2nd > 0){PTsolvMinus = 137.5; break;}
6784 */
6785  //double rho = fitfrho(v, par_rho); //rho
6786  if (pt > 25) {
6787  dpt = 0.1;
6788  step = 5.;
6789  } else if (pt <= 25) {
6790  dpt = 0.01;
6791  step = 0.5;
6792  }
6793  pt = pt - step;
6794  } // end while
6795  //*********** end solve equation for muon minus
6796  PTsolv = (PTsolv > PTsolvMinus)
6797  ? PTsolv
6798  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
6799  PTsolv = PTsolv * 1.2; // correction to have 90% efficiency for trigger cuts
6800  if (PTsolv > 137.5)
6801  PTsolv = 137.5;
6802  //if(fabs(dphi1) < 0.002 && fabs(dphi2) <= CutPhi23){PTsolv = 140;}
6803  dphi1 = -dphi1; //return to correct sing dphi
6804  dphi2 = -dphi2; //return to correct sing dphi
6805  Pt = PTsolv;
6806  } // end 2 or 3 station method
6807  }
6808  }
6809  // if ( fabs(static_cast<double>(dphi2))>0.004 ) std::cout << "Pt = " << Pt << " Mode = " << type << " dphi1 = " << dphi1 << " dphi2 = " << dphi2 << std::endl;
6810 
6811  float Pt_min = trigger_scale->getPtScale()->getLowEdge(1); // 0 GeV
6812  if (method > 10)
6813  Pt_min = trigger_scale->getPtScale()->getLowEdge(3); // 2 GeV
6814 
6815  return (Pt > Pt_min) ? Pt : Pt_min;
6816 }
6817 float CSCTFPtMethods::Pt3Stn2011(int type, float eta, float dphi1, float dphi2, int fr, int method) const {
6818  //if(fabs(eta) >= 2.4)eta = 2.35;
6819  if (fabs(eta) >= 2.2)
6820  eta = 2.15;
6821  float Pt = 0.;
6822  double PTsolv = 1.; // for muon plus hypothesis
6823  double PTsolvMinus = 1.; //for muon minus hypothesis
6824  for (int iETA = 0; iETA < 15; iETA++) {
6825  if (fabs(eta) >= etabins[iETA] && fabs(eta) < etabins[iETA + 1]) {
6826  // calculate curvers of mean and sigma
6827  // calculate phi12 mean
6828  double par1[4] = {0., 0., 0., 0.};
6829  //double phi12mean = fitf5(v, par1); //mu12
6830  double par_sig1[4] = {0., 0., 0., 0};
6831  // calculate phi23 mean
6832  double par2[4] = {0., 0., 0., 0.};
6833  // calculate phi23 sig
6834  double par_sig2[4] = {0., 0., 0., 0.};
6835  // calculate correlation rho
6836  double par_rho[5] = {0., 0., 0., 0., 0.};
6837  int iETA1 = iETA;
6838  int iETA2 = iETA;
6839 
6840  // defind which parameters will be use
6841  const double(*Amean12F)[15] = AB_mu12F;
6842  const double(*Asig12F)[15] = AB_sig12F;
6843  const double(*Amean12R)[15] = AB_mu12R;
6844  const double(*Asig12R)[15] = AB_sig12R;
6845 
6846  const double(*Amean13F)[15] = AB_mu13F;
6847  const double(*Asig13F)[15] = AB_sig13F;
6848  const double(*Amean13R)[15] = AB_mu13R;
6849  const double(*Asig13R)[15] = AB_sig13R;
6850 
6851  //const double(*Amean14F)[15] = AB_mu14F;
6852  //const double(*Asig14F)[15] = AB_sig14F;
6853  //const double(*Amean14R)[15] = AB_mu14R;
6854  //const double(*Asig14R)[15] = AB_sig14R;
6855 
6856  const double(*Amean23)[15] = AB_mu23;
6857  const double(*Asig23)[15] = AB_sig23;
6858  const double(*Amean24)[15] = AB_mu24;
6859  const double(*Asig24)[15] = AB_sig24;
6860  const double(*Amean34)[15] = AB_mu34;
6861  const double(*Asig34)[15] = AB_sig34;
6862 
6863  const double(*Amean5)[15] = AB_mu5;
6864  const double(*Asig5)[15] = AB_sig5;
6865  const double(*Amean51)[15] = AB_mu51;
6866  const double(*Asig51)[15] = AB_sig51;
6867  const double(*Amean52)[15] = AB_mu52;
6868  const double(*Asig52)[15] = AB_sig52;
6869  const double(*Amean53)[15] = AB_mu53;
6870  const double(*Asig53)[15] = AB_sig53;
6871 
6872  const double(*Arho123F)[15] = AB_rho123F;
6873  const double(*Arho123R)[15] = AB_rho123R;
6874  const double(*Arho124F)[15] = AB_rho124F;
6875  const double(*Arho124R)[15] = AB_rho124R;
6876  const double(*Arho134F)[15] = AB_rho134F;
6877  const double(*Arho134R)[15] = AB_rho134R;
6878  const double(*Arho234)[15] = AB_rho234;
6879 
6880  const double(*Arho51B)[15] = AB_rho51B;
6881  const double(*Arho52B)[15] = AB_rho52B;
6882  const double(*Arho53B)[15] = AB_rho53B;
6883  const double(*Arho512)[15] = AB_rho512;
6884  const double(*Arho513)[15] = AB_rho513;
6885  const double(*Arho523)[15] = AB_rho523;
6886 
6887  //cout << "iETA = " << iETA
6888  // << " AB_mu51[0][iETA] = " << AB_mu51[0][iETA] << " pointer = " << (*(Amean51+0))[iETA]
6889  // << " AB_mu51[3][iETA] = " << AB_mu51[3][iETA] << " pointer = " << (*(Amean51+3))[iETA]
6890  // << endl;
6891 
6892  switch (type) // type = mode here
6893  {
6894  case 2: //1-2-3
6895  if (iETA < 2)
6896  iETA2 = 2;
6897  if (fr == 1) {
6898  if (iETA < 3)
6899  iETA1 = 3;
6900  par1[0] = (*(Amean12F + 0))[iETA1];
6901  par1[1] = (*(Amean12F + 1))[iETA1];
6902  par1[2] = (*(Amean12F + 2))[iETA1];
6903  par1[3] = (*(Amean12F + 3))[iETA1];
6904  par_sig1[0] = (*(Asig12F + 0))[iETA1];
6905  par_sig1[1] = (*(Asig12F + 1))[iETA1];
6906  par_sig1[2] = (*(Asig12F + 2))[iETA1];
6907  par_sig1[3] = (*(Asig12F + 3))[iETA1];
6908  par_rho[0] = (*(Arho123F + 0))[iETA2];
6909  par_rho[1] = (*(Arho123F + 1))[iETA2];
6910  par_rho[2] = (*(Arho123F + 2))[iETA2];
6911  par_rho[3] = (*(Arho123F + 3))[iETA2];
6912  par_rho[4] = (*(Arho123F + 4))[iETA2];
6913  }
6914  if (fr == 0) {
6915  if (iETA < 1)
6916  iETA1 = 1;
6917  par1[0] = (*(Amean12R + 0))[iETA1];
6918  par1[1] = (*(Amean12R + 1))[iETA1];
6919  par1[2] = (*(Amean12R + 2))[iETA1];
6920  par1[3] = (*(Amean12R + 3))[iETA1];
6921  par_sig1[0] = (*(Asig12R + 0))[iETA1];
6922  par_sig1[1] = (*(Asig12R + 1))[iETA1];
6923  par_sig1[2] = (*(Asig12R + 2))[iETA1];
6924  par_sig1[3] = (*(Asig12R + 3))[iETA1];
6925  par_rho[0] = (*(Arho123R + 0))[iETA2];
6926  par_rho[1] = (*(Arho123R + 1))[iETA2];
6927  par_rho[2] = (*(Arho123R + 2))[iETA2];
6928  par_rho[3] = (*(Arho123R + 3))[iETA2];
6929  par_rho[4] = (*(Arho123R + 4))[iETA2];
6930  }
6931  par2[0] = (*(Amean23 + 0))[iETA2];
6932  par2[1] = (*(Amean23 + 1))[iETA2];
6933  par2[2] = (*(Amean23 + 2))[iETA2];
6934  par2[3] = (*(Amean23 + 3))[iETA2];
6935  par_sig2[0] = (*(Asig23 + 0))[iETA2];
6936  par_sig2[1] = (*(Asig23 + 1))[iETA2];
6937  par_sig2[2] = (*(Asig23 + 2))[iETA2];
6938  par_sig2[3] = (*(Asig23 + 3))[iETA2];
6939 
6940  break;
6941  case 3: //1-2-4
6942  if (iETA < 3)
6943  iETA2 = 3;
6944  if (fr == 1) {
6945  if (iETA < 3)
6946  iETA1 = 3;
6947  par1[0] = (*(Amean12F + 0))[iETA1];
6948  par1[1] = (*(Amean12F + 1))[iETA1];
6949  par1[2] = (*(Amean12F + 2))[iETA1];
6950  par1[3] = (*(Amean12F + 3))[iETA1];
6951  par_sig1[0] = (*(Asig12F + 0))[iETA1];
6952  par_sig1[1] = (*(Asig12F + 1))[iETA1];
6953  par_sig1[2] = (*(Asig12F + 2))[iETA1];
6954  par_sig1[3] = (*(Asig12F + 3))[iETA1];
6955  par_rho[0] = (*(Arho124F + 0))[iETA2];
6956  par_rho[1] = (*(Arho124F + 1))[iETA2];
6957  par_rho[2] = (*(Arho124F + 2))[iETA2];
6958  par_rho[3] = (*(Arho124F + 3))[iETA2];
6959  par_rho[4] = (*(Arho124F + 4))[iETA2];
6960  }
6961  if (fr == 0) {
6962  if (iETA < 1)
6963  iETA1 = 1;
6964  par1[0] = (*(Amean12R + 0))[iETA1];
6965  par1[1] = (*(Amean12R + 1))[iETA1];
6966  par1[2] = (*(Amean12R + 2))[iETA1];
6967  par1[3] = (*(Amean12R + 3))[iETA1];
6968  par_sig1[0] = (*(Asig12R + 0))[iETA1];
6969  par_sig1[1] = (*(Asig12R + 1))[iETA1];
6970  par_sig1[2] = (*(Asig12R + 2))[iETA1];
6971  par_sig1[3] = (*(Asig12R + 3))[iETA1];
6972  par_rho[0] = (*(Arho124R + 0))[iETA2];
6973  par_rho[1] = (*(Arho124R + 1))[iETA2];
6974  par_rho[2] = (*(Arho124R + 2))[iETA2];
6975  par_rho[3] = (*(Arho124R + 3))[iETA2];
6976  par_rho[4] = (*(Arho124R + 4))[iETA2];
6977  }
6978  par2[0] = (*(Amean24 + 0))[iETA2];
6979  par2[1] = (*(Amean24 + 1))[iETA2];
6980  par2[2] = (*(Amean24 + 2))[iETA2];
6981  par2[3] = (*(Amean24 + 3))[iETA2];
6982  par_sig2[0] = (*(Asig24 + 0))[iETA2];
6983  par_sig2[1] = (*(Asig24 + 1))[iETA2];
6984  par_sig2[2] = (*(Asig24 + 2))[iETA2];
6985  par_sig2[3] = (*(Asig24 + 3))[iETA2];
6986  break;
6987  case 4: //1-3-4
6988  if (iETA < 3)
6989  iETA2 = 3;
6990  if (fr == 1) {
6991  if (iETA < 3)
6992  iETA1 = 3;
6993  par1[0] = (*(Amean13F + 0))[iETA1];
6994  par1[1] = (*(Amean13F + 1))[iETA1];
6995  par1[2] = (*(Amean13F + 2))[iETA1];
6996  par1[3] = (*(Amean13F + 3))[iETA1];
6997  par_sig1[0] = (*(Asig13F + 0))[iETA1];
6998  par_sig1[1] = (*(Asig13F + 1))[iETA1];
6999  par_sig1[2] = (*(Asig13F + 2))[iETA1];
7000  par_sig1[3] = (*(Asig13F + 3))[iETA1];
7001  par_rho[0] = (*(Arho134F + 0))[iETA2];
7002  par_rho[1] = (*(Arho134F + 1))[iETA2];
7003  par_rho[2] = (*(Arho134F + 2))[iETA2];
7004  par_rho[3] = (*(Arho134F + 3))[iETA2];
7005  par_rho[4] = (*(Arho134F + 4))[iETA2];
7006  }
7007  if (fr == 0) {
7008  if (iETA < 3)
7009  iETA1 = 3;
7010  par1[0] = (*(Amean13R + 0))[iETA1];
7011  par1[1] = (*(Amean13R + 1))[iETA1];
7012  par1[2] = (*(Amean13R + 2))[iETA1];
7013  par1[3] = (*(Amean13R + 3))[iETA1];
7014  par_sig1[0] = (*(Asig13R + 0))[iETA1];
7015  par_sig1[1] = (*(Asig13R + 1))[iETA1];
7016  par_sig1[2] = (*(Asig13R + 2))[iETA1];
7017  par_sig1[3] = (*(Asig13R + 3))[iETA1];
7018  par_rho[0] = (*(Arho134R + 0))[iETA2];
7019  par_rho[1] = (*(Arho134R + 1))[iETA2];
7020  par_rho[2] = (*(Arho134R + 2))[iETA2];
7021  par_rho[3] = (*(Arho134R + 3))[iETA2];
7022  par_rho[4] = (*(Arho134R + 4))[iETA2];
7023  }
7024  par2[0] = (*(Amean34 + 0))[iETA2];
7025  par2[1] = (*(Amean34 + 1))[iETA2];
7026  par2[2] = (*(Amean34 + 2))[iETA2];
7027  par2[3] = (*(Amean34 + 3))[iETA2];
7028  par_sig2[0] = (*(Asig34 + 0))[iETA2];
7029  par_sig2[1] = (*(Asig34 + 1))[iETA2];
7030  par_sig2[2] = (*(Asig34 + 2))[iETA2];
7031  par_sig2[3] = (*(Asig34 + 3))[iETA2];
7032  break;
7033  case 5: //2-3-4
7034  if (iETA < 2)
7035  iETA1 = 2;
7036  if (iETA < 3)
7037  iETA2 = 3;
7038  par1[0] = (*(Amean23 + 0))[iETA1];
7039  par1[1] = (*(Amean23 + 1))[iETA1];
7040  par1[2] = (*(Amean23 + 2))[iETA1];
7041  par1[3] = (*(Amean23 + 3))[iETA1];
7042  par_sig1[0] = (*(Asig23 + 0))[iETA1];
7043  par_sig1[1] = (*(Asig23 + 1))[iETA1];
7044  par_sig1[2] = (*(Asig23 + 2))[iETA1];
7045  par_sig1[3] = (*(Asig23 + 3))[iETA1];
7046  par_rho[0] = (*(Arho234 + 0))[iETA2];
7047  par_rho[1] = (*(Arho234 + 1))[iETA2];
7048  par_rho[2] = (*(Arho234 + 2))[iETA2];
7049  par_rho[3] = (*(Arho234 + 3))[iETA2];
7050  par_rho[4] = (*(Arho234 + 4))[iETA2];
7051 
7052  par2[0] = (*(Amean34 + 0))[iETA2];
7053  par2[1] = (*(Amean34 + 1))[iETA2];
7054  par2[2] = (*(Amean34 + 2))[iETA2];
7055  par2[3] = (*(Amean34 + 3))[iETA2];
7056  par_sig2[0] = (*(Asig34 + 0))[iETA2];
7057  par_sig2[1] = (*(Asig34 + 1))[iETA2];
7058  par_sig2[2] = (*(Asig34 + 2))[iETA2];
7059  par_sig2[3] = (*(Asig34 + 3))[iETA2];
7060  break;
7061  case 11: // singles for method < 10, for method > 10: fr = 1 -> b1-1-3, fr = 0 -> b1-3-phiBend
7062  if (iETA != 2)
7063  iETA1 = 2;
7064  par1[0] = (*(Amean53 + 0))[iETA1];
7065  par1[1] = (*(Amean53 + 1))[iETA1];
7066  par1[2] = (*(Amean53 + 2))[iETA1];
7067  par1[3] = (*(Amean53 + 3))[iETA1];
7068  par_sig1[0] = (*(Asig53 + 0))[iETA1];
7069  par_sig1[1] = (*(Asig53 + 1))[iETA1];
7070  par_sig1[2] = (*(Asig53 + 2))[iETA1];
7071  par_sig1[3] = (*(Asig53 + 3))[iETA1];
7072  par_rho[0] = (*(Arho53B + 0))[iETA1];
7073  par_rho[1] = (*(Arho53B + 1))[iETA1];
7074  par_rho[2] = (*(Arho53B + 2))[iETA1];
7075  par_rho[3] = (*(Arho53B + 3))[iETA1];
7076  par_rho[4] = (*(Arho53B + 4))[iETA1];
7077 
7078  par2[0] = (*(Amean5 + 0))[iETA1];
7079  par2[1] = (*(Amean5 + 1))[iETA1];
7080  par2[2] = (*(Amean5 + 2))[iETA1];
7081  par2[3] = (*(Amean5 + 3))[iETA1];
7082  par_sig2[0] = (*(Asig5 + 0))[iETA1];
7083  par_sig2[1] = (*(Asig5 + 1))[iETA1];
7084  par_sig2[2] = (*(Asig5 + 2))[iETA1];
7085  par_sig2[3] = (*(Asig5 + 3))[iETA1];
7086 
7087  if (fr == 1) {
7088  par1[0] = (*(Amean51 + 0))[iETA1];
7089  par1[1] = (*(Amean51 + 1))[iETA1];
7090  par1[2] = (*(Amean51 + 2))[iETA1];
7091  par1[3] = (*(Amean51 + 3))[iETA1];
7092  par_sig1[0] = (*(Asig51 + 0))[iETA1];
7093  par_sig1[1] = (*(Asig51 + 1))[iETA1];
7094  par_sig1[2] = (*(Asig51 + 2))[iETA1];
7095  par_sig1[3] = (*(Asig51 + 3))[iETA1];
7096  par_rho[0] = (*(Arho513 + 0))[iETA1];
7097  par_rho[1] = (*(Arho513 + 1))[iETA1];
7098  par_rho[2] = (*(Arho513 + 2))[iETA1];
7099  par_rho[3] = (*(Arho513 + 3))[iETA1];
7100  par_rho[4] = (*(Arho513 + 4))[iETA1];
7101 
7102  par2[0] = (*(Amean13R + 0))[iETA1];
7103  par2[1] = (*(Amean13R + 1))[iETA1];
7104  par2[2] = (*(Amean13R + 2))[iETA1];
7105  par2[3] = (*(Amean13R + 3))[iETA1];
7106  par_sig2[0] = (*(Asig13R + 0))[iETA1];
7107  par_sig2[1] = (*(Asig13R + 1))[iETA1];
7108  par_sig2[2] = (*(Asig13R + 2))[iETA1];
7109  par_sig2[3] = (*(Asig13R + 3))[iETA1];
7110  }
7111  break;
7112  case 12: // b1-1-2 for method < 10; for method > 10: fr = 1 -> b1-2-3, fr = 0 -> b1-2-phiBend
7113  if (iETA < 1)
7114  iETA1 = 1;
7115  if (iETA > 2)
7116  iETA1 = 2;
7117  par1[0] = (*(Amean52 + 0))[iETA1];
7118  par1[1] = (*(Amean52 + 1))[iETA1];
7119  par1[2] = (*(Amean52 + 2))[iETA1];
7120  par1[3] = (*(Amean52 + 3))[iETA1];
7121  par_sig1[0] = (*(Asig52 + 0))[iETA1];
7122  par_sig1[1] = (*(Asig52 + 1))[iETA1];
7123  par_sig1[2] = (*(Asig52 + 2))[iETA1];
7124  par_sig1[3] = (*(Asig52 + 3))[iETA1];
7125  par_rho[0] = (*(Arho52B + 0))[iETA1];
7126  par_rho[1] = (*(Arho52B + 1))[iETA1];
7127  par_rho[2] = (*(Arho52B + 2))[iETA1];
7128  par_rho[3] = (*(Arho52B + 3))[iETA1];
7129  par_rho[4] = (*(Arho52B + 4))[iETA1];
7130 
7131  par2[0] = (*(Amean5 + 0))[iETA1];
7132  par2[1] = (*(Amean5 + 1))[iETA1];
7133  par2[2] = (*(Amean5 + 2))[iETA1];
7134  par2[3] = (*(Amean5 + 3))[iETA1];
7135  par_sig2[0] = (*(Asig5 + 0))[iETA1];
7136  par_sig2[1] = (*(Asig5 + 1))[iETA1];
7137  par_sig2[2] = (*(Asig5 + 2))[iETA1];
7138  par_sig2[3] = (*(Asig5 + 3))[iETA1];
7139 
7140  if (fr == 1) {
7141  if (iETA != 2)
7142  iETA1 = 2;
7143  par1[0] = (*(Amean52 + 0))[iETA1];
7144  par1[1] = (*(Amean52 + 1))[iETA1];
7145  par1[2] = (*(Amean52 + 2))[iETA1];
7146  par1[3] = (*(Amean52 + 3))[iETA1];
7147  par_sig1[0] = (*(Asig52 + 0))[iETA1];
7148  par_sig1[1] = (*(Asig52 + 1))[iETA1];
7149  par_sig1[2] = (*(Asig52 + 2))[iETA1];
7150  par_sig1[3] = (*(Asig52 + 3))[iETA1];
7151  par_rho[0] = (*(Arho523 + 0))[iETA1];
7152  par_rho[1] = (*(Arho523 + 1))[iETA1];
7153  par_rho[2] = (*(Arho523 + 2))[iETA1];
7154  par_rho[3] = (*(Arho523 + 3))[iETA1];
7155  par_rho[4] = (*(Arho523 + 4))[iETA1];
7156 
7157  par2[0] = (*(Amean23 + 0))[iETA1];
7158  par2[1] = (*(Amean23 + 1))[iETA1];
7159  par2[2] = (*(Amean23 + 2))[iETA1];
7160  par2[3] = (*(Amean23 + 3))[iETA1];
7161  par_sig2[0] = (*(Asig23 + 0))[iETA1];
7162  par_sig2[1] = (*(Asig23 + 1))[iETA1];
7163  par_sig2[2] = (*(Asig23 + 2))[iETA1];
7164  par_sig2[3] = (*(Asig23 + 3))[iETA1];
7165  }
7166  break;
7167  case 14: // b1-2 for method < 10; for method > 10: fr = 1 -> b1-1-2-(3), fr = 0 -> b1-1-phiBend
7168  if (iETA > 2)
7169  iETA1 = 2;
7170  par1[0] = (*(Amean51 + 0))[iETA1];
7171  par1[1] = (*(Amean51 + 1))[iETA1];
7172  par1[2] = (*(Amean51 + 2))[iETA1];
7173  par1[3] = (*(Amean51 + 3))[iETA1];
7174  par_sig1[0] = (*(Asig51 + 0))[iETA1];
7175  par_sig1[1] = (*(Asig51 + 1))[iETA1];
7176  par_sig1[2] = (*(Asig51 + 2))[iETA1];
7177  par_sig1[3] = (*(Asig51 + 3))[iETA1];
7178  par_rho[0] = (*(Arho51B + 0))[iETA1];
7179  par_rho[1] = (*(Arho51B + 1))[iETA1];
7180  par_rho[2] = (*(Arho51B + 2))[iETA1];
7181  par_rho[3] = (*(Arho51B + 3))[iETA1];
7182  par_rho[4] = (*(Arho51B + 4))[iETA1];
7183 
7184  par2[0] = (*(Amean5 + 0))[iETA1];
7185  par2[1] = (*(Amean5 + 1))[iETA1];
7186  par2[2] = (*(Amean5 + 2))[iETA1];
7187  par2[3] = (*(Amean5 + 3))[iETA1];
7188  par_sig2[0] = (*(Asig5 + 0))[iETA1];
7189  par_sig2[1] = (*(Asig5 + 1))[iETA1];
7190  par_sig2[2] = (*(Asig5 + 2))[iETA1];
7191  par_sig2[3] = (*(Asig5 + 3))[iETA1];
7192 
7193  if (fr == 1) {
7194  if (iETA < 1)
7195  iETA1 = 1;
7196  if (iETA > 2)
7197  iETA1 = 2;
7198  par1[0] = (*(Amean51 + 0))[iETA1];
7199  par1[1] = (*(Amean51 + 1))[iETA1];
7200  par1[2] = (*(Amean51 + 2))[iETA1];
7201  par1[3] = (*(Amean51 + 3))[iETA1];
7202  par_sig1[0] = (*(Asig51 + 0))[iETA1];
7203  par_sig1[1] = (*(Asig51 + 1))[iETA1];
7204  par_sig1[2] = (*(Asig51 + 2))[iETA1];
7205  par_sig1[3] = (*(Asig51 + 3))[iETA1];
7206  par_rho[0] = (*(Arho512 + 0))[iETA1];
7207  par_rho[1] = (*(Arho512 + 1))[iETA1];
7208  par_rho[2] = (*(Arho512 + 2))[iETA1];
7209  par_rho[3] = (*(Arho512 + 3))[iETA1];
7210  par_rho[4] = (*(Arho512 + 4))[iETA1];
7211 
7212  par2[0] = (*(Amean12R + 0))[iETA1];
7213  par2[1] = (*(Amean12R + 1))[iETA1];
7214  par2[2] = (*(Amean12R + 2))[iETA1];
7215  par2[3] = (*(Amean12R + 3))[iETA1];
7216  par_sig2[0] = (*(Asig12R + 0))[iETA1];
7217  par_sig2[1] = (*(Asig12R + 1))[iETA1];
7218  par_sig2[2] = (*(Asig12R + 2))[iETA1];
7219  par_sig2[3] = (*(Asig12R + 3))[iETA1];
7220  }
7221  break;
7222  //default:
7223  //return 0.0;
7224  }
7225 
7226  // Switch to 2-Station measurement if dphi is too small
7227  // box cut around Pt of 10 GeV
7228  if ((fabs(static_cast<double>(dphi2)) < 0.004 && type != 12 && method < 25) ||
7229  (fabs(static_cast<double>(dphi2)) < 0.004 && type != 12 && type != 14 && type != 11 && method >= 25)) {
7230  //if(type == 12 || type == 14 || type == 11) std::cout << "mode = " << type << " dphi23 = " << dphi2 << " method = " << method << std::endl; //test
7231  if (type == 2 || type == 3)
7232  type = 6; // 1-2-3(or 4) -> 1-2
7233  if (type == 4)
7234  type = 7; // 1-3-4 -> 1-3
7235  if (type == 5)
7236  type = 8; // 2-3-4 -> 2-3
7237  if (type == 11)
7238  type = 14; // b1-1-3 -> b1-1 for pt_method > 10
7239  //if(type == 14) type = 11;
7240  //phiSign
7241  Pt = Pt2Stn2011(type,
7242  eta,
7243  dphi1,
7244  fr,
7245  method,
7246  int(2)); //in 3 station track there is no information to which ME1/1 or ME1/2 track belong
7247  } else {
7248  //************* solve equation dLog(Likelihood)/dpt = 0 for muon + ;
7249  double pt = 140;
7250  double dpt = 0.1;
7251  double step = 5.;
7252  while (pt > 2.) {
7253  double par_phi12[1] = {dphi1};
7254  double par_phi23[1] = {dphi2};
7255  double v[1], lpt1_1, lpt1_2, lpt2_1, lpt2_2;
7256  lpt1_1 = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7257  v[0] = pt + dpt;
7258  lpt1_2 = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7259  double lpt1 = (lpt1_2 - lpt1_1) / dpt; // derivative at point pt1 = pt
7260  v[0] = pt - step;
7261  lpt2_1 = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7262  v[0] = pt - step + dpt;
7263  lpt2_2 = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7264  double lpt2 = (lpt2_2 - lpt2_1) / dpt; // derivative at point pt1 = pt - step
7265  // calculate 2nd derivative at point pt-0.5*step, it should be > 0 if minimum
7266  v[0] = pt - 0.5 * step;
7267  double fx = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7268  v[0] = pt - 0.5 * step + dpt;
7269  double fxh = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7270  v[0] = pt - 0.5 * step + 2 * dpt;
7271  double fx2h = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7272 
7273  double lpt2nd = -(fx2h + fx - 2 * fxh) / dpt / dpt;
7274 
7275  if (lpt1 * lpt2 <= 0 && lpt2nd > 0) {
7276  PTsolv = pt - 0.5 * step;
7277  break;
7278  } // lpt = 0 between lpt1 and lpt2 => maximum pt_solv is a solution of the likelihood
7279  //double rho = fitfrho(v, par_rho); //rho
7280  if (pt > 25) {
7281  dpt = 0.1;
7282  step = 5.;
7283  } else if (pt <= 25) {
7284  dpt = 0.01;
7285  step = 0.5;
7286  }
7287  pt = pt - step;
7288  } // end while
7289  //*********** end solve equation for muon plus
7290  //************* solve equation dLog(Likelihood)/dpt = 0 for muon minus ;
7291  // for one station method we know sing of muon: dphi1 > 0 for muon minus!!! => dphi1 = -dphi1 < 0
7292  dphi1 = -dphi1;
7293  dphi2 = -dphi2;
7294  pt = 140;
7295  dpt = 0.1;
7296  step = 5.;
7297  while (pt > 2.) {
7298  double par_phi12[1] = {dphi1};
7299  double par_phi23[1] = {dphi2};
7300  double v[1], lpt1_1, lpt1_2, lpt2_1, lpt2_2;
7301  v[0] = pt;
7302  lpt1_1 = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7303  v[0] = pt + dpt;
7304  lpt1_2 = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7305  double lpt1 = (lpt1_2 - lpt1_1) / dpt; // derivative at point pt1 = pt
7306  v[0] = pt - step;
7307  lpt2_1 = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7308  v[0] = pt - step + dpt;
7309  lpt2_2 = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7310  double lpt2 = (lpt2_2 - lpt2_1) / dpt; // derivative at point pt1 = pt - step
7311  // calculate 2nd derivative at point pt-0.5*step, it should be > 0 if minimum
7312  v[0] = pt - 0.5 * step;
7313  double fx = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7314  v[0] = pt - 0.5 * step + dpt;
7315  double fxh = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7316  v[0] = pt - 0.5 * step + 2 * dpt;
7317  double fx2h = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7318 
7319  double lpt2nd = -(fx2h + fx - 2 * fxh) / dpt / dpt;
7320 
7321  if (lpt1 * lpt2 <= 0 && lpt2nd > 0) {
7322  PTsolvMinus = pt - 0.5 * step;
7323  break;
7324  } // lpt = 0 between lpt1 and lpt2 => maximum pt_solv is a solution of the likelihood
7325  //double rho = fitfrho(v, par_rho); //rho
7326  if (pt > 25) {
7327  dpt = 0.1;
7328  step = 5.;
7329  } else if (pt <= 25) {
7330  dpt = 0.01;
7331  step = 0.5;
7332  }
7333  pt = pt - step;
7334  } // end while
7335  //*********** end solve equation for muon minus
7336  PTsolv = (PTsolv > PTsolvMinus)
7337  ? PTsolv
7338  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
7339  PTsolv = PTsolv * 1.2; // correction to have 90% efficiency for trigger cuts
7340  if (PTsolv > 137.5)
7341  PTsolv = 137.5;
7342  //if(fabs(dphi1) < 0.002 && fabs(dphi2) <= CutPhi23){PTsolv = 140;}
7343  dphi1 = -dphi1; //return to correct sing dphi
7344  dphi2 = -dphi2; //return to correct sing dphi
7345  Pt = PTsolv;
7346  } // end 2 or 3 station method
7347  }
7348  }
7349  // fix overlap region high pt:
7350  if (method >= 25 && (type == 12 || type == 14 || type == 11) && fabs(dphi1) < 0.003 && fabs(dphi2) < 2)
7351  Pt = 140.;
7352  // if ( fabs(static_cast<double>(dphi2))>0.004 ) std::cout << "Pt = " << Pt << " Mode = " << type << " dphi1 = " << dphi1 << " dphi2 = " << dphi2 << std::endl;
7353 
7354  //float Pt_min = trigger_scale->getPtScale()->getLowEdge(1);// 0 GeV
7355  //if(method > 10) Pt_min = trigger_scale->getPtScale()->getLowEdge(3);// 2 GeV
7356  float Pt_min = 2; // 2 GeV
7357 
7358  return (Pt > Pt_min) ? Pt : Pt_min;
7359 }
7360 
7361 float CSCTFPtMethods::Pt2Stn2012(int type, float eta, float dphi, int PtbyMLH, float &bestLH, int fr, int method) const {
7362  int useBestMLH = PtbyMLH;
7363  int useBOXcut = false;
7364  int useDTBOXcut = true;
7365  if (type == 5)
7366  useBOXcut = true; // useBOXcut for mode 5 which come from 3 station
7367  if (type == 5)
7368  type = 8; // 2-3-4 -> 2-3//
7369 
7370  if (fabs(eta) >= 2.4)
7371  eta = 2.35;
7372  double PTsolv = 1.; // for muon plus hypothesis
7373  double PTsolvMinus = 1.; //for muon minus hypothesis
7374  for (int iETA = 0; iETA < 15; iETA++) {
7375  if (fabs(eta) >= etabins[iETA] && fabs(eta) < etabins[iETA + 1]) {
7376  // calculate curvers of mean and sigma
7377  // calculate phi12 mean
7378  double par1[4] = {0., 0., 0., 0.};
7379  //double phi12mean = fitf5(v, par1); //mu12
7380  double par_sig1[3] = {0., 0., 0.};
7381  int iETA1 = iETA;
7382  switch (type) // type = mode here
7383  {
7384  case 6: //1-2
7385  if (fr == 1) {
7386  if (iETA1 < 3)
7387  iETA1 = 3;
7388  //if(iETA1 > 11)iETA1 = 11;
7389  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
7390  par1[0] = A_mu12Front[0][iETA1];
7391  par1[1] = A_mu12Front[1][iETA1];
7392  par1[2] = A_mu12Front[2][iETA1];
7393  par1[3] = A_mu12Front[3][iETA1];
7394  par_sig1[0] = A_sig12Front[0][iETA1];
7395  par_sig1[1] = A_sig12Front[1][iETA1];
7396  par_sig1[2] = A_sig12Front[2][iETA1];
7397  }
7398  if (fr == 0) {
7399  if (iETA1 < 1)
7400  iETA1 = 1;
7401  //if(iETA1 > 11)iETA1 = 11;
7402  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
7403  par1[0] = A_mu12Rare[0][iETA1];
7404  par1[1] = A_mu12Rare[1][iETA1];
7405  par1[2] = A_mu12Rare[2][iETA1];
7406  par1[3] = A_mu12Rare[3][iETA1];
7407  par_sig1[0] = A_sig12Rare[0][iETA1];
7408  par_sig1[1] = A_sig12Rare[1][iETA1];
7409  par_sig1[2] = A_sig12Rare[2][iETA1];
7410  }
7411  break;
7412  case 7: //1-3
7413  if (fr == 1) {
7414  if (iETA1 < 3)
7415  iETA1 = 3;
7416  //if(iETA1 > 11)iETA1 = 11;
7417  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
7418  par1[0] = A_mu13Front[0][iETA1];
7419  par1[1] = A_mu13Front[1][iETA1];
7420  par1[2] = A_mu13Front[2][iETA1];
7421  par1[3] = A_mu13Front[3][iETA1];
7422  par_sig1[0] = A_sig13Front[0][iETA1];
7423  par_sig1[1] = A_sig13Front[1][iETA1];
7424  par_sig1[2] = A_sig13Front[2][iETA1];
7425  }
7426  if (fr == 0) {
7427  if (iETA1 < 2)
7428  iETA1 = 2;
7429  //if(iETA1 > 11)iETA1 = 11;
7430  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
7431  par1[0] = A_mu13Rare[0][iETA1];
7432  par1[1] = A_mu13Rare[1][iETA1];
7433  par1[2] = A_mu13Rare[2][iETA1];
7434  par1[3] = A_mu13Rare[3][iETA1];
7435  par_sig1[0] = A_sig13Rare[0][iETA1];
7436  par_sig1[1] = A_sig13Rare[1][iETA1];
7437  par_sig1[2] = A_sig13Rare[2][iETA1];
7438  }
7439  break;
7440  case 8: //2-3
7441  if (iETA1 < 2)
7442  iETA1 = 2;
7443  par1[0] = A_mu23[0][iETA1];
7444  par1[1] = A_mu23[1][iETA1];
7445  par1[2] = A_mu23[2][iETA1];
7446  par1[3] = A_mu23[3][iETA1];
7447  par_sig1[0] = A_sig23[0][iETA1];
7448  par_sig1[1] = A_sig23[1][iETA1];
7449  par_sig1[2] = A_sig23[2][iETA1];
7450  break;
7451  case 9: //2-4
7452  if (iETA1 < 9)
7453  iETA1 = 9;
7454  par1[0] = A_mu24[0][iETA1];
7455  par1[1] = A_mu24[1][iETA1];
7456  par1[2] = A_mu24[2][iETA1];
7457  par1[3] = A_mu24[3][iETA1];
7458  par_sig1[0] = A_sig24[0][iETA1];
7459  par_sig1[1] = A_sig24[1][iETA1];
7460  par_sig1[2] = A_sig24[2][iETA1];
7461  break;
7462  case 10: //3-4
7463  if (iETA1 < 9)
7464  iETA1 = 9;
7465  par1[0] = A_mu34[0][iETA1];
7466  par1[1] = A_mu34[1][iETA1];
7467  par1[2] = A_mu34[2][iETA1];
7468  par1[3] = A_mu34[3][iETA1];
7469  par_sig1[0] = A_sig34[0][iETA1];
7470  par_sig1[1] = A_sig34[1][iETA1];
7471  par_sig1[2] = A_sig34[2][iETA1];
7472  break;
7473  case 13: //1-4
7474  if (iETA1 < 9)
7475  iETA1 = 9;
7476  //if(iETA1 > 11)iETA1 = 11;
7477  //if(iETA1 > 12)iETA1 = 12;
7478  if (fr == 1) {
7479  par1[0] = A_mu14Front[0][iETA1];
7480  par1[1] = A_mu14Front[1][iETA1];
7481  par1[2] = A_mu14Front[2][iETA1];
7482  par1[3] = A_mu14Front[3][iETA1];
7483  par_sig1[0] = A_sig14Front[0][iETA1];
7484  par_sig1[1] = A_sig14Front[1][iETA1];
7485  par_sig1[2] = A_sig14Front[2][iETA1];
7486  }
7487  if (fr == 0) {
7488  par1[0] = A_mu14Rare[0][iETA1];
7489  par1[1] = A_mu14Rare[1][iETA1];
7490  par1[2] = A_mu14Rare[2][iETA1];
7491  par1[3] = A_mu14Rare[3][iETA1];
7492  par_sig1[0] = A_sig14Rare[0][iETA1];
7493  par_sig1[1] = A_sig14Rare[1][iETA1];
7494  par_sig1[2] = A_sig14Rare[2][iETA1];
7495  }
7496  break;
7497  case 11: // b1-3
7498  if (iETA1 != 2)
7499  iETA1 = 2;
7500  par1[0] = A_mu53[0][iETA1];
7501  par1[1] = A_mu53[1][iETA1];
7502  par1[2] = A_mu53[2][iETA1];
7503  par1[3] = A_mu53[3][iETA1];
7504  par_sig1[0] = A_sig53[0][iETA1];
7505  par_sig1[1] = A_sig53[1][iETA1];
7506  par_sig1[2] = A_sig53[2][iETA1];
7507 
7508  break;
7509  case 12: //1-2-b1 = 2-b1 for pt_method < 10, for pt_method > 10: b1-2
7510  if (iETA1 < 1)
7511  iETA1 = 1;
7512  if (iETA1 > 2)
7513  iETA1 = 2;
7514  par1[0] = A_mu52[0][iETA1];
7515  par1[1] = A_mu52[1][iETA1];
7516  par1[2] = A_mu52[2][iETA1];
7517  par1[3] = A_mu52[3][iETA1];
7518  par_sig1[0] = A_sig52[0][iETA1];
7519  par_sig1[1] = A_sig52[1][iETA1];
7520  par_sig1[2] = A_sig52[2][iETA1];
7521  break;
7522  case 14: //2-b1 for pt_method < 10 and b1-1 for pt_method > 10
7523  if (method < 10) {
7524  if (iETA1 < 1)
7525  iETA1 = 1;
7526  if (iETA1 > 2)
7527  iETA1 = 2;
7528  }
7529  par1[0] = A_mu52[0][iETA1];
7530  par1[1] = A_mu52[1][iETA1];
7531  par1[2] = A_mu52[2][iETA1];
7532  par1[3] = A_mu52[3][iETA1];
7533  par_sig1[0] = A_sig52[0][iETA1];
7534  par_sig1[1] = A_sig52[1][iETA1];
7535  par_sig1[2] = A_sig52[2][iETA1];
7536  if (method > 10) {
7537  if (iETA1 > 2)
7538  iETA1 = 2;
7539  par1[0] = A_mu51[0][iETA1];
7540  par1[1] = A_mu51[1][iETA1];
7541  par1[2] = A_mu51[2][iETA1];
7542  par1[3] = A_mu51[3][iETA1];
7543  par_sig1[0] = A_sig51[0][iETA1];
7544  par_sig1[1] = A_sig51[1][iETA1];
7545  par_sig1[2] = A_sig51[2][iETA1];
7546  }
7547  break;
7548  //default:
7549  //return 0.0;
7550  }
7551 
7552  //************* solve equation dLog(Likelihood)/dpt = 0 for muon + ;
7553  //if(fabs(dphi) >= 0.002)
7554  //if(fabs(dphi) >= 0.00)
7555  //if(fabs(dphi) >= 0.002 || (fabs(dphi) >= 0.01 && (type == 12 || type == 14)))
7556  //{
7557  double muPlusMaxLH = -1e9;
7558  double pt = 140;
7559  double step = 5.;
7560  double maxLH = -1e9;
7561 
7562  while (pt > 2.) {
7563  double par_phi12[1] = {dphi};
7564  double v[1], lpt1_1;
7565  v[0] = pt;
7566  lpt1_1 = Likelihood2(par_phi12, par1, par_sig1, v);
7567 
7568  if (lpt1_1 > maxLH) {
7569  maxLH = lpt1_1;
7570  PTsolv = pt;
7571  }
7572 
7573  if (pt <= 5) {
7574  step = 0.5 / 4.0;
7575  } else if (pt <= 10) {
7576  step = 1.0 / 4.0;
7577  } else if (pt <= 20) {
7578  step = 2.0 / 4.0;
7579  } else if (pt <= 50) {
7580  step = 5.0 / 4.0;
7581  } else if (pt <= 100) {
7582  step = 10.0 / 4.0;
7583  }
7584  pt = pt - step;
7585  } // end while
7586  muPlusMaxLH = maxLH;
7587 
7588  //*********** end solve equation for muon plus
7589  //************* solve equation dLog(Likelihood)/dpt = 0 for muon minus ;
7590  // for one station method we know sing of muon: dphi > 0 for muon minus!!! => dphi = -dphi < 0
7591  double muMinusMaxLH = -1e9;
7592  dphi = -dphi;
7593  pt = 140;
7594  step = 5.;
7595  maxLH = -1e9;
7596  while (pt > 2.) {
7597  double par_phi12[1] = {dphi};
7598  double v[1], lpt1_1;
7599  v[0] = pt;
7600  lpt1_1 = Likelihood2(par_phi12, par1, par_sig1, v);
7601 
7602  if (lpt1_1 > maxLH) {
7603  maxLH = lpt1_1;
7604  PTsolvMinus = pt;
7605  }
7606 
7607  if (pt <= 100) {
7608  step = 10.0 / 4.0;
7609  }
7610  if (pt <= 50) {
7611  step = 5.0 / 4.0;
7612  }
7613  if (pt <= 20) {
7614  step = 2.0 / 4.0;
7615  }
7616  if (pt <= 10) {
7617  step = 1.0 / 4.0;
7618  }
7619  if (pt <= 5) {
7620  step = 0.5 / 4.0;
7621  }
7622  pt = pt - step;
7623  } // end while
7624  muMinusMaxLH = maxLH;
7625 
7626  // }// if(fabs(dphi) >= 0.002)
7627  // else
7628  // {PTsolv = 137.5;}
7629 
7630  //*********** end solve equation for muon minus
7631  if (useBestMLH)
7632  PTsolv = (muPlusMaxLH > muMinusMaxLH)
7633  ? PTsolv
7634  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
7635  else
7636  PTsolv = (PTsolv > PTsolvMinus)
7637  ? PTsolv
7638  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
7639 
7640  bestLH = (muPlusMaxLH > muMinusMaxLH) ? muPlusMaxLH : muMinusMaxLH;
7641 
7642  PTsolv = PTsolv * 1.2;
7643  if (PTsolv > 137.5)
7644  PTsolv = 137.5;
7645 
7646  if (useBOXcut)
7647  if (fabs(dphi) <= 0.002 && PTsolv < 120.)
7648  PTsolv = 140.;
7649  if (useDTBOXcut)
7650  if (fabs(dphi) <= 0.01 && (type == 11 || type == 12 || type == 14) && PTsolv < 120.)
7651  PTsolv = 140.;
7652 
7653  dphi = -dphi; //return to correct sing dphi
7654 
7655  } //if(fabs(eta_TracMy)
7656  } //end "for by iETA"
7657 
7658  float Pt = PTsolv;
7659  if (Pt > 10 && fabs(dphi) >= 0.1)
7660  std::cout << "iF = 0 for dphi = " << dphi << " and Pt = " << Pt << std::endl;
7661 
7662  //if(Pt > 100 && (type == 12 || type == 14) && fabs(eta) <= 1.2 && dphi > 0.015 )std::cout << "dphi = " << dphi << " eta = " << eta << std::endl;
7663  //if(Pt < 10 && (type == 12 || type == 14) && fabs(eta) <= 1.2 && dphi < 0.01)std::cout << "dphi = " << dphi << " eta = " << eta << std::endl;
7664  // return (Pt>0.0) ? Pt : 0.0;
7665 
7666  float Pt_min = trigger_scale->getPtScale()->getLowEdge(1); // 0 GeV
7667  if (method > 10)
7668  Pt_min = trigger_scale->getPtScale()->getLowEdge(3); // 2 GeV
7669 
7670  return (Pt > Pt_min) ? Pt : Pt_min;
7671 }
7672 
7674  int type, float eta, float dphi1, float dphi2, int PtbyMLH, float &bestLH, int fr, int method) const {
7675  int useBestMLH = PtbyMLH;
7676  int use2Stn = false;
7677  int use2StnDT = true;
7678  if (type == 5)
7679  use2Stn = true; //switch 2 station assighment for mode = 5
7680 
7681  if (fabs(eta) >= 2.4)
7682  eta = 2.35;
7683  float Pt = 0.;
7684  double PTsolv = 1.; // for muon plus hypothesis
7685  double PTsolvMinus = 1.; //for muon minus hypothesis
7686  for (int iETA = 0; iETA < 15; iETA++) {
7687  if (fabs(eta) >= etabins[iETA] && fabs(eta) < etabins[iETA + 1]) {
7688  // calculate curvers of mean and sigma
7689  // calculate phi12 mean
7690  double par1[4] = {0., 0., 0., 0.};
7691  //double phi12mean = fitf5(v, par1); //mu12
7692  double par_sig1[3] = {0., 0., 0.};
7693  // calculate phi23 mean
7694  double par2[4] = {0., 0., 0., 0.};
7695  // calculate phi23 sig
7696  double par_sig2[3] = {0., 0., 0.};
7697  // calculate correlation rho
7698  double par_rho[5] = {0., 0., 0., 0., 0.};
7699  int iETA1 = iETA;
7700  int iETA2 = iETA;
7701  switch (type) // type = mode here
7702  {
7703  case 2: //1-2-3
7704  if (fr == 1) {
7705  if (iETA1 < 3)
7706  iETA1 = 3;
7707  //if(iETA1 > 11)iETA1 = 11;
7708  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
7709  par1[0] = A_mu12Front[0][iETA1];
7710  par1[1] = A_mu12Front[1][iETA1];
7711  par1[2] = A_mu12Front[2][iETA1];
7712  par1[3] = A_mu12Front[3][iETA1];
7713  par_sig1[0] = A_sig12Front[0][iETA1];
7714  par_sig1[1] = A_sig12Front[1][iETA1];
7715  par_sig1[2] = A_sig12Front[2][iETA1];
7716  par_rho[0] = A_rho123FrontCSCTF[0][iETA1];
7717  par_rho[1] = A_rho123FrontCSCTF[1][iETA1];
7718  par_rho[2] = A_rho123FrontCSCTF[2][iETA1];
7719  par_rho[3] = A_rho123FrontCSCTF[3][iETA1];
7720  par_rho[4] = A_rho123FrontCSCTF[4][iETA1];
7721  }
7722  if (fr == 0) {
7723  if (iETA1 < 1)
7724  iETA1 = 1;
7725  //if(iETA1 > 11)iETA1 = 11;
7726  //if(fabs(eta)>1.56 && fabs(eta) < 1.6) iETA1 = iETA +1;
7727  par1[0] = A_mu12Rare[0][iETA1];
7728  par1[1] = A_mu12Rare[1][iETA1];
7729  par1[2] = A_mu12Rare[2][iETA1];
7730  par1[3] = A_mu12Rare[3][iETA1];
7731  par_sig1[0] = A_sig12Rare[0][iETA1];
7732  par_sig1[1] = A_sig12Rare[1][iETA1];
7733  par_sig1[2] = A_sig12Rare[2][iETA1];
7734  par_rho[0] = A_rho123RareCSCTF[0][iETA1];
7735  par_rho[1] = A_rho123RareCSCTF[1][iETA1];
7736  par_rho[2] = A_rho123RareCSCTF[2][iETA1];
7737  par_rho[3] = A_rho123RareCSCTF[3][iETA1];
7738  par_rho[4] = A_rho123RareCSCTF[4][iETA1];
7739  }
7740  if (iETA2 < 2)
7741  iETA2 = 2;
7742  par2[0] = A_mu23[0][iETA2];
7743  par2[1] = A_mu23[1][iETA2];
7744  par2[2] = A_mu23[2][iETA2];
7745  par2[3] = A_mu23[3][iETA2];
7746  par_sig2[0] = A_sig23[0][iETA2];
7747  par_sig2[1] = A_sig23[1][iETA2];
7748  par_sig2[2] = A_sig23[2][iETA2];
7749 
7750  break;
7751  case 3: //1-2-4
7752  if (fr == 1) {
7753  if (iETA1 < 3)
7754  iETA1 = 3;
7755  //if(iETA1 > 11)iETA1 = 11;
7756  par1[0] = A_mu12Front[0][iETA1];
7757  par1[1] = A_mu12Front[1][iETA1];
7758  par1[2] = A_mu12Front[2][iETA1];
7759  par1[3] = A_mu12Front[3][iETA1];
7760  par_sig1[0] = A_sig12Front[0][iETA1];
7761  par_sig1[1] = A_sig12Front[1][iETA1];
7762  par_sig1[2] = A_sig12Front[2][iETA1];
7763  par_rho[0] = A_rho124FrontCSCTF[0][iETA1];
7764  par_rho[1] = A_rho124FrontCSCTF[1][iETA1];
7765  par_rho[2] = A_rho124FrontCSCTF[2][iETA1];
7766  par_rho[3] = A_rho124FrontCSCTF[3][iETA1];
7767  par_rho[4] = A_rho124FrontCSCTF[4][iETA1];
7768  }
7769  if (fr == 0) {
7770  if (iETA1 < 1)
7771  iETA1 = 1;
7772  //if(iETA1 > 11)iETA1 = 11;
7773  par1[0] = A_mu12Rare[0][iETA1];
7774  par1[1] = A_mu12Rare[1][iETA1];
7775  par1[2] = A_mu12Rare[2][iETA1];
7776  par1[3] = A_mu12Rare[3][iETA1];
7777  par_sig1[0] = A_sig12Rare[0][iETA1];
7778  par_sig1[1] = A_sig12Rare[1][iETA1];
7779  par_sig1[2] = A_sig12Rare[2][iETA1];
7780  par_rho[0] = A_rho124RareCSCTF[0][iETA1];
7781  par_rho[1] = A_rho124RareCSCTF[1][iETA1];
7782  par_rho[2] = A_rho124RareCSCTF[2][iETA1];
7783  par_rho[3] = A_rho124RareCSCTF[3][iETA1];
7784  par_rho[4] = A_rho124RareCSCTF[4][iETA1];
7785  }
7786  if (iETA2 < 9)
7787  iETA2 = 9;
7788  par2[0] = A_mu24[0][iETA2];
7789  par2[1] = A_mu24[1][iETA2];
7790  par2[2] = A_mu24[2][iETA2];
7791  par2[3] = A_mu24[3][iETA2];
7792  par_sig2[0] = A_sig24[0][iETA2];
7793  par_sig2[1] = A_sig24[1][iETA2];
7794  par_sig2[2] = A_sig24[2][iETA2];
7795  break;
7796  case 4: //1-3-4
7797  if (fr == 1) {
7798  if (iETA1 < 3)
7799  iETA1 = 3;
7800  //if(iETA1 > 11)iETA1 = 11;
7801  par1[0] = A_mu13Front[0][iETA1];
7802  par1[1] = A_mu13Front[1][iETA1];
7803  par1[2] = A_mu13Front[2][iETA1];
7804  par1[3] = A_mu13Front[3][iETA1];
7805  par_sig1[0] = A_sig13Front[0][iETA1];
7806  par_sig1[1] = A_sig13Front[1][iETA1];
7807  par_sig1[2] = A_sig13Front[2][iETA1];
7808  par_rho[0] = A_rho134FrontCSCTF[0][iETA1];
7809  par_rho[1] = A_rho134FrontCSCTF[1][iETA1];
7810  par_rho[2] = A_rho134FrontCSCTF[2][iETA1];
7811  par_rho[3] = A_rho134FrontCSCTF[3][iETA1];
7812  par_rho[4] = A_rho134FrontCSCTF[4][iETA1];
7813  }
7814  if (fr == 0) {
7815  if (iETA1 < 2)
7816  iETA1 = 2;
7817  //if(iETA1 > 11)iETA1 = 11;
7818  par1[0] = A_mu13Rare[0][iETA1];
7819  par1[1] = A_mu13Rare[1][iETA1];
7820  par1[2] = A_mu13Rare[2][iETA1];
7821  par1[3] = A_mu13Rare[3][iETA1];
7822  par_sig1[0] = A_sig13Rare[0][iETA1];
7823  par_sig1[1] = A_sig13Rare[1][iETA1];
7824  par_sig1[2] = A_sig13Rare[2][iETA1];
7825  par_rho[0] = A_rho134RareCSCTF[0][iETA1];
7826  par_rho[1] = A_rho134RareCSCTF[1][iETA1];
7827  par_rho[2] = A_rho134RareCSCTF[2][iETA1];
7828  par_rho[3] = A_rho134RareCSCTF[3][iETA1];
7829  par_rho[4] = A_rho134RareCSCTF[4][iETA1];
7830  }
7831  if (iETA2 < 9)
7832  iETA2 = 9;
7833  par2[0] = A_mu34[0][iETA2];
7834  par2[1] = A_mu34[1][iETA2];
7835  par2[2] = A_mu34[2][iETA2];
7836  par2[3] = A_mu34[3][iETA2];
7837  par_sig2[0] = A_sig34[0][iETA2];
7838  par_sig2[1] = A_sig34[1][iETA2];
7839  par_sig2[2] = A_sig34[2][iETA2];
7840  break;
7841  case 5: //2-3-4
7842  if (iETA1 < 9)
7843  iETA1 = 9;
7844  par1[0] = A_mu23[0][iETA1];
7845  par1[1] = A_mu23[1][iETA1];
7846  par1[2] = A_mu23[2][iETA1];
7847  par1[3] = A_mu23[3][iETA1];
7848  par_sig1[0] = A_sig23[0][iETA1];
7849  par_sig1[1] = A_sig23[1][iETA1];
7850  par_sig1[2] = A_sig23[2][iETA1];
7851  par_rho[0] = A_rho234CSCTF[0][iETA1];
7852  par_rho[1] = A_rho234CSCTF[1][iETA1];
7853  par_rho[2] = A_rho234CSCTF[2][iETA1];
7854  par_rho[3] = A_rho234CSCTF[3][iETA1];
7855  par_rho[4] = A_rho234CSCTF[4][iETA1];
7856 
7857  par2[0] = A_mu34[0][iETA1];
7858  par2[1] = A_mu34[1][iETA1];
7859  par2[2] = A_mu34[2][iETA1];
7860  par2[3] = A_mu34[3][iETA1];
7861  par_sig2[0] = A_sig34[0][iETA1];
7862  par_sig2[1] = A_sig34[1][iETA1];
7863  par_sig2[2] = A_sig34[2][iETA1];
7864  break;
7865  case 11: // b1-1-3
7866  if (iETA1 != 2)
7867  iETA1 = 2;
7868  par1[0] = A_mu51[0][iETA1];
7869  par1[1] = A_mu51[1][iETA1];
7870  par1[2] = A_mu51[2][iETA1];
7871  par1[3] = A_mu51[3][iETA1];
7872  par_sig1[0] = A_sig51[0][iETA1];
7873  par_sig1[1] = A_sig51[1][iETA1];
7874  par_sig1[2] = A_sig51[2][iETA1];
7875  par_rho[0] = A_rho513[0][iETA1];
7876  par_rho[1] = A_rho513[0][iETA1];
7877  par_rho[2] = A_rho513[0][iETA1];
7878  par_rho[3] = A_rho513[0][iETA1];
7879  par_rho[4] = A_rho513[0][iETA1];
7880 
7881  par2[0] = A_mu13Rare[0][iETA1];
7882  par2[1] = A_mu13Rare[1][iETA1];
7883  par2[2] = A_mu13Rare[2][iETA1];
7884  par2[3] = A_mu13Rare[3][iETA1];
7885  par_sig2[0] = A_sig13Rare[0][iETA1];
7886  par_sig2[1] = A_sig13Rare[1][iETA1];
7887  par_sig2[2] = A_sig13Rare[2][iETA1];
7888  break;
7889  case 12: // b1-2-3
7890  if (iETA1 != 2)
7891  iETA1 = 2;
7892  par1[0] = A_mu52[0][iETA1];
7893  par1[1] = A_mu52[1][iETA1];
7894  par1[2] = A_mu52[2][iETA1];
7895  par1[3] = A_mu52[3][iETA1];
7896  par_sig1[0] = A_sig52[0][iETA1];
7897  par_sig1[1] = A_sig52[1][iETA1];
7898  par_sig1[2] = A_sig52[2][iETA1];
7899  par_rho[0] = A_rho523[0][iETA1];
7900  par_rho[1] = A_rho523[0][iETA1];
7901  par_rho[2] = A_rho523[0][iETA1];
7902  par_rho[3] = A_rho523[0][iETA1];
7903  par_rho[4] = A_rho523[0][iETA1];
7904 
7905  par2[0] = A_mu23[0][iETA1];
7906  par2[1] = A_mu23[1][iETA1];
7907  par2[2] = A_mu23[2][iETA1];
7908  par2[3] = A_mu23[3][iETA1];
7909  par_sig2[0] = A_sig23[0][iETA1];
7910  par_sig2[1] = A_sig23[1][iETA1];
7911  par_sig2[2] = A_sig23[2][iETA1];
7912  break;
7913  case 14: // b1-1-2-(3)
7914  if (iETA1 < 1)
7915  iETA1 = 1;
7916  if (iETA1 > 2)
7917  iETA1 = 2;
7918  par1[0] = A_mu51[0][iETA1];
7919  par1[1] = A_mu51[1][iETA1];
7920  par1[2] = A_mu51[2][iETA1];
7921  par1[3] = A_mu51[3][iETA1];
7922  par_sig1[0] = A_sig51[0][iETA1];
7923  par_sig1[1] = A_sig51[1][iETA1];
7924  par_sig1[2] = A_sig51[2][iETA1];
7925  par_rho[0] = A_rho512[0][iETA1];
7926  par_rho[1] = A_rho512[0][iETA1];
7927  par_rho[2] = A_rho512[0][iETA1];
7928  par_rho[3] = A_rho512[0][iETA1];
7929  par_rho[4] = A_rho512[0][iETA1];
7930 
7931  par2[0] = A_mu12Rare[0][iETA1];
7932  par2[1] = A_mu12Rare[1][iETA1];
7933  par2[2] = A_mu12Rare[2][iETA1];
7934  par2[3] = A_mu12Rare[3][iETA1];
7935  par_sig2[0] = A_sig12Rare[0][iETA1];
7936  par_sig2[1] = A_sig12Rare[1][iETA1];
7937  par_sig2[2] = A_sig12Rare[2][iETA1];
7938  break;
7939  //default:
7940  //return 0.0;
7941  }
7942 
7943  // Switch to 2-Station measurement if dphi is too small
7944  // box cut around Pt of 10 GeV
7945  if (fabs(static_cast<double>(dphi2)) < 0.004 &&
7946  ((type >= 11 && use2StnDT) || (type >= 2 && type <= 5 && use2Stn))) {
7947  if (use2Stn) {
7948  if (type == 2 || type == 3)
7949  type = 6; // 1-2-3(or 4) -> 1-2
7950  if (type == 4)
7951  type = 7; // 1-3-4 -> 1-3
7952  Pt = Pt2Stn2012(type, eta, dphi1, useBestMLH, bestLH, fr, method);
7953  }
7954  if (use2StnDT) {
7955  if (type == 11)
7956  type = 14; // b1-1-3 -> b1-1 for pt_method > 10
7957  Pt = Pt2Stn2012(type, eta, dphi1, useBestMLH, bestLH, fr, method);
7958  }
7959  } else {
7960  //************* solve equation dLog(Likelihood)/dpt = 0 for muon + ;
7961  double muPlusMaxLH = -1e9;
7962  double pt = 140;
7963  double step = 5.;
7964  double maxLH = -1e9;
7965 
7966  while (pt > 2.) {
7967  double par_phi12[1] = {dphi1};
7968  double par_phi23[1] = {dphi2};
7969  double v[1], lpt1_1;
7970  v[0] = pt;
7971  lpt1_1 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
7972 
7973  if (lpt1_1 > maxLH) {
7974  maxLH = lpt1_1;
7975  PTsolv = pt;
7976  }
7977 
7978  if (pt <= 5) {
7979  step = 0.5 / 4.0;
7980  } else if (pt <= 10) {
7981  step = 1.0 / 4.0;
7982  } else if (pt <= 20) {
7983  step = 2.0 / 4.0;
7984  } else if (pt <= 50) {
7985  step = 5.0 / 4.0;
7986  } else if (pt <= 100) {
7987  step = 10.0 / 4.0;
7988  }
7989  pt = pt - step;
7990  } // end while
7991  muPlusMaxLH = maxLH;
7992 
7993  //*********** end solve equation for muon plus
7994  //************* solve equation dLog(Likelihood)/dpt = 0 for muon minus ;
7995  // for one station method we know sing of muon: dphi1 > 0 for muon minus!!! => dphi1 = -dphi1 < 0
7996  double muMinusMaxLH = -1e9;
7997  dphi1 = -dphi1;
7998  dphi2 = -dphi2;
7999  pt = 140;
8000  step = 5.;
8001  maxLH = -1e9;
8002 
8003  while (pt > 2.) {
8004  double par_phi12[1] = {dphi1};
8005  double par_phi23[1] = {dphi2};
8006  double v[1], lpt1_1;
8007  v[0] = pt;
8008  lpt1_1 = Likelihood(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
8009 
8010  if (lpt1_1 > maxLH) {
8011  maxLH = lpt1_1;
8012  PTsolvMinus = pt;
8013  }
8014 
8015  if (pt <= 5) {
8016  step = 0.5 / 4.0;
8017  } else if (pt <= 10) {
8018  step = 1.0 / 4.0;
8019  } else if (pt <= 20) {
8020  step = 2.0 / 4.0;
8021  } else if (pt <= 50) {
8022  step = 5.0 / 4.0;
8023  } else if (pt <= 100) {
8024  step = 10.0 / 4.0;
8025  }
8026  pt = pt - step;
8027  } // end while
8028  muMinusMaxLH = maxLH;
8029 
8030  if (useBestMLH)
8031  PTsolv = (muPlusMaxLH > muMinusMaxLH)
8032  ? PTsolv
8033  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
8034  else
8035  PTsolv = (PTsolv > PTsolvMinus)
8036  ? PTsolv
8037  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
8038 
8039  bestLH = (muPlusMaxLH > muMinusMaxLH) ? muPlusMaxLH : muMinusMaxLH;
8040  //*********** end solve equation for muon minus
8041 
8042  PTsolv = PTsolv * 1.2; // correction to have 90% efficiency for trigger cuts
8043  if (PTsolv > 137.5)
8044  PTsolv = 137.5;
8045  //if(fabs(dphi1) < 0.002 && fabs(dphi2) <= CutPhi23){PTsolv = 140;}
8046  dphi1 = -dphi1; //return to correct sing dphi
8047  dphi2 = -dphi2; //return to correct sing dphi
8048  Pt = PTsolv;
8049  } // end 2 or 3 station method
8050  }
8051  }
8052  // if ( fabs(static_cast<double>(dphi2))>0.004 ) std::cout << "Pt = " << Pt << " Mode = " << type << " dphi1 = " << dphi1 << " dphi2 = " << dphi2 << std::endl;
8053 
8054  float Pt_min = trigger_scale->getPtScale()->getLowEdge(1); // 0 GeV
8055  if (method > 10)
8056  Pt_min = trigger_scale->getPtScale()->getLowEdge(3); // 2 GeV
8057 
8058  return (Pt > Pt_min) ? Pt : Pt_min;
8059 }
8060 
8062  int type, float eta, float dphi1, float dphi2, int PtbyMLH, float &bestLH, int fr, int method) const {
8063  int useBestMLH = PtbyMLH;
8064  int useBOXcutDT = true;
8065  int use2Stn = false;
8066  int use2StnDT = true;
8067 
8068  //if(fabs(eta) >= 2.4)eta = 2.35;
8069  if (fabs(eta) >= 2.2)
8070  eta = 2.15;
8071  float Pt = 0.;
8072  double PTsolv = 1.; // for muon plus hypothesis
8073  double PTsolvMinus = 1.; //for muon minus hypothesis
8074  for (int iETA = 0; iETA < 15; iETA++) {
8075  if (fabs(eta) >= etabins[iETA] && fabs(eta) < etabins[iETA + 1]) {
8076  // calculate curvers of mean and sigma
8077  // calculate phi12 mean
8078  double par1[4] = {0., 0., 0., 0.};
8079  //double phi12mean = fitf5(v, par1); //mu12
8080  double par_sig1[4] = {0., 0., 0., 0};
8081  // calculate phi23 mean
8082  double par2[4] = {0., 0., 0., 0.};
8083  // calculate phi23 sig
8084  double par_sig2[4] = {0., 0., 0., 0.};
8085  // calculate correlation rho
8086  double par_rho[5] = {0., 0., 0., 0., 0.};
8087  int iETA1 = iETA;
8088  int iETA2 = iETA;
8089 
8090  // defind which parameters will be use
8091  const double(*Amean12F)[15] = AB_mu12F;
8092  const double(*Asig12F)[15] = AB_sig12F;
8093  const double(*Amean12R)[15] = AB_mu12R;
8094  const double(*Asig12R)[15] = AB_sig12R;
8095 
8096  const double(*Amean13F)[15] = AB_mu13F;
8097  const double(*Asig13F)[15] = AB_sig13F;
8098  const double(*Amean13R)[15] = AB_mu13R;
8099  const double(*Asig13R)[15] = AB_sig13R;
8100 
8101  //const double(*Amean14F)[15] = AB_mu14F;
8102  //const double(*Asig14F)[15] = AB_sig14F;
8103  //const double(*Amean14R)[15] = AB_mu14R;
8104  //const double(*Asig14R)[15] = AB_sig14R;
8105 
8106  const double(*Amean23)[15] = AB_mu23;
8107  const double(*Asig23)[15] = AB_sig23;
8108  const double(*Amean24)[15] = AB_mu24;
8109  const double(*Asig24)[15] = AB_sig24;
8110  const double(*Amean34)[15] = AB_mu34;
8111  const double(*Asig34)[15] = AB_sig34;
8112 
8113  const double(*Amean5)[15] = AB_mu5;
8114  const double(*Asig5)[15] = AB_sig5;
8115  const double(*Amean51)[15] = AB_mu51;
8116  const double(*Asig51)[15] = AB_sig51;
8117  const double(*Amean52)[15] = AB_mu52;
8118  const double(*Asig52)[15] = AB_sig52;
8119  const double(*Amean53)[15] = AB_mu53;
8120  const double(*Asig53)[15] = AB_sig53;
8121 
8122  const double(*Arho123F)[15] = AB_rho123F;
8123  const double(*Arho123R)[15] = AB_rho123R;
8124  const double(*Arho124F)[15] = AB_rho124F;
8125  const double(*Arho124R)[15] = AB_rho124R;
8126  const double(*Arho134F)[15] = AB_rho134F;
8127  const double(*Arho134R)[15] = AB_rho134R;
8128  const double(*Arho234)[15] = AB_rho234;
8129 
8130  const double(*Arho51B)[15] = AB_rho51B;
8131  const double(*Arho52B)[15] = AB_rho52B;
8132  const double(*Arho53B)[15] = AB_rho53B;
8133  const double(*Arho512)[15] = AB_rho512;
8134  const double(*Arho513)[15] = AB_rho513;
8135  const double(*Arho523)[15] = AB_rho523;
8136 
8137  //cout << "iETA = " << iETA
8138  // << " AB_mu51[0][iETA] = " << AB_mu51[0][iETA] << " pointer = " << (*(Amean51+0))[iETA]
8139  // << " AB_mu51[3][iETA] = " << AB_mu51[3][iETA] << " pointer = " << (*(Amean51+3))[iETA]
8140  // << endl;
8141 
8142  switch (type) // type = mode here
8143  {
8144  case 2: //1-2-3
8145  if (iETA < 2)
8146  iETA2 = 2;
8147  if (fr == 1) {
8148  if (iETA < 3)
8149  iETA1 = 3;
8150  par1[0] = (*(Amean12F + 0))[iETA1];
8151  par1[1] = (*(Amean12F + 1))[iETA1];
8152  par1[2] = (*(Amean12F + 2))[iETA1];
8153  par1[3] = (*(Amean12F + 3))[iETA1];
8154  par_sig1[0] = (*(Asig12F + 0))[iETA1];
8155  par_sig1[1] = (*(Asig12F + 1))[iETA1];
8156  par_sig1[2] = (*(Asig12F + 2))[iETA1];
8157  par_sig1[3] = (*(Asig12F + 3))[iETA1];
8158  par_rho[0] = (*(Arho123F + 0))[iETA2];
8159  par_rho[1] = (*(Arho123F + 1))[iETA2];
8160  par_rho[2] = (*(Arho123F + 2))[iETA2];
8161  par_rho[3] = (*(Arho123F + 3))[iETA2];
8162  par_rho[4] = (*(Arho123F + 4))[iETA2];
8163  }
8164  if (fr == 0) {
8165  if (iETA < 1)
8166  iETA1 = 1;
8167  par1[0] = (*(Amean12R + 0))[iETA1];
8168  par1[1] = (*(Amean12R + 1))[iETA1];
8169  par1[2] = (*(Amean12R + 2))[iETA1];
8170  par1[3] = (*(Amean12R + 3))[iETA1];
8171  par_sig1[0] = (*(Asig12R + 0))[iETA1];
8172  par_sig1[1] = (*(Asig12R + 1))[iETA1];
8173  par_sig1[2] = (*(Asig12R + 2))[iETA1];
8174  par_sig1[3] = (*(Asig12R + 3))[iETA1];
8175  par_rho[0] = (*(Arho123R + 0))[iETA2];
8176  par_rho[1] = (*(Arho123R + 1))[iETA2];
8177  par_rho[2] = (*(Arho123R + 2))[iETA2];
8178  par_rho[3] = (*(Arho123R + 3))[iETA2];
8179  par_rho[4] = (*(Arho123R + 4))[iETA2];
8180  }
8181  par2[0] = (*(Amean23 + 0))[iETA2];
8182  par2[1] = (*(Amean23 + 1))[iETA2];
8183  par2[2] = (*(Amean23 + 2))[iETA2];
8184  par2[3] = (*(Amean23 + 3))[iETA2];
8185  par_sig2[0] = (*(Asig23 + 0))[iETA2];
8186  par_sig2[1] = (*(Asig23 + 1))[iETA2];
8187  par_sig2[2] = (*(Asig23 + 2))[iETA2];
8188  par_sig2[3] = (*(Asig23 + 3))[iETA2];
8189 
8190  break;
8191  case 3: //1-2-4
8192  if (iETA < 3)
8193  iETA2 = 3;
8194  if (fr == 1) {
8195  if (iETA < 3)
8196  iETA1 = 3;
8197  par1[0] = (*(Amean12F + 0))[iETA1];
8198  par1[1] = (*(Amean12F + 1))[iETA1];
8199  par1[2] = (*(Amean12F + 2))[iETA1];
8200  par1[3] = (*(Amean12F + 3))[iETA1];
8201  par_sig1[0] = (*(Asig12F + 0))[iETA1];
8202  par_sig1[1] = (*(Asig12F + 1))[iETA1];
8203  par_sig1[2] = (*(Asig12F + 2))[iETA1];
8204  par_sig1[3] = (*(Asig12F + 3))[iETA1];
8205  par_rho[0] = (*(Arho124F + 0))[iETA2];
8206  par_rho[1] = (*(Arho124F + 1))[iETA2];
8207  par_rho[2] = (*(Arho124F + 2))[iETA2];
8208  par_rho[3] = (*(Arho124F + 3))[iETA2];
8209  par_rho[4] = (*(Arho124F + 4))[iETA2];
8210  }
8211  if (fr == 0) {
8212  if (iETA < 1)
8213  iETA1 = 1;
8214  par1[0] = (*(Amean12R + 0))[iETA1];
8215  par1[1] = (*(Amean12R + 1))[iETA1];
8216  par1[2] = (*(Amean12R + 2))[iETA1];
8217  par1[3] = (*(Amean12R + 3))[iETA1];
8218  par_sig1[0] = (*(Asig12R + 0))[iETA1];
8219  par_sig1[1] = (*(Asig12R + 1))[iETA1];
8220  par_sig1[2] = (*(Asig12R + 2))[iETA1];
8221  par_sig1[3] = (*(Asig12R + 3))[iETA1];
8222  par_rho[0] = (*(Arho124R + 0))[iETA2];
8223  par_rho[1] = (*(Arho124R + 1))[iETA2];
8224  par_rho[2] = (*(Arho124R + 2))[iETA2];
8225  par_rho[3] = (*(Arho124R + 3))[iETA2];
8226  par_rho[4] = (*(Arho124R + 4))[iETA2];
8227  }
8228  par2[0] = (*(Amean24 + 0))[iETA2];
8229  par2[1] = (*(Amean24 + 1))[iETA2];
8230  par2[2] = (*(Amean24 + 2))[iETA2];
8231  par2[3] = (*(Amean24 + 3))[iETA2];
8232  par_sig2[0] = (*(Asig24 + 0))[iETA2];
8233  par_sig2[1] = (*(Asig24 + 1))[iETA2];
8234  par_sig2[2] = (*(Asig24 + 2))[iETA2];
8235  par_sig2[3] = (*(Asig24 + 3))[iETA2];
8236  break;
8237  case 4: //1-3-4
8238  if (iETA < 3)
8239  iETA2 = 3;
8240  if (fr == 1) {
8241  if (iETA < 3)
8242  iETA1 = 3;
8243  par1[0] = (*(Amean13F + 0))[iETA1];
8244  par1[1] = (*(Amean13F + 1))[iETA1];
8245  par1[2] = (*(Amean13F + 2))[iETA1];
8246  par1[3] = (*(Amean13F + 3))[iETA1];
8247  par_sig1[0] = (*(Asig13F + 0))[iETA1];
8248  par_sig1[1] = (*(Asig13F + 1))[iETA1];
8249  par_sig1[2] = (*(Asig13F + 2))[iETA1];
8250  par_sig1[3] = (*(Asig13F + 3))[iETA1];
8251  par_rho[0] = (*(Arho134F + 0))[iETA2];
8252  par_rho[1] = (*(Arho134F + 1))[iETA2];
8253  par_rho[2] = (*(Arho134F + 2))[iETA2];
8254  par_rho[3] = (*(Arho134F + 3))[iETA2];
8255  par_rho[4] = (*(Arho134F + 4))[iETA2];
8256  }
8257  if (fr == 0) {
8258  if (iETA < 3)
8259  iETA1 = 3;
8260  par1[0] = (*(Amean13R + 0))[iETA1];
8261  par1[1] = (*(Amean13R + 1))[iETA1];
8262  par1[2] = (*(Amean13R + 2))[iETA1];
8263  par1[3] = (*(Amean13R + 3))[iETA1];
8264  par_sig1[0] = (*(Asig13R + 0))[iETA1];
8265  par_sig1[1] = (*(Asig13R + 1))[iETA1];
8266  par_sig1[2] = (*(Asig13R + 2))[iETA1];
8267  par_sig1[3] = (*(Asig13R + 3))[iETA1];
8268  par_rho[0] = (*(Arho134R + 0))[iETA2];
8269  par_rho[1] = (*(Arho134R + 1))[iETA2];
8270  par_rho[2] = (*(Arho134R + 2))[iETA2];
8271  par_rho[3] = (*(Arho134R + 3))[iETA2];
8272  par_rho[4] = (*(Arho134R + 4))[iETA2];
8273  }
8274  par2[0] = (*(Amean34 + 0))[iETA2];
8275  par2[1] = (*(Amean34 + 1))[iETA2];
8276  par2[2] = (*(Amean34 + 2))[iETA2];
8277  par2[3] = (*(Amean34 + 3))[iETA2];
8278  par_sig2[0] = (*(Asig34 + 0))[iETA2];
8279  par_sig2[1] = (*(Asig34 + 1))[iETA2];
8280  par_sig2[2] = (*(Asig34 + 2))[iETA2];
8281  par_sig2[3] = (*(Asig34 + 3))[iETA2];
8282  break;
8283  case 5: //2-3-4
8284  if (iETA < 2)
8285  iETA1 = 2;
8286  if (iETA < 3)
8287  iETA2 = 3;
8288  par1[0] = (*(Amean23 + 0))[iETA1];
8289  par1[1] = (*(Amean23 + 1))[iETA1];
8290  par1[2] = (*(Amean23 + 2))[iETA1];
8291  par1[3] = (*(Amean23 + 3))[iETA1];
8292  par_sig1[0] = (*(Asig23 + 0))[iETA1];
8293  par_sig1[1] = (*(Asig23 + 1))[iETA1];
8294  par_sig1[2] = (*(Asig23 + 2))[iETA1];
8295  par_sig1[3] = (*(Asig23 + 3))[iETA1];
8296  par_rho[0] = (*(Arho234 + 0))[iETA2];
8297  par_rho[1] = (*(Arho234 + 1))[iETA2];
8298  par_rho[2] = (*(Arho234 + 2))[iETA2];
8299  par_rho[3] = (*(Arho234 + 3))[iETA2];
8300  par_rho[4] = (*(Arho234 + 4))[iETA2];
8301 
8302  par2[0] = (*(Amean34 + 0))[iETA2];
8303  par2[1] = (*(Amean34 + 1))[iETA2];
8304  par2[2] = (*(Amean34 + 2))[iETA2];
8305  par2[3] = (*(Amean34 + 3))[iETA2];
8306  par_sig2[0] = (*(Asig34 + 0))[iETA2];
8307  par_sig2[1] = (*(Asig34 + 1))[iETA2];
8308  par_sig2[2] = (*(Asig34 + 2))[iETA2];
8309  par_sig2[3] = (*(Asig34 + 3))[iETA2];
8310  break;
8311  case 11: // singles for method < 10, for method > 10: fr = 1 -> b1-1-3, fr = 0 -> b1-3-phiBend
8312  if (iETA != 2)
8313  iETA1 = 2;
8314  par1[0] = (*(Amean53 + 0))[iETA1];
8315  par1[1] = (*(Amean53 + 1))[iETA1];
8316  par1[2] = (*(Amean53 + 2))[iETA1];
8317  par1[3] = (*(Amean53 + 3))[iETA1];
8318  par_sig1[0] = (*(Asig53 + 0))[iETA1];
8319  par_sig1[1] = (*(Asig53 + 1))[iETA1];
8320  par_sig1[2] = (*(Asig53 + 2))[iETA1];
8321  par_sig1[3] = (*(Asig53 + 3))[iETA1];
8322  par_rho[0] = (*(Arho53B + 0))[iETA1];
8323  par_rho[1] = (*(Arho53B + 1))[iETA1];
8324  par_rho[2] = (*(Arho53B + 2))[iETA1];
8325  par_rho[3] = (*(Arho53B + 3))[iETA1];
8326  par_rho[4] = (*(Arho53B + 4))[iETA1];
8327 
8328  par2[0] = (*(Amean5 + 0))[iETA1];
8329  par2[1] = (*(Amean5 + 1))[iETA1];
8330  par2[2] = (*(Amean5 + 2))[iETA1];
8331  par2[3] = (*(Amean5 + 3))[iETA1];
8332  par_sig2[0] = (*(Asig5 + 0))[iETA1];
8333  par_sig2[1] = (*(Asig5 + 1))[iETA1];
8334  par_sig2[2] = (*(Asig5 + 2))[iETA1];
8335  par_sig2[3] = (*(Asig5 + 3))[iETA1];
8336 
8337  if (fr == 1) {
8338  par1[0] = (*(Amean51 + 0))[iETA1];
8339  par1[1] = (*(Amean51 + 1))[iETA1];
8340  par1[2] = (*(Amean51 + 2))[iETA1];
8341  par1[3] = (*(Amean51 + 3))[iETA1];
8342  par_sig1[0] = (*(Asig51 + 0))[iETA1];
8343  par_sig1[1] = (*(Asig51 + 1))[iETA1];
8344  par_sig1[2] = (*(Asig51 + 2))[iETA1];
8345  par_sig1[3] = (*(Asig51 + 3))[iETA1];
8346  par_rho[0] = (*(Arho513 + 0))[iETA1];
8347  par_rho[1] = (*(Arho513 + 1))[iETA1];
8348  par_rho[2] = (*(Arho513 + 2))[iETA1];
8349  par_rho[3] = (*(Arho513 + 3))[iETA1];
8350  par_rho[4] = (*(Arho513 + 4))[iETA1];
8351 
8352  par2[0] = (*(Amean13R + 0))[iETA1];
8353  par2[1] = (*(Amean13R + 1))[iETA1];
8354  par2[2] = (*(Amean13R + 2))[iETA1];
8355  par2[3] = (*(Amean13R + 3))[iETA1];
8356  par_sig2[0] = (*(Asig13R + 0))[iETA1];
8357  par_sig2[1] = (*(Asig13R + 1))[iETA1];
8358  par_sig2[2] = (*(Asig13R + 2))[iETA1];
8359  par_sig2[3] = (*(Asig13R + 3))[iETA1];
8360  }
8361  break;
8362  case 12: // b1-1-2 for method < 10; for method > 10: fr = 1 -> b1-2-3, fr = 0 -> b1-2-phiBend
8363  if (iETA < 1)
8364  iETA1 = 1;
8365  if (iETA > 2)
8366  iETA1 = 2;
8367  par1[0] = (*(Amean52 + 0))[iETA1];
8368  par1[1] = (*(Amean52 + 1))[iETA1];
8369  par1[2] = (*(Amean52 + 2))[iETA1];
8370  par1[3] = (*(Amean52 + 3))[iETA1];
8371  par_sig1[0] = (*(Asig52 + 0))[iETA1];
8372  par_sig1[1] = (*(Asig52 + 1))[iETA1];
8373  par_sig1[2] = (*(Asig52 + 2))[iETA1];
8374  par_sig1[3] = (*(Asig52 + 3))[iETA1];
8375  par_rho[0] = (*(Arho52B + 0))[iETA1];
8376  par_rho[1] = (*(Arho52B + 1))[iETA1];
8377  par_rho[2] = (*(Arho52B + 2))[iETA1];
8378  par_rho[3] = (*(Arho52B + 3))[iETA1];
8379  par_rho[4] = (*(Arho52B + 4))[iETA1];
8380 
8381  par2[0] = (*(Amean5 + 0))[iETA1];
8382  par2[1] = (*(Amean5 + 1))[iETA1];
8383  par2[2] = (*(Amean5 + 2))[iETA1];
8384  par2[3] = (*(Amean5 + 3))[iETA1];
8385  par_sig2[0] = (*(Asig5 + 0))[iETA1];
8386  par_sig2[1] = (*(Asig5 + 1))[iETA1];
8387  par_sig2[2] = (*(Asig5 + 2))[iETA1];
8388  par_sig2[3] = (*(Asig5 + 3))[iETA1];
8389 
8390  if (fr == 1) {
8391  if (iETA != 2)
8392  iETA1 = 2;
8393  par1[0] = (*(Amean52 + 0))[iETA1];
8394  par1[1] = (*(Amean52 + 1))[iETA1];
8395  par1[2] = (*(Amean52 + 2))[iETA1];
8396  par1[3] = (*(Amean52 + 3))[iETA1];
8397  par_sig1[0] = (*(Asig52 + 0))[iETA1];
8398  par_sig1[1] = (*(Asig52 + 1))[iETA1];
8399  par_sig1[2] = (*(Asig52 + 2))[iETA1];
8400  par_sig1[3] = (*(Asig52 + 3))[iETA1];
8401  par_rho[0] = (*(Arho523 + 0))[iETA1];
8402  par_rho[1] = (*(Arho523 + 1))[iETA1];
8403  par_rho[2] = (*(Arho523 + 2))[iETA1];
8404  par_rho[3] = (*(Arho523 + 3))[iETA1];
8405  par_rho[4] = (*(Arho523 + 4))[iETA1];
8406 
8407  par2[0] = (*(Amean23 + 0))[iETA1];
8408  par2[1] = (*(Amean23 + 1))[iETA1];
8409  par2[2] = (*(Amean23 + 2))[iETA1];
8410  par2[3] = (*(Amean23 + 3))[iETA1];
8411  par_sig2[0] = (*(Asig23 + 0))[iETA1];
8412  par_sig2[1] = (*(Asig23 + 1))[iETA1];
8413  par_sig2[2] = (*(Asig23 + 2))[iETA1];
8414  par_sig2[3] = (*(Asig23 + 3))[iETA1];
8415  }
8416  break;
8417  case 14: // b1-2 for method < 10; for method > 10: fr = 1 -> b1-1-2-(3), fr = 0 -> b1-1-phiBend
8418  if (iETA > 2)
8419  iETA1 = 2;
8420  par1[0] = (*(Amean51 + 0))[iETA1];
8421  par1[1] = (*(Amean51 + 1))[iETA1];
8422  par1[2] = (*(Amean51 + 2))[iETA1];
8423  par1[3] = (*(Amean51 + 3))[iETA1];
8424  par_sig1[0] = (*(Asig51 + 0))[iETA1];
8425  par_sig1[1] = (*(Asig51 + 1))[iETA1];
8426  par_sig1[2] = (*(Asig51 + 2))[iETA1];
8427  par_sig1[3] = (*(Asig51 + 3))[iETA1];
8428  par_rho[0] = (*(Arho51B + 0))[iETA1];
8429  par_rho[1] = (*(Arho51B + 1))[iETA1];
8430  par_rho[2] = (*(Arho51B + 2))[iETA1];
8431  par_rho[3] = (*(Arho51B + 3))[iETA1];
8432  par_rho[4] = (*(Arho51B + 4))[iETA1];
8433 
8434  par2[0] = (*(Amean5 + 0))[iETA1];
8435  par2[1] = (*(Amean5 + 1))[iETA1];
8436  par2[2] = (*(Amean5 + 2))[iETA1];
8437  par2[3] = (*(Amean5 + 3))[iETA1];
8438  par_sig2[0] = (*(Asig5 + 0))[iETA1];
8439  par_sig2[1] = (*(Asig5 + 1))[iETA1];
8440  par_sig2[2] = (*(Asig5 + 2))[iETA1];
8441  par_sig2[3] = (*(Asig5 + 3))[iETA1];
8442 
8443  if (fr == 1) {
8444  if (iETA < 1)
8445  iETA1 = 1;
8446  if (iETA > 2)
8447  iETA1 = 2;
8448  par1[0] = (*(Amean51 + 0))[iETA1];
8449  par1[1] = (*(Amean51 + 1))[iETA1];
8450  par1[2] = (*(Amean51 + 2))[iETA1];
8451  par1[3] = (*(Amean51 + 3))[iETA1];
8452  par_sig1[0] = (*(Asig51 + 0))[iETA1];
8453  par_sig1[1] = (*(Asig51 + 1))[iETA1];
8454  par_sig1[2] = (*(Asig51 + 2))[iETA1];
8455  par_sig1[3] = (*(Asig51 + 3))[iETA1];
8456  par_rho[0] = (*(Arho512 + 0))[iETA1];
8457  par_rho[1] = (*(Arho512 + 1))[iETA1];
8458  par_rho[2] = (*(Arho512 + 2))[iETA1];
8459  par_rho[3] = (*(Arho512 + 3))[iETA1];
8460  par_rho[4] = (*(Arho512 + 4))[iETA1];
8461 
8462  par2[0] = (*(Amean12R + 0))[iETA1];
8463  par2[1] = (*(Amean12R + 1))[iETA1];
8464  par2[2] = (*(Amean12R + 2))[iETA1];
8465  par2[3] = (*(Amean12R + 3))[iETA1];
8466  par_sig2[0] = (*(Asig12R + 0))[iETA1];
8467  par_sig2[1] = (*(Asig12R + 1))[iETA1];
8468  par_sig2[2] = (*(Asig12R + 2))[iETA1];
8469  par_sig2[3] = (*(Asig12R + 3))[iETA1];
8470  }
8471  break;
8472  //default:
8473  //return 0.0;
8474  }
8475 
8476  // Switch to 2-Station measurement if dphi is too small
8477  // box cut around Pt of 10 GeV
8478  if ((((fabs(static_cast<double>(dphi2)) < 0.004 && type != 12 && method < 25) ||
8479  (fabs(static_cast<double>(dphi2)) < 0.004 && type != 12 && type != 14 && type != 11 && method >= 25))) &&
8480  ((type >= 2 && type <= 5 && use2Stn) || (type >= 11 && use2StnDT))) {
8481  if (use2Stn) {
8482  //if(type == 12 || type == 14 || type == 11) std::cout << "mode = " << type << " dphi23 = " << dphi2 << " method = " << method << std::endl; //test
8483  if (type == 2 || type == 3)
8484  type = 6; // 1-2-3(or 4) -> 1-2
8485  if (type == 4)
8486  type = 7; // 1-3-4 -> 1-3
8487  if (type == 5)
8488  type = 8; // 2-3-4 -> 2-3
8489  Pt = Pt2Stn2012_DT(type,
8490  eta,
8491  dphi1,
8492  useBestMLH,
8493  bestLH,
8494  fr,
8495  method,
8496  int(2)); //in 3 station track there is no information to which ME1/1 or ME1/2 track belong
8497  }
8498  if (use2StnDT) {
8499  if (type == 11)
8500  type = 14; // b1-1-3 -> b1-1 for pt_method > 10
8501  //if(type == 14) type = 11;
8502  //phiSign
8503  Pt = Pt2Stn2012_DT(type,
8504  eta,
8505  dphi1,
8506  useBestMLH,
8507  bestLH,
8508  fr,
8509  method,
8510  int(2)); //in 3 station track there is no information to which ME1/1 or ME1/2 track belong
8511  }
8512  } else {
8513  //************* solve equation dLog(Likelihood)/dpt = 0 for muon + ;
8514  double muPlusMaxLH = -1e9;
8515  double pt = 140;
8516  double step = 5.;
8517  double maxLH = -1e9;
8518  while (pt > 2.) {
8519  double par_phi12[1] = {dphi1};
8520  double par_phi23[1] = {dphi2};
8521  double v[1], lpt1_1;
8522  v[0] = pt;
8523  lpt1_1 = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
8524 
8525  if (lpt1_1 > maxLH) {
8526  maxLH = lpt1_1;
8527  PTsolv = pt;
8528  }
8529 
8530  if (pt <= 5) {
8531  step = 0.5 / 4.0;
8532  } else if (pt <= 10) {
8533  step = 1.0 / 4.0;
8534  } else if (pt <= 20) {
8535  step = 2.0 / 4.0;
8536  } else if (pt <= 50) {
8537  step = 5.0 / 4.0;
8538  } else if (pt <= 100) {
8539  step = 10.0 / 4.0;
8540  }
8541  pt = pt - step;
8542  } // end while
8543  muPlusMaxLH = maxLH;
8544  //*********** end solve equation for muon plus
8545  //************* solve equation dLog(Likelihood)/dpt = 0 for muon minus ;
8546  // for one station method we know sing of muon: dphi1 > 0 for muon minus!!! => dphi1 = -dphi1 < 0
8547  double muMinusMaxLH = -1e9;
8548  dphi1 = -dphi1;
8549  dphi2 = -dphi2;
8550  pt = 140;
8551  step = 5.;
8552  maxLH = -1e9;
8553 
8554  while (pt > 2.) {
8555  double par_phi12[1] = {dphi1};
8556  double par_phi23[1] = {dphi2};
8557  double v[1], lpt1_1;
8558  v[0] = pt;
8559  lpt1_1 = Likelihood2011(par_phi12, par_phi23, par1, par2, par_sig1, par_sig2, par_rho, v);
8560 
8561  if (lpt1_1 > maxLH) {
8562  maxLH = lpt1_1;
8563  PTsolvMinus = pt;
8564  }
8565 
8566  if (pt <= 5) {
8567  step = 0.5 / 4.0;
8568  } else if (pt <= 10) {
8569  step = 1.0 / 4.0;
8570  } else if (pt <= 20) {
8571  step = 2.0 / 4.0;
8572  } else if (pt <= 50) {
8573  step = 5.0 / 4.0;
8574  } else if (pt <= 100) {
8575  step = 10.0 / 4.0;
8576  }
8577  pt = pt - step;
8578  } // end while
8579  muMinusMaxLH = maxLH;
8580 
8581  if (useBestMLH)
8582  PTsolv = (muPlusMaxLH > muMinusMaxLH)
8583  ? PTsolv
8584  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
8585  else
8586  PTsolv = (PTsolv > PTsolvMinus)
8587  ? PTsolv
8588  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
8589 
8590  bestLH = (muPlusMaxLH > muMinusMaxLH) ? muPlusMaxLH : muMinusMaxLH;
8591 
8592  PTsolv = PTsolv * 1.2; // correction to have 90% efficiency for trigger cuts
8593  if (PTsolv > 137.5)
8594  PTsolv = 137.5;
8595  //if(fabs(dphi1) < 0.002 && fabs(dphi2) <= CutPhi23){PTsolv = 140;}
8596  dphi1 = -dphi1; //return to correct sing dphi
8597  dphi2 = -dphi2; //return to correct sing dphi
8598  Pt = PTsolv;
8599  } // end 2 or 3 station method
8600  }
8601  }
8602  // fix overlap region high pt:
8603  if (useBOXcutDT)
8604  if (method >= 25 && (type == 12 || type == 14 || type == 11) && fabs(dphi1) < 0.003 && fabs(dphi2) < 2)
8605  Pt = 140.;
8606  // if ( fabs(static_cast<double>(dphi2))>0.004 ) std::cout << "Pt = " << Pt << " Mode = " << type << " dphi1 = " << dphi1 << " dphi2 = " << dphi2 << std::endl;
8607 
8608  //float Pt_min = trigger_scale->getPtScale()->getLowEdge(1);// 0 GeV
8609  //if(method > 10) Pt_min = trigger_scale->getPtScale()->getLowEdge(3);// 2 GeV
8610  float Pt_min = 2; // 2 GeV
8611 
8612  return (Pt > Pt_min) ? Pt : Pt_min;
8613 }
8614 
8616  int type, float eta, float dphi, int PtbyMLH, float &bestLH, int fr, int method, int phiSign) const {
8617  int useBestMLH = PtbyMLH;
8618  int useBOXcut = true;
8619 
8620  //if(fabs(eta) >= 2.4) eta = 2.35;
8621  if (fabs(eta) >= 2.2)
8622  eta = 2.15;
8623  double PTsolv = 1.; // for muon plus hypothesis
8624  double PTsolvMinus = 1.; //for muon minus hypothesis
8625  for (int iETA = 0; iETA < 15; iETA++) {
8626  if (fabs(eta) >= etabins[iETA] && fabs(eta) < etabins[iETA + 1]) {
8627  // calculate curvers of mean and sigma
8628  // calculate phi12 mean
8629  double par1[4] = {0., 0., 0., 0.};
8630  //double phi12mean = fitf5(v, par1); //mu12
8631  double par_sig1[4] = {0., 0., 0., 0};
8632  int iETA1 = iETA;
8633  int iETA2 = iETA;
8634 
8635  const double(*Amean12FnoME11)[15] = AB_mu12FnoME11;
8636  const double(*Asig12FnoME11)[15] = AB_sig12FnoME11;
8637  const double(*Amean12RnoME11)[15] = AB_mu12RnoME11;
8638  const double(*Asig12RnoME11)[15] = AB_sig12RnoME11;
8639 
8640  const double(*Amean13FnoME11)[15] = AB_mu13FnoME11;
8641  const double(*Asig13FnoME11)[15] = AB_sig13FnoME11;
8642  const double(*Amean13RnoME11)[15] = AB_mu13RnoME11;
8643  const double(*Asig13RnoME11)[15] = AB_sig13RnoME11;
8644 
8645  const double(*Amean14FnoME11)[15] = AB_mu14FnoME11;
8646  const double(*Asig14FnoME11)[15] = AB_sig14FnoME11;
8647  const double(*Amean14RnoME11)[15] = AB_mu14RnoME11;
8648  const double(*Asig14RnoME11)[15] = AB_sig14RnoME11;
8649  //
8650  const double(*Amean12FME11)[15] = AB_mu12FME11;
8651  const double(*Asig12FME11)[15] = AB_sig12FME11;
8652  const double(*Amean12RME11)[15] = AB_mu12RME11;
8653  const double(*Asig12RME11)[15] = AB_sig12RME11;
8654 
8655  const double(*Amean13FME11)[15] = AB_mu13FME11;
8656  const double(*Asig13FME11)[15] = AB_sig13FME11;
8657  const double(*Amean13RME11)[15] = AB_mu13RME11;
8658  const double(*Asig13RME11)[15] = AB_sig13RME11;
8659 
8660  const double(*Amean14FME11)[15] = AB_mu14FME11;
8661  const double(*Asig14FME11)[15] = AB_sig14FME11;
8662  const double(*Amean14RME11)[15] = AB_mu14RME11;
8663  const double(*Asig14RME11)[15] = AB_sig14RME11;
8664  //
8665  const double(*Amean12F)[15] = AB_mu12F;
8666  const double(*Asig12F)[15] = AB_sig12F;
8667  const double(*Amean12R)[15] = AB_mu12R;
8668  const double(*Asig12R)[15] = AB_sig12R;
8669 
8670  const double(*Amean13F)[15] = AB_mu13F;
8671  const double(*Asig13F)[15] = AB_sig13F;
8672  const double(*Amean13R)[15] = AB_mu13R;
8673  const double(*Asig13R)[15] = AB_sig13R;
8674 
8675  const double(*Amean14F)[15] = AB_mu14F;
8676  const double(*Asig14F)[15] = AB_sig14F;
8677  const double(*Amean14R)[15] = AB_mu14R;
8678  const double(*Asig14R)[15] = AB_sig14R;
8679 
8680  const double(*Amean23)[15] = AB_mu23;
8681  const double(*Asig23)[15] = AB_sig23;
8682  const double(*Amean24)[15] = AB_mu24;
8683  const double(*Asig24)[15] = AB_sig24;
8684  const double(*Amean34)[15] = AB_mu34;
8685  const double(*Asig34)[15] = AB_sig34;
8686 
8687  const double(*Amean51)[15] = AB_mu51;
8688  const double(*Asig51)[15] = AB_sig51;
8689  const double(*Amean52)[15] = AB_mu52;
8690  const double(*Asig52)[15] = AB_sig52;
8691  const double(*Amean53)[15] = AB_mu53;
8692  const double(*Asig53)[15] = AB_sig53;
8693 
8694  switch (type) // type = mode here
8695  {
8696  case 6: //1-2
8697  if (fr == 1) {
8698  if (iETA1 < 3)
8699  iETA1 = 3;
8700  //if(iETA1 > 11)iETA1 = 11;
8701  par1[0] = (*(Amean12F + 0))[iETA1];
8702  par1[1] = (*(Amean12F + 1))[iETA1];
8703  par1[2] = (*(Amean12F + 2))[iETA1];
8704  par1[3] = (*(Amean12F + 3))[iETA1];
8705  par_sig1[0] = (*(Asig12F + 0))[iETA1];
8706  par_sig1[1] = (*(Asig12F + 1))[iETA1];
8707  par_sig1[2] = (*(Asig12F + 2))[iETA1];
8708  par_sig1[3] = (*(Asig12F + 3))[iETA1];
8709  }
8710  if (fr == 0) {
8711  if (iETA1 < 1)
8712  iETA1 = 1;
8713  //if(iETA1 > 11)iETA1 = 11;
8714  par1[0] = (*(Amean12R + 0))[iETA1];
8715  par1[1] = (*(Amean12R + 1))[iETA1];
8716  par1[2] = (*(Amean12R + 2))[iETA1];
8717  par1[3] = (*(Amean12R + 3))[iETA1];
8718  par_sig1[0] = (*(Asig12R + 0))[iETA1];
8719  par_sig1[1] = (*(Asig12R + 1))[iETA1];
8720  par_sig1[2] = (*(Asig12R + 2))[iETA1];
8721  par_sig1[3] = (*(Asig12R + 3))[iETA1];
8722  }
8723  if (phiSign == 0) { // track belong to ME11 station
8724  if (fr == 1) {
8725  if (iETA2 < 7)
8726  iETA2 = 7;
8727  par1[0] = (*(Amean12FME11 + 0))[iETA2];
8728  par1[1] = (*(Amean12FME11 + 1))[iETA2];
8729  par1[2] = (*(Amean12FME11 + 2))[iETA2];
8730  par1[3] = (*(Amean12FME11 + 3))[iETA2];
8731  par_sig1[0] = (*(Asig12FME11 + 0))[iETA2];
8732  par_sig1[1] = (*(Asig12FME11 + 1))[iETA2];
8733  par_sig1[2] = (*(Asig12FME11 + 2))[iETA2];
8734  par_sig1[3] = (*(Asig12FME11 + 3))[iETA2];
8735  }
8736  if (fr == 0) {
8737  if (iETA2 < 7)
8738  iETA2 = 7;
8739  par1[0] = (*(Amean12RME11 + 0))[iETA2];
8740  par1[1] = (*(Amean12RME11 + 1))[iETA2];
8741  par1[2] = (*(Amean12RME11 + 2))[iETA2];
8742  par1[3] = (*(Amean12RME11 + 3))[iETA2];
8743  par_sig1[0] = (*(Asig12RME11 + 0))[iETA2];
8744  par_sig1[1] = (*(Asig12RME11 + 1))[iETA2];
8745  par_sig1[2] = (*(Asig12RME11 + 2))[iETA2];
8746  par_sig1[3] = (*(Asig12RME11 + 3))[iETA2];
8747  }
8748  }
8749  if (phiSign == 1) { // track belong to ME1/2 or ME1/3 station
8750  if (fr == 1) {
8751  if (iETA2 < 3)
8752  iETA2 = 3;
8753  if (iETA2 > 7)
8754  iETA2 = 7;
8755  par1[0] = (*(Amean12FnoME11 + 0))[iETA2];
8756  par1[1] = (*(Amean12FnoME11 + 1))[iETA2];
8757  par1[2] = (*(Amean12FnoME11 + 2))[iETA2];
8758  par1[3] = (*(Amean12FnoME11 + 3))[iETA2];
8759  par_sig1[0] = (*(Asig12FnoME11 + 0))[iETA2];
8760  par_sig1[1] = (*(Asig12FnoME11 + 1))[iETA2];
8761  par_sig1[2] = (*(Asig12FnoME11 + 2))[iETA2];
8762  par_sig1[3] = (*(Asig12FnoME11 + 3))[iETA2];
8763  }
8764  if (fr == 0) {
8765  if (iETA2 < 1)
8766  iETA2 = 1;
8767  if (iETA2 > 6)
8768  iETA2 = 6; // rare ME1/2 only till 1.6
8769  par1[0] = (*(Amean12RnoME11 + 0))[iETA2];
8770  par1[1] = (*(Amean12RnoME11 + 1))[iETA2];
8771  par1[2] = (*(Amean12RnoME11 + 2))[iETA2];
8772  par1[3] = (*(Amean12RnoME11 + 3))[iETA2];
8773  par_sig1[0] = (*(Asig12RnoME11 + 0))[iETA2];
8774  par_sig1[1] = (*(Asig12RnoME11 + 1))[iETA2];
8775  par_sig1[2] = (*(Asig12RnoME11 + 2))[iETA2];
8776  par_sig1[3] = (*(Asig12RnoME11 + 3))[iETA2];
8777  }
8778  }
8779 
8780  break;
8781  case 7: //1-3
8782  if (fr == 1) {
8783  if (iETA1 < 3)
8784  iETA1 = 3;
8785  //if(iETA1 > 11)iETA1 = 11;
8786  par1[0] = (*(Amean13F + 0))[iETA1];
8787  par1[1] = (*(Amean13F + 1))[iETA1];
8788  par1[2] = (*(Amean13F + 2))[iETA1];
8789  par1[3] = (*(Amean13F + 3))[iETA1];
8790  par_sig1[0] = (*(Asig13F + 0))[iETA1];
8791  par_sig1[1] = (*(Asig13F + 1))[iETA1];
8792  par_sig1[2] = (*(Asig13F + 2))[iETA1];
8793  par_sig1[3] = (*(Asig13F + 3))[iETA1];
8794  }
8795  if (fr == 0) {
8796  if (iETA1 < 3)
8797  iETA1 = 3;
8798  //if(iETA1 > 11)iETA1 = 11;
8799  par1[0] = (*(Amean13R + 0))[iETA1];
8800  par1[1] = (*(Amean13R + 1))[iETA1];
8801  par1[2] = (*(Amean13R + 2))[iETA1];
8802  par1[3] = (*(Amean13R + 3))[iETA1];
8803  par_sig1[0] = (*(Asig13R + 0))[iETA1];
8804  par_sig1[1] = (*(Asig13R + 1))[iETA1];
8805  par_sig1[2] = (*(Asig13R + 2))[iETA1];
8806  par_sig1[3] = (*(Asig13R + 3))[iETA1];
8807  }
8808  if (phiSign == 0) { // track belong to ME11 station
8809  if (fr == 1) {
8810  if (iETA2 < 7)
8811  iETA2 = 7;
8812  par1[0] = (*(Amean13FME11 + 0))[iETA2];
8813  par1[1] = (*(Amean13FME11 + 1))[iETA2];
8814  par1[2] = (*(Amean13FME11 + 2))[iETA2];
8815  par1[3] = (*(Amean13FME11 + 3))[iETA2];
8816  par_sig1[0] = (*(Asig13FME11 + 0))[iETA2];
8817  par_sig1[1] = (*(Asig13FME11 + 1))[iETA2];
8818  par_sig1[2] = (*(Asig13FME11 + 2))[iETA2];
8819  par_sig1[3] = (*(Asig13FME11 + 3))[iETA2];
8820  }
8821  if (fr == 0) {
8822  if (iETA2 < 7)
8823  iETA2 = 7;
8824  par1[0] = (*(Amean13RME11 + 0))[iETA2];
8825  par1[1] = (*(Amean13RME11 + 1))[iETA2];
8826  par1[2] = (*(Amean13RME11 + 2))[iETA2];
8827  par1[3] = (*(Amean13RME11 + 3))[iETA2];
8828  par_sig1[0] = (*(Asig13RME11 + 0))[iETA2];
8829  par_sig1[1] = (*(Asig13RME11 + 1))[iETA2];
8830  par_sig1[2] = (*(Asig13RME11 + 2))[iETA2];
8831  par_sig1[3] = (*(Asig13RME11 + 3))[iETA2];
8832  }
8833  }
8834  if (phiSign == 1) { // track belong to ME1/2 or ME1/3 station
8835  if (fr == 1) {
8836  if (iETA2 < 3)
8837  iETA2 = 3;
8838  if (iETA2 > 7)
8839  iETA2 = 7;
8840  par1[0] = (*(Amean13FnoME11 + 0))[iETA2];
8841  par1[1] = (*(Amean13FnoME11 + 1))[iETA2];
8842  par1[2] = (*(Amean13FnoME11 + 2))[iETA2];
8843  par1[3] = (*(Amean13FnoME11 + 3))[iETA2];
8844  par_sig1[0] = (*(Asig13FnoME11 + 0))[iETA2];
8845  par_sig1[1] = (*(Asig13FnoME11 + 1))[iETA2];
8846  par_sig1[2] = (*(Asig13FnoME11 + 2))[iETA2];
8847  par_sig1[3] = (*(Asig13FnoME11 + 3))[iETA2];
8848  }
8849  if (fr == 0) {
8850  if (iETA2 < 3)
8851  iETA2 = 3;
8852  if (iETA2 > 6)
8853  iETA2 = 6; // rare ME1/2 only till 1.6
8854  par1[0] = (*(Amean13RnoME11 + 0))[iETA2];
8855  par1[1] = (*(Amean13RnoME11 + 1))[iETA2];
8856  par1[2] = (*(Amean13RnoME11 + 2))[iETA2];
8857  par1[3] = (*(Amean13RnoME11 + 3))[iETA2];
8858  par_sig1[0] = (*(Asig13RnoME11 + 0))[iETA2];
8859  par_sig1[1] = (*(Asig13RnoME11 + 1))[iETA2];
8860  par_sig1[2] = (*(Asig13RnoME11 + 2))[iETA2];
8861  par_sig1[3] = (*(Asig13RnoME11 + 3))[iETA2];
8862  }
8863  }
8864  break;
8865  case 8: //2-3
8866  if (iETA1 < 2)
8867  iETA1 = 2;
8868  par1[0] = (*(Amean23 + 0))[iETA1];
8869  par1[1] = (*(Amean23 + 1))[iETA1];
8870  par1[2] = (*(Amean23 + 2))[iETA1];
8871  par1[3] = (*(Amean23 + 3))[iETA1];
8872  par_sig1[0] = (*(Asig23 + 0))[iETA1];
8873  par_sig1[1] = (*(Asig23 + 1))[iETA1];
8874  par_sig1[2] = (*(Asig23 + 2))[iETA1];
8875  par_sig1[3] = (*(Asig23 + 3))[iETA1];
8876 
8877  break;
8878  case 9: //2-4
8879  if (iETA1 < 3)
8880  iETA1 = 3;
8881  par1[0] = (*(Amean24 + 0))[iETA1];
8882  par1[1] = (*(Amean24 + 1))[iETA1];
8883  par1[2] = (*(Amean24 + 2))[iETA1];
8884  par1[3] = (*(Amean24 + 3))[iETA1];
8885  par_sig1[0] = (*(Asig24 + 0))[iETA1];
8886  par_sig1[1] = (*(Asig24 + 1))[iETA1];
8887  par_sig1[2] = (*(Asig24 + 2))[iETA1];
8888  par_sig1[3] = (*(Asig24 + 3))[iETA1];
8889  break;
8890  case 10: //3-4
8891  if (iETA1 < 3)
8892  iETA1 = 3;
8893  par1[0] = (*(Amean34 + 0))[iETA1];
8894  par1[1] = (*(Amean34 + 1))[iETA1];
8895  par1[2] = (*(Amean34 + 2))[iETA1];
8896  par1[3] = (*(Amean34 + 3))[iETA1];
8897  par_sig1[0] = (*(Asig34 + 0))[iETA1];
8898  par_sig1[1] = (*(Asig34 + 1))[iETA1];
8899  par_sig1[2] = (*(Asig34 + 2))[iETA1];
8900  par_sig1[3] = (*(Asig34 + 3))[iETA1];
8901  break;
8902  case 13: //1-4
8903  if (fr == 1) {
8904  if (iETA1 < 3)
8905  iETA1 = 3;
8906  //if(iETA1 > 11)iETA1 = 11;
8907  par1[0] = (*(Amean14F + 0))[iETA1];
8908  par1[1] = (*(Amean14F + 1))[iETA1];
8909  par1[2] = (*(Amean14F + 2))[iETA1];
8910  par1[3] = (*(Amean14F + 3))[iETA1];
8911  par_sig1[0] = (*(Asig14F + 0))[iETA1];
8912  par_sig1[1] = (*(Asig14F + 1))[iETA1];
8913  par_sig1[2] = (*(Asig14F + 2))[iETA1];
8914  par_sig1[3] = (*(Asig14F + 3))[iETA1];
8915  }
8916  if (fr == 0) {
8917  if (iETA1 < 2)
8918  iETA1 = 2;
8919  //if(iETA1 > 11)iETA1 = 11;
8920  par1[0] = (*(Amean14R + 0))[iETA1];
8921  par1[1] = (*(Amean14R + 1))[iETA1];
8922  par1[2] = (*(Amean14R + 2))[iETA1];
8923  par1[3] = (*(Amean14R + 3))[iETA1];
8924  par_sig1[0] = (*(Asig14R + 0))[iETA1];
8925  par_sig1[1] = (*(Asig14R + 1))[iETA1];
8926  par_sig1[2] = (*(Asig14R + 2))[iETA1];
8927  par_sig1[3] = (*(Asig14R + 3))[iETA1];
8928  }
8929  if (phiSign == 0) { // track belong to ME11 station
8930  if (fr == 1) {
8931  if (iETA2 < 9)
8932  iETA2 = 9;
8933  par1[0] = (*(Amean14FME11 + 0))[iETA2];
8934  par1[1] = (*(Amean14FME11 + 1))[iETA2];
8935  par1[2] = (*(Amean14FME11 + 2))[iETA2];
8936  par1[3] = (*(Amean14FME11 + 3))[iETA2];
8937  par_sig1[0] = (*(Asig14FME11 + 0))[iETA2];
8938  par_sig1[1] = (*(Asig14FME11 + 1))[iETA2];
8939  par_sig1[2] = (*(Asig14FME11 + 2))[iETA2];
8940  par_sig1[3] = (*(Asig14FME11 + 3))[iETA2];
8941  }
8942  if (fr == 0) {
8943  if (iETA2 < 9)
8944  iETA2 = 9;
8945  par1[0] = (*(Amean14RME11 + 0))[iETA2];
8946  par1[1] = (*(Amean14RME11 + 1))[iETA2];
8947  par1[2] = (*(Amean14RME11 + 2))[iETA2];
8948  par1[3] = (*(Amean14RME11 + 3))[iETA2];
8949  par_sig1[0] = (*(Asig14RME11 + 0))[iETA2];
8950  par_sig1[1] = (*(Asig14RME11 + 1))[iETA2];
8951  par_sig1[2] = (*(Asig14RME11 + 2))[iETA2];
8952  par_sig1[3] = (*(Asig14RME11 + 3))[iETA2];
8953  }
8954  }
8955  if (phiSign == 1) { // track belong to ME1/2 or ME1/3 station
8956  if (fr == 1) {
8957  if (iETA2 < 4)
8958  iETA2 = 4;
8959  if (iETA2 > 7)
8960  iETA2 = 7;
8961  par1[0] = (*(Amean14FnoME11 + 0))[iETA2];
8962  par1[1] = (*(Amean14FnoME11 + 1))[iETA2];
8963  par1[2] = (*(Amean14FnoME11 + 2))[iETA2];
8964  par1[3] = (*(Amean14FnoME11 + 3))[iETA2];
8965  par_sig1[0] = (*(Asig14FnoME11 + 0))[iETA2];
8966  par_sig1[1] = (*(Asig14FnoME11 + 1))[iETA2];
8967  par_sig1[2] = (*(Asig14FnoME11 + 2))[iETA2];
8968  par_sig1[3] = (*(Asig14FnoME11 + 3))[iETA2];
8969  }
8970  if (fr == 0) {
8971  if (iETA2 < 4)
8972  iETA2 = 4;
8973  if (iETA2 > 6)
8974  iETA2 = 6; // rare ME1/2 only till 1.6
8975  par1[0] = (*(Amean14RnoME11 + 0))[iETA2];
8976  par1[1] = (*(Amean14RnoME11 + 1))[iETA2];
8977  par1[2] = (*(Amean14RnoME11 + 2))[iETA2];
8978  par1[3] = (*(Amean14RnoME11 + 3))[iETA2];
8979  par_sig1[0] = (*(Asig14RnoME11 + 0))[iETA2];
8980  par_sig1[1] = (*(Asig14RnoME11 + 1))[iETA2];
8981  par_sig1[2] = (*(Asig14RnoME11 + 2))[iETA2];
8982  par_sig1[3] = (*(Asig14RnoME11 + 3))[iETA2];
8983  }
8984  }
8985 
8986  break;
8987  case 11: // b1-3 for pt_method > 10 & fr = 0, singles for pt_method < 10
8988  if (iETA1 != 2)
8989  iETA1 = 2;
8990  par1[0] = (*(Amean53 + 0))[iETA1];
8991  par1[1] = (*(Amean53 + 1))[iETA1];
8992  par1[2] = (*(Amean53 + 2))[iETA1];
8993  par1[3] = (*(Amean53 + 3))[iETA1];
8994  par_sig1[0] = (*(Asig53 + 0))[iETA1];
8995  par_sig1[1] = (*(Asig53 + 1))[iETA1];
8996  par_sig1[2] = (*(Asig53 + 2))[iETA1];
8997  par_sig1[3] = (*(Asig53 + 3))[iETA1];
8998  break;
8999 
9000  case 12: //1-2-b1 = 2-b1 for pt_method < 10, for pt_method > 10 & fr = 0: b1-2
9001  if (iETA1 < 1)
9002  iETA1 = 1;
9003  if (iETA1 > 2)
9004  iETA1 = 2;
9005 
9006  par1[0] = (*(Amean52 + 0))[iETA1];
9007  par1[1] = (*(Amean52 + 1))[iETA1];
9008  par1[2] = (*(Amean52 + 2))[iETA1];
9009  par1[3] = (*(Amean52 + 3))[iETA1];
9010  par_sig1[0] = (*(Asig52 + 0))[iETA1];
9011  par_sig1[1] = (*(Asig52 + 1))[iETA1];
9012  par_sig1[2] = (*(Asig52 + 2))[iETA1];
9013  par_sig1[3] = (*(Asig52 + 3))[iETA1];
9014 
9015  break;
9016  case 14: //2-b1 for pt_method < 10 and b1-1 for pt_method > 10 & fr = 0
9017  if (method < 10) {
9018  if (iETA1 < 1)
9019  iETA1 = 1;
9020  if (iETA1 > 2)
9021  iETA1 = 2;
9022  }
9023  par1[0] = (*(Amean52 + 0))[iETA1];
9024  par1[1] = (*(Amean52 + 1))[iETA1];
9025  par1[2] = (*(Amean52 + 2))[iETA1];
9026  par1[3] = (*(Amean52 + 3))[iETA1];
9027  par_sig1[0] = (*(Asig52 + 0))[iETA1];
9028  par_sig1[1] = (*(Asig52 + 1))[iETA1];
9029  par_sig1[2] = (*(Asig52 + 2))[iETA1];
9030  par_sig1[3] = (*(Asig52 + 3))[iETA1];
9031 
9032  if (method > 10) {
9033  if (iETA1 > 2)
9034  iETA1 = 2;
9035  par1[0] = (*(Amean51 + 0))[iETA1];
9036  par1[1] = (*(Amean51 + 1))[iETA1];
9037  par1[2] = (*(Amean51 + 2))[iETA1];
9038  par1[3] = (*(Amean51 + 3))[iETA1];
9039  par_sig1[0] = (*(Asig51 + 0))[iETA1];
9040  par_sig1[1] = (*(Asig51 + 1))[iETA1];
9041  par_sig1[2] = (*(Asig51 + 2))[iETA1];
9042  par_sig1[3] = (*(Asig51 + 3))[iETA1];
9043  }
9044  break;
9045  //default:
9046  //return 0.0;
9047  }
9048 
9049  //************* solve equation dLog(Likelihood)/dpt = 0 for muon + ;
9050  //if(fabs(dphi) >= 0.002)
9051  //if(fabs(dphi) >= 0.00)
9052  //if(fabs(dphi) >= 0.002 || (fabs(dphi) >= 0.01 && (type == 12 || type == 14)))
9053  //{
9054  double muPlusMaxLH = -1e9;
9055  double pt = 140;
9056  double step = 5.;
9057  double maxLH = -1e9;
9058  while (pt > 2.) {
9059  double par_phi12[1] = {dphi};
9060  double v[1], lpt1_1;
9061  v[0] = pt;
9062  lpt1_1 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
9063 
9064  if (lpt1_1 > maxLH) {
9065  maxLH = lpt1_1;
9066  PTsolv = pt;
9067  }
9068 
9069  if (pt <= 5) {
9070  step = 0.5 / 4.0;
9071  } else if (pt <= 10) {
9072  step = 1.0 / 4.0;
9073  } else if (pt <= 20) {
9074  step = 2.0 / 4.0;
9075  } else if (pt <= 50) {
9076  step = 5.0 / 4.0;
9077  } else if (pt <= 100) {
9078  step = 10.0 / 4.0;
9079  }
9080  pt = pt - step;
9081  } // end while
9082  muPlusMaxLH = maxLH;
9083 
9084  //*********** end solve equation for muon plus
9085  //************* solve equation dLog(Likelihood)/dpt = 0 for muon minus ;
9086  // for one station method we know sing of muon: dphi > 0 for muon minus!!! => dphi = -dphi < 0
9087  double muMinusMaxLH = -1e9;
9088  dphi = -dphi;
9089  pt = 140;
9090  step = 5.;
9091  maxLH = -1e9;
9092  while (pt > 2.) {
9093  double par_phi12[1] = {dphi};
9094  double v[1], lpt1_1;
9095  v[0] = pt;
9096  lpt1_1 = Likelihood2_2011(par_phi12, par1, par_sig1, v);
9097 
9098  if (lpt1_1 > maxLH) {
9099  maxLH = lpt1_1;
9100  PTsolvMinus = pt;
9101  }
9102 
9103  if (pt <= 5) {
9104  step = 0.5 / 4.0;
9105  } else if (pt <= 10) {
9106  step = 1.0 / 4.0;
9107  } else if (pt <= 20) {
9108  step = 2.0 / 4.0;
9109  } else if (pt <= 50) {
9110  step = 5.0 / 4.0;
9111  } else if (pt <= 100) {
9112  step = 10.0 / 4.0;
9113  }
9114  pt = pt - step;
9115  } // end while
9116  muMinusMaxLH = maxLH;
9117 
9118  // }// if(fabs(dphi) >= 0.002)
9119  // else
9120  // {PTsolv = 137.5;}
9121 
9122  //*********** end solve equation for muon minus
9123  if (useBestMLH)
9124  PTsolv = (muPlusMaxLH > muMinusMaxLH)
9125  ? PTsolv
9126  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
9127  else
9128  PTsolv = (PTsolv > PTsolvMinus)
9129  ? PTsolv
9130  : PTsolvMinus; // select Maximum solution from muon plus and moun minus hypotesis
9131 
9132  bestLH = (muPlusMaxLH > muMinusMaxLH) ? muPlusMaxLH : muMinusMaxLH;
9133 
9134  PTsolv = PTsolv * 1.2;
9135  if (PTsolv > 137.5)
9136  PTsolv = 137.5;
9137 
9138  if (useBOXcut)
9139  if (fabs(dphi) <= 0.002 && PTsolv < 120.)
9140  PTsolv = 140.;
9141  //if( fabs(dphi) <= 0.01 && (type == 11 || type == 12 || type == 14) && PTsolv < 120.)PTsolv = 140.;
9142  dphi = -dphi; //return to correct sing dphi
9143 
9144  } //if(fabs(eta_TracMy)
9145  } //end "for by iETA"
9146 
9147  float Pt = PTsolv;
9148 
9149  //float Pt_min = trigger_scale->getPtScale()->getLowEdge(1);// 0 GeV
9150  //if(method > 10) Pt_min = trigger_scale->getPtScale()->getLowEdge(3);// 2 GeV
9151  float Pt_min = 2; // 0 GeV
9152 
9153  return (Pt > Pt_min) ? Pt : Pt_min;
9154 }
9155 
9156 // These arrays contain mean dphi values for each pt and eta bin.
9157 // They are split into fr=0 and fr=1.
9158 
9159 const float CSCTFPtMethods::dphifr0[4][15][28] = {
9160  {{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9161  {-1, -1, 1253.47, -174.543, -90.845, -36.8835, -13.2793, 3.28278, 11.1568, 12.9352,
9162  12.8576, 12.322, 11.7342, 10.5244, 10.0687, 8.32785, 7.13888, 6.20492, 5.85733, 4.75137,
9163  4.77209, 4.02553, 3.69785, 3.28493, 2.99132, 2.55496, 2.22965, 1.98868},
9164  {-1, -1, -158.232, -135.974, -59.1458, -5.19565, 12.8464, 23.5714, 24.0722, 24.6097,
9165  21.0736, 19.6627, 17.2412, 15.6857, 14.308, 12.6231, 10.4509, 9.9933, 8.24835, 6.92309,
9166  6.57742, 5.69463, 4.74087, 3.78364, 4.21154, 3.27273, 3.10333, 2.60822},
9167  {-1, -1, -187.544, -42.1843, 40.6221, 54.483, 56.7803, 53.5989, 48.8252, 41.8441,
9168  35.5835, 30.7605, 26.9772, 24.2051, 21.5163, 18.7697, 15.6471, 12.8676, 10.9852, 9.93952,
9169  9.17785, 7.91962, 6.87614, 5.85018, 5.10393, 4.67222, 4.02645, 3.547},
9170  {-1, -93.4379, -64.9443, 70.5053, 85.4571, 85.2642, 77.1782, 67.8264, 59.6792, 50.1799,
9171  41.1682, 35.1241, 30.6299, 27.1403, 24.6307, 20.6204, 17.277, 14.4064, 12.6264, 11.5938,
9172  10.0659, 8.76273, 7.54754, 6.535, 5.69304, 5.44025, 4.61045, 3.87704},
9173  {-1, 65.2747, 120.239, 129.902, 115.172, 108.511, 92.9557, 77.3499, 66.5613, 56.856,
9174  45.7164, 39.0012, 33.7201, 30.13, 26.8649, 22.9335, 18.2273, 16.5989, 13.9109, 12.3409,
9175  10.9531, 9.90102, 8.25129, 7.1479, 6.71622, 5.77461, 5.05741, 4.38687},
9176  {1292.54, 139.196, 169.261, 134.554, 129.417, 118.125, 97.2182, 80.5974, 70.3365, 58.7809,
9177  48.6667, 40.7918, 34.917, 30.8781, 28.1953, 23.2852, 19.1667, 14.6401, 14.0676, 12.5932,
9178  11.4459, 9.67685, 8.55686, 7.49359, 6.3961, 6.02812, 5.26887, 4.55128},
9179  {396.903, 408.642, 331.11, 291.154, 244.6, 225.93, 191.418, 159.273, 137.156, 113.559,
9180  92.3122, 77.8488, 67.4872, 57.885, 53.6376, 45.4894, 37.1931, 30.9091, 26.9629, 22.8523,
9181  20.6881, 17.8588, 16.0515, 14.2847, 11.9988, 10.9918, 9.58895, 8.28621},
9182  {634.157, 376.909, 303.487, 269.928, 237.553, 221.337, 183.49, 151.95, 128.961, 108.078,
9183  88.4642, 74.0832, 64.4987, 56.8622, 51.0964, 43.2635, 34.8376, 30.0291, 25.2508, 22.9892,
9184  20.3061, 17.1065, 15.08, 13.1487, 11.3403, 9.8765, 8.67395, 7.70727},
9185  {370.029, 334.631, 284.161, 247.876, 220.082, 190.31, 160.042, 139.043, 119.323, 96.8377,
9186  79.0452, 67.6644, 58.5129, 51.8932, 46.4433, 38.2747, 32.5855, 28.1408, 23.2895, 20.8651,
9187  18.3079, 16.0197, 13.33, 10.7823, 10.5876, 9.3446, 8.18957, 7.13109},
9188  {336.807, 315.636, 263.106, 227.678, 196.301, 172.476, 144.296, 122.167, 107.034, 88.4252,
9189  71.6369, 61.0729, 53.1695, 47.213, 42.3058, 36.058, 27.7351, 25.8168, 21.0509, 19.0587,
9190  16.2367, 14.7198, 12.368, 10.5611, 9.43783, 8.64059, 7.30456, 6.50177},
9191  {562.84, 281.367, 231.744, 197.26, 175.838, 154, 132.991, 112.797, 97.7521, 80.0722,
9192  66.1777, 53.8695, 47.5855, 42.4901, 36.5583, 31.8172, 24.5935, 22.6, 19.9488, 17.8189,
9193  15.1107, 13.2519, 10.8772, 10.1643, 8.80709, 8.00448, 6.02758, 5.14123},
9194  {289.896, 258.601, 215.353, 187.786, 154.972, 143.654, 120.207, 106.698, 88.6531, 75.9,
9195  59.003, 52.4794, 41.7089, 38.3974, 35.4884, 28.7295, 17.5001, 31.3222, 18.7727, 15.4322,
9196  11.8692, 10.5938, 8.97935, 9.22087, 9.05559, 6.60579, 6.4547, 2.855},
9197  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9198  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
9199  {{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9200  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9201  {-1, -1, -1, -158, -149.043, -92.0094, -28.6132, 27.8399, 27.5444, 27.5802,
9202  37.07, 24.0291, 24.9195, 20.9748, 18.7762, 22.7466, 14.5682, 28.4577, 11.0263, 29.5137,
9203  7.04546, 7.38512, 7.724, 6.71233, 27.4036, 4.52113, 4.33911, 4.07762},
9204  {-1, -1, -265.6, -144.969, -56.137, -4.4, 30.8879, 44.1075, 45.163, 42.5274,
9205  38.7436, 34.8538, 31.1479, 28.8793, 25.3394, 22.5102, 19.0281, 15.6608, 13.3702, 12.0331,
9206  11.1189, 10.2568, 8.57414, 7.45946, 6.29798, 6.15319, 5.30089, 4.56149},
9207  {-1, -79.5241, -105.242, -29.2478, 33.9726, 60.1505, 67.6247, 67.8742, 63.3538, 55.8014,
9208  47.6468, 41.3991, 36.6279, 32.9551, 29.9351, 25.5988, 21.3793, 17.7866, 15.8878, 14.6346,
9209  12.5951, 11.084, 9.73607, 8.64701, 7.50803, 6.97295, 5.98046, 5.18782},
9210  {-1, -40.3713, 42.1945, 92.9089, 114.43, 113.72, 100.286, 89.219, 77.4508, 66.7699,
9211  55.0464, 47.6297, 41.3828, 36.4328, 33.2834, 28.5722, 23.0725, 21.5406, 18.1268, 16.2328,
9212  13.9065, 12.2744, 10.5509, 9.47753, 8.48564, 7.63124, 6.41131, 5.79205},
9213  {-34.9, 73.3963, 142.631, 145.951, 142.318, 129.656, 111.93, 94.6978, 85.5312, 71.8926,
9214  60.7711, 50.9572, 44.9347, 39.6302, 36.0288, 30.04, 24.3307, 21.7811, 18.3903, 16.2716,
9215  14.7719, 12.8338, 11.2943, 9.72188, 8.62582, 7.73165, 6.73526, 5.93205},
9216  {7368.83, 502.793, 291.618, 282.933, 244.114, 233.502, 201.302, 172.276, 148.921, 125.128,
9217  102.477, 86.3142, 75.3546, 64.468, 60.2395, 50.8744, 42.101, 35.6805, 30.7703, 26.6287,
9218  23.2273, 20.6701, 17.2109, 15.2909, 13.682, 12.3394, 11.0076, 9.19048},
9219  {82.7323, 379.23, 270.613, 264.088, 246.284, 233.18, 190.228, 162.832, 141.282, 119.001,
9220  96.1594, 81.5045, 71.5023, 63.5261, 57.4827, 48.7483, 38.0439, 34.4778, 29.625, 25.2903,
9221  23.1887, 20.6185, 17.7059, 14.7975, 12.9311, 11.9939, 11.016, 9.50148},
9222  {185.843, 294.953, 268.259, 250.028, 232.276, 209.138, 174.647, 153.029, 132.233, 109.333,
9223  91.0324, 76.9822, 67.8374, 59.8954, 53.4497, 43.553, 37.6139, 32.7444, 27.023, 23.9679,
9224  20.9309, 19.1485, 16.0294, 13.8003, 12.3176, 11.3441, 9.55937, 8.54497},
9225  {348.282, 310.699, 268.381, 243.254, 217.179, 187.212, 162.957, 136.969, 124.132, 101.48,
9226  81.8314, 71.5882, 61.3147, 54.9158, 49.5517, 42.7537, 33.5, 29.7412, 26.1131, 23.1024,
9227  19.7197, 17.708, 14.0364, 12.8054, 11.8375, 10.4924, 9.04095, 8.33528},
9228  {324.513, 290.628, 251.147, 216.936, 198.177, 176.297, 151.909, 129.606, 113.817, 94.3377,
9229  76.6785, 64.382, 56.4567, 51.125, 43.4356, 37.6896, 30.338, 26.5577, 23.1858, 20.4549,
9230  18.0182, 16.0098, 13.1211, 11.8445, 11.3616, 9.25812, 8.4992, 7.35148},
9231  {244.009, 279.89, 230.644, 231.457, 172.803, 163.804, 140.071, 126.029, 107.683, 91.6615,
9232  72.0354, 64.4556, 50.6761, 46.5068, 41.6472, 35.4661, 21.2969, 38.4268, 19.632, 18.4574,
9233  12.839, 14.213, 12.4018, 12.0424, 9.6145, 8.22918, 9.88007, 6.12946},
9234  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9235  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
9236  {{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9237  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9238  {-1, -1, -251.167, -157.188, -100.839, -70.7716, -31.9278, -14.7414, -6.46332, -1.43471,
9239  1.10161, 1.95823, 2.6771, 2.52718, 2.67548, 2.75908, 2.87331, 2.61814, 1.92056, 2.16773,
9240  1.70225, 1.70877, 1.55219, 1.43065, 1.53014, 1.69851, 1.40267, 1.46639},
9241  {-1, -1, -243.237, -145.933, -87.2068, -48.5578, -21.9141, -7.68402, -2.83933, 1.21596,
9242  2.94545, 4.083, 3.97067, 4.12142, 3.78849, 3.83645, 3.07738, 2.90695, 2.53516, 2.51623,
9243  2.31173, 2.2246, 1.85357, 1.78656, 1.65385, 1.57375, 1.40617, 1.35693},
9244  {-1, -110, -141.651, -118.596, -52.606, -23.472, -8.09735, 0.683589, 3.57165, 5.25367,
9245  5.8348, 5.67137, 5.26599, 5.1816, 4.84428, 4.6964, 4.06178, 3.27554, 3, 2.92343,
9246  2.56487, 2.47989, 2.32236, 1.83586, 1.84201, 1.97658, 1.64081, 1.56958},
9247  {-1, -106.053, -87.5398, -49.1882, -11.1091, -0.606904, 6.08278, 8.18373, 9.14269, 8.82061,
9248  8.39517, 7.5095, 6.66552, 6.06293, 5.79917, 5.11953, 4.08928, 3.87, 3.71985, 3.4277,
9249  2.925, 2.47762, 2.49134, 2.1793, 2.11341, 1.8709, 1.68674, 1.69234},
9250  {-116.854, -103.914, -48.6067, -7.80512, 4.11674, 8.14952, 11.6643, 11.178, 11.3862, 10.0188,
9251  9.46565, 8.32955, 7.58777, 6.63929, 6.08499, 5.66225, 4.70548, 4.09773, 4.0294, 3.23529,
9252  2.62532, 2.89612, 2.52651, 2.27649, 1.99773, 1.96176, 2.06313, 2.12814},
9253  {-146.18, -59.7282, -12.5, 3.08192, 8.34909, 11.1753, 15.2845, 14.8204, 14.3607, 12.9987,
9254  11.1043, 9.964, 8.90504, 8.31783, 7.36251, 6.6915, 6.24035, 4.98582, 4.03066, 5.83789,
9255  3.10856, 2.96333, 3.06171, 2.23047, 2.32792, 2.18535, 2.38165, 2.42884},
9256  {-233.643, -96.4333, -30.9536, -2.51866, 5.30801, 7.45312, 14.238, 12.5321, 12.7695, 11.741,
9257  10.4656, 8.62541, 7.93922, 7.51216, 6.53463, 5.50929, 4.6268, 4.64697, 4.30481, 3.52426,
9258  3.45212, 3.73824, 4.07812, 2.33724, 2.51972, 2.21704, 3.41317, 2.55682},
9259  {-211.848, -67.9261, -9.6179, 2.65525, 11.0301, 16.4831, 16.0704, 15.4027, 15.1086, 13.5929,
9260  11.7898, 9.90025, 9.13345, 8.25683, 7.21617, 6.25572, 5.43346, 4.54866, 3.83221, 3.4237,
9261  3.65898, 3.65808, 3.18498, 2.75829, 2.37531, 2.88444, 1.95099, 1.89066},
9262  {-143.833, -12.2832, 7.8963, 16.4622, 19.9538, 17.4053, 18.3962, 16.7577, 15.9486, 14.1232,
9263  11.1662, 10.5826, 9.11908, 8.38156, 7.65503, 6.84281, 5.95331, 4.69263, 4.88752, 3.84843,
9264  3.79038, 3.24503, 2.73708, 2.6645, 2.5017, 2.13435, 1.87916, 2.1749},
9265  {-37.4431, 11.3047, 18.5, 23.1562, 22.8984, 22.1124, 20.1964, 19.4342, 17.2078, 15.1252,
9266  12.2962, 10.5784, 9.23938, 8.73254, 7.106, 6.7301, 5.53248, 4.62478, 3.82739, 3.07251,
9267  2.79682, 2.8214, 2.92242, 2.47091, 2.63102, 1.94484, 2.30322, 2.64068},
9268  {4.24623, 23.1041, 27.5407, 28, 23.0684, 24.1685, 21.3723, 19.4634, 16.9631, 14.3876,
9269  12.3701, 10.1272, 9.12229, 7.9875, 7.06019, 5.96169, 5.53393, 4.32105, 3.66794, 3.70074,
9270  3.20382, 3.47729, 3.06609, 2.26191, 2.48768, 2.01323, 2.73772, 2.66561},
9271  {33.3344, 32.716, 30.0851, 30.6933, 29.2431, 25.6295, 21.674, 19.3741, 17.7184, 14.8413,
9272  12.1543, 10.4758, 9.33113, 7.79187, 7.39106, 5.8376, 6.08377, 4.85748, 4.16908, 3.88557,
9273  3.14086, 3.11306, 2.98297, 3.33859, 2.04182, 2.32861, 2.75164, 2.29621},
9274  {46.1357, 38.8426, 36.6976, 32.0038, 29.6956, 23.4889, 22.725, 19.779, 17.5173, 14.7043,
9275  11.9171, 10.7871, 9.06671, 8.23658, 7.41977, 6.46988, 4.93792, 4.55465, 4.20588, 3.82236,
9276  3.62993, 2.83949, 2.95902, 1.99063, 2.37545, 2.28563, 2.49407, 2.52411}},
9277  {{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9278  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9279  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9280  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9281  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9282  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9283  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9284  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9285  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9286  {-417.629, -218.804, -63.1122, -34.5828, -10.68, 2.75084, 8.65719, 11.6155, 13.6253, 12.1802,
9287  12.5535, 10.8028, 9.48349, 9.38468, 7.83699, 6.99092, 5.30562, 4.20316, 4.41177, 4.52123,
9288  3.31882, 3.91104, 3.77374, 4.04567, 2.35974, 2.35145, 2.96747, 1.98381},
9289  {-311.688, -93.8205, -32.57, -6.85071, 6.45113, 7.97528, 13.5012, 15.2368, 16.5485, 14.4764,
9290  12.181, 11.4092, 10.3418, 9.29414, 9.04287, 7.72862, 7.46558, 5.20657, 5.19399, 5.61358,
9291  3.9523, 3.20885, 3.29034, 2.82267, 2.91734, 2.38053, 2.44655, 2.36229},
9292  {-161.948, -37.0248, -4.60393, 8.56983, 13.4828, 19.0043, 18.3378, 20.0726, 18.3394, 16.8149,
9293  14.4702, 12.2298, 10.8159, 10.422, 8.29546, 7.70715, 6.26524, 5.70706, 5.26374, 4.44881,
9294  4.80797, 3.24519, 3.09801, 2.73461, 3.34774, 2.88844, 2.34626, 2.76387},
9295  {-72.1648, -12.5057, 16.9112, 23.5819, 20.6731, 21.814, 22.9407, 19.6563, 19.1021, 16.9339,
9296  15.2842, 12.4743, 11.0013, 10.0748, 8.91402, 7.27224, 6.15542, 5.23092, 4.49629, 4.25791,
9297  3.79059, 3.70681, 3.31756, 2.62265, 3.45895, 2.19926, 2.15639, 2.7466},
9298  {2.3118, 20.9883, 24.9015, 32.366, 32.2839, 29.3505, 24.8013, 23.3821, 21.1815, 18.3139,
9299  15.0436, 13.3637, 11.4887, 9.84427, 9.51972, 8.22026, 6.8517, 5.85862, 4.95269, 4.5885,
9300  3.45462, 4.03355, 3.70984, 4.04694, 2.46266, 2.50179, 3.23813, 2.46999},
9301  {30.7084, 40.046, 40.956, 39.7092, 36.4134, 28.415, 28.5543, 24.9346, 23.1865, 19.4968,
9302  15.3536, 14.0231, 12.0163, 10.7639, 9.82125, 8.36598, 6.4058, 5.88361, 5.13249, 4.51457,
9303  4.9171, 3.87165, 3.58904, 2.85879, 2.53645, 2.81466, 2.72057, 3.18122}}};
9304 
9305 const float CSCTFPtMethods::dphifr1[4][15][28] = {
9306  {{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9307  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9308  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9309  {-1, -1, -174.092, -53.9867, 10.2441, 27.4286, 36.9822, 37.5167, 34.3051, 31.8195,
9310  27.8286, 24.1206, 21.161, 19.0382, 17.1718, 14.6208, 12.2432, 10.7876, 9.69835, 8.08848,
9311  7.13485, 6.60187, 5.18874, 5.13839, 4.41612, 4.14069, 3.58335, 3.01529},
9312  {-1, 1138.05, -49.183, 2.6568, 58.5809, 57.9481, 56.8007, 51.1911, 44.5243, 37.806,
9313  32.1175, 27.5585, 24.3955, 21.7533, 19.3667, 17.0463, 13.9365, 11.8102, 10.2398, 9.1678,
9314  8.26393, 7.18307, 6.13392, 5.533, 4.8865, 4.11951, 3.87238, 3.48248},
9315  {-1, 9.64577, 56.9057, 81.944, 82.4872, 78.3198, 68.8015, 60.7978, 52.6542, 44.3584,
9316  37.3611, 31.2648, 27.235, 24.5, 22.04, 18.5, 15.75, 12.9557, 11.2655, 10.2491,
9317  9.21672, 8.30474, 6.64511, 6.13513, 5.34219, 4.95, 4.23425, 3.6963},
9318  {97.5, 87.4578, 120.684, 105.38, 98.3177, 87.4048, 75.9, 65.9142, 56.1879, 47.6314,
9319  39.6183, 33.2005, 28.7316, 25.4495, 22.9327, 19.4612, 15.7254, 13.8618, 11.9249, 10.0859,
9320  9.444, 8.11458, 6.95662, 6.25641, 5.44159, 5.19583, 4.35396, 3.83333},
9321  {693.205, 454.942, 655.428, 360.329, 323.261, 275.945, 234.843, 196.055, 167.247, 139.873,
9322  113.932, 95.6506, 82.789, 72.2128, 64.9871, 53.997, 43.4461, 39.0238, 33.6322, 28.8622,
9323  25.6006, 21.9322, 18.5028, 16.0912, 14.2918, 12.4941, 10.5138, 9.05925},
9324  {9146.66, 471.958, 387.082, 340.914, 286.893, 262.777, 224.112, 184.982, 155.447, 133.684,
9325  107.642, 91.5521, 78.135, 69.0562, 61.4634, 52.4394, 42.1881, 36.5169, 30.0318, 27.9321,
9326  24.4145, 21.0881, 17.9552, 14.6189, 13.2301, 12.9111, 10.8691, 8.35492},
9327  {540.281, 410.901, 354.276, 301.779, 253.803, 238.881, 199.465, 167.136, 145.674, 119.585,
9328  97.0842, 82.3805, 70.6386, 62.154, 55.8136, 46.3101, 37.2817, 33.507, 28.8241, 25.774,
9329  22.4889, 19.8697, 16.1007, 13.3432, 12.4647, 11.9955, 9.6895, 8.46321},
9330  {419.005, 377.428, 314.861, 270.658, 240.487, 213.074, 182.994, 151.52, 129.287, 108.487,
9331  87.9791, 74.8889, 64.8147, 56.7597, 50.5058, 42.6958, 35.6277, 29.9064, 26.1033, 22.5358,
9332  20.6119, 17.9656, 15.3201, 13.1018, 11.7756, 10.129, 8.86099, 7.58348},
9333  {2783.23, 334.238, 275.818, 240.947, 205.026, 186.945, 163.992, 138.569, 117.64, 100.381,
9334  81.1057, 68.0913, 58.8849, 52.6374, 45.2179, 38.059, 32.6702, 26.3298, 23.0484, 18.3201,
9335  18.1814, 16.0936, 12.7571, 12.2673, 9.95479, 8.37502, 7.42398, 6.72237},
9336  {-1, -1, -1, -1, -1, 143.654, -1, -1, -1, -1, -1, -1, -1, -1,
9337  -1, -1, -1, -1, -1, -1, -1, -1, -1, 9.23717, 9.05559, -1, -1, 338.089},
9338  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9339  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
9340  {{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9341  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9342  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9343  {-1, -1, -293.3, -150.312, -41.3547, -4.93182, 20.0224, 31.2313, 31.0566, 33.3205,
9344  30.2863, 27.2634, 24.2872, 22.0512, 19.596, 17.3902, 14.2112, 12.6609, 11.407, 10.2093,
9345  8.85659, 7.85742, 6.4135, 6.23362, 5.41945, 4.95306, 4.41755, 3.82303},
9346  {-1, -143.627, -143.826, -62.3445, 23.7381, 51.7379, 55.9747, 54.5144, 47.9348, 42.2055,
9347  37.0868, 31.9699, 28.8453, 26.0344, 23.1051, 20.5071, 17.1946, 14.1772, 12.4708, 11.3144,
9348  9.88063, 8.86923, 7.67165, 6.4322, 5.96624, 5.18282, 4.81762, 4.28301},
9349  {-1, -13.3855, 5.16716, 64.1898, 72.3294, 76.3905, 73.7962, 67.3364, 59.9099, 51.4343,
9350  43.5279, 37.1873, 31.7994, 29.0358, 26.5368, 22.0615, 19.1543, 15.4385, 14.2599, 12.3375,
9351  10.9493, 9.73496, 8.26995, 7.45197, 6.60214, 6.08206, 5.15337, 4.66445},
9352  {-42.7682, 47.3889, 103.482, 107.735, 107.75, 94.9291, 87.763, 75.9543, 65.4694, 56.7377,
9353  47.3143, 39.9327, 34.7819, 31.2361, 27.8932, 24.1076, 19.6767, 17.1081, 15.427, 12.8984,
9354  11.4228, 10.0318, 8.49021, 7.90816, 6.72917, 6.39571, 5.45637, 4.61281},
9355  {541.234, 465.806, 429.209, 372.183, 331.067, 285.903, 258.37, 216.269, 181.991, 154.204,
9356  125.987, 107.564, 91.8176, 81.5452, 73.1247, 59.1412, 51, 43.3898, 37.9118, 33.2887,
9357  28.8381, 25.3079, 21.6463, 17.6858, 16.9908, 14.841, 11.8149, 10.9434},
9358  {255.594, 371.519, 358.173, 343.459, 285.798, 262.664, 238.913, 194.777, 163.618, 142.465,
9359  116.934, 98.3012, 84.7328, 73.9315, 66.1496, 57.1145, 45.7455, 39.2169, 33.571, 28.7347,
9360  27.0902, 22.7753, 19.8191, 16.4045, 15.2075, 14.0935, 12.3427, 9.36143},
9361  {275.796, 423.747, 347.249, 303.803, 270.357, 254.279, 217.372, 182.151, 161.833, 132.635,
9362  108.221, 91.6597, 79.5534, 69.683, 62.6926, 52.9109, 42.95, 36.9714, 31.6704, 28.9253,
9363  25.7569, 22.4706, 18.5914, 16.0164, 14.43, 14.6449, 11.4458, 9.78841},
9364  {378.542, 349.351, 319.333, 285.503, 261.452, 233.428, 201.215, 165.997, 145.442, 121.289,
9365  98.8432, 84.1681, 72.9111, 64.2952, 58.4893, 48.2012, 41.2393, 34.1303, 29.9633, 26.1572,
9366  23.1371, 20.5019, 17.2906, 15.0458, 14.0115, 11.7586, 10.045, 9.31029},
9367  {557.927, 338.049, 301.204, 265.456, 232.807, 212.31, 185.76, 158.503, 132.332, 113.382,
9368  91.8123, 76.8816, 67.1968, 60.2717, 52.0559, 44.363, 36.5282, 29.777, 25.6156, 22.1842,
9369  20.2098, 18.3932, 15.1911, 14.1691, 12.6889, 10.8789, 10.4976, 7.84804},
9370  {-1, -1, -1, -1, -1, 2154.03, -1, -1, -1, -1, -1, -1, -1, -1,
9371  -1, -1, -1, -1, -1, -1, -1, -1, -1, 12.2722, 8.95391, -1, -1, 337.608},
9372  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9373  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}},
9374  {{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9375  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9376  {-1, -1, -251.167, -157.188, -100.839, -70.7716, -31.9278, -14.7414, -6.46332, -1.43471,
9377  1.10161, 1.95823, 2.6771, 2.52718, 2.67548, 2.75908, 2.87331, 2.61814, 1.92056, 2.16773,
9378  1.70225, 1.70877, 1.55219, 1.43065, 1.53014, 1.69851, 1.40267, 1.46639},
9379  {-1, -1, -243.237, -145.933, -87.2068, -48.5578, -21.9141, -7.68402, -2.83933, 1.21596,
9380  2.94545, 4.083, 3.97067, 4.12142, 3.78849, 3.83645, 3.07738, 2.90695, 2.53516, 2.51623,
9381  2.31173, 2.2246, 1.85357, 1.78656, 1.65385, 1.57375, 1.40617, 1.35693},
9382  {-1, -110, -141.651, -118.596, -52.606, -23.472, -8.09735, 0.683589, 3.57165, 5.25367,
9383  5.8348, 5.67137, 5.26599, 5.1816, 4.84428, 4.6964, 4.06178, 3.27554, 3, 2.92343,
9384  2.56487, 2.47989, 2.32236, 1.83586, 1.84201, 1.97658, 1.64081, 1.56958},
9385  {-1, -106.053, -87.5398, -49.1882, -11.1091, -0.606904, 6.08278, 8.18373, 9.14269, 8.82061,
9386  8.39517, 7.5095, 6.66552, 6.06293, 5.79917, 5.11953, 4.08928, 3.87, 3.71985, 3.4277,
9387  2.925, 2.47762, 2.49134, 2.1793, 2.11341, 1.8709, 1.68674, 1.69234},
9388  {-116.854, -103.914, -48.6067, -7.80512, 4.11674, 8.14952, 11.6643, 11.178, 11.3862, 10.0188,
9389  9.46565, 8.32955, 7.58777, 6.63929, 6.08499, 5.66225, 4.70548, 4.09773, 4.0294, 3.23529,
9390  2.62532, 2.89612, 2.52651, 2.27649, 1.99773, 1.96176, 2.06313, 2.12814},
9391  {-146.18, -59.7282, -12.5, 3.08192, 8.34909, 11.1753, 15.2845, 14.8204, 14.3607, 12.9987,
9392  11.1043, 9.964, 8.90504, 8.31783, 7.36251, 6.6915, 6.24035, 4.98582, 4.03066, 5.83789,
9393  3.10856, 2.96333, 3.06171, 2.23047, 2.32792, 2.18535, 2.38165, 2.42884},
9394  {-233.643, -96.4333, -30.9536, -2.51866, 5.30801, 7.45312, 14.238, 12.5321, 12.7695, 11.741,
9395  10.4656, 8.62541, 7.93922, 7.51216, 6.53463, 5.50929, 4.6268, 4.64697, 4.30481, 3.52426,
9396  3.45212, 3.73824, 4.07812, 2.33724, 2.51972, 2.21704, 3.41317, 2.55682},
9397  {-211.848, -67.9261, -9.6179, 2.65525, 11.0301, 16.4831, 16.0704, 15.4027, 15.1086, 13.5929,
9398  11.7898, 9.90025, 9.13345, 8.25683, 7.21617, 6.25572, 5.43346, 4.54866, 3.83221, 3.4237,
9399  3.65898, 3.65808, 3.18498, 2.75829, 2.37531, 2.88444, 1.95099, 1.89066},
9400  {-143.833, -12.2832, 7.8963, 16.4622, 19.9538, 17.4053, 18.3962, 16.7577, 15.9486, 14.1232,
9401  11.1662, 10.5826, 9.11908, 8.38156, 7.65503, 6.84281, 5.95331, 4.69263, 4.88752, 3.84843,
9402  3.79038, 3.24503, 2.73708, 2.6645, 2.5017, 2.13435, 1.87916, 2.1749},
9403  {-37.4431, 11.3047, 18.5, 23.1562, 22.8984, 22.1124, 20.1964, 19.4342, 17.2078, 15.1252,
9404  12.2962, 10.5784, 9.23938, 8.73254, 7.106, 6.7301, 5.53248, 4.62478, 3.82739, 3.07251,
9405  2.79682, 2.8214, 2.92242, 2.47091, 2.63102, 1.94484, 2.30322, 2.64068},
9406  {4.24623, 23.1041, 27.5407, 28, 23.0684, 24.1685, 21.3723, 19.4634, 16.9631, 14.3876,
9407  12.3701, 10.1272, 9.12229, 7.9875, 7.06019, 5.96169, 5.53393, 4.32105, 3.66794, 3.70074,
9408  3.20382, 3.47729, 3.06609, 2.26191, 2.48768, 2.01323, 2.73772, 2.66561},
9409  {33.3344, 32.716, 30.0851, 30.6933, 29.2431, 25.6295, 21.674, 19.3741, 17.7184, 14.8413,
9410  12.1543, 10.4758, 9.33113, 7.79187, 7.39106, 5.8376, 6.08377, 4.85748, 4.16908, 3.88557,
9411  3.14086, 3.11306, 2.98297, 3.33859, 2.04182, 2.32861, 2.75164, 2.29621},
9412  {46.1357, 38.8426, 36.6976, 32.0038, 29.6956, 23.4889, 22.725, 19.779, 17.5173, 14.7043,
9413  11.9171, 10.7871, 9.06671, 8.23658, 7.41977, 6.46988, 4.93792, 4.55465, 4.20588, 3.82236,
9414  3.62993, 2.83949, 2.95902, 1.99063, 2.37545, 2.28563, 2.49407, 2.52411}},
9415  {{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9416  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9417  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9418  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9419  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9420  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9421  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9422  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9423  {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
9424  {-417.629, -218.804, -63.1122, -34.5828, -10.68, 2.75084, 8.65719, 11.6155, 13.6253, 12.1802,
9425  12.5535, 10.8028, 9.48349, 9.38468, 7.83699, 6.99092, 5.30562, 4.20316, 4.41177, 4.52123,
9426  3.31882, 3.91104, 3.77374, 4.04567, 2.35974, 2.35145, 2.96747, 1.98381},
9427  {-311.688, -93.8205, -32.57, -6.85071, 6.45113, 7.97528, 13.5012, 15.2368, 16.5485, 14.4764,
9428  12.181, 11.4092, 10.3418, 9.29414, 9.04287, 7.72862, 7.46558, 5.20657, 5.19399, 5.61358,
9429  3.9523, 3.20885, 3.29034, 2.82267, 2.91734, 2.38053, 2.44655, 2.36229},
9430  {-161.948, -37.0248, -4.60393, 8.56983, 13.4828, 19.0043, 18.3378, 20.0726, 18.3394, 16.8149,
9431  14.4702, 12.2298, 10.8159, 10.422, 8.29546, 7.70715, 6.26524, 5.70706, 5.26374, 4.44881,
9432  4.80797, 3.24519, 3.09801, 2.73461, 3.34774, 2.88844, 2.34626, 2.76387},
9433  {-72.1648, -12.5057, 16.9112, 23.5819, 20.6731, 21.814, 22.9407, 19.6563, 19.1021, 16.9339,
9434  15.2842, 12.4743, 11.0013, 10.0748, 8.91402, 7.27224, 6.15542, 5.23092, 4.49629, 4.25791,
9435  3.79059, 3.70681, 3.31756, 2.62265, 3.45895, 2.19926, 2.15639, 2.7466},
9436  {2.3118, 20.9883, 24.9015, 32.366, 32.2839, 29.3505, 24.8013, 23.3821, 21.1815, 18.3139,
9437  15.0436, 13.3637, 11.4887, 9.84427, 9.51972, 8.22026, 6.8517, 5.85862, 4.95269, 4.5885,
9438  3.45462, 4.03355, 3.70984, 4.04694, 2.46266, 2.50179, 3.23813, 2.46999},
9439  {30.7084, 40.046, 40.956, 39.7092, 36.4134, 28.415, 28.5543, 24.9346, 23.1865, 19.4968,
9440  15.3536, 14.0231, 12.0163, 10.7639, 9.82125, 8.36598, 6.4058, 5.88361, 5.13249, 4.51457,
9441  4.9171, 3.87165, 3.58904, 2.85879, 2.53645, 2.81466, 2.72057, 3.18122}}};
9442 
9443 const float CSCTFPtMethods::sigmafr0[4][15][28] = {
9444  {{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9445  {1, 1, 68.1251, 119.334, 71.9663, 47.2033, 34.4095, 24.1757, 16.9244, 14.21,
9446  10.0848, 8.28308, 7.49682, 7.5252, 5.7771, 5.67435, 5.05335, 4.03134, 3.38787, 3.49897,
9447  3.27399, 4.38102, 3.45241, 3.57641, 2.74292, 2.58754, 2.82597, 3.02336},
9448  {1, 1, 11.2171, 180.376, 95.0863, 45.7334, 36.6456, 24.597, 16.4907, 15.2826,
9449  12.8201, 10.0379, 9.45291, 8.26339, 6.8289, 6.16693, 4.85849, 12.1669, 4.04481, 3.76596,
9450  3.33028, 3.0602, 2.82333, 6.10153, 3.8862, 4.83151, 2.99154, 2.87868},
9451  {1, 1, 214.489, 145.179, 39.8377, 32.3612, 24.983, 17.3205, 14.5435, 11.4038,
9452  8.99103, 7.65653, 7.03634, 6.16057, 5.35274, 6.44559, 4.63289, 3.48617, 3.32857, 3.25099,
9453  3.28055, 3.0714, 2.58432, 2.61066, 2.99103, 2.85844, 3.29465, 3.06768},
9454  {1, 2.17804, 246.204, 73.5985, 34.3397, 27.9956, 21.2206, 15.6835, 13.173, 11.1528,
9455  9.00959, 7.51184, 6.55643, 5.56576, 5.47, 5.43772, 4.62926, 3.37312, 3.33237, 3.59496,
9456  2.67392, 2.79043, 3.0637, 2.60009, 3.12616, 3.22084, 3.22784, 3.62183},
9457  {1, 178.428, 54.0668, 50.639, 30.0806, 26.6723, 18.1088, 16.2946, 12.3097, 11.9197,
9458  9.76022, 7.47657, 6.44478, 6.32831, 5.64725, 4.21032, 3.63872, 4.3096, 3.11977, 3.49313,
9459  2.69508, 3.80622, 2.76555, 2.70835, 3.1522, 2.74832, 2.77429, 2.80946},
9460  {33.7724, 127.162, 36.813, 83.7352, 41.0058, 28.8809, 20.1964, 14.9477, 14.2195, 11.9145,
9461  11.2838, 7.30775, 8.05355, 7.12897, 7.13998, 4.44287, 3.82913, 15.6533, 3.1924, 3.68782,
9462  2.97145, 3.00122, 2.60565, 2.86444, 2.25535, 2.47471, 2.46453, 2.92709},
9463  {63.4126, 78.9729, 63.6832, 49.5751, 46.9535, 42.779, 36.3592, 31.1099, 23.5997, 21.204,
9464  16.8426, 16.7998, 13.9811, 12.5411, 10.5253, 13.362, 8.63362, 6.77557, 6.6511, 14.3978,
9465  8.47154, 10.8782, 7.15581, 5.88536, 8.01652, 12.0409, 6.80079, 9.92202},
9466  {323.587, 130.398, 76.2136, 54.71, 44.2662, 43.958, 40.2353, 30.8886, 26.9603, 24.2783,
9467  17.5786, 15.1457, 15.3706, 13.0387, 11.2397, 11.2636, 7.87718, 10.9021, 7.53715, 8.17749,
9468  6.93261, 17.4198, 4.87206, 5.71908, 6.3438, 9.25595, 11.7572, 6.81276},
9469  {125.501, 86.1114, 78.0846, 56.6407, 42.2517, 43.9773, 35.4223, 31.0062, 26.3755, 22.5857,
9470  20.9842, 17.2539, 14.0029, 12.3455, 11.3132, 13.3154, 8.60381, 8.35366, 6.2164, 6.76689,
9471  6.09496, 5.59811, 8.17196, 13.4268, 6.02764, 5.67951, 6.71677, 8.7109},
9472  {95.8611, 75.3004, 65.2466, 53.2109, 47.9975, 40.0404, 31.958, 30.4257, 27.7305, 25.0529,
9473  17.6693, 15.6535, 14.5663, 11.3021, 11.7363, 9.1677, 11.1228, 7.84579, 6.95689, 7.39175,
9474  8.02251, 6.36251, 6.64162, 7.60716, 5.71819, 8.15284, 6.63158, 6.81248},
9475  {274.776, 85.1791, 62.5779, 52.2624, 45.0418, 38.0133, 33.6947, 28.865, 27.5922, 23.043,
9476  19.7818, 17.272, 15.9374, 13.4469, 11.8057, 11.5461, 10.9067, 11.0404, 8.0732, 10.2156,
9477  10.7966, 8.75473, 8.18003, 20.2431, 14.1253, 10.6056, 14.0389, 18.7348},
9478  {81.1599, 81.4479, 69.629, 57.8942, 56.9895, 32.849, 30.7188, 31.1175, 24.4425, 21.2399,
9479  15.3807, 20.083, 15.6961, 11.7551, 15.4998, 10.336, 95.0491, 69.3807, 9.18389, 8.17367,
9480  17.986, 10.1523, 12.8713, 12.5117, 13.3384, 6.82039, 12.7359, 26.3342},
9481  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9482  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}},
9483  {{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9484  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9485  {1, 1, 1, 0.213802, 110.043, 85.1732, 83.1862, 87.3043, 33.7737, 23.0747,
9486  63.8276, 15.2175, 27.868, 12.6669, 17.1469, 50.731, 9.70449, 64.2886, 5.70197, 81.6955,
9487  9.51219, 7.0649, 8.84973, 5.99795, 83.4597, 4.3645, 5.86517, 5.28726},
9488  {1, 1, 89.5159, 113.68, 91.6962, 77.6377, 52.0035, 33.9964, 28.4368, 21.664,
9489  16.7158, 14.0169, 11.7753, 10.7078, 10.2129, 8.69455, 6.96017, 5.68121, 5.38927, 4.89401,
9490  4.95697, 4.9322, 3.65117, 3.25201, 3.55802, 4.72346, 3.40616, 3.19724},
9491  {1, 3.65071, 167.809, 118.577, 79.2131, 62.7322, 46.6568, 31.0416, 24.7606, 20.1139,
9492  16.3567, 13.9311, 12.4083, 10.2061, 9.70802, 8.58308, 7.39169, 5.60975, 6.81223, 4.72617,
9493  4.29868, 4.44951, 4.15795, 3.71309, 3.85244, 3.71955, 3.6068, 4.61138},
9494  {1, 143.017, 114.974, 80.9475, 65.7978, 58.7383, 33.663, 40.7059, 22.9966, 20.6734,
9495  16.5455, 13.8755, 12.3398, 12.2325, 10.2504, 7.705, 7.19971, 9.05019, 6.72006, 5.09801,
9496  5.65375, 4.89251, 3.85383, 5.25096, 3.76551, 3.68784, 3.63877, 3.53497},
9497  {70.5084, 123.26, 74.5829, 51.9644, 47.7945, 42.5259, 34.1665, 27.4405, 24.5782, 19.7956,
9498  16.2276, 12.4019, 11.9461, 10.1038, 9.26924, 8.81221, 6.45554, 6.13044, 6.01564, 5.92054,
9499  5.00283, 3.79784, 4.43493, 3.38759, 3.06995, 3.1821, 3.37826, 3.39659},
9500  {1217.05, 201.975, 85.5261, 68.5927, 66.6012, 60.9998, 53.6427, 48.6075, 31.7341, 27.728,
9501  24.6024, 22.4018, 15.7743, 17.3198, 13.7922, 11.3731, 10.1716, 9.0544, 8.50262, 14.2347,
9502  6.81764, 8.60334, 9.55753, 7.02884, 6.94412, 5.80156, 7.08978, 8.2179},
9503  {236.657, 244.966, 112.373, 78.8199, 67.8974, 66.5142, 55.7426, 43.4698, 42.7562, 31.9949,
9504  26.366, 19.1138, 19.3944, 20.4525, 14.6857, 12.3677, 10.7261, 12.6794, 8.76137, 12.16,
9505  6.75415, 10.3045, 7.91157, 7.42901, 6.80211, 6.86062, 12.349, 10.4941},
9506  {256.896, 159.681, 100.055, 84.1373, 62.7979, 61.6566, 48.3574, 40.4226, 36.0741, 31.4883,
9507  25.5559, 23.7784, 17.1684, 15.61, 16.1722, 15.1145, 10.1943, 10.9007, 10.3402, 7.54424,
9508  7.313, 7.46722, 7.17864, 7.46414, 6.75702, 5.89486, 6.40948, 8.48163},
9509  {257.504, 109.282, 103.033, 75.7751, 76.7721, 58.9241, 48.3108, 41.4407, 39.4679, 33.6439,
9510  24.8537, 21.3699, 18.0898, 16.9161, 15.6342, 14.1586, 12.3244, 9.18785, 10.0318, 9.4986,
9511  8.91357, 11.6174, 18.6761, 9.52487, 6.88319, 13.6627, 9.81258, 14.6774},
9512  {169.185, 113.197, 93.9858, 75.5571, 65.2782, 52.2785, 48.0109, 40.0461, 36.6626, 30.353,
9513  25.1063, 20.7361, 18.792, 16.958, 14.6701, 13.3799, 13.4912, 9.98326, 9.89502, 12.4285,
9514  10.494, 11.2434, 8.54232, 16.3106, 14.0824, 8.59128, 9.7086, 12.0069},
9515  {101.76, 119.944, 74.5477, 78.6374, 68.0419, 54.84, 40.7916, 44.7959, 40.9335, 33.4932,
9516  22.5979, 24.5248, 18.5872, 15.2081, 15.6492, 10.4524, 103.653, 66.9111, 17.5435, 8.81236,
9517  15.4697, 9.49944, 13.4211, 9.33341, 11.9129, 8.46251, 14.9693, 10.4711},
9518  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9519  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}},
9520  {{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9521  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9522  {1, 1, 0.0011042, 86.9352, 75.2624, 52.2464, 32.6091, 20.4476, 13.4983, 11.2587,
9523  8.80378, 7.11921, 7.0583, 5.68815, 6.20848, 4.34774, 5.45062, 5.4936, 3.43077, 3.33174,
9524  3.04659, 3.8793, 3.11545, 2.97137, 3.92529, 4.57437, 3.88033, 3.82278},
9525  {1, 1, 94.2962, 87.2608, 63.6413, 44.4619, 27.8601, 17.1249, 14.5496, 10.6136,
9526  8.1779, 7.43897, 6.44223, 6.07491, 5.71576, 5.80677, 4.30508, 3.71754, 3.50651, 3.11441,
9527  4.01509, 3.70184, 3.27363, 3.07401, 3.82936, 3.74439, 2.99869, 3.56942},
9528  {1, 0.263982, 119.77, 91.7619, 57.8566, 34.9019, 22.023, 15.941, 12.22, 10.1212,
9529  8.34203, 7.32761, 6.13686, 5.47659, 5.31636, 4.7639, 4.16051, 3.54105, 4.07639, 3.09476,
9530  3.04313, 3.29353, 3.70995, 2.79947, 3.94107, 3.99605, 3.96949, 4.88657},
9531  {1, 113.045, 93.6573, 70.568, 31.0566, 20.7173, 16.8019, 14.8641, 11.9429, 9.96161,
9532  7.87523, 6.7396, 6.18326, 6.16374, 5.35523, 3.95939, 4.04783, 4.28055, 3.89598, 3.4252,
9533  3.42753, 3.48459, 3.23155, 3.19143, 4.02432, 3.06929, 3.42948, 4.04161},
9534  {0.447397, 105.302, 76.6619, 31.9851, 22.4774, 19.276, 17.7676, 14.1965, 10.8272, 10.1416,
9535  7.62459, 6.60822, 7.21393, 6.00029, 5.10027, 4.89418, 4.42892, 3.707, 6.06502, 3.37472,
9536  3.49089, 3.46185, 6.33915, 3.3654, 3.30022, 3.36655, 4.87842, 8.07411},
9537  {152.08, 112.801, 47.3659, 30.5674, 29.0316, 22.3914, 19.0157, 16.3471, 15.5554, 12.4982,
9538  10.4935, 8.23282, 7.40488, 9.06651, 6.97499, 9.66855, 8.35921, 5.45921, 5.68328, 10.6461,
9539  4.65396, 7.5477, 7.11417, 6.02132, 6.79497, 8.21492, 10.5221, 11.7369},
9540  {177.146, 109.73, 53.3379, 32.4922, 30.5016, 25.9712, 22.9064, 19.6453, 17.4685, 14.9279,
9541  10.9822, 10.9065, 9.22264, 9.52341, 9.23665, 6.50148, 6.20737, 8.19635, 7.38019, 9.07186,
9542  9.22787, 11.9975, 15.4328, 12.1685, 11.2679, 11.0456, 16.8556, 15.203},
9543  {175.465, 100.985, 56.7871, 37.5513, 26.3367, 23.6775, 19.3572, 17.3464, 16.3425, 14.2809,
9544  11.4196, 10.1502, 9.45509, 8.55837, 7.929, 7.75422, 6.25516, 6.98075, 7.95726, 5.58602,
9545  8.52811, 8.94976, 8.61675, 7.52203, 5.86654, 9.30841, 7.95983, 9.16498},
9546  {161.557, 60.9083, 42.7418, 32.6681, 28.4483, 23.0831, 20.1852, 16.6503, 14.3982, 12.9469,
9547  10.4914, 10.6759, 9.05724, 8.21126, 8.46837, 9.92698, 7.71569, 6.7965, 8.87549, 6.0765,
9548  7.88892, 7.22201, 8.13346, 8.88474, 11.2008, 10.4921, 8.34342, 10.0337},
9549  {91.718, 50.2739, 37.883, 32.7472, 24.9764, 23.3509, 19.3552, 17.9669, 15.5899, 13.3535,
9550  11.3664, 9.74592, 9.19961, 7.76436, 7.74193, 7.18929, 6.40388, 8.6005, 6.88462, 10.8404,
9551  8.72774, 7.46032, 9.74493, 9.06091, 8.81877, 8.50823, 11.0295, 15.2753},
9552  {72.4631, 47.222, 36.2746, 28.8782, 23.553, 24.7348, 18.7544, 18.437, 15.7064, 12.729,
9553  11.0992, 10.1026, 8.40556, 7.96116, 8.09745, 6.41375, 6.51981, 6.63771, 8.47843, 7.66306,
9554  8.95359, 10.2608, 8.83699, 8.72077, 10.7087, 7.27377, 13.6, 14.2494},
9555  {60.2763, 42.7498, 34.6623, 26.385, 25.4651, 21.7019, 19.0647, 15.8816, 14.2646, 12.5554,
9556  10.8672, 9.43677, 8.44181, 7.59876, 7.81844, 6.11722, 8.516, 8.94197, 6.97098, 7.17371,
9557  6.68615, 7.24368, 6.23672, 11.2857, 8.77067, 8.43604, 11.2313, 10.0775},
9558  {57.866, 41.2832, 33.3179, 27.3557, 23.8832, 20.5696, 17.8125, 15.5961, 14.4456, 12.0961,
9559  9.76464, 9.34033, 7.73885, 7.76005, 7.44823, 7.55132, 7.13281, 5.57387, 6.08408, 6.99443,
9560  6.28186, 6.48654, 6.99549, 5.28173, 7.53539, 6.92374, 8.62903, 12.2492}},
9561  {{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9562  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9563  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9564  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9565  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9566  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9567  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9568  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9569  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9570  {269.647, 190.711, 88.8938, 70.894, 47.3717, 44.6289, 33.3552, 28.7616, 25.0309, 21.272,
9571  17.9555, 14.7229, 14.5419, 11.7788, 13.5958, 10.8726, 7.98782, 10.1873, 8.92189, 9.84992,
9572  7.93519, 10.66, 9.14665, 13.8959, 8.38381, 7.987, 15.2538, 11.2857},
9573  {235.853, 115.945, 85.6699, 62.6811, 48.3218, 46.3742, 32.8133, 27.8045, 23.4159, 20.5056,
9574  16.0387, 15.324, 13.2206, 11.3368, 10.4307, 9.27748, 11.3733, 8.87551, 8.35207, 11.7778,
9575  8.82057, 8.90268, 8.28021, 8.06991, 12.7847, 7.80538, 8.15497, 8.97099},
9576  {181.416, 96.6442, 73.0719, 54.7106, 42.9821, 37.438, 32.203, 27.5413, 22.6414, 19.4503,
9577  17.7779, 14.5369, 13.0979, 13.7771, 10.4079, 9.45385, 13.0227, 8.50182, 7.17865, 10.9919,
9578  15.7864, 8.76431, 8.51823, 5.92961, 9.18247, 10.5971, 9.3721, 15.4988},
9579  {139.491, 86.7362, 64.8339, 51.7932, 40.4078, 39.1071, 30.9617, 26.4873, 25.263, 20.3243,
9580  16.5092, 14.4393, 12.175, 11.956, 10.8174, 9.08607, 7.18855, 10.0054, 11.1779, 7.12204,
9581  9.47445, 6.93119, 8.93181, 8.61144, 11.0501, 6.27241, 9.95825, 14.4856},
9582  {106.141, 75.9413, 58.0517, 48.534, 42.3919, 33.3155, 31.0908, 25.4912, 22.6406, 19.3109,
9583  16.0106, 14.2606, 12.5963, 11.0191, 11.1065, 9.09784, 9.07922, 8.92264, 7.34917, 7.71939,
9584  7.41573, 8.73107, 6.43358, 17.2136, 9.26347, 8.55656, 10.9458, 12.6821},
9585  {100.082, 76.8702, 55.0846, 48.6279, 40.6142, 34.3238, 29.3724, 26.3273, 25.1794, 19.6749,
9586  16.3483, 14.3196, 12.3469, 11.8695, 11.738, 9.54169, 10.3128, 8.97389, 7.22238, 8.43618,
9587  9.03957, 7.8851, 9.20503, 8.0428, 8.81155, 10.3738, 10.7343, 18.0864}}};
9588 
9589 const float CSCTFPtMethods::sigmafr1[4][15][28] = {
9590  {{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9591  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9592  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9593  {1, 1, 146.093, 91.0022, 59.1524, 33.1605, 28.0477, 17.4744, 15.5721, 11.7519,
9594  9.35168, 7.7485, 7.04861, 6.47423, 5.73763, 5.09473, 4.08489, 3.39595, 4.04544, 2.96401,
9595  3.63584, 3.1557, 3.00004, 3.18668, 3.41738, 2.71614, 2.82526, 3.70189},
9596  {1, 218.776, 145.244, 104.935, 64.8144, 29.6568, 23.4613, 19.0926, 14.8407, 10.6044,
9597  9.43501, 7.74741, 6.91137, 6.22613, 5.72544, 5.2123, 4.24476, 3.74203, 3.31965, 3.40162,
9598  3.74122, 2.96814, 3.12356, 2.69131, 3.2702, 3.08497, 3.38834, 2.81568},
9599  {1, 216.291, 89.0598, 61.8382, 26.9505, 21.5635, 19.7094, 17.3911, 12.8349, 12.6624,
9600  9.67599, 7.38235, 6.67213, 6.85975, 5.63519, 4.96333, 5.1828, 3.76683, 3.47407, 3.5603,
9601  4.18003, 2.75393, 3.24872, 2.69483, 3.18626, 3.0917, 2.9064, 3.49336},
9602  {74.8743, 114.685, 34.9506, 32.6917, 21.6367, 20.6803, 22.2436, 14.6578, 12.8293, 10.8414,
9603  8.62706, 7.16602, 6.62353, 6.20931, 5.41574, 4.63619, 4.12341, 3.53772, 5.40106, 3.54274,
9604  3.04711, 2.82168, 2.97043, 2.56215, 2.63581, 2.72855, 3.475, 2.40102},
9605  {171.647, 40.3668, 170.531, 57.8944, 49.7425, 45.0042, 40.4664, 35.8242, 31.2455, 28.1189,
9606  21.2241, 17.9434, 14.4424, 15.5375, 14.4543, 11.4451, 11.2267, 9.18004, 8.39402, 12.0792,
9607  5.76609, 6.72775, 8.85565, 8.75935, 6.70541, 6.8381, 9.55174, 8.56415},
9608  {1303.1, 108.27, 69.3932, 63.777, 57.8401, 52.0202, 42.5951, 33.2084, 28.6304, 27.9733,
9609  20.1268, 18.8158, 17.0162, 13.475, 12.6629, 12.7418, 8.99252, 8.94672, 7.8758, 8.3772,
9610  10.6977, 8.00381, 8.8381, 14.3496, 11.113, 8.4152, 9.00849, 13.7466},
9611  {160.859, 94.3386, 65.0202, 60.3475, 75.2043, 44.8816, 41.5634, 37.5275, 27.7923, 26.4016,
9612  21.5374, 15.8813, 15.8779, 13.9959, 13.7772, 19.727, 11.742, 8.67518, 9.28799, 8.13627,
9613  7.15515, 8.97133, 6.80429, 10.5999, 5.91254, 9.1128, 10.6201, 10.5506},
9614  {107.553, 88.8958, 66.3069, 65.4056, 48.5765, 45.1286, 40.6105, 32.3372, 26.121, 24.6533,
9615  21.1985, 17.5026, 16.0065, 14.2815, 14.0509, 11.6923, 10.0067, 10.5004, 9.65113, 8.2566,
9616  9.49279, 7.25941, 9.84551, 9.10625, 13.5828, 7.42791, 9.7761, 13.2592},
9617  {621.575, 81.157, 78.9902, 50.6043, 51.6995, 55.1314, 40.8115, 35.0876, 26.3547, 27.1407,
9618  22.0774, 18.4421, 15.9584, 16.8535, 14.1161, 12.7641, 15.5263, 11.1729, 9.03555, 12.459,
9619  19.0917, 9.49799, 18.3356, 11.5246, 14.7979, 11.849, 14.7263, 17.7757},
9620  {1, 1, 1, 1, 1, 32.849, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.0542444, 13.3384, 1, 1, 0.248621},
9621  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9622  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}},
9623  {{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9624  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9625  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9626  {1, 1, 0.296438, 118.62, 89.405, 52.2476, 45.2939, 28.7616, 25.5548, 18.0656,
9627  13.6928, 11.9697, 10.3611, 10.2854, 7.90347, 6.39297, 5.44473, 5.61793, 5.27675, 4.76144,
9628  3.86958, 3.78657, 3.56005, 3.94048, 3.79113, 3.08763, 3.15283, 3.15847},
9629  {1, 0.14452, 190.349, 154.279, 86.5965, 82.5413, 34.8556, 31.0941, 21.5582, 16.6576,
9630  14.6587, 11.7976, 10.7251, 8.74257, 8.03431, 6.05178, 6.15984, 5.17494, 4.89723, 4.20602,
9631  4.38072, 3.50678, 3.58872, 3.36111, 4.08605, 3.61866, 3.4662, 3.78235},
9632  {1, 152.929, 136.244, 73.4085, 45.9132, 36.7447, 30.241, 27.8179, 20.674, 19.6962,
9633  14.1128, 12.5882, 9.73802, 10.7205, 7.71969, 7.51919, 7.77108, 5.55116, 5.33028, 4.40788,
9634  4.93005, 3.668, 3.55749, 3.69614, 3.82949, 5.04436, 3.26159, 4.26046},
9635  {140.472, 85.4204, 71.8176, 59.7741, 41.1711, 31.8045, 29.5324, 23.9129, 19.9144, 18.3415,
9636  13.8572, 10.9475, 10.3783, 8.29955, 7.48321, 7.171, 7.00912, 5.36884, 6.52747, 3.98305,
9637  4.04028, 3.61817, 3.21717, 3.59865, 3.14602, 3.12143, 3.07281, 2.69386},
9638  {237.788, 96.2055, 102.507, 72.5626, 75.5721, 55.7517, 51.4652, 44.584, 37.268, 33.9088,
9639  25.8814, 21.9077, 17.3586, 14.6234, 14.7653, 11.7539, 12.3716, 11.6726, 8.48135, 6.99178,
9640  7.1455, 8.09071, 7.52601, 8.58121, 6.96213, 7.95596, 6.81041, 5.66795},
9641  {294.913, 161.347, 102.319, 90.1594, 81.3222, 70.8996, 53.4479, 45.6466, 42.2802, 37.0224,
9642  24.8388, 24.4679, 21.1667, 17.9857, 17.5664, 18.9734, 11.9997, 12.9781, 8.93737, 8.43556,
9643  9.32775, 10.8702, 8.67542, 7.73195, 8.2574, 8.75741, 7.36091, 13.6306},
9644  {180.057, 184.24, 82.2473, 86.6705, 77.8282, 62.6743, 52.5831, 46.0168, 37.4869, 33.5461,
9645  26.8174, 20.3363, 20.252, 18.0727, 15.3164, 12.4784, 11.096, 9.67415, 10.3632, 9.03916,
9646  9.16117, 10.5277, 8.66486, 7.16234, 6.57559, 10.5885, 9.67653, 10.1513},
9647  {251.671, 111.919, 94.9753, 90.3654, 68.4575, 62.0251, 55.3331, 45.2581, 34.2676, 33.7628,
9648  26.9416, 23.3815, 19.7758, 18.5239, 19.3473, 18.9695, 12.0358, 12.3383, 10.8987, 8.83571,
9649  10.1066, 9.69945, 10.316, 9.06576, 11.4875, 9.98941, 9.84754, 11.6985},
9650  {232.68, 109.947, 100.398, 74.9348, 66.4849, 60.1203, 51.4264, 44.3605, 37.0279, 34.0509,
9651  27.488, 23.3947, 20.7529, 19.3877, 17.5345, 14.8416, 13.6832, 16.4535, 10.019, 13.0386,
9652  10.8694, 9.31296, 10.1387, 9.91914, 10.8276, 8.53285, 12.0437, 13.6714},
9653  {1, 1, 1, 1, 1, 54.84, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.0233561, 0.0280901, 1, 1, 0.226361},
9654  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9655  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}},
9656  {{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9657  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9658  {1, 1, 0.0011042, 86.9352, 75.2624, 52.2464, 32.6091, 20.4476, 13.4983, 11.2587,
9659  8.80378, 7.11921, 7.0583, 5.68815, 6.20848, 4.34774, 5.45062, 5.4936, 3.43077, 3.33174,
9660  3.04659, 3.8793, 3.11545, 2.97137, 3.92529, 4.57437, 3.88033, 3.82278},
9661  {1, 1, 94.2962, 87.2608, 63.6413, 44.4619, 27.8601, 17.1249, 14.5496, 10.6136,
9662  8.1779, 7.43897, 6.44223, 6.07491, 5.71576, 5.80677, 4.30508, 3.71754, 3.50651, 3.11441,
9663  4.01509, 3.70184, 3.27363, 3.07401, 3.82936, 3.74439, 2.99869, 3.56942},
9664  {1, 0.263982, 119.77, 91.7619, 57.8566, 34.9019, 22.023, 15.941, 12.22, 10.1212,
9665  8.34203, 7.32761, 6.13686, 5.47659, 5.31636, 4.7639, 4.16051, 3.54105, 4.07639, 3.09476,
9666  3.04313, 3.29353, 3.70995, 2.79947, 3.94107, 3.99605, 3.96949, 4.88657},
9667  {1, 113.045, 93.6573, 70.568, 31.0566, 20.7173, 16.8019, 14.8641, 11.9429, 9.96161,
9668  7.87523, 6.7396, 6.18326, 6.16374, 5.35523, 3.95939, 4.04783, 4.28055, 3.89598, 3.4252,
9669  3.42753, 3.48459, 3.23155, 3.19143, 4.02432, 3.06929, 3.42948, 4.04161},
9670  {0.447397, 105.302, 76.6619, 31.9851, 22.4774, 19.276, 17.7676, 14.1965, 10.8272, 10.1416,
9671  7.62459, 6.60822, 7.21393, 6.00029, 5.10027, 4.89418, 4.42892, 3.707, 6.06502, 3.37472,
9672  3.49089, 3.46185, 6.33915, 3.3654, 3.30022, 3.36655, 4.87842, 8.07411},
9673  {152.08, 112.801, 47.3659, 30.5674, 29.0316, 22.3914, 19.0157, 16.3471, 15.5554, 12.4982,
9674  10.4935, 8.23282, 7.40488, 9.06651, 6.97499, 9.66855, 8.35921, 5.45921, 5.68328, 10.6461,
9675  4.65396, 7.5477, 7.11417, 6.02132, 6.79497, 8.21492, 10.5221, 11.7369},
9676  {177.146, 109.73, 53.3379, 32.4922, 30.5016, 25.9712, 22.9064, 19.6453, 17.4685, 14.9279,
9677  10.9822, 10.9065, 9.22264, 9.52341, 9.23665, 6.50148, 6.20737, 8.19635, 7.38019, 9.07186,
9678  9.22787, 11.9975, 15.4328, 12.1685, 11.2679, 11.0456, 16.8556, 15.203},
9679  {175.465, 100.985, 56.7871, 37.5513, 26.3367, 23.6775, 19.3572, 17.3464, 16.3425, 14.2809,
9680  11.4196, 10.1502, 9.45509, 8.55837, 7.929, 7.75422, 6.25516, 6.98075, 7.95726, 5.58602,
9681  8.52811, 8.94976, 8.61675, 7.52203, 5.86654, 9.30841, 7.95983, 9.16498},
9682  {161.557, 60.9083, 42.7418, 32.6681, 28.4483, 23.0831, 20.1852, 16.6503, 14.3982, 12.9469,
9683  10.4914, 10.6759, 9.05724, 8.21126, 8.46837, 9.92698, 7.71569, 6.7965, 8.87549, 6.0765,
9684  7.88892, 7.22201, 8.13346, 8.88474, 11.2008, 10.4921, 8.34342, 10.0337},
9685  {91.718, 50.2739, 37.883, 32.7472, 24.9764, 23.3509, 19.3552, 17.9669, 15.5899, 13.3535,
9686  11.3664, 9.74592, 9.19961, 7.76436, 7.74193, 7.18929, 6.40388, 8.6005, 6.88462, 10.8404,
9687  8.72774, 7.46032, 9.74493, 9.06091, 8.81877, 8.50823, 11.0295, 15.2753},
9688  {72.4631, 47.222, 36.2746, 28.8782, 23.553, 24.7348, 18.7544, 18.437, 15.7064, 12.729,
9689  11.0992, 10.1026, 8.40556, 7.96116, 8.09745, 6.41375, 6.51981, 6.63771, 8.47843, 7.66306,
9690  8.95359, 10.2608, 8.83699, 8.72077, 10.7087, 7.27377, 13.6, 14.2494},
9691  {60.2763, 42.7498, 34.6623, 26.385, 25.4651, 21.7019, 19.0647, 15.8816, 14.2646, 12.5554,
9692  10.8672, 9.43677, 8.44181, 7.59876, 7.81844, 6.11722, 8.516, 8.94197, 6.97098, 7.17371,
9693  6.68615, 7.24368, 6.23672, 11.2857, 8.77067, 8.43604, 11.2313, 10.0775},
9694  {57.866, 41.2832, 33.3179, 27.3557, 23.8832, 20.5696, 17.8125, 15.5961, 14.4456, 12.0961,
9695  9.76464, 9.34033, 7.73885, 7.76005, 7.44823, 7.55132, 7.13281, 5.57387, 6.08408, 6.99443,
9696  6.28186, 6.48654, 6.99549, 5.28173, 7.53539, 6.92374, 8.62903, 12.2492}},
9697  {{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9698  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9699  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9700  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9701  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9702  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9703  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9704  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9705  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
9706  {269.647, 190.711, 88.8938, 70.894, 47.3717, 44.6289, 33.3552, 28.7616, 25.0309, 21.272,
9707  17.9555, 14.7229, 14.5419, 11.7788, 13.5958, 10.8726, 7.98782, 10.1873, 8.92189, 9.84992,
9708  7.93519, 10.66, 9.14665, 13.8959, 8.38381, 7.987, 15.2538, 11.2857},
9709  {235.853, 115.945, 85.6699, 62.6811, 48.3218, 46.3742, 32.8133, 27.8045, 23.4159, 20.5056,
9710  16.0387, 15.324, 13.2206, 11.3368, 10.4307, 9.27748, 11.3733, 8.87551, 8.35207, 11.7778,
9711  8.82057, 8.90268, 8.28021, 8.06991, 12.7847, 7.80538, 8.15497, 8.97099},
9712  {181.416, 96.6442, 73.0719, 54.7106, 42.9821, 37.438, 32.203, 27.5413, 22.6414, 19.4503,
9713  17.7779, 14.5369, 13.0979, 13.7771, 10.4079, 9.45385, 13.0227, 8.50182, 7.17865, 10.9919,
9714  15.7864, 8.76431, 8.51823, 5.92961, 9.18247, 10.5971, 9.3721, 15.4988},
9715  {139.491, 86.7362, 64.8339, 51.7932, 40.4078, 39.1071, 30.9617, 26.4873, 25.263, 20.3243,
9716  16.5092, 14.4393, 12.175, 11.956, 10.8174, 9.08607, 7.18855, 10.0054, 11.1779, 7.12204,
9717  9.47445, 6.93119, 8.93181, 8.61144, 11.0501, 6.27241, 9.95825, 14.4856},
9718  {106.141, 75.9413, 58.0517, 48.534, 42.3919, 33.3155, 31.0908, 25.4912, 22.6406, 19.3109,
9719  16.0106, 14.2606, 12.5963, 11.0191, 11.1065, 9.09784, 9.07922, 8.92264, 7.34917, 7.71939,
9720  7.41573, 8.73107, 6.43358, 17.2136, 9.26347, 8.55656, 10.9458, 12.6821},
9721  {100.082, 76.8702, 55.0846, 48.6279, 40.6142, 34.3238, 29.3724, 26.3273, 25.1794, 19.6749,
9722  16.3483, 14.3196, 12.3469, 11.8695, 11.738, 9.54169, 10.3128, 8.97389, 7.22238, 8.43618,
9723  9.03957, 7.8851, 9.20503, 8.0428, 8.81155, 10.3738, 10.7343, 18.0864}}};
9724 
9725 float CSCTFPtMethods::Pt2StnChiSq(int type, float eta, int dphi, int fr) const {
9726  float diff, min, ptmin, ptmax;
9727  float mypt = 0.0;
9728 
9729  int dphicopy = dphi;
9730 
9731  if (type < 0 || type > 3) {
9732  // std::cout << "CSCTFPtMethods: illegal track type for Chi-square method" << std::endl;
9733  edm::LogError("CSCTFPtMethods::Pt2StnChiSq()") << "Illegal track type for Chi-square method";
9734  return 0.;
9735  }
9736 
9737  // flip sign
9738  //dphi = -dphi;
9739 
9740  // force positive
9741  eta = fabs(eta);
9742 
9743  //determine which eta bin muon falls into
9744  int i = 0;
9745  for (i = 0; i < 15; i++) {
9746  if (eta >= etabins[i] && eta < etabins[i + 1])
9747  break;
9748  }
9749  if (i == 15) {
9750  // std::cout<<" CSCTFPtMethods: muon not within any eta range"<< std::endl;
9751  edm::LogWarning("CSCTFPtMethods::Pt2StnChiSq()") << "Muon not within any eta range";
9752  if (eta < etabins[0]) {
9753  eta = etabins[0];
9754  i = 0;
9755  } else if (eta >= etabins[15]) {
9756  eta = etabins[15];
9757  i = 15;
9758  } else
9759  exit(0);
9760  }
9761 
9762  bool bCallOldMethod = false;
9763 
9764  if (fr == 0) {
9765  //advance past bins in array w/ default values
9766  //default is: dphifr0[x][y][z] = -1, sigmafr0[x][y][z] = 1
9767  int j = 0; //start from 1st column, j=0
9768  while (dphifr0[type][i][j] == -1 && sigmafr0[type][i][j] == 1 && j != 28)
9769  j++;
9770  if (j == 28) {
9771  // std::cout <<" CSCTFPtMethods: every entry in row is default"<< std::endl;
9772  edm::LogInfo("CSCTFPtMethods::Pt2StnChiSq()") << "Every entry in row is default";
9773  // exit(0); //normal termination
9774  bCallOldMethod = true;
9775  }
9776 
9777  if (!bCallOldMethod) {
9778  //set min, ptmin, ptmax to first bin
9779  //in row that is not default
9780  min = fabs(dphi - dphifr0[type][i][j]) / sigmafr0[type][i][j];
9781  ptmin = ptbins[j];
9782  ptmax = ptbins[j + 1];
9783 
9784  //loop through all pt bins. assign pt of bin w/ least diff
9785  //do not include default bins in calculation
9786  for (int k = j; k < 28; k++) {
9787  if (dphifr0[type][i][k] != -1 || sigmafr0[type][i][k] != 1) {
9788  diff = fabs(dphi - dphifr0[type][i][k]) / sigmafr0[type][i][k];
9789  if (diff < min) {
9790  min = diff;
9791  ptmin = ptbins[k];
9792  ptmax = ptbins[k + 1];
9793  }
9794  }
9795  }
9796  mypt = (ptmin + ptmax) / 2;
9797  }
9798  }
9799 
9800  if (fr == 1) {
9801  //advance past bins in array w/ default values
9802  //default is: dphifr1[x][y][z] = -1, sigmafr1[x][y][z] = 1
9803  int j = 0; //start from 1st column, j=0
9804 
9805  while (dphifr1[type][i][j] == -1 && sigmafr1[type][i][j] == 1 && j != 28)
9806  j++;
9807 
9808  if (j == 28) {
9809  // std::cout <<" CSCTFPtMethods: every entry in row is default"<< std::endl;
9810  edm::LogInfo("CSCTFPtMethods::Pt2StnChiSq()") << "Every entry in row is default";
9811  // exit(0); //normal termination
9812  bCallOldMethod = true;
9813  }
9814 
9815  if (!bCallOldMethod) {
9816  //set min, ptmin, ptmax to first bin
9817  //in row that is not default
9818  min = fabs(dphi - dphifr1[type][i][j]) / sigmafr1[type][i][j];
9819  ptmin = ptbins[j];
9820  ptmax = ptbins[j + 1];
9821 
9822  //loop through all pt bins. assign pt of bin w/ least diff
9823  //do not include default bins in calculation
9824  for (int k = j; k < 28; k++) {
9825  if (dphifr1[type][i][k] != -1 || sigmafr1[type][i][k] != 1) {
9826  diff = fabs(dphi - dphifr1[type][i][k]) / sigmafr1[type][i][k];
9827  if (diff < min) {
9828  min = diff;
9829  ptmin = ptbins[k];
9830  ptmax = ptbins[k + 1];
9831  }
9832  }
9833  }
9834  mypt = (ptmin + ptmax) / 2;
9835  }
9836  }
9837 
9838  // hybrid approach:
9839  if (bCallOldMethod) {
9840  float dphiR = static_cast<float>(dphicopy) / static_cast<float>(1 << 12) * CSCTFConstants::SECTOR_RAD;
9841  // must change type definition, just add one
9842  mypt = Pt2Stn(type + 1, eta, dphiR, fr);
9843  }
9844 
9845  return mypt;
9846 }
9847 
9848 float CSCTFPtMethods::Pt3StnChiSq(int type, float eta, int dphi1, int dphi2, int fr) const {
9849  float diff, min, ptmin, ptmax;
9850  float mypt = 0.0;
9851 
9852  int dphi1copy = dphi1, dphi2copy = dphi2;
9853 
9854  if (type < 4 || type > 5) {
9855  // std::cout << "PtParams: illegal track type for Chi-square method" << std::endl;
9856  edm::LogError("CSCTFPtMethods::Pt3StnChiSq()") << "Illegal track type for Chi-square method";
9857  return 0.;
9858  }
9859 
9860  // flip sign
9861  //dphi1 = -dphi1;
9862  //dphi2 = -dphi2;
9863 
9864  //determine which eta bin muon falls into
9865  int i = 0;
9866  for (i = 0; i < 15; i++) {
9867  if (eta >= etabins[i] && eta < etabins[i + 1])
9868  break;
9869  }
9870  if (i == 15) {
9871  //std::cout<<"muon not within any eta range";
9872  edm::LogWarning("CSCTFPtMethods::Pt3StnChiSq()") << "Muon not within any eta range";
9873  if (eta < etabins[0]) {
9874  eta = etabins[0];
9875  i = 0;
9876  } else if (eta >= etabins[15]) {
9877  eta = etabins[15];
9878  i = 15;
9879  } else
9880  exit(0);
9881  }
9882 
9883  bool bCallOldMethod = false;
9884 
9885  if (abs(dphi2) < 32)
9886  dphi2 = 0; //dphi2=dphi23 or dphi24
9887 
9888  //sta1-2-3, dphi1=dphi12, dphi2=dphi23
9889  if (type == 4) {
9890  if (fr == 0) {
9891  //advance past bins in array w/ default values
9892  //default is: dphifr0[x][y][z] = -1, sigmafr0[x][y][z] = 1
9893  int j = 0; //start from 1st column, j = 0
9894  while (
9895  ((dphifr0[0][i][j] == -1 && sigmafr0[0][i][j] == 1) || (dphifr0[2][i][j] == -1 && sigmafr0[2][i][j] == 1)) &&
9896  j != 28)
9897  j++;
9898  if (j == 28) {
9899  // std::cout<<" L1MuCSCPtParams: every entry in row is default"<<std::endl;
9900  edm::LogInfo("CSCTFPtMethods::Pt3StnChiSq()") << "Every entry in row is default";
9901  // exit(0); //normal termination
9902  bCallOldMethod = true;
9903  }
9904 
9905  if (!bCallOldMethod) {
9906  //set min, ptmin, ptmax to first bin
9907  //in row that is not default
9908  min = 1.5625 * ((pow((dphi1 - dphifr0[0][i][j]), 2) / pow(sigmafr0[0][i][j], 2)) +
9909  (pow((dphi2 - dphifr0[2][i][j]), 2) / pow(sigmafr0[2][i][j], 2)) -
9910  (1.2 * (dphi1 - dphifr0[0][i][j]) * (dphi2 - dphifr0[2][i][j]) /
9911  (sigmafr0[0][i][j] * sigmafr0[2][i][j]))); //calculate chi square
9912  ptmin = ptbins[j];
9913  ptmax = ptbins[j + 1];
9914 
9915  //loop through all pt bins. assign pt of bin w/ least diff
9916  //do not include default bins in calculation
9917  for (int k = j; k < 28; k++) {
9918  if ((dphifr0[0][i][k] != -1 || sigmafr0[0][i][k] != 1) &&
9919  (dphifr0[2][i][k] != -1 || sigmafr0[2][i][k] != 1)) {
9920  diff = 1.5625 * ((pow((dphi1 - dphifr0[0][i][k]), 2) / pow(sigmafr0[0][i][k], 2)) +
9921  (pow((dphi2 - dphifr0[2][i][k]), 2) / pow(sigmafr0[2][i][k], 2)) -
9922  (1.2 * (dphi1 - dphifr0[0][i][k]) * (dphi2 - dphifr0[2][i][k]) /
9923  (sigmafr0[0][i][k] * sigmafr0[2][i][k])));
9924  if (diff < min) {
9925  min = diff;
9926  ptmin = ptbins[k];
9927  ptmax = ptbins[k + 1];
9928  }
9929  }
9930  }
9931  mypt = (ptmin + ptmax) / 2;
9932  }
9933  }
9934 
9935  if (fr == 1) {
9936  //advance past bins in array w/ default values
9937  //default is: dphifr1[x][y][z] = -1, sigmafr1[x][y][z] = 1
9938  int j = 0; //start from 1st column, j = 0
9939  while (
9940  ((dphifr1[0][i][j] == -1 && sigmafr1[0][i][j] == 1) || (dphifr1[2][i][j] == -1 && sigmafr1[2][i][j] == 1)) &&
9941  j != 28)
9942  j++;
9943  if (j == 28) {
9944  // std::cout<<" L1MuCSCPtParams: every entry in row is default"<<std::endl;
9945  edm::LogInfo("CSCTFPtMethods::Pt3StnChiSq()") << "Every entry in row is default";
9946  // exit(0); //normal termination
9947  bCallOldMethod = true;
9948  }
9949 
9950  if (!bCallOldMethod) {
9951  //set min, ptmin, ptmax to first bin
9952  //in row that is not default
9953  min = 1.5625 * ((pow((dphi1 - dphifr1[0][i][j]), 2) / pow(sigmafr1[0][i][j], 2)) +
9954  (pow((dphi2 - dphifr1[2][i][j]), 2) / pow(sigmafr1[2][i][j], 2)) -
9955  (1.2 * (dphi1 - dphifr1[0][i][j]) * (dphi2 - dphifr1[2][i][j]) /
9956  (sigmafr1[0][i][j] * sigmafr1[2][i][j]))); //calculate chi square
9957  ptmin = ptbins[j];
9958  ptmax = ptbins[j + 1];
9959 
9960  //loop through all pt bins. assign pt of bin w/ least diff
9961  //do not include default bins in calculation
9962  for (int k = j; k < 28; k++) {
9963  if ((dphifr1[0][i][k] != -1 || sigmafr1[0][i][k] != 1) &&
9964  (dphifr1[2][i][k] != -1 || sigmafr1[2][i][k] != 1)) {
9965  diff = 1.5625 * ((pow((dphi1 - dphifr1[0][i][k]), 2) / pow(sigmafr1[0][i][k], 2)) +
9966  (pow((dphi2 - dphifr1[2][i][k]), 2) / pow(sigmafr1[2][i][k], 2)) -
9967  (1.2 * (dphi1 - dphifr1[0][i][k]) * (dphi2 - dphifr1[2][i][k]) /
9968  (sigmafr1[0][i][k] * sigmafr1[2][i][k])));
9969  if (diff < min) {
9970  min = diff;
9971  ptmin = ptbins[k];
9972  ptmax = ptbins[k + 1];
9973  }
9974  }
9975  mypt = (ptmin + ptmax) / 2;
9976  }
9977  }
9978  }
9979  }
9980 
9981  //sta1-2-4, dphi1=dphi12, dphi2=dphi24
9982  if (type == 5) {
9983  if (fr == 0) {
9984  //advance past bins in array w/ default values
9985  //default is: dphifr0[x][y][z] = -1, sigmafr0[x][y][z] = 1
9986  int j = 0; //start from 1st column, j = 0
9987  while (
9988  ((dphifr0[0][i][j] == -1 && sigmafr0[0][i][j] == 1) || (dphifr0[3][i][j] == -1 && sigmafr0[3][i][j] == 1)) &&
9989  j != 28)
9990  j++;
9991  if (j == 28) {
9992  // std::cout<<" L1MuCSCPtParams: every entry in row is default"<<std::endl;
9993  edm::LogInfo("CSCTFPtMethods::Pt3StnChiSq()") << "Every entry in row is default";
9994  // exit(0); //normal termination
9995  bCallOldMethod = true;
9996  }
9997 
9998  if (!bCallOldMethod) {
9999  //set min, ptmin, ptmax to first bin
10000  //in row that is not default
10001  min = 1.5625 * ((pow((dphi1 - dphifr0[0][i][j]), 2) / pow(sigmafr0[0][i][j], 2)) +
10002  (pow((dphi2 - dphifr0[3][i][j]), 2) / pow(sigmafr0[3][i][j], 2)) -
10003  (1.2 * (dphi1 - dphifr0[0][i][j]) * (dphi2 - dphifr0[3][i][j]) /
10004  (sigmafr0[0][i][j] * sigmafr0[3][i][j]))); //calculate chi square
10005  ptmin = ptbins[j];
10006  ptmax = ptbins[j + 1];
10007 
10008  //loop through all pt bins. assign pt of bin w/ least diff
10009  //do not include default bins in calculation
10010  for (int k = j; k < 28; k++) {
10011  if ((dphifr0[0][i][k] != -1 || sigmafr0[0][i][k] != 1) &&
10012  (dphifr0[3][i][k] != -1 || sigmafr0[3][i][k] != 1)) {
10013  diff = 1.5625 * ((pow((dphi1 - dphifr0[0][i][k]), 2) / pow(sigmafr0[0][i][k], 2)) +
10014  (pow((dphi2 - dphifr0[3][i][k]), 2) / pow(sigmafr0[3][i][k], 2)) -
10015  (1.2 * (dphi1 - dphifr0[0][i][k]) * (dphi2 - dphifr0[3][i][k]) /
10016  (sigmafr0[0][i][k] * sigmafr0[3][i][k])));
10017  if (diff < min) {
10018  min = diff;
10019  ptmin = ptbins[k];
10020  ptmax = ptbins[k + 1];
10021  }
10022  }
10023  }
10024  mypt = (ptmin + ptmax) / 2;
10025  }
10026  }
10027 
10028  if (fr == 1) {
10029  //advance past bins in array w/ default values
10030  //default is: dphifr1[x][y][z] = -1, sigmafr1[x][y][z] = 1
10031  int j = 0; //start from 1st column, j = 0
10032  while (
10033  ((dphifr1[0][i][j] == -1 && sigmafr1[0][i][j] == 1) || (dphifr1[3][i][j] == -1 && sigmafr1[3][i][j] == 1)) &&
10034  j != 28)
10035  j++;
10036  if (j == 28) {
10037  // std::cout<<" L1MuCSCPtParams: every entry in row is default"<<std::endl;
10038  edm::LogInfo("CSCTFPtMethods::Pt3StnChiSq()") << "Every entry in row is default";
10039  // exit(0); //normal termination
10040  bCallOldMethod = true;
10041  }
10042 
10043  if (!bCallOldMethod) {
10044  //set min, ptmin, ptmax to first bin
10045  //in row that is not default
10046  min = 1.5625 * ((pow((dphi1 - dphifr1[0][i][j]), 2) / pow(sigmafr1[0][i][j], 2)) +
10047  (pow((dphi2 - dphifr1[3][i][j]), 2) / pow(sigmafr1[3][i][j], 2)) -
10048  (1.2 * (dphi1 - dphifr1[0][i][j]) * (dphi2 - dphifr1[3][i][j]) /
10049  (sigmafr1[0][i][j] * sigmafr1[3][i][j]))); //calculate chi square
10050  ptmin = ptbins[j];
10051  ptmax = ptbins[j + 1];
10052 
10053  //loop through all pt bins. assign pt of bin w/ least diff
10054  //do not include default bins in calculation
10055  for (int k = j; k < 28; k++) {
10056  if ((dphifr1[0][i][k] != -1 || sigmafr1[0][i][k] != 1) &&
10057  (dphifr1[3][i][k] != -1 || sigmafr1[3][i][k] != 1)) {
10058  diff = 1.5625 * ((pow((dphi1 - dphifr1[0][i][k]), 2) / pow(sigmafr1[0][i][k], 2)) +
10059  (pow((dphi2 - dphifr1[3][i][k]), 2) / pow(sigmafr1[3][i][k], 2)) -
10060  (1.2 * (dphi1 - dphifr1[0][i][k]) * (dphi2 - dphifr1[3][i][k]) /
10061  (sigmafr1[0][i][k] * sigmafr1[3][i][k])));
10062  if (diff < min) {
10063  min = diff;
10064  ptmin = ptbins[k];
10065  ptmax = ptbins[k + 1];
10066  }
10067  }
10068  }
10069  mypt = (ptmin + ptmax) / 2;
10070  }
10071  }
10072  }
10073 
10074  if (bCallOldMethod) {
10075  float dphi12R = (static_cast<float>(dphi1copy)) / static_cast<float>(1 << 12) * CSCTFConstants::SECTOR_RAD;
10076  float dphi23R = (static_cast<float>(dphi2copy)) / static_cast<float>(1 << 12) * CSCTFConstants::SECTOR_RAD;
10077  // change defintion of track type to old method
10078  mypt = Pt3Stn(type - 3, eta, dphi12R, dphi23R, fr);
10079  }
10080  return mypt;
10081 }
10082 
10083 float CSCTFPtMethods::Pt2StnHybrid(int type, float eta, int dphi, int fr) const {
10084  float mypt = 0.0;
10085 
10086  mypt = Pt2StnChiSq(type, eta, dphi, fr);
10087  if (mypt >= 8.0) {
10088  float dphiR = static_cast<float>(dphi) / static_cast<float>(1 << 12) * CSCTFConstants::SECTOR_RAD;
10089  mypt = Pt2Stn(type + 1, eta, dphiR, fr);
10090  }
10091 
10092  return mypt;
10093 }
10094 
10095 float CSCTFPtMethods::Pt3StnHybrid(int type, float eta, int dphi1, int dphi2, int fr) const {
10096  float mypt = 0.0;
10097 
10098  mypt = Pt3StnChiSq(type, eta, dphi1, dphi2, fr);
10099  if (mypt >= 8.0) {
10100  float dphi12R = (static_cast<float>(dphi1)) / static_cast<float>(1 << 12) * CSCTFConstants::SECTOR_RAD;
10101  float dphi23R = (static_cast<float>(dphi2)) / static_cast<float>(1 << 12) * CSCTFConstants::SECTOR_RAD;
10102  // change defintion of track type to old method
10103  mypt = Pt3Stn(type - 3, eta, dphi12R, dphi23R, fr);
10104  }
10105 
10106  return mypt;
10107 }
10108 
10109 bool CSCTFPtMethods::chargeValid(unsigned pT, unsigned quality, unsigned eta, unsigned method) const {
10110  bool result = false;
10111 
10112  switch (method) {
10113  case 1:
10114  break;
10115  case 2:
10116  break;
10117  case 3:
10118  if (quality != 1) {
10119  if (pT <= 19) {
10120  if (eta >= 4 && eta <= 9)
10121  result = true;
10122  }
10123  if (pT <= 18 && pT >= 10) {
10124  if (eta > 0 && eta < 4)
10125  result = true;
10126  }
10127  }
10128  };
10129 
10130  return result;
10131 }
10132 
10133 float CSCTFPtMethods::PtEff90(float pt, float eta, int mode) const {
10134  // set pT resolution
10135  float c;
10136  switch (mode) {
10137  // 3-stn with ME1
10138  case 2:
10139  case 3:
10140  case 4:
10141  // leave as 2 Stn for now:
10142  // if (eta < 2.0)
10143  // c = 0.2;
10144  // else
10145  // c = 0.2 + (eta-2.0)*0.5;
10146  // break;
10147  // 2-stn with ME1
10148  case 6:
10149  case 7:
10150  // c=(-.2999 * (eta*eta*eta) + 2.030 * (eta*eta) - 4.235 * eta + 3.024)+0.02;
10151  // Try just fixed value from fits to Pt turn-on curves
10152  c = 0.3;
10153  break;
10154  // 2 or 3 stn without ME1
10155  case 5:
10156  case 8:
10157  case 9:
10158  c = (-2.484 * (eta * eta * eta) + 14.43 * (eta * eta) - 27.66 * eta + 18.47) * .72;
10159  break;
10160  case 10:
10161  c = 2.0;
10162  break;
10163  // MB1 tracks
10164  case 11:
10165  case 12:
10166  case 13:
10167  case 14:
10168  case 15:
10169  c = 0.3;
10170  break;
10171  default:
10172  c = 0.0;
10173  };
10174  // Calculation of 90% threshold from 50% one, assuming Gaussian resolution
10175  // 90% of Gaussian area extends to 1.28*sigma
10176  if (c > 0.78)
10177  c = 0.78;
10178  // return pt/(1.0 - 1.28*c);
10179  // Let's go back to old empirical method:
10180  return pt * (1.0 + 1.28 * c);
10181 }
static const double A_sig14Front[3][15]
float Pt3Stn2010(int type, float eta, float dphi1, float dphi2, int fr=-1, int method=11) const
const double Pi
static const float AkHighEta_Fit2[kME2andMB2][kMaxParameters]
static const double AB_sig14FnoME11[4][15]
static const double AB_sig24[4][15]
static const double A_rho123RareCSCTF[5][15]
static const double AB_mu14R[4][15]
static const double AB_sig14RnoME11[4][15]
double Likelihood2(double *phi12, double *par_m12, double *par_sig12, double *v) const
static const double AB_sig52[4][15]
static const double AB_mu12R[4][15]
Definition: APVGainStruct.h:7
static const double A_sig13Rare[3][15]
static const double AB_mu13RME11[4][15]
static const double AB_rho523[5][15]
float Pt3Stn2012_DT(int type, float eta, float dphi1, float dphi2, int PtbyMLH, float &theLH, int fr=-1, int method=11) const
static const double AB_sig13F[4][15]
static const double AB_mu24[4][15]
static const double AB_mu13RnoME11[4][15]
static const double AB_mu52[4][15]
float Pt3Stn2012(int type, float eta, float dphi1, float dphi2, int PtbyMLH, float &theLH, int fr=-1, int method=11) const
static const double A_sig12Front[3][15]
static const double AB_mu14RME11[4][15]
static const float FRCorrHighEta[kME2andMB2][2]
virtual float getLowEdge(unsigned packed) const =0
get the low edge of bin represented by packed
static const double AB_sig12FnoME11[4][15]
static const double AB_mu13FnoME11[4][15]
static const double AB_mu14F[4][15]
float Pt2Stn(int type, float eta, float dphi, int fr=-1) const
constexpr int pow(int x)
Definition: conifer.h:24
static const float dphifr1[4][15][28]
bool chargeValid(unsigned Pt, unsigned Quality, unsigned Eta, unsigned method) const
static const double AB_sig13FME11[4][15]
static const double AB_rho513[5][15]
static const double AB_mu51[4][15]
static const float AkLowEta_Fit1[kME2andMB2][kMaxParameters]
static const double AB_sig12FME11[4][15]
static const double AB_mu23[4][15]
static const double AB_sig12R[4][15]
static const double AB_sig51[4][15]
Log< level::Error, false > LogError
static const float BkLowEta_Fit2[kME2andMB2][kMaxParameters]
const L1MuTriggerPtScale * trigger_scale
const L1MuScale * getPtScale() const
get the Pt scale
static const float dphifr0[4][15][28]
static const double AB_mu14FME11[4][15]
static const double AB_sig53[4][15]
float Pt3StnChiSq(int type, float eta, int dphi1, int dphi2, int fr) const
static const double A_sig34[3][15]
static const double AB_mu14RnoME11[4][15]
static const double A_sig53[3][15]
static const double A_mu53[4][15]
static const double AB_rho512[5][15]
static const double AB_sig14R[4][15]
double Likelihood(double *phi12, double *phi23, double *par_m12, double *par_m23, double *par_sig12, double *par_sig23, double *par_rho, double *v) const
static const double A_mu24[4][15]
static const float AkHighEta_Fit1[kME2andMB2][kMaxParameters]
static const double AB_mu12RnoME11[4][15]
static const float sigmafr0[4][15][28]
string quality
static const double A_sig23[3][15]
static const double AB_mu12FnoME11[4][15]
static const double AB_mu13R[4][15]
static const double A_rho134RareCSCTF[5][15]
static const double AB_rho134F[5][15]
double Likelihood2011(double *phi12, double *phi23, double *par_m12, double *par_m23, double *par_sig12, double *par_sig23, double *par_rho, double *v) const
static const double AB_sig34[4][15]
CSCTFPtMethods(const L1MuTriggerPtScale *ptScale=nullptr)
T sqrt(T t)
Definition: SSEVec.h:19
static const float BkHighEta_Fit2[kME2andMB2][kMaxParameters]
float Pt2StnHybrid(int type, float eta, int dphi, int fr) const
static const double AB_mu12RME11[4][15]
static const float kGlobalScaleFactor
static const double A_mu14Front[4][15]
float Pt3Stn(int type, float eta, float dphi1, float dphi2, int fr=-1) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static const double A_mu23[4][15]
static const double A_rho512[5][15]
DT correlation.
float Pt2Stn2010(int type, float eta, float dphi, int fr=-1, int method=11) const
static const double A_sig14Rare[3][15]
static const double AB_rho52B[5][15]
static const double A_sig12Rare[3][15]
static const double A_sig51[3][15]
static const double AB_mu12FME11[4][15]
static const double A_rho523[5][15]
static const double A_mu52[4][15]
float Pt2Stn2011(int type, float eta, float dphi, int fr=-1, int method=11, int phiSign=2) const
static const double A_mu13Front[4][15]
float Pt3StnHybrid(int type, float eta, int dphi1, int dphi2, int fr) const
Log< level::Info, false > LogInfo
static const double A_rho134FrontCSCTF[5][15]
double Likelihood2_2011(double *phi12, double *par_m12, double *par_sig12, double *v) const
static const double A_mu12Rare[4][15]
static const double AB_sig5[4][15]
static const double AB_sig14F[4][15]
static const double AB_sig14FME11[4][15]
static const double A_mu13Rare[4][15]
float Pt2Stn2012(int type, float eta, float dphi, int PtbyMLH, float &theLH, int fr=-1, int method=11) const
static const double A_mu12Front[4][15]
float PtEff90(float pt, float eta, int mode) const
static const double AB_rho124F[5][15]
static const double AB_rho124R[5][15]
static const double A_sig24[3][15]
static const double AB_mu13F[4][15]
float Pt2StnChiSq(int type, float eta, int dphi, int fr) const
const std::vector< double > ptScale
Definition: Utilities.cc:33
static const double AB_rho53B[5][15]
static const double AB_sig13R[4][15]
static const double AB_mu5[4][15]
static const double AB_mu53[4][15]
static const float AkLowEta_Fit2[kME2andMB2][kMaxParameters]
float Pt2Stn2012_DT(int type, float eta, float dphi, int PtbyMLH, float &theLH, int fr=-1, int method=11, int phiSign=2) const
static const double AB_sig13RME11[4][15]
static const double AB_mu14FnoME11[4][15]
static const double AB_rho234[5][15]
double ptmin
Definition: HydjetWrapper.h:86
static const double AB_sig13FnoME11[4][15]
static const double A_mu14Rare[4][15]
static const double AB_sig23[4][15]
static const double A_rho234CSCTF[5][15]
static const float FRCorrLowEta[kME2andMB2][2]
static const double AB_sig12RnoME11[4][15]
float Pt3Stn2011(int type, float eta, float dphi1, float dphi2, int fr=-1, int method=11) const
static const double AB_rho134R[5][15]
static const double A_sig13Front[3][15]
static const double A_mu51[4][15]
static const double SECTOR_RAD
static const double AB_mu34[4][15]
static const float ptbins[29]
static const double A_rho123FrontCSCTF[5][15]
Definition: mypt.h:6
Definition: APVGainStruct.h:7
step
Definition: StallMonitor.cc:83
static const double A_rho124FrontCSCTF[5][15]
static const double A_sig52[3][15]
Log< level::Warning, false > LogWarning
static const double A_rho513[5][15]
static const double A_rho124RareCSCTF[5][15]
static const double AB_rho123F[5][15]
static const double AB_sig13RnoME11[4][15]
static const double AB_sig12F[4][15]
static const double AB_rho51B[5][15]
static const double AB_mu12F[4][15]
static const double AB_sig14RME11[4][15]
static const double A_mu34[4][15]
static const double AB_mu13FME11[4][15]
static const double AB_rho123R[5][15]
static const float sigmafr1[4][15][28]
static const float etabins[16]
def exit(msg="")
static const double AB_sig12RME11[4][15]