1 #ifndef PhysicsTools_Utilities_rootTf1_h
2 #define PhysicsTools_Utilities_rootTf1_h
9 template <
typename Tag,
typename F>
11 TF1 fun(
name, root::function_t<1, Tag>(
f),
min,
max, 0);
20 template <
typename Tag,
typename F>
22 TF1 fun(
name, root::function_t<1, Tag>(
f, p0),
min,
max, 1);
23 fun.SetParameter(0, *p0.
ptr());
24 fun.SetParName(0, p0.
name().c_str());
30 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0);
33 template <
typename Tag,
typename F>
35 TF1 fun(
name, root::function_t<1, Tag>(
f, p0,
p1),
min,
max, 2);
36 fun.SetParameter(0, *p0.
ptr());
37 fun.SetParName(0, p0.
name().c_str());
38 fun.SetParameter(1, *
p1.ptr());
39 fun.SetParName(1,
p1.name().c_str());
48 template <
typename Tag,
typename F>
57 fun.SetParameter(0, *p0.
ptr());
58 fun.SetParName(0, p0.
name().c_str());
59 fun.SetParameter(1, *
p1.ptr());
60 fun.SetParName(1,
p1.name().c_str());
61 fun.SetParameter(2, *
p2.ptr());
62 fun.SetParName(2,
p2.name().c_str());
77 template <
typename Tag,
typename F>
87 fun.SetParameter(0, *p0.
ptr());
88 fun.SetParName(0, p0.
name().c_str());
89 fun.SetParameter(1, *
p1.ptr());
90 fun.SetParName(1,
p1.name().c_str());
91 fun.SetParameter(2, *
p2.ptr());
92 fun.SetParName(2,
p2.name().c_str());
93 fun.SetParameter(3, *
p3.ptr());
94 fun.SetParName(3,
p3.name().c_str());
110 template <
typename Tag,
typename F>
120 TF1 fun(
name, root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4),
min,
max, 5);
121 fun.SetParameter(0, *p0.
ptr());
122 fun.SetParName(0, p0.
name().c_str());
123 fun.SetParameter(1, *
p1.ptr());
124 fun.SetParName(1,
p1.name().c_str());
125 fun.SetParameter(2, *
p2.ptr());
126 fun.SetParName(2,
p2.name().c_str());
127 fun.SetParameter(3, *
p3.ptr());
128 fun.SetParName(3,
p3.name().c_str());
129 fun.SetParameter(4, *
p4.ptr());
130 fun.SetParName(4,
p4.name().c_str());
134 template <
typename F>
147 template <
typename Tag,
typename F>
158 TF1 fun(
name, root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5),
min,
max, 6);
159 fun.SetParameter(0, *p0.
ptr());
160 fun.SetParName(0, p0.
name().c_str());
161 fun.SetParameter(1, *
p1.ptr());
162 fun.SetParName(1,
p1.name().c_str());
163 fun.SetParameter(2, *
p2.ptr());
164 fun.SetParName(2,
p2.name().c_str());
165 fun.SetParameter(3, *
p3.ptr());
166 fun.SetParName(3,
p3.name().c_str());
167 fun.SetParameter(4, *
p4.ptr());
168 fun.SetParName(4,
p4.name().c_str());
169 fun.SetParameter(5, *p5.
ptr());
170 fun.SetParName(5, p5.
name().c_str());
174 template <
typename F>
188 template <
typename Tag,
typename F>
200 TF1 fun(
name, root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6),
min,
max, 7);
201 fun.SetParameter(0, *p0.
ptr());
202 fun.SetParName(0, p0.
name().c_str());
203 fun.SetParameter(1, *
p1.ptr());
204 fun.SetParName(1,
p1.name().c_str());
205 fun.SetParameter(2, *
p2.ptr());
206 fun.SetParName(2,
p2.name().c_str());
207 fun.SetParameter(3, *
p3.ptr());
208 fun.SetParName(3,
p3.name().c_str());
209 fun.SetParameter(4, *
p4.ptr());
210 fun.SetParName(4,
p4.name().c_str());
211 fun.SetParameter(5, *p5.
ptr());
212 fun.SetParName(5, p5.
name().c_str());
213 fun.SetParameter(6, *p6.
ptr());
214 fun.SetParName(6, p6.
name().c_str());
218 template <
typename F>
230 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6);
233 template <
typename Tag,
typename F>
246 TF1 fun(
name, root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6, p7),
min,
max, 8);
247 fun.SetParameter(0, *p0.
ptr());
248 fun.SetParName(0, p0.
name().c_str());
249 fun.SetParameter(1, *
p1.ptr());
250 fun.SetParName(1,
p1.name().c_str());
251 fun.SetParameter(2, *
p2.ptr());
252 fun.SetParName(2,
p2.name().c_str());
253 fun.SetParameter(3, *
p3.ptr());
254 fun.SetParName(3,
p3.name().c_str());
255 fun.SetParameter(4, *
p4.ptr());
256 fun.SetParName(4,
p4.name().c_str());
257 fun.SetParameter(5, *p5.
ptr());
258 fun.SetParName(5, p5.
name().c_str());
259 fun.SetParameter(6, *p6.
ptr());
260 fun.SetParName(6, p6.
name().c_str());
261 fun.SetParameter(7, *p7.
ptr());
262 fun.SetParName(7, p7.
name().c_str());
266 template <
typename F>
279 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7);
282 template <
typename Tag,
typename F>
296 TF1 fun(
name, root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8),
min,
max, 9);
297 fun.SetParameter(0, *p0.
ptr());
298 fun.SetParName(0, p0.
name().c_str());
299 fun.SetParameter(1, *
p1.ptr());
300 fun.SetParName(1,
p1.name().c_str());
301 fun.SetParameter(2, *
p2.ptr());
302 fun.SetParName(2,
p2.name().c_str());
303 fun.SetParameter(3, *
p3.ptr());
304 fun.SetParName(3,
p3.name().c_str());
305 fun.SetParameter(4, *
p4.ptr());
306 fun.SetParName(4,
p4.name().c_str());
307 fun.SetParameter(5, *p5.
ptr());
308 fun.SetParName(5, p5.
name().c_str());
309 fun.SetParameter(6, *p6.
ptr());
310 fun.SetParName(6, p6.
name().c_str());
311 fun.SetParameter(7, *p7.
ptr());
312 fun.SetParName(7, p7.
name().c_str());
313 fun.SetParameter(8, *p8.
ptr());
314 fun.SetParName(8, p8.
name().c_str());
318 template <
typename F>
332 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8);
335 template <
typename Tag,
typename F>
350 TF1 fun(
name, root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9),
min,
max, 10);
351 fun.SetParameter(0, *p0.
ptr());
352 fun.SetParName(0, p0.
name().c_str());
353 fun.SetParameter(1, *
p1.ptr());
354 fun.SetParName(1,
p1.name().c_str());
355 fun.SetParameter(2, *
p2.ptr());
356 fun.SetParName(2,
p2.name().c_str());
357 fun.SetParameter(3, *
p3.ptr());
358 fun.SetParName(3,
p3.name().c_str());
359 fun.SetParameter(4, *
p4.ptr());
360 fun.SetParName(4,
p4.name().c_str());
361 fun.SetParameter(5, *p5.
ptr());
362 fun.SetParName(5, p5.
name().c_str());
363 fun.SetParameter(6, *p6.
ptr());
364 fun.SetParName(6, p6.
name().c_str());
365 fun.SetParameter(7, *p7.
ptr());
366 fun.SetParName(7, p7.
name().c_str());
367 fun.SetParameter(8, *p8.
ptr());
368 fun.SetParName(8, p8.
name().c_str());
369 fun.SetParameter(9, *p9.
ptr());
370 fun.SetParName(9, p9.
name().c_str());
374 template <
typename F>
389 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9);
392 template <
typename Tag,
typename F>
408 TF1 fun(
name, root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10),
min,
max, 11);
409 fun.SetParameter(0, *p0.
ptr());
410 fun.SetParName(0, p0.
name().c_str());
411 fun.SetParameter(1, *
p1.ptr());
412 fun.SetParName(1,
p1.name().c_str());
413 fun.SetParameter(2, *
p2.ptr());
414 fun.SetParName(2,
p2.name().c_str());
415 fun.SetParameter(3, *
p3.ptr());
416 fun.SetParName(3,
p3.name().c_str());
417 fun.SetParameter(4, *
p4.ptr());
418 fun.SetParName(4,
p4.name().c_str());
419 fun.SetParameter(5, *p5.
ptr());
420 fun.SetParName(5, p5.
name().c_str());
421 fun.SetParameter(6, *p6.
ptr());
422 fun.SetParName(6, p6.
name().c_str());
423 fun.SetParameter(7, *p7.
ptr());
424 fun.SetParName(7, p7.
name().c_str());
425 fun.SetParameter(8, *p8.
ptr());
426 fun.SetParName(8, p8.
name().c_str());
427 fun.SetParameter(9, *p9.
ptr());
428 fun.SetParName(9, p9.
name().c_str());
429 fun.SetParameter(10, *p10.
ptr());
430 fun.SetParName(10, p10.
name().c_str());
434 template <
typename F>
450 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10);
453 template <
typename Tag,
typename F>
470 TF1 fun(
name, root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11),
min,
max, 12);
471 fun.SetParameter(0, *p0.
ptr());
472 fun.SetParName(0, p0.
name().c_str());
473 fun.SetParameter(1, *
p1.ptr());
474 fun.SetParName(1,
p1.name().c_str());
475 fun.SetParameter(2, *
p2.ptr());
476 fun.SetParName(2,
p2.name().c_str());
477 fun.SetParameter(3, *
p3.ptr());
478 fun.SetParName(3,
p3.name().c_str());
479 fun.SetParameter(4, *
p4.ptr());
480 fun.SetParName(4,
p4.name().c_str());
481 fun.SetParameter(5, *p5.
ptr());
482 fun.SetParName(5, p5.
name().c_str());
483 fun.SetParameter(6, *p6.
ptr());
484 fun.SetParName(6, p6.
name().c_str());
485 fun.SetParameter(7, *p7.
ptr());
486 fun.SetParName(7, p7.
name().c_str());
487 fun.SetParameter(8, *p8.
ptr());
488 fun.SetParName(8, p8.
name().c_str());
489 fun.SetParameter(9, *p9.
ptr());
490 fun.SetParName(9, p9.
name().c_str());
491 fun.SetParameter(10, *p10.
ptr());
492 fun.SetParName(10, p10.
name().c_str());
493 fun.SetParameter(11, *p11.
ptr());
494 fun.SetParName(11, p11.
name().c_str());
498 template <
typename F>
515 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11);
518 template <
typename Tag,
typename F>
536 TF1 fun(
name, root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12),
min,
max, 13);
537 fun.SetParameter(0, *p0.
ptr());
538 fun.SetParName(0, p0.
name().c_str());
539 fun.SetParameter(1, *
p1.ptr());
540 fun.SetParName(1,
p1.name().c_str());
541 fun.SetParameter(2, *
p2.ptr());
542 fun.SetParName(2,
p2.name().c_str());
543 fun.SetParameter(3, *
p3.ptr());
544 fun.SetParName(3,
p3.name().c_str());
545 fun.SetParameter(4, *
p4.ptr());
546 fun.SetParName(4,
p4.name().c_str());
547 fun.SetParameter(5, *p5.
ptr());
548 fun.SetParName(5, p5.
name().c_str());
549 fun.SetParameter(6, *p6.
ptr());
550 fun.SetParName(6, p6.
name().c_str());
551 fun.SetParameter(7, *p7.
ptr());
552 fun.SetParName(7, p7.
name().c_str());
553 fun.SetParameter(8, *p8.
ptr());
554 fun.SetParName(8, p8.
name().c_str());
555 fun.SetParameter(9, *p9.
ptr());
556 fun.SetParName(9, p9.
name().c_str());
557 fun.SetParameter(10, *p10.
ptr());
558 fun.SetParName(10, p10.
name().c_str());
559 fun.SetParameter(11, *p11.
ptr());
560 fun.SetParName(11, p11.
name().c_str());
561 fun.SetParameter(12, *p12.
ptr());
562 fun.SetParName(12, p12.
name().c_str());
566 template <
typename F>
584 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12);
587 template <
typename Tag,
typename F>
607 name, root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13),
min,
max, 14);
608 fun.SetParameter(0, *p0.
ptr());
609 fun.SetParName(0, p0.
name().c_str());
610 fun.SetParameter(1, *
p1.ptr());
611 fun.SetParName(1,
p1.name().c_str());
612 fun.SetParameter(2, *
p2.ptr());
613 fun.SetParName(2,
p2.name().c_str());
614 fun.SetParameter(3, *
p3.ptr());
615 fun.SetParName(3,
p3.name().c_str());
616 fun.SetParameter(4, *
p4.ptr());
617 fun.SetParName(4,
p4.name().c_str());
618 fun.SetParameter(5, *p5.
ptr());
619 fun.SetParName(5, p5.
name().c_str());
620 fun.SetParameter(6, *p6.
ptr());
621 fun.SetParName(6, p6.
name().c_str());
622 fun.SetParameter(7, *p7.
ptr());
623 fun.SetParName(7, p7.
name().c_str());
624 fun.SetParameter(8, *p8.
ptr());
625 fun.SetParName(8, p8.
name().c_str());
626 fun.SetParameter(9, *p9.
ptr());
627 fun.SetParName(9, p9.
name().c_str());
628 fun.SetParameter(10, *p10.
ptr());
629 fun.SetParName(10, p10.
name().c_str());
630 fun.SetParameter(11, *p11.
ptr());
631 fun.SetParName(11, p11.
name().c_str());
632 fun.SetParameter(12, *p12.
ptr());
633 fun.SetParName(12, p12.
name().c_str());
634 fun.SetParameter(13, *p13.
ptr());
635 fun.SetParName(13, p13.
name().c_str());
639 template <
typename F>
658 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
661 template <
typename Tag,
typename F>
682 root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14),
686 fun.SetParameter(0, *p0.
ptr());
687 fun.SetParName(0, p0.
name().c_str());
688 fun.SetParameter(1, *
p1.ptr());
689 fun.SetParName(1,
p1.name().c_str());
690 fun.SetParameter(2, *
p2.ptr());
691 fun.SetParName(2,
p2.name().c_str());
692 fun.SetParameter(3, *
p3.ptr());
693 fun.SetParName(3,
p3.name().c_str());
694 fun.SetParameter(4, *
p4.ptr());
695 fun.SetParName(4,
p4.name().c_str());
696 fun.SetParameter(5, *p5.
ptr());
697 fun.SetParName(5, p5.
name().c_str());
698 fun.SetParameter(6, *p6.
ptr());
699 fun.SetParName(6, p6.
name().c_str());
700 fun.SetParameter(7, *p7.
ptr());
701 fun.SetParName(7, p7.
name().c_str());
702 fun.SetParameter(8, *p8.
ptr());
703 fun.SetParName(8, p8.
name().c_str());
704 fun.SetParameter(9, *p9.
ptr());
705 fun.SetParName(9, p9.
name().c_str());
706 fun.SetParameter(10, *p10.
ptr());
707 fun.SetParName(10, p10.
name().c_str());
708 fun.SetParameter(11, *p11.
ptr());
709 fun.SetParName(11, p11.
name().c_str());
710 fun.SetParameter(12, *p12.
ptr());
711 fun.SetParName(12, p12.
name().c_str());
712 fun.SetParameter(13, *p13.
ptr());
713 fun.SetParName(13, p13.
name().c_str());
714 fun.SetParameter(14, *p14.
ptr());
715 fun.SetParName(14, p14.
name().c_str());
719 template <
typename F>
739 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
742 template <
typename Tag,
typename F>
764 root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15),
768 fun.SetParameter(0, *p0.
ptr());
769 fun.SetParName(0, p0.
name().c_str());
770 fun.SetParameter(1, *
p1.ptr());
771 fun.SetParName(1,
p1.name().c_str());
772 fun.SetParameter(2, *
p2.ptr());
773 fun.SetParName(2,
p2.name().c_str());
774 fun.SetParameter(3, *
p3.ptr());
775 fun.SetParName(3,
p3.name().c_str());
776 fun.SetParameter(4, *
p4.ptr());
777 fun.SetParName(4,
p4.name().c_str());
778 fun.SetParameter(5, *p5.
ptr());
779 fun.SetParName(5, p5.
name().c_str());
780 fun.SetParameter(6, *p6.
ptr());
781 fun.SetParName(6, p6.
name().c_str());
782 fun.SetParameter(7, *p7.
ptr());
783 fun.SetParName(7, p7.
name().c_str());
784 fun.SetParameter(8, *p8.
ptr());
785 fun.SetParName(8, p8.
name().c_str());
786 fun.SetParameter(9, *p9.
ptr());
787 fun.SetParName(9, p9.
name().c_str());
788 fun.SetParameter(10, *p10.
ptr());
789 fun.SetParName(10, p10.
name().c_str());
790 fun.SetParameter(11, *p11.
ptr());
791 fun.SetParName(11, p11.
name().c_str());
792 fun.SetParameter(12, *p12.
ptr());
793 fun.SetParName(12, p12.
name().c_str());
794 fun.SetParameter(13, *p13.
ptr());
795 fun.SetParName(13, p13.
name().c_str());
796 fun.SetParameter(14, *p14.
ptr());
797 fun.SetParName(14, p14.
name().c_str());
798 fun.SetParameter(15, *p15.
ptr());
799 fun.SetParName(15, p15.
name().c_str());
803 template <
typename F>
824 return tf1_t<helper::null_t>(
825 name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
828 template <
typename Tag,
typename F>
851 root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16),
855 fun.SetParameter(0, *p0.
ptr());
856 fun.SetParName(0, p0.
name().c_str());
857 fun.SetParameter(1, *
p1.ptr());
858 fun.SetParName(1,
p1.name().c_str());
859 fun.SetParameter(2, *
p2.ptr());
860 fun.SetParName(2,
p2.name().c_str());
861 fun.SetParameter(3, *
p3.ptr());
862 fun.SetParName(3,
p3.name().c_str());
863 fun.SetParameter(4, *
p4.ptr());
864 fun.SetParName(4,
p4.name().c_str());
865 fun.SetParameter(5, *p5.
ptr());
866 fun.SetParName(5, p5.
name().c_str());
867 fun.SetParameter(6, *p6.
ptr());
868 fun.SetParName(6, p6.
name().c_str());
869 fun.SetParameter(7, *p7.
ptr());
870 fun.SetParName(7, p7.
name().c_str());
871 fun.SetParameter(8, *p8.
ptr());
872 fun.SetParName(8, p8.
name().c_str());
873 fun.SetParameter(9, *p9.
ptr());
874 fun.SetParName(9, p9.
name().c_str());
875 fun.SetParameter(10, *p10.
ptr());
876 fun.SetParName(10, p10.
name().c_str());
877 fun.SetParameter(11, *p11.
ptr());
878 fun.SetParName(11, p11.
name().c_str());
879 fun.SetParameter(12, *p12.
ptr());
880 fun.SetParName(12, p12.
name().c_str());
881 fun.SetParameter(13, *p13.
ptr());
882 fun.SetParName(13, p13.
name().c_str());
883 fun.SetParameter(14, *p14.
ptr());
884 fun.SetParName(14, p14.
name().c_str());
885 fun.SetParameter(15, *p15.
ptr());
886 fun.SetParName(15, p15.
name().c_str());
887 fun.SetParameter(16, *p16.
ptr());
888 fun.SetParName(16, p16.
name().c_str());
892 template <
typename F>
914 return tf1_t<helper::null_t>(
915 name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
918 template <
typename Tag,
typename F>
942 root::function_t<1, Tag>(
f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17),
946 fun.SetParameter(0, *p0.
ptr());
947 fun.SetParName(0, p0.
name().c_str());
948 fun.SetParameter(1, *
p1.ptr());
949 fun.SetParName(1,
p1.name().c_str());
950 fun.SetParameter(2, *
p2.ptr());
951 fun.SetParName(2,
p2.name().c_str());
952 fun.SetParameter(3, *
p3.ptr());
953 fun.SetParName(3,
p3.name().c_str());
954 fun.SetParameter(4, *
p4.ptr());
955 fun.SetParName(4,
p4.name().c_str());
956 fun.SetParameter(5, *p5.
ptr());
957 fun.SetParName(5, p5.
name().c_str());
958 fun.SetParameter(6, *p6.
ptr());
959 fun.SetParName(6, p6.
name().c_str());
960 fun.SetParameter(7, *p7.
ptr());
961 fun.SetParName(7, p7.
name().c_str());
962 fun.SetParameter(8, *p8.
ptr());
963 fun.SetParName(8, p8.
name().c_str());
964 fun.SetParameter(9, *p9.
ptr());
965 fun.SetParName(9, p9.
name().c_str());
966 fun.SetParameter(10, *p10.
ptr());
967 fun.SetParName(10, p10.
name().c_str());
968 fun.SetParameter(11, *p11.
ptr());
969 fun.SetParName(11, p11.
name().c_str());
970 fun.SetParameter(12, *p12.
ptr());
971 fun.SetParName(12, p12.
name().c_str());
972 fun.SetParameter(13, *p13.
ptr());
973 fun.SetParName(13, p13.
name().c_str());
974 fun.SetParameter(14, *p14.
ptr());
975 fun.SetParName(14, p14.
name().c_str());
976 fun.SetParameter(15, *p15.
ptr());
977 fun.SetParName(15, p15.
name().c_str());
978 fun.SetParameter(16, *p16.
ptr());
979 fun.SetParName(16, p16.
name().c_str());
980 fun.SetParameter(17, *p17.
ptr());
981 fun.SetParName(17, p17.
name().c_str());
985 template <
typename F>
1008 return tf1_t<helper::null_t>(
1009 name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17);
1012 template <
typename Tag,
typename F>
1037 root::function_t<1, Tag>(
1038 f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18),
1042 fun.SetParameter(0, *p0.
ptr());
1043 fun.SetParName(0, p0.
name().c_str());
1044 fun.SetParameter(1, *
p1.ptr());
1045 fun.SetParName(1,
p1.name().c_str());
1046 fun.SetParameter(2, *
p2.ptr());
1047 fun.SetParName(2,
p2.name().c_str());
1048 fun.SetParameter(3, *
p3.ptr());
1049 fun.SetParName(3,
p3.name().c_str());
1050 fun.SetParameter(4, *
p4.ptr());
1051 fun.SetParName(4,
p4.name().c_str());
1052 fun.SetParameter(5, *p5.
ptr());
1053 fun.SetParName(5, p5.
name().c_str());
1054 fun.SetParameter(6, *p6.
ptr());
1055 fun.SetParName(6, p6.
name().c_str());
1056 fun.SetParameter(7, *p7.
ptr());
1057 fun.SetParName(7, p7.
name().c_str());
1058 fun.SetParameter(8, *p8.
ptr());
1059 fun.SetParName(8, p8.
name().c_str());
1060 fun.SetParameter(9, *p9.
ptr());
1061 fun.SetParName(9, p9.
name().c_str());
1062 fun.SetParameter(10, *p10.
ptr());
1063 fun.SetParName(10, p10.
name().c_str());
1064 fun.SetParameter(11, *p11.
ptr());
1065 fun.SetParName(11, p11.
name().c_str());
1066 fun.SetParameter(12, *p12.
ptr());
1067 fun.SetParName(12, p12.
name().c_str());
1068 fun.SetParameter(13, *p13.
ptr());
1069 fun.SetParName(13, p13.
name().c_str());
1070 fun.SetParameter(14, *p14.
ptr());
1071 fun.SetParName(14, p14.
name().c_str());
1072 fun.SetParameter(15, *p15.
ptr());
1073 fun.SetParName(15, p15.
name().c_str());
1074 fun.SetParameter(16, *p16.
ptr());
1075 fun.SetParName(16, p16.
name().c_str());
1076 fun.SetParameter(17, *p17.
ptr());
1077 fun.SetParName(17, p17.
name().c_str());
1078 fun.SetParameter(18, *p18.
ptr());
1079 fun.SetParName(18, p18.
name().c_str());
1083 template <
typename F>
1107 return tf1_t<helper::null_t>(
1108 name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18);
1111 template <
typename Tag,
typename F>
1137 root::function_t<1, Tag>(
1138 f, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19),
1142 fun.SetParameter(0, *p0.
ptr());
1143 fun.SetParName(0, p0.
name().c_str());
1144 fun.SetParameter(1, *
p1.ptr());
1145 fun.SetParName(1,
p1.name().c_str());
1146 fun.SetParameter(2, *
p2.ptr());
1147 fun.SetParName(2,
p2.name().c_str());
1148 fun.SetParameter(3, *
p3.ptr());
1149 fun.SetParName(3,
p3.name().c_str());
1150 fun.SetParameter(4, *
p4.ptr());
1151 fun.SetParName(4,
p4.name().c_str());
1152 fun.SetParameter(5, *p5.
ptr());
1153 fun.SetParName(5, p5.
name().c_str());
1154 fun.SetParameter(6, *p6.
ptr());
1155 fun.SetParName(6, p6.
name().c_str());
1156 fun.SetParameter(7, *p7.
ptr());
1157 fun.SetParName(7, p7.
name().c_str());
1158 fun.SetParameter(8, *p8.
ptr());
1159 fun.SetParName(8, p8.
name().c_str());
1160 fun.SetParameter(9, *p9.
ptr());
1161 fun.SetParName(9, p9.
name().c_str());
1162 fun.SetParameter(10, *p10.
ptr());
1163 fun.SetParName(10, p10.
name().c_str());
1164 fun.SetParameter(11, *p11.
ptr());
1165 fun.SetParName(11, p11.
name().c_str());
1166 fun.SetParameter(12, *p12.
ptr());
1167 fun.SetParName(12, p12.
name().c_str());
1168 fun.SetParameter(13, *p13.
ptr());
1169 fun.SetParName(13, p13.
name().c_str());
1170 fun.SetParameter(14, *p14.
ptr());
1171 fun.SetParName(14, p14.
name().c_str());
1172 fun.SetParameter(15, *p15.
ptr());
1173 fun.SetParName(15, p15.
name().c_str());
1174 fun.SetParameter(16, *p16.
ptr());
1175 fun.SetParName(16, p16.
name().c_str());
1176 fun.SetParameter(17, *p17.
ptr());
1177 fun.SetParName(17, p17.
name().c_str());
1178 fun.SetParameter(18, *p18.
ptr());
1179 fun.SetParName(18, p18.
name().c_str());
1180 fun.SetParameter(19, *p19.
ptr());
1181 fun.SetParName(19, p19.
name().c_str());
1185 template <
typename F>
1210 return tf1_t<helper::null_t>(
1211 name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19);
1214 template <
typename Tag,
typename F>
1216 TF1 fun(
name, root::function_t<1, Tag>(
f,
p),
min,
max,
p.size());
1217 for (
size_t i = 0;
i <
p.size(); ++
i) {
1218 fun.SetParameter(
i, *
p[
i].ptr());
1219 fun.SetParName(
i,
p[
i].
name().c_str());
1224 template <
typename F>
1225 TF1
tf1(
const char*
name,
F&
f,
double min,
double max,
const std::vector<funct::Parameter>&
p) {
1229 template <
typename Tag,
typename F>
1231 TF1 fun(
name, root::function_t<1, Tag>(
f,
p),
min,
max,
p.size());
1232 for (
size_t i = 0;
i <
p.size(); ++
i)
1233 fun.SetParameter(
i, *
p[
i]);
1237 template <
typename F>