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
0002
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
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 }