Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:28:09

0001 // SPDX-License-Identifier: LGPL-3.0-or-later
0002 // Copyright (C) 2025 Wouter Deconinck
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 /* run_number */, uint64_t /* event_number */) {
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 } // namespace eicrecon