LDMX Software
HcalDigiProducer.h
1#ifndef HCAL_HCALDIGIPRODUCER_H_
2#define HCAL_HCALDIGIPRODUCER_H_
3
4//----------------//
5// C++ StdLib //
6//----------------//
7#include <memory> //for smart pointers
8#include <set> //for tracking used detector IDs
9
10//----------//
11// LDMX //
12//----------//
13#include "DetDescr/HcalDigiID.h"
15#include "DetDescr/HcalID.h"
20#include "Tools/HgcrocEmulator.h"
22
23namespace hcal {
24
30 public:
35 HcalDigiProducer(const std::string& name, framework::Process& process);
36
38 virtual ~HcalDigiProducer() = default;
39
46
50 void produce(framework::Event& event) override;
51
52 private:
54 // Python Configuration Parameters
55
57 std::string inputCollName_;
58
60 std::string inputPassName_;
61
63 std::string digiCollName_;
64
67
69 int nADCs_;
70
72 int iSOI_;
73
75 double MeV_;
76
78 double attlength_;
79
81 // Other member variables
82
85 bool noise_{true};
86
88 std::unique_ptr<ldmx::HgcrocEmulator> hgcroc_;
89
91 double ns_;
92
94 std::unique_ptr<ldmx::NoiseGenerator> noiseGenerator_;
95
97 std::unique_ptr<TRandom3> noiseInjector_;
98};
99} // namespace hcal
100
101#endif
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.
Class which stores simulated calorimeter hit information.
Implements an event buffer system for storing event data.
Definition Event.h:41
Class which represents the process under execution.
Definition Process.h:36
Base class for a module which produces a data product.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:27
Performs basic HCal digitization.
bool noise_
Put noise into empty channels, not configurable, only helpful in development.
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
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::unique_ptr< ldmx::HgcrocEmulator > hgcroc_
Hgcroc Emulator to digitize analog voltage signals.
std::string inputCollName_
input hit collection name
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
std::unique_ptr< TRandom3 > noiseInjector_
Generates Gaussian noise on top of real hits.
int iSOI_
Index for the Sample Of Interest in the list of digi samples.
virtual ~HcalDigiProducer()=default
Default destructor.