13 :
public JOmniFactory<CALOROCDigitization_factory, CALOROCDigitizationConfig> {
19 std::unique_ptr<AlgoT> m_algo;
21 PodioInput<edm4eic::SimPulse> m_pulse_input{
this};
22 PodioOutput<edm4eic::RawCALOROCHit> m_digi_output{
this};
24 ParameterRef<double> m_time_window{
this,
"timeWindow",
config().time_window};
25 ParameterRef<double> m_adc_phase{
this,
"adcPhase",
config().adc_phase};
26 ParameterRef<double> m_toa_thres{
this,
"toaThres",
config().toa_thres};
27 ParameterRef<double> m_tot_thres{
this,
"totThres",
config().tot_thres};
28 ParameterRef<unsigned int> m_capADC{
this,
"capADC",
config().capADC};
29 ParameterRef<double> m_dyRangeSingleGainADC{
this,
"dyRangeSingleGainADC",
30 config().dyRangeSingleGainADC};
31 ParameterRef<double> m_dyRangeHighGainADC{
this,
"dyRangeHighGainADC",
32 config().dyRangeHighGainADC};
33 ParameterRef<double> m_dyRangeLowGainADC{
this,
"dyRangeLowGainADC",
config().dyRangeLowGainADC};
34 ParameterRef<unsigned int> m_capTOA{
this,
"capTOA",
config().capTOA};
35 ParameterRef<double> m_dyRangeTOA{
this,
"dyRangeTOA",
config().dyRangeTOA};
36 ParameterRef<unsigned int> m_capTOT{
this,
"capTOT",
config().capTOT};
37 ParameterRef<double> m_dyRangeTOT{
this,
"dyRangeTOT",
config().dyRangeTOT};
39 Service<AlgorithmsInit_service> m_algorithmsInit{
this};
43 m_algo = std::make_unique<AlgoT>(
GetPrefix());
44 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
45 m_algo->applyConfig(
config());
50 m_algo->process({m_pulse_input()}, {m_digi_output().get()});