14 :
public JOmniFactory<CalorimeterHitDigi_factory, CalorimeterHitDigiConfig> {
20 std::unique_ptr<AlgoT> m_algo;
22 PodioInput<edm4hep::EventHeader> m_event_headers_input{
this};
23 PodioInput<edm4hep::SimCalorimeterHit> m_hits_input{
this};
24 PodioOutput<edm4hep::RawCalorimeterHit> m_hits_output{
this};
25#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
26 PodioOutput<edm4eic::MCRecoCalorimeterHitLink> m_links_output{
this};
28 PodioOutput<edm4eic::MCRecoCalorimeterHitAssociation> m_hit_assocs_output{
this};
30 ParameterRef<std::vector<double>> m_energyResolutions{
this,
"energyResolutions",
config().eRes};
31 ParameterRef<double> m_timeResolution{
this,
"timeResolution",
config().tRes};
32 ParameterRef<unsigned int> m_capADC{
this,
"capacityADC",
config().capADC};
33 ParameterRef<double> m_dyRangeADC{
this,
"dynamicRangeADC",
config().dyRangeADC};
34 ParameterRef<unsigned int> m_pedMeanADC{
this,
"pedestalMean",
config().pedMeanADC};
35 ParameterRef<double> m_pedSigmaADC{
this,
"pedestalSigma",
config().pedSigmaADC};
36 ParameterRef<double> m_resolutionTDC{
this,
"resolutionTDC",
config().resolutionTDC};
37 ParameterRef<std::string> m_corrMeanScale{
this,
"scaleResponse",
config().corrMeanScale};
38 ParameterRef<std::vector<std::string>> m_fields{
this,
"signalSumFields",
config().fields};
39 ParameterRef<std::string> m_readout{
this,
"readoutClass",
config().readout};
40 ParameterRef<std::string> m_readoutType{
this,
"readoutType",
config().readoutType};
41 ParameterRef<double> m_lightYield{
this,
"lightYield",
config().lightYield};
42 ParameterRef<double> m_photonDetectionEfficiency{
this,
"photonDetectionEfficiency",
43 config().photonDetectionEfficiency};
44 ParameterRef<unsigned long long> m_numEffectiveSipmPixels{
this,
"numEffectiveSipmPixels",
45 config().numEffectiveSipmPixels};
47 Service<AlgorithmsInit_service> m_algorithmsInit{
this};
51 m_algo = std::make_unique<AlgoT>(
GetPrefix());
52 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
53 m_algo->applyConfig(
config());
58 m_algo->process({m_event_headers_input(), m_hits_input()}, {m_hits_output().get(),
59#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
60 m_links_output().get(),
62 m_hit_assocs_output().get()});