8#include <cdc/topology/WireLine.h>
10#include <framework/logging/Logger.h>
16 const ROOT::Math::XYZVector& backward,
18 :
m_refPos3D{(backward * forward.z() - forward * backward.z()) / (forward.z() - backward.z()) }
24 const double deltaZ = forward.z() - backward.z();
27 B2ASSERT(
"Wire reference position is not at 0",
m_refPos3D.z() == 0);
34 moved.
m_refPos3D += ROOT::Math::XYZVector(offset.X(), offset.Y(), 0) + ROOT::Math::XYZVector(tmp.X(), tmp.Y(), 0) * offset.z();
43 moved.
m_refPos3D += ROOT::Math::XYZVector(offset.X(), offset.Y(), 0);
const ROOT::Math::XYVector & nominalMovePerZ() const
Gives the positional move in the xy projection per unit z.
double m_backwardZ
Memory for the backward end z coordinate.
ROOT::Math::XYZVector m_refPos3D
Memory for the reference position.
WireLine()
Default constructor initialising to all members to zero.
double deltaZ() const
Returns the difference between forward and backward z.
WireLine movedBy(const ROOT::Math::XYZVector &offset) const
Returns a copy of the wire line moved by a three dimensional offset.
double sagCoeff() const
Returns the wire sag coefficient due to gravity.
ROOT::Math::XYVector m_refPos2D
Memory for the 2D reference position (to avoid [-Wreturn-stack-address] in refPos2D())
ROOT::Math::XYVector m_nominalMovePerZ
Memory for the nominal movement of the xy position per z unit off the reference.
double m_forwardZ
Memory for the forward end z coordinate.
double m_sagCoeff
Memory for the wire sag coefficient.
Abstract base class for different kinds of events.