Warning, file /include/root/Roo2DKeysPdf.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef ROO_2DKEYS
0017 #define ROO_2DKEYS
0018
0019 #include "RooAbsPdf.h"
0020 #include "RooRealProxy.h"
0021 #include "RooAbsReal.h"
0022 #include "RooDataSet.h"
0023
0024
0025 class Roo2DKeysPdf : public RooAbsPdf
0026 {
0027 public:
0028 Roo2DKeysPdf(const char *name, const char *title,
0029 RooAbsReal& xx, RooAbsReal &yy, RooDataSet& data, TString options = "a", double widthScaleFactor = 1.0);
0030 Roo2DKeysPdf(const Roo2DKeysPdf& other, const char* name=nullptr);
0031 TObject* clone(const char* newname) const override { return new Roo2DKeysPdf(*this,newname); }
0032
0033 ~Roo2DKeysPdf() override;
0034
0035
0036
0037 Int_t loadDataSet(RooDataSet& data, TString options);
0038
0039
0040
0041
0042
0043
0044
0045
0046 void setOptions(TString options);
0047 void getOptions(void) const;
0048
0049
0050
0051
0052
0053
0054
0055
0056 inline void setWidthScaleFactor(double widthScaleFactor);
0057
0058
0059
0060
0061 Int_t calculateBandWidth(Int_t kernel = -999);
0062
0063 Int_t getBandWidthType() const;
0064 double getMean(const char * axis) const;
0065 double getSigma(const char * axis) const;
0066
0067
0068 void PrintInfo(std::ostream &) const;
0069
0070
0071
0072
0073
0074 void writeToFile(char * outputFile, const char * name) const;
0075 void writeHistToFile(char * outputFile, const char * histName) const;
0076 void writeNTupleToFile(char * outputFile, const char * name) const;
0077
0078 RooRealProxy x;
0079 RooRealProxy y;
0080
0081 double evaluate() const override;
0082
0083 protected:
0084
0085 private:
0086
0087 double evaluateFull(double thisX, double thisY) const;
0088 double g(double var1, double * _var1, double sigma1, double var2,
0089 double * _var2, double sigma2) const;
0090
0091
0092 double highBoundaryCorrection(double thisVar, double thisH, double high, double tVar) const;
0093 double lowBoundaryCorrection(double thisVar, double thisH, double low, double tVar) const;
0094
0095 double * _x;
0096 double * _hx;
0097 double * _y;
0098 double * _hy;
0099 double _norm;
0100 double _xMean;
0101 double _xSigma;
0102 double _yMean;
0103 double _ySigma;
0104 double _n;
0105 double _n16;
0106 double _sqrt2pi;
0107 double _2pi;
0108 double _lox,_hix;
0109 double _loy,_hiy;
0110 double _xoffset;
0111 double _yoffset;
0112 double _widthScaleFactor;
0113
0114 Int_t _nEvents;
0115 Int_t _BandWidthType;
0116 Int_t _MirrorAtBoundary;
0117 Int_t _debug;
0118 Int_t _verbosedebug;
0119 Int_t _vverbosedebug;
0120
0121 ClassDefOverride(Roo2DKeysPdf,0)
0122 };
0123
0124 inline void Roo2DKeysPdf::setWidthScaleFactor(double widthScaleFactor) { _widthScaleFactor = widthScaleFactor; }
0125
0126 #endif