Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-09-27 07:03:00

0001 // SPDX-License-Identifier: LGPL-3.0-or-later
0002 // Copyright (C) 2024 Dmitry Kalinkin
0003 
0004 #pragma once
0005 
0006 #include <ActsExamples/EventData/Trajectories.hpp>
0007 #include <algorithms/algorithm.h>
0008 #include <edm4eic/MCRecoTrackParticleAssociationCollection.h>
0009 #include <edm4eic/MCRecoTrackerHitAssociationCollection.h>
0010 #include <edm4eic/Measurement2DCollection.h>
0011 #include <edm4eic/TrackCollection.h>
0012 #include <edm4eic/TrackParametersCollection.h>
0013 #include <edm4eic/TrajectoryCollection.h>
0014 #include <optional>
0015 #include <string>
0016 #include <string_view>
0017 #include <vector>
0018 
0019 namespace eicrecon {
0020 
0021 using ActsToTracksAlgorithm =
0022     algorithms::Algorithm<
0023       algorithms::Input<
0024         edm4eic::Measurement2DCollection,
0025         std::vector<ActsExamples::Trajectories>,
0026         std::optional<edm4eic::MCRecoTrackerHitAssociationCollection>
0027       >,
0028       algorithms::Output<
0029         edm4eic::TrajectoryCollection,
0030         edm4eic::TrackParametersCollection,
0031         edm4eic::TrackCollection,
0032         std::optional<edm4eic::MCRecoTrackParticleAssociationCollection>
0033       >
0034     >;
0035 
0036 class ActsToTracks : public ActsToTracksAlgorithm {
0037 public:
0038     ActsToTracks(std::string_view name)
0039     : ActsToTracksAlgorithm{
0040         name,
0041         {
0042           "inputMeasurements",
0043           "inputActsTrajectories",
0044           "inputRawTrackerHitAssociations",
0045         },
0046         {
0047           "outputTrajectories",
0048           "outputTrackParameters",
0049           "outputTracks",
0050           "outputTrackAssociations",
0051         },
0052         "Converts ACTS trajectories to EDM4eic"} {};
0053 
0054     void init() final;
0055     void process(const Input&, const Output&) const final;
0056 };
0057 
0058 }