Belle II Software  release-05-01-25
CDCFitter2D.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2014 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <tracking/trackFindingCDC/fitting/EFitVariance.h>
13 
14 #include <vector>
15 
16 namespace Belle2 {
21  namespace TrackFindingCDC {
22  class CDCTrack;
23  class CDCSegment3D;
24  class CDCAxialSegmentPair;
25  class CDCSegment2D;
26  class CDCWireHitSegment;
27  class CDCWireHit;
28  class CDCTrajectory2D;
29  class CDCObservations2D;
30 
31  class CDCWire;
32 
34  template<class AFitMethod>
35  class CDCFitter2D : public AFitMethod {
36 
37  public:
39  CDCFitter2D();
40 
42  ~CDCFitter2D();
43 
45  CDCTrajectory2D fit(const CDCObservations2D& observations2D) const;
46 
48  CDCTrajectory2D fit(CDCObservations2D&& observations2D) const;
49 
51  void update(CDCTrajectory2D& trajectory2D, const CDCObservations2D& observations2D) const;
52 
54  void update(CDCTrajectory2D& trajectory2D, CDCObservations2D&& observations2D) const;
55 
57  CDCTrajectory2D fit(const CDCTrack& track) const;
58 
60  CDCTrajectory2D fit(const CDCSegment3D& segment) const;
61 
63  CDCTrajectory2D fit(const CDCSegment2D& fromSegment, const CDCSegment2D& toSegment) const;
64 
66  CDCTrajectory2D fit(const CDCSegment2D& segment) const;
67 
69  CDCTrajectory2D fit(const std::vector<const CDCWireHit*>& wireHit) const;
70 
72  CDCTrajectory2D fit(const std::vector<const CDCWire*>& wires) const;
73 
75  CDCTrajectory2D fit(const CDCWireHitSegment& wireHits) const;
76 
78  void update(CDCTrajectory2D& trajectory2D, const CDCSegment2D& segment) const;
79 
81  void update(CDCTrajectory2D& trajectory2D, const CDCAxialSegmentPair& axialSegmentPair) const;
82 
83  private:
85  template<class AHits>
86  CDCTrajectory2D fitGeneric(const AHits& hits) const;
87 
89  template<class AStartHits, class AEndHits>
90  CDCTrajectory2D fitGeneric(const AStartHits& startHits, const AEndHits& endHits) const;
91 
96  template <class AHits>
97  void updateGeneric(CDCTrajectory2D& trajectory2D, const AHits& hits) const;
98 
103  template <class AStartHits, class AEndHits>
104  void updateGeneric(CDCTrajectory2D& trajectory2D,
105  const AStartHits& startHits,
106  const AEndHits& endHits) const;
107 
108  public:
109  //set which information should be used from the recohits
110  //useOnlyPosition is standard
111 
113  void useOnlyPosition();
114 
116  void useOnlyOrientation();
117 
120 
122  void setFitVariance(EFitVariance fitVariance);
123 
124  private:
126  bool m_usePosition = true;
127 
129  bool m_useOrientation = false;
130 
132  EFitVariance m_fitVariance = EFitVariance::c_Proper;
133  };
134  }
136 }
Belle2::TrackFindingCDC::CDCTrack
Class representing a sequence of three dimensional reconstructed hits.
Definition: CDCTrack.h:51
Belle2::TrackFindingCDC::CDCFitter2D::useOnlyPosition
void useOnlyPosition()
Setup the fitter to use only the reconstructed positions of the hits.
Definition: CDCFitter2D.icc.h:209
Belle2::TrackFindingCDC::CDCFitter2D::~CDCFitter2D
~CDCFitter2D()
Default destructor.
Belle2::TrackFindingCDC::CDCFitter2D::m_fitVariance
EFitVariance m_fitVariance
Default variance to be used in the fit.
Definition: CDCFitter2D.h:140
Belle2::TrackFindingCDC::CDCFitter2D::m_useOrientation
bool m_useOrientation
Flag indicating the reference position and drift length with right left orientation shall be used in ...
Definition: CDCFitter2D.h:137
Belle2::TrackFindingCDC::CDCSegment3D
A segment consisting of three dimensional reconstructed hits.
Definition: CDCSegment3D.h:36
Belle2::TrackFindingCDC::CDCFitter2D::updateGeneric
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...
Definition: CDCFitter2D.icc.h:187
Belle2::TrackFindingCDC::CDCFitter2D::useOnlyOrientation
void useOnlyOrientation()
Setup the fitter to use only reference position and the drift length with right left orientation.
Definition: CDCFitter2D.icc.h:216
Belle2::TrackFindingCDC::CDCFitter2D::m_usePosition
bool m_usePosition
Flag indicating the reconstructed position shall be used in the fit.
Definition: CDCFitter2D.h:134
Belle2::TrackFindingCDC::CDCTrajectory2D
Particle trajectory as it is seen in xy projection represented as a circle.
Definition: CDCTrajectory2D.h:46
Belle2::TrackFindingCDC::CDCFitter2D::update
void update(CDCTrajectory2D &trajectory2D, const CDCObservations2D &observations2D) const
Update the trajectory with a fit to the observations.
Definition: CDCFitter2D.icc.h:62
Belle2::TrackFindingCDC::CDCWireHitSegment
A segment consisting of two dimensional reconsturcted hits.
Definition: CDCWireHitSegment.h:34
Belle2::TrackFindingCDC::CDCObservations2D
Class serving as a storage of observed drift circles to present to the Riemann fitter.
Definition: CDCObservations2D.h:53
Belle2::TrackFindingCDC::CDCAxialSegmentPair
Class representing a pair of reconstructed axial segements in adjacent superlayer.
Definition: CDCAxialSegmentPair.h:41
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::CDCFitter2D::setFitVariance
void setFitVariance(EFitVariance fitVariance)
Setup the fitter to use the given variance measure by default.
Definition: CDCFitter2D.icc.h:230
Belle2::TrackFindingCDC::CDCFitter2D::fit
CDCTrajectory2D fit(const CDCObservations2D &observations2D) const
Fits a collection of observation drift circles.
Definition: CDCFitter2D.icc.h:48
Belle2::TrackFindingCDC::CDCFitter2D::fitGeneric
CDCTrajectory2D fitGeneric(const AHits &hits) const
Fits a collection of hit typs which are convertable to observation circles.
Definition: CDCFitter2D.icc.h:133
Belle2::TrackFindingCDC::CDCFitter2D::CDCFitter2D
CDCFitter2D()
Default constructor.
Definition: CDCFitter2D.icc.h:37
Belle2::TrackFindingCDC::CDCSegment2D
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:40
Belle2::TrackFindingCDC::CDCFitter2D::usePositionAndOrientation
void usePositionAndOrientation()
Setup the fitter to use both the reconstructed position and the reference position and the drift leng...
Definition: CDCFitter2D.icc.h:223