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 261 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 264 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 290 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 283 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 291 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 282 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 287 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 288 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 286 of file R3BDigitizingEngine.h.


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