EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
SimCalorimeterHitProcessor_factory.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2025 Minho Kim, Sylvester Joosten, Derek Anderson, Wouter Deconinck
3
4#pragma once
5
9
10namespace eicrecon {
11
13 : public JOmniFactory<SimCalorimeterHitProcessor_factory, SimCalorimeterHitProcessorConfig> {
14
15public:
17
18private:
19 std::unique_ptr<AlgoT> m_algo;
20
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};
24
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",
30 config().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};
38
39 Service<AlgorithmsInit_service> m_algorithmsInit{this};
40
41public:
42 void Configure() {
43 m_algo = std::make_unique<AlgoT>(GetPrefix());
44 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
45 m_algo->applyConfig(config());
46 m_algo->init();
47 }
48
49 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
50 m_algo->process({m_hits_input()}, {m_hits_output().get(), m_hits_contribs_output().get()});
51 }
52};
53
54} // namespace eicrecon
Definition JOmniFactory.h:30
SimCalorimeterHitProcessorConfig & config()
Retrieve reference to embedded config object.
Definition JOmniFactory.h:576
std::shared_ptr< spdlog::logger > & logger()
Retrieve reference to already-configured logger.
Definition JOmniFactory.h:573
Definition SimCalorimeterHitProcessor_factory.h:13
void Configure()
Definition SimCalorimeterHitProcessor_factory.h:42
void Process(int32_t, uint64_t)
Definition SimCalorimeterHitProcessor_factory.h:49
Definition SimCalorimeterHitProcessor.h:27
-client
Definition CalorimeterClusterRecoCoG.cc:37