meerkat is hosted by Hepforge, IPPP Durham
Meerkat  v1r3
Multidimensional kernel density estimation package
ParametricPhaseSpace.hh
Go to the documentation of this file.
1 #ifndef PARAMETRIC_PHASE_SPACE
2 #define PARAMETRIC_PHASE_SPACE
3 
4 #include "AbsPhaseSpace.hh"
5 
6 #include "TMath.h"
7 #include "TFormula.h"
8 
9 #include <vector>
10 
15 
17 
18  public:
19 
21 
29  ParametricPhaseSpace(const char* phspName,
30  AbsPhaseSpace* basePhaseSpace,
31  const char* lowerFormula,
32  const char* upperFormula,
33  Double_t lowerLimit,
34  Double_t upperLimit);
35 
37  virtual ~ParametricPhaseSpace();
38 
40  UInt_t dimensionality() { return m_dim; }
41 
43  Bool_t withinLimits(std::vector<Double_t> &x);
44 
46  Double_t lowerLimit(UInt_t var);
47 
49  Double_t upperLimit(UInt_t var);
50 
52 
58  Bool_t limits(UInt_t var, std::vector<Double_t> &x, Double_t* lower, Double_t* upper);
59 
60  private:
61 
63  Double_t m_lowerLimit;
64 
66  Double_t m_upperLimit;
67 
69  TFormula* m_lowerFormula;
70 
72  TFormula* m_upperFormula;
73 
75  UInt_t m_dim;
76 
79 };
80 
81 #endif
82 
Double_t m_lowerLimit
Lower limit in additional variable.
Double_t upperLimit(UInt_t var)
Get upper limit.
TFormula * m_lowerFormula
Lower limit formula.
UInt_t m_dim
Cached dimensionality.
Bool_t limits(UInt_t var, std::vector< Double_t > &x, Double_t *lower, Double_t *upper)
Return limits (lower and upper) for the variable at the certain point of the phase space...
Bool_t withinLimits(std::vector< Double_t > &x)
Check if the point is within the phase space limits.
virtual ~ParametricPhaseSpace()
Destructor.
Abstract class which defines phase space interface.
Double_t lowerLimit(UInt_t var)
Get lower limit.
AbsPhaseSpace * m_phaseSpace
Base phase space.
TFormula * m_upperFormula
Upper limit formula.
ParametricPhaseSpace(const char *phspName, AbsPhaseSpace *basePhaseSpace, const char *lowerFormula, const char *upperFormula, Double_t lowerLimit, Double_t upperLimit)
Constructor.
Double_t m_upperLimit
Upper limit in additional variable.
UInt_t dimensionality()
Get dimensionality of the phase space.