Belle II Software  release-05-02-19
InPhi0TanLBox Class Reference

Checker if a position is contained in a family of curves over phi0 and tan lambda. More...

#include <InPhi0TanLBox.h>

Public Types

using HoughBox = Box< DiscretePhi0, ContinuousTanL >
 The box to which this object correspondes.
 

Public Member Functions

 InPhi0TanLBox (float curlCurv)
 Create a new box with the given curler curvature.
 
ESign getDistanceSign (const HoughBox &houghBox, float x, float y, float l, float dxdz, float dydz, ILayer=-1) const
 Function that gives the sign of the distance from an observed drift circle to the sweeped object. More...
 

Private Attributes

float m_curlCurv
 Curler curvature - set to value greater zero to activate one arm exclusive finding.
 

Detailed Description

Checker if a position is contained in a family of curves over phi0 and tan lambda.

Definition at line 32 of file InPhi0TanLBox.h.

Member Function Documentation

◆ getDistanceSign()

ESign getDistanceSign ( const HoughBox houghBox,
float  x,
float  y,
float  l,
float  dxdz,
float  dydz,
ILayer  = -1 
) const
inline

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

Two dimensional arc length

Definition at line 46 of file InPhi0TanLBox.h.

69  {
70  // Reject hit if it is on the inward going branch but the curvature suggest it is no curler
71  if (xRot[0] < 0 and xRot[1] < 0) return ESign::c_Invalid;
72  }
73 
74  // cppcheck-suppress unreadVariable
75  std::array<float, 4> xRotCor;
76  xRotCor[0b00] = xRot[0] + dxdzRot[0] * s[0] * static_cast<float>(tanL[0]);
77  xRotCor[0b01] = xRot[0] + dxdzRot[0] * s[0] * static_cast<float>(tanL[1]);
78  xRotCor[0b10] = xRot[1] + dxdzRot[1] * s[1] * static_cast<float>(tanL[0]);
79  xRotCor[0b11] = xRot[1] + dxdzRot[1] * s[1] * static_cast<float>(tanL[1]);
80 
81  const std::array<float, 4>& sCor = xRotCor;
82 
83  std::array<float, 4> dist;
84  dist[0b00] = -(yRot[0] + dydzRot[0] * sCor[0b00] * static_cast<float>(tanL[0]) + l);
85  dist[0b01] = -(yRot[0] + dydzRot[0] * sCor[0b01] * static_cast<float>(tanL[1]) + l);
86  dist[0b10] = -(yRot[1] + dydzRot[1] * sCor[0b10] * static_cast<float>(tanL[0]) + l);
87  dist[0b11] = -(yRot[1] + dydzRot[1] * sCor[0b11] * static_cast<float>(tanL[1]) + l);
88 
89  return ESignUtil::common(dist);
90  }
91 
92  private:
94  float m_curlCurv;
95  };
96  }
98 }

The documentation for this class was generated from the following file:
Belle2::TrackFindingCDC::ESignUtil::common
static ESign common(ESign n1, ESign n2)
Check if two values have a common sign.
Definition: ESign.h:67
Belle2::TrackFindingCDC::InPhi0TanLBox::m_curlCurv
float m_curlCurv
Curler curvature - set to value greater zero to activate one arm exclusive finding.
Definition: InPhi0TanLBox.h:102