1#ifndef ROOFITPHOTOPEAKPDFS_H
2#define ROOFITPHOTOPEAKPDFS_H
6#include <RooFit/EvalContext.h>
7#include <RooRealProxy.h>
67 RooStepShelf(
const char *name,
const char *title, RooAbsReal &x,
68 RooAbsReal &mu, RooAbsReal &sigma);
76 TObject *
clone(
const char *newname =
nullptr)
const override {
88 const char *rangeName =
nullptr)
const override;
97 const char *rangeName =
nullptr)
const override;
108 void doEval(RooFit::EvalContext &ctx)
const override;
111#ifdef AU_ROOFIT_BACKEND_CUDA
153 RooLowExpTail(
const char *name,
const char *title, RooAbsReal &x,
154 RooAbsReal &mu, RooAbsReal &sigma, RooAbsReal &tau_ratio);
162 TObject *
clone(
const char *newname =
nullptr)
const override {
174 const char *rangeName =
nullptr)
const override;
183 const char *rangeName =
nullptr)
const override;
194 void doEval(RooFit::EvalContext &ctx)
const override;
197#ifdef AU_ROOFIT_BACKEND_CUDA
239 RooLowLinTail(
const char *name,
const char *title, RooAbsReal &x,
240 RooAbsReal &mu, RooAbsReal &sigma, RooAbsReal &slope);
248 TObject *
clone(
const char *newname =
nullptr)
const override {
260 const char *rangeName =
nullptr)
const override;
269 const char *rangeName =
nullptr)
const override;
280 void doEval(RooFit::EvalContext &ctx)
const override;
283#ifdef AU_ROOFIT_BACKEND_CUDA
322 RooHighExpTail(
const char *name,
const char *title, RooAbsReal &x,
323 RooAbsReal &mu, RooAbsReal &sigma, RooAbsReal &tau_ratio);
331 TObject *
clone(
const char *newname =
nullptr)
const override {
343 const char *rangeName =
nullptr)
const override;
352 const char *rangeName =
nullptr)
const override;
363 void doEval(RooFit::EvalContext &ctx)
const override;
366#ifdef AU_ROOFIT_BACKEND_CUDA
Exponential tail above the photopeak, convolved with the resolution.
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
Advertise the analytic integral over the observable.
bool canComputeBatchWithCuda() const override
Whether doEval() can consume device-resident buffers.
RooHighExpTail()
Default constructor for ROOT I/O; leaves proxies unbound.
Double_t evaluate() const override
Scalar evaluation for a single observable value.
Double_t analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Evaluate the analytic integral advertised above.
void doEval(RooFit::EvalContext &ctx) const override
Batched evaluation over every event in one pass.
TObject * clone(const char *newname=nullptr) const override
RooFit clone hook.
Exponential tail below the photopeak, convolved with the resolution.
Double_t evaluate() const override
Scalar evaluation for a single observable value.
RooLowExpTail()
Default constructor for ROOT I/O; leaves proxies unbound.
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
Advertise the analytic integral over the observable.
Double_t analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Evaluate the analytic integral advertised above.
TObject * clone(const char *newname=nullptr) const override
RooFit clone hook.
bool canComputeBatchWithCuda() const override
Whether doEval() can consume device-resident buffers.
void doEval(RooFit::EvalContext &ctx) const override
Batched evaluation over every event in one pass.
Linear tail below the photopeak, convolved with the resolution.
Double_t analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Evaluate the analytic integral advertised above.
RooLowLinTail()
Default constructor for ROOT I/O; leaves proxies unbound.
TObject * clone(const char *newname=nullptr) const override
RooFit clone hook.
void doEval(RooFit::EvalContext &ctx) const override
Batched evaluation over every event in one pass.
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
Advertise the analytic integral over the observable.
bool canComputeBatchWithCuda() const override
Whether doEval() can consume device-resident buffers.
Double_t evaluate() const override
Scalar evaluation for a single observable value.
Resolution-smeared step on the low side of the photopeak.
bool canComputeBatchWithCuda() const override
Whether doEval() can consume device-resident buffers.
Double_t analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Evaluate the analytic integral advertised above.
void doEval(RooFit::EvalContext &ctx) const override
Batched evaluation over every event in one pass.
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
Advertise the analytic integral over the observable.
RooStepShelf()
Default constructor for ROOT I/O; leaves proxies unbound.
TObject * clone(const char *newname=nullptr) const override
RooFit clone hook.
Double_t evaluate() const override
Scalar evaluation for a single observable value.