LDMX Software
HcalRecProducer.h
Go to the documentation of this file.
1
10#ifndef HCAL_HCALRECPRODUCER_H_
11#define HCAL_HCALRECPRODUCER_H_
12
13//----------------//
14// C++ StdLib //
15//----------------//
16#include <memory> //for smart pointers
17
18//----------//
19// LDMX //
20//----------//
21#include "DetDescr/DetectorID.h"
22#include "DetDescr/HcalDigiID.h"
24#include "DetDescr/HcalID.h"
27
28//---------//
29// ROOT //
30//---------//
31#include "TF1.h"
32#include "TGraph.h"
33
34namespace hcal {
35
44 public:
48 HcalRecProducer(const std::string& name, framework::Process& process);
49
53 virtual ~HcalRecProducer() = default;
54
59
64 double pedestal, unsigned int iSOI) const;
65
74 void produce(framework::Event& event) override;
75
76 private:
78 std::string digi_coll_name_;
79
81 std::string digi_pass_name_;
82
84 std::string sim_hit_coll_name_;
85
87 std::string sim_hit_pass_name_;
88
90 std::string rec_hit_coll_name_;
91
94
97
100
103
106
108 mutable TF1 pulse_func_;
109
116 mutable TGraph correction_ampl_;
117
127 mutable TGraph correction_toa_;
128
131
133 double min_ampl_;
134
137
140
143
146
149
152};
153} // namespace hcal
154
155#endif
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.
Implements an event buffer system for storing event data.
Definition Event.h:42
Class which represents the process under execution.
Definition Process.h:36
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:29
Performs basic HCal reconstruction.
double min_ampl_
Minimum amplitude to apply TOA correction.
double rate_dn_slope_
Rate of Down Slope in Pulse Shape [1/ns].
int n_ad_cs_
Depth of ADC buffer.
double time_dn_slope_
Time of Down Slope relative to Pulse Shape Fit [ns].
double clock_cycle_
Length of clock cycle [ns].
double voltage_per_mip_
Voltage by average MIP.
std::string rec_hit_coll_name_
output hit collection name
void configure(framework::config::Parameters &) override
Grabs configure parameters from the python config file.
double time_peak_
Time of Peak relative to pulse shape fit [ns].
TGraph correction_toa_
Correction to the measured TOA relative to the peak.
virtual ~HcalRecProducer()=default
Destructor.
HcalRecProducer(const std::string &name, framework::Process &process)
Constructor.
std::string sim_hit_coll_name_
simhit collection name
double rate_up_slope_
Rate of Up Slope in Pulse Shape [1/ns].
double mip_energy_
Energy [MeV] deposited by a MIP.
std::string digi_pass_name_
Digi Pass Name to use as input.
double attlength_
Strip attenuation length [m].
TGraph correction_ampl_
Correction to the pulse's measured amplitude at the peak.
void produce(framework::Event &event) override
Produce HcalHits and put them into the event bus using the HcalDigis as input.
std::string digi_coll_name_
Digi Collection Name to use as input.
double time_up_slope_
Time of Up Slope relative to Pulse Shape Fit [ns].
TF1 pulse_func_
Pulse function.
double pe_per_mip_
PEs per MIP.
std::string sim_hit_pass_name_
simhit pass name
double min_ampl_fraction_
Minimum amplitude fraction to apply amplitude correction.
double getTOA(const ldmx::HgcrocDigiCollection::HgcrocDigi digi, double pedestal, unsigned int iSOI) const
Gets Time of Arrival with respect to the SOI.
One DIGI signal coming from the HGC ROC.