30#include <RtypesCore.h>
31#include <TClonesArray.h>
36#include <unordered_map>
68 std::string
name =
"NeulandDigitizer";
91 PeakPileUpStrategy::width;
93 std::string
read =
"NeulandPoints;NeulandHitPar";
94 std::string
write =
"NeulandHits;NeulandSimCal";
115 template <
typename Type>
117 template <
typename Type>
134 explicit Digitizer(std::unique_ptr<Digitizing::EngineInterface> engine,
135 std::string_view points_name =
"NeulandPoints",
136 std::string_view hits_name =
"NeulandHits",
137 std::string_view cal_hits_name =
"NeulandSimCal");
155 void SetEngine(std::unique_ptr<Digitizing::EngineInterface> engine);
225 std::unordered_map<int, int>
245 auto Init() -> InitStatus
override;
249 void Exec(Option_t* )
override;
R3B::Neuland::Digitizer R3BNeulandDigitizer
std::function< bool(const T)> Filter
static auto GetDefaultRandomGen() -> TRandom3 &
Main digitizer task class for NeuLAND.
Digitizing::Neuland::TacQuila::Channel TacquilaChannel
void Exec(Option_t *) override
static auto Create(const R3B::Neuland::DigiTaskOptions &option, FairRun *run) -> std::unique_ptr< Digitizer >
Generator of the digitizing class.
Filterable< R3BNeulandHit & > hit_filters_
Digitizer()
Constructor with no input parameters.
R3B::Neuland::ParticleFilter neuland_point_filter_
R3BNeulandGeoPar * neuland_geo_par_
Digitizing::UsePaddle< Type > UsePaddle
std::unique_ptr< Digitizing::EngineInterface > digitizing_engine_
void FinishEvent() override
void AddFilterCal(const Filterable< R3B::Neuland::SimCalData & >::Filter &filter)
Add a new cal level filter.
void fill_size_histograms(const Digitizing::AbstractPaddle &paddle)
void SetParContainers() override
Digitizing::Neuland::Tamex::Channel TamexChannel
TH1F * hist_rl_time_to_trig_
void fill_points_to_engine()
std::unordered_map< int, int > point_size_tracker_
void AddFilter(const Filterable< R3BNeulandHit & >::Filter &filter)
Add a new hit filter.
R3B::OutputVectorConnector< R3BNeulandHit > neuland_hits_
auto Init() -> InitStatus override
void EnableSizeMonitor(bool is_enabled=true)
Enable the checking on sizes of different data levels.
void fill_hit_data(const R3B::Digitizing::AbstractPaddle &paddle)
void EnableCalDataOutput(bool is_enabled)
Enable sim cal data output.
auto HasCalDataOutput() const -> bool
Getter of the sim cal output flag.
Digitizing::Neuland::Paddle NeulandPaddle
void fill_cal_data(const R3B::Digitizing::AbstractPaddle &paddle)
void SetEngine(std::unique_ptr< Digitizing::EngineInterface > engine)
Setter of the internal engine.
void FinishTask() override
TH1D * hist_paddle_hit_size_
Filterable< R3B::Neuland::SimCalData & > cal_hit_filter_
R3B::InputVectorConnector< R3BNeulandPoint > neuland_points_
TH1D * hist_channel_signal_size_
void SetPointFilter(R3B::Neuland::ParticleFilter filter)
Add a new point level filter.
Digitizing::UseChannel< Type > UseChannel
R3B::DataMonitor data_monitor_
R3B::OutputVectorConnector< R3B::Neuland::SimCalData > neuland_cal_hits_
TH1D * hist_channel_hit_size_
NeuLAND geometry parameter storage.
Simulation of NeuLAND Bar/Paddle.
InputConnector< std::vector< ElementType > > InputVectorConnector
OutputConnector< std::vector< ElementType > > OutputVectorConnector
Configuration struct for R3B::Neuland::Digitizer used in R3B::Neuland::AnalysisApplication.
std::string channel
Channel name used in the task.
Digitizing::Neuland::Tamex::PeakPileUpStrategy pileup_strategy
Pileup strategy for the tamex channel.
bool enable_sim_cal
Flag to enable the simulated cal level data output.
bool enable_hit_par
Flag to enable the usage of cal_to_hit parameter.
std::string read
Input data names required by the digitizer.
bool enable_size_monitor
Flag to enable the checking of hit/signal sizes in histograms.
std::string paddle
Paddle name used in the task.
ClassDefNV(DigiTaskOptions, 1)
bool enable
Flag to enable task.
ParticleFilter::Options point_filter
Point level filter options used in the digitizer.
R3B::Digitizing::Neuland::Tamex::Params tamex_par
Tamex parameters used in the Digitizer.
std::string write
Output data names from the digitizer.
std::string name
Name of the task.
Option structure to create a filter.