Logo ROOT  
Reference Guide
RooLognormal.h
Go to the documentation of this file.
1 /*****************************************************************************
2 * Project: RooFit *
3 * @(#)root/roofit:$Id$ *
4 * *
5 * RooFit Lognormal PDF *
6 * *
7 * Author: Gregory Schott and Stefan Schmitz *
8 * *
9 *****************************************************************************/
10
11#ifndef ROO_LOGNORMAL
12#define ROO_LOGNORMAL
13
14#include "RooAbsPdf.h"
15#include "RooRealProxy.h"
16
17class RooRealVar;
18
19class RooLognormal : public RooAbsPdf {
20public:
22 RooLognormal(const char *name, const char *title,
23 RooAbsReal& _x, RooAbsReal& _m0, RooAbsReal& _k);
24 RooLognormal(const RooLognormal& other, const char* name=nullptr) ;
25 TObject* clone(const char* newname) const override { return new RooLognormal(*this,newname); }
26 inline ~RooLognormal() override { }
27
28 Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=nullptr) const override ;
29 double analyticalIntegral(Int_t code, const char* rangeName=nullptr) const override ;
30
31 Int_t getGenerator(const RooArgSet& directVars, RooArgSet &generateVars, bool staticInitOK=true) const override;
32 void generateEvent(Int_t code) override;
33
34protected:
35
39
40 double evaluate() const override ;
41 void computeBatch(cudaStream_t*, double* output, size_t nEvents, RooFit::Detail::DataMap const&) const override;
42 inline bool canComputeBatchWithCuda() const override { return true; }
43
44private:
45
46 ClassDefOverride(RooLognormal,1) // log-normal PDF
47};
48
49#endif
#define ClassDefOverride(name, id)
Definition: Rtypes.h:339
char name[80]
Definition: TGX11.cxx:110
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:62
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:56
RooFit Lognormal PDF.
Definition: RooLognormal.h:19
Int_t getGenerator(const RooArgSet &directVars, RooArgSet &generateVars, bool staticInitOK=true) const override
Load generatedVars with the subset of directVars that we can generate events for, and return a code t...
TObject * clone(const char *newname) const override
Definition: RooLognormal.h:25
RooRealProxy k
Definition: RooLognormal.h:38
void generateEvent(Int_t code) override
Interface for generation of an event using the algorithm corresponding to the specified code.
~RooLognormal() override
Definition: RooLognormal.h:26
void computeBatch(cudaStream_t *, double *output, size_t nEvents, RooFit::Detail::DataMap const &) const override
Compute multiple values of Lognormal distribution.
double analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
bool canComputeBatchWithCuda() const override
Definition: RooLognormal.h:42
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported.
RooRealProxy x
Definition: RooLognormal.h:36
RooRealProxy m0
Definition: RooLognormal.h:37
double evaluate() const override
ln(k)<1 would correspond to sigma < 0 in the parameterization resulting by transforming a normal rand...
RooRealVar represents a variable that can be changed from the outside.
Definition: RooRealVar.h:40
Mother of all ROOT objects.
Definition: TObject.h:41
static void output()