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

Class for measurements in wire detectors (Straw tubes and drift chambers) which do not measure the coordinate along the wire. More...

#include <WireMeasurement.h>

Inheritance diagram for WireMeasurement:
Collaboration diagram for WireMeasurement:

Public Member Functions

 WireMeasurement (int nDim=7)
 
 WireMeasurement (const TVectorD &rawHitCoords, const TMatrixDSym &rawHitCov, int detId, int hitId, TrackPoint *trackPoint)
 
virtual AbsMeasurementclone () const override
 Deep copy ctor for polymorphic class.
 
virtual SharedPlanePtr constructPlane (const StateOnPlane &state) const override
 Construct (virtual) detector plane (use state's AbsTrackRep). More...
 
virtual std::vector< MeasurementOnPlane * > constructMeasurementsOnPlane (const StateOnPlane &state) const override
 Hits with a small drift distance get a higher weight, whereas hits with big drift distances become weighted down. More...
 
virtual const AbsHMatrixconstructHMatrix (const AbsTrackRep *) const override
 Returns a new AbsHMatrix object. More...
 
void setMaxDistance (double d)
 Set maximum drift distance. More...
 
void setLeftRightResolution (int lr)
 select how to resolve the left/right ambiguity: -1: negative (left) side on vector (track direction) x (wire direction) 0: auto select (take side with smallest distance to track) 1: positive (right) side on vector (track direction) x (wire direction)
 
virtual bool isLeftRightMeasurement () const override
 If the AbsMeasurement is a wire hit, the left/right resolution will be used.
 
virtual int getLeftRightResolution () const override
 
double getMaxDistance ()
 
TrackPointgetTrackPoint () const
 
void setTrackPoint (TrackPoint *tp)
 
const TVectorD & getRawHitCoords () const
 
TVectorD & getRawHitCoords ()
 
const TMatrixDSym & getRawHitCov () const
 
TMatrixDSym & getRawHitCov ()
 
int getDetId () const
 
int getHitId () const
 
unsigned int getDim () const
 
void setRawHitCoords (const TVectorD &coords)
 
void setRawHitCov (const TMatrixDSym &cov)
 
void setDetId (int detId)
 
void setHitId (int hitId)
 
virtual void Print (const Option_t *="") const
 

Protected Attributes

double maxDistance_
 
signed char leftRight_
 
TVectorD rawHitCoords_
 
TMatrixDSym rawHitCov_
 
int detId_
 
int hitId_
 
TrackPointtrackPoint_
 Pointer to TrackPoint where the measurement belongs to.
 

Detailed Description

Class for measurements in wire detectors (Straw tubes and drift chambers) which do not measure the coordinate along the wire.

Author
Christian Höppner (Technische Universität München, original author)
Lia Lavezzi (INFN Pavia, original author)
Sebastian Neubert (Technische Universität München, original author)
Johannes Rauch (Technische Universität München, original author)

This hit class is not valid for any kind of plane orientation choice: to use it you MUST choose a plane described by u and v axes with v coincident with the wire (and u orthogonal to it, obviously). The hit will be described by 7 coordinates: w_x1, w_y1, w_z1, w_x2, w_y2, w_z2, rdrift where w_ji (with j = x, y, z and i = 1, 2) are the wire extremities coordinates; rdrift = distance from the wire (u coordinate in the plane)

Definition at line 52 of file WireMeasurement.h.

Member Function Documentation

◆ constructHMatrix()

const AbsHMatrix * constructHMatrix ( const AbsTrackRep ) const
overridevirtual

Returns a new AbsHMatrix object.

Caller must take ownership.

Implements AbsMeasurement.

Reimplemented in WirePointMeasurement.

Definition at line 120 of file WireMeasurement.cc.

120  {
121  if (dynamic_cast<const RKTrackRep*>(rep) == nullptr) {
122  Exception exc("WireMeasurement default implementation can only handle state vectors of type RKTrackRep!", __LINE__,__FILE__);
123  throw exc;
124  }
125 
126  return new HMatrixU();
127 }

◆ constructMeasurementsOnPlane()

std::vector< MeasurementOnPlane * > constructMeasurementsOnPlane ( const StateOnPlane state) const
overridevirtual

Hits with a small drift distance get a higher weight, whereas hits with big drift distances become weighted down.

When these initial weights are used by the DAF, the smoothed track will be closer to the real trajectory than if both sides are weighted with 0.5 regardless of the drift distance. This helps a lot when resolving l/r ambiguities with the DAF. The idea is that for the first iteration of the DAF, the wire positions are taken. For small drift radii, the wire position does not bend the fit away from the trajectory, whereas the wire position for hits with large drift radii is further away from the trajectory and will therefore bias the fit if not weighted down.

Implements AbsMeasurement.

Reimplemented in WirePointMeasurement.

Definition at line 85 of file WireMeasurement.cc.

◆ constructPlane()

SharedPlanePtr constructPlane ( const StateOnPlane state) const
overridevirtual

Construct (virtual) detector plane (use state's AbsTrackRep).

It's possible to make corrections to the plane here. The state should be defined somewhere near the measurement. For virtual planes, the state will be extrapolated to the POCA to point (SpacepointMeasurement) or line (WireMeasurement), and from this info the plane will be constructed.

Implements AbsMeasurement.

Reimplemented in WirePointMeasurement.

Definition at line 51 of file WireMeasurement.cc.

◆ setMaxDistance()

void setMaxDistance ( double  d)
inline

Set maximum drift distance.

This is used to calculate the start weights of the two measurementsOnPlane.

Definition at line 81 of file WireMeasurement.h.

81 {maxDistance_ = d;}

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