10#include <tracking/trackFindingCDC/eventdata/segments/CDCStereoSegment2D.h>
11#include <tracking/trackFindingCDC/eventdata/segments/CDCAxialSegment2D.h>
13#include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectory3D.h>
15#include <tracking/trackFindingCDC/topology/ISuperLayer.h>
17#include <tracking/trackFindingCDC/ca/AutomatonCell.h>
26 namespace TrackFindingCDC {
27 class CDCAxialSegmentPair;
28 class CDCTrajectorySZ;
29 class CDCTrajectory2D;
Cell used by the cellular automata.
Class representing a pair of reconstructed axial segments in adjacent superlayer.
A reconstructed sequence of two dimensional hits in one super layer.
Class representing a triple of reconstructed segments in adjacent superlayer.
friend bool operator<(const CDCAxialSegment2D *axialSegment, CDCSegmentTriple const &segmentTriple)
Define reconstructed segments and segment triples as coaligned on the start segment.
const CDCStereoSegment2D * getMiddleSegment() const
Getter for the middle stereo segment.
CDCTrajectory3D m_trajectory3D
Memory of the linear trajectory in the sz direction associated with the triple.
ISuperLayer getMiddleISuperLayer() const
Getter for the superlayer id of the middle segment.
ISuperLayer getStartISuperLayer() const
Getter for the superlayer id of the start segment.
bool operator<(CDCSegmentTriple const &rhs) const
Total ordering scheme based on the two axial segments first and the stereo segments second.
const CDCAxialSegment2D * getEndSegment() const
Getter for the end axial segment.
CDCTrajectory2D getTrajectory2D() const
Getter for the circular trajectory in the xy direction.
friend bool operator<(CDCSegmentTriple const &segmentTriple, const CDCAxialSegment2D *axialSegment)
Define reconstructed segments and segment triples as coaligned on the start segment.
void setStartSegment(const CDCAxialSegment2D *startSegment)
Setter for the start axial segment.
bool operator==(CDCSegmentTriple const &rhs) const
Equality comparison based on the pointers to the stored segments.
const CDCAxialSegment2D * m_startSegment
Reference to the axial segment in the start of the triple.
bool checkSegments() const
Checks the references to the contained three segment for nullptrs.
void setTrajectory3D(const CDCTrajectory3D &trajectory3D) const
Setter for the three dimensional helix trajectory.
AutomatonCell & getAutomatonCell() const
Mutable getter for the automaton cell.
CDCSegmentTriple()
Default constructor for ROOT compatibility.
void setAndForwardMaskedFlag() const
Sets the masked flag of the segment triple's automaton cell. Also forward the masked to the contained...
const CDCTrajectory3D & getTrajectory3D() const
Getter for the three dimensional helix trajectory.
void unsetAndForwardMaskedFlag() const
Unsets the masked flag of the segment triple's automaton cell, of the contained segments and of the c...
const CDCStereoSegment2D * m_middleSegment
Reference to the stereo segment in the middle of the triple.
CDCTrajectorySZ getTrajectorySZ() const
Getter for the linear trajectory in the sz direction.
const CDCAxialSegment2D * getStartSegment() const
Getter for the start axial segment.
const CDCAxialSegment2D * m_endSegment
Reference to the axial segment in the start of the triple.
ISuperLayer getEndISuperLayer() const
Getter for the superlayer id of the end segment.
void setEndSegment(const CDCAxialSegment2D *endSegment)
Setter for the end axial segment.
AutomatonCell m_automatonCell
Automaton cell associated with the pair of segments.
void setMiddleSegment(const CDCStereoSegment2D *middleSegment)
Setter for the middle stereo segment.
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
Clears the three dimensional helix trajectory.
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.
Abstract base class for different kinds of events.