4#include "Framework/Configure/Parameters.h"
6#include "Framework/Logger.h"
13#include "Tracking/Reco/TrackingGeometryUser.h"
24#include <Acts/Geometry/TrackingGeometry.hpp>
27#include "Acts/Propagator/ActorList.hpp"
28#include "Acts/Propagator/MaterialInteractor.hpp"
29#include "Acts/Propagator/Navigator.hpp"
30#include "Acts/Propagator/Propagator.hpp"
31#include "Acts/Propagator/StandardAborters.hpp"
32#include "Acts/Propagator/VoidNavigator.hpp"
33#include "Acts/Propagator/detail/SteppingLogger.hpp"
39#include "Acts/EventData/MultiTrajectory.hpp"
40#include "Acts/EventData/VectorTrackContainer.hpp"
41#include "Acts/Geometry/GeometryIdentifier.hpp"
46#include "Acts/Propagator/MultiEigenStepperLoop.hpp"
47#include "Acts/TrackFitting/GaussianSumFitter.hpp"
50#include "Tracking/Reco/TrackExtrapolatorTool.h"
53#include "Tracking/Sim/BFieldXYZUtils.h"
56 Acts::ActorList<Acts::detail::SteppingLogger, Acts::MaterialInteractor,
57 Acts::EndOfWorldReached>;
67using MultiStepper = Acts::MultiEigenStepperLoop<>;
68using Propagator = Acts::Propagator<Acts::EigenStepper<>, Acts::Navigator>;
69using GsfPropagator = Acts::Propagator<MultiStepper, Acts::Navigator>;
70using GsfExtrapPropagator =
71 Acts::Propagator<Acts::EigenStepper<>, Acts::VoidNavigator>;
73 Acts::GaussianSumFitter<GsfPropagator, Acts::VectorMultiTrajectory>;
144 int n_input_tracks_{0};
145 int n_gsf_failed_{0};
146 int n_output_tracks_{0};
147 int n_target_extrap_failed_{0};
148 int n_ecal_extrap_failed_{0};
149 double processing_time_{0.};
152 int n_fieldmap_gsf_failed_{0};
153 int n_fallback_gsf_recovered_{0};
154 int n_fieldmap_start_extrap_failed_{0};
155 int n_fallback_start_extrap_recovered_{0};
156 int n_fieldmap_target_extrap_failed_{0};
157 int n_fallback_target_extrap_recovered_{0};
158 int n_fieldmap_ecal_extrap_failed_{0};
159 int n_fallback_ecal_extrap_recovered_{0};
160 int n_start_extrap_failed_{0};
173 std::shared_ptr<std::normal_distribution<float>>
normal_;
213 std::unique_ptr<const GsfFitter>
gsf_;
270 bool tagger_tracking_{
true};
282 std::unique_ptr<const GsfExtrapPropagator> propagator_extrap_;
283 std::shared_ptr<tracking::reco::TrackExtrapolatorTool<GsfExtrapPropagator>>
287 std::unique_ptr<const GsfExtrapPropagator> propagator_extrap_zero_b_;
288 std::shared_ptr<tracking::reco::TrackExtrapolatorTool<GsfExtrapPropagator>>
292 std::unique_ptr<const GsfExtrapPropagator> propagator_extrap_const_b_;
293 std::shared_ptr<tracking::reco::TrackExtrapolatorTool<GsfExtrapPropagator>>
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.
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.
bool disable_all_material_handling_
Disable all material interactions during propagation.
std::shared_ptr< Acts::Surface > target_surface_
Target surface at z=0 mm (recoil track initialization, perigee output)
std::unique_ptr< const GsfFitter > gsf_
Gaussian Sum Fitter instance for track refitting.
virtual ~GSFProcessor()=default
Destructor.
double bfield_
Bz of the tagger fallback field, in Tesla.
std::unique_ptr< const GsfFitter > gsf_zero_b_
Zero-field GSF, fallback for the recoil.
void produce(framework::Event &event) override
Run the processor.
BFieldDistortion bfield_distortion_
Mis-placement of the reconstruction field; must match the CKF's.
bool debug_
Enable verbose debug output logging.
std::string track_collection_
Collection name for input tracks to be refit.
size_t max_components_
Maximum number of mixture components in GSF fit.
std::string meas_collection_
Collection name for measurements associated with tracks.
bool abort_on_error_
Abort fit if any error occurs (strict error handling)
std::string seed_coll_name_
Collection name for seed tracks (currently unused)
std::string meas_passname_
Pass name for measurement collection in event.
void onProcessEnd() override
Callback for the EventProcessor to take any necessary action when the processing of events finishes,...
double weight_cutoff_
Weight threshold below which mixture components are dropped.
std::string field_map_
Path to magnetic field map file.
std::unordered_map< unsigned int, const Acts::Surface * > layer_surface_map_
Layer ID to ACTS Surface mapping for hit surface lookup.
std::shared_ptr< Acts::Surface > tagger_start_surface_
Tagger GSF start surface at x=tagger_start_x_ in ACTS.
std::string measurement_collection_
Collection name for input measurements.
std::shared_ptr< std::normal_distribution< float > > normal_
Normal distribution for smearing measurements.
void configure(framework::config::Parameters ¶meters) override
Configure the processor using the given user specified parameters.
int propagator_max_steps_
Maximum number of propagation steps before aborting.
bool use_perigee_
Use perigee parameterization for tracks.
std::vector< double > extrapolate_location_
Location to extrapolate tracks to (x, y, z in mm)
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...
std::string track_collection_event_passname_
Pass name qualifier for track collection event key.
std::unique_ptr< const Propagator > propagator_
Propagator for track extrapolation using eigen stepper.
std::default_random_engine generator_
Random number generator for smearing operations.
double propagator_step_size_
Step size for track propagation in mm.
std::shared_ptr< Acts::Surface > beam_origin_surface_
Beam origin surface at z=-700 mm (tagger post-fit extrapolation via VoidNavigator)
std::string track_passname_
Pass name for track collection in event.
std::shared_ptr< Acts::Surface > ecal_surface_
ECAL surface at z=240.5 mm (ECAL scoring plane for recoil tracking)
std::unique_ptr< const GsfFitter > gsf_const_b_
Constant-field (bfield_) GSF, fallback for the tagger.
std::string meas_collection_event_passname_
Pass name qualifier for measurement collection event key.
double tagger_start_x_
ACTS x of the tagger GSF start surface [mm].
std::string out_trk_collection_
Collection name for output GSF-refitted tracks.
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...
A deliberate mis-placement of the reconstruction magnetic field, used to quantify how well we need to...