1#ifndef HCAL_HCALDIGIPRODUCER_H_
2#define HCAL_HCALDIGIPRODUCER_H_
14#include "DetDescr/HcalDigiID.h"
22#include "Tools/HgcrocEmulator.h"
99 std::unique_ptr<ldmx::HgcrocEmulator>
hgcroc_;
Class providing string constants for the event model.
Base classes for all user event processing components to extend.
Class that translates HCal ID into positions of strip hits.
Class that defines an HCal sensitive detector.
Class that represents a digitized hit in a calorimeter cell readout by an HGCROC.
Utility used to generate noise hits.
Conditions object for random number seeds.
Class which stores simulated calorimeter hit information.
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.
Class encapsulating parameters for configuring a processor.
Performs basic HCal digitization.
bool noise_
Put noise into empty channels, not configurable, only helpful in development.
double gain_
Read out gain.
HcalDigiProducer(const std::string &name, framework::Process &process)
Constructor Makes unique noise generator and injector for this class.
double attlength_
Strip attenuation length [m].
void produce(framework::Event &event) override
Simulates measurement of pulse and creates digi collection for input event.
std::unique_ptr< ldmx::NoiseGenerator > noiseGenerator_
Generates noise hits based off of number of cells that are not hit.
std::string digiCollName_
output hit collection name
bool zeroSuppression_
If false, save digis from all channels, even pure noise in empty bars Helpful when comparing with tes...
double ns_
Conversion from time in ns to ticks of the internal clock.
int nADCs_
Depth of ADC buffer.
double MeV_
Conversion from energy in MeV to voltage in mV.
std::mt19937 rng_
Generates Gaussian noise on top of real hits.
std::unique_ptr< ldmx::HgcrocEmulator > hgcroc_
Hgcroc Emulator to digitize analog voltage signals.
std::string inputCollName_
input hit collection name
double readoutThreshold_
Read out threshold.
void configure(framework::config::Parameters &) override
Configure this producer from the python configuration.
double clockCycle_
Time interval for chip clock in ns.
std::string inputPassName_
input pass name
int iSOI_
Index for the Sample Of Interest in the list of digi samples.
virtual void onNewRun(const ldmx::RunHeader &runHeader) override
Random number generation.
double pedestal_
Read out pedestal.
virtual ~HcalDigiProducer()=default
Default destructor.
double noiseRMS_
Noise RMS.