EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
SiliconChargeSharing_factory.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2024-2025 Chun Yuen Tsang, Simon Gardner
3
4#pragma once
5
9
10namespace eicrecon {
11
13 : public JOmniFactory<SiliconChargeSharing_factory, SiliconChargeSharingConfig> {
14public:
16
17private:
18 std::unique_ptr<AlgoT> m_algo;
19
20 PodioInput<edm4hep::SimTrackerHit> m_in_sim_track{this};
21 PodioOutput<edm4hep::SimTrackerHit> m_out_reco_particles{this};
22
23 Service<AlgorithmsInit_service> m_algorithmsInit{this};
24
25 ParameterRef<float> m_sigma_sharingx{this, "sigmaSharingX", config().sigma_sharingx};
26 ParameterRef<float> m_sigma_sharingy{this, "sigmaSharingY", config().sigma_sharingy};
27 ParameterRef<float> m_min_edep{this, "minEDep", config().min_edep};
28 ParameterRef<std::string> m_readout{this, "readout", config().readout};
29 ParameterRef<eicrecon::SiliconChargeSharingConfig::ESigmaMode> m_sigma_mode{this, "sigmaMode",
30 config().sigma_mode};
31
32public:
33 void Configure() {
34 m_algo = std::make_unique<AlgoT>(GetPrefix());
35 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
36 m_algo->applyConfig(config());
37 m_algo->init();
38 }
39
40 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
41 m_algo->process({m_in_sim_track()}, {m_out_reco_particles().get()});
42 }
43};
44} // namespace eicrecon
Definition JOmniFactory.h:30
SiliconChargeSharingConfig & 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 SiliconChargeSharing_factory.h:13
void Process(int32_t, uint64_t)
Definition SiliconChargeSharing_factory.h:40
void Configure()
Definition SiliconChargeSharing_factory.h:33
Definition SiliconChargeSharing.h:32
-client
Definition CalorimeterClusterRecoCoG.cc:37