R3BROOT
R3B analysis software
|
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< R3BNeulandPoint > | neuland_points_ { "NeulandPoints" } |
R3B::OutputVectorConnector< R3BNeulandHit > | neuland_hits_ { "NeulandHits" } |
R3B::OutputVectorConnector< R3B::Neuland::SimCalData > | neuland_cal_hits_ { "NeulandSimCal" } |
std::unique_ptr< Digitizing::EngineInterface > | digitizing_engine_ |
R3B::Neuland::ParticleFilter | neuland_point_filter_ |
Filterable< R3BNeulandHit & > | hit_filters_ |
Filterable< R3B::Neuland::SimCalData & > | cal_hit_filter_ |
R3BNeulandGeoPar * | neuland_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 |
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.
Definition at line 112 of file R3BNeulandDigitizer.h.
Definition at line 113 of file R3BNeulandDigitizer.h.
Definition at line 114 of file R3BNeulandDigitizer.h.
using R3B::Neuland::Digitizer::UseChannel = Digitizing::UseChannel<Type> |
Definition at line 116 of file R3BNeulandDigitizer.h.
using R3B::Neuland::Digitizer::UsePaddle = Digitizing::UsePaddle<Type> |
Definition at line 118 of file R3BNeulandDigitizer.h.
R3B::Neuland::Digitizer::Digitizer | ( | ) |
Definition at line 116 of file R3BNeulandDigitizer.cxx.
|
explicit |
engine | Engine object |
points_name | The branch name of the input point level data. |
hits_name | The branch name of the output hit level data. |
cal_hits_name | The branch name of the output cal level data if has_cal_output_ is true. |
Definition at line 121 of file R3BNeulandDigitizer.cxx.
|
inline |
filter | New hit filter |
Definition at line 163 of file R3BNeulandDigitizer.h.
|
inline |
filter | New cal level filter |
Definition at line 171 of file R3BNeulandDigitizer.h.
|
static |
Create a task from the specifed options and run instance.
option | The options used to configure the task |
run | The pointer to the current FairRun. |
Definition at line 333 of file R3BNeulandDigitizer.cxx.
|
inline |
Enable sim cal data output, which can be converted to experimental cal level data by the task R3B::Neuland::SimCal2Cal.
is_enabled | Flag to enable sim cal data output. |
Definition at line 190 of file R3BNeulandDigitizer.h.
|
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_.
is_enbaled | Flag to enable the checking |
Definition at line 200 of file R3BNeulandDigitizer.h.
|
overrideprivate |
Definition at line 210 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 381 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 300 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 352 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 266 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 249 of file R3BNeulandDigitizer.cxx.
|
overrideprivate |
Definition at line 412 of file R3BNeulandDigitizer.cxx.
|
overrideprivate |
Definition at line 410 of file R3BNeulandDigitizer.cxx.
|
inlinenodiscard |
Definition at line 208 of file R3BNeulandDigitizer.h.
|
overrideprivate |
Definition at line 159 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 177 of file R3BNeulandDigitizer.cxx.
void R3B::Neuland::Digitizer::SetEngine | ( | std::unique_ptr< Digitizing::EngineInterface > | engine | ) |
Set the internal engine, which is derived from class Digitizing::EngineInterface.
engine | Engine object |
Definition at line 133 of file R3BNeulandDigitizer.cxx.
|
overrideprivate |
Definition at line 138 of file R3BNeulandDigitizer.cxx.
|
inline |
Adding a new point level filter according to particle types and energies.
filter | A new point level filter |
Definition at line 180 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 222 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 228 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 218 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 211 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 212 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 235 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 234 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 229 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 230 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 236 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 233 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 231 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 221 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 216 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 224 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 215 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 220 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 214 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 226 of file R3BNeulandDigitizer.h.