File indexing completed on 2025-02-22 10:33:25
0001
0002
0003
0004 #pragma once
0005
0006 #include <algorithms/algorithm.h>
0007 #include <edm4eic/MCRecoParticleAssociationCollection.h>
0008 #include <edm4eic/ReconstructedParticleCollection.h>
0009 #include <edm4hep/MCParticleCollection.h>
0010 #include <string>
0011 #include <string_view>
0012
0013 #include "algorithms/interfaces/ParticleSvc.h"
0014
0015 namespace eicrecon {
0016
0017 using ScatteredElectronsTruthAlgorithm = algorithms::Algorithm<
0018 algorithms::Input<
0019 edm4hep::MCParticleCollection,
0020 edm4eic::ReconstructedParticleCollection,
0021 edm4eic::MCRecoParticleAssociationCollection
0022 >,
0023 algorithms::Output<
0024 edm4eic::ReconstructedParticleCollection
0025 >
0026 >;
0027
0028 class ScatteredElectronsTruth
0029 : public ScatteredElectronsTruthAlgorithm {
0030
0031 public:
0032 ScatteredElectronsTruth(std::string_view name)
0033 : ScatteredElectronsTruthAlgorithm{name,
0034 {"MCParticles", "inputParticles", "inputAssociations"},
0035 {"ReconstructedParticles"},
0036 "Output a list of possible scattered electrons using truth MC Particle associations."} {}
0037
0038 void init() final;
0039 void process(const Input&, const Output&) const final;
0040
0041 private:
0042 const algorithms::ParticleSvc& m_particleSvc = algorithms::ParticleSvc::instance();
0043
0044 };
0045
0046 }