File indexing completed on 2025-12-16 10:13:08
0001
0002
0003
0004 #pragma once
0005
0006 #include <ActsExamples/EventData/Trajectories.hpp>
0007 #include <JANA/JEvent.h>
0008 #include <memory>
0009 #include <string>
0010 #include <utility>
0011 #include <vector>
0012
0013 #include "extensions/jana/JOmniFactory.h"
0014
0015 namespace eicrecon {
0016
0017 class ActsTrajectoriesMerger_factory
0018 : public JOmniFactory<ActsTrajectoriesMerger_factory, NoConfig> {
0019 private:
0020 Input<ActsExamples::Trajectories> m_acts_trajectories1_input{this};
0021 Input<ActsExamples::Trajectories> m_acts_trajectories2_input{this};
0022 Output<ActsExamples::Trajectories> m_acts_trajectories_output{this};
0023
0024 public:
0025 void Configure() {}
0026
0027 void Process(int32_t , uint64_t ) {
0028 for (const auto& traj : m_acts_trajectories1_input()) {
0029 ActsExamples::Trajectories::IndexedParameters trackParameters;
0030 for (auto tip : traj->tips()) {
0031 trackParameters.insert({tip, traj->trackParameters(tip)});
0032 }
0033 m_acts_trajectories_output().push_back(
0034 new ActsExamples::Trajectories(traj->multiTrajectory(), traj->tips(), trackParameters));
0035 }
0036 for (const auto& traj : m_acts_trajectories2_input()) {
0037 ActsExamples::Trajectories::IndexedParameters trackParameters;
0038 for (auto tip : traj->tips()) {
0039 trackParameters.insert({tip, traj->trackParameters(tip)});
0040 }
0041 m_acts_trajectories_output().push_back(
0042 new ActsExamples::Trajectories(traj->multiTrajectory(), traj->tips(), trackParameters));
0043 }
0044 }
0045 };
0046
0047 }