11 #include <tracking/trackFindingVXD/filterMap/filterFramework/SelectionVariable.h>
12 #include <tracking/trackFindingVXD/filterMap/threeHitVariables/CircleCenterXY.h>
13 #include <tracking/trackFindingVXD/filterMap/twoHitVariables/CosDirectionXY.h>
14 #include <framework/geometry/B2Vector3.h>
17 #define DELTASOVERZ_NAME DeltaSoverZ
27 template <
typename Po
intType >
36 static double value(
const PointType& outerHit,
const PointType& centerHit,
const PointType& innerHit)
39 B2Vector3D circleCenter = CircleCenterXY<PointType>::value(outerHit, centerHit, innerHit);
40 B2Vector3D points2outerHit((outerHit.X() - circleCenter.
X()),
41 (outerHit.Y() - circleCenter.
Y()),
42 (outerHit.Z() - circleCenter.
Z()));
43 B2Vector3D points2centerHit((centerHit.X() - circleCenter.
X()),
44 (centerHit.Y() - circleCenter.
Y()),
45 (centerHit.Z() - circleCenter.
Z()));
46 B2Vector3D points2innerHit((innerHit.X() - circleCenter.
X()),
47 (innerHit.Y() - circleCenter.
Y()),
48 (innerHit.Z() - circleCenter.
Z()));
50 double alfaOC = acos(CosDirectionXY<B2Vector3D>::value(points2outerHit, points2centerHit));
51 double alfaCI = acos(CosDirectionXY<B2Vector3D>::value(points2centerHit, points2innerHit));
54 return (alfaOC *
double(centerHit.Z() - innerHit.Z())) - (alfaCI * double(outerHit.Z() - centerHit.Z()));
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)
calculates the helixparameter describing the deviation in arc length per unit in z.
PUT_NAME_FUNCTION(DELTASOVERZ_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 helixparameter describing the deviation in arc length per unit in z.
Base class of the selection variable objects used for pair filtering.
Abstract base class for different kinds of events.