LDMX Software
EcalWABRecProcessor.h
Go to the documentation of this file.
1
7#ifndef EVENTPROC_ECALWABROCESSOR_H_
8#define EVENTPROC_ECALWABROCESSOR_H_
9
10// LDMX
12
13/*~~~~~~~~~~~*/
14/* Tools */
15/*~~~~~~~~~~~*/
16#include "Eigen/Dense"
17
18// C++
19#include <stdlib.h>
20
21namespace ecal {
22
24 public:
25 EcalWABRecProcessor(const std::string& name, framework::Process& process)
26 : Producer(name, process) {}
27
28 virtual ~EcalWABRecProcessor() = default;
29
30 void onProcessEnd() override;
31
32 void configure(framework::config::Parameters& parameters) override;
33
34 void produce(framework::Event& event) override;
35
36 private:
37 std::string sp_pass_name_;
38 std::string rec_pass_name_;
39 std::string rec_coll_name_;
40 std::string track_pass_name_;
41 std::string track_coll_name_;
42 int nevents_{0};
43 float processing_time_{0.};
44
45 std::tuple<Eigen::VectorXd, float, int, Eigen::MatrixXd, int>
46 fit2DTracksConstrained(const std::vector<float>& x1,
47 const std::vector<float>& y1,
48 const std::vector<float>& s1,
49 const std::vector<float>& x2,
50 const std::vector<float>& y2,
51 const std::vector<float>& s2,
52 const std::vector<double>& guess, int maxIter,
53 int verbosity, float dchisq, float abs_lim);
54
55 std::pair<Eigen::VectorXd, Eigen::VectorXd> polyfitXYvsZ(
56 const std::vector<float>& x, const std::vector<float>& y,
57 const std::vector<float>& z, int degree);
58
60 std::string collection_name_{"EcalWABRec"};
61
62}; // EcalWABRecProcessor
63
64} // namespace ecal
65
66#endif
Base classes for all user event processing components to extend.
void produce(framework::Event &event) override
Process the event and put new data products into it.
std::string collection_name_
Name of the collection which will contain the results.
void onProcessEnd() override
Callback for the EventProcessor to take any necessary action when the processing of events finishes,...
void configure(framework::config::Parameters &parameters) override
Callback for the EventProcessor to configure itself from the given set of parameters.
Implements an event buffer system for storing event data.
Definition Event.h:40
Class which represents the process under execution.
Definition Process.h:34
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.
Definition Parameters.h:26