2#ifndef TRIGSCINT_TRIGSCINTTRACKPRODUCER_H
3#define TRIGSCINT_TRIGSCINTTRACKPRODUCER_H
6#include <unordered_set>
8#include "Framework/Configure/Parameters.h"
12#include "TrigScint/Event/TrigScintCluster.h"
13#include "TrigScint/Event/TrigScintTrack.h"
35 std::vector<ldmx::TrigScintTrack> tracks_;
41 void matchXYTracks(std::vector<ldmx::TrigScintTrack>& tracks);
47 double max_delta_{0.};
49 double max_delta_vert_{0.};
50 double bar_length_y_{30.};
56 std::string seeding_collection_;
59 std::vector<std::string> input_collections_;
62 std::string output_collection_;
65 std::string pass_name_{
""};
68 bool skip_last_{
false};
71 bool lut_tracking_{
false};
74 int vert_bar_start_idx_{52};
99 bool operator==(
const LUTKey &other)
const {
100 return p1_ == other.p1_ && p2_ == other.p2_ && p3_ == other.p3_;
105 size_t operator()(
const LUTKey &k)
const {
106 return std::hash<float>()(k.p1_) ^ (std::hash<float>()(k.p2_) << 1) ^
107 (std::hash<float>()(k.p3_) << 2);
111 std::unordered_set<LUTKey, LUTKeyHash> lut_;
113 float bar_width_y_{3.};
114 float bar_gap_y_{2.1};
115 float bar_width_x_{3.};
116 float bar_gap_x_{0.1};
118 float x_conv_factor_;
120 float y_conv_factor_;
Class providing string constants for the event model.
Base classes for all user event processing components to extend.
Class implementing an event buffer system for storing event data.
Implements an event buffer system for storing event data.
Class which represents the process under execution.
Base class for a module which produces a data product.
Producer(const std::string &name, Process &process)
Class constructor.
virtual void process(Event &event) final
Processing an event for a Producer is calling produce.
Class encapsulating parameters for configuring a processor.
Represents a track of trigger scintillator clusters.
making tracks from trigger scintillator clusters
void configure(framework::config::Parameters &ps) override
Callback for the EventProcessor to configure itself from the given set of parameters.
void onProcessEnd() override
Callback for the EventProcessor to take any necessary action when the processing of events finishes,...
void produce(framework::Event &event) override
Process the event and put new data products into it.
void onProcessStart() override
Callback for the EventProcessor to take any necessary action when the processing of events starts,...