Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
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
ConstReferenceCountingPointer<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
ConstReferenceCountingPointer<TangentPlane>
();
13
}
14
15
ConstReferenceCountingPointer<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
ConstReferenceCountingPointer<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:25
ConstReferenceCountingPointer
Definition:
ReferenceCounted.h:81
align::Scalar
double Scalar
Definition:
Definitions.h:27
PV3DBase::y
T y() const
Definition:
PV3DBase.h:63
Cone::vertex
GlobalPoint vertex() const
Global position of the cone vertex.
Definition:
Cone.h:55
SurfaceOrientation::negativeSide
Definition:
Surface.h:25
PV3DBase::z
T z() const
Definition:
PV3DBase.h:64
SurfaceOrientation::Side
Side
Definition:
Surface.h:25
TangentPlane.h
Cone::tangentPlane
virtual ConstReferenceCountingPointer< TangentPlane > tangentPlane(const GlobalPoint &) const
Definition:
Cone.cc:8
Cone::side
virtual Side side(const LocalPoint &p, Scalar tolerance) const
Definition:
Cone.h:63
AlCaHLTBitMon_ParallelJobs.p
tuple p
Definition:
AlCaHLTBitMon_ParallelJobs.py:152
Point3DBase< float, GlobalTag >
p1
double p1[4]
Definition:
TauolaWrapper.h:89
Geom::pi
double pi()
Definition:
Pi.h:31
SurfaceOrientation::onSurface
Definition:
Surface.h:25
gather_cfg.cout
tuple cout
Definition:
gather_cfg.py:121
PV3DBase::x
T x() const
Definition:
PV3DBase.h:62
Cone.h
Cone::openingAngle
Geom::Theta< float > openingAngle() const
Angle of the cone.
Definition:
Cone.h:58
Generated for CMSSW Reference Manual by
1.8.5