Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-03-28 08:19:05

0001 // SPDX-License-Identifier: LGPL-3.0-or-later
0002 // Copyright (C) 2025 Wouter Deconinck
0003 
0004 #pragma once
0005 
0006 #include <Acts/EventData/VectorMultiTrajectory.hpp>
0007 #include <Acts/EventData/VectorTrackContainer.hpp>
0008 #include <algorithms/algorithm.h>
0009 #include <string>
0010 #include <string_view>
0011 
0012 #include "algorithms/interfaces/WithPodConfig.h"
0013 
0014 namespace eicrecon {
0015 
0016 using ActsTrackMergerAlgorithm = algorithms::Algorithm<
0017     algorithms::Input<Acts::ConstVectorMultiTrajectory, Acts::ConstVectorTrackContainer,
0018                       Acts::ConstVectorMultiTrajectory, Acts::ConstVectorTrackContainer>,
0019     algorithms::Output<Acts::ConstVectorMultiTrajectory*, Acts::ConstVectorTrackContainer*>>;
0020 
0021 class ActsTrackMerger : public ActsTrackMergerAlgorithm, public WithPodConfig<NoConfig> {
0022 public:
0023   ActsTrackMerger(std::string_view name)
0024       : ActsTrackMergerAlgorithm{name,
0025                                  {
0026                                      "inputActsTrackStates1",
0027                                      "inputActsTracks1",
0028                                      "inputActsTrackStates2",
0029                                      "inputActsTracks2",
0030                                  },
0031                                  {
0032                                      "outputActsTrackStates",
0033                                      "outputActsTracks",
0034                                  },
0035                                  "Merges two Acts track container inputs into one"} {};
0036 
0037   void init() final {};
0038   void process(const Input&, const Output&) const final;
0039 };
0040 
0041 } // namespace eicrecon