4#include "Tracking/Reco/TrackingGeometryUser.h"
7#include "Acts/Definitions/Units.hpp"
8#include "Acts/Surfaces/RectangleBounds.hpp"
9#include "Acts/Surfaces/Surface.hpp"
12#include "Tracking/Digitization/PulseShape.h"
13#include "Tracking/Digitization/SiStripConstants.h"
14#include "Tracking/Digitization/SiStripDigitizer.h"
15#include "Tracking/Event/Measurement.h"
16#include "Tracking/Event/RawSiStripHit.h"
17#include "Tracking/Sim/TrackingUtils.h"
18#include "Tracking/geo/DetectorElement.h"
24#include <unordered_map>
31namespace tracking::reco {
80 const std::vector<ldmx::SimTrackerHit>& sim_hits,
81 std::vector<ldmx::RawSiStripHit>* raw_hits =
nullptr);
84 bool mergeSimHits(
const std::vector<ldmx::SimTrackerHit>& sim_hits,
85 std::vector<ldmx::SimTrackerHit>& merged_hits);
86 bool mergeHits(
const std::vector<ldmx::SimTrackerHit>& sihits,
87 std::vector<ldmx::SimTrackerHit>& mergedHits);
138 std::unordered_map<unsigned int, std::pair<double, double>>
141 void buildLorentzCache();
152 std::default_random_engine generator_;
153 std::shared_ptr<std::normal_distribution<float>> normal_;
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.
Digitization processor for the silicon strip tracker.
std::unique_ptr< tracking::digitization::PulseShape > pulse_shape_
The constructed pulse shape (created in onProcessStart).
std::string out_collection_
Output measurement collection name.
std::string hit_collection_
Input hit collection to digitize.
tracking::digitization::SiStripDigitizer::SensorParams sensor_params_
Parameters forwarded to SiStripDigitizer.
std::unordered_map< unsigned int, std::pair< double, double > > lorentz_tan_cache_
Per-layer cached Lorentz tangents: layer_id → {tan_electron, tan_hole}.
bool do_smearing_
Flag to enable/disable smearing in Mode 0.
void produce(framework::Event &event) override
Process the event and put new data products into it.
bool use_charge_digitization_
If true, use the full SiStripDigitizer instead of simple smearing.
void onProcessStart() override
Callback for the EventProcessor to take any necessary action when the processing of events starts,...
void onNewRun(const ldmx::RunHeader &header) override
Before the run starts (but after the conditions are configured) set up the random seeds for this run.
std::string dump_geo_csv_
If non-empty, write a CSV of all ACTS surface transforms to this path.
bool use_lorentz_
If false, skip Lorentz angle calculation and drift carriers straight (equivalent to zero magnetic fie...
std::string tracker_hit_passname_
Input collection pass name.
double min_e_dep_
Minimum energy deposition cut [MeV].
int track_id_
Select a particular track ID (-1 = accept all).
double sigma_u_
u-direction smearing sigma [mm].
std::vector< ldmx::Measurement > digitizeHits(const std::vector< ldmx::SimTrackerHit > &sim_hits, std::vector< ldmx::RawSiStripHit > *raw_hits=nullptr)
Digitize a collection of SimTrackerHits into Measurements.
std::unique_ptr< tracking::digitization::SiStripDigitizer > strip_digitizer_
The charge digitizer (constructed in onProcessStart).
std::string field_map_
Path to the magnetic field map file.
void configure(framework::config::Parameters ¶meters) override
Callback for the EventProcessor to configure itself from the given set of parameters.
bool merge_hits_
Merge sim hits on the same sensor before digitizing.
double sigma_v_
v-direction smearing sigma [mm].
std::string out_raw_collection_
Output raw hit collection name (empty = don't save raw hits).
a helper base class providing some methods to shorten access to common conditions used within the tra...
All parameters describing one silicon strip sensor layer.