5 #ifndef ISF_FASTCALOSIMEVENT_TFCS2DFunctionTemplateInterpolationExpHistogram_h
6 #define ISF_FASTCALOSIMEVENT_TFCS2DFunctionTemplateInterpolationExpHistogram_h
16 template <
typename Txvec,
typename Tyvec,
typename Tz,
typename Trandom =
float>
36 virtual void rnd_to_fct(
float &valuex,
float &valuey,
float rnd,
58 Trandom dfracprev = 0.0;
63 dfrac =
frac - fracprev;
79 if (dfrac > 0.0 && dfracprev > 0.0) {
80 ldfrac =
log(dfrac /
l) -
log(dfracprev / lprev);
83 Trandom dfracnext = 0.0;
84 Trandom ldfracnext = 0.0;
86 if (ibiny < nbinsy - 1) {
93 if (dfrac > 0.0 && dfracnext > 0.0) {
94 ldfracnext =
log(dfracnext / lnext) -
log(dfrac /
l);
97 Trandom
beta = 0.0, betaprev = 0.0, betanext = 0.0;
98 betanext = ldfracnext / (lnext +
l) / 0.5;
99 betaprev = ldfrac / (lprev +
l) / 0.5;
100 beta = 0.5 * (betaprev + betanext);
117 TFCS1DFunction_HistogramInt8BinEdges,
118 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> {
130 TFCS1DFunction_HistogramInt8BinEdges,
131 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> {
143 TFCS1DFunction_HistogramInt8BinEdges,
144 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> {
159 TFCS1DFunction_HistogramInt8BinEdges,
160 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> {
172 TFCS1DFunction_HistogramInt8BinEdges,
173 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> {
185 TFCS1DFunction_HistogramInt8BinEdges,
186 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> {
199 TFCS1DFunction_HistogramInt8BinEdges,
200 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> {
212 TFCS1DFunction_HistogramInt8BinEdges,
213 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> {
225 TFCS1DFunction_HistogramInt8BinEdges,
226 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> {
239 TFCS1DFunction_HistogramInt16BinEdges,
240 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> {
252 TFCS1DFunction_HistogramInt16BinEdges,
253 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> {
265 TFCS1DFunction_HistogramInt16BinEdges,
266 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> {
281 TFCS1DFunction_HistogramInt16BinEdges,
282 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> {
294 TFCS1DFunction_HistogramInt16BinEdges,
295 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> {
307 TFCS1DFunction_HistogramInt16BinEdges,
308 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> {
321 TFCS1DFunction_HistogramInt16BinEdges,
322 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> {
334 TFCS1DFunction_HistogramInt16BinEdges,
335 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> {
347 TFCS1DFunction_HistogramInt16BinEdges,
348 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> {
361 TFCS1DFunction_HistogramInt32BinEdges,
362 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> {
374 TFCS1DFunction_HistogramInt32BinEdges,
375 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> {
387 TFCS1DFunction_HistogramInt32BinEdges,
388 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> {
403 TFCS1DFunction_HistogramInt32BinEdges,
404 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> {
416 TFCS1DFunction_HistogramInt32BinEdges,
417 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> {
429 TFCS1DFunction_HistogramInt32BinEdges,
430 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> {
443 TFCS1DFunction_HistogramInt32BinEdges,
444 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> {
456 TFCS1DFunction_HistogramInt32BinEdges,
457 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> {
469 TFCS1DFunction_HistogramInt32BinEdges,
470 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> {
481 #if defined(__ROOTCLING__) && defined(__FastCaloSimStandAlone__)
482 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
483 TFCS1DFunction_HistogramInt8BinEdges, \
484 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> + \
486 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
487 TFCS1DFunction_HistogramInt8BinEdges, \
488 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> + \
490 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
491 TFCS1DFunction_HistogramInt8BinEdges, \
492 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> + \
494 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
495 TFCS1DFunction_HistogramInt8BinEdges, \
496 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> + \
498 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
499 TFCS1DFunction_HistogramInt8BinEdges, \
500 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> + \
502 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
503 TFCS1DFunction_HistogramInt8BinEdges, \
504 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> + \
506 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
507 TFCS1DFunction_HistogramInt8BinEdges, \
508 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> + \
510 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
511 TFCS1DFunction_HistogramInt8BinEdges, \
512 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> + \
514 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
515 TFCS1DFunction_HistogramInt8BinEdges, \
516 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> + \
518 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
519 TFCS1DFunction_HistogramInt16BinEdges, \
520 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> + \
522 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
523 TFCS1DFunction_HistogramInt16BinEdges, \
524 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> + \
526 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
527 TFCS1DFunction_HistogramInt16BinEdges, \
528 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> + \
530 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
531 TFCS1DFunction_HistogramInt16BinEdges, \
532 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> + \
534 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
535 TFCS1DFunction_HistogramInt16BinEdges, \
536 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> + \
538 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
539 TFCS1DFunction_HistogramInt16BinEdges, \
540 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> + \
542 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
543 TFCS1DFunction_HistogramInt16BinEdges, \
544 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> + \
546 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
547 TFCS1DFunction_HistogramInt16BinEdges, \
548 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> + \
550 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
551 TFCS1DFunction_HistogramInt16BinEdges, \
552 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> + \
554 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
555 TFCS1DFunction_HistogramInt32BinEdges, \
556 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> + \
558 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
559 TFCS1DFunction_HistogramInt32BinEdges, \
560 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> + \
562 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
563 TFCS1DFunction_HistogramInt32BinEdges, \
564 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> + \
566 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
567 TFCS1DFunction_HistogramInt32BinEdges, \
568 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> + \
570 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
571 TFCS1DFunction_HistogramInt32BinEdges, \
572 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> + \
574 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
575 TFCS1DFunction_HistogramInt32BinEdges, \
576 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> + \
578 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
579 TFCS1DFunction_HistogramInt32BinEdges, \
580 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> + \
582 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
583 TFCS1DFunction_HistogramInt32BinEdges, \
584 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> + \
586 #pragma link C++ class TFCS2DFunctionTemplateInterpolationExpHistogram < \
587 TFCS1DFunction_HistogramInt32BinEdges, \
588 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> + \
591 #pragma link C++ class TFCS2DFunctionInt8Int8Int8InterpolationExpHistogram + ;
592 #pragma link C++ class TFCS2DFunctionInt8Int8Int16InterpolationExpHistogram + ;
593 #pragma link C++ class TFCS2DFunctionInt8Int8Int32InterpolationExpHistogram + ;
594 #pragma link C++ class TFCS2DFunctionInt8Int16Int8InterpolationExpHistogram + ;
595 #pragma link C++ class TFCS2DFunctionInt8Int16Int16InterpolationExpHistogram + ;
596 #pragma link C++ class TFCS2DFunctionInt8Int16Int32InterpolationExpHistogram + ;
597 #pragma link C++ class TFCS2DFunctionInt8Int32Int8InterpolationExpHistogram + ;
598 #pragma link C++ class TFCS2DFunctionInt8Int32Int16InterpolationExpHistogram + ;
599 #pragma link C++ class TFCS2DFunctionInt8Int32Int32InterpolationExpHistogram + ;
600 #pragma link C++ class TFCS2DFunctionInt16Int8Int8InterpolationExpHistogram + ;
601 #pragma link C++ class TFCS2DFunctionInt16Int8Int16InterpolationExpHistogram + ;
602 #pragma link C++ class TFCS2DFunctionInt16Int8Int32InterpolationExpHistogram + ;
603 #pragma link C++ class TFCS2DFunctionInt16Int16Int8InterpolationExpHistogram + ;
605 C++ class TFCS2DFunctionInt16Int16Int16InterpolationExpHistogram + \
608 C++ class TFCS2DFunctionInt16Int16Int32InterpolationExpHistogram + \
610 #pragma link C++ class TFCS2DFunctionInt16Int32Int8InterpolationExpHistogram + ;
612 C++ class TFCS2DFunctionInt16Int32Int16InterpolationExpHistogram + \
615 C++ class TFCS2DFunctionInt16Int32Int32InterpolationExpHistogram + \
617 #pragma link C++ class TFCS2DFunctionInt32Int8Int8InterpolationExpHistogram + ;
618 #pragma link C++ class TFCS2DFunctionInt32Int8Int16InterpolationExpHistogram + ;
619 #pragma link C++ class TFCS2DFunctionInt32Int8Int32InterpolationExpHistogram + ;
620 #pragma link C++ class TFCS2DFunctionInt32Int16Int8InterpolationExpHistogram + ;
622 C++ class TFCS2DFunctionInt32Int16Int16InterpolationExpHistogram + \
625 C++ class TFCS2DFunctionInt32Int16Int32InterpolationExpHistogram + \
627 #pragma link C++ class TFCS2DFunctionInt32Int32Int8InterpolationExpHistogram + ;
629 C++ class TFCS2DFunctionInt32Int32Int16InterpolationExpHistogram + \
632 C++ class TFCS2DFunctionInt32Int32Int32InterpolationExpHistogram + \