26#include <RtypesCore.h>
43 return (firstSignal.tdc + secondSignal.tdc) / 2;
48 return (firstSignal.qdcUnSat + secondSignal.qdcUnSat) / 2;
53 if (leftSignal.side == rightSignal.side)
55 R3BLOG(fatal,
"cannot compute position with signals from same side!");
58 return (leftSignal.side ==
Side::left) ? (leftSignal.tdc - rightSignal.tdc) / 2 *
gCMedium
59 : (rightSignal.tdc - leftSignal.tdc) / 2 *
gCMedium;
65 return { leftChannelHit, rightChannelHit };
75 return { time, light };
#define R3BLOG(severity, x)
AbstractPaddle(int paddleID, SignalCouplingStrategy strategy=SignalCouplingByTime)
auto compute_position(const AbstractChannel::Hit &leftSignal, const AbstractChannel::Hit &rightSignal) const -> double override
static constexpr double gCMedium
static auto GenerateMockChannelHit(Double_t mcTime, Double_t mcLight, Double_t dist) -> AbstractChannel::Signal
auto compute_time(const AbstractChannel::Hit &firstSignal, const AbstractChannel::Hit &secondSignal) const -> double override
auto compute_energy(const AbstractChannel::Hit &firstSignal, const AbstractChannel::Hit &secondSignal) const -> double override
static constexpr double gHalfLength
auto compute_channel_signals(const Signal &hit) const -> Pair< AbstractChannel::Signal > override
MockPaddle(uint16_t paddleID)
Simulation of Mock Bar/Paddle.