Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/EICrecon/algorithms/reco/FarForwardLambdaReconstruction.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // SPDX-License-Identifier: LGPL-3.0-or-later
0002 // Copyright (C) 2025 Sebouh Paul
0003 
0004 #pragma once
0005 #include <algorithms/algorithm.h>
0006 #include <edm4eic/ReconstructedParticleCollection.h>
0007 #include <spdlog/logger.h>
0008 #include <memory>
0009 #include <string>                                 // for basic_string
0010 #include <string_view>                            // for string_view
0011 
0012 #include "algorithms/interfaces/ParticleSvc.h"
0013 #include "algorithms/interfaces/WithPodConfig.h"
0014 #include "algorithms/reco/FarForwardLambdaReconstructionConfig.h"
0015 
0016 namespace eicrecon {
0017 
0018 using FarForwardLambdaReconstructionAlgorithm = algorithms::Algorithm<
0019    algorithms::Input<
0020       const edm4eic::ReconstructedParticleCollection
0021     >,
0022   /*output collections contain the lambda candidates and their decay products in the CM frame*/
0023     algorithms::Output<
0024       edm4eic::ReconstructedParticleCollection,
0025       edm4eic::ReconstructedParticleCollection
0026     >
0027     >;
0028     class FarForwardLambdaReconstruction :
0029        public FarForwardLambdaReconstructionAlgorithm,
0030        public WithPodConfig<FarForwardLambdaReconstructionConfig> {
0031        public:
0032          FarForwardLambdaReconstruction(std::string_view name)
0033                   : FarForwardLambdaReconstructionAlgorithm{name,
0034                                                             {"inputNeutrals"},
0035                                                             {"outputLambdas", "outputLambdaDecayProductsCM"},
0036                                         "Reconstructs lambda candidates and their decay products (in the CM frame) from the reconstructed neutrons and photons"} {}
0037 
0038          void init() final;
0039          void process(const Input&, const Output&) const final;
0040 
0041     private:
0042         std::shared_ptr<spdlog::logger> m_log;
0043        const algorithms::ParticleSvc& m_particleSvc = algorithms::ParticleSvc::instance();
0044 
0045     };
0046 } // namespace eicrecon