R3BROOT
R3B analysis software
Loading...
Searching...
No Matches

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

Public Member Functions

 Digitizer ()
 Constructor with no input parameters.
 Digitizer (const Digitizer &)=delete
 Digitizer (Digitizer &&)=delete
auto operator= (const Digitizer &) -> Digitizer &=delete
auto operator= (Digitizer &&) -> Digitizer &=delete
 ~Digitizer () override
 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 112 of file R3BNeulandDigitizer.h.

Member Typedef Documentation

◆ NeulandPaddle

◆ TacquilaChannel

◆ TamexChannel

Constructor & Destructor Documentation

◆ Digitizer() [1/4]

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

Definition at line 121 of file R3BNeulandDigitizer.cxx.

◆ Digitizer() [2/4]

R3B::Neuland::Digitizer::Digitizer ( const Digitizer & )
delete

◆ Digitizer() [3/4]

R3B::Neuland::Digitizer::Digitizer ( Digitizer && )
delete

◆ ~Digitizer()

R3B::Neuland::Digitizer::~Digitizer ( )
overridedefault

◆ Digitizer() [4/4]

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 128 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 168 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 176 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 340 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 195 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 205 of file R3BNeulandDigitizer.h.

◆ Exec()

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

Definition at line 217 of file R3BNeulandDigitizer.cxx.

◆ fill_cal_data()

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

Definition at line 388 of file R3BNeulandDigitizer.cxx.

◆ fill_histograms()

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

Definition at line 307 of file R3BNeulandDigitizer.cxx.

◆ fill_hit_data()

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

Definition at line 359 of file R3BNeulandDigitizer.cxx.

◆ fill_points_to_engine()

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

Definition at line 273 of file R3BNeulandDigitizer.cxx.

◆ fill_size_histograms()

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

Definition at line 256 of file R3BNeulandDigitizer.cxx.

◆ FinishEvent()

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

Definition at line 419 of file R3BNeulandDigitizer.cxx.

◆ FinishTask()

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

Definition at line 417 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 213 of file R3BNeulandDigitizer.h.

◆ Init()

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

Definition at line 166 of file R3BNeulandDigitizer.cxx.

◆ init_histograms()

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

Definition at line 184 of file R3BNeulandDigitizer.cxx.

◆ operator=() [1/2]

auto R3B::Neuland::Digitizer::operator= ( const Digitizer & ) -> Digitizer &=delete
delete

◆ operator=() [2/2]

auto R3B::Neuland::Digitizer::operator= ( Digitizer && ) -> Digitizer &=delete
delete

◆ 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 140 of file R3BNeulandDigitizer.cxx.

◆ SetParContainers()

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

Definition at line 145 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 185 of file R3BNeulandDigitizer.h.

Member Data Documentation

◆ cal_hit_filter_

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

Definition at line 227 of file R3BNeulandDigitizer.h.

◆ data_monitor_

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

Definition at line 233 of file R3BNeulandDigitizer.h.

◆ digitizing_engine_

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

Definition at line 223 of file R3BNeulandDigitizer.h.

◆ has_cal_output_

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

Definition at line 216 of file R3BNeulandDigitizer.h.

◆ has_size_monitor_

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

Definition at line 217 of file R3BNeulandDigitizer.h.

◆ hist_channel_hit_size_

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

Definition at line 240 of file R3BNeulandDigitizer.h.

◆ hist_channel_signal_size_

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

Definition at line 239 of file R3BNeulandDigitizer.h.

◆ hist_multi_one_

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

Definition at line 234 of file R3BNeulandDigitizer.h.

◆ hist_multi_two_

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

Definition at line 235 of file R3BNeulandDigitizer.h.

◆ hist_paddle_hit_size_

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

Definition at line 241 of file R3BNeulandDigitizer.h.

◆ hist_point_size_

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

Definition at line 238 of file R3BNeulandDigitizer.h.

◆ hist_rl_time_to_trig_

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

Definition at line 236 of file R3BNeulandDigitizer.h.

◆ hit_filters_

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

Definition at line 226 of file R3BNeulandDigitizer.h.

◆ neuland_cal_hits_

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

Definition at line 221 of file R3BNeulandDigitizer.h.

◆ neuland_geo_par_

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

Definition at line 229 of file R3BNeulandDigitizer.h.

◆ neuland_hits_

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

Definition at line 220 of file R3BNeulandDigitizer.h.

◆ neuland_point_filter_

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

Definition at line 225 of file R3BNeulandDigitizer.h.

◆ neuland_points_

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

Definition at line 219 of file R3BNeulandDigitizer.h.

◆ point_size_tracker_

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

Definition at line 231 of file R3BNeulandDigitizer.h.


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