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/Event/Track.h"
10#include "Tracking/Sim/BFieldXYZUtils.h"
11#include "Tracking/Sim/TrackingUtils.h"
12
13// --- ACTS --- //
14
15// Vertexing
16
17#include "Acts/Vertexing/FullBilloirVertexFitter.hpp"
18#include "Acts/Vertexing/HelicalTrackLinearizer.hpp"
19#include "Acts/Vertexing/Vertex.hpp"
20
21// Magfield
22
23#include "Acts/MagneticField/MagneticFieldContext.hpp"
24#include "Acts/MagneticField/MagneticFieldProvider.hpp"
25
26// Propagator
27
28#include "Acts/Propagator/EigenStepper.hpp"
29#include "Acts/Propagator/Propagator.hpp"
30//#include "Acts/Propagator/Navigator.hpp"
31//#include "Acts/Propagator/StandardAborters.hpp"
32
33// Geometry
34#include "Acts/Surfaces/PerigeeSurface.hpp"
35
36// Root
37#include "TFile.h"
38#include "TH1F.h"
39#include "TLorentzVector.h"
40
41// Propagator with void navigator
42using VoidPropagator = Acts::Propagator<Acts::EigenStepper<>>;
43
44namespace tracking {
45namespace reco {
46
48 public:
56 VertexProcessor(const std::string &name, framework::Process &process);
57
59 ~VertexProcessor() = default;
60
61 void onProcessStart() override;
62 void onProcessEnd() override;
63
69 void configure(framework::config::Parameters &parameters) override;
70
76 void produce(framework::Event &event) override;
77
78 private:
80 Acts::GeometryContext gctx_;
81 Acts::MagneticFieldContext bctx_;
82
83 // Event counter
84 int nevents_{0};
85
86 // The interpolated bfield
87 std::shared_ptr<InterpolatedMagneticField3> sp_interpolated_bField_;
88
90 std::string field_map_{""};
91
92 // Track collection name
93
94 std::string trk_coll_name_{"Tracks"};
95
96 // The propagator
97 std::shared_ptr<VoidPropagator> propagator_;
98
99 // Processing time counter
100 double processing_time_{0.};
101
102 TH1F *h_m_;
103 TH1F *h_m_truthFilter_;
104 TH1F *h_m_truth_;
105};
106
107} // namespace reco
108} // namespace tracking
109
110#endif // TRACKING_RECO_VERTEXPROCESSOR_H_
Base classes for all user event processing components to extend.
Implements an event buffer system for storing event data.
Definition Event.h:41
Class which represents the process under execution.
Definition Process.h:36
Base class for a module which produces a data product.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:27
void onProcessEnd() override
Callback for the EventProcessor to take any necessary action when the processing of events finishes,...
Acts::GeometryContext gctx_
The contexts - TODO: they should move to some global location, I guess.
void configure(framework::config::Parameters &parameters) override
Configure the processor using the given user specified parameters.
~VertexProcessor()=default
Destructor.
std::string field_map_
Path to the magnetic field map.
void produce(framework::Event &event) override
Run the processor.
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...