R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3B::Digitizing::Neuland::Paddle Class Reference

#include <R3BDigitizingPaddleNeuland.h>

Public Member Functions

 Paddle (int paddle_id)
 
 Paddle (int paddle_id, R3B::Neuland::Cal2HitPar *cal_to_hit_par)
 
auto match_hits (const AbstractChannel::Hit &firstSignal, const AbstractChannel::Hit &secondSignal) const -> float override
 
auto GenerateChannelSignal (double mcTime, double mcLight, double dist, enum Side channel_side) const -> AbstractChannel::Signal
 
- Public Member Functions inherited from R3B::Digitizing::AbstractPaddle
 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)
 

Static Public Member Functions

static auto HitCouplingNeuland (const AbstractPaddle &self, const AbstractChannel::Hits &firstSignals, const AbstractChannel::Hits &secondSignals) -> std::vector< ChannelSignalPair >
 
- Static Public Member Functions inherited from R3B::Digitizing::AbstractPaddle
static auto SignalCouplingByTime (const AbstractPaddle &self, const AbstractChannel::Hits &firstSignals, const AbstractChannel::Hits &secondSignals) -> std::vector< ChannelSignalPair >
 

Static Public Attributes

static constexpr double HALF_BAR_LENGTH = 135.
 
static constexpr double DEFAULT_ATTENUATION = 0.008
 

Private Member Functions

void pre_construct () override
 
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
 
auto compute_position (const AbstractChannel::Hit &leftSignal, const AbstractChannel::Hit &rightSignal) const -> double override
 
auto compute_channel_signals (const Signal &signal) const -> Pair< AbstractChannel::Signal > override
 

Private Attributes

double attenuation_ = DEFAULT_ATTENUATION
 
double reverse_atten_fac_ = std::exp(HALF_BAR_LENGTH * DEFAULT_ATTENUATION)
 
double effective_speed_ = R3B::Neuland::DEFAULT_EFFECTIVE_C
 
double time_offset_ = 0.0
 
double time_sync_ = 0.0
 
R3B::Neuland::Cal2HitParcal_to_hit_par_ = nullptr
 

Additional Inherited Members

- Public Types inherited from R3B::Digitizing::AbstractPaddle
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
 

Detailed Description

Definition at line 34 of file R3BDigitizingPaddleNeuland.h.

Constructor & Destructor Documentation

◆ Paddle() [1/2]

R3B::Digitizing::Neuland::Paddle::Paddle ( int paddle_id)
explicit

Definition at line 48 of file R3BDigitizingPaddleNeuland.cxx.

◆ Paddle() [2/2]

R3B::Digitizing::Neuland::Paddle::Paddle ( int paddle_id,
R3B::Neuland::Cal2HitPar * cal_to_hit_par )
explicit

Definition at line 53 of file R3BDigitizingPaddleNeuland.cxx.

Member Function Documentation

◆ compute_channel_signals()

auto R3B::Digitizing::Neuland::Paddle::compute_channel_signals ( const Signal & signal) const -> Pair<AbstractChannel::Signal>
nodiscardoverrideprivatevirtual

Implements R3B::Digitizing::AbstractPaddle.

Definition at line 125 of file R3BDigitizingPaddleNeuland.cxx.

◆ compute_energy()

auto R3B::Digitizing::Neuland::Paddle::compute_energy ( const AbstractChannel::Hit & firstSignal,
const AbstractChannel::Hit & secondSignal ) const -> double
inlinenodiscardoverrideprivatevirtual

Implements R3B::Digitizing::AbstractPaddle.

Definition at line 98 of file R3BDigitizingPaddleNeuland.cxx.

◆ compute_position()

auto R3B::Digitizing::Neuland::Paddle::compute_position ( const AbstractChannel::Hit & leftSignal,
const AbstractChannel::Hit & rightSignal ) const -> double
inlinenodiscardoverrideprivatevirtual

Implements R3B::Digitizing::AbstractPaddle.

Definition at line 111 of file R3BDigitizingPaddleNeuland.cxx.

◆ compute_time()

auto R3B::Digitizing::Neuland::Paddle::compute_time ( const AbstractChannel::Hit & firstSignal,
const AbstractChannel::Hit & secondSignal ) const -> double
inlinenodiscardoverrideprivatevirtual

Implements R3B::Digitizing::AbstractPaddle.

Definition at line 104 of file R3BDigitizingPaddleNeuland.cxx.

◆ GenerateChannelSignal()

auto R3B::Digitizing::Neuland::Paddle::GenerateChannelSignal ( double mcTime,
double mcLight,
double dist,
enum Side channel_side ) const -> AbstractChannel::Signal
nodiscard

Definition at line 136 of file R3BDigitizingPaddleNeuland.cxx.

◆ HitCouplingNeuland()

auto R3B::Digitizing::Neuland::Paddle::HitCouplingNeuland ( const AbstractPaddle & self,
const AbstractChannel::Hits & firstSignals,
const AbstractChannel::Hits & secondSignals ) -> std::vector<ChannelSignalPair>
staticnodiscard

Definition at line 150 of file R3BDigitizingPaddleNeuland.cxx.

◆ match_hits()

auto R3B::Digitizing::Neuland::Paddle::match_hits ( const AbstractChannel::Hit & firstSignal,
const AbstractChannel::Hit & secondSignal ) const -> float
nodiscardoverridevirtual

Reimplemented from R3B::Digitizing::AbstractPaddle.

Definition at line 59 of file R3BDigitizingPaddleNeuland.cxx.

◆ pre_construct()

void R3B::Digitizing::Neuland::Paddle::pre_construct ( )
overrideprivatevirtual

Reimplemented from R3B::Digitizing::AbstractPaddle.

Definition at line 84 of file R3BDigitizingPaddleNeuland.cxx.

Member Data Documentation

◆ attenuation_

double R3B::Digitizing::Neuland::Paddle::attenuation_ = DEFAULT_ATTENUATION
private

Definition at line 55 of file R3BDigitizingPaddleNeuland.h.

◆ cal_to_hit_par_

R3B::Neuland::Cal2HitPar* R3B::Digitizing::Neuland::Paddle::cal_to_hit_par_ = nullptr
private

Definition at line 61 of file R3BDigitizingPaddleNeuland.h.

◆ DEFAULT_ATTENUATION

double R3B::Digitizing::Neuland::Paddle::DEFAULT_ATTENUATION = 0.008
staticconstexpr

Definition at line 52 of file R3BDigitizingPaddleNeuland.h.

◆ effective_speed_

double R3B::Digitizing::Neuland::Paddle::effective_speed_ = R3B::Neuland::DEFAULT_EFFECTIVE_C
private

Definition at line 57 of file R3BDigitizingPaddleNeuland.h.

◆ HALF_BAR_LENGTH

double R3B::Digitizing::Neuland::Paddle::HALF_BAR_LENGTH = 135.
staticconstexpr

Definition at line 51 of file R3BDigitizingPaddleNeuland.h.

◆ reverse_atten_fac_

double R3B::Digitizing::Neuland::Paddle::reverse_atten_fac_ = std::exp(HALF_BAR_LENGTH * DEFAULT_ATTENUATION)
private

Definition at line 56 of file R3BDigitizingPaddleNeuland.h.

◆ time_offset_

double R3B::Digitizing::Neuland::Paddle::time_offset_ = 0.0
private

Definition at line 58 of file R3BDigitizingPaddleNeuland.h.

◆ time_sync_

double R3B::Digitizing::Neuland::Paddle::time_sync_ = 0.0
private

Definition at line 59 of file R3BDigitizingPaddleNeuland.h.


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