4#include "Framework/Configure/Parameters.h"
13#include "Tracking/Reco/TrackingGeometryUser.h"
18#include "Acts/Definitions/Common.hpp"
19#include "Acts/Definitions/TrackParametrization.hpp"
20#include "Acts/Definitions/Units.hpp"
21#include "Acts/EventData/TrackParameters.hpp"
22#include "Acts/Utilities/Logger.hpp"
25#include "Acts/Geometry/GeometryContext.hpp"
28#include "Acts/MagneticField/MagneticFieldContext.hpp"
29#include "Acts/MagneticField/MagneticFieldProvider.hpp"
32#include <Acts/Geometry/TrackingGeometry.hpp>
35#include "Acts/MagneticField/ConstantBField.hpp"
36#include "Acts/Propagator/AbortList.hpp"
37#include "Acts/Propagator/ActionList.hpp"
38#include "Acts/Propagator/DenseEnvironmentExtension.hpp"
39#include "Acts/Propagator/EigenStepper.hpp"
40#include "Acts/Propagator/MaterialInteractor.hpp"
41#include "Acts/Propagator/Navigator.hpp"
42#include "Acts/Propagator/Propagator.hpp"
43#include "Acts/Propagator/StandardAborters.hpp"
44#include "Acts/Propagator/detail/SteppingLogger.hpp"
45#include "Acts/Surfaces/PerigeeSurface.hpp"
46#include "Acts/Utilities/Logger.hpp"
51#include "Acts/EventData/MultiTrajectory.hpp"
52#include "Acts/EventData/MultiTrajectoryHelpers.hpp"
53#include "Acts/EventData/VectorTrackContainer.hpp"
54#include "Acts/Geometry/GeometryIdentifier.hpp"
55#include "Acts/TrackFinding/CombinatorialKalmanFilter.hpp"
56#include "Acts/TrackFinding/MeasurementSelector.hpp"
57#include "Acts/TrackFitting/GainMatrixSmoother.hpp"
58#include "Acts/TrackFitting/GainMatrixUpdater.hpp"
59#include "Acts/Utilities/CalibrationContext.hpp"
62#include "Acts/TrackFitting/KalmanFitter.hpp"
66#include "Acts/Propagator/MultiEigenStepperLoop.hpp"
69#include "Tracking/Event/Measurement.h"
70#include "Tracking/Event/Track.h"
71#include "Tracking/Reco/TrackExtrapolatorTool.h"
72#include "Tracking/Sim/IndexSourceLink.h"
73#include "Tracking/Sim/MeasurementCalibrator.h"
74#include "Tracking/Sim/TrackingUtils.h"
77#include "Tracking/Sim/BFieldXYZUtils.h"
79using Updater = Acts::GainMatrixUpdater;
80using Smoother = Acts::GainMatrixSmoother;
83 Acts::ActionList<Acts::detail::SteppingLogger, Acts::MaterialInteractor>;
84using AbortList = Acts::AbortList<Acts::EndOfWorldReached>;
86using CkfPropagator = Acts::Propagator<Acts::EigenStepper<>, Acts::Navigator>;
87using TrackContainer = Acts::TrackContainer<Acts::VectorTrackContainer,
88 Acts::VectorMultiTrajectory>;
141 const std::vector<ldmx::Measurement> &ldmxsps)
142 -> std::unordered_multimap<Acts::GeometryIdentifier,
145 template <
typename geometry_t,
typename source_link_hash_t,
146 typename source_link_equality_t>
147 std::vector<std::vector<std::size_t>> computeSharedHits(
148 std::vector<ldmx::Track> tracks, std::vector<ldmx::Measurement> meas_coll,
149 geometry_t &tg, source_link_hash_t &&sourceLinkHash,
150 source_link_equality_t &&sourceLinkEquality)
const;
153 bool dumpobj_{
false};
160 double processing_time_{0.};
163 std::map<std::string, double> profiling_map_;
165 bool debug_acts_{
false};
167 std::shared_ptr<Acts::PlaneSurface> target_surface;
168 Acts::RotationMatrix3 surf_rotation;
172 bool const_b_field_{
true};
175 bool remove_stereo_{
false};
178 bool use1Dmeasurements_{
true};
184 double propagator_step_size_{200.};
185 int propagator_maxSteps_{1000};
188 bool use_extrapolate_location_{
true};
189 std::vector<double> extrapolate_location_{0., 0., 0.};
190 bool use_seed_perigee_{
false};
193 std::string measurement_collection_{
"TaggerMeasurements"};
200 double outlier_pval_{3.84};
203 std::string out_trk_collection_{
"Tracks"};
206 std::string seed_coll_name_{
"seedTracks"};
209 std::string field_map_{
""};
211 std::string input_pass_name_{
""};
214 std::unique_ptr<const CkfPropagator> propagator_;
218 const Acts::CombinatorialKalmanFilter<CkfPropagator, TrackContainer>>
222 std::shared_ptr<tracking::reco::TrackExtrapolatorTool<CkfPropagator>>
231 std::vector<double> map_offset_{
238 bool taggerTracking_{
true};
Base classes for all user event processing components to extend.
Conditions object for random number seeds.
A source link that stores just an index.
Implements an event buffer system for storing event data.
Class which represents the process under execution.
Class encapsulating parameters for configuring a processor.
void produce(framework::Event &event) override
Run the processor.
void configure(framework::config::Parameters ¶meters) override
Configure the processor using the given user specified parameters.
void onNewRun(const ldmx::RunHeader &rh) override
onNewRun is the first function called for each processor after the conditions are fully configured an...
CKFProcessor(const std::string &name, framework::Process &process)
Constructor.
int nseeds_
n seeds and n tracks
void onProcessStart() override
Callback for the EventProcessor to take any necessary action when the processing of events starts,...
void onProcessEnd() override
Callback for the EventProcessor to take any necessary action when the processing of events finishes,...
virtual ~CKFProcessor()=default
Destructor.
a helper base class providing some methods to shorten access to common conditions used within the tra...
The measurement calibrator can be a function or a class/struct able to retrieve the sim hits containe...