EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
CalorimeterIslandCluster_factory.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2023 Wouter Deconinck
3
4#pragma once
5
9
10namespace eicrecon {
11
13 : public JOmniFactory<CalorimeterIslandCluster_factory, CalorimeterIslandClusterConfig> {
14public:
16
17private:
18 std::unique_ptr<AlgoT> m_algo;
19
20 PodioInput<edm4eic::CalorimeterHit> m_calo_hit_input{this};
21 PodioOutput<edm4eic::ProtoCluster> m_proto_cluster_output{this};
22
23 ParameterRef<double> m_sectorDist{this, "sectorDist", config().sectorDist};
24 // ParameterRef<std::vector<double>> m_localDistXY{this, "localDistXY", config().localDistXY};
25 ParameterRef<std::vector<double>> m_localDistXZ{this, "localDistXZ", config().localDistXZ};
26 ParameterRef<std::vector<double>> m_localDistYZ{this, "localDistYZ", config().localDistYZ};
27 ParameterRef<std::vector<double>> m_globallDistRPhi{this, "globalDistRPhi",
28 config().globalDistRPhi};
29 ParameterRef<std::vector<double>> m_globalDistEtaPhi{this, "globalDistEtaPhi",
30 config().globalDistEtaPhi};
31 ParameterRef<std::vector<double>> m_dimScalledLocalDistXY{this, "dimScaledLocalDistXY",
32 config().dimScaledLocalDistXY};
33 ParameterRef<std::string> m_adjacencyMatrix{this, "adjacencyMatrix", config().adjacencyMatrix};
34 ParameterRef<std::string> m_readout{this, "readoutClass", config().readout};
35 ParameterRef<bool> m_splitCluster{this, "splitCluster", config().splitCluster};
36 ParameterRef<double> m_minClusterHitEdep{this, "minClusterHitEdep", config().minClusterHitEdep};
37 ParameterRef<double> m_minClusterCenterEdep{this, "minClusterCenterEdep",
38 config().minClusterCenterEdep};
39 ParameterRef<std::string> m_tepm{this, "transverseEnergyProfileMetric",
41 ParameterRef<double> m_teps{this, "transverseEnergyProfileScale",
42 config().transverseEnergyProfileScale};
43
44 Service<AlgorithmsInit_service> m_algorithmsInit{this};
45
46public:
47 void Configure() {
48 m_algo = std::make_unique<AlgoT>(GetPrefix());
49 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
50 // Remove spaces from adjacency matrix
51 // cfg.adjacencyMatrix.erase(
52 // std::remove_if(cfg.adjacencyMatrix.begin(), cfg.adjacencyMatrix.end(), ::isspace), cfg.adjacencyMatrix.end());
53 m_algo->applyConfig(config());
54 m_algo->init();
55 }
56
57 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
58 m_algo->process({m_calo_hit_input()}, {m_proto_cluster_output().get()});
59 }
60};
61
62} // namespace eicrecon
Definition JOmniFactory.h:30
CalorimeterIslandClusterConfig & 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 CalorimeterIslandCluster_factory.h:13
void Configure()
Definition CalorimeterIslandCluster_factory.h:47
void Process(int32_t, uint64_t)
Definition CalorimeterIslandCluster_factory.h:57
Definition CalorimeterIslandCluster.h:35
std::function< edm4hep::Vector2f(const CaloHit &h1, const CaloHit &h2)> transverseEnergyProfileMetric
Definition CalorimeterIslandCluster.h:56
-client
Definition CalorimeterClusterRecoCoG.cc:37