LDMX Software
TrigScintFirmwareTracker.h
Go to the documentation of this file.
1
8#ifndef TRIGSCINT_TRIGSCINTFIRMWARETRACKER_H
9#define TRIGSCINT_TRIGSCINTFIRMWARETRACKER_H
10
11// LDMX Framework
12#include "Framework/Configure/Parameters.h" // Needed to import parameters from configuration file
13#include "Framework/Event.h"
14#include "Framework/EventProcessor.h" //Needed to declare processor
16#include "TrigScint/Event/TrigScintHit.h"
17#include "TrigScint/Event/TrigScintTrack.h"
18#include "TrigScint/Firmware/objdef.h"
20
21namespace trigscint {
22
28 public:
29 TrigScintFirmwareTracker(const std::string& name, framework::Process& process)
30 : Producer(name, process) {}
31
33
34 void produce(framework::Event& event) override;
35
36 ldmx::TrigScintTrack makeTrack(Track outTrk);
37
42 private:
43 // min threshold for adding a hit to a cluster
44 double minThr_{0.};
45
46 // specific verbosity of this producer
47 int verbose_{0};
48
49 // expected arrival time of hits in the pad [ns]
50 double padTime_{0.};
51
52 // maximum allowed delay for hits to be considered for clustering
53 double timeTolerance_{0.};
54
55 // output collection (clusters)
56 std::string output_collection_;
57
58 // input collection (hits)
59 std::string digis1_collection_;
60 std::string digis2_collection_;
61 std::string digis3_collection_;
62
63 std::vector<ldmx::TrigScintTrack> tracks_;
64
65 // specific pass name to use for track making
66 std::string passName_{""};
67
68 // book keep which channels have already been added to the cluster at hand
69 std::vector<unsigned int> v_addedIndices_;
70
71 // book keep which channels have already been added to any cluster
72 std::vector<unsigned int> v_usedIndices_;
73
74 // empty map container
75 std::map<int, int> hitChannelMap_;
76};
77
78} // namespace trigscint
79
80#endif /* TRIGSCINT_TRIGSCINTFIRMWARETRACKER_H */
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.
Tracker made to emulate and stage real firmware, emulates existing ldmx software but has LUT structur...
Implements an event buffer system for storing event data.
Definition Event.h:42
Class which represents the process under execution.
Definition Process.h:36
Base class for a module which produces a data product.
Producer(const std::string &name, Process &process)
Class constructor.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:29
Represents a track of trigger scintillator clusters.
void produce(framework::Event &event) override
Process the event and put new data products into it.
double minThr_
add a hit at index idx to a cluster
void configure(framework::config::Parameters &ps) override
Callback for the EventProcessor to configure itself from the given set of parameters.