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>
23 TF1 fun(name, root::function_t<1, Tag>(f, p0), min, max, 1);
24 fun.SetParameter(0, *p0.
ptr());
25 fun.SetParName(0, p0.
name().c_str());
32 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0);
35 template<
typename Tag,
typename F>
39 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1), min, max, 2);
40 fun.SetParameter(0, *p0.
ptr());
41 fun.SetParName(0, p0.
name().c_str());
42 fun.SetParameter(1, *p1.
ptr());
43 fun.SetParName(1, p1.
name().c_str());
54 template<
typename Tag,
typename F>
59 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2), min, max, 3);
60 fun.SetParameter(0, *p0.
ptr());
61 fun.SetParName(0, p0.
name().c_str());
62 fun.SetParameter(1, *p1.
ptr());
63 fun.SetParName(1, p1.
name().c_str());
64 fun.SetParameter(2, *p2.
ptr());
65 fun.SetParName(2, p2.
name().c_str());
77 template<
typename Tag,
typename F>
83 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3), min, max, 4);
84 fun.SetParameter(0, *p0.
ptr());
85 fun.SetParName(0, p0.
name().c_str());
86 fun.SetParameter(1, *p1.
ptr());
87 fun.SetParName(1, p1.
name().c_str());
88 fun.SetParameter(2, *p2.
ptr());
89 fun.SetParName(2, p2.
name().c_str());
90 fun.SetParameter(3, *p3.
ptr());
91 fun.SetParName(3, p3.
name().c_str());
104 template<
typename Tag,
typename F>
111 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4), min, max, 5);
112 fun.SetParameter(0, *p0.
ptr());
113 fun.SetParName(0, p0.
name().c_str());
114 fun.SetParameter(1, *p1.
ptr());
115 fun.SetParName(1, p1.
name().c_str());
116 fun.SetParameter(2, *p2.
ptr());
117 fun.SetParName(2, p2.
name().c_str());
118 fun.SetParameter(3, *p3.
ptr());
119 fun.SetParName(3, p3.
name().c_str());
120 fun.SetParameter(4, *p4.
ptr());
121 fun.SetParName(4, p4.
name().c_str());
135 template<
typename Tag,
typename F>
143 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5), min, max, 6);
144 fun.SetParameter(0, *p0.
ptr());
145 fun.SetParName(0, p0.
name().c_str());
146 fun.SetParameter(1, *p1.
ptr());
147 fun.SetParName(1, p1.
name().c_str());
148 fun.SetParameter(2, *p2.
ptr());
149 fun.SetParName(2, p2.
name().c_str());
150 fun.SetParameter(3, *p3.
ptr());
151 fun.SetParName(3, p3.
name().c_str());
152 fun.SetParameter(4, *p4.
ptr());
153 fun.SetParName(4, p4.
name().c_str());
154 fun.SetParameter(5, *p5.
ptr());
155 fun.SetParName(5, p5.
name().c_str());
170 template<
typename Tag,
typename F>
179 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6), min, max, 7);
180 fun.SetParameter(0, *p0.
ptr());
181 fun.SetParName(0, p0.
name().c_str());
182 fun.SetParameter(1, *p1.
ptr());
183 fun.SetParName(1, p1.
name().c_str());
184 fun.SetParameter(2, *p2.
ptr());
185 fun.SetParName(2, p2.
name().c_str());
186 fun.SetParameter(3, *p3.
ptr());
187 fun.SetParName(3, p3.
name().c_str());
188 fun.SetParameter(4, *p4.
ptr());
189 fun.SetParName(4, p4.
name().c_str());
190 fun.SetParameter(5, *p5.
ptr());
191 fun.SetParName(5, p5.
name().c_str());
192 fun.SetParameter(6, *p6.
ptr());
193 fun.SetParName(6, p6.
name().c_str());
206 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6);
209 template<
typename Tag,
typename F>
219 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7), min, max, 8);
220 fun.SetParameter(0, *p0.
ptr());
221 fun.SetParName(0, p0.
name().c_str());
222 fun.SetParameter(1, *p1.
ptr());
223 fun.SetParName(1, p1.
name().c_str());
224 fun.SetParameter(2, *p2.
ptr());
225 fun.SetParName(2, p2.
name().c_str());
226 fun.SetParameter(3, *p3.
ptr());
227 fun.SetParName(3, p3.
name().c_str());
228 fun.SetParameter(4, *p4.
ptr());
229 fun.SetParName(4, p4.
name().c_str());
230 fun.SetParameter(5, *p5.
ptr());
231 fun.SetParName(5, p5.
name().c_str());
232 fun.SetParameter(6, *p6.
ptr());
233 fun.SetParName(6, p6.
name().c_str());
234 fun.SetParameter(7, *p7.
ptr());
235 fun.SetParName(7, p7.
name().c_str());
249 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7);
252 template<
typename Tag,
typename F>
263 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8), min, max, 9);
264 fun.SetParameter(0, *p0.
ptr());
265 fun.SetParName(0, p0.
name().c_str());
266 fun.SetParameter(1, *p1.
ptr());
267 fun.SetParName(1, p1.
name().c_str());
268 fun.SetParameter(2, *p2.
ptr());
269 fun.SetParName(2, p2.
name().c_str());
270 fun.SetParameter(3, *p3.
ptr());
271 fun.SetParName(3, p3.
name().c_str());
272 fun.SetParameter(4, *p4.
ptr());
273 fun.SetParName(4, p4.
name().c_str());
274 fun.SetParameter(5, *p5.
ptr());
275 fun.SetParName(5, p5.
name().c_str());
276 fun.SetParameter(6, *p6.
ptr());
277 fun.SetParName(6, p6.
name().c_str());
278 fun.SetParameter(7, *p7.
ptr());
279 fun.SetParName(7, p7.
name().c_str());
280 fun.SetParameter(8, *p8.
ptr());
281 fun.SetParName(8, p8.
name().c_str());
296 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8);
299 template<
typename Tag,
typename F>
311 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9), min, max, 10);
312 fun.SetParameter(0, *p0.
ptr());
313 fun.SetParName(0, p0.
name().c_str());
314 fun.SetParameter(1, *p1.
ptr());
315 fun.SetParName(1, p1.
name().c_str());
316 fun.SetParameter(2, *p2.
ptr());
317 fun.SetParName(2, p2.
name().c_str());
318 fun.SetParameter(3, *p3.
ptr());
319 fun.SetParName(3, p3.
name().c_str());
320 fun.SetParameter(4, *p4.
ptr());
321 fun.SetParName(4, p4.
name().c_str());
322 fun.SetParameter(5, *p5.
ptr());
323 fun.SetParName(5, p5.
name().c_str());
324 fun.SetParameter(6, *p6.
ptr());
325 fun.SetParName(6, p6.
name().c_str());
326 fun.SetParameter(7, *p7.
ptr());
327 fun.SetParName(7, p7.
name().c_str());
328 fun.SetParameter(8, *p8.
ptr());
329 fun.SetParName(8, p8.
name().c_str());
330 fun.SetParameter(9, *p9.
ptr());
331 fun.SetParName(9, p9.
name().c_str());
347 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9);
350 template<
typename Tag,
typename F>
363 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), min, max, 11);
364 fun.SetParameter(0, *p0.
ptr());
365 fun.SetParName(0, p0.
name().c_str());
366 fun.SetParameter(1, *p1.
ptr());
367 fun.SetParName(1, p1.
name().c_str());
368 fun.SetParameter(2, *p2.
ptr());
369 fun.SetParName(2, p2.
name().c_str());
370 fun.SetParameter(3, *p3.
ptr());
371 fun.SetParName(3, p3.
name().c_str());
372 fun.SetParameter(4, *p4.
ptr());
373 fun.SetParName(4, p4.
name().c_str());
374 fun.SetParameter(5, *p5.
ptr());
375 fun.SetParName(5, p5.
name().c_str());
376 fun.SetParameter(6, *p6.
ptr());
377 fun.SetParName(6, p6.
name().c_str());
378 fun.SetParameter(7, *p7.
ptr());
379 fun.SetParName(7, p7.
name().c_str());
380 fun.SetParameter(8, *p8.
ptr());
381 fun.SetParName(8, p8.
name().c_str());
382 fun.SetParameter(9, *p9.
ptr());
383 fun.SetParName(9, p9.
name().c_str());
384 fun.SetParameter(10, *p10.
ptr());
385 fun.SetParName(10, p10.
name().c_str());
402 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10);
405 template<
typename Tag,
typename F>
419 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), min, max, 12);
420 fun.SetParameter(0, *p0.
ptr());
421 fun.SetParName(0, p0.
name().c_str());
422 fun.SetParameter(1, *p1.
ptr());
423 fun.SetParName(1, p1.
name().c_str());
424 fun.SetParameter(2, *p2.
ptr());
425 fun.SetParName(2, p2.
name().c_str());
426 fun.SetParameter(3, *p3.
ptr());
427 fun.SetParName(3, p3.
name().c_str());
428 fun.SetParameter(4, *p4.
ptr());
429 fun.SetParName(4, p4.
name().c_str());
430 fun.SetParameter(5, *p5.
ptr());
431 fun.SetParName(5, p5.
name().c_str());
432 fun.SetParameter(6, *p6.
ptr());
433 fun.SetParName(6, p6.
name().c_str());
434 fun.SetParameter(7, *p7.
ptr());
435 fun.SetParName(7, p7.
name().c_str());
436 fun.SetParameter(8, *p8.
ptr());
437 fun.SetParName(8, p8.
name().c_str());
438 fun.SetParameter(9, *p9.
ptr());
439 fun.SetParName(9, p9.
name().c_str());
440 fun.SetParameter(10, *p10.
ptr());
441 fun.SetParName(10, p10.
name().c_str());
442 fun.SetParameter(11, *p11.
ptr());
443 fun.SetParName(11, p11.
name().c_str());
461 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11);
464 template<
typename Tag,
typename F>
479 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);
480 fun.SetParameter(0, *p0.
ptr());
481 fun.SetParName(0, p0.
name().c_str());
482 fun.SetParameter(1, *p1.
ptr());
483 fun.SetParName(1, p1.
name().c_str());
484 fun.SetParameter(2, *p2.
ptr());
485 fun.SetParName(2, p2.
name().c_str());
486 fun.SetParameter(3, *p3.
ptr());
487 fun.SetParName(3, p3.
name().c_str());
488 fun.SetParameter(4, *p4.
ptr());
489 fun.SetParName(4, p4.
name().c_str());
490 fun.SetParameter(5, *p5.
ptr());
491 fun.SetParName(5, p5.
name().c_str());
492 fun.SetParameter(6, *p6.
ptr());
493 fun.SetParName(6, p6.
name().c_str());
494 fun.SetParameter(7, *p7.
ptr());
495 fun.SetParName(7, p7.
name().c_str());
496 fun.SetParameter(8, *p8.
ptr());
497 fun.SetParName(8, p8.
name().c_str());
498 fun.SetParameter(9, *p9.
ptr());
499 fun.SetParName(9, p9.
name().c_str());
500 fun.SetParameter(10, *p10.
ptr());
501 fun.SetParName(10, p10.
name().c_str());
502 fun.SetParameter(11, *p11.
ptr());
503 fun.SetParName(11, p11.
name().c_str());
504 fun.SetParameter(12, *p12.
ptr());
505 fun.SetParName(12, p12.
name().c_str());
524 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12);
527 template<
typename Tag,
typename F>
543 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), min, max, 14);
544 fun.SetParameter(0, *p0.
ptr());
545 fun.SetParName(0, p0.
name().c_str());
546 fun.SetParameter(1, *p1.
ptr());
547 fun.SetParName(1, p1.
name().c_str());
548 fun.SetParameter(2, *p2.
ptr());
549 fun.SetParName(2, p2.
name().c_str());
550 fun.SetParameter(3, *p3.
ptr());
551 fun.SetParName(3, p3.
name().c_str());
552 fun.SetParameter(4, *p4.
ptr());
553 fun.SetParName(4, p4.
name().c_str());
554 fun.SetParameter(5, *p5.
ptr());
555 fun.SetParName(5, p5.
name().c_str());
556 fun.SetParameter(6, *p6.
ptr());
557 fun.SetParName(6, p6.
name().c_str());
558 fun.SetParameter(7, *p7.
ptr());
559 fun.SetParName(7, p7.
name().c_str());
560 fun.SetParameter(8, *p8.
ptr());
561 fun.SetParName(8, p8.
name().c_str());
562 fun.SetParameter(9, *p9.
ptr());
563 fun.SetParName(9, p9.
name().c_str());
564 fun.SetParameter(10, *p10.
ptr());
565 fun.SetParName(10, p10.
name().c_str());
566 fun.SetParameter(11, *p11.
ptr());
567 fun.SetParName(11, p11.
name().c_str());
568 fun.SetParameter(12, *p12.
ptr());
569 fun.SetParName(12, p12.
name().c_str());
570 fun.SetParameter(13, *p13.
ptr());
571 fun.SetParName(13, p13.
name().c_str());
591 return tf1_t<helper::null_t>(
name,
f,
min,
max, p0,
p1,
p2,
p3,
p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
594 template<
typename Tag,
typename F>
611 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), min, max, 15);
612 fun.SetParameter(0, *p0.
ptr());
613 fun.SetParName(0, p0.
name().c_str());
614 fun.SetParameter(1, *p1.
ptr());
615 fun.SetParName(1, p1.
name().c_str());
616 fun.SetParameter(2, *p2.
ptr());
617 fun.SetParName(2, p2.
name().c_str());
618 fun.SetParameter(3, *p3.
ptr());
619 fun.SetParName(3, p3.
name().c_str());
620 fun.SetParameter(4, *p4.
ptr());
621 fun.SetParName(4, p4.
name().c_str());
622 fun.SetParameter(5, *p5.
ptr());
623 fun.SetParName(5, p5.
name().c_str());
624 fun.SetParameter(6, *p6.
ptr());
625 fun.SetParName(6, p6.
name().c_str());
626 fun.SetParameter(7, *p7.
ptr());
627 fun.SetParName(7, p7.
name().c_str());
628 fun.SetParameter(8, *p8.
ptr());
629 fun.SetParName(8, p8.
name().c_str());
630 fun.SetParameter(9, *p9.
ptr());
631 fun.SetParName(9, p9.
name().c_str());
632 fun.SetParameter(10, *p10.
ptr());
633 fun.SetParName(10, p10.
name().c_str());
634 fun.SetParameter(11, *p11.
ptr());
635 fun.SetParName(11, p11.
name().c_str());
636 fun.SetParameter(12, *p12.
ptr());
637 fun.SetParName(12, p12.
name().c_str());
638 fun.SetParameter(13, *p13.
ptr());
639 fun.SetParName(13, p13.
name().c_str());
640 fun.SetParameter(14, *p14.
ptr());
641 fun.SetParName(14, p14.
name().c_str());
662 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);
665 template<
typename Tag,
typename F>
683 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9,
684 p10, p11, p12, p13, p14, p15), min, max, 16);
685 fun.SetParameter(0, *p0.
ptr());
686 fun.SetParName(0, p0.
name().c_str());
687 fun.SetParameter(1, *p1.
ptr());
688 fun.SetParName(1, p1.
name().c_str());
689 fun.SetParameter(2, *p2.
ptr());
690 fun.SetParName(2, p2.
name().c_str());
691 fun.SetParameter(3, *p3.
ptr());
692 fun.SetParName(3, p3.
name().c_str());
693 fun.SetParameter(4, *p4.
ptr());
694 fun.SetParName(4, p4.
name().c_str());
695 fun.SetParameter(5, *p5.
ptr());
696 fun.SetParName(5, p5.
name().c_str());
697 fun.SetParameter(6, *p6.
ptr());
698 fun.SetParName(6, p6.
name().c_str());
699 fun.SetParameter(7, *p7.
ptr());
700 fun.SetParName(7, p7.
name().c_str());
701 fun.SetParameter(8, *p8.
ptr());
702 fun.SetParName(8, p8.
name().c_str());
703 fun.SetParameter(9, *p9.
ptr());
704 fun.SetParName(9, p9.
name().c_str());
705 fun.SetParameter(10, *p10.
ptr());
706 fun.SetParName(10, p10.
name().c_str());
707 fun.SetParameter(11, *p11.
ptr());
708 fun.SetParName(11, p11.
name().c_str());
709 fun.SetParameter(12, *p12.
ptr());
710 fun.SetParName(12, p12.
name().c_str());
711 fun.SetParameter(13, *p13.
ptr());
712 fun.SetParName(13, p13.
name().c_str());
713 fun.SetParameter(14, *p14.
ptr());
714 fun.SetParName(14, p14.
name().c_str());
715 fun.SetParameter(15, *p15.
ptr());
716 fun.SetParName(15, p15.
name().c_str());
738 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, p15);
741 template<
typename Tag,
typename F>
760 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9,
761 p10, p11, p12, p13, p14, p15, p16), min, max, 17);
762 fun.SetParameter(0, *p0.
ptr());
763 fun.SetParName(0, p0.
name().c_str());
764 fun.SetParameter(1, *p1.
ptr());
765 fun.SetParName(1, p1.
name().c_str());
766 fun.SetParameter(2, *p2.
ptr());
767 fun.SetParName(2, p2.
name().c_str());
768 fun.SetParameter(3, *p3.
ptr());
769 fun.SetParName(3, p3.
name().c_str());
770 fun.SetParameter(4, *p4.
ptr());
771 fun.SetParName(4, p4.
name().c_str());
772 fun.SetParameter(5, *p5.
ptr());
773 fun.SetParName(5, p5.
name().c_str());
774 fun.SetParameter(6, *p6.
ptr());
775 fun.SetParName(6, p6.
name().c_str());
776 fun.SetParameter(7, *p7.
ptr());
777 fun.SetParName(7, p7.
name().c_str());
778 fun.SetParameter(8, *p8.
ptr());
779 fun.SetParName(8, p8.
name().c_str());
780 fun.SetParameter(9, *p9.
ptr());
781 fun.SetParName(9, p9.
name().c_str());
782 fun.SetParameter(10, *p10.
ptr());
783 fun.SetParName(10, p10.
name().c_str());
784 fun.SetParameter(11, *p11.
ptr());
785 fun.SetParName(11, p11.
name().c_str());
786 fun.SetParameter(12, *p12.
ptr());
787 fun.SetParName(12, p12.
name().c_str());
788 fun.SetParameter(13, *p13.
ptr());
789 fun.SetParName(13, p13.
name().c_str());
790 fun.SetParameter(14, *p14.
ptr());
791 fun.SetParName(14, p14.
name().c_str());
792 fun.SetParameter(15, *p15.
ptr());
793 fun.SetParName(15, p15.
name().c_str());
794 fun.SetParameter(16, *p16.
ptr());
795 fun.SetParName(16, p16.
name().c_str());
818 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, p15, p16);
821 template<
typename Tag,
typename F>
841 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9,
842 p10, p11, p12, p13, p14, p15, p16, p17), min, max, 18);
843 fun.SetParameter(0, *p0.
ptr());
844 fun.SetParName(0, p0.
name().c_str());
845 fun.SetParameter(1, *p1.
ptr());
846 fun.SetParName(1, p1.
name().c_str());
847 fun.SetParameter(2, *p2.
ptr());
848 fun.SetParName(2, p2.
name().c_str());
849 fun.SetParameter(3, *p3.
ptr());
850 fun.SetParName(3, p3.
name().c_str());
851 fun.SetParameter(4, *p4.
ptr());
852 fun.SetParName(4, p4.
name().c_str());
853 fun.SetParameter(5, *p5.
ptr());
854 fun.SetParName(5, p5.
name().c_str());
855 fun.SetParameter(6, *p6.
ptr());
856 fun.SetParName(6, p6.
name().c_str());
857 fun.SetParameter(7, *p7.
ptr());
858 fun.SetParName(7, p7.
name().c_str());
859 fun.SetParameter(8, *p8.
ptr());
860 fun.SetParName(8, p8.
name().c_str());
861 fun.SetParameter(9, *p9.
ptr());
862 fun.SetParName(9, p9.
name().c_str());
863 fun.SetParameter(10, *p10.
ptr());
864 fun.SetParName(10, p10.
name().c_str());
865 fun.SetParameter(11, *p11.
ptr());
866 fun.SetParName(11, p11.
name().c_str());
867 fun.SetParameter(12, *p12.
ptr());
868 fun.SetParName(12, p12.
name().c_str());
869 fun.SetParameter(13, *p13.
ptr());
870 fun.SetParName(13, p13.
name().c_str());
871 fun.SetParameter(14, *p14.
ptr());
872 fun.SetParName(14, p14.
name().c_str());
873 fun.SetParameter(15, *p15.
ptr());
874 fun.SetParName(15, p15.
name().c_str());
875 fun.SetParameter(16, *p16.
ptr());
876 fun.SetParName(16, p16.
name().c_str());
877 fun.SetParameter(17, *p17.
ptr());
878 fun.SetParName(17, p17.
name().c_str());
902 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, p15, p16, p17);
905 template<
typename Tag,
typename F>
926 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9,
927 p10, p11, p12, p13, p14, p15, p16, p17, p18), min, max, 19);
928 fun.SetParameter(0, *p0.
ptr());
929 fun.SetParName(0, p0.
name().c_str());
930 fun.SetParameter(1, *p1.
ptr());
931 fun.SetParName(1, p1.
name().c_str());
932 fun.SetParameter(2, *p2.
ptr());
933 fun.SetParName(2, p2.
name().c_str());
934 fun.SetParameter(3, *p3.
ptr());
935 fun.SetParName(3, p3.
name().c_str());
936 fun.SetParameter(4, *p4.
ptr());
937 fun.SetParName(4, p4.
name().c_str());
938 fun.SetParameter(5, *p5.
ptr());
939 fun.SetParName(5, p5.
name().c_str());
940 fun.SetParameter(6, *p6.
ptr());
941 fun.SetParName(6, p6.
name().c_str());
942 fun.SetParameter(7, *p7.
ptr());
943 fun.SetParName(7, p7.
name().c_str());
944 fun.SetParameter(8, *p8.
ptr());
945 fun.SetParName(8, p8.
name().c_str());
946 fun.SetParameter(9, *p9.
ptr());
947 fun.SetParName(9, p9.
name().c_str());
948 fun.SetParameter(10, *p10.
ptr());
949 fun.SetParName(10, p10.
name().c_str());
950 fun.SetParameter(11, *p11.
ptr());
951 fun.SetParName(11, p11.
name().c_str());
952 fun.SetParameter(12, *p12.
ptr());
953 fun.SetParName(12, p12.
name().c_str());
954 fun.SetParameter(13, *p13.
ptr());
955 fun.SetParName(13, p13.
name().c_str());
956 fun.SetParameter(14, *p14.
ptr());
957 fun.SetParName(14, p14.
name().c_str());
958 fun.SetParameter(15, *p15.
ptr());
959 fun.SetParName(15, p15.
name().c_str());
960 fun.SetParameter(16, *p16.
ptr());
961 fun.SetParName(16, p16.
name().c_str());
962 fun.SetParameter(17, *p17.
ptr());
963 fun.SetParName(17, p17.
name().c_str());
964 fun.SetParameter(18, *p18.
ptr());
965 fun.SetParName(18, p18.
name().c_str());
990 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, p15, p16, p17, p18);
993 template<
typename Tag,
typename F>
1015 TF1 fun(name, root::function_t<1, Tag>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9,
1016 p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), min, max, 20);
1017 fun.SetParameter(0, *p0.
ptr());
1018 fun.SetParName(0, p0.
name().c_str());
1019 fun.SetParameter(1, *p1.
ptr());
1020 fun.SetParName(1, p1.
name().c_str());
1021 fun.SetParameter(2, *p2.
ptr());
1022 fun.SetParName(2, p2.
name().c_str());
1023 fun.SetParameter(3, *p3.
ptr());
1024 fun.SetParName(3, p3.
name().c_str());
1025 fun.SetParameter(4, *p4.
ptr());
1026 fun.SetParName(4, p4.
name().c_str());
1027 fun.SetParameter(5, *p5.
ptr());
1028 fun.SetParName(5, p5.
name().c_str());
1029 fun.SetParameter(6, *p6.
ptr());
1030 fun.SetParName(6, p6.
name().c_str());
1031 fun.SetParameter(7, *p7.
ptr());
1032 fun.SetParName(7, p7.
name().c_str());
1033 fun.SetParameter(8, *p8.
ptr());
1034 fun.SetParName(8, p8.
name().c_str());
1035 fun.SetParameter(9, *p9.
ptr());
1036 fun.SetParName(9, p9.
name().c_str());
1037 fun.SetParameter(10, *p10.
ptr());
1038 fun.SetParName(10, p10.
name().c_str());
1039 fun.SetParameter(11, *p11.
ptr());
1040 fun.SetParName(11, p11.
name().c_str());
1041 fun.SetParameter(12, *p12.
ptr());
1042 fun.SetParName(12, p12.
name().c_str());
1043 fun.SetParameter(13, *p13.
ptr());
1044 fun.SetParName(13, p13.
name().c_str());
1045 fun.SetParameter(14, *p14.
ptr());
1046 fun.SetParName(14, p14.
name().c_str());
1047 fun.SetParameter(15, *p15.
ptr());
1048 fun.SetParName(15, p15.
name().c_str());
1049 fun.SetParameter(16, *p16.
ptr());
1050 fun.SetParName(16, p16.
name().c_str());
1051 fun.SetParameter(17, *p17.
ptr());
1052 fun.SetParName(17, p17.
name().c_str());
1053 fun.SetParameter(18, *p18.
ptr());
1054 fun.SetParName(18, p18.
name().c_str());
1055 fun.SetParameter(19, *p19.
ptr());
1056 fun.SetParName(19, p19.
name().c_str());
1061 template<
typename F>
1083 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, p15, p16, p17, p18, p19);
1086 template<
typename Tag,
typename F>
1088 const std::vector<funct::Parameter> &
p) {
1089 TF1 fun(name, root::function_t<1, Tag>(f, p), min, max, p.size());
1090 for(
size_t i = 0;
i < p.size(); ++
i) {
1091 fun.SetParameter(
i, *p[
i].ptr());
1092 fun.SetParName(
i, p[
i].
name().c_str());
1097 template<
typename F>
1099 const std::vector<funct::Parameter> &
p) {
1103 template<
typename Tag,
typename F>
1105 const std::vector<boost::shared_ptr<double> > &
p) {
1106 TF1 fun(name, root::function_t<1, Tag>(f,
p), min, max,
p.size());
1107 for(
size_t i = 0;
i <
p.size(); ++
i)
1108 fun.SetParameter(
i, *
p[
i]);
1112 template<
typename F>
1114 const std::vector<boost::shared_ptr<double> > &
p) {
const std::string & name() const
TF1 tf1_t(const char *name, F &f, double min, double max)
boost::shared_ptr< double > ptr() const
TF1 tf1(const char *name, F &f, double min, double max)
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
string root
initialization