Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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=0) ;
25 virtual TObject* clone(const char* newname) const { return new RooLognormal(*this,newname); }
26 inline virtual ~RooLognormal() { }
27
28 Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
29 Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
30
31 Int_t getGenerator(const RooArgSet& directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) const;
32 void generateEvent(Int_t code);
33
34protected:
35
39
40 double evaluate() const;
41 void computeBatch(cudaStream_t*, double* output, size_t nEvents, RooFit::Detail::DataMap const&) const;
42 inline bool canComputeBatchWithCuda() const { return true; }
43
44private:
45
46 ClassDef(RooLognormal,1) // log-normal PDF
47};
48
49#endif
double Double_t
Definition RtypesCore.h:59
const Bool_t kTRUE
Definition RtypesCore.h:100
#define ClassDef(name, id)
Definition Rtypes.h:325
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:64
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition RooArgSet.h:35
RooFit Lognormal PDF.
virtual ~RooLognormal()
Int_t getGenerator(const RooArgSet &directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) const
Load generatedVars with the subset of directVars that we can generate events for, and return a code t...
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported.
void computeBatch(cudaStream_t *, double *output, size_t nEvents, RooFit::Detail::DataMap const &) const
Compute multiple values of Lognormal distribution.
RooRealProxy k
bool canComputeBatchWithCuda() const
double evaluate() const
ln(k)<1 would correspond to sigma < 0 in the parameterization resulting by transforming a normal rand...
virtual TObject * clone(const char *newname) const
void generateEvent(Int_t code)
Interface for generation of an event using the algorithm corresponding to the specified code.
RooRealProxy x
RooRealProxy m0
Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
RooRealVar represents a variable that can be changed from the outside.
Definition RooRealVar.h:39
Mother of all ROOT objects.
Definition TObject.h:41
static void output(int code)
Definition gifencode.c:226