10#include <tracking/trackFindingCDC/hough/perigee/ImpactRep.h>
11#include <tracking/trackFindingCDC/hough/boxes/SweepBox.h>
12#include <tracking/trackFindingCDC/hough/baseelements/SameSignChecker.h>
13#include <tracking/trackFindingCDC/topology/ILayer.h>
20 namespace TrackFindingCDC {
25 template<
class T,
class AImpact = ContinuousImpact>
34 using HoughBox = SweepBox<AImpact, typename T::HoughBox>;
45 float signedDriftLength,
48 ILayer iCLayer = -1)
const
50 float lowerImpact(houghBox.template getLowerBound<AImpact>());
51 float upperImpact(houghBox.template getUpperBound<AImpact>());
54 const float lowerY = y - lowerImpact;
55 const ESign lowerDistSign = T::getDistanceSign(subordinaryHoughBox,
61 const float upperY = y - upperImpact;
62 const ESign upperDistSign = T::getDistanceSign(subordinaryHoughBox,
Takes a basic object and sweeps it by some d0 range in the y direction.
ESign getDistanceSign(const HoughBox &houghBox, float x, float y, float signedDriftLength, float dxdz=0, float dydz=0, ILayer iCLayer=-1) const
Function that gives the sign of the distance from an observed drift circle to the sweeped object.
SweepBox< AImpact, typename T::HoughBox > HoughBox
The box to which this object corresponds.
typename T::HoughBox SubordinaryHoughBox
The hough box without the sweep in d0.
ESign
Enumeration for the distinct sign values of floating point variables.
static ESign common(ESign n1, ESign n2)
Check if two values have a common sign.
Abstract base class for different kinds of events.