CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
List of all members | Public Member Functions | Private Attributes
PhiInterval Class Reference

#include <PhiInterval.h>

Public Member Functions

template<typename T >
bool inside (Basic3DVector< T > const &v) const
 
bool inside (float ix, float iy) const
 
 PhiInterval (float phi1, float phi2)
 
 PhiInterval (float ix, float iy, float dphi)
 

Private Attributes

float dcos
 
float x
 
float y
 

Detailed Description

Definition at line 6 of file PhiInterval.h.

Constructor & Destructor Documentation

◆ PhiInterval() [1/2]

PhiInterval::PhiInterval ( float  phi1,
float  phi2 
)
inline

Definition at line 8 of file PhiInterval.h.

References alignmentValidation::c1, funct::cos(), dcos, M_PI, phi, proxim(), funct::sin(), x, and y.

8  {
9  phi2 = proxim(phi2, phi1);
10  constexpr float c1 = 2. * M_PI;
11  if (phi2 < phi1)
12  phi2 += c1;
13  auto dphi = 0.5f * (phi2 - phi1);
14  auto phi = phi1 + dphi;
15  x = std::cos(phi);
16  y = std::sin(phi);
17  dcos = std::cos(dphi);
18  }
float dcos
Definition: PhiInterval.h:36
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
constexpr T proxim(T b, T a)
Definition: normalizedPhi.h:14
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
#define M_PI

◆ PhiInterval() [2/2]

PhiInterval::PhiInterval ( float  ix,
float  iy,
float  dphi 
)
inline

Definition at line 20 of file PhiInterval.h.

References funct::cos(), dcos, mathSSE::sqrt(), x, and y.

20  {
21  auto norm = 1.f / std::sqrt(ix * ix + iy * iy);
22  x = ix * norm;
23  y = iy * norm;
24  dcos = std::cos(dphi);
25  }
float dcos
Definition: PhiInterval.h:36
T sqrt(T t)
Definition: SSEVec.h:19
Cos< T >::type cos(const T &t)
Definition: Cos.h:22

Member Function Documentation

◆ inside() [1/2]

template<typename T >
bool PhiInterval::inside ( Basic3DVector< T > const &  v) const
inline

Definition at line 28 of file PhiInterval.h.

References findQualityFiles::v.

28  {
29  return inside(v.x(), v.y());
30  }
bool inside(Basic3DVector< T > const &v) const
Definition: PhiInterval.h:28

◆ inside() [2/2]

bool PhiInterval::inside ( float  ix,
float  iy 
) const
inline

Definition at line 32 of file PhiInterval.h.

References dcos, mathSSE::sqrt(), x, and y.

32 { return ix * x + iy * y > dcos * std::sqrt(ix * ix + iy * iy); }
float dcos
Definition: PhiInterval.h:36
T sqrt(T t)
Definition: SSEVec.h:19

Member Data Documentation

◆ dcos

float PhiInterval::dcos
private

Definition at line 36 of file PhiInterval.h.

Referenced by inside(), and PhiInterval().

◆ x

float PhiInterval::x
private

◆ y

float PhiInterval::y
private