Belle II Software development
CDCFitter2D< AFitMethod > Class Template Reference

Class implementing a fit for two dimensional trajectory circle using a generic fitting backend. More...

#include <CDCFitter2D.h>

Inheritance diagram for CDCFitter2D< AFitMethod >:

Public Member Functions

 CDCFitter2D ()
 Default constructor.
 
 ~CDCFitter2D ()
 Default destructor.
 
CDCTrajectory2D fit (const CDCObservations2D &observations2D) const
 Fits a collection of observation drift circles.
 
CDCTrajectory2D fit (CDCObservations2D &&observations2D) const
 Fits a collection of observation drift circles.
 
void update (CDCTrajectory2D &trajectory2D, const CDCObservations2D &observations2D) const
 Update the trajectory with a fit to the observations.
 
void update (CDCTrajectory2D &trajectory2D, CDCObservations2D &&observations2D) const
 Update the trajectory with a fit to the observations.
 
CDCTrajectory2D fit (const CDCTrack &track) const
 Fits the track.
 
CDCTrajectory2D fit (const CDCSegment3D &segment) const
 Fits the segment.
 
CDCTrajectory2D fit (const CDCSegment2D &fromSegment, const CDCSegment2D &toSegment) const
 Fits to the two segments.
 
CDCTrajectory2D fit (const CDCSegment2D &segment) const
 Fits the segment.
 
CDCTrajectory2D fit (const std::vector< const CDCWireHit * > &wireHit) const
 Fits to the wire hit observations.
 
CDCTrajectory2D fit (const std::vector< const CDCWire * > &wires) const
 Fits to the wire positions. Explicit specialisation to be used from python.
 
CDCTrajectory2D fit (const CDCWireHitSegment &wireHits) const
 Fits to the wire positions. Explicit specialisation to be used from python.
 
void update (CDCTrajectory2D &trajectory2D, const CDCSegment2D &segment) const
 Updates the given trajectory inplace from the given segment.
 
void update (CDCTrajectory2D &trajectory2D, const CDCAxialSegmentPair &axialSegmentPair) const
 Updates the given trajectory inplace from the given segment pair.
 
void useOnlyPosition ()
 Setup the fitter to use only the reconstructed positions of the hits.
 
void useOnlyOrientation ()
 Setup the fitter to use only reference position and the drift length with right left orientation.
 
void usePositionAndOrientation ()
 Setup the fitter to use both the reconstructed position and the reference position and the drift length with right left orientation.
 
void setFitVariance (EFitVariance fitVariance)
 Setup the fitter to use the given variance measure by default.
 

Private Member Functions

template<class AHits >
CDCTrajectory2D fitGeneric (const AHits &hits) const
 Fits a collection of hit typs which are convertable to observation circles.
 
template<class AStartHits , class AEndHits >
CDCTrajectory2D fitGeneric (const AStartHits &startHits, const AEndHits &endHits) const
 Fits together two collections of hit types which are convertable to observation circles.
 
template<class AHits >
void updateGeneric (CDCTrajectory2D &trajectory2D, const AHits &hits) const
 Updates a given trajectory with a fit to a collection of hits types, which are convertable to observation circles.
 
template<class AStartHits , class AEndHits >
void updateGeneric (CDCTrajectory2D &trajectory2D, const AStartHits &startHits, const AEndHits &endHits) const
 Updates a given trajectory with a fit to two collection of hit types, which are convertable to observation circles.
 

Private Attributes

bool m_usePosition = true
 Flag indicating the reconstructed position shall be used in the fit.
 
bool m_useOrientation = false
 Flag indicating the reference position and drift length with right left orientation shall be used in the fit.
 
EFitVariance m_fitVariance = EFitVariance::c_Proper
 Default variance to be used in the fit.
 

Detailed Description

template<class AFitMethod>
class Belle2::TrackFindingCDC::CDCFitter2D< AFitMethod >

Class implementing a fit for two dimensional trajectory circle using a generic fitting backend.

Definition at line 33 of file CDCFitter2D.h.

Constructor & Destructor Documentation

◆ CDCFitter2D()

Default constructor.

Definition at line 27 of file CDCFitter2D.icc.h.

28 : m_usePosition(true)
29 , m_useOrientation(false)
30 , m_fitVariance(EFitVariance::c_Proper)
31 {
32 }
bool m_useOrientation
Flag indicating the reference position and drift length with right left orientation shall be used in ...
Definition: CDCFitter2D.h:127
bool m_usePosition
Flag indicating the reconstructed position shall be used in the fit.
Definition: CDCFitter2D.h:124
EFitVariance m_fitVariance
Default variance to be used in the fit.
Definition: CDCFitter2D.h:130

Member Function Documentation

◆ fit() [1/9]

CDCTrajectory2D fit ( CDCObservations2D &&  observations2D) const

Fits a collection of observation drift circles.

Definition at line 44 of file CDCFitter2D.icc.h.

45 {
46 CDCTrajectory2D result;
47 update(result, observations2D);
48 return result;
49 }
void update(CDCTrajectory2D &trajectory2D, const CDCObservations2D &observations2D) const
Update the trajectory with a fit to the observations.

◆ fit() [2/9]

CDCTrajectory2D fit ( const CDCObservations2D observations2D) const

Fits a collection of observation drift circles.

Definition at line 38 of file CDCFitter2D.icc.h.

39 {
40 return fit(CDCObservations2D(observations2D));
41 }
CDCTrajectory2D fit(const CDCObservations2D &observations2D) const
Fits a collection of observation drift circles.

◆ fit() [3/9]

CDCTrajectory2D fit ( const CDCSegment2D fromSegment,
const CDCSegment2D toSegment 
) const

Fits to the two segments.

Definition at line 101 of file CDCFitter2D.icc.h.

103 {
104 return fitGeneric(fromSegment, toSegment);
105 }
CDCTrajectory2D fitGeneric(const AHits &hits) const
Fits a collection of hit typs which are convertable to observation circles.

◆ fit() [4/9]

CDCTrajectory2D fit ( const CDCSegment2D segment) const

Fits the segment.

Definition at line 77 of file CDCFitter2D.icc.h.

78 {
79 return fitGeneric(segment);
80 }

◆ fit() [5/9]

CDCTrajectory2D fit ( const CDCSegment3D segment) const

Fits the segment.

Definition at line 71 of file CDCFitter2D.icc.h.

72 {
73 return fitGeneric(segment);
74 }

◆ fit() [6/9]

CDCTrajectory2D fit ( const CDCTrack track) const

Fits the track.

Definition at line 65 of file CDCFitter2D.icc.h.

66 {
67 return fitGeneric(track);
68 }

◆ fit() [7/9]

CDCTrajectory2D fit ( const CDCWireHitSegment wireHits) const

Fits to the wire positions. Explicit specialisation to be used from python.

Definition at line 95 of file CDCFitter2D.icc.h.

96 {
97 return fitGeneric(wireHits);
98 }

◆ fit() [8/9]

CDCTrajectory2D fit ( const std::vector< const CDCWire * > &  wires) const

Fits to the wire positions. Explicit specialisation to be used from python.

Definition at line 89 of file CDCFitter2D.icc.h.

90 {
91 return fitGeneric(wires);
92 }

◆ fit() [9/9]

CDCTrajectory2D fit ( const std::vector< const CDCWireHit * > &  wireHit) const

Fits to the wire hit observations.

Definition at line 83 of file CDCFitter2D.icc.h.

84 {
85 return fitGeneric(wireHits);
86 }

◆ fitGeneric() [1/2]

CDCTrajectory2D fitGeneric ( const AHits &  hits) const
private

Fits a collection of hit typs which are convertable to observation circles.

Definition at line 123 of file CDCFitter2D.icc.h.

124 {
125 CDCTrajectory2D result;
126 updateGeneric(result, hits);
127 return result;
128 }
void updateGeneric(CDCTrajectory2D &trajectory2D, const AHits &hits) const
Updates a given trajectory with a fit to a collection of hits types, which are convertable to observa...

◆ fitGeneric() [2/2]

CDCTrajectory2D fitGeneric ( const AStartHits &  startHits,
const AEndHits &  endHits 
) const
private

Fits together two collections of hit types which are convertable to observation circles.

Definition at line 133 of file CDCFitter2D.icc.h.

134 {
135 CDCTrajectory2D result;
136 updateGeneric(result, startHits, endHits);
137 return result;
138 }

◆ setFitVariance()

void setFitVariance ( EFitVariance  fitVariance)

Setup the fitter to use the given variance measure by default.

Definition at line 220 of file CDCFitter2D.icc.h.

221 {
222 m_fitVariance = fitVariance;
223 }

◆ update() [1/4]

void update ( CDCTrajectory2D trajectory2D,
CDCObservations2D &&  observations2D 
) const

Update the trajectory with a fit to the observations.

Definition at line 59 of file CDCFitter2D.icc.h.

60 {
61 AFitMethod::update(trajectory2D, observations2D);
62 }

◆ update() [2/4]

void update ( CDCTrajectory2D trajectory2D,
const CDCAxialSegmentPair axialSegmentPair 
) const

Updates the given trajectory inplace from the given segment pair.

Definition at line 115 of file CDCFitter2D.icc.h.

117 {
118 return updateGeneric(trajectory2D, axialSegmentPair);
119 }

◆ update() [3/4]

void update ( CDCTrajectory2D trajectory2D,
const CDCObservations2D observations2D 
) const

Update the trajectory with a fit to the observations.

Definition at line 52 of file CDCFitter2D.icc.h.

54 {
55 return update(trajectory2D, CDCObservations2D(observations2D));
56 }

◆ update() [4/4]

void update ( CDCTrajectory2D trajectory2D,
const CDCSegment2D segment 
) const

Updates the given trajectory inplace from the given segment.

Definition at line 108 of file CDCFitter2D.icc.h.

110 {
111 updateGeneric(trajectory2D, segment);
112 }

◆ updateGeneric() [1/2]

void updateGeneric ( CDCTrajectory2D trajectory2D,
const AHits &  hits 
) const
private

Updates a given trajectory with a fit to a collection of hits types, which are convertable to observation circles.

Definition at line 177 of file CDCFitter2D.icc.h.

178 {
179 CDCObservations2D observations2D;
180 observations2D.setFitVariance(m_fitVariance);
181
182 if (m_usePosition) {
183 observations2D.setFitPos(EFitPos::c_RecoPos);
184 observations2D.appendRange(hits);
185 }
186 if (m_useOrientation) {
187 observations2D.setFitPos(EFitPos::c_RLDriftCircle);
188 observations2D.appendRange(hits);
189 }
190
191 if (observations2D.size() < 4) {
192 trajectory2D.clear();
193 } else {
194 AFitMethod::update(trajectory2D, observations2D);
195 }
196 }

◆ updateGeneric() [2/2]

void updateGeneric ( CDCTrajectory2D trajectory2D,
const AStartHits &  startHits,
const AEndHits &  endHits 
) const
private

Updates a given trajectory with a fit to two collection of hit types, which are convertable to observation circles.

Definition at line 142 of file CDCFitter2D.icc.h.

145 {
146 CDCObservations2D observations2D;
147 observations2D.setFitVariance(m_fitVariance);
148
149 if (m_usePosition) {
150 observations2D.setFitPos(EFitPos::c_RecoPos);
151 observations2D.appendRange(startHits);
152 }
153 if (m_useOrientation) {
154 observations2D.setFitPos(EFitPos::c_RLDriftCircle);
155 observations2D.appendRange(startHits);
156 }
157
158 if (m_usePosition) {
159 observations2D.setFitPos(EFitPos::c_RecoPos);
160 observations2D.appendRange(endHits);
161 }
162 if (m_useOrientation) {
163 observations2D.setFitPos(EFitPos::c_RLDriftCircle);
164 observations2D.appendRange(endHits);
165 }
166
167 if (observations2D.size() < 4) {
168 trajectory2D.clear();
169 } else {
170 AFitMethod::update(trajectory2D, observations2D);
171 }
172 }

◆ useOnlyOrientation()

void useOnlyOrientation

Setup the fitter to use only reference position and the drift length with right left orientation.

Definition at line 206 of file CDCFitter2D.icc.h.

207 {
208 m_usePosition = false;
209 m_useOrientation = true;
210 }

◆ useOnlyPosition()

void useOnlyPosition

Setup the fitter to use only the reconstructed positions of the hits.

Definition at line 199 of file CDCFitter2D.icc.h.

200 {
201 m_usePosition = true;
202 m_useOrientation = false;
203 }

◆ usePositionAndOrientation()

void usePositionAndOrientation

Setup the fitter to use both the reconstructed position and the reference position and the drift length with right left orientation.

Definition at line 213 of file CDCFitter2D.icc.h.

214 {
215 m_usePosition = true;
216 m_useOrientation = true;
217 }

Member Data Documentation

◆ m_fitVariance

EFitVariance m_fitVariance = EFitVariance::c_Proper
private

Default variance to be used in the fit.

Definition at line 130 of file CDCFitter2D.h.

◆ m_useOrientation

bool m_useOrientation = false
private

Flag indicating the reference position and drift length with right left orientation shall be used in the fit.

Definition at line 127 of file CDCFitter2D.h.

◆ m_usePosition

bool m_usePosition = true
private

Flag indicating the reconstructed position shall be used in the fit.

Definition at line 124 of file CDCFitter2D.h.


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