11#ifndef EVENTPROC_ECALDIGIPRODUCER_H_
12#define EVENTPROC_ECALDIGIPRODUCER_H_
29#include "Tools/HgcrocEmulator.h"
115 std::unique_ptr<ldmx::HgcrocEmulator>
hgcroc_;
Class that defines an ECal detector ID with a cell number.
Class providing string constants for the event model.
Base classes for all user event processing components to extend.
Class that represents a digitized hit in a calorimeter cell readout by an HGCROC.
Utility used to generate noise hits.
Class which stores simulated calorimeter hit information.
Performs basic ECal digitization.
int iSOI_
Index for the Sample Of Interest in the list of digi samples.
bool noise_
Put noise into empty channels, not configurable, only helpful in development.
std::mt19937 rng_
Generates random numbers for which channels to fill up with noise.
std::string inputCollName_
input hit collection name
double clockCycle_
Time interval for chip clock in ns.
int nADCs_
Depth of ADC buffer.
double readoutThreshold_
Read out threshold.
virtual void produce(framework::Event &event) override
Simulates measurement of pulse and creates digi collection for input event.
double pedestal_
Read out pedestal.
std::unique_ptr< ldmx::NoiseGenerator > noiseGenerator_
Generates noise hits based off of number of cells that are not hit.
EcalDigiProducer(const std::string &name, framework::Process &process)
Constructor.
virtual void configure(framework::config::Parameters &) override
Configure this producer from the python configuration.
double noiseRMS_
Noise RMS.
double ns_
Conversion from time in ns to ticks of the internal clock.
std::string digiCollName_
output hit collection name
double MeV_
Conversion from energy in MeV to voltage in mV.
virtual void onNewRun(const ldmx::RunHeader &runHeader) override
Set up random number / noise generation.
std::string inputPassName_
input pass name
virtual ~EcalDigiProducer()=default
Destructor.
std::unique_ptr< ldmx::HgcrocEmulator > hgcroc_
Hgcroc Emulator to digitize analog voltage signals.
bool zero_suppression_
When emulating noise in empty channels, do we zero suppress?
Implements an event buffer system for storing event data.
Class which represents the process under execution.
Base class for a module which produces a data product.
Producer(const std::string &name, Process &process)
Class constructor.
Class encapsulating parameters for configuring a processor.