CMS 3D CMS Logo

rootFunction.h
Go to the documentation of this file.
1 #ifndef PhysicsTools_Utilities_rootFunction_h
2 #define PhysicsTools_Utilities_rootFunction_h
5 
6 namespace root {
7  template <unsigned int args, typename Tag, typename F>
10  }
11 
12  template <unsigned int args, typename F>
14  return function_t<args, helper::null_t>(f);
15  }
16 
17  template <unsigned int args, typename Tag, typename F>
22  return fun;
23  }
24 
25  template <unsigned int args, typename F>
27  return function_t<args, helper::null_t>(f, p0);
28  }
29 
30  template <unsigned int args, typename Tag, typename F>
32  const funct::Parameter& p0,
33  const funct::Parameter& p1) {
38  return fun;
39  }
40 
41  template <unsigned int args, typename F>
43  const funct::Parameter& p0,
44  const funct::Parameter& p1) {
45  return function<args, helper::null_t>(f, p0, p1);
46  }
47 
48  template <unsigned int args, typename Tag, typename F>
50  const funct::Parameter& p0,
51  const funct::Parameter& p1,
52  const funct::Parameter& p2) {
58  return fun;
59  }
60 
61  template <unsigned int args, typename F>
63  const funct::Parameter& p0,
64  const funct::Parameter& p1,
65  const funct::Parameter& p2) {
66  return function<args, helper::null_t>(f, p0, p1, p2);
67  }
68 
69  template <unsigned int args, typename Tag, typename F>
71  const funct::Parameter& p0,
72  const funct::Parameter& p1,
73  const funct::Parameter& p2,
74  const funct::Parameter& p3) {
81  return fun;
82  }
83 
84  template <unsigned int args, typename F>
86  const funct::Parameter& p0,
87  const funct::Parameter& p1,
88  const funct::Parameter& p2,
89  const funct::Parameter& p3) {
90  return function<args, helper::null_t>(f, p0, p1, p2, p3);
91  }
92 
93  template <unsigned int args, typename Tag, typename F>
95  const funct::Parameter& p0,
96  const funct::Parameter& p1,
97  const funct::Parameter& p2,
98  const funct::Parameter& p3,
99  const funct::Parameter& p4) {
107  return fun;
108  }
109 
110  template <unsigned int args, typename F>
112  const funct::Parameter& p0,
113  const funct::Parameter& p1,
114  const funct::Parameter& p2,
115  const funct::Parameter& p3,
116  const funct::Parameter& p4) {
117  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4);
118  }
119 
120  template <unsigned int args, typename Tag, typename F>
122  const funct::Parameter& p0,
123  const funct::Parameter& p1,
124  const funct::Parameter& p2,
125  const funct::Parameter& p3,
126  const funct::Parameter& p4,
127  const funct::Parameter& p5) {
136  return fun;
137  }
138 
139  template <unsigned int args, typename F>
141  const funct::Parameter& p0,
142  const funct::Parameter& p1,
143  const funct::Parameter& p2,
144  const funct::Parameter& p3,
145  const funct::Parameter& p4,
146  const funct::Parameter& p5) {
147  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5);
148  }
149 
150  template <unsigned int args, typename Tag, typename F>
152  const funct::Parameter& p0,
153  const funct::Parameter& p1,
154  const funct::Parameter& p2,
155  const funct::Parameter& p3,
156  const funct::Parameter& p4,
157  const funct::Parameter& p5,
158  const funct::Parameter& p6) {
168  return fun;
169  }
170 
171  template <unsigned int args, typename F>
173  const funct::Parameter& p0,
174  const funct::Parameter& p1,
175  const funct::Parameter& p2,
176  const funct::Parameter& p3,
177  const funct::Parameter& p4,
178  const funct::Parameter& p5,
179  const funct::Parameter& p6) {
180  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5, p6);
181  }
182 
183  template <unsigned int args, typename Tag, typename F>
185  const funct::Parameter& p0,
186  const funct::Parameter& p1,
187  const funct::Parameter& p2,
188  const funct::Parameter& p3,
189  const funct::Parameter& p4,
190  const funct::Parameter& p5,
191  const funct::Parameter& p6,
192  const funct::Parameter& p7) {
203  return fun;
204  }
205 
206  template <unsigned int args, typename F>
208  const funct::Parameter& p0,
209  const funct::Parameter& p1,
210  const funct::Parameter& p2,
211  const funct::Parameter& p3,
212  const funct::Parameter& p4,
213  const funct::Parameter& p5,
214  const funct::Parameter& p6,
215  const funct::Parameter& p7) {
216  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5, p6, p7);
217  }
218 
219  template <unsigned int args, typename Tag, typename F>
221  const funct::Parameter& p0,
222  const funct::Parameter& p1,
223  const funct::Parameter& p2,
224  const funct::Parameter& p3,
225  const funct::Parameter& p4,
226  const funct::Parameter& p5,
227  const funct::Parameter& p6,
228  const funct::Parameter& p7,
229  const funct::Parameter& p8) {
241  return fun;
242  }
243 
244  template <unsigned int args, typename F>
246  const funct::Parameter& p0,
247  const funct::Parameter& p1,
248  const funct::Parameter& p2,
249  const funct::Parameter& p3,
250  const funct::Parameter& p4,
251  const funct::Parameter& p5,
252  const funct::Parameter& p6,
253  const funct::Parameter& p7,
254  const funct::Parameter& p8) {
255  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8);
256  }
257 
258  template <unsigned int args, typename Tag, typename F>
260  const funct::Parameter& p0,
261  const funct::Parameter& p1,
262  const funct::Parameter& p2,
263  const funct::Parameter& p3,
264  const funct::Parameter& p4,
265  const funct::Parameter& p5,
266  const funct::Parameter& p6,
267  const funct::Parameter& p7,
268  const funct::Parameter& p8,
269  const funct::Parameter& p9) {
282  return fun;
283  }
284 
285  template <unsigned int args, typename F>
287  const funct::Parameter& p0,
288  const funct::Parameter& p1,
289  const funct::Parameter& p2,
290  const funct::Parameter& p3,
291  const funct::Parameter& p4,
292  const funct::Parameter& p5,
293  const funct::Parameter& p6,
294  const funct::Parameter& p7,
295  const funct::Parameter& p8,
296  const funct::Parameter& p9) {
297  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
298  }
299 
300  template <unsigned int args, typename Tag, typename F>
302  const funct::Parameter& p0,
303  const funct::Parameter& p1,
304  const funct::Parameter& p2,
305  const funct::Parameter& p3,
306  const funct::Parameter& p4,
307  const funct::Parameter& p5,
308  const funct::Parameter& p6,
309  const funct::Parameter& p7,
310  const funct::Parameter& p8,
311  const funct::Parameter& p9,
312  const funct::Parameter& p10) {
326  return fun;
327  }
328 
329  template <unsigned int args, typename F>
331  const funct::Parameter& p0,
332  const funct::Parameter& p1,
333  const funct::Parameter& p2,
334  const funct::Parameter& p3,
335  const funct::Parameter& p4,
336  const funct::Parameter& p5,
337  const funct::Parameter& p6,
338  const funct::Parameter& p7,
339  const funct::Parameter& p8,
340  const funct::Parameter& p9,
341  const funct::Parameter& p10) {
342  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
343  }
344 
345  template <unsigned int args, typename Tag, typename F>
347  const funct::Parameter& p0,
348  const funct::Parameter& p1,
349  const funct::Parameter& p2,
350  const funct::Parameter& p3,
351  const funct::Parameter& p4,
352  const funct::Parameter& p5,
353  const funct::Parameter& p6,
354  const funct::Parameter& p7,
355  const funct::Parameter& p8,
356  const funct::Parameter& p9,
357  const funct::Parameter& p10,
358  const funct::Parameter& p11) {
373  return fun;
374  }
375 
376  template <unsigned int args, typename F>
378  const funct::Parameter& p0,
379  const funct::Parameter& p1,
380  const funct::Parameter& p2,
381  const funct::Parameter& p3,
382  const funct::Parameter& p4,
383  const funct::Parameter& p5,
384  const funct::Parameter& p6,
385  const funct::Parameter& p7,
386  const funct::Parameter& p8,
387  const funct::Parameter& p9,
388  const funct::Parameter& p10,
389  const funct::Parameter& p11) {
390  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
391  }
392 
393  template <unsigned int args, typename Tag, typename F>
395  const funct::Parameter& p0,
396  const funct::Parameter& p1,
397  const funct::Parameter& p2,
398  const funct::Parameter& p3,
399  const funct::Parameter& p4,
400  const funct::Parameter& p5,
401  const funct::Parameter& p6,
402  const funct::Parameter& p7,
403  const funct::Parameter& p8,
404  const funct::Parameter& p9,
405  const funct::Parameter& p10,
406  const funct::Parameter& p11,
407  const funct::Parameter& p12) {
423  return fun;
424  }
425 
426  template <unsigned int args, typename F>
428  const funct::Parameter& p0,
429  const funct::Parameter& p1,
430  const funct::Parameter& p2,
431  const funct::Parameter& p3,
432  const funct::Parameter& p4,
433  const funct::Parameter& p5,
434  const funct::Parameter& p6,
435  const funct::Parameter& p7,
436  const funct::Parameter& p8,
437  const funct::Parameter& p9,
438  const funct::Parameter& p10,
439  const funct::Parameter& p11,
440  const funct::Parameter& p12) {
441  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
442  }
443 
444  template <unsigned int args, typename Tag, typename F>
446  const funct::Parameter& p0,
447  const funct::Parameter& p1,
448  const funct::Parameter& p2,
449  const funct::Parameter& p3,
450  const funct::Parameter& p4,
451  const funct::Parameter& p5,
452  const funct::Parameter& p6,
453  const funct::Parameter& p7,
454  const funct::Parameter& p8,
455  const funct::Parameter& p9,
456  const funct::Parameter& p10,
457  const funct::Parameter& p11,
458  const funct::Parameter& p12,
459  const funct::Parameter& p13) {
476  return fun;
477  }
478 
479  template <unsigned int args, typename F>
481  const funct::Parameter& p0,
482  const funct::Parameter& p1,
483  const funct::Parameter& p2,
484  const funct::Parameter& p3,
485  const funct::Parameter& p4,
486  const funct::Parameter& p5,
487  const funct::Parameter& p6,
488  const funct::Parameter& p7,
489  const funct::Parameter& p8,
490  const funct::Parameter& p9,
491  const funct::Parameter& p10,
492  const funct::Parameter& p11,
493  const funct::Parameter& p12,
494  const funct::Parameter& p13) {
495  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
496  }
497 
498  template <unsigned int args, typename Tag, typename F>
500  const funct::Parameter& p0,
501  const funct::Parameter& p1,
502  const funct::Parameter& p2,
503  const funct::Parameter& p3,
504  const funct::Parameter& p4,
505  const funct::Parameter& p5,
506  const funct::Parameter& p6,
507  const funct::Parameter& p7,
508  const funct::Parameter& p8,
509  const funct::Parameter& p9,
510  const funct::Parameter& p10,
511  const funct::Parameter& p11,
512  const funct::Parameter& p12,
513  const funct::Parameter& p13,
514  const funct::Parameter& p14) {
532  return fun;
533  }
534 
535  template <unsigned int args, typename F>
537  const funct::Parameter& p0,
538  const funct::Parameter& p1,
539  const funct::Parameter& p2,
540  const funct::Parameter& p3,
541  const funct::Parameter& p4,
542  const funct::Parameter& p5,
543  const funct::Parameter& p6,
544  const funct::Parameter& p7,
545  const funct::Parameter& p8,
546  const funct::Parameter& p9,
547  const funct::Parameter& p10,
548  const funct::Parameter& p11,
549  const funct::Parameter& p12,
550  const funct::Parameter& p13,
551  const funct::Parameter& p14) {
552  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
553  }
554 
555  template <unsigned int args, typename Tag, typename F>
557  const funct::Parameter& p0,
558  const funct::Parameter& p1,
559  const funct::Parameter& p2,
560  const funct::Parameter& p3,
561  const funct::Parameter& p4,
562  const funct::Parameter& p5,
563  const funct::Parameter& p6,
564  const funct::Parameter& p7,
565  const funct::Parameter& p8,
566  const funct::Parameter& p9,
567  const funct::Parameter& p10,
568  const funct::Parameter& p11,
569  const funct::Parameter& p12,
570  const funct::Parameter& p13,
571  const funct::Parameter& p14,
572  const funct::Parameter& p15) {
591  return fun;
592  }
593 
594  template <unsigned int args, typename F>
596  const funct::Parameter& p0,
597  const funct::Parameter& p1,
598  const funct::Parameter& p2,
599  const funct::Parameter& p3,
600  const funct::Parameter& p4,
601  const funct::Parameter& p5,
602  const funct::Parameter& p6,
603  const funct::Parameter& p7,
604  const funct::Parameter& p8,
605  const funct::Parameter& p9,
606  const funct::Parameter& p10,
607  const funct::Parameter& p11,
608  const funct::Parameter& p12,
609  const funct::Parameter& p13,
610  const funct::Parameter& p14,
611  const funct::Parameter& p15) {
612  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
613  }
614 
615  template <unsigned int args, typename Tag, typename F>
617  const funct::Parameter& p0,
618  const funct::Parameter& p1,
619  const funct::Parameter& p2,
620  const funct::Parameter& p3,
621  const funct::Parameter& p4,
622  const funct::Parameter& p5,
623  const funct::Parameter& p6,
624  const funct::Parameter& p7,
625  const funct::Parameter& p8,
626  const funct::Parameter& p9,
627  const funct::Parameter& p10,
628  const funct::Parameter& p11,
629  const funct::Parameter& p12,
630  const funct::Parameter& p13,
631  const funct::Parameter& p14,
632  const funct::Parameter& p15,
633  const funct::Parameter& p16) {
653  return fun;
654  }
655 
656  template <unsigned int args, typename F>
658  const funct::Parameter& p0,
659  const funct::Parameter& p1,
660  const funct::Parameter& p2,
661  const funct::Parameter& p3,
662  const funct::Parameter& p4,
663  const funct::Parameter& p5,
664  const funct::Parameter& p6,
665  const funct::Parameter& p7,
666  const funct::Parameter& p8,
667  const funct::Parameter& p9,
668  const funct::Parameter& p10,
669  const funct::Parameter& p11,
670  const funct::Parameter& p12,
671  const funct::Parameter& p13,
672  const funct::Parameter& p14,
673  const funct::Parameter& p15,
674  const funct::Parameter& p16) {
675  return function<args, helper::null_t>(f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
676  }
677 
678  template <unsigned int args, typename Tag, typename F>
680  const funct::Parameter& p0,
681  const funct::Parameter& p1,
682  const funct::Parameter& p2,
683  const funct::Parameter& p3,
684  const funct::Parameter& p4,
685  const funct::Parameter& p5,
686  const funct::Parameter& p6,
687  const funct::Parameter& p7,
688  const funct::Parameter& p8,
689  const funct::Parameter& p9,
690  const funct::Parameter& p10,
691  const funct::Parameter& p11,
692  const funct::Parameter& p12,
693  const funct::Parameter& p13,
694  const funct::Parameter& p14,
695  const funct::Parameter& p15,
696  const funct::Parameter& p16,
697  const funct::Parameter& p17) {
718  return fun;
719  }
720 
721  template <unsigned int args, typename F>
723  const funct::Parameter& p0,
724  const funct::Parameter& p1,
725  const funct::Parameter& p2,
726  const funct::Parameter& p3,
727  const funct::Parameter& p4,
728  const funct::Parameter& p5,
729  const funct::Parameter& p6,
730  const funct::Parameter& p7,
731  const funct::Parameter& p8,
732  const funct::Parameter& p9,
733  const funct::Parameter& p10,
734  const funct::Parameter& p11,
735  const funct::Parameter& p12,
736  const funct::Parameter& p13,
737  const funct::Parameter& p14,
738  const funct::Parameter& p15,
739  const funct::Parameter& p16,
740  const funct::Parameter& p17) {
741  return function<args, helper::null_t>(
742  f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17);
743  }
744 
745  template <unsigned int args, typename Tag, typename F>
747  const funct::Parameter& p0,
748  const funct::Parameter& p1,
749  const funct::Parameter& p2,
750  const funct::Parameter& p3,
751  const funct::Parameter& p4,
752  const funct::Parameter& p5,
753  const funct::Parameter& p6,
754  const funct::Parameter& p7,
755  const funct::Parameter& p8,
756  const funct::Parameter& p9,
757  const funct::Parameter& p10,
758  const funct::Parameter& p11,
759  const funct::Parameter& p12,
760  const funct::Parameter& p13,
761  const funct::Parameter& p14,
762  const funct::Parameter& p15,
763  const funct::Parameter& p16,
764  const funct::Parameter& p17,
765  const funct::Parameter& p18) {
787  return fun;
788  }
789 
790  template <unsigned int args, typename F>
792  const funct::Parameter& p0,
793  const funct::Parameter& p1,
794  const funct::Parameter& p2,
795  const funct::Parameter& p3,
796  const funct::Parameter& p4,
797  const funct::Parameter& p5,
798  const funct::Parameter& p6,
799  const funct::Parameter& p7,
800  const funct::Parameter& p8,
801  const funct::Parameter& p9,
802  const funct::Parameter& p10,
803  const funct::Parameter& p11,
804  const funct::Parameter& p12,
805  const funct::Parameter& p13,
806  const funct::Parameter& p14,
807  const funct::Parameter& p15,
808  const funct::Parameter& p16,
809  const funct::Parameter& p17,
810  const funct::Parameter& p18) {
811  return function<args, helper::null_t>(
812  f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18);
813  }
814 
815  template <unsigned int args, typename Tag, typename F>
817  const funct::Parameter& p0,
818  const funct::Parameter& p1,
819  const funct::Parameter& p2,
820  const funct::Parameter& p3,
821  const funct::Parameter& p4,
822  const funct::Parameter& p5,
823  const funct::Parameter& p6,
824  const funct::Parameter& p7,
825  const funct::Parameter& p8,
826  const funct::Parameter& p9,
827  const funct::Parameter& p10,
828  const funct::Parameter& p11,
829  const funct::Parameter& p12,
830  const funct::Parameter& p13,
831  const funct::Parameter& p14,
832  const funct::Parameter& p15,
833  const funct::Parameter& p16,
834  const funct::Parameter& p17,
835  const funct::Parameter& p18,
836  const funct::Parameter& p19) {
859  return fun;
860  }
861 
862  template <unsigned int args, typename F>
864  const funct::Parameter& p0,
865  const funct::Parameter& p1,
866  const funct::Parameter& p2,
867  const funct::Parameter& p3,
868  const funct::Parameter& p4,
869  const funct::Parameter& p5,
870  const funct::Parameter& p6,
871  const funct::Parameter& p7,
872  const funct::Parameter& p8,
873  const funct::Parameter& p9,
874  const funct::Parameter& p10,
875  const funct::Parameter& p11,
876  const funct::Parameter& p12,
877  const funct::Parameter& p13,
878  const funct::Parameter& p14,
879  const funct::Parameter& p15,
880  const funct::Parameter& p16,
881  const funct::Parameter& p17,
882  const funct::Parameter& p18,
883  const funct::Parameter& p19) {
884  return function<args, helper::null_t>(
885  f, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19);
886  }
887 
888  template <unsigned int args, typename Tag, typename F>
890  F& f, const std::vector<funct::Parameter>& pars) {
893  std::vector<funct::Parameter>::const_iterator i, b = pars.begin(), e = pars.end();
894  for (i = b; i != e; ++i)
896  return fun;
897  }
898 
899  template <unsigned int args, typename F>
901  const std::vector<funct::Parameter>& pars) {
902  return function_t<args, helper::null_t>(f, pars);
903  }
904 
905  template <unsigned int args, typename Tag, typename F>
907  F& f, const std::vector<std::shared_ptr<double> >& pars) {
910  std::vector<std::shared_ptr<double> >::const_iterator i, b = pars.begin(), e = pars.end();
911  for (i = b; i != e; ++i)
913  return fun;
914  }
915 
916  template <unsigned int args, typename F>
918  F& f, const std::vector<std::shared_ptr<double> >& pars) {
919  return function_t<args, helper::null_t>(f, pars);
920  }
921 
922 } // namespace root
923 
924 #endif
helper::RootFunctionHelper< F, args, Tag >::root_function function_t(F &f)
Definition: rootFunction.h:8
double f[11][100]
static void addParameter(const std::shared_ptr< double > &par)
double b
Definition: hdecay.h:118
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:163
static root_function fun(F &f)