meerkat is hosted by Hepforge, IPPP Durham
Meerkat  v1r3
Multidimensional kernel density estimation package
AbsPhaseSpace.hh
Go to the documentation of this file.
1 #ifndef ABS_PHASE_SPACE
2 #define ABS_PHASE_SPACE
3 
4 #include "TMath.h"
5 
6 #include <vector>
7 
9 
11 
12  public:
13 
15 
18  AbsPhaseSpace(const char* phaseSpaceName);
19 
21  virtual ~AbsPhaseSpace();
22 
24 
27  virtual UInt_t dimensionality() = 0;
28 
30 
34  virtual Bool_t withinLimits(std::vector<Double_t> &x) = 0;
35 
37 
41  virtual Double_t lowerLimit(UInt_t var) = 0;
42 
44 
48  virtual Double_t upperLimit(UInt_t var) = 0;
49 
51 
57  virtual Bool_t limits(UInt_t var, std::vector<Double_t> &x, Double_t* lower, Double_t* upper) = 0;
58 
60 
63  const char* name(void) { return m_name; }
64 
65  protected:
66 
68  char m_name[256];
69 
70 };
71 
72 #endif
AbsPhaseSpace(const char *phaseSpaceName)
Constructor.
virtual Double_t upperLimit(UInt_t var)=0
Return upper allowed limit of the variable.
char m_name[256]
Phase space name.
Abstract class which defines phase space interface.
virtual UInt_t dimensionality()=0
Get dimensionality of phase space.
virtual Double_t lowerLimit(UInt_t var)=0
Return lower allowed limit of the variable.
virtual Bool_t limits(UInt_t var, std::vector< Double_t > &x, Double_t *lower, Double_t *upper)=0
Return limits (lower and upper) for the variable at a certain point of the phase space.
const char * name(void)
Return the name of the phase space.
virtual Bool_t withinLimits(std::vector< Double_t > &x)=0
Check if the point is within phase space limits.
virtual ~AbsPhaseSpace()
Destructor.