Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-07 08:04:09

0001 // SPDX-License-Identifier: LGPL-3.0-or-later
0002 // Copyright (C) 2026 Derek Anderson
0003 
0004 #pragma once
0005 
0006 #include <algorithms/algorithm.h>
0007 #include <edm4eic/ReconstructedParticleCollection.h>
0008 #include <edm4eic/TrackClusterMatchCollection.h>
0009 #include <string>
0010 #include <string_view>
0011 
0012 #include "algorithms/interfaces/WithPodConfig.h"
0013 
0014 namespace eicrecon {
0015 
0016 using ChargedCandidateMakerAlgorithm =
0017     algorithms::Algorithm<algorithms::Input<edm4eic::TrackClusterMatchCollection>,
0018                           algorithms::Output<edm4eic::ReconstructedParticleCollection>>;
0019 
0020 // ==========================================================================
0021 // Candidate Charged Particle Maker
0022 // ==========================================================================
0023 /*! An algorithm which takes a collection of track-cluster matches
0024  *  and converts them into charged-particle candidates, one for
0025  *  each track.
0026  */
0027 class ChargedCandidateMaker : public ChargedCandidateMakerAlgorithm,
0028                               public WithPodConfig<NoConfig> {
0029 
0030 public:
0031   ///! Algorithm constructor
0032   ChargedCandidateMaker(std::string_view name)
0033       : ChargedCandidateMakerAlgorithm{name,
0034                                        {"inputTrackClusterMatches"},
0035                                        {"outputChargedCandidateParticles"},
0036                                        "Forms candidate charged particles."} {}
0037 
0038   void process(const Input&, const Output&) const final;
0039 
0040 }; // end ChargedCandidateMaker
0041 
0042 } // namespace eicrecon