55 std::log(std::numeric_limits<Double_t>::epsilon()));
74 _x(
"x",
"observable",this,
x),
79 _mirrorLeft(mirror==MirrorLeft || mirror==MirrorBoth || mirror==MirrorLeftAsymRight),
80 _mirrorRight(mirror==MirrorRight || mirror==MirrorBoth || mirror==MirrorAsymLeftRight),
81 _asymLeft(mirror==MirrorAsymLeft || mirror==MirrorAsymLeftRight || mirror==MirrorAsymBoth),
82 _asymRight(mirror==MirrorAsymRight || mirror==MirrorLeftAsymRight || mirror==MirrorAsymBoth),
103 _x(
"x",
"Observable",this,xpdf),
108 _mirrorLeft(mirror==MirrorLeft || mirror==MirrorBoth || mirror==MirrorLeftAsymRight),
109 _mirrorRight(mirror==MirrorRight || mirror==MirrorBoth || mirror==MirrorAsymLeftRight),
110 _asymLeft(mirror==MirrorAsymLeft || mirror==MirrorAsymLeftRight || mirror==MirrorAsymBoth),
111 _asymRight(mirror==MirrorAsymRight || mirror==MirrorLeftAsymRight || mirror==MirrorAsymBoth),
128 RooAbsPdf(other,
name), _x(
"x",this,other._x), _nEvents(other._nEvents),
129 _dataPts(0), _dataWgts(0), _weights(0), _sumWgt(0),
130 _mirrorLeft( other._mirrorLeft ), _mirrorRight( other._mirrorRight ),
131 _asymLeft(other._asymLeft), _asymRight(other._asymRight),
174 inline bool operator()(
const struct Data&
a,
const struct Data&
b)
const
175 {
return a.x <
b.x; }
183 std::vector<Data> tmp;
211 std::sort(tmp.begin(), tmp.end(), cmp());
217 for (
unsigned i = 0; i < tmp.size(); ++i) {
223 std::vector<Data> tmp2;
231 Double_t norm=
h*std::sqrt(sigmav)/(2.0*std::sqrt(3.0));
249 if (xlo >= xhi)
continue;
257 for (
Int_t k = binlo; k <= binhi; ++k, chi += chi2incr) {
267 if (xlo >= xhi)
continue;
275 for (
Int_t k = binlo; k <= binhi; ++k, chi += chi2incr) {
286 if (xlo >= xhi)
continue;
294 for (
Int_t k = binlo; k <= binhi; ++k, chi += chi2incr) {
350 for (
Int_t i = imin + 2; i < imax; ++i)
365 }
else if (imin == imax) {
385 Double_t max = -std::numeric_limits<Double_t>::max();
402 for ( ; it < iend; ++it) {
404 y += std::exp(-0.5 *
r *
r);
static const double x2[5]
static const double x1[5]
TRObject operator()(const T1 &t1) const
Bool_t contains(const RooAbsArg &var) const
Check if collection contains an argument with the same name as var.
virtual Int_t numEntries() const
Return number of entries in dataset, i.e., count unweighted entries.
RooAbsRealLValue is the common abstract base class for objects that represent a real value that may a...
virtual Double_t getMax(const char *name=0) const
Get maximum of currently defined range.
virtual Double_t getMin(const char *name=0) const
Get miniminum of currently defined range.
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Bool_t matchArgs(const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a) const
Utility function for use in getAnalyticalIntegral().
Double_t getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
RooAbsArg * absArg() const
RooArgSet is a container object that can hold multiple RooAbsArg objects.
RooDataSet is a container class to hold unbinned data.
virtual const RooArgSet * get(Int_t index) const override
Return RooArgSet with coordinates of event 'index'.
virtual Double_t weight() const override
Return event weight of current event.
Class RooKeysPdf implements a one-dimensional kernel estimation p.d.f which model the distribution of...
RooKeysPdf()
coverity[UNINIT_CTOR]
virtual Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
virtual Double_t maxVal(Int_t code) const
Return maximum value for set of observables identified by code assigned in getMaxVal.
void LoadDataSet(RooDataSet &data)
virtual Int_t getMaxVal(const RooArgSet &vars) const
Advertise capability to determine maximum value of function for given set of observables.
Double_t g(Double_t x, Double_t sigma) const
static const Double_t _nSigma
Double_t _lookupTable[_nPoints+1]
Double_t evaluate() const
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
virtual Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported.
RooRealVar represents a variable that can be changed from the outside.
double min(const char *rname=0) const
Query lower limit of range. This requires the payload to be RooAbsRealLValue or derived.
double max(const char *rname=0) const
Query upper limit of range. This requires the payload to be RooAbsRealLValue or derived.
const T & arg() const
Return reference to object held in proxy.
virtual const char * GetName() const
Returns name of object.
static uint64_t sum(uint64_t i)