 |
Belle II Software
release-05-01-25
|
10 #include <tracking/trackFindingCDC/filters/facet/FitlessFacetVarSet.h>
12 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
14 #include <tracking/trackFindingCDC/eventdata/hits/CDCFacet.h>
17 using namespace TrackFindingCDC;
21 if (not ptrFacet)
return false;
28 const short absOClockDelta = std::abs(oClockDelta);
34 const short stableTwist = -sign(shape.
getOClockDelta()) * middleRLInfo;
35 const bool startToMiddleIsCrossing = startRLInfo != middleRLInfo;
36 const bool middleToEndIsCrossing = middleRLInfo != endRLInfo;
40 const bool longArmIsCrossing = startToMiddleIsLong ? startToMiddleIsCrossing : middleToEndIsCrossing;
41 const bool shortArmIsCrossing = startToMiddleIsLong ? middleToEndIsCrossing : startToMiddleIsCrossing;
43 const short absILayerDifference = std::abs(iLayerDifference);
46 var<
named(
"cell_extend")>() = cellExtend;
48 var<
named(
"abs_oclock_delta")>() = absOClockDelta;
49 var<
named(
"layer_id_difference")>() = iLayerDifference;
50 var<
named(
"abs_layer_id_difference")>() = absILayerDifference;
52 var<
named(
"long_arm_is_crossing")>() = longArmIsCrossing;
53 var<
named(
"short_arm_is_crossing")>() = shortArmIsCrossing;
54 var<
named(
"stable_twist")>() = stableTwist;
56 var<
named(
"crossing_id")>() = std::copysign(100.0 * std::abs(stableTwist) +
57 10.0 * shortArmIsCrossing +
58 1.0 * longArmIsCrossing,
61 var<
named(
"shape_id")>() = 100.0 * cellExtend + absOClockDelta;
Shape getShape() const
Getter for the shape of this tiple if all three oriented wire hits are neighbors. Else ILLSHAPE.
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.
ILayer getILayer() const
Getter for the layer id.
const CDCWireHit & getStartWireHit() const
Getter for the hit wire of the first oriented wire hit.
ERightLeft getMiddleRLInfo() const
Getter for the right left passage information of the second oriented wire hit.
ERightLeft getStartRLInfo() const
Getter for the right left passage information of the first oriented wire hit.
const CDCWireHit & getEndWireHit() const
Getter for the hit wire of the third oriented wire hit.
Type for the different shapes of a triple of neighboring wire hits.
bool extract(const CDCFacet *ptrFacet) final
Generate and assign the contained variables.
Abstract base class for different kinds of events.
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.
Class representing a triple of neighboring oriented wire with additional trajectory information.
constexpr static int named(const char *name)
Getter for the index from the name.
Float_t & var()
Reference getter for the value of the ith variable. Static version.
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.
ISuperLayer getISuperLayer() const
Getter for the common superlayer id of the pair.