File indexing completed on 2025-05-12 08:47:54
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 : public JOmniFactory<ActsTrajectoriesMerger_factory> {
0018 private:
0019 Input<ActsExamples::Trajectories> m_acts_trajectories1_input{this};
0020 Input<ActsExamples::Trajectories> m_acts_trajectories2_input{this};
0021 Output<ActsExamples::Trajectories> m_acts_trajectories_output{this};
0022
0023 public:
0024 void Configure() {}
0025
0026 void ChangeRun(int32_t ) {}
0027
0028 void Process(int32_t , uint64_t ) {
0029 for (const auto& traj : m_acts_trajectories1_input()) {
0030 ActsExamples::Trajectories::IndexedParameters trackParameters;
0031 for (auto tip : traj->tips()) {
0032 trackParameters.insert({tip, traj->trackParameters(tip)});
0033 }
0034 m_acts_trajectories_output().push_back(
0035 new ActsExamples::Trajectories(traj->multiTrajectory(), traj->tips(), trackParameters));
0036 }
0037 for (const auto& traj : m_acts_trajectories2_input()) {
0038 ActsExamples::Trajectories::IndexedParameters trackParameters;
0039 for (auto tip : traj->tips()) {
0040 trackParameters.insert({tip, traj->trackParameters(tip)});
0041 }
0042 m_acts_trajectories_output().push_back(
0043 new ActsExamples::Trajectories(traj->multiTrajectory(), traj->tips(), trackParameters));
0044 }
0045 }
0046 };
0047
0048 }