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

Class representating a linear track piece between two oriented wire hits. More...

#include <CDCTangent.h>

Inheritance diagram for CDCTangent:
Collaboration diagram for CDCTangent:

Public Member Functions

 CDCTangent ()=default
 Default constructor for ROOT.
 
 CDCTangent (const CDCRLWireHitPair &rlWireHitPair)
 Construct a tangent from a pair of oriented wire hits.
 
 CDCTangent (const CDCRLWireHit &fromRLWireHit, const CDCRLWireHit &toRLWireHit)
 Construct a tangent from two oriented wire hits.
 
 CDCTangent (const CDCRLWireHitPair &rlWireHitPair, const ParameterLine2D &line)
 Construct a tangent from a pair of oriented wire hits taking the given tangential line instead of a computed one.
 
 CDCTangent (const CDCRLWireHit &fromRLWireHit, const CDCRLWireHit &toRLWireHit, const ParameterLine2D &line)
 Construct a tangent from two oriented wire hits taking the given tangential line instead of a computed one.
 
const Vector2DgetFromRecoPos2D () const
 Getter for the touching point of the tangent to the first drift circle.
 
Vector2D getFromRecoDisp2D () const
 Getter for displacement of the touching point from the first wire in the reference plane.
 
Vector2D getToRecoPos2D () const
 Getter for the touching point of the tangent to the second drift circle.
 
Vector2D getToRecoDisp2D () const
 Getter for displacement of the touching point from the second wire in the reference plane.
 
const Vector2DgetFlightVec2D () const
 Getter for the vector from the first to the second touch point.*‍/.
 
double getCosFlightDifference (const CDCTangent &tangent) const
 Returns the cosine of the angle between the two flight directions of the tangents.
 
CDCRecoHit2D getFromRecoHit2D () const
 Getter for the reconstructed hit on the first oriented wire hit using reconstructed touch point as position.
 
CDCRecoHit2D getToRecoHit2D () const
 Getter for the reconstructed hit on the second oriented wire hit using reconstructed touch point as position.
 
void adjustLine ()
 Adjusts the line to touch the drift circles with the correct right left passage information.
 
void adjustRLInfo ()
 Adjusts the right left passage information according to the tangent line.
 
void reverse ()
 Reverses the tangent inplace. More...
 
CDCTangent reversed () const
 Same as reverse but returns a copy.
 
const ParameterLine2DgetLine () const
 Getter for the line representation of the line. More...
 
CDCRLWireHitPair getAlias () const
 Returns the aliased version of this oriented wire hit pair.
 
bool operator== (const CDCRLWireHitPair &other) const
 Equality comparision based the two oriented wire hits.
 
bool operator< (const CDCRLWireHitPair &other) const
 Total ordering relation based on the from oriented wire hit first and the to oriented wire hit second.
 
WireNeighborKind getNeighborKind () const
 Getter for the WireNeighborKind of the two underlying wires.
 
ISuperLayer getISuperLayer () const
 Getter for the common superlayer id of the pair.
 
EStereoKind getStereoKind () const
 Getter for the common stereo type of the superlayer of the pair.
 
bool isAxial () const
 Indicator if the underlying wires are axial.
 
const CDCWiregetFromWire () const
 Getter for the wire the first oriented wire hit is based on.
 
const CDCWiregetToWire () const
 Getter for the wire the second oriented wire hit is based on.
 
bool hasWire (const CDCWire &wire) const
 Indicator if any of the two oriented wire hits is based on the given wire.
 
const CDCWireHitgetFromWireHit () const
 Getter for the hit wire of the first oriented wire hit.
 
const CDCWireHitgetToWireHit () const
 Getter for the hit wire of the second oriented wire hit.
 
bool hasWireHit (const CDCWireHit &wirehit) const
 Indicator if any of the two oriented wire hits is based on the given wire hit.
 
ERightLeft getFromRLInfo () const
 Getter for the right left passage information of the first oriented wire hit.
 
ERightLeft getToRLInfo () const
 Getter for the right left passage information of the second oriented wire hit.
 
CDCRLWireHitgetFromRLWireHit ()
 Getter for the first oriented wire hit.
 
const CDCRLWireHitgetFromRLWireHit () const
 Constant getter for the first oriented wire hit.
 
CDCRLWireHitgetToRLWireHit ()
 Getter for the second oriented wire hit.
 
const CDCRLWireHitgetToRLWireHit () const
 Constant getter for the second oriented wire hit.
 
void setFromRLWireHit (const CDCRLWireHit &fromRLWireHit)
 Setter for the first oriented wire hit.
 
void setToRLWireHit (const CDCRLWireHit &toRLWireHit)
 Setter for the second oriented wire hit.
 
void setFromRLInfo (ERightLeft fromRLInfo)
 Setter for the right left passage information of the first oriented wire hit.
 
void setToRLInfo (ERightLeft toRLInfo)
 Setter for the right left passage information of the second oriented wire hit.
 
int getICluster () const
 Getter for the cluster id.
 
void setICluster (int iCluster)
 Setter for the cluster id.
 

Protected Attributes

CDCRLWireHit m_fromRLWireHit
 Memory for the reference to the first oriented wire hit.
 
CDCRLWireHit m_toRLWireHit
 Memory for the reference to the second oriented wire hit.
 
int m_iCluster = -1
 Memory for the cluster id of this facet.
 

Private Attributes

ParameterLine2D m_line
 Memory for the line between the two touching points. The first touch point at(0), second at(1).
 

Detailed Description

Class representating a linear track piece between two oriented wire hits.

A tangent is an approximation of the possible trajectory between two oriented wire hits. The approximation is obtained by constructing a tangent between two drift circles of the wire hits (in the reference xy projection).
Generally maximal four tangents are possible. So to uniquely define a tangent we have to give additional information how it passes relativ to the drift circles. This right left passage information indicates if the related wire hit should lie to the right of to the left of the tangent. The four possible combinations are then
(ERightLeft::c_Right, ERightLeft::c_Right), (ERightLeft::c_Right, ERightLeft::c_Left),
(ERightLeft::c_Left, ERightLeft::c_Right), (ERightLeft::c_Left,ERightLeft::c_Left).
To represent the tangent this class uses a ParameterLine2D. The touch points to the two drift circles are located at(0) for the first and at(1) for the second. The tangent has therefor a sense of what is forward and can be reversed if necessary. Generally tangents are only a good approximation between neighboring wire hits.

Definition at line 40 of file CDCTangent.h.

Member Function Documentation

◆ getLine()

const ParameterLine2D& getLine ( ) const
inline

Getter for the line representation of the line.

The line stretchs between the two the touch point. The first touch point is at(0) the second at(1).

Definition at line 109 of file CDCTangent.h.

110  { return m_line; }
ParameterLine2D m_line
Memory for the line between the two touching points. The first touch point at(0), second at(1).
Definition: CDCTangent.h:114

◆ reverse()

void reverse ( )

Reverses the tangent inplace.

Swaps the to wire hits, reverses the left right informations and exchanges the two touch points of the line

Definition at line 67 of file CDCTangent.cc.

68 {
70 
71  //reverse the direction of flight
72  m_line.reverse();
73 
74  //adjust the support point to be now at the other wirehit touch position
76 }
void reverse()
Reverses the oriented wire hit pair inplace.
void reverse()
Reverses the tangential vector inplace.
void passiveMoveAtBy(const double delta)
Moves the support point by the given amount of the parameter in the forward direction.

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