LDMX Software
HcalSimpleDigiAndRecProducer.h
1#ifndef HCALSIMPLEDIGIANDRECPRODUCER_H
2#define HCALSIMPLEDIGIANDRECPRODUCER_H
3#include <random>
4
5#include "Framework/Configure/Parameters.h"
8
9namespace hcal {
11 public:
12 HcalSimpleDigiAndRecProducer(const std::string& name,
15 ~HcalSimpleDigiAndRecProducer() override = default;
16 void onNewRun(const ldmx::RunHeader& runHeader) override;
18 void produce(framework::Event& event) override;
19
20 private:
21 std::string input_coll_name_{};
22 std::string input_pass_name_{};
23 std::string output_coll_name_{};
24 double mev_per_mip_{};
25 double pe_per_mip_{};
26 double attenuation_length_{};
27 double mean_noise_{};
28 std::mt19937 rng_{};
29 std::unique_ptr<std::normal_distribution<double>> position_resolution_smear_{
30 nullptr};
31 std::unique_ptr<ldmx::NoiseGenerator> noise_generator_{nullptr};
32 int readout_threshold_{2};
33};
34
35} // namespace hcal
36
37#endif /* HCALSIMPLEDIGIANDRECPRODUCER_H */
Base classes for all user event processing components to extend.
Utility used to generate noise hits_.
Implements an event buffer system for storing event data.
Definition Event.h:40
Class which represents the process under execution.
Definition Process.h:34
Base class for a module which produces a data product.
virtual void process(Event &event) final
Processing an event for a Producer is calling produce.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:26
void produce(framework::Event &event) override
Process the event and put new data products into it.
void onNewRun(const ldmx::RunHeader &runHeader) override
Callback for the EventProcessor to take any necessary action when the run being processed changes.
void configure(framework::config::Parameters &ps) override
Callback for the EventProcessor to configure itself from the given set of parameters.
Run-specific configuration and data stored in its own output TTree alongside the event TTree in the o...
Definition RunHeader.h:68