CMS 3D CMS Logo

RectangularEtaPhiRegion.h
Go to the documentation of this file.
1 #ifndef DataFormats_Math_RectangularEtaPhiRegion_h
2 #define DataFormats_Math_RectangularEtaPhiRegion_h
3 
5 
7 {
8  public:
9 
10  RectangularEtaPhiRegion(float etaLow, float etaHigh, float phiLow, float phiHigh) :
11  ceta(0.5f*(etaHigh+etaLow)),deta(0.5f*std::abs(etaHigh-etaLow))
12  {
13  phiHigh = proxim(phiHigh,phiLow);
14  constexpr float c1 = 2.*M_PI;
15  if (phiHigh<phiLow) phiHigh+=c1;
16  dphi = 0.5f*(phiHigh-phiLow);
17  cphi = phiLow+dphi;
18  }
19 
20  bool inRegion(float eta, float phi) const {
21  return std::abs(eta-ceta)<deta &&
23  }
24 
25  auto etaLow() const { return ceta-deta; }
26  auto etaHigh() const { return ceta+deta; }
27  auto phiLow() const { return cphi-dphi; }
28  auto phiHigh() const { return cphi+dphi; }
29 
30  private:
31 
32  float ceta;
33  float deta;
34  float cphi;
35  float dphi;
36 
37 };
38 
39 #endif
#define constexpr
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double f[11][100]
#define M_PI
T proxim(T b, T a)
Definition: normalizedPhi.h:14
RectangularEtaPhiRegion(float etaLow, float etaHigh, float phiLow, float phiHigh)
bool inRegion(float eta, float phi) const