PandaRoot
genfit::WireMeasurementNew Class Reference

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

#include <WireMeasurementNew.h>

Inheritance diagram for genfit::WireMeasurementNew:
genfit::AbsMeasurement

Public Member Functions

 WireMeasurementNew ()
 
 WireMeasurementNew (double driftDistance, double driftDistanceError, const TVector3 &endPoint1, const TVector3 &endPoint2, int detId, int hitId, TrackPoint *trackPoint)
 
virtual ~WireMeasurementNew ()
 
virtual WireMeasurementNewclone () const
 Deep copy ctor for polymorphic class. More...
 
virtual SharedPlanePtr constructPlane (const StateOnPlane &state) const
 
virtual std::vector< MeasurementOnPlane * > constructMeasurementsOnPlane (const StateOnPlane &state) const
 
virtual const AbsHMatrixconstructHMatrix (const AbsTrackRep *) const
 
void setWireEndPoints (const TVector3 &endPoint1, const TVector3 &endPoint2)
 
void setMaxDistance (double d)
 
void setLeftRightResolution (int lr)
 
virtual bool isLeftRigthMeasurement () const
 
double getMaxDistance ()
 
int getLeftRightResolution () const
 
- Public Member Functions inherited from genfit::AbsMeasurement
 AbsMeasurement ()
 
 AbsMeasurement (int nDims)
 
 AbsMeasurement (const TVectorD &rawHitCoords, const TMatrixDSym &rawHitCov, int detId, int hitId, TrackPoint *trackPoint)
 
virtual ~AbsMeasurement ()
 
TrackPointgetTrackPoint () const
 
void setTrackPoint (TrackPoint *tp)
 
const TVectorD & getRawHitCoords () const
 
const TMatrixDSym & getRawHitCov () const
 
TVectorD & getRawHitCoords ()
 
TMatrixDSym & getRawHitCov ()
 
int getDetId () const
 
int getHitId () const
 
virtual bool isLeftRightMeasurement () const
 If the AbsMeasurement is a wire hit, the left/right resolution will be used. More...
 
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 wireEndPoint1_ [3]
 
double wireEndPoint2_ [3]
 Wire end point 1 (X, Y, Z) More...
 
double maxDistance_
 Wire end point 2 (X, Y, Z) More...
 
double leftRight_
 
- Protected Attributes inherited from genfit::AbsMeasurement
TVectorD rawHitCoords_
 
TMatrixDSym rawHitCov_
 
int detId_
 
int hitId_
 
TrackPointtrackPoint_
 Pointer to TrackPoint where the measurement belongs to. More...
 

Additional Inherited Members

- Protected Member Functions inherited from genfit::AbsMeasurement
 AbsMeasurement (const AbsMeasurement &)
 protect from calling copy c'tor from outside the class. Use clone() if you want a copy! More...
 

Detailed Description

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

Author
Tobias Schlüter

This is similar to WireMeasurement, but since WireMeasurement stores a 7x7 covariance matrix for what is a one-dimensional measurement, this class is preferable. Protected inheritance of rawHitCoords_ and rawHitCov_ makes it impossible to rewrite WireMeasurement, as subclasses will access these members.

This hit class is not valid for arbitrary choices of plane orientation: 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 55 of file WireMeasurementNew.h.

Constructor & Destructor Documentation

◆ WireMeasurementNew() [1/2]

genfit::WireMeasurementNew::WireMeasurementNew ( )

Referenced by clone().

◆ WireMeasurementNew() [2/2]

genfit::WireMeasurementNew::WireMeasurementNew ( double  driftDistance,
double  driftDistanceError,
const TVector3 &  endPoint1,
const TVector3 &  endPoint2,
int  detId,
int  hitId,
TrackPoint trackPoint 
)

◆ ~WireMeasurementNew()

virtual genfit::WireMeasurementNew::~WireMeasurementNew ( )
inlinevirtual

Definition at line 61 of file WireMeasurementNew.h.

61 { ; }

Member Function Documentation

◆ clone()

virtual WireMeasurementNew* genfit::WireMeasurementNew::clone ( ) const
inlinevirtual

Deep copy ctor for polymorphic class.

Implements genfit::AbsMeasurement.

Definition at line 63 of file WireMeasurementNew.h.

References constructHMatrix(), constructMeasurementsOnPlane(), constructPlane(), setWireEndPoints(), and WireMeasurementNew().

63 { return new WireMeasurementNew(*this); }

◆ constructHMatrix()

virtual const AbsHMatrix* genfit::WireMeasurementNew::constructHMatrix ( const AbsTrackRep ) const
virtual

Returns a new AbsHMatrix object. Caller must take ownership.

Implements genfit::AbsMeasurement.

Referenced by clone().

◆ constructMeasurementsOnPlane()

virtual std::vector<MeasurementOnPlane *> genfit::WireMeasurementNew::constructMeasurementsOnPlane ( const StateOnPlane state) const
virtual

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 genfit::AbsMeasurement.

Referenced by clone().

◆ constructPlane()

virtual SharedPlanePtr genfit::WireMeasurementNew::constructPlane ( const StateOnPlane state) const
virtual

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 genfit::AbsMeasurement.

Referenced by clone().

◆ getLeftRightResolution()

int genfit::WireMeasurementNew::getLeftRightResolution ( ) const
inlinevirtual

Reimplemented from genfit::AbsMeasurement.

Definition at line 99 of file WireMeasurementNew.h.

References leftRight_.

◆ getMaxDistance()

double genfit::WireMeasurementNew::getMaxDistance ( )
inline

Definition at line 98 of file WireMeasurementNew.h.

References maxDistance_.

98 { return maxDistance_; }
double maxDistance_
Wire end point 2 (X, Y, Z)

◆ isLeftRigthMeasurement()

virtual bool genfit::WireMeasurementNew::isLeftRigthMeasurement ( ) const
inlinevirtual

Definition at line 97 of file WireMeasurementNew.h.

97 { return true; }

◆ setLeftRightResolution()

void genfit::WireMeasurementNew::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)

Referenced by setMaxDistance().

◆ setMaxDistance()

void genfit::WireMeasurementNew::setMaxDistance ( double  d)
inline

Set maximum drift distance. This is used to calculate the start weights of the two measurementsOnPlane.

Definition at line 88 of file WireMeasurementNew.h.

References maxDistance_, and setLeftRightResolution().

88 { maxDistance_ = d; }
double maxDistance_
Wire end point 2 (X, Y, Z)

◆ setWireEndPoints()

void genfit::WireMeasurementNew::setWireEndPoints ( const TVector3 &  endPoint1,
const TVector3 &  endPoint2 
)

Reset the wire end points.

Referenced by clone().

Member Data Documentation

◆ leftRight_

double genfit::WireMeasurementNew::leftRight_
protected

Definition at line 105 of file WireMeasurementNew.h.

Referenced by getLeftRightResolution().

◆ maxDistance_

double genfit::WireMeasurementNew::maxDistance_
protected

Wire end point 2 (X, Y, Z)

Definition at line 104 of file WireMeasurementNew.h.

Referenced by getMaxDistance(), and setMaxDistance().

◆ wireEndPoint1_

double genfit::WireMeasurementNew::wireEndPoint1_[3]
protected

Definition at line 102 of file WireMeasurementNew.h.

◆ wireEndPoint2_

double genfit::WireMeasurementNew::wireEndPoint2_[3]
protected

Wire end point 1 (X, Y, Z)

Definition at line 103 of file WireMeasurementNew.h.


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