4#include "Framework/Configure/Parameters.h"
10#include "Tracking/Reco/TrackingGeometryUser.h"
21#include <boost/container/flat_map.hpp>
22#include <boost/container/flat_set.hpp>
24#include "Tracking/Event/Measurement.h"
25#include "Tracking/Event/Track.h"
82 int n_input_tracks_{0};
83 int n_output_tracks_{0};
84 double processing_time_{0.};
94 std::string out_trk_collection_{
"TaggerTracksClean"};
96 std::string track_collection_{
"TaggerTracks"};
98 std::string meas_collection_{
"DigiTaggerSimHits"};
100 std::string input_pass_name_{
""};
103 std::size_t number_of_tracks_{};
105 std::vector<int> track_tips_;
106 std::vector<float> track_chi2_;
107 std::vector<std::vector<std::size_t>> measurements_per_track_;
110 boost::container::flat_map<std::size_t,
111 boost::container::flat_set<std::size_t>>
112 tracks_per_measurement_;
113 std::vector<std::size_t> shared_measurements_per_track_;
116 boost::container::flat_set<std::size_t> selected_tracks_;
125 template <
typename geometry_t,
typename source_link_hash_t,
126 typename source_link_equality_t>
128 std::vector<ldmx::Measurement> measurements,
129 State& state, geometry_t& tg,
130 source_link_hash_t&& sourceLinkHash,
131 source_link_equality_t&& sourceLinkEquality)
const;
147 std::size_t sourceLinkHash(const Acts::SourceLink& a);
151 bool sourceLinkEquality(const Acts::SourceLink& a, const Acts::SourceLink& b);
Base classes for all user event processing components to extend.
Implements an event buffer system for storing event data.
Class which represents the process under execution.
virtual void process(Event &event) final
Processing an event for a Producer is calling produce.
Class encapsulating parameters for configuring a processor.
Minimal example of a processor.
GreedyAmbiguitySolver(const std::string &name, framework::Process &process)
Constructor.
std::size_t n_meas_min_
Minimum number of measurement to form a track.
void removeTrack(State &state, std::size_t iTrack) const
void configure(framework::config::Parameters ¶meters) override
Configure the processor using the given user specified parameters.
void computeInitialState(std::vector< ldmx::Track > tracks, std::vector< ldmx::Measurement > measurements, State &state, geometry_t &tg, source_link_hash_t &&sourceLinkHash, source_link_equality_t &&sourceLinkEquality) const
void resolve(State &state)
Updates the state iteratively by evicting one track after the other until the final state conditions ...
void onNewRun(const ldmx::RunHeader &rh) override
onNewRun is the first function called for each processor after the conditions are fully configured an...
virtual ~GreedyAmbiguitySolver()=default
Destructor.
void produce(framework::Event &event) override
Process the event and put new data products into it.
std::uint32_t maximum_iterations_
Maximum number of iterations.
void onProcessEnd() override
Callback for the EventProcessor to take any necessary action when the processing of events finishes,...
std::uint32_t maximum_shared_hits_
Maximum amount of shared hits per track.
a helper base class providing some methods to shorten access to common conditions used within the tra...
The measurement calibrator can be a function or a class/struct able to retrieve the sim hits containe...