File indexing completed on 2025-07-03 07:55:55
0001
0002
0003
0004 #pragma once
0005
0006 #include <algorithms/algorithm.h>
0007 #include <edm4eic/ReconstructedParticleCollection.h>
0008 #include <string>
0009 #include <string_view>
0010
0011 #include "algorithms/interfaces/ParticleSvc.h"
0012 #include "algorithms/interfaces/WithPodConfig.h"
0013 #include "algorithms/reco/ScatteredElectronsEMinusPzConfig.h"
0014
0015 namespace eicrecon {
0016
0017 using ScatteredElectronsEMinusPzAlgorithm =
0018 algorithms::Algorithm<algorithms::Input<edm4eic::ReconstructedParticleCollection,
0019 edm4eic::ReconstructedParticleCollection>,
0020 algorithms::Output<edm4eic::ReconstructedParticleCollection>>;
0021
0022 class ScatteredElectronsEMinusPz : public ScatteredElectronsEMinusPzAlgorithm,
0023 WithPodConfig<ScatteredElectronsEMinusPzConfig> {
0024
0025 public:
0026 ScatteredElectronsEMinusPz(std::string_view name)
0027 : ScatteredElectronsEMinusPzAlgorithm{name,
0028 {"inputParticles", "inputElectronCandidates"},
0029 {"outputElectrons"},
0030 "Outputs DIS electrons ordered in decreasing E-pz"} {}
0031 void init() final;
0032 void process(const Input&, const Output&) const final;
0033
0034 private:
0035 const algorithms::ParticleSvc& m_particleSvc = algorithms::ParticleSvc::instance();
0036 };
0037
0038 }