Belle II Software development
APhi0Sweeped< T, APhi0 > Class Template Reference

Takes a basic object and sweeps it by some angle phi0 range a around the origin. More...

#include <Phi0Sweeped.h>

Inheritance diagram for APhi0Sweeped< T, APhi0 >:

Public Types

using HoughBox = SweepBox<APhi0, typename T::HoughBox>
 The box to which this object corresponds.
 
using SubordinaryHoughBox = typename T::HoughBox
 The hough box without the sweep in phi0.
 

Public Member Functions

 APhi0Sweeped (float curlCurv)
 Constructor taking the curling curvature.
 
TrackingUtilities::ESign getDistanceSign (const HoughBox &houghBox, float x, float y, float signedDriftLength, float dxdz=0, float dydz=0, TrackingUtilities::ILayer iCLayer=-1) const
 Function that gives the sign of the distance from an observed drift circle to the sweeped object.
 

Private Attributes

float m_curlCurv = NAN
 The curvature above which the trajectory is considered a curler.
 

Detailed Description

template<class T, class APhi0 = DiscretePhi0>
class Belle2::TrackFindingCDC::APhi0Sweeped< T, APhi0 >

Takes a basic object and sweeps it by some angle phi0 range a around the origin.

Definition at line 28 of file Phi0Sweeped.h.

Member Typedef Documentation

◆ HoughBox

template<class T, class APhi0 = DiscretePhi0>
using HoughBox = SweepBox<APhi0, typename T::HoughBox>

The box to which this object corresponds.

Definition at line 36 of file Phi0Sweeped.h.

◆ SubordinaryHoughBox

template<class T, class APhi0 = DiscretePhi0>
using SubordinaryHoughBox = typename T::HoughBox

The hough box without the sweep in phi0.

Definition at line 39 of file Phi0Sweeped.h.

Constructor & Destructor Documentation

◆ APhi0Sweeped()

template<class T, class APhi0 = DiscretePhi0>
APhi0Sweeped ( float curlCurv)
inline

Constructor taking the curling curvature.

Definition at line 42 of file Phi0Sweeped.h.

42: m_curlCurv(curlCurv) {}

Member Function Documentation

◆ getDistanceSign()

template<class T, class APhi0 = DiscretePhi0>
TrackingUtilities::ESign getDistanceSign ( const HoughBox & houghBox,
float x,
float y,
float signedDriftLength,
float dxdz = 0,
float dydz = 0,
TrackingUtilities::ILayer iCLayer = -1 ) const
inline

Function that gives the sign of the distance from an observed drift circle to the sweeped object.

Definition at line 47 of file Phi0Sweeped.h.

54 {
55 const ROOT::Math::XYVector& lowerPhi0Vec(houghBox.template getLowerBound<APhi0>());
56 const ROOT::Math::XYVector& upperPhi0Vec(houghBox.template getUpperBound<APhi0>());
57 const SubordinaryHoughBox& subordinaryHoughBox = houghBox.getSubordinaryBox();
58
59 const float lowerX = x * lowerPhi0Vec.x() + y * lowerPhi0Vec.y();
60 const float upperX = x * upperPhi0Vec.x() + y * upperPhi0Vec.y();
61
62 float lowerCurv(getLowerCurv(houghBox));
63 float upperCurv(getUpperCurv(houghBox));
64
65 const bool lowerIsNonCurler = fabs(lowerCurv) < m_curlCurv;
66 const bool upperIsNonCurler = fabs(upperCurv) < m_curlCurv;
67
68 if (lowerIsNonCurler and upperIsNonCurler) {
69 if (not(lowerX >= 0) and not(upperX >= 0)) return ESign::c_Invalid;
70 }
71
72 const float lowerY = -x * lowerPhi0Vec.y() + y * lowerPhi0Vec.x();
73 const float upperY = -x * upperPhi0Vec.y() + y * upperPhi0Vec.x();
74
75 const float upperDXDZ = dxdz * upperPhi0Vec.x() + dydz * upperPhi0Vec.y();
76 const float lowerDXDZ = dxdz * lowerPhi0Vec.x() + dydz * lowerPhi0Vec.y();
77
78
79 const float lowerDYDZ = -dxdz * lowerPhi0Vec.y() + dydz * lowerPhi0Vec.x();
80 const float upperDYDZ = -dxdz * upperPhi0Vec.y() + dydz * upperPhi0Vec.x();
81
82 const TrackingUtilities::ESign lowerDistSign = T::getDistanceSign(subordinaryHoughBox,
83 lowerX, lowerY,
84 signedDriftLength,
85 lowerDXDZ, lowerDYDZ.
86 iCLayer);
87
88 const TrackingUtilities::ESign upperDistSign = T::getDistanceSign(subordinaryHoughBox,
89 upperX, upperY,
90 signedDriftLength,
91 upperDXDZ, upperDYDZ,
92 iCLayer);
93
94 return TrackingUtilities::ESignUtil::common(lowerDistSign, upperDistSign);
95 }

Member Data Documentation

◆ m_curlCurv

template<class T, class APhi0 = DiscretePhi0>
float m_curlCurv = NAN
private

The curvature above which the trajectory is considered a curler.

Definition at line 99 of file Phi0Sweeped.h.


The documentation for this class was generated from the following file: