13 :
public JOmniFactory<SimCalorimeterHitProcessor_factory, SimCalorimeterHitProcessorConfig> {
19 std::unique_ptr<AlgoT> m_algo;
21 PodioInput<edm4hep::SimCalorimeterHit> m_hits_input{
this};
22 PodioOutput<edm4hep::SimCalorimeterHit> m_hits_output{
this};
23 PodioOutput<edm4hep::CaloHitContribution> m_hits_contribs_output{
this};
25 ParameterRef<std::vector<double>> m_attenuationParameters{
this,
"attenuationParameters",
26 config().attenuationParameters};
27 ParameterRef<std::string> m_attenuationReferencePositionName{
28 this,
"attenuationReferencePositionName",
config().attenuationReferencePositionName};
29 ParameterRef<std::vector<std::string>> m_hitMergeFields{
this,
"hitMergeFields",
31 ParameterRef<std::vector<std::string>> m_contributionMergeFields{
32 this,
"contributionMergeFields",
config().contributionMergeFields};
33 ParameterRef<std::string> m_readout{
this,
"readout",
config().readout};
34 ParameterRef<double> m_inversePropagationSpeed{
this,
"inversePropagationSpeed",
35 config().inversePropagationSpeed};
36 ParameterRef<double> m_fixedTimeDelay{
this,
"fixedTimeDelay",
config().fixedTimeDelay};
37 ParameterRef<double> m_timeWindow{
this,
"timeWindow",
config().timeWindow};
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_hits_input()}, {m_hits_output().get(), m_hits_contribs_output().get()});