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

Main digitizer task class for NeuLAND. More...

#include <R3BNeulandDigitizer.h>

Public Types

using NeulandPaddle = Digitizing::Neuland::Paddle
 
using TacquilaChannel = Digitizing::Neuland::TacQuila::Channel
 
using TamexChannel = Digitizing::Neuland::Tamex::Channel
 
template<typename Type>
using UseChannel = Digitizing::UseChannel<Type>
 
template<typename Type>
using UsePaddle = Digitizing::UsePaddle<Type>
 

Public Member Functions

 Digitizer ()
 Constructor with no input parameters.
 
 Digitizer (std::unique_ptr< Digitizing::EngineInterface > engine, std::string_view points_name="NeulandPoints", std::string_view hits_name="NeulandHits", std::string_view cal_hits_name="NeulandSimCal")
 Constructor with the given engine and input/output data branch names.
 
void SetEngine (std::unique_ptr< Digitizing::EngineInterface > engine)
 Setter of the internal engine.
 
void AddFilter (const Filterable< R3BNeulandHit & >::Filter &filter)
 Add a new hit filter.
 
void AddFilterCal (const Filterable< R3B::Neuland::SimCalData & >::Filter &filter)
 Add a new cal level filter.
 
void SetPointFilter (R3B::Neuland::ParticleFilter filter)
 Add a new point level filter.
 
void EnableCalDataOutput (bool is_enabled)
 Enable sim cal data output.
 
void EnableSizeMonitor (bool is_enabled=true)
 Enable the checking on sizes of different data levels.
 
auto HasCalDataOutput () const -> bool
 Getter of the sim cal output flag.
 

Static Public Member Functions

static auto Create (const R3B::Neuland::DigiTaskOptions &option, FairRun *run) -> std::unique_ptr< Digitizer >
 Generator of the digitizing class.
 

Private Member Functions

void fill_points_to_engine ()
 
void fill_cal_data (const R3B::Digitizing::AbstractPaddle &paddle)
 
void fill_hit_data (const R3B::Digitizing::AbstractPaddle &paddle)
 
void fill_histograms ()
 
void fill_size_histograms (const Digitizing::AbstractPaddle &paddle)
 
void init_histograms ()
 
auto Init () -> InitStatus override
 
void FinishTask () override
 
void FinishEvent () override
 
void SetParContainers () override
 
void Exec (Option_t *) override
 

Private Attributes

bool has_cal_output_ = false
 
bool has_size_monitor_ = false
 
R3B::InputVectorConnector< R3BNeulandPointneuland_points_ { "NeulandPoints" }
 
R3B::OutputVectorConnector< R3BNeulandHitneuland_hits_ { "NeulandHits" }
 
R3B::OutputVectorConnector< R3B::Neuland::SimCalDataneuland_cal_hits_ { "NeulandSimCal" }
 
std::unique_ptr< Digitizing::EngineInterfacedigitizing_engine_
 
R3B::Neuland::ParticleFilter neuland_point_filter_
 
Filterable< R3BNeulandHit & > hit_filters_
 
Filterable< R3B::Neuland::SimCalData & > cal_hit_filter_
 
R3BNeulandGeoParneuland_geo_par_ = nullptr
 
std::unordered_map< int, int > point_size_tracker_
 
R3B::DataMonitor data_monitor_
 
TH1I * hist_multi_one_ = nullptr
 
TH1I * hist_multi_two_ = nullptr
 
TH1F * hist_rl_time_to_trig_ = nullptr
 
TH1D * hist_point_size_ = nullptr
 
TH1D * hist_channel_signal_size_ = nullptr
 
TH1D * hist_channel_hit_size_ = nullptr
 
TH1D * hist_paddle_hit_size_ = nullptr
 

Detailed Description

The class utilizes the Bridge Design Pattern such that users can freely combine different paddle implementations with different channel implementations. The actual digitization process is implemented in its engine class R3B::Digitizing::Engine, which takes a paddle class generator together with a channel class generator. Details about the digitization process of NeuLAND can be found in this documentation.

Definition at line 109 of file R3BNeulandDigitizer.h.

Member Typedef Documentation

◆ NeulandPaddle

◆ TacquilaChannel

◆ TamexChannel

◆ UseChannel

template<typename Type>
using R3B::Neuland::Digitizer::UseChannel = Digitizing::UseChannel<Type>

Definition at line 116 of file R3BNeulandDigitizer.h.

◆ UsePaddle

template<typename Type>
using R3B::Neuland::Digitizer::UsePaddle = Digitizing::UsePaddle<Type>

Definition at line 118 of file R3BNeulandDigitizer.h.

Constructor & Destructor Documentation

◆ Digitizer() [1/2]

R3B::Neuland::Digitizer::Digitizer ( )

Definition at line 116 of file R3BNeulandDigitizer.cxx.

◆ Digitizer() [2/2]

R3B::Neuland::Digitizer::Digitizer ( std::unique_ptr< Digitizing::EngineInterface > engine,
std::string_view points_name = "NeulandPoints",
std::string_view hits_name = "NeulandHits",
std::string_view cal_hits_name = "NeulandSimCal" )
explicit
Parameters
engineEngine object
points_nameThe branch name of the input point level data.
hits_nameThe branch name of the output hit level data.
cal_hits_nameThe branch name of the output cal level data if has_cal_output_ is true.
See also
EnableCalDataOutput

Definition at line 121 of file R3BNeulandDigitizer.cxx.

Member Function Documentation

◆ AddFilter()

void R3B::Neuland::Digitizer::AddFilter ( const Filterable< R3BNeulandHit & >::Filter & filter)
inline
Parameters
filterNew hit filter
See also
Filterable

Definition at line 163 of file R3BNeulandDigitizer.h.

◆ AddFilterCal()

void R3B::Neuland::Digitizer::AddFilterCal ( const Filterable< R3B::Neuland::SimCalData & >::Filter & filter)
inline
Parameters
filterNew cal level filter
See also
Filterable

Definition at line 171 of file R3BNeulandDigitizer.h.

◆ Create()

auto R3B::Neuland::Digitizer::Create ( const R3B::Neuland::DigiTaskOptions & option,
FairRun * run ) -> std::unique_ptr<Digitizer>
static

Create a task from the specifed options and run instance.

Parameters
optionThe options used to configure the task
runThe pointer to the current FairRun.
Returns
A unique pointer to the new task.

Definition at line 333 of file R3BNeulandDigitizer.cxx.

◆ EnableCalDataOutput()

void R3B::Neuland::Digitizer::EnableCalDataOutput ( bool is_enabled)
inline

Enable sim cal data output, which can be converted to experimental cal level data by the task R3B::Neuland::SimCal2Cal.

Parameters
is_enabledFlag to enable sim cal data output.
See also
R3B::Neuland::SimCal2Cal

Definition at line 190 of file R3BNeulandDigitizer.h.

◆ EnableSizeMonitor()

void R3B::Neuland::Digitizer::EnableSizeMonitor ( bool is_enabled = true)
inline

Enable the checking the sizes of signal/hit data from the paddle and channel classes. The sizes will be filled into the histograms hist_point_size_, hist_channel_signal_size_, hist_channel_hit_size_ and hist_paddle_hit_size_.

Parameters
is_enbaledFlag to enable the checking

Definition at line 200 of file R3BNeulandDigitizer.h.

◆ Exec()

void R3B::Neuland::Digitizer::Exec ( Option_t * )
overrideprivate

Definition at line 210 of file R3BNeulandDigitizer.cxx.

◆ fill_cal_data()

void R3B::Neuland::Digitizer::fill_cal_data ( const R3B::Digitizing::AbstractPaddle & paddle)
private

Definition at line 381 of file R3BNeulandDigitizer.cxx.

◆ fill_histograms()

void R3B::Neuland::Digitizer::fill_histograms ( )
private

Definition at line 300 of file R3BNeulandDigitizer.cxx.

◆ fill_hit_data()

void R3B::Neuland::Digitizer::fill_hit_data ( const R3B::Digitizing::AbstractPaddle & paddle)
private

Definition at line 352 of file R3BNeulandDigitizer.cxx.

◆ fill_points_to_engine()

void R3B::Neuland::Digitizer::fill_points_to_engine ( )
private

Definition at line 266 of file R3BNeulandDigitizer.cxx.

◆ fill_size_histograms()

void R3B::Neuland::Digitizer::fill_size_histograms ( const Digitizing::AbstractPaddle & paddle)
private

Definition at line 249 of file R3BNeulandDigitizer.cxx.

◆ FinishEvent()

void R3B::Neuland::Digitizer::FinishEvent ( )
overrideprivate

Definition at line 412 of file R3BNeulandDigitizer.cxx.

◆ FinishTask()

void R3B::Neuland::Digitizer::FinishTask ( )
overrideprivate

Definition at line 410 of file R3BNeulandDigitizer.cxx.

◆ HasCalDataOutput()

auto R3B::Neuland::Digitizer::HasCalDataOutput ( ) const -> bool
inlinenodiscard
Returns
Flag whether the sim cal output is enabled
See also
EnableCalDataOutput()

Definition at line 208 of file R3BNeulandDigitizer.h.

◆ Init()

auto R3B::Neuland::Digitizer::Init ( ) -> InitStatus
overrideprivate

Definition at line 159 of file R3BNeulandDigitizer.cxx.

◆ init_histograms()

void R3B::Neuland::Digitizer::init_histograms ( )
private

Definition at line 177 of file R3BNeulandDigitizer.cxx.

◆ SetEngine()

void R3B::Neuland::Digitizer::SetEngine ( std::unique_ptr< Digitizing::EngineInterface > engine)

Set the internal engine, which is derived from class Digitizing::EngineInterface.

Parameters
engineEngine object

Definition at line 133 of file R3BNeulandDigitizer.cxx.

◆ SetParContainers()

void R3B::Neuland::Digitizer::SetParContainers ( )
overrideprivate

Definition at line 138 of file R3BNeulandDigitizer.cxx.

◆ SetPointFilter()

void R3B::Neuland::Digitizer::SetPointFilter ( R3B::Neuland::ParticleFilter filter)
inline

Adding a new point level filter according to particle types and energies.

Parameters
filterA new point level filter
See also
R3B::Neuland::ParticleFilter

Definition at line 180 of file R3BNeulandDigitizer.h.

Member Data Documentation

◆ cal_hit_filter_

Filterable<R3B::Neuland::SimCalData&> R3B::Neuland::Digitizer::cal_hit_filter_
private

Definition at line 222 of file R3BNeulandDigitizer.h.

◆ data_monitor_

R3B::DataMonitor R3B::Neuland::Digitizer::data_monitor_
private

Definition at line 228 of file R3BNeulandDigitizer.h.

◆ digitizing_engine_

std::unique_ptr<Digitizing::EngineInterface> R3B::Neuland::Digitizer::digitizing_engine_
private

Definition at line 218 of file R3BNeulandDigitizer.h.

◆ has_cal_output_

bool R3B::Neuland::Digitizer::has_cal_output_ = false
private

Definition at line 211 of file R3BNeulandDigitizer.h.

◆ has_size_monitor_

bool R3B::Neuland::Digitizer::has_size_monitor_ = false
private

Definition at line 212 of file R3BNeulandDigitizer.h.

◆ hist_channel_hit_size_

TH1D* R3B::Neuland::Digitizer::hist_channel_hit_size_ = nullptr
private

Definition at line 235 of file R3BNeulandDigitizer.h.

◆ hist_channel_signal_size_

TH1D* R3B::Neuland::Digitizer::hist_channel_signal_size_ = nullptr
private

Definition at line 234 of file R3BNeulandDigitizer.h.

◆ hist_multi_one_

TH1I* R3B::Neuland::Digitizer::hist_multi_one_ = nullptr
private

Definition at line 229 of file R3BNeulandDigitizer.h.

◆ hist_multi_two_

TH1I* R3B::Neuland::Digitizer::hist_multi_two_ = nullptr
private

Definition at line 230 of file R3BNeulandDigitizer.h.

◆ hist_paddle_hit_size_

TH1D* R3B::Neuland::Digitizer::hist_paddle_hit_size_ = nullptr
private

Definition at line 236 of file R3BNeulandDigitizer.h.

◆ hist_point_size_

TH1D* R3B::Neuland::Digitizer::hist_point_size_ = nullptr
private

Definition at line 233 of file R3BNeulandDigitizer.h.

◆ hist_rl_time_to_trig_

TH1F* R3B::Neuland::Digitizer::hist_rl_time_to_trig_ = nullptr
private

Definition at line 231 of file R3BNeulandDigitizer.h.

◆ hit_filters_

Filterable<R3BNeulandHit&> R3B::Neuland::Digitizer::hit_filters_
private

Definition at line 221 of file R3BNeulandDigitizer.h.

◆ neuland_cal_hits_

R3B::OutputVectorConnector<R3B::Neuland::SimCalData> R3B::Neuland::Digitizer::neuland_cal_hits_ { "NeulandSimCal" }
private

Definition at line 216 of file R3BNeulandDigitizer.h.

◆ neuland_geo_par_

R3BNeulandGeoPar* R3B::Neuland::Digitizer::neuland_geo_par_ = nullptr
private

Definition at line 224 of file R3BNeulandDigitizer.h.

◆ neuland_hits_

R3B::OutputVectorConnector<R3BNeulandHit> R3B::Neuland::Digitizer::neuland_hits_ { "NeulandHits" }
private

Definition at line 215 of file R3BNeulandDigitizer.h.

◆ neuland_point_filter_

R3B::Neuland::ParticleFilter R3B::Neuland::Digitizer::neuland_point_filter_
private

Definition at line 220 of file R3BNeulandDigitizer.h.

◆ neuland_points_

R3B::InputVectorConnector<R3BNeulandPoint> R3B::Neuland::Digitizer::neuland_points_ { "NeulandPoints" }
private

Definition at line 214 of file R3BNeulandDigitizer.h.

◆ point_size_tracker_

std::unordered_map<int, int> R3B::Neuland::Digitizer::point_size_tracker_
private

Definition at line 226 of file R3BNeulandDigitizer.h.


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