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.
static ESign common(ESign n1, ESign n2)
Check if two values have a common sign.
Abstract base class for different kinds of events.