64 _mirrorLeft(
kFALSE), _mirrorRight(kFALSE),
65 _asymLeft(kFALSE), _asymRight(kFALSE)
78 _x(
"x",
"observable",this,x),
83 _mirrorLeft(mirror==MirrorLeft || mirror==MirrorBoth || mirror==MirrorLeftAsymRight),
84 _mirrorRight(mirror==MirrorRight || mirror==MirrorBoth || mirror==MirrorAsymLeftRight),
85 _asymLeft(mirror==MirrorAsymLeft || mirror==MirrorAsymLeftRight || mirror==MirrorAsymBoth),
86 _asymRight(mirror==MirrorAsymRight || mirror==MirrorLeftAsymRight || mirror==MirrorAsymBoth),
109 _x(
"x",
"Observable",this,xpdf),
114 _mirrorLeft(mirror==MirrorLeft || mirror==MirrorBoth || mirror==MirrorLeftAsymRight),
115 _mirrorRight(mirror==MirrorRight || mirror==MirrorBoth || mirror==MirrorAsymLeftRight),
116 _asymLeft(mirror==MirrorAsymLeft || mirror==MirrorAsymLeftRight || mirror==MirrorAsymBoth),
117 _asymRight(mirror==MirrorAsymRight || mirror==MirrorLeftAsymRight || mirror==MirrorAsymBoth),
136 RooAbsPdf(other,name), _x(
"x",this,other._x), _nEvents(other._nEvents),
137 _dataPts(0), _dataWgts(0), _weights(0), _sumWgt(0),
138 _mirrorLeft( other._mirrorLeft ), _mirrorRight( other._mirrorRight ),
139 _asymLeft(other._asymLeft), _asymRight(other._asymRight),
186 {
return a.x < b.x; }
194 std::vector<Data> tmp;
222 std::sort(tmp.begin(), tmp.end(), cmp());
228 for (
unsigned i = 0; i < tmp.size(); ++i) {
234 std::vector<Data> tmp2;
260 if (xlo >= xhi)
continue;
268 for (
Int_t k = binlo; k <= binhi; ++k, chi += chi2incr) {
278 if (xlo >= xhi)
continue;
286 for (
Int_t k = binlo; k <= binhi; ++k, chi += chi2incr) {
297 if (xlo >= xhi)
continue;
305 for (
Int_t k = binlo; k <= binhi; ++k, chi += chi2incr) {
311 for (
Int_t i=0;i<_nPoints+1;++i)
361 for (
Int_t i = imin + 2; i < imax; ++i)
362 sum += 2. * _lookupTable[i];
369 sum +=
_binWidth * (1. - dxmin) * 0.5 * (_lookupTable[imin + 1] +
370 _lookupTable[imin] + dxmin *
371 (_lookupTable[imin + 1] - _lookupTable[imin]));
373 sum +=
_binWidth * dxmax * 0.5 * (_lookupTable[imax] +
374 _lookupTable[imax] + dxmax *
375 (_lookupTable[imax + 1] - _lookupTable[imax]));
376 }
else if (imin == imax) {
378 sum +=
_binWidth * (dxmax - dxmin) * 0.5 * (
379 _lookupTable[imin] + dxmin *
380 (_lookupTable[imin + 1] - _lookupTable[imin]) +
381 _lookupTable[imax] + dxmax *
382 (_lookupTable[imax + 1] - _lookupTable[imax]));
414 for ( ; it < iend; ++it) {
virtual Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral. ...
Double_t _lookupTable[_nPoints+1]
static Vc_ALWAYS_INLINE int_v min(const int_v &x, const int_v &y)
virtual Double_t maxVal(Int_t code) const
Return maximum value for set of observables identified by code assigned in getMaxVal.
Bool_t contains(const RooAbsArg &var) const
Double_t g(Double_t x, Double_t sigma) const
virtual Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported...
const RooAbsReal & arg() const
static const double x2[5]
double pow(double, double)
Double_t evaluate() const
std::vector< std::vector< double > > Data
Double_t getVal(const RooArgSet *set=0) const
void LoadDataSet(RooDataSet &data)
static const Double_t _nSigma
virtual Int_t getMaxVal(const RooArgSet &vars) const
Advertise capability to determine maximum value of function for given set of observables.
virtual Double_t weight() const
Return event weight of current event.
virtual Int_t numEntries() const
RooAbsArg * absArg() const
virtual const char * GetName() const
Returns name of object.
TRObject operator()(const T1 &t1) const
static const double x1[5]
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
static Vc_ALWAYS_INLINE int_v max(const int_v &x, const int_v &y)
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
Double_t min(const char *rname=0) const
Bool_t matchArgs(const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a) const
Utility function for use in getAnalyticalIntegral().
double norm(double *x, double *p)
virtual const RooArgSet * get(Int_t index) const
Return RooArgSet with coordinates of event 'index'.
Double_t max(const char *rname=0) const