CMS 3D CMS Logo

Cone.cc
Go to the documentation of this file.
1 
2 
5 
6 #include <iostream>
7 
9  // FIXME: to be implemented...
10  std::cout << "*** WARNING: Cone::tangentPlane not implemented." << std::endl;
11  abort();
13 }
14 
16  // FIXME: to be implemented...
17  std::cout << "*** WARNING: Cone::tangentPlane not implemented." << std::endl;
18  abort();
20 }
21 
23  // FIXME: should be done in local coordinates as this is not correct in the case the verstex is not on the (global) Z axis!!!!
24 
25  // tolerance is interpreted as max distance from cone surface.
26  // FIXME: check case when vertex().z()==inf.
27  GlobalPoint p1(p.x(), p.y(), p.z() - vertex().z());
28 
29  // handle the singularity of p=vertex (i.e. p1.mag() undefined)
30  if (p1.mag() < tolerance)
32  double delta = double(p1.theta()) - double(openingAngle());
33  if (fabs(delta) < tolerance / p1.mag())
35 
36  if (p1.theta() < Geom::pi() / 2.) {
38  } else {
40  }
41 }
double Scalar
Definition: Definitions.h:25
T z() const
Definition: PV3DBase.h:61
const double tolerance
Geom::Theta< float > openingAngle() const
Angle of the cone.
Definition: Cone.h:50
Side side(const LocalPoint &p, Scalar tolerance) const override
Definition: Cone.h:54
constexpr double pi()
Definition: Pi.h:31
ConstReferenceCountingPointer< TangentPlane > tangentPlane(const GlobalPoint &) const override
Definition: Cone.cc:8
GlobalPoint vertex() const
Global position of the cone vertex.
Definition: Cone.h:47