Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
RooGamma.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * Package: RooFitModels
4  *
5  * authors: Stefan A. Schmitz, Gregory Schott
6  * implementation of the Gamma distribution (class structure derived
7  * from the class RooGaussian by Wouter Verkerke and David Kirkby)
8  *
9  * Redistribution and use in source and binary forms, *
10  * with or without modification, are permitted according to the terms *
11  * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
12  *****************************************************************************/
13 
14 #ifndef ROO_GAMMA
15 #define ROO_GAMMA
16 
17 #include "RooAbsPdf.h"
18 #include "RooRealProxy.h"
19 
20 class RooRealVar;
21 
22 class RooGamma : public RooAbsPdf {
23 public:
24  RooGamma() {} ;
25  RooGamma(const char *name, const char *title,
26  RooAbsReal& _x, RooAbsReal& _gamma, RooAbsReal& _beta, RooAbsReal& _mu);
27  RooGamma(const RooGamma& other, const char* name=0) ;
28  virtual TObject* clone(const char* newname) const { return new RooGamma(*this,newname); }
29  inline virtual ~RooGamma() { }
30 
31  Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
32  Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
33 
34  Int_t getGenerator(const RooArgSet& directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) const;
35  void generateEvent(Int_t code);
36 
37 protected:
38 
39  RooRealProxy x ;
40  RooRealProxy gamma ;
41  RooRealProxy beta ;
42  RooRealProxy mu ;
43 
44  Double_t evaluate() const ;
45  RooSpan<double> evaluateBatch(std::size_t begin, std::size_t batchSize) const;
46 
47 
48 private:
49 
50  ClassDef(RooGamma,1) // Gaussian PDF
51 };
52 
53 #endif