8#include <tracking/trackFindingCDC/filters/facetRelation/BasicFacetRelationVarSet.h>
10#include <tracking/trackingUtilities/eventdata/hits/CDCFacet.h>
11#include <tracking/trackingUtilities/geometry/ParameterLine2D.h>
12#include <framework/geometry/VectorUtil.h>
15using namespace TrackFindingCDC;
16using namespace TrackingUtilities;
20 if (not ptrFacetRelation)
return false;
25 const CDCFacet& fromFacet = *ptrFromFacet;
26 const CDCFacet& toFacet = *ptrToFacet;
34 const double fromMiddleCos = VectorUtil::CosPhi(fromStartToMiddle.
tangential(), toStartToEnd.
tangential());
35 const double toMiddleCos = VectorUtil::CosPhi(fromStartToEnd.
tangential(), toMiddleToEnd.
tangential());
37 const double fromMiddlePhi = acos(fromMiddleCos);
38 const double toMiddlePhi = acos(toMiddleCos);
41 var<
named(
"from_middle_phi")>() = fromMiddlePhi;
42 var<
named(
"to_middle_phi")>() = toMiddlePhi;
bool extract(const TrackingUtilities::Relation< const TrackingUtilities::CDCFacet > *ptrFacetRelation) final
Generate and assign the contained variables.
Class representing a triple of neighboring oriented wire with additional trajectory information.
ParameterLine2D getStartToEndLine() const
Getter for the tangential line from the first to the third hit.
ParameterLine2D getStartToMiddleLine() const
Getter for the tangential line from the first to the second hit.
ParameterLine2D getMiddleToEndLine() const
Getter for the tangential line from the second to the third hit.
CDC::ISuperLayer getISuperLayer() const
Getter for the common superlayer id of the pair.
A line with a support point and tangential vector.
const ROOT::Math::XYVector & tangential() const
Gives the tangential vector of the line.
Type for two related objects.
From * getFrom() const
Getter for the pointer to the from side object.
To * getTo() const
Getter for the pointer to the to side object.
static constexpr int named(const char *name)
Abstract base class for different kinds of events.