Belle II Software development
Distance3DSquared.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <tracking/trackFindingVXD/filterMap/filterFramework/SelectionVariable.h>
12#include <math.h>
13
14//use this class name only
15#define DISTANCE3DSQUARED_NAME Distance3DSquared
16
17namespace Belle2 {
24 template <typename PointType>
25 class DISTANCE3DSQUARED_NAME : public SelectionVariable< PointType, 2, double > {
26 public:
29
30
31
33 static double value(const PointType& outerHit, const PointType& innerHit)
34 {
35
36 return
37 std::pow(outerHit.X() - innerHit.X(), 2) +
38 std::pow(outerHit.Y() - innerHit.Y(), 2) +
39 std::pow(outerHit.Z() - innerHit.Z(), 2) ;
40 }
41 };
42
44}
DataType Z() const
access variable Z (= .at(2) without boundary check)
Definition: B2Vector3.h:435
DataType X() const
access variable X (= .at(0) without boundary check)
Definition: B2Vector3.h:431
DataType Y() const
access variable Y (= .at(1) without boundary check)
Definition: B2Vector3.h:433
This is the specialization for SpacePoints with returning floats, where value calculates the squared ...
static double value(const PointType &outerHit, const PointType &innerHit)
calculates the squared distance between the hits (3D), returning unit: cm^2 for speed optimization
PUT_NAME_FUNCTION(DISTANCE3DSQUARED_NAME)
is replaced by "static const std:string name(void)" frunction which returns name of the Class
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.