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 |
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< 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 112 of file R3BNeulandDigitizer.h.
Definition at line 115 of file R3BNeulandDigitizer.h.
Definition at line 116 of file R3BNeulandDigitizer.h.
Definition at line 117 of file R3BNeulandDigitizer.h.
R3B::Neuland::Digitizer::Digitizer | ( | ) |
Definition at line 121 of file R3BNeulandDigitizer.cxx.
|
delete |
|
delete |
|
overridedefault |
|
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 128 of file R3BNeulandDigitizer.cxx.
|
inline |
filter | New hit filter |
Definition at line 168 of file R3BNeulandDigitizer.h.
|
inline |
filter | New cal level filter |
Definition at line 176 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 340 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 195 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 205 of file R3BNeulandDigitizer.h.
|
overrideprivate |
Definition at line 217 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 388 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 307 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 359 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 273 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 256 of file R3BNeulandDigitizer.cxx.
|
overrideprivate |
Definition at line 419 of file R3BNeulandDigitizer.cxx.
|
overrideprivate |
Definition at line 417 of file R3BNeulandDigitizer.cxx.
|
inlinenodiscard |
Definition at line 213 of file R3BNeulandDigitizer.h.
|
overrideprivate |
Definition at line 166 of file R3BNeulandDigitizer.cxx.
|
private |
Definition at line 184 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 140 of file R3BNeulandDigitizer.cxx.
|
overrideprivate |
Definition at line 145 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 185 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 227 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 233 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 223 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 216 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 217 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 240 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 239 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 234 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 235 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 241 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 238 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 236 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 226 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 221 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 229 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 220 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 225 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 219 of file R3BNeulandDigitizer.h.
|
private |
Definition at line 231 of file R3BNeulandDigitizer.h.