4#include "Framework/Configure/Parameters.h"
6#include "Framework/Logger.h"
14#include "Tracking/Reco/TrackingGeometryUser.h"
19#include "Acts/Definitions/Common.hpp"
20#include "Acts/Definitions/TrackParametrization.hpp"
21#include "Acts/Definitions/Units.hpp"
22#include "Acts/EventData/TrackParameters.hpp"
23#include "Acts/Utilities/Logger.hpp"
26#include "Acts/Geometry/GeometryContext.hpp"
29#include "Acts/MagneticField/MagneticFieldContext.hpp"
30#include "Acts/MagneticField/MagneticFieldProvider.hpp"
33#include <Acts/Geometry/TrackingGeometry.hpp>
36#include "Acts/MagneticField/ConstantBField.hpp"
37#include "Acts/Propagator/AbortList.hpp"
38#include "Acts/Propagator/ActionList.hpp"
39#include "Acts/Propagator/DenseEnvironmentExtension.hpp"
40#include "Acts/Propagator/EigenStepper.hpp"
41#include "Acts/Propagator/MaterialInteractor.hpp"
42#include "Acts/Propagator/Navigator.hpp"
43#include "Acts/Propagator/Propagator.hpp"
44#include "Acts/Propagator/StandardAborters.hpp"
45#include "Acts/Propagator/detail/SteppingLogger.hpp"
46#include "Acts/Surfaces/PerigeeSurface.hpp"
47#include "Acts/Utilities/Logger.hpp"
52#include "Acts/EventData/MultiTrajectory.hpp"
53#include "Acts/EventData/MultiTrajectoryHelpers.hpp"
54#include "Acts/EventData/VectorTrackContainer.hpp"
55#include "Acts/Geometry/GeometryIdentifier.hpp"
56#include "Acts/TrackFinding/CombinatorialKalmanFilter.hpp"
57#include "Acts/TrackFinding/MeasurementSelector.hpp"
58#include "Acts/TrackFitting/GainMatrixSmoother.hpp"
59#include "Acts/TrackFitting/GainMatrixUpdater.hpp"
60#include "Acts/Utilities/CalibrationContext.hpp"
63#include "Acts/TrackFitting/KalmanFitter.hpp"
66#include "Acts/Propagator/MultiEigenStepperLoop.hpp"
67#include "Acts/TrackFitting/BetheHeitlerApprox.hpp"
68#include "Acts/TrackFitting/GaussianSumFitter.hpp"
69#include "Acts/TrackFitting/GsfMixtureReduction.hpp"
72#include "Tracking/Event/Measurement.h"
73#include "Tracking/Event/Track.h"
74#include "Tracking/Reco/TrackExtrapolatorTool.h"
75#include "Tracking/Sim/IndexSourceLink.h"
76#include "Tracking/Sim/MeasurementCalibrator.h"
77#include "Tracking/Sim/TrackingUtils.h"
80#include "Tracking/Sim/BFieldXYZUtils.h"
83 Acts::ActionList<Acts::detail::SteppingLogger, Acts::MaterialInteractor>;
84using AbortList = Acts::AbortList<Acts::EndOfWorldReached>;
94using MultiStepper = Acts::MultiEigenStepperLoop<>;
95using Propagator = Acts::Propagator<Acts::EigenStepper<>, Acts::Navigator>;
96using GsfPropagator = Acts::Propagator<MultiStepper, Acts::Navigator>;
97using BetheHeitlerApprox = Acts::AtlasBetheHeitlerApprox<6, 5>;
168 std::map<std::string, double> profiling_map_;
178 std::default_random_engine generator_;
179 std::shared_ptr<std::normal_distribution<float>> normal_;
197 std::vector<double> extrapolate_location_{0., 0., 0.};
201 std::string measurement_collection_{
"TaggerMeasurements"};
206 std::string out_trk_collection_{
"GSFTracks"};
217 std::string seed_coll_name_{
"seedTracks"};
220 std::unique_ptr<
const Acts::GaussianSumFitter<
221 GsfPropagator, BetheHeitlerApprox, Acts::VectorMultiTrajectory>>
226 std::string track_collection_{
"TaggerTracks"};
227 std::string meas_collection_{
"DigiTaggerSimHits"};
229 std::string track_passname_;
230 std::string meas_passname_;
231 std::string track_collection_event_passname_;
232 std::string meas_collection_event_passname_;
234 size_t max_components_{4};
235 bool abort_on_error_{
false};
236 bool disable_all_material_handling_{
false};
237 double weight_cutoff_{1.0e-4};
239 double propagator_step_size_{200.};
240 int propagator_max_steps_{1000};
241 std::string field_map_{
""};
243 bool use_perigee_{
false};
247 bool tagger_tracking_{
true};
250 std::unique_ptr<const Propagator> propagator_;
256 std::unordered_map<unsigned int, const Acts::Surface *> layer_surface_map_;
259 std::shared_ptr<tracking::reco::TrackExtrapolatorTool<Propagator>>
Base classes for all user event processing components to extend.
Conditions object for random number seeds.
Implements an event buffer system for storing event data.
Class which represents the process under execution.
virtual void process(Event &event) final
Processing an event for a Producer is calling produce.
Class encapsulating parameters for configuring a processor.
virtual ~GSFProcessor()=default
Destructor.
void produce(framework::Event &event) override
Run the processor.
void onProcessEnd() override
Callback for the EventProcessor to take any necessary action when the processing of events finishes,...
void configure(framework::config::Parameters ¶meters) override
Configure the processor using the given user specified parameters.
GSFProcessor(const std::string &name, framework::Process &process)
Constructor.
void onProcessStart() override
Callback for the EventProcessor to take any necessary action when the processing of events starts,...
void onNewRun(const ldmx::RunHeader &rh) override
onNewRun is the first function called for each processor after the conditions are fully configured an...
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...