 |
Belle II Software
release-05-01-25
|
12 #include <tracking/trackFindingCDC/eventdata/hits/CDCRLWireHitPair.h>
13 #include <tracking/trackFindingCDC/eventdata/hits/CDCRLWireHit.h>
15 #include <tracking/trackFindingCDC/numerics/ERightLeft.h>
16 #include <tracking/trackFindingCDC/topology/EStereoKind.h>
17 #include <tracking/trackFindingCDC/topology/ISuperLayer.h>
27 namespace TrackFindingCDC {
37 class CDCRLWireHitTriple {
47 Shape(
const short startToMiddleCellDistance,
48 const short middleToEndCellDistance,
49 const short oClockDelta);
120 return rlWireHitTriple.getICluster() < rlWireHitPair.
getICluster() or
121 (rlWireHitTriple.getICluster() == rlWireHitPair.
getICluster() and
123 (rlWireHitTriple.getStartRLWireHit() == rlWireHitPair.
getFromRLWireHit() and
124 rlWireHitTriple.getMiddleRLWireHit() < rlWireHitPair.
getToRLWireHit())));
132 return rlWireHitPair.
getICluster() < rlWireHitTriple.getICluster() or
133 (rlWireHitPair.
getICluster() == rlWireHitTriple.getICluster() and
135 (rlWireHitPair.
getFromRLWireHit() == rlWireHitTriple.getStartRLWireHit() and
136 rlWireHitPair.
getToRLWireHit() < rlWireHitTriple.getMiddleRLWireHit())));
Shape getShape() const
Getter for the shape of this tiple if all three oriented wire hits are neighbors. Else ILLSHAPE.
void setRLInfo(const ERightLeft rlInfo)
Setter for the right left passage information.
char m_startToMiddleCellDistance
The cell distances from start to middle.
short getStartToMiddleCellDistance() const
Getter for the start to middle cell distance.
ERightLeft getEndRLInfo() const
Getter for the right left passage information of the third oriented wire hit.
std::ostream & operator<<(std::ostream &output, const IntervalOfValidity &iov)
const CDCWire & getStartWire() const
Getter for the wire the first oriented wire hit is based on.
CDCRLWireHitTriple getAlias() const
Returns the aliased version of this oriented wire hit triple.
int getICluster() const
Getter for the cluster id.
bool operator==(const CDCRLWireHitTriple &other) const
Equality comparision considering all three oriented wire hits.
void reverse()
Reverses the triple inplace.
const CDCWireHit & getStartWireHit() const
Getter for the hit wire of the first oriented wire hit.
static EStereoKind getStereoKind(ISuperLayer iSuperLayer)
Returns the stereo kind of the super layer.
const CDCWireHit & getWireHit() const
Getter for the wire hit associated with the oriented hit.
void setFromRLWireHit(const CDCRLWireHit &fromRLWireHit)
Setter for the first oriented wire hit.
ISuperLayer getISuperLayer() const
Getter for the superlayer id.
ERightLeft getMiddleRLInfo() const
Getter for the right left passage information of the second oriented wire hit.
const CDCWire & getWire() const
Getter for the wire the oriented hit associated to.
Shape()
Default constructor for an invalid shape.
void setStartRLWireHit(const CDCRLWireHit &startRLWireHit)
Setter for the first oriented wire hit.
void setMiddleRLWireHit(const CDCRLWireHit &middleRLWireHit)
Setter for the second oriented wire hit.
CDCRLWireHit & getToRLWireHit()
Getter for the second oriented wire hit.
ERightLeft getStartRLInfo() const
Getter for the right left passage information of the first oriented wire hit.
void setMiddleRLInfo(const ERightLeft middleRLInfo)
Setter for the right left passage information of the second oriented wire hit.
const CDCWireHit & getEndWireHit() const
Getter for the hit wire of the third oriented wire hit.
Class representing a triple of neighboring wire hits.
CDCRLWireHitPair m_rearRLWireHitPair
Memory for the second and third wire hits.
void setToRLInfo(ERightLeft toRLInfo)
Setter for the right left passage information of the second oriented wire hit.
void setEndRLInfo(const ERightLeft endRLInfo)
Setter for the right left passage information of the third oriented wire hit.
bool hasWireHit(const CDCWireHit &wirehit) const
Indicator if any of the three oriented wire hits is based on the given wire hit.
CDCRLWireHitTriple reversed() const
Constructs the reverse tiple from this one.
CDCRLWireHit & getFromRLWireHit()
Getter for the first oriented wire hit.
void setToRLWireHit(const CDCRLWireHit &toRLWireHit)
Setter for the second oriented wire hit.
bool operator<(const CDCRLWireHitTriple &other) const
Establish a total ordering based on the three oriented wire hits.
CDCRLWireHit m_startRLWireHit
Memory for the start oriented wire hit.
bool hasWire(const CDCWire &wire) const
Indicator if any of the two oriented wire hits is based on the given wire.
const CDCWireHit & getMiddleWireHit() const
Getter for the hit wire of the second oriented wire hit.
bool hasWireHit(const CDCWireHit &wirehit) const
Checks if the oriented hit is associated with the give wire hit.
const CDCWire & getEndWire() const
Getter for the wire the third oriented wire hit is based on.
CDCRLWireHitPair & getRearRLWireHitPair()
Getter for the pair of second and third oriented wire hit.
void setICluster(int iCluster)
Setter for the cluster id.
bool isOnWire(const CDCWire &wire) const
Checks if the oriented hit is associated with the give wire.
ERightLeft getRLInfo() const
Getter for the right left passage information.
Abstract base class for different kinds of events.
Class representing an oriented hit wire including a hypotheses whether the causing track passes left ...
bool hasWireHit(const CDCWireHit &wirehit) const
Indicator if any of the two oriented wire hits is based on the given wire hit.
void setICluster(int iCluster)
Setter for the cluster id.
short getOClockDelta() const
Getter for the o'clock direction difference from start to middle compared to middle to end.
ERightLeft
Enumeration to represent the distinct possibilities of the right left passage.
const CDCWire & getMiddleWire() const
Getter for the wire the second oriented wire hit is based on.
bool hasWire(const CDCWire &wire) const
Indicator if any of the three oriented wire hits is based on the given wire.
CDCRLWireHit & getMiddleRLWireHit()
Getter for the second oriented wire hit.
char m_middleToEndCellDistance
The cell distances from middle to end.
A pair of oriented wire hits.
void setStartRLInfo(const ERightLeft startRLInfo)
Setter for the right left passage information of the first oriented wire hit.
short m_oClockDelta
The o'clock direction difference from start to middle compared to middle to end.
Class representing a sense wire in the central drift chamber.
CDCRLWireHit & getEndRLWireHit()
Getter for the third oriented wire hit.
bool isAxial() const
Indicator if the underlying wires are axial.
EStereoKind getStereoKind() const
Getter for the common stereo type of the superlayer of the pair.
CDCRLWireHitTriple()=default
Default constructor for ROOT.
int getICluster() const
Getter for the cluster id.
Class representing a hit wire in the central drift chamber.
bool isValid() const
Check if the shape is considered valid.
void setEndRLWireHit(const CDCRLWireHit &endRLWireHit)
Setter for the third oriented wire hit.
short getCellExtend() const
Getter for the sum of cell distances from start to middle and middle to end.
short getMiddleToEndCellDistance() const
Getter for the middle to end cell distance.
CDCRLWireHit & getStartRLWireHit()
Getter for the first oriented wire hit.
ISuperLayer getISuperLayer() const
Getter for the common superlayer id of the pair.
void setFromRLInfo(ERightLeft fromRLInfo)
Setter for the right left passage information of the first oriented wire hit.