LDMX Software
EcalRecProducer.h
Go to the documentation of this file.
1
9#ifndef ECAL_ECALRECPRODUCER_H_
10#define ECAL_ECALRECPRODUCER_H_
11
12//----------//
13// LDMX //
14//----------//
15#include <memory>
16#include <random>
17
19#include "Tools/PulseShape.h"
20
21namespace ecal {
22
31 public:
35 EcalRecProducer(const std::string& name, framework::Process& process);
36
40 virtual ~EcalRecProducer() = default;
41
46
55 void produce(framework::Event& event) override;
56
58 void onNewRun(const ldmx::RunHeader&) override;
59
60 private:
62 std::string digi_coll_name_;
63
65 std::string digi_pass_name_;
66
68 std::string sim_hit_coll_name_;
69
71 std::string sim_hit_pass_name_;
72
74 std::string rec_hit_coll_name_;
75
78
81
84
93 std::vector<double> layer_weights_;
94
104
106 std::string amplitude_method_;
107
110
112 std::unique_ptr<ldmx::HgcrocShape> pulse_shape_;
113
116
119
122
124 std::string phase_name_;
125
126 std::mt19937 rng_;
127};
128} // namespace ecal
129
130#endif
Base classes for all user event processing components to extend.
Performs basic ECal reconstruction.
std::string phase_name_
event header float parameter holding the event phase [ns]
double mip_si_energy_
Energy [MeV] deposited by a MIP in Si 0.5mm thick.
std::string sim_hit_coll_name_
simhit collection name
void onNewRun(const ldmx::RunHeader &) override
Seed the phase smearing.
std::string amplitude_method_
ADC mode amplitude: soi, max or fit.
bool fit_fixed_t0_
fit with t0 = event phase + offset, e.g. phase from HCal TOA
double fit_t0_offset_
offset [ns] between the event phase and the pulse t0
double phase_resolution_
Gaussian smearing [ns] of the event phase.
std::vector< double > layer_weights_
Layer Weights to use for this reconstruction.
double second_order_energy_correction_
Second Order Energy Correction to use for this reconstruction.
double charge_per_mip_
Number of electrons generated by average MIP in Si 0.5mm thick.
virtual ~EcalRecProducer()=default
Destructor.
std::string rec_hit_coll_name_
output hit collection name
EcalRecProducer(const std::string &name, framework::Process &process)
Constructor.
int fit_n_samples_
number of samples in the fit, starting one before the max, <= 0 for all
std::string digi_pass_name_
Digi Pass Name to use as input.
void produce(framework::Event &event) override
Produce EcalHits and put them into the event bus using the EcalDigis as input.
double clock_cycle_
Length of clock cycle [ns].
std::string sim_hit_pass_name_
simhit pass name
void configure(framework::config::Parameters &) override
Grabs configure parameters from the python config file.
std::unique_ptr< ldmx::HgcrocShape > pulse_shape_
HGCROC pulse template, only for amplitude_method fit.
std::string digi_coll_name_
Digi Collection Name to use as input.
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
Run-specific configuration and data stored in its own output TTree alongside the event TTree in the o...
Definition RunHeader.h:68