00001
00002
00012
00013
00014 #ifndef APWeightEntry_h
00015 #define APWeightEntry_h
00016
00017 #include "Rtypes.h"
00018
00019 class TH1F;
00020
00021 class APWeightEntry {
00022
00023 public:
00024 APWeightEntry();
00025 APWeightEntry(unsigned int val_denominator, unsigned int val_numerator, double scale, bool isTrig = false);
00026 virtual ~APWeightEntry();
00028 void ReadEfficiency(double efficiency, double err_low, double err_high);
00029 void SetCoordinates(std::vector<int> coords, std::vector<int> n_dim_origin);
00030
00031 unsigned int GetValDenominator() const;
00032 unsigned int GetValNumerator() const;
00033 double GetExpectancy() const;
00034 double GetVariance() const;
00035 double GetStatUncertLow() const;
00036 double GetStatUncertHigh() const;
00037 double GetSysUncert() const;
00038 double GetSysUncert2() const;
00039 double GetRandom();
00040 TH1F* GetPDF();
00041 unsigned int GetID() const;
00043 std::vector< int > GetCoords() const;
00044 std::vector< int > GetOriginalDimensions() const;
00046 bool IsNaN() const;
00047 bool IsTrig() const;
00049 void SetSystUncert(double rel_uncert);
00050 void SetID(unsigned int id);
00052 private:
00053 APWeightEntry (const APWeightEntry&);
00054 APWeightEntry& operator= (const APWeightEntry&);
00055
00056 void _CreateHist();
00057 void _ComputeCum();
00059 unsigned int _val_denominator;
00060 unsigned int _val_numerator;
00061 double _expectancy_val;
00062 double _variance;
00063 double _stat_uncert_low;
00064 double _stat_uncert_high;
00065 double _sys_uncert;
00066 double _sys_uncert2;
00068 bool _is_trig;
00069 bool _is_nan;
00070 unsigned int _ID;
00071 double _integral;
00072 double *_pdf, *_bins, *_cumul;
00073 TH1F *_hist;
00074 std::vector<int> _coords;
00075 std::vector< int > _n_dim_origin;
00076 };
00077
00078 #endif