5#ifndef ISF_FASTCALOSIMEVENT_TFCS2DFunctionTemplateHistogram_h
6#define ISF_FASTCALOSIMEVENT_TFCS2DFunctionTemplateHistogram_h
16template <
typename Txvec,
typename Tyvec,
typename Tz,
typename Trandom =
float>
53 Int_t nbinsx = hist->GetNbinsX();
54 Int_t nbinsy = hist->GetNbinsY();
55 std::vector<double> temp_HistoContents;
59 printf(
"initializing 2D template...");
67 hist->GetXaxis()->GetBinUpEdge(nbinsx));
69 hist->GetYaxis()->GetBinUpEdge(nbinsy));
71 for (Int_t ibinx = 1; ibinx <= hist->GetNbinsX(); ++ibinx) {
73 ibinx, hist->GetXaxis()->GetBinLowEdge(ibinx + 1));
85 for (Int_t ibiny = 1; ibiny <= hist->GetNbinsY(); ++ibiny) {
87 ibiny, hist->GetYaxis()->GetBinLowEdge(ibiny + 1));
100 for (Int_t ibinx = 1; ibinx <= hist->GetNbinsX(); ++ibinx)
101 for (Int_t ibiny = 1; ibiny <= hist->GetNbinsY(); ++ibiny) {
102 int globalbin = (ibinx - 1) * hist->GetNbinsY() + ibiny - 1;
104 globalbin, temp_HistoContents[globalbin] /
integral);
181 Trandom residual_rnd;
197 Trandom residual_rnd;
254 TFCS1DFunction_HistogramInt8BinEdges,
255 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> {
260 uint8_t, float>(
h){};
268 TFCS1DFunction_HistogramInt8BinEdges,
269 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> {
274 uint16_t, float>(
h){};
282 TFCS1DFunction_HistogramInt8BinEdges,
283 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> {
288 uint32_t, float>(
h){};
295 TFCS1DFunction_HistogramInt8BinEdges,
296 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> {
301 uint8_t, float>(
h){};
309 TFCS1DFunction_HistogramInt8BinEdges,
310 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> {
315 uint16_t, float>(
h){};
323 TFCS1DFunction_HistogramInt8BinEdges,
324 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> {
329 uint32_t, float>(
h){};
336 TFCS1DFunction_HistogramInt8BinEdges,
337 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> {
342 uint8_t, float>(
h){};
349 TFCS1DFunction_HistogramInt8BinEdges,
350 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> {
355 uint16_t, float>(
h){};
362 TFCS1DFunction_HistogramInt8BinEdges,
363 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> {
368 uint32_t, float>(
h){};
376 TFCS1DFunction_HistogramInt16BinEdges,
377 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> {
382 uint8_t, float>(
h){};
390 TFCS1DFunction_HistogramInt16BinEdges,
391 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> {
396 uint16_t, float>(
h){};
404 TFCS1DFunction_HistogramInt16BinEdges,
405 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> {
410 uint32_t, float>(
h){};
417 TFCS1DFunction_HistogramInt16BinEdges,
418 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> {
423 uint8_t, float>(
h){};
431 TFCS1DFunction_HistogramInt16BinEdges,
432 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> {
437 uint16_t, float>(
h){};
445 TFCS1DFunction_HistogramInt16BinEdges,
446 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> {
451 uint32_t, float>(
h){};
458 TFCS1DFunction_HistogramInt16BinEdges,
459 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> {
464 uint8_t, float>(
h){};
471 TFCS1DFunction_HistogramInt16BinEdges,
472 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> {
477 uint16_t, float>(
h){};
484 TFCS1DFunction_HistogramInt16BinEdges,
485 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> {
490 uint32_t, float>(
h){};
498 TFCS1DFunction_HistogramInt32BinEdges,
499 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> {
504 uint8_t, float>(
h){};
512 TFCS1DFunction_HistogramInt32BinEdges,
513 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> {
518 uint16_t, float>(
h){};
526 TFCS1DFunction_HistogramInt32BinEdges,
527 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> {
532 uint32_t, float>(
h){};
539 TFCS1DFunction_HistogramInt32BinEdges,
540 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> {
545 uint8_t, float>(
h){};
553 TFCS1DFunction_HistogramInt32BinEdges,
554 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> {
559 uint16_t, float>(
h){};
567 TFCS1DFunction_HistogramInt32BinEdges,
568 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> {
573 uint32_t, float>(
h){};
580 TFCS1DFunction_HistogramInt32BinEdges,
581 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> {
586 uint8_t, float>(
h){};
593 TFCS1DFunction_HistogramInt32BinEdges,
594 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> {
599 uint16_t, float>(
h){};
606 TFCS1DFunction_HistogramInt32BinEdges,
607 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> {
612 uint32_t, float>(
h){};
618#if defined(__ROOTCLING__) && defined(__FastCaloSimStandAlone__)
619#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
620 TFCS1DFunction_HistogramInt8BinEdges, \
621 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> + \
623#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
624 TFCS1DFunction_HistogramInt8BinEdges, \
625 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> + \
627#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
628 TFCS1DFunction_HistogramInt8BinEdges, \
629 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> + \
631#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
632 TFCS1DFunction_HistogramInt8BinEdges, \
633 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> + \
635#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
636 TFCS1DFunction_HistogramInt8BinEdges, \
637 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> + \
639#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
640 TFCS1DFunction_HistogramInt8BinEdges, \
641 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> + \
643#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
644 TFCS1DFunction_HistogramInt8BinEdges, \
645 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> + \
647#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
648 TFCS1DFunction_HistogramInt8BinEdges, \
649 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> + \
651#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
652 TFCS1DFunction_HistogramInt8BinEdges, \
653 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> + \
655#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
656 TFCS1DFunction_HistogramInt16BinEdges, \
657 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> + \
659#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
660 TFCS1DFunction_HistogramInt16BinEdges, \
661 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> + \
663#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
664 TFCS1DFunction_HistogramInt16BinEdges, \
665 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> + \
667#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
668 TFCS1DFunction_HistogramInt16BinEdges, \
669 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> + \
671#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
672 TFCS1DFunction_HistogramInt16BinEdges, \
673 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> + \
675#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
676 TFCS1DFunction_HistogramInt16BinEdges, \
677 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> + \
679#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
680 TFCS1DFunction_HistogramInt16BinEdges, \
681 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> + \
683#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
684 TFCS1DFunction_HistogramInt16BinEdges, \
685 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> + \
687#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
688 TFCS1DFunction_HistogramInt16BinEdges, \
689 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> + \
691#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
692 TFCS1DFunction_HistogramInt32BinEdges, \
693 TFCS1DFunction_HistogramInt8BinEdges, uint8_t, float> + \
695#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
696 TFCS1DFunction_HistogramInt32BinEdges, \
697 TFCS1DFunction_HistogramInt8BinEdges, uint16_t, float> + \
699#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
700 TFCS1DFunction_HistogramInt32BinEdges, \
701 TFCS1DFunction_HistogramInt8BinEdges, uint32_t, float> + \
703#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
704 TFCS1DFunction_HistogramInt32BinEdges, \
705 TFCS1DFunction_HistogramInt16BinEdges, uint8_t, float> + \
707#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
708 TFCS1DFunction_HistogramInt32BinEdges, \
709 TFCS1DFunction_HistogramInt16BinEdges, uint16_t, float> + \
711#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
712 TFCS1DFunction_HistogramInt32BinEdges, \
713 TFCS1DFunction_HistogramInt16BinEdges, uint32_t, float> + \
715#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
716 TFCS1DFunction_HistogramInt32BinEdges, \
717 TFCS1DFunction_HistogramInt32BinEdges, uint8_t, float> + \
719#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
720 TFCS1DFunction_HistogramInt32BinEdges, \
721 TFCS1DFunction_HistogramInt32BinEdges, uint16_t, float> + \
723#pragma link C++ class TFCS2DFunctionTemplateHistogram < \
724 TFCS1DFunction_HistogramInt32BinEdges, \
725 TFCS1DFunction_HistogramInt32BinEdges, uint32_t, float> + \
728#pragma link C++ class TFCS2DFunctionInt8Int8Int8Histogram + ;
729#pragma link C++ class TFCS2DFunctionInt8Int8Int16Histogram + ;
730#pragma link C++ class TFCS2DFunctionInt8Int8Int32Histogram + ;
731#pragma link C++ class TFCS2DFunctionInt8Int16Int8Histogram + ;
732#pragma link C++ class TFCS2DFunctionInt8Int16Int16Histogram + ;
733#pragma link C++ class TFCS2DFunctionInt8Int16Int32Histogram + ;
734#pragma link C++ class TFCS2DFunctionInt8Int32Int8Histogram + ;
735#pragma link C++ class TFCS2DFunctionInt8Int32Int16Histogram + ;
736#pragma link C++ class TFCS2DFunctionInt8Int32Int32Histogram + ;
738#pragma link C++ class TFCS2DFunctionInt16Int8Int8Histogram + ;
739#pragma link C++ class TFCS2DFunctionInt16Int8Int16Histogram + ;
740#pragma link C++ class TFCS2DFunctionInt16Int8Int32Histogram + ;
741#pragma link C++ class TFCS2DFunctionInt16Int16Int8Histogram + ;
742#pragma link C++ class TFCS2DFunctionInt16Int16Int16Histogram + ;
743#pragma link C++ class TFCS2DFunctionInt16Int16Int32Histogram + ;
744#pragma link C++ class TFCS2DFunctionInt16Int32Int8Histogram + ;
745#pragma link C++ class TFCS2DFunctionInt16Int32Int16Histogram + ;
746#pragma link C++ class TFCS2DFunctionInt16Int32Int32Histogram + ;
748#pragma link C++ class TFCS2DFunctionInt32Int8Int8Histogram + ;
749#pragma link C++ class TFCS2DFunctionInt32Int8Int16Histogram + ;
750#pragma link C++ class TFCS2DFunctionInt32Int8Int32Histogram + ;
751#pragma link C++ class TFCS2DFunctionInt32Int16Int8Histogram + ;
752#pragma link C++ class TFCS2DFunctionInt32Int16Int16Histogram + ;
753#pragma link C++ class TFCS2DFunctionInt32Int16Int32Histogram + ;
754#pragma link C++ class TFCS2DFunctionInt32Int32Int8Histogram + ;
755#pragma link C++ class TFCS2DFunctionInt32Int32Int16Histogram + ;
756#pragma link C++ class TFCS2DFunctionInt32Int32Int32Histogram + ;
uint32_t TFCS1DFunction_size_t
Header file for AthHistogramAlgorithm.
TFCS2DFunctionInt16Int16Int16Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt16Int16Int32Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt16Int16Int8Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt16Int32Int16Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt16Int32Int32Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt16Int32Int8Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt16Int8Int16Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt16Int8Int32Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt16Int8Int8Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt32Int16Int16Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt32Int16Int32Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt32Int16Int8Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt32Int32Int16Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt32Int32Int32Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt32Int32Int8Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt32Int8Int16Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt32Int8Int32Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt32Int8Int8Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt8Int16Int16Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt8Int16Int32Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt8Int16Int8Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt8Int32Int16Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt8Int32Int32Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt8Int32Int8Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt8Int8Int16Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt8Int8Int32Histogram(TH2 *h=nullptr)
TFCS2DFunctionInt8Int8Int8Histogram(TH2 *h=nullptr)
size_t get_nbins() const
return number of bins
std::size_t MemorySizeArray() const
TFCS1DFunction_size_t size_t
Tyvec & get_HistoBordersy()
const Txvec & get_HistoBordersx() const
void set_nbins(size_t nbinsx, size_t nbinsy)
set number of bins
const TFCS1DFunction_HistogramContent< Tz, Trandom > & get_HistoContents() const
const Tyvec & get_HistoBordersy() const
void Initialize(const TH2 *hist)
Initialize from root histogram.
virtual void rnd_to_fct(float &valuex, float &valuey, float rnd) const
~TFCS2DFunctionTemplateHistogram()
TFCS2DFunctionTemplateHistogram(TH2 *hist=nullptr)
virtual void rnd_to_fct(float &valuex, float &valuey, float rnd, float rnd2) const
Txvec & get_HistoBordersx()
inline void get_XYZfromGlobal(int &ix, int &iy, int &iz, int global) const {hist;}...
std::size_t MemorySize() const
Gives the total memory size, including the size of additional memory allocated inside the class.
TFCS1DFunction_HistogramContent< Tz, Trandom > m_HistoContents
TFCS1DFunction_HistogramContent< Tz, Trandom > & get_HistoContents()
static double CheckAndIntegrate2DHistogram(const TH2 *hist, std::vector< double > &integral_vec, int &first, int &last)
virtual void rnd_to_fct(float &valuex, float &valuey, float rnd0, float rnd1) const =0