EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
InclusiveKinematicsReconstructed_factory.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2022 Wouter Deconinck
3
4#pragma once
5
6#include <JANA/JEvent.h>
7#include <edm4eic/InclusiveKinematicsCollection.h>
8#include <memory>
9#include <string>
10#include <utility>
11#include <vector>
12
15
16namespace eicrecon {
17
18template <typename AlgoT>
20 : public JOmniFactory<InclusiveKinematicsReconstructed_factory<AlgoT>, NoConfig> {
21
22public:
24
25private:
26 std::unique_ptr<AlgoT> m_algo;
27
28 typename FactoryT::template PodioInput<edm4hep::MCParticle> m_mc_beam_electrons_input{this};
29 typename FactoryT::template PodioInput<edm4hep::MCParticle> m_mc_beam_protons_input{this};
30 typename FactoryT::template PodioInput<edm4eic::ReconstructedParticle> m_scattered_electron_input{
31 this};
32 typename FactoryT::template PodioInput<edm4eic::HadronicFinalState> m_hadronic_final_state_input{
33 this};
34 typename FactoryT::template PodioOutput<edm4eic::InclusiveKinematics>
35 m_inclusive_kinematics_output{this};
36
37 typename FactoryT::template Service<AlgorithmsInit_service> m_algorithmsInit{this};
38
39public:
40 void Configure() {
41 m_algo = std::make_unique<AlgoT>(this->GetPrefix());
42 m_algo->level(static_cast<algorithms::LogLevel>(this->logger()->level()));
43 m_algo->applyConfig(this->config());
44 m_algo->init();
45 }
46
47 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
48 m_algo->process({m_mc_beam_electrons_input(), m_mc_beam_protons_input(),
49 m_scattered_electron_input(), m_hadronic_final_state_input()},
50 {m_inclusive_kinematics_output().get()});
51 }
52};
53
54} // namespace eicrecon
Definition JOmniFactory.h:30
NoConfig & 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 InclusiveKinematicsReconstructed_factory.h:20
void Configure()
Definition InclusiveKinematicsReconstructed_factory.h:40
void Process(int32_t, uint64_t)
Definition InclusiveKinematicsReconstructed_factory.h:47
-client
Definition CalorimeterClusterRecoCoG.cc:37
Definition WithPodConfig.h:13