R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3B::Digitizing::AbstractPaddle Class Referenceabstract

#include <R3BDigitizingPaddle.h>

Public Types

template<typename Type>
using Pair = LRPair<Type>
 
using Hit = PaddleHit
 
using Signal = PaddleSignal
 
using Hits = std::vector<Hit>
 
using ChannelSignalPair = Pair<std::reference_wrapper<const AbstractChannel::Hit>>
 
using SignalCouplingStrategy
 

Public Member Functions

 AbstractPaddle (int paddleID, SignalCouplingStrategy strategy=SignalCouplingByTime)
 
auto HasFired () const -> bool
 
auto HasHalfFired () const -> bool
 
void Construct ()
 
void Reset ()
 
virtual ~AbstractPaddle ()=default
 
 AbstractPaddle (const AbstractPaddle &other)=delete
 
auto operator= (const AbstractPaddle &other) -> AbstractPaddle &=delete
 
 AbstractPaddle (AbstractPaddle &&other)=default
 
auto operator= (AbstractPaddle &&other) -> AbstractPaddle &=delete
 
void DepositLight (const Signal &signal)
 
void SetChannel (std::unique_ptr< AbstractChannel > channel)
 
void SetSignalCouplingStrategy (const SignalCouplingStrategy &strategy)
 
auto GetPaddleID () const -> int
 
auto GetHits () const -> const std::vector< Hit > &
 
auto GetSignalCouplingStragtegy () const -> const SignalCouplingStrategy &
 
auto GetLeftChannel () const -> const AbstractChannel *
 
auto GetLeftChannelRef () const -> auto &
 
auto GetChannel (R3B::Side side) const -> const Digitizing::AbstractChannel &
 
auto GetRightChannelRef () const -> auto &
 
auto GetRightChannel () const -> const AbstractChannel *
 
auto GetTrigTime () const -> double
 
void SetPaddleID (int paddle_id)
 
virtual auto match_hits (const AbstractChannel::Hit &, const AbstractChannel::Hit &) const -> float
 

Static Public Member Functions

static auto SignalCouplingByTime (const AbstractPaddle &self, const AbstractChannel::Hits &firstSignals, const AbstractChannel::Hits &secondSignals) -> std::vector< ChannelSignalPair >
 

Private Member Functions

virtual void extra_reset ()
 
virtual void pre_construct ()
 
virtual auto compute_time (const AbstractChannel::Hit &firstSignal, const AbstractChannel::Hit &secondSignal) const -> double=0
 
virtual auto compute_energy (const AbstractChannel::Hit &firstSignal, const AbstractChannel::Hit &secondSignal) const -> double=0
 
virtual auto compute_position (const AbstractChannel::Hit &rightSignal, const AbstractChannel::Hit &leftSignal) const -> double=0
 
virtual auto compute_channel_signals (const Signal &hit) const -> Pair< AbstractChannel::Signal >=0
 
void construct_paddle_signals (Hits &paddle_signals, const AbstractChannel::Hits &firstSignals, const AbstractChannel::Hits &secondSignals) const
 

Private Attributes

int paddle_id_ {}
 
Hits signal_hits_
 
std::unique_ptr< AbstractChannelleft_channel_
 
std::unique_ptr< AbstractChannelright_channel_
 
SignalCouplingStrategy signal_coupling_strategy_
 

Detailed Description

Definition at line 72 of file R3BDigitizingPaddle.h.

Member Typedef Documentation

◆ ChannelSignalPair

Definition at line 80 of file R3BDigitizingPaddle.h.

◆ Hit

◆ Hits

Definition at line 79 of file R3BDigitizingPaddle.h.

◆ Pair

template<typename Type>
using R3B::Digitizing::AbstractPaddle::Pair = LRPair<Type>

Definition at line 76 of file R3BDigitizingPaddle.h.

◆ Signal

◆ SignalCouplingStrategy

Initial value:
std::function<std::vector<ChannelSignalPair>(const AbstractPaddle&,
AbstractPaddle(int paddleID, SignalCouplingStrategy strategy=SignalCouplingByTime)

Definition at line 81 of file R3BDigitizingPaddle.h.

Constructor & Destructor Documentation

◆ AbstractPaddle() [1/3]

R3B::Digitizing::AbstractPaddle::AbstractPaddle ( int paddleID,
SignalCouplingStrategy strategy = SignalCouplingByTime )
explicit

Definition at line 26 of file R3BDigitizingPaddle.cxx.

◆ ~AbstractPaddle()

virtual R3B::Digitizing::AbstractPaddle::~AbstractPaddle ( )
virtualdefault

◆ AbstractPaddle() [2/3]

R3B::Digitizing::AbstractPaddle::AbstractPaddle ( const AbstractPaddle & other)
delete

◆ AbstractPaddle() [3/3]

R3B::Digitizing::AbstractPaddle::AbstractPaddle ( AbstractPaddle && other)
default

Member Function Documentation

◆ compute_channel_signals()

virtual auto R3B::Digitizing::AbstractPaddle::compute_channel_signals ( const Signal & hit) const -> Pair< AbstractChannel::Signal >
nodiscardprivatepure virtual

◆ compute_energy()

virtual auto R3B::Digitizing::AbstractPaddle::compute_energy ( const AbstractChannel::Hit & firstSignal,
const AbstractChannel::Hit & secondSignal ) const -> double
nodiscardprivatepure virtual

◆ compute_position()

virtual auto R3B::Digitizing::AbstractPaddle::compute_position ( const AbstractChannel::Hit & rightSignal,
const AbstractChannel::Hit & leftSignal ) const -> double
nodiscardprivatepure virtual

◆ compute_time()

virtual auto R3B::Digitizing::AbstractPaddle::compute_time ( const AbstractChannel::Hit & firstSignal,
const AbstractChannel::Hit & secondSignal ) const -> double
nodiscardprivatepure virtual

◆ Construct()

void R3B::Digitizing::AbstractPaddle::Construct ( )

Definition at line 114 of file R3BDigitizingPaddle.cxx.

◆ construct_paddle_signals()

void R3B::Digitizing::AbstractPaddle::construct_paddle_signals ( Hits & paddle_signals,
const AbstractChannel::Hits & firstSignals,
const AbstractChannel::Hits & secondSignals ) const
private

Definition at line 82 of file R3BDigitizingPaddle.cxx.

◆ DepositLight()

void R3B::Digitizing::AbstractPaddle::DepositLight ( const Signal & signal)

Definition at line 59 of file R3BDigitizingPaddle.cxx.

◆ extra_reset()

virtual void R3B::Digitizing::AbstractPaddle::extra_reset ( )
inlineprivatevirtual

Definition at line 135 of file R3BDigitizingPaddle.h.

◆ GetChannel()

auto R3B::Digitizing::AbstractPaddle::GetChannel ( R3B::Side side) const -> const Digitizing::AbstractChannel&
nodiscard

Definition at line 50 of file R3BDigitizingPaddle.cxx.

◆ GetHits()

auto R3B::Digitizing::AbstractPaddle::GetHits ( ) const -> const std::vector<Hit>&
inlinenodiscard

Definition at line 106 of file R3BDigitizingPaddle.h.

◆ GetLeftChannel()

auto R3B::Digitizing::AbstractPaddle::GetLeftChannel ( ) const -> const AbstractChannel*
inlinenodiscard

Definition at line 111 of file R3BDigitizingPaddle.h.

◆ GetLeftChannelRef()

auto R3B::Digitizing::AbstractPaddle::GetLeftChannelRef ( ) const -> auto&
inlinenodiscard

Definition at line 112 of file R3BDigitizingPaddle.h.

◆ GetPaddleID()

auto R3B::Digitizing::AbstractPaddle::GetPaddleID ( ) const -> int
inlinenodiscard

Definition at line 105 of file R3BDigitizingPaddle.h.

◆ GetRightChannel()

auto R3B::Digitizing::AbstractPaddle::GetRightChannel ( ) const -> const AbstractChannel*
inlinenodiscard

Definition at line 115 of file R3BDigitizingPaddle.h.

◆ GetRightChannelRef()

auto R3B::Digitizing::AbstractPaddle::GetRightChannelRef ( ) const -> auto&
inlinenodiscard

Definition at line 114 of file R3BDigitizingPaddle.h.

◆ GetSignalCouplingStragtegy()

auto R3B::Digitizing::AbstractPaddle::GetSignalCouplingStragtegy ( ) const -> const SignalCouplingStrategy&
inlinenodiscard

Definition at line 107 of file R3BDigitizingPaddle.h.

◆ GetTrigTime()

auto R3B::Digitizing::AbstractPaddle::GetTrigTime ( ) const -> double
nodiscard

Definition at line 164 of file R3BDigitizingPaddle.cxx.

◆ HasFired()

auto R3B::Digitizing::AbstractPaddle::HasFired ( ) const -> bool
nodiscard

Definition at line 66 of file R3BDigitizingPaddle.cxx.

◆ HasHalfFired()

auto R3B::Digitizing::AbstractPaddle::HasHalfFired ( ) const -> bool
nodiscard

Definition at line 76 of file R3BDigitizingPaddle.cxx.

◆ match_hits()

virtual auto R3B::Digitizing::AbstractPaddle::match_hits ( const AbstractChannel::Hit & ,
const AbstractChannel::Hit &  ) const -> float
inlinenodiscardvirtual

Reimplemented in R3B::Digitizing::Neuland::Paddle.

Definition at line 121 of file R3BDigitizingPaddle.h.

◆ operator=() [1/2]

auto R3B::Digitizing::AbstractPaddle::operator= ( AbstractPaddle && other) -> AbstractPaddle &=delete
delete

◆ operator=() [2/2]

auto R3B::Digitizing::AbstractPaddle::operator= ( const AbstractPaddle & other) -> AbstractPaddle &=delete
delete

◆ pre_construct()

virtual void R3B::Digitizing::AbstractPaddle::pre_construct ( )
inlineprivatevirtual

Reimplemented in R3B::Digitizing::Neuland::Paddle.

Definition at line 136 of file R3BDigitizingPaddle.h.

◆ Reset()

void R3B::Digitizing::AbstractPaddle::Reset ( )

Definition at line 126 of file R3BDigitizingPaddle.cxx.

◆ SetChannel()

void R3B::Digitizing::AbstractPaddle::SetChannel ( std::unique_ptr< AbstractChannel > channel)

Definition at line 32 of file R3BDigitizingPaddle.cxx.

◆ SetPaddleID()

void R3B::Digitizing::AbstractPaddle::SetPaddleID ( int paddle_id)
inline

Definition at line 119 of file R3BDigitizingPaddle.h.

◆ SetSignalCouplingStrategy()

void R3B::Digitizing::AbstractPaddle::SetSignalCouplingStrategy ( const SignalCouplingStrategy & strategy)
inline

Definition at line 102 of file R3BDigitizingPaddle.h.

◆ SignalCouplingByTime()

auto R3B::Digitizing::AbstractPaddle::SignalCouplingByTime ( const AbstractPaddle & self,
const AbstractChannel::Hits & firstSignals,
const AbstractChannel::Hits & secondSignals ) -> std::vector<ChannelSignalPair>
static

Definition at line 134 of file R3BDigitizingPaddle.cxx.

Member Data Documentation

◆ left_channel_

std::unique_ptr<AbstractChannel> R3B::Digitizing::AbstractPaddle::left_channel_
private

Definition at line 130 of file R3BDigitizingPaddle.h.

◆ paddle_id_

int R3B::Digitizing::AbstractPaddle::paddle_id_ {}
private

Definition at line 128 of file R3BDigitizingPaddle.h.

◆ right_channel_

std::unique_ptr<AbstractChannel> R3B::Digitizing::AbstractPaddle::right_channel_
private

Definition at line 131 of file R3BDigitizingPaddle.h.

◆ signal_coupling_strategy_

SignalCouplingStrategy R3B::Digitizing::AbstractPaddle::signal_coupling_strategy_
private

Definition at line 132 of file R3BDigitizingPaddle.h.

◆ signal_hits_

Hits R3B::Digitizing::AbstractPaddle::signal_hits_
private

Definition at line 129 of file R3BDigitizingPaddle.h.


The documentation for this class was generated from the following files: