meerkat is hosted by Hepforge, IPPP Durham
Meerkat  v1r3
Multidimensional kernel density estimation package
IntersectionPhaseSpace.hh
Go to the documentation of this file.
1 #ifndef INTERSECTION_PHASE_SPACE
2 #define INTERSECTION_PHASE_SPACE
3 
4 #include "AbsPhaseSpace.hh"
5 
6 #include "TMath.h"
7 
8 #include <vector>
9 
13 
15 
16  public:
17 
19 
23  IntersectionPhaseSpace(const char* phaseSpaceName,
24  std::vector<AbsPhaseSpace*> &phspList);
25 
27 
34  IntersectionPhaseSpace(const char* phaseSpaceName,
35  AbsPhaseSpace *phaseSpace1,
36  AbsPhaseSpace *phaseSpace2,
37  AbsPhaseSpace *phaseSpace3=0,
38  AbsPhaseSpace *phaseSpace4=0);
39 
41  virtual ~IntersectionPhaseSpace();
42 
44 
47  UInt_t dimensionality();
48 
50 
54  Bool_t withinLimits(std::vector<Double_t> &x);
55 
57 
61  Double_t lowerLimit(UInt_t var);
62 
64 
68  Double_t upperLimit(UInt_t var);
69 
71 
77  Bool_t limits(UInt_t var,
78  std::vector<Double_t> &x,
79  Double_t* lower,
80  Double_t* upper);
81 
82  private:
83 
85  void init(std::vector<AbsPhaseSpace*> &phspList);
86 
88  UInt_t m_dim;
89 
91  std::vector<AbsPhaseSpace*> m_phspList;
92 
94  std::vector<Double_t> m_lowerLimit;
95 
97  std::vector<Double_t> m_upperLimit;
98 
99 
100 };
101 
102 #endif
IntersectionPhaseSpace(const char *phaseSpaceName, std::vector< AbsPhaseSpace * > &phspList)
Constructor from the vector of component phase spaces.
std::vector< Double_t > m_upperLimit
Vector of cached upper limits in each variable.
std::vector< AbsPhaseSpace * > m_phspList
vector of component phase spaces
UInt_t m_dim
Cached dimensionality of the Intersection phase space.
Abstract class which defines phase space interface.
void init(std::vector< AbsPhaseSpace * > &phspList)
Common initialise function for all constructors.
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...
Double_t upperLimit(UInt_t var)
Return upper allowed limit of the variable.
virtual ~IntersectionPhaseSpace()
Destructor.
std::vector< Double_t > m_lowerLimit
Vector of cached lower limits in each variable.
UInt_t dimensionality()
Get dimensionality of phase space.
Bool_t withinLimits(std::vector< Double_t > &x)
Check if the point is within phase space limits.
Double_t lowerLimit(UInt_t var)
Return lower allowed limit of the variable.