10#include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectory3D.h>
12#include <tracking/trackFindingCDC/topology/ISuperLayer.h>
13#include <tracking/trackFindingCDC/topology/EStereoKind.h>
15#include <tracking/trackFindingCDC/ca/AutomatonCell.h>
17#include <tracking/trackFindingCDC/numerics/EForwardBackward.h>
27 namespace TrackFindingCDC {
29 class CDCTrajectory2D;
30 class CDCTrajectorySZ;
107 std::size_t
size()
const;
Cell used by the cellular automata.
A reconstructed sequence of two dimensional hits in one super layer.
Class representing a pair of one reconstructed axial segment and one stereo segment in adjacent super...
double computeFromIsBeforeTo() const
Indicator if the from segment lies before the to segment.
double computeToIsAfterFromFitless() const
Indicator if the from segment lies before the to segment, build without using the trajectories,...
void setSegments(const CDCSegment2D *fromSegment, const CDCSegment2D *toSegment)
Setter for both segments simultaneously.
friend bool operator<(const CDCSegment2D *segment, const CDCSegmentPair &segmentPair)
Define reconstructed segments and axial stereo segment pairs as coaligned on the from segment.
CDCTrajectory3D m_trajectory3D
Memory for the common three dimensional trajectory.
EStereoKind getToStereoKind() const
Getter for the stereo type of the second segment.
const CDCSegment2D * getAxialSegment() const
Getter for the axial segment.
CDCTrajectory2D getTrajectory2D() const
Getter for the two dimensional projection of the common three dimensional trajectory.
bool checkSegmentsNonNullptr() const
Checks if both stored segments are not nullptr. Returns true if check is succeeded.
friend bool operator<(const CDCSegmentPair &segmentPair, const CDCSegment2D *segment)
Define reconstructed segments and axial stereo segment pairs as coaligned on the from segment.
const CDCSegment2D * m_toSegment
Reference to the to segment.
EStereoKind getFromStereoKind() const
Getter for the stereo type of the first segment.
const CDCSegment2D * getToSegment() const
Getter for the to segment.
bool checkSegments() const
Checks the references to the contained three segment for nullptrs and exactly one of them is axial an...
void setTrajectory3D(const CDCTrajectory3D &trajectory3D) const
Setter for the three dimensional trajectory.
AutomatonCell & getAutomatonCell() const
Mutable getter for the automaton cell.
void setAndForwardMaskedFlag() const
Sets the masked flag of the segment triple's automaton cell and of the three contained segments.
void unsetAndForwardMaskedFlag() const
Unsets the masked flag of the segment triple's automaton cell and of the three contained segments.
double computeFromIsBeforeToFitless() const
Indicator if the from segment lies before the to segment, build without using the trajectories,...
double computeDeltaPhiAtSuperLayerBound() const
Determines the angle between the last reconstructed position of the from segment and the first recons...
bool checkSegmentsStereoKinds() const
Checks if the two segments are of different axial type.
CDCTrajectorySZ getTrajectorySZ() const
Getter for the sz projection of the common three dimensional trajectory.
void setFromSegment(const CDCSegment2D *fromSegment)
Setter for the from segment.
void setToSegment(const CDCSegment2D *toSegment)
Setter for the to segment.
const CDCSegment2D * getStereoSegment() const
Getter for the stereo segment.
bool operator==(CDCSegmentPair const &rhs) const
Equality comparison based on the pointers to the stored segments.
ISuperLayer getFromISuperLayer() const
Getter for the superlayer id of the from segment.
CDCTrajectory3D & getTrajectory3D() const
Getter for the three dimensional trajectory.
double computeToIsAfterFrom() const
Indicator if the from segment lies before the to segment.
AutomatonCell m_automatonCell
Automaton cell associated with the pair of segments.
EForwardBackward isCoaligned(const CDCTrajectory2D &trajectory2D) const
Checks if the last entity in the vector lies greater or lower travel distance than the last entity.
double computeIsCoaligned() const
Indicator if the from segment and the to segment have roughly the same travel direction.
CDCSegmentPair()
Default constructor - for ROOT compatibility.
ISuperLayer getToISuperLayer() const
Getter for the superlayer id of the to segment.
std::size_t size() const
Getter for the total number of hits in this segment pair.
void receiveMaskedFlag() const
If one of the contained segments is marked as masked this segment triple is set be masked as well.
void clearTrajectory3D() const
Invalides the currently stored trajectory information.
const CDCSegment2D * m_fromSegment
Reference to the from segment.
const CDCSegment2D * getFromSegment() const
Getter for the from segment.
bool operator<(CDCSegmentPair const &rhs) const
Total ordering scheme comparing the segment pointers.
double computeIsCoalignedFitless() const
Indicator if the from segment and the to segment have roughly the same travel direction without using...
Particle trajectory as it is seen in xy projection represented as a circle.
Particle full three dimensional trajectory.
void clear()
Clears all information from this trajectoy.
Linear trajectory in sz space.
EForwardBackward
Enumeration to represent the distinct possibilities of the right left passage information.
Abstract base class for different kinds of events.