10#include <tracking/trackFindingCDC/fitting/CDCFitter2D.h>
12#include <tracking/trackFindingCDC/fitting/CDCObservations2D.h>
14#include <tracking/trackingUtilities/eventdata/trajectories/CDCTrajectory2D.h>
16#include <tracking/trackFindingCDC/fitting/EFitVariance.h>
17#include <tracking/trackFindingCDC/fitting/EFitPos.h>
24 namespace TrackFindingCDC {
26 template <
class AFitMethod>
34 template <
class AFitMethod>
37 template <
class AFitMethod>
43 template <
class AFitMethod>
47 update(result, observations2D);
51 template <
class AFitMethod>
58 template <
class AFitMethod>
61 AFitMethod::update(trajectory2D, observations2D);
64 template <
class AFitMethod>
70 template <
class AFitMethod>
76 template <
class AFitMethod>
82 template <
class AFitMethod>
89 template <
class AFitMethod>
95 template <
class AFitMethod>
101 template <
class AFitMethod>
108 template <
class AFitMethod>
115 template <
class AFitMethod>
122 template <
class AFitMethod>
123 template <
class AHits>
131 template <
class AFitMethod>
132 template <
class AStartHits,
class AEndHits>
141 template <
class AFitMethod>
142 template <
class AStartHits,
class AEndHits>
144 const AStartHits& startHits,
145 const AEndHits& endHits)
const
151 observations2D.
setFitPos(EFitPos::c_RecoPos);
155 observations2D.
setFitPos(EFitPos::c_RLDriftCircle);
160 observations2D.
setFitPos(EFitPos::c_RecoPos);
164 observations2D.
setFitPos(EFitPos::c_RLDriftCircle);
168 if (observations2D.
size() < 4) {
169 trajectory2D.
clear();
171 AFitMethod::update(trajectory2D, observations2D);
175 template <
class AFitMethod>
176 template <
class AHits>
184 observations2D.
setFitPos(EFitPos::c_RecoPos);
188 observations2D.
setFitPos(EFitPos::c_RLDriftCircle);
192 if (observations2D.
size() < 4) {
193 trajectory2D.
clear();
195 AFitMethod::update(trajectory2D, observations2D);
199 template <
class AFitMethod>
206 template <
class AFitMethod>
213 template <
class AFitMethod>
220 template <
class AFitMethod>
TrackingUtilities::CDCTrajectory2D fitGeneric(const AHits &hits) const
Fits a collection of hit typs which are convertible to observation circles.
~CDCFitter2D()
Default destructor.
void updateGeneric(TrackingUtilities::CDCTrajectory2D &trajectory2D, const AHits &hits) const
Updates a given trajectory with a fit to a collection of hits types, which are convertible to observa...
bool m_useOrientation
Flag indicating the reference position and drift length with right left orientation shall be used in ...
TrackingUtilities::CDCTrajectory2D fit(const CDCObservations2D &observations2D) const
Fits a collection of observation drift circles.
void setFitVariance(EFitVariance fitVariance)
Setup the fitter to use the given variance measure by default.
void useOnlyOrientation()
Setup the fitter to use only reference position and the drift length with right left orientation.
void update(TrackingUtilities::CDCTrajectory2D &trajectory2D, const CDCObservations2D &observations2D) const
CDCFitter2D()
Default constructor.
void usePositionAndOrientation()
Setup the fitter to use both the reconstructed position and the reference position and the drift leng...
TrackingUtilities::CDCTrajectory2D fitGeneric(const AStartHits &startHits, const AEndHits &endHits) const
Fits together two collections of hit types which are convertible to observation circles.
void update(TrackingUtilities::CDCTrajectory2D &trajectory2D, CDCObservations2D &&observations2D) const
Update the trajectory with a fit to the observations.
bool m_usePosition
Flag indicating the reconstructed position shall be used in the fit.
EFitVariance m_fitVariance
Default variance to be used in the fit.
void useOnlyPosition()
Setup the fitter to use only the reconstructed positions of the hits.
Class serving as a storage of observed drift circles to present to the Riemann fitter.
void setFitVariance(EFitVariance fitVariance)
Setter for the indicator that the drift variance should be used.
std::size_t appendRange(const TrackingUtilities::CDCSegment2D &segment2D)
Appends all reconstructed hits from the two dimensional segment.
std::size_t size() const
Returns the number of observations stored.
void setFitPos(EFitPos fitPos)
Setter for the indicator that the reconstructed position should be favoured.
Class representing a pair of reconstructed axial segments in adjacent superlayer.
A reconstructed sequence of two dimensional hits in one super layer.
A segment consisting of three dimensional reconstructed hits.
Class representing a sequence of three dimensional reconstructed hits.
Particle trajectory as it is seen in xy projection represented as a circle.
void clear()
Clears all information from this trajectory.
A segment consisting of two dimensional reconstructed hits.
Abstract base class for different kinds of events.