Belle II Software  release-05-02-19
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 40 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 94 of file CDCAxialStereoFusion.cc.

96 {
97  if (fromSegment2D.empty()) {
98  B2WARNING("From segment is empty.");
99  return CDCTrajectory3D();
100  }
101 
102  if (toSegment2D.empty()) {
103  B2WARNING("To segment is empty.");
104  return CDCTrajectory3D();
105  }
106 
107  bool fromIsAxial = fromSegment2D.isAxial();
108  const CDCSegment2D& axialSegment2D = fromIsAxial ? fromSegment2D : toSegment2D;
109  const CDCSegment2D& stereoSegment2D = not fromIsAxial ? fromSegment2D : toSegment2D;
110 
111  CDCTrajectory2D axialTrajectory2D = axialSegment2D.getTrajectory2D();
112 
113  Vector2D localOrigin2D = (fromIsAxial ? fromSegment2D.back() : toSegment2D.front()).getRecoPos2D();
114  axialTrajectory2D.setLocalOrigin(localOrigin2D);
115 
116  CDCSegment3D stereoSegment3D = CDCSegment3D::reconstruct(stereoSegment2D, axialTrajectory2D);
117 
118  CDCTrajectorySZ trajectorySZ;
119 
120  CDCSZFitter szFitter = CDCSZFitter::getFitter();
121  trajectorySZ = szFitter.fit(stereoSegment3D);
122  if (not trajectorySZ.isFitted()) {
123  CDCTrajectory3D result;
124  result.setChi2(NAN);
125  return result;
126  }
127 
128  CDCTrajectory3D preliminaryTrajectory3D(axialTrajectory2D, trajectorySZ);
129  Vector3D localOrigin3D(localOrigin2D, 0.0);
130  preliminaryTrajectory3D.setLocalOrigin(localOrigin3D);
131  return preliminaryTrajectory3D;
132 }

◆ 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 65 of file CDCAxialStereoFusion.cc.


The documentation for this class was generated from the following files:
Belle2::Vector3D
HepGeom::Vector3D< double > Vector3D
3D Vector
Definition: Cell.h:35
Belle2::TrackFindingCDC::CDCSZFitter::getFitter
static const CDCSZFitter & getFitter()
Getter for a standard sz line fitter instance.
Definition: CDCSZFitter.cc:38
Belle2::TrackFindingCDC::CDCSegment3D::reconstruct
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:22