11#include <tracking/trackFindingCDC/eventdata/segments/CDCSegment.h>
12#include <tracking/trackFindingCDC/eventdata/hits/CDCRecoHit2D.h>
14#include <tracking/trackFindingCDC/ca/AutomatonCell.h>
23 namespace TrackFindingCDC {
25 class CDCFacetSegment;
26 class CDCTangentSegment;
27 class CDCRLWireHitSegment;
28 class CDCWireHitSegment;
35 template<
class T,
class S>
class WeightedRelation;
36 template<
class T,
class S>
class Relation;
Cell used by the cellular automata.
A segment consisting of adjacent facets.
A segment consisting of two dimensional reconstructed hits.
A reconstructed sequence of two dimensional hits in one super layer.
std::vector< const CDCWire * > getWireSegment() const
Getter for the vector of wires the hits of this segment are based on in the same order.
Relation< const CDCSegment2D, const CDCSegment2D > makeRelation(const CDCSegment2D *segment) const
Helper constructor to create a relation in python.
bool isFullyTaken(unsigned int maxNotTaken=0) const
Returns false, if there are more than N hits in the range which does not have a taken flag.
void unsetAndForwardMaskedFlag(bool toHits=false) const
Unset the masked flag of the automaton cell of this segment and of all contained wire hits.
void reverse()
Reverses the order of hits and their right left passage hypotheses inplace.
double getRLAsymmetry() const
Getter for the sum of right left information relative to the size.
void receiveMaskedFlag(bool fromHits=false) const
Check all contained wire hits if one has the masked flag.
CDCSegment2D getAlias() const
Getter for the alias version of the segment - fit not copied.
int m_iSuperCluster
Memory for the global super cluster id.
AutomatonCell * operator->() const
Indirection to the automaton cell for easier access to the flags.
bool operator<(const CDCSegment2D &segment2D) const
Comparison of segments up to the super cluster id keeping them close together on sort.
AutomatonCell & getAutomatonCell() const
Mutable getter for the automaton cell.
void receiveISuperCluster() const
Setter for the super cluster id based on the hit content.
static CDCSegment2D reconstructUsingTangents(const CDCRLWireHitSegment &rlWireHitSegment)
Reconstruct from wire hits with attached right left passage hypotheses by constructing tangents betwe...
void setAndForwardMaskedFlag(bool toHits=false) const
Set the masked flag of the automaton cell of this segment and forward the masked flag to all containe...
static CDCSegment2D reconstructUsingFacets(const CDCRLWireHitSegment &rlWireHitSegment)
Reconstruct from wire hits with attached right left passage hypotheses by constructing facets between...
WeightedRelation< const CDCSegment2D, const CDCSegment2D > makeWeightedRelation(double weight, const CDCSegment2D *segment) const
Helper constructor to create a relation in python.
AutomatonCell m_automatonCell
Memory for the automaton cell.
CDCSegment2D reversed() const
Makes a copy of the segment with the reversed hits in the opposite order.
static CDCSegment2D condense(const CDCTangentSegment &tangentSegment)
Averages the reconstructed positions from hits that overlap in adjacent tangents in the given tangent...
CDCWireHitSegment getWireHitSegment() const
Getter for the vector of the wire hits of this segment are based on in the same order.
int getISuperCluster() const
Getter for the global super cluster id.
void setISuperCluster(int iSuperCluster) const
Setter for the globale super cluster id.
int getNRLSwitches() const
Getter for the number of changes in the right left passage in the segment.
CDCRLWireHitSegment getRLWireHitSegment() const
Getter for the vector of right left oriented the hits of this segment.
A sequence of hits limited to one superlayer.
A segment consisting of adjacent tangents.
A segment consisting of two dimensional reconstructed hits.
Type for two related objects.
Type for two related objects with a weight.
Abstract base class for different kinds of events.