LDMX Software
VertexProcessor.h
1#ifndef TRACKING_RECO_VERTEXPROCESSOR_H_
2#define TRACKING_RECO_VERTEXPROCESSOR_H_
3
4//--- Framework ---//
5#include "Framework/Configure/Parameters.h"
7
8// --- Tracking --- //
9#include "Tracking/Sim/BFieldXYZUtils.h"
10
11// --- ACTS --- //
12
13// Propagator
14
15#include "Acts/Propagator/Propagator.hpp"
16// #include "Acts/Propagator/Navigator.hpp"
17// #include "Acts/Propagator/StandardAborters.hpp"
18
19// Vertexing
20
21// Magfield
22
23#include "Acts/MagneticField/MagneticFieldContext.hpp"
24
25// Geometry
26
27// Root
28
29// Propagator with void navigator
30#include "Acts/Propagator/VoidNavigator.hpp"
31#include "Tracking/EigenStepper.h" // IWYU pragma: keep
32using VoidPropagator =
33 Acts::Propagator<Acts::EigenStepper<>, Acts::VoidNavigator>;
34
35namespace tracking {
36namespace reco {
37
39 public:
47 VertexProcessor(const std::string& name, framework::Process& process);
48
50 virtual ~VertexProcessor() = default;
51
52 void onProcessStart() override;
53 void onProcessEnd() override;
54
60 void configure(framework::config::Parameters& parameters) override;
61
67 void produce(framework::Event& event) override;
68
69 private:
71 Acts::MagneticFieldContext bctx_;
72
73 // Event counter
74 int nevents_{0};
75
76 // The interpolated bfield
77 std::shared_ptr<InterpolatedMagneticField3> sp_interpolated_b_field_;
78
80 std::string field_map_{""};
81
82 // Track collection name
83
84 std::string trk_coll_name_{"Tracks"};
85
86 std::string seeds_coll_name_{"RecoilTruthSeeds"};
87
88 std::string input_pass_name_{""};
89
90 // The propagator
91 std::shared_ptr<VoidPropagator> propagator_;
92
93 // Processing time counter
94 double processing_time_{0.};
95
96 TH1F* h_m_;
97 TH1F* h_m_truth_filter_;
98 TH1F* h_m_truth_;
99};
100
101} // namespace reco
102} // namespace tracking
103
104#endif // TRACKING_RECO_VERTEXPROCESSOR_H_
The only reason this file exists is to silence an annoying maybe-uninitialized warning that originate...
Base classes for all user event processing components to extend.
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.
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
Acts::MagneticFieldContext bctx_
The contexts - TODO: they should move to some global location, I guess.
void onProcessEnd() override
Callback for the EventProcessor to take any necessary action when the processing of events finishes,...
VertexProcessor(const std::string &name, framework::Process &process)
Constructor.
void configure(framework::config::Parameters &parameters) override
Configure the processor using the given user specified parameters.
std::string field_map_
Path to the magnetic field map.
void produce(framework::Event &event) override
Run the processor.
virtual ~VertexProcessor()=default
Destructor.
void onProcessStart() override
Callback for the EventProcessor to take any necessary action when the processing of events starts,...
The measurement calibrator can be a function or a class/struct able to retrieve the sim hits containe...