MINT2
IGenFct.h
Go to the documentation of this file.
1 #ifndef IGENFCT_HH
2 #define IGENFCT_HH
3 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
4 // status: Mon 9 Feb 2009 19:17:58 GMT
5 
7 //#include "Mint/counted_ptr.h"
8 
9 class TRandom;
10 
11 class IGenFct{
12  public:
13  virtual void setLimits(double sMin, double sMax)=0;
14  virtual double getSMi()const=0;
15  virtual double getSMa()const=0;
16  virtual double generate(TRandom* rnd) const=0;
17  virtual double generateRho(TRandom* rnd) const=0;
18 
19  virtual DalitzCoordinate getCoordinate() const=0;
20  virtual void setCoordinate(const DalitzCoordinate& c)=0;
21  virtual double generatingPDFValue(double sij) const=0;
22  virtual double generatingFctValue(double sij) const=0;
23  virtual double integral() const=0;
24 
25  // virtual MINT::counted_ptr<IGenFct> Clone() const=0;
26 
27  virtual bool flat()const{return false;}
28 
29  // co-ordinate transformation stuff for efficient integration
30  // default implementation cover case where there is no
31  // coordinate tranformation implemented.
32  virtual double coordTransformFromS(double s)const{return s;}
33  virtual double coordTransformToS(double rho)const{return rho;}
34  virtual double transformedFctValue(double rho)const{
35  return generatingFctValue(rho); // no transformation
36  };
37  virtual double transformedFctMax()const=0;
38  virtual double getRhoMi()const{return coordTransformFromS(getSMi());}
39  virtual double getRhoMa()const{return coordTransformFromS(getSMa());}
40 
41  virtual ~IGenFct(){};
42 };
43 
44 #endif
45 //
virtual double getSMi() const =0
virtual ~IGenFct()
Definition: IGenFct.h:41
virtual double getSMa() const =0
virtual double generatingFctValue(double sij) const =0
virtual bool flat() const
Definition: IGenFct.h:27
virtual void setLimits(double sMin, double sMax)=0
static const double s
virtual double transformedFctValue(double rho) const
Definition: IGenFct.h:34
virtual double transformedFctMax() const =0
virtual DalitzCoordinate getCoordinate() const =0
virtual double integral() const =0
virtual void setCoordinate(const DalitzCoordinate &c)=0
virtual double coordTransformFromS(double s) const
Definition: IGenFct.h:32
virtual double generateRho(TRandom *rnd) const =0
virtual double generate(TRandom *rnd) const =0
virtual double generatingPDFValue(double sij) const =0
virtual double getRhoMi() const
Definition: IGenFct.h:38
virtual double coordTransformToS(double rho) const
Definition: IGenFct.h:33
virtual double getRhoMa() const
Definition: IGenFct.h:39