Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
src
DataFormats
GeometrySurface
src
Cone.cc
Go to the documentation of this file.
1
2
3
#include "
DataFormats/GeometrySurface/interface/Cone.h
"
4
#include "
DataFormats/GeometrySurface/interface/TangentPlane.h
"
5
6
#include <iostream>
7
8
ReferenceCountingPointer<TangentPlane>
Cone::tangentPlane
(
const
GlobalPoint
&)
const
{
9
// FIXME: to be implemented...
10
std::cout
<<
"*** WARNING: Cone::tangentPlane not implemented."
<<std::endl;
11
abort();
12
return
ReferenceCountingPointer<TangentPlane>
();
13
}
14
15
ReferenceCountingPointer<TangentPlane>
Cone::tangentPlane
(
const
LocalPoint
&)
const
{
16
// FIXME: to be implemented...
17
std::cout
<<
"*** WARNING: Cone::tangentPlane not implemented."
<<std::endl;
18
abort();
19
return
ReferenceCountingPointer<TangentPlane>
();
20
}
21
22
Surface::Side
Cone::side
(
const
GlobalPoint
&
p
,
Scalar
tolerance)
const
{
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)
return
SurfaceOrientation::onSurface
;
31
double
delta
= double(
p1
.theta())-
double
(
openingAngle
());
32
if
(fabs(delta) < tolerance/
p1
.mag())
return
SurfaceOrientation::onSurface
;
33
34
if
(
p1
.theta() <
Geom::pi
()/2.) {
35
return
(delta>0. ?
SurfaceOrientation::positiveSide
:
SurfaceOrientation::negativeSide
);
36
}
else
{
37
return
(delta>0. ?
SurfaceOrientation::negativeSide
:
SurfaceOrientation::positiveSide
);
38
}
39
}
delta
dbl * delta
Definition:
mlp_gen.cc:36
SurfaceOrientation::positiveSide
Definition:
Surface.h:19
align::Scalar
double Scalar
Definition:
Definitions.h:27
PV3DBase::y
T y() const
Definition:
PV3DBase.h:57
Cone::tangentPlane
virtual ReferenceCountingPointer< TangentPlane > tangentPlane(const GlobalPoint &) const
Definition:
Cone.cc:8
ReferenceCountingPointer
Definition:
ReferenceCounted.h:61
Cone::vertex
GlobalPoint vertex() const
Global position of the cone vertex.
Definition:
Cone.h:50
SurfaceOrientation::negativeSide
Definition:
Surface.h:19
PV3DBase::z
T z() const
Definition:
PV3DBase.h:58
SurfaceOrientation::Side
Side
Definition:
Surface.h:19
TangentPlane.h
Cone::side
virtual Side side(const LocalPoint &p, Scalar tolerance) const
Definition:
Cone.h:58
L1TEmulatorMonitor_cff.p
tuple p
Definition:
L1TEmulatorMonitor_cff.py:48
Point3DBase< float, GlobalTag >
p1
double p1[4]
Definition:
TauolaWrapper.h:89
Geom::pi
double pi()
Definition:
Pi.h:31
SurfaceOrientation::onSurface
Definition:
Surface.h:19
gather_cfg.cout
tuple cout
Definition:
gather_cfg.py:41
PV3DBase::x
T x() const
Definition:
PV3DBase.h:56
Cone.h
Cone::openingAngle
Geom::Theta< float > openingAngle() const
Angle of the cone.
Definition:
Cone.h:53
Generated for CMSSW Reference Manual by
1.8.5