11#include <tracking/trackFindingVXD/filterMap/filterFramework/SelectionVariable.h>
12#include <framework/geometry/B2Vector3.h>
16#define ANGLE3DSIMPLE_NAME Angle3DSimple
28 template <
typename Po
intType >
35 static double value(
const PointType&
outerHit,
const PointType& centerHit,
const PointType& innerHit)
39 B2Vector3D innerVector(centerHit.X() - innerHit.X(), centerHit.Y() - innerHit.Y(), centerHit.Z() - innerHit.Z());
42 double result = outerVector.
Dot(innerVector) / (outerVector.
Mag2() * innerVector.
Mag2());
43 return (std::isnan(result) || std::isinf(result)) ?
double(0) : result;
calculates the angle between the hits/vectors (3D), returning unit: none (calculation for degrees is ...
PUT_NAME_FUNCTION(ANGLE3DSIMPLE_NAME)
is replaced by "static const std:string name(void)" frunction which returns name of the Class
static double value(const PointType &outerHit, const PointType ¢erHit, const PointType &innerHit)
calculates the angle between the hits/vectors (3D), returning unit: none (calculation for degrees is ...
DataType Z() const
access variable Z (= .at(2) without boundary check)
DataType X() const
access variable X (= .at(0) without boundary check)
DataType Y() const
access variable Y (= .at(1) without boundary check)
DataType Mag2() const
The magnitude squared (rho^2 in spherical coordinate system).
DataType Dot(const B2Vector3< DataType > &p) const
Scalar product.
Base class of the selection variable objects used for pair filtering.
B2Vector3D outerHit(0, 0, 0)
testing out of range behavior
Abstract base class for different kinds of events.