Belle II Software  release-08-01-10
CDCAxialStereoFusion Class Reference

Utility class implementing the Kalmanesk combination of to two dimensional trajectories to one three dimensional trajectory. More...

#include <CDCAxialStereoFusion.h>

Collaboration diagram for CDCAxialStereoFusion:

Public Member Functions

 CDCAxialStereoFusion (bool reestimateDriftLength=true)
 Constructor setting up the options of the fit.
 
void reconstructFuseTrajectories (const CDCSegmentPair &segmentPair)
 Combine the two trajectories of the segments in the pair and assign the resulting three dimensional trajectory to the segment pair.
 
void fusePreliminary (const CDCSegmentPair &segmentPair)
 Fit the given segment pair using the preliminary helix fit without proper covariance matrix. More...
 
CDCTrajectory3D reconstructFuseTrajectories (const CDCSegment2D &fromSegment2D, const CDCSegment2D &toSegment2D)
 Combine the trajectories of the two given segments to a full helix trajectory.
 
CDCTrajectory3D fusePreliminary (const CDCSegment2D &fromSegment2D, const CDCSegment2D &toSegment2D)
 Fit the two given segments together using the preliminary helix fit without proper covariance matrix. More...
 
CDCTrajectory3D reconstructFuseTrajectories (const CDCSegment2D &fromSegment2D, const CDCSegment2D &toSegment2D, const CDCTrajectory3D &preliminaryTrajectory3D)
 Combine the two segments given a prelimiary reference trajectory to which a creation is applied.
 
PerigeeHelixAmbiguity calcAmbiguity (const CDCSegment3D &segment3D, const CDCTrajectory2D &trajectory2D)
 Calculate the ambiguity of the helix parameters relative to the three circle parameters given the hit content of the segment and their stereo displacement.
 

Private Attributes

bool m_reestimateDriftLength
 Swtich to reestimate the drift length.
 
DriftLengthEstimator m_driftLengthEstimator
 Helper object to carry out the drift length estimation.
 

Detailed Description

Utility class implementing the Kalmanesk combination of to two dimensional trajectories to one three dimensional trajectory.

Definition at line 30 of file CDCAxialStereoFusion.h.

Member Function Documentation

◆ fusePreliminary() [1/2]

CDCTrajectory3D fusePreliminary ( const CDCSegment2D fromSegment2D,
const CDCSegment2D toSegment2D 
)

Fit the two given segments together using the preliminary helix fit without proper covariance matrix.

The fit is used as the expansion point for the least square fuse fit with proper covariance.

Definition at line 92 of file CDCAxialStereoFusion.cc.

94 {
95  if (fromSegment2D.empty()) {
96  B2WARNING("From segment is empty.");
97  return CDCTrajectory3D();
98  }
99 
100  if (toSegment2D.empty()) {
101  B2WARNING("To segment is empty.");
102  return CDCTrajectory3D();
103  }
104 
105  bool fromIsAxial = fromSegment2D.isAxial();
106  const CDCSegment2D& axialSegment2D = fromIsAxial ? fromSegment2D : toSegment2D;
107  const CDCSegment2D& stereoSegment2D = not fromIsAxial ? fromSegment2D : toSegment2D;
108 
109  CDCTrajectory2D axialTrajectory2D = axialSegment2D.getTrajectory2D();
110 
111  Vector2D localOrigin2D = (fromIsAxial ? fromSegment2D.back() : toSegment2D.front()).getRecoPos2D();
112  axialTrajectory2D.setLocalOrigin(localOrigin2D);
113 
114  CDCSegment3D stereoSegment3D = CDCSegment3D::reconstruct(stereoSegment2D, axialTrajectory2D);
115 
116  CDCTrajectorySZ trajectorySZ;
117 
118  CDCSZFitter szFitter = CDCSZFitter::getFitter();
119  trajectorySZ = szFitter.fit(stereoSegment3D);
120  if (not trajectorySZ.isFitted()) {
121  CDCTrajectory3D result;
122  result.setChi2(NAN);
123  return result;
124  }
125 
126  CDCTrajectory3D preliminaryTrajectory3D(axialTrajectory2D, trajectorySZ);
127  Vector3D localOrigin3D(localOrigin2D, 0.0);
128  preliminaryTrajectory3D.setLocalOrigin(localOrigin3D);
129  return preliminaryTrajectory3D;
130 }
Class implementing the z coordinate over travel distance line fit.
Definition: CDCSZFitter.h:27
static const CDCSZFitter & getFitter()
Getter for a standard sz line fitter instance.
Definition: CDCSZFitter.cc:36
CDCTrajectorySZ fit(const CDCSegment2D &stereoSegment, const CDCTrajectory2D &axialTrajectory2D) const
Returns a fitted trajectory.
Definition: CDCSZFitter.cc:139
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:39
A segment consisting of three dimensional reconstructed hits.
Definition: CDCSegment3D.h:26
static CDCSegment3D reconstruct(const CDCSegment2D &segment2D, const CDCTrajectory2D &trajectory2D)
Reconstructs a two dimensional stereo segment by shifting each hit onto the given two dimensional tra...
Definition: CDCSegment3D.cc:20
bool isAxial() const
Indicator if the underlying wires are axial.
Definition: CDCSegment.h:45
CDCTrajectory2D & getTrajectory2D() const
Getter for the two dimensional trajectory fitted to the segment.
Definition: CDCSegment.h:69
Particle trajectory as it is seen in xy projection represented as a circle.
double setLocalOrigin(const Vector2D &localOrigin)
Setter for the origin of the local coordinate system.
Particle full three dimensional trajectory.
Linear trajectory in sz space.
bool isFitted() const
Indicates if the line has been fitted.
A two dimensional vector which is equipped with functions for correct handeling of orientation relat...
Definition: Vector2D.h:35
A three dimensional vector.
Definition: Vector3D.h:33

◆ fusePreliminary() [2/2]

void fusePreliminary ( const CDCSegmentPair segmentPair)

Fit the given segment pair using the preliminary helix fit without proper covariance matrix.

Updates the contained trajectory.

Definition at line 63 of file CDCAxialStereoFusion.cc.


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