R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3B::Digitizing::Engine< PaddleClass, ChannelClass, InitFunc > Class Template Reference

#include <R3BDigitizingEngine.h>

Public Member Functions

 Engine (const UsePaddle< PaddleClass > &p_paddleClass, const UseChannel< ChannelClass > &p_channelClass, InitFunc initFunc=[]() {})
void SetInit (const InitFunc &initFunc)
 Initialize the underlying data.
void ExtraReset () override
Public Member Functions inherited from R3B::Digitizing::EngineInterface
 EngineInterface ()=default
 Default constructor.
virtual ~EngineInterface ()=default
 virtual destructor
 EngineInterface (const EngineInterface &other)=delete
 Copy constructor.
auto operator= (const EngineInterface &other) -> EngineInterface &=delete
 Copy assignment operator.
 EngineInterface (EngineInterface &&other)=delete
 Move constructor.
auto operator= (EngineInterface &&other) -> EngineInterface &=delete
 Move assignment operator.
void DepositLight (int paddle_id, double time, double energy_dep, double dist)
 Takes in a light deposition and pass it to the paddle.
auto GetTriggerTime () const -> double
 Get the trigger time of the current event.
void Init (int initial_capacity=1)
 Initialization of the engine class.
void Reset ()
 Reset the engine for a new event.
void Construct ()
 Construct singals from the paddles and channels.
auto get_capacity () const
 The number of preallocated bar objects in the engine.
template<typename Unary>
void DoEachPaddle (Unary fnt) const
 Accessor operator for each paddle stored in the current event.
template<typename Unary>
auto DoAllPaddles (Unary fnt) const
 Accessor operator for all paddles stored in the current event.

Private Member Functions

void ExtraInit (int) override
auto make_new_paddle () const -> std::unique_ptr< AbstractPaddle > override

Private Attributes

UsePaddle< PaddleClass > paddleClass_
 Paddle class factory.
UseChannel< ChannelClass > channelClass_
 Channel class factory.
InitFunc initFunc_

Detailed Description

template<typename PaddleClass, typename ChannelClass, typename InitFunc = std::function<void()>>
class R3B::Digitizing::Engine< PaddleClass, ChannelClass, InitFunc >

Definition at line 212 of file R3BDigitizingEngine.h.

Constructor & Destructor Documentation

◆ Engine()

template<typename PaddleClass, typename ChannelClass, typename InitFunc = std::function<void()>>
R3B::Digitizing::Engine< PaddleClass, ChannelClass, InitFunc >::Engine ( const UsePaddle< PaddleClass > & p_paddleClass,
const UseChannel< ChannelClass > & p_channelClass,
InitFunc initFunc = []() {} )
inline

Definition at line 215 of file R3BDigitizingEngine.h.

Member Function Documentation

◆ ExtraInit()

template<typename PaddleClass, typename ChannelClass, typename InitFunc = std::function<void()>>
void R3B::Digitizing::Engine< PaddleClass, ChannelClass, InitFunc >::ExtraInit ( int )
inlineoverrideprivatevirtual

Reimplemented from R3B::Digitizing::EngineInterface.

Definition at line 241 of file R3BDigitizingEngine.h.

◆ ExtraReset()

template<typename PaddleClass, typename ChannelClass, typename InitFunc = std::function<void()>>
void R3B::Digitizing::Engine< PaddleClass, ChannelClass, InitFunc >::ExtraReset ( )
inlineoverridevirtual

Reimplemented from R3B::Digitizing::EngineInterface.

Definition at line 234 of file R3BDigitizingEngine.h.

◆ make_new_paddle()

template<typename PaddleClass, typename ChannelClass, typename InitFunc = std::function<void()>>
auto R3B::Digitizing::Engine< PaddleClass, ChannelClass, InitFunc >::make_new_paddle ( ) const -> std::unique_ptr<AbstractPaddle>
inlinenodiscardoverrideprivatevirtual

Implements R3B::Digitizing::EngineInterface.

Definition at line 242 of file R3BDigitizingEngine.h.

◆ SetInit()

template<typename PaddleClass, typename ChannelClass, typename InitFunc = std::function<void()>>
void R3B::Digitizing::Engine< PaddleClass, ChannelClass, InitFunc >::SetInit ( const InitFunc & initFunc)
inline

Constructing a number of bars for the input data. If the available bars are not enough for the new data, the whole data will be reallocated (just like std::vector). The reallocation should happen rarely!

Parameters
initFuncInitiator functor

Definition at line 233 of file R3BDigitizingEngine.h.

Member Data Documentation

◆ channelClass_

template<typename PaddleClass, typename ChannelClass, typename InitFunc = std::function<void()>>
UseChannel<ChannelClass> R3B::Digitizing::Engine< PaddleClass, ChannelClass, InitFunc >::channelClass_
private

Definition at line 238 of file R3BDigitizingEngine.h.

◆ initFunc_

template<typename PaddleClass, typename ChannelClass, typename InitFunc = std::function<void()>>
InitFunc R3B::Digitizing::Engine< PaddleClass, ChannelClass, InitFunc >::initFunc_
private

Definition at line 239 of file R3BDigitizingEngine.h.

◆ paddleClass_

template<typename PaddleClass, typename ChannelClass, typename InitFunc = std::function<void()>>
UsePaddle<PaddleClass> R3B::Digitizing::Engine< PaddleClass, ChannelClass, InitFunc >::paddleClass_
private

Definition at line 237 of file R3BDigitizingEngine.h.


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