Go Back to: C++ Manual General Site

LDMX.Tracking package

Submodules

LDMX.Tracking.alignment module

class LDMX.Tracking.alignment.AlignmentTestProcessor(instance_name: str = 'AlignmentTestProcessor', histograms: list[Histogram] = <factory>)

Bases: Processor

Producer to test Alignment constants loading and propagation to devices.

class_name: str = 'tracking::reco::AlignmentTestProcessor'
instance_name: str = 'AlignmentTestProcessor'
module_name: str = 'Tracking'

LDMX.Tracking.dqm module

class LDMX.Tracking.dqm.StraightTracksDQM(instance_name: str = 'StraightTracksDQM', histograms: list[Histogram] = <factory>, nbins: int = 100, phimin: float = -0.2, phimax: float = 0.2, thetamin: float = -0.3, thetamax: float = 0.3, do_truth: bool = True, track_collection: str = 'LinearRecoilTracks', truth_collection: str = 'LinearRecoilTruthTracks', title: str = 'recoil_lin_trk_', subdetector: str = 'Recoil', measurement_collection: str = 'DigiRecoilSimHits', track_collection_events_passname: str = '', truth_collection_events_passname: str = '', input_pass_name: str = '')

Bases: Processor

DQM analyzer for straight tracks.

nbins

Number of bins for histograms.

Type:

int

phimin

Minimum phi for histograms.

Type:

float

phimax

Maximum phi for histograms.

Type:

float

thetamin

Minimum theta for histograms.

Type:

float

thetamax

Maximum theta for histograms.

Type:

float

do_truth

Whether to build truth histograms.

Type:

bool

track_collection

Name of the track collection.

Type:

str

truth_collection

Name of the truth collection.

Type:

str

title

Title prefix for histograms.

Type:

str

subdetector

Name of the subdetector.

Type:

str

measurement_collection

Name of the measurement collection.

Type:

str

track_collection_events_passname

The events pass name for track collection.

Type:

str

truth_collection_events_passname

The events pass name for truth collection.

Type:

str

input_pass_name

The pass name of the input collections.

Type:

str

class_name: str = 'tracking::dqm::StraightTracksDQM'
do_truth: bool = True
input_pass_name: str = ''
instance_name: str = 'StraightTracksDQM'
measurement_collection: str = 'DigiRecoilSimHits'
module_name: str = 'Tracking'
nbins: int = 100
phimax: float = 0.2
phimin: float = -0.2
subdetector: str = 'Recoil'
thetamax: float = 0.3
thetamin: float = -0.3
title: str = 'recoil_lin_trk_'
track_collection: str = 'LinearRecoilTracks'
track_collection_events_passname: str = ''
truth_collection: str = 'LinearRecoilTruthTracks'
truth_collection_events_passname: str = ''
class LDMX.Tracking.dqm.TrackerDigiDQM(instance_name: str = 'TrackerDigiDQM', histograms: list[Histogram] = <factory>, output_measurements_passname: str = '', measurements_passname: str = '')

Bases: Processor

DQM analyzer for tracker digitization.

output_measurements_passname

The pass name of the output measurements.

Type:

str

measurements_passname

The pass name of the measurements.

Type:

str

class_name: str = 'tracking::dqm::TrackerDigiDQM'
instance_name: str = 'TrackerDigiDQM'
measurements_passname: str = ''
module_name: str = 'Tracking'
output_measurements_passname: str = ''
class LDMX.Tracking.dqm.TrackingRecoDQM(instance_name: str = 'TrackingRecoDQM', histograms: list[Histogram] = <factory>, nbins: int = 1000, d0min: float = -50.0, d0max: float = 50.0, z0min: float = -200.0, z0max: float = 200.0, phimin: float = -0.1, phimax: float = 0.1, thetamin: float = 1.4, thetamax: float = 1.7, qopmin: float = -10.0, qopmax: float = 10.0, pmax: float = 10.0, track_states: list[str] = <factory>, do_truth: bool = True, track_collection: str = 'TruthTracks', truth_collection: str = 'TaggerTruthTracks', truth_hit_collection: str = '', measurement_collection: str = 'DigiTaggerSimHits', measurement_passname: str = '', title: str = '', ecal_sp_coll_name: str = 'EcalScoringPlaneHits', ecal_sp_passname: str = '', target_sp_coll_name: str = 'TargetScoringPlaneHits', target_sp_passname: str = '', truth_events_passname: str = '', truth_passname: str = '', track_collection_events_passname: str = '', track_passname: str = '')

Bases: Processor

DQM analyzer for tracking reconstruction.

nbins

Number of bins for histograms.

Type:

int

d0min

Minimum d0 for histograms.

Type:

float

d0max

Maximum d0 for histograms.

Type:

float

z0min

Minimum z0 for histograms.

Type:

float

z0max

Maximum z0 for histograms.

Type:

float

phimin

Minimum phi for histograms.

Type:

float

phimax

Maximum phi for histograms.

Type:

float

thetamin

Minimum theta for histograms.

Type:

float

thetamax

Maximum theta for histograms.

Type:

float

qopmin

Minimum q/p for histograms.

Type:

float

qopmax

Maximum q/p for histograms.

Type:

float

pmax

Maximum momentum for histograms.

Type:

float

track_states

Track states to build histograms for.

Type:

list[str]

do_truth

Whether to build truth histograms.

Type:

bool

track_collection

Name of the track collection.

Type:

str

truth_collection

Name of the truth collection.

Type:

str

measurement_collection

Name of the measurement collection.

Type:

str

measurement_passname

The pass name of the measurements.

Type:

str

ecal_sp_coll_name

The events pass name for ecal scoring plane.

Type:

str

ecal_sp_passname

The pass name for ecal scoring plane.

Type:

str

target_sp_coll_name

The events pass name for target scoring plane.

Type:

str

target_sp_passname

The pass name for target scoring plane.

Type:

str

truth_events_passname

The events pass name for truth.

Type:

str

truth_passname

The pass name for truth.

Type:

str

track_collection_events_passname

The events pass name for track collection.

Type:

str

track_passname

The pass name for tracks.

Type:

str

class_name: str = 'tracking::dqm::TrackingRecoDQM'
d0max: float = 50.0
d0min: float = -50.0
do_truth: bool = True
ecal_sp_coll_name: str = 'EcalScoringPlaneHits'
ecal_sp_passname: str = ''
instance_name: str = 'TrackingRecoDQM'
measurement_collection: str = 'DigiTaggerSimHits'
measurement_passname: str = ''
module_name: str = 'Tracking'
nbins: int = 1000
phimax: float = 0.1
phimin: float = -0.1
pmax: float = 10.0
qopmax: float = 10.0
qopmin: float = -10.0
target_sp_coll_name: str = 'TargetScoringPlaneHits'
target_sp_passname: str = ''
thetamax: float = 1.7
thetamin: float = 1.4
title: str = ''
track_collection: str = 'TruthTracks'
track_collection_events_passname: str = ''
track_passname: str = ''
track_states: list[str]
truth_collection: str = 'TaggerTruthTracks'
truth_events_passname: str = ''
truth_hit_collection: str = ''
truth_passname: str = ''
z0max: float = 200.0
z0min: float = -200.0

LDMX.Tracking.full_tracking_sequence module

LDMX.Tracking.full_tracking_sequence.set_overlay(pass_name: str)

Modifies full tracking and dqm sequences in-place so that all relevant input/output collections in the tracking processors point to the overlay collections.

LDMX.Tracking.geo module

class LDMX.Tracking.geo.CalibrationContextProvider(tag_name: str = '')

Bases: ConditionsObjectProvider

Provider of the calibration context condition.

class_name: str = 'tracking::geo::CalibrationContextProvider'
module_name: str = 'Tracking'
object_name: str = 'CalibrationContext'
tag_name: str = ''
class LDMX.Tracking.geo.GeometryContextProvider(tag_name: str = '')

Bases: ConditionsObjectProvider

Provider of the geometry context condition.

class_name: str = 'tracking::geo::GeometryContextProvider'
module_name: str = 'Tracking'
object_name: str = 'GeometryContext'
tag_name: str = ''
class LDMX.Tracking.geo.MagneticFieldContextProvider(tag_name: str = '')

Bases: ConditionsObjectProvider

Provider of the magnetic field context condition.

class_name: str = 'tracking::geo::MagneticFieldContextProvider'
module_name: str = 'Tracking'
object_name: str = 'MagneticFieldContext'
tag_name: str = ''
class LDMX.Tracking.geo.TrackersTrackingGeometryProvider(detector: str = '', tracker_y_length: float = 480.0, tracker_z_length: float = 240.0, tag_name: str = '')

Bases: ConditionsObjectProvider

The provider of the tracking geometry

This is a singleton-class and is created when this module is imported. Users can then modify its configuration by setting attributes and calling methods after calling get_instance(). For example, if you wanted to change the detector to v12 since that is what you used during the simulation, you would

from LDMX.Tracking.geo import TrackersTrackingGeometryProvider as trackgeo trackgeo.get_instance().set_detector(‘ldmx-det-v12’)

The default detector is ‘ldmx-det-v15-8gev’.

class_name: str = 'tracking::geo::TrackersTrackingGeometryProvider'
detector: str = ''
get_instance()
module_name: str = 'Tracking'
object_name: str = 'TrackersTrackingGeometry'
set_detector(det_name)

Set the detector GDML based on the detector name

Parameters:

det_name (str) – name of a detector in the Detectors module

See also

LDMX.Detectors.makePath

tag_name: str = ''
tracker_y_length: float = 480.0
tracker_z_length: float = 240.0

LDMX.Tracking.make_path module

Helpful python configuration functions for getting the path to installed data files.

This assumes the installation directory can be accessed via the cmake variable CMAKE_INSTALL_PREFIX.

LDMX.Tracking.make_path.make_detector_path(det_name: str) str

Get the full path to the detector description.

This will generate a path to detector.gdml, the main entry point for the detector description, for a given detector name.

Parameters:

det_name (str) – The name of the detector e.g. ldmx-det-v14

Returns:

Full path to the detector.gdml of the given detector.

Return type:

str

LDMX.Tracking.make_path.make_field_map_path() str

Get the full path to the fieldmap.

If the fieldmap doesn’t exist, exit the app.

Returns:

Full path to the installed fieldmap.

Return type:

str

LDMX.Tracking.propagation module

class LDMX.Tracking.propagation.CustomStatePropagator(instance_name: str = 'CustomStatePropagator', histograms: list[Histogram] = <factory>, nstates: int = 1000, bs_size: list[float] = <factory>, prange: list[float] = <factory>, thetarange: list[float] = <factory>, phirange: list[float] = <factory>)

Bases: Processor

Producer to generate an user defined set of particles at the target and propagate them through the BField map to an user defined plane surface. Only forward propagation is supported.

nstates

Number of states to be propagated

Type:

int

bs_size

The size of the generated beamspot in Y-X [mm]

Type:

list[float]

prange

Minimum and maximum momentum magnitude uniform pdf [GeV]

Type:

list[float]

thetarange

Minimum and maximum theta angle uniform pdf

Type:

list[float]

phirange

Minimum and maximum phi angle uniform pdf

Type:

list[float]

bs_size: list[float]
class_name: str = 'tracking::reco::CustomStatePropagator'
instance_name: str = 'CustomStatePropagator'
module_name: str = 'Tracking'
nstates: int = 1000
phirange: list[float]
prange: list[float]
thetarange: list[float]

LDMX.Tracking.reduced_tracking module

class LDMX.Tracking.reduced_tracking.LinearSeedFinder(instance_name: str = 'LinearSeedFinder', histograms: list[Histogram] = <factory>, input_hits_collection: str = 'DigiRecoilSimHits', input_rec_hits_collection: str = 'EcalRecHits', out_seed_collection: str = 'LinearRecoilSeedTracks', recoil_uncertainty: list[float] = <factory>, ecal_uncertainty: float = 3.87, ecal_first_layer_z_threshold: float = 250.0, ecal_distance_threshold: float = 15.0, layer12_midpoint: float = 12.5, layer23_midpoint: float = 20.0, layer34_midpoint: float = 27.5, input_pass_name: str = '', sim_particles_passname: str = '', sim_particles_events_passname: str = '')

Bases: Processor

Producer to find Seeds for the reduced geometry track finding.

input_hits_collection

The name of the input collection of hits to be used for seed finding.

Type:

str

input_rec_hits_collection

The name of the input collection of Ecal RecHits (from layer 1) to give a degree of freedom to seed finding.

Type:

str

out_seed_collection

The name of the output collection of seeds to be stored.

Type:

str

recoil_uncertainty

The position uncertainty in [x, y] of a recoil tracker double-layer from combining an axial-stereo sensor pair to make one 3D position.

Type:

list[float]

ecal_uncertainty

The radius of an ECal hexagonal cell.

Type:

float

ecal_first_layer_z_threshold

The z threshold for the first ECal layer.

Type:

float

ecal_distance_threshold

The maximum distance on the Ecal First Layer at which we still allow a seed to be saved.

Type:

float

layer12_midpoint

The z coordinate of the midpoint between Recoil layers 1 and 2.

Type:

float

layer23_midpoint

The z coordinate of the midpoint between Recoil layers 2 and 3.

Type:

float

layer34_midpoint

The z coordinate of the midpoint between Recoil layers 3 and 4.

Type:

float

input_pass_name

The pass name of the input collections.

Type:

str

sim_particles_passname

The pass name of the sim particles.

Type:

str

sim_particles_events_passname

The events pass name of the sim particles.

Type:

str

class_name: str = 'tracking::reco::LinearSeedFinder'
ecal_distance_threshold: float = 15.0
ecal_first_layer_z_threshold: float = 250.0
ecal_uncertainty: float = 3.87
input_hits_collection: str = 'DigiRecoilSimHits'
input_pass_name: str = ''
input_rec_hits_collection: str = 'EcalRecHits'
instance_name: str = 'LinearSeedFinder'
layer12_midpoint: float = 12.5
layer23_midpoint: float = 20.0
layer34_midpoint: float = 27.5
module_name: str = 'Tracking'
out_seed_collection: str = 'LinearRecoilSeedTracks'
recoil_uncertainty: list[float]
sim_particles_events_passname: str = ''
sim_particles_passname: str = ''
class LDMX.Tracking.reduced_tracking.LinearTrackFinder(instance_name: str = 'LinearTrackFinder', histograms: list[Histogram] = <factory>, seed_collection_: str = 'LinearRecoilSeedTracks', out_trk_collection: str = 'LinearRecoilTracks', input_pass_name: str = '')

Bases: Processor

Producer to find tracks for the reduced geometry track finding.

seed_collection_

The name of the input collection of seeds to be used for track finding.

Type:

str

out_trk_collection

The name of the output collection of tracks to be stored.

Type:

str

input_pass_name

The pass name of the input collections.

Type:

str

class_name: str = 'tracking::reco::LinearTrackFinder'
input_pass_name: str = ''
instance_name: str = 'LinearTrackFinder'
module_name: str = 'Tracking'
out_trk_collection: str = 'LinearRecoilTracks'
seed_collection_: str = 'LinearRecoilSeedTracks'
class LDMX.Tracking.reduced_tracking.LinearTruthTracking(instance_name: str = 'LinearTruthTracking', histograms: list[Histogram] = <factory>, input_hits_collection: str = 'RecoilSimHits', input_rec_hits_collection: str = 'EcalRecHits', out_track_collection: str = 'LinearRecoilTruthTracks', ecal_first_layer_z_threshold: float = 250.0, input_pass_name: str = '')

Bases: Processor

Producer to find (truth) tracks using trackID=1 for the reduced geometry.

input_hits_collection

The name of the input collection of hits to be used for truth tracking.

Type:

str

input_rec_hits_collection

The name of the input collection of Ecal RecHits (from layer 1) to check track quality.

Type:

str

out_track_collection

The name of the output collection of truth tracks to be stored.

Type:

str

ecal_first_layer_z_threshold

The z threshold for the first ECal layer.

Type:

float

input_pass_name

The pass name of the input collections.

Type:

str

class_name: str = 'tracking::reco::LinearTruthTracking'
ecal_first_layer_z_threshold: float = 250.0
input_hits_collection: str = 'RecoilSimHits'
input_pass_name: str = ''
input_rec_hits_collection: str = 'EcalRecHits'
instance_name: str = 'LinearTruthTracking'
module_name: str = 'Tracking'
out_track_collection: str = 'LinearRecoilTruthTracks'

LDMX.Tracking.tracking module

class LDMX.Tracking.tracking.CKFProcessor(instance_name: str = 'CKFProcessor', histograms: list[Histogram] = <factory>, dumpobj: bool = False, debug_acts: bool = False, pionstates: int = 0, bfield: float = -1.5, const_b_field: bool = False, field_map: str = <factory>, propagator_step_size: float = 1000.0, propagator_max_steps: int = 10000, hit_collection: str = 'RecoilSimHits', remove_stereo: bool = False, use_extrapolate_location: bool = True, extrapolate_location: list[float] = <factory>, use_seed_perigee: bool = False, seed_coll_name: str = 'SeedTracks', out_trk_collection: str = 'Tracks', min_hits: int = 5, tagger_tracking: bool = False, measurement_collection: str = '', outlier_pval_: float = 3.84, sim_particles_coll_name: str = 'SimParticles', sim_particles_event_passname: str = '', input_pass_name: str = '')

Bases: Processor

Producer that runs the Combinatorial Kalman Filter for track finding and fitting.

dumpobj

If true, dump the tracking geometry into obj/mtl files for visualization purposes.

Type:

bool

debug_acts

Enable ACTS debug output.

Type:

bool

pionstates

Number of pion states generated with uniform distributions to be propagated through the tracking geometry for debugging purposes.

Type:

int

bfield

If using a constant bfield, this is the BZ component.

Type:

float

const_b_field

Activate the usage of constant magnetic field.

Type:

bool

field_map

Path to the location of the magnetic field map.

Type:

str

propagator_step_size

Size of each RK propagator step.

Type:

float

propagator_max_steps

Maximum number of steps for the propagator.

Type:

int

hit_collection

The hit collection for pattern reconstruction.

Type:

str

remove_stereo

Remove stereo hits from track fitting.

Type:

bool

use_extrapolate_location

Activate the usage of extrapolate location for returning the track parameters.

Type:

bool

extrapolate_location

Location of the extrapolation for the trajectory (perigee representation).

Type:

list[float]

use_seed_perigee

Uses the seed perigee as extrapolation location.

Type:

bool

seed_coll_name

Seed collection for initiating the track finding.

Type:

str

out_trk_collection

Name of the output Track collection.

Type:

str

min_hits

Minimum number of measurements on track to accept the trajectory.

Type:

int

outlier_pval_

Outlier p-value threshold.

Type:

float

sim_particles_coll_name

The name of the sim particles collection.

Type:

str

sim_particles_event_passname

The pass name of the sim particles event.

Type:

str

input_pass_name

The pass name of the input collections.

Type:

str

bfield: float = -1.5
class_name: str = 'tracking::reco::CKFProcessor'
const_b_field: bool = False
debug_acts: bool = False
dumpobj: bool = False
extrapolate_location: list[float]
field_map: str
hit_collection: str = 'RecoilSimHits'
input_pass_name: str = ''
instance_name: str = 'CKFProcessor'
measurement_collection: str = ''
min_hits: int = 5
module_name: str = 'Tracking'
out_trk_collection: str = 'Tracks'
outlier_pval_: float = 3.84
pionstates: int = 0
propagator_max_steps: int = 10000
propagator_step_size: float = 1000.0
remove_stereo: bool = False
seed_coll_name: str = 'SeedTracks'
sim_particles_coll_name: str = 'SimParticles'
sim_particles_event_passname: str = ''
tagger_tracking: bool = False
use_extrapolate_location: bool = True
use_seed_perigee: bool = False
class LDMX.Tracking.tracking.DigitizationProcessor(instance_name: str = 'DigitizationProcessor', histograms: list[Histogram] = <factory>, merge_hits: bool = True, do_smearing: bool = True, sigma_u: float = 0.006, sigma_v: float = 1e-06, track_id: int = -1, min_e_dep: float = 0.05, hit_collection: str = 'TaggerSimHits', out_collection: str = 'OutputMeasurements', tracker_hit_passname: str = '')

Bases: Processor

Producer that smears simulated tracker hits.

merge_hits

Activate merging of all hits that have the same track ID on the same layer.

Type:

bool

do_smearing

Activate the smearing.

Type:

bool

sigma_u

Smearing sigma in the sensitive direction.

Type:

float

sigma_v

Smearing sigma in the un-sensitive direction.

Type:

float

track_id

If track_id > 0, retain only hits with that particular track_id and discard the rest.

Type:

int

min_e_dep

Minimum energy deposited by G4 to consider the hit.

Type:

float

hit_collection

Input hit collection to be smeared.

Type:

str

out_collection

Output hit collection to be stored.

Type:

str

tracker_hit_passname

The pass name of the tracker hits.

Type:

str

class_name: str = 'tracking::reco::DigitizationProcessor'
do_smearing: bool = True
hit_collection: str = 'TaggerSimHits'
instance_name: str = 'DigitizationProcessor'
merge_hits: bool = True
min_e_dep: float = 0.05
module_name: str = 'Tracking'
out_collection: str = 'OutputMeasurements'
sigma_u: float = 0.006
sigma_v: float = 1e-06
track_id: int = -1
tracker_hit_passname: str = ''
class LDMX.Tracking.tracking.GSFProcessor(instance_name: str = 'GSFProcessor', histograms: list[Histogram] = <factory>, max_components: int = 12, abort_on_error: bool = False, disable_all_material_handling: bool = False, weight_cutoff: float = 0.0001, debug: bool = False, propagator_step_size: float = 200.0, propagator_max_steps: int = 1000, field_map: str = <factory>, tagger_tracking: bool = True, out_trk_collection: str = 'GSFTracks', track_collection: str = 'TaggerTracks', meas_collection: str = 'DigiTaggerSimHits', track_passname: str = '', meas_passname: str = '', track_collection_event_passname: str = '', meas_collection_event_passname: str = '')

Bases: Processor

Producer that runs Gaussian Sum Fitter on a specific track collection.

max_components

How many gaussians to use to sample the BetheHeitler.

Type:

int

abort_on_error

Abort fitting if an error occurred.

Type:

bool

disable_all_material_handling

Disable material effects on surfaces. True only for debug purpose.

Type:

bool

weight_cutoff

Kill a component if its weight is smaller than a certain threshold.

Type:

float

debug

Enable debug output.

Type:

bool

propagator_step_size

Size of each RK propagator step.

Type:

float

propagator_max_steps

Maximum number of steps for the propagator.

Type:

int

field_map

Path to the location of the magnetic field map.

Type:

str

tagger_tracking

Whether tracking in the tagger.

Type:

bool

out_trk_collection

Name of the output Track collection.

Type:

str

track_collection

Track collection to be refitted with GSF.

Type:

str

meas_collection

Measurements collection in the tracker.

Type:

str

track_passname

The pass name of the track collection.

Type:

str

meas_passname

The pass name of the measurements collection.

Type:

str

track_collection_event_passname

The event pass name of the track collection.

Type:

str

meas_collection_event_passname

The event pass name of the measurements collection.

Type:

str

abort_on_error: bool = False
class_name: str = 'tracking::reco::GSFProcessor'
debug: bool = False
disable_all_material_handling: bool = False
field_map: str
instance_name: str = 'GSFProcessor'
max_components: int = 12
meas_collection: str = 'DigiTaggerSimHits'
meas_collection_event_passname: str = ''
meas_passname: str = ''
module_name: str = 'Tracking'
out_trk_collection: str = 'GSFTracks'
propagator_max_steps: int = 1000
propagator_step_size: float = 200.0
tagger_tracking: bool = True
track_collection: str = 'TaggerTracks'
track_collection_event_passname: str = ''
track_passname: str = ''
weight_cutoff: float = 0.0001
class LDMX.Tracking.tracking.GreedyAmbiguitySolver(instance_name: str = 'GreedyAmbiguitySolver', histograms: list[Histogram] = <factory>, maximum_shared_hits: int = 2, maximum_iterations: int = 1000, n_measurements_min: int = 5, out_trk_collection: str = 'TaggerTracksClean', track_collection: str = 'TaggerTracks', meas_collection: str = 'DigiTaggerSimHits', input_pass_name: str = '')

Bases: Processor

Producer that cleans duplicate tracks from CKF output.

maximum_shared_hits

Maximum number of shared hits for a track to remain.

Type:

int

maximum_iterations

Maximum number of iterations in track cleaning loop.

Type:

int

n_measurements_min

Minimum number of hits on a track.

Type:

int

out_trk_collection

Name of the output Track collection.

Type:

str

track_collection

Track collection to be cleaned.

Type:

str

meas_collection

Measurements collection in the tracker.

Type:

str

input_pass_name

The pass name of the input collections.

Type:

str

class_name: str = 'tracking::reco::GreedyAmbiguitySolver'
input_pass_name: str = ''
instance_name: str = 'GreedyAmbiguitySolver'
maximum_iterations: int = 1000
maximum_shared_hits: int = 2
meas_collection: str = 'DigiTaggerSimHits'
module_name: str = 'Tracking'
n_measurements_min: int = 5
out_trk_collection: str = 'TaggerTracksClean'
track_collection: str = 'TaggerTracks'
class LDMX.Tracking.tracking.SeedFinderProcessor(instance_name: str = 'SeedFinderProcessor', histograms: list[Histogram] = <factory>, perigee_location: list[float] = <factory>, pmin: float = 0.05, pmax: float = 8.0, d0min: float = 20.0, d0max: float = 20.0, z0max: float = 60.0, phicut: float = 0.1, thetacut: float = 0.2, strategies: list[str] = <factory>, bfield: float = 1.5, input_hits_collection: str = 'TaggerSimHits', out_seed_collection: str = 'SeedTracks', input_pass_name: str = '', sim_particles_coll_name: str = 'SimParticles', sim_particles_passname: str = '', tagger_trks_event_collection_passname: str = '', sim_particles_event_passname: str = '', u_error: float = 0.006, v_error: float = 11.547005383792516)

Bases: Processor

Producer to find Seeds for the KF-based track finding.

perigee_location

3D location of the perigee for the helix track parameters definition.

Type:

list[float]

pmin

Minimum cut on the momentum of the seeds.

Type:

float

pmax

Maximum cut on the momentum of the seeds.

Type:

float

d0min

Minimum d0 allowed for the seeds. Computed at the perigee.

Type:

float

d0max

Maximum d0 allowed for the seeds. Computed at the perigee.

Type:

float

z0max

Maximum z0 allowed for the seeds. Computed at the perigee.

Type:

float

phicut

Cut on phi for seed finding.

Type:

float

thetacut

Cut on theta for seed finding.

Type:

float

strategies

List of 5 hits (3 axial and 2 stereo) for seed finding.

Type:

list[str]

bfield

Magnetic field strength.

Type:

float

input_hits_collection

The name of the input collection of hits to be used for seed finding.

Type:

str

out_seed_collection

The name of the output collection of seeds to be stored.

Type:

str

input_pass_name

The pass name of the input collections.

Type:

str

sim_particles_coll_name

The name of the sim particles collection.

Type:

str

sim_particles_passname

The pass name of the sim particles.

Type:

str

tagger_trks_event_collection_passname

The pass name of the tagger tracks event collection.

Type:

str

sim_particles_event_passname

The pass name of the sim particles event.

Type:

str

u_error

Uncertainty in the sensitive direction for the seed hits.

Type:

float

v_error

Uncertainty in the insensitive direction for the seed hits.

Type:

float

bfield: float = 1.5
class_name: str = 'tracking::reco::SeedFinderProcessor'
d0max: float = 20.0
d0min: float = 20.0
input_hits_collection: str = 'TaggerSimHits'
input_pass_name: str = ''
instance_name: str = 'SeedFinderProcessor'
module_name: str = 'Tracking'
out_seed_collection: str = 'SeedTracks'
perigee_location: list[float]
phicut: float = 0.1
pmax: float = 8.0
pmin: float = 0.05
sim_particles_coll_name: str = 'SimParticles'
sim_particles_event_passname: str = ''
sim_particles_passname: str = ''
strategies: list[str]
tagger_trks_event_collection_passname: str = ''
thetacut: float = 0.2
u_error: float = 0.006
v_error: float = 11.547005383792516
z0max: float = 60.0
class LDMX.Tracking.tracking.TrackerVetoProcessor(instance_name: str = 'TrackerVetoProcessor', histograms: list[Histogram] = <factory>, max_d0: float = 10.0, max_z0: float = 40.0, max_chi2_per_ndf: float = 5.0, min_recoil_n: int = 1, min_tagger_momentum: float = 5600.0, min_tagger_hits: int = 4, min_recoil_hits: int = 4, tagger_track_collection: str = 'TaggerTracks', recoil_track_collection: str = 'RecoilTracks', input_tagger_pass_name: str = '', input_recoil_pass_name: str = '', inverse_skim: bool = False, output_collection: str = 'TrackerVeto', sim_particles_passname: str = '', input_collection_events_passname: str = '')

Bases: Processor

Class that flags events that pass the tracker veto.

This processor evaluates tracker events based on recoil and tagger track properties, applying configurable selection criteria to determine whether an event should be flagged.

max_d0

Maximum allowed d0 impact parameter for tracks.

Type:

float

max_z0

Maximum allowed z0 impact parameter for tracks.

Type:

float

max_chi2_per_ndf

Max chi2/ndf required for tracks.

Type:

float

min_recoil_n

Minimum number of recoil tracks required.

Type:

int

min_tagger_momentum

Minimum required momentum for tagger tracks.

Type:

float

min_tagger_hits

Min number of hits for tagger tracks required.

Type:

int

min_recoil_hits

Min number of hits for recoil tracks required.

Type:

int

tagger_track_collection

The name of the tagger track collection.

Type:

str

recoil_track_collection

The name of the recoil track collection.

Type:

str

input_tagger_pass_name

The pass name of the input tagger collections.

Type:

str

input_recoil_pass_name

The pass name of the input recoil collections.

Type:

str

inverse_skim

Boolean flag to invert the selection criteria for skimming purposes.

Type:

bool

output_collection

The name of the new collection.

Type:

str

sim_particles_passname

The pass name of the sim particles.

Type:

str

input_collection_events_passname

The events pass name of the input collection.

Type:

str

class_name: str = 'tracking::TrackerVetoProcessor'
input_collection_events_passname: str = ''
input_recoil_pass_name: str = ''
input_tagger_pass_name: str = ''
instance_name: str = 'TrackerVetoProcessor'
inverse_skim: bool = False
max_chi2_per_ndf: float = 5.0
max_d0: float = 10.0
max_z0: float = 40.0
min_recoil_hits: int = 4
min_recoil_n: int = 1
min_tagger_hits: int = 4
min_tagger_momentum: float = 5600.0
module_name: str = 'Tracking'
output_collection: str = 'TrackerVeto'
recoil_track_collection: str = 'RecoilTracks'
sim_particles_passname: str = ''
tagger_track_collection: str = 'TaggerTracks'
class LDMX.Tracking.tracking.TruthSeedProcessor(instance_name: str = 'TruthSeedProcessor', histograms: list[Histogram] = <factory>, debug: bool = False, pdg_ids: list[int] = <factory>, scoring_hits_coll_name: str = 'TargetScoringPlaneHits', recoil_sim_hits_coll_name: str = 'RecoilSimHits', tagger_sim_hits_coll_name: str = 'TaggerSimHits', n_min_hits_tagger: int = 11, n_min_hits_recoil: int = 7, z_min: float = -9999.0, track_id: int = -9999, pz_cut: float = -9999.0, p_cut: float = 0.0, p_cut_max: float = 100000.0, p_cut_ecal: float = -1.0, skip_tagger: bool = False, skip_recoil: bool = False, max_track_id: int = 5, ecal_sp_coll_name: str = 'EcalScoringPlaneHits', trk_coll_name: str = '', scoring_hits: str = 'TargetScoringPlaneHits', sp_pass_name: str = '', input_pass_name: str = '', sim_particles_coll_name: str = 'SimParticles', sim_particles_passname: str = '', particle_hypothesis: int = 11, beam_electrons_collection: str = 'beamElectrons', tagger_seeds_collection: str = 'TaggerTruthSeeds', tagger_truth_collection: str = 'TaggerTruthTracks', recoil_seeds_collection: str = 'RecoilTruthSeeds', recoil_truth_collection: str = 'RecoilTruthTracks')

Bases: Processor

Producer that returns truth seeds to feed the KF based track finding.

Seeds are not smeared, so the fits will be too optimistic, especially the residuals of the estimated locations w.r.t. simulated hits on each surface. The default parameters assume electron seeds are being found in the recoil tracker with loose requirements on momentum and z position.

pdg_ids

List of particle IDs whose scoring plane hits will be used to form initial seeds.

Type:

list[int]

scoring_hits_coll_name

The name of the scoring plane hits from where to get the truth parameters.

Type:

str

recoil_sim_hits_coll_name

The name of the sim tracker hits collection for recoil.

Type:

str

tagger_sim_hits_coll_name

The name of the sim tracker hits collection for tagger.

Type:

str

n_min_hits_tagger

The minimum number of hits to create a seed from in the tagger tracker.

Type:

int

n_min_hits_recoil

The minimum number of hits to create a seed from in the recoil tracker.

Type:

int

z_min

Request a minimum z (mm) for the scoring plane hits.

Type:

float

track_id

If positive, select only scoring hits with that particular track ID.

Type:

int

pz_cut

Minimum cut on the momentum (MeV) of the seed along the beam axis.

Type:

float

p_cut

Minimum cut on the momentum (MeV) of the seed.

Type:

float

p_cut_max

Maximum cut on the momentum of the seed.

Type:

float

p_cut_ecal

Minimum seed track momentum (MeV) at the ECAL scoring plane.

Type:

float

skip_tagger

Ignore the tagger tracker (makes empty collections).

Type:

bool

skip_recoil

Ignore the recoil tracker (makes empty collections).

Type:

bool

max_track_id

Maximum track ID for a hit to be selected in the target scoring plane.

Type:

float

ecal_sp_coll_name

The name of the ECAL scoring plane hits collection.

Type:

str

sp_pass_name

The pass name of the scoring plane hits.

Type:

str

input_pass_name

The pass name of the input collections.

Type:

str

sim_particles_coll_name

The name of the sim particles collection.

Type:

str

sim_particles_passname

The pass name of the sim particles.

Type:

str

particle_hypothesis

PDG ID for the particle hypothesis.

Type:

int

beam_electrons_collection

The name of the beam electrons collection to use

Type:

str

tagger_seeds_collection

The name of the tagger seeds collection to be stored.

Type:

str

tagger_truth_collection

The name of the tagger truth collection.

Type:

str

recoil_seeds_collection

The name of the recoil seeds collection.

Type:

str

recoil_truth_collection

The name of the recoil truth collection.

Type:

str

beam_electrons_collection: str = 'beamElectrons'
class_name: str = 'tracking::reco::TruthSeedProcessor'
debug: bool = False
ecal_sp_coll_name: str = 'EcalScoringPlaneHits'
input_pass_name: str = ''
instance_name: str = 'TruthSeedProcessor'
max_track_id: int = 5
module_name: str = 'Tracking'
n_min_hits_recoil: int = 7
n_min_hits_tagger: int = 11
p_cut: float = 0.0
p_cut_ecal: float = -1.0
p_cut_max: float = 100000.0
particle_hypothesis: int = 11
pdg_ids: list[int]
pz_cut: float = -9999.0
recoil_seeds_collection: str = 'RecoilTruthSeeds'
recoil_sim_hits_coll_name: str = 'RecoilSimHits'
recoil_truth_collection: str = 'RecoilTruthTracks'
scoring_hits: str = 'TargetScoringPlaneHits'
scoring_hits_coll_name: str = 'TargetScoringPlaneHits'
sim_particles_coll_name: str = 'SimParticles'
sim_particles_passname: str = ''
skip_recoil: bool = False
skip_tagger: bool = False
sp_pass_name: str = ''
tagger_seeds_collection: str = 'TaggerTruthSeeds'
tagger_sim_hits_coll_name: str = 'TaggerSimHits'
tagger_truth_collection: str = 'TaggerTruthTracks'
track_id: int = -9999
trk_coll_name: str = ''
z_min: float = -9999.0

LDMX.Tracking.vertexing module

class LDMX.Tracking.vertexing.VertexProcessor(instance_name: str = 'VertexProcessor', histograms: list[Histogram] = <factory>, field_map: str = <factory>, trk_coll_name: str = 'Tracks', seeds_coll_name: str = 'RecoilTruthSeeds', input_pass_name: str = '')

Bases: Processor

Producer to form vertices from a track collection.

Currently, only vertex fitting has been implemented. Example use cases: K0 and electronuclear studies.

field_map

The path to the magnetic field map.

Type:

str

trk_coll_name

The name of the collection containing the tracks to vertex.

Type:

str

input_pass_name

The pass name of the input collections.

Type:

str

seeds_coll_name

The name of the seeds collection.

Type:

str

class_name: str = 'tracking::reco::VertexProcessor'
field_map: str
input_pass_name: str = ''
instance_name: str = 'VertexProcessor'
module_name: str = 'Tracking'
seeds_coll_name: str = 'RecoilTruthSeeds'
trk_coll_name: str = 'Tracks'
class LDMX.Tracking.vertexing.Vertexer(instance_name: str = 'Vertexer', histograms: list[Histogram] = <factory>, debug: bool = False, field_map: str = <factory>, trk_c_name_1: str = 'TaggerTracks', trk_c_name_2: str = 'RecoilTracks', input_pass_name: str = '')

Bases: Processor

Producer that forms vertices between two different track collections e.g. tagger and recoil tracks.

debug

Flag use to enable/disable printing of debug.

Type:

bool

field_map

The path to the magnetic field map.

Type:

str

trk_c_name_1

Name of a track collection to vertex.

Type:

str

trk_c_name_2

Name of a track collection to vertex. This is unique from trk_c_name_1.

Type:

str

input_pass_name

The pass name of the input collections.

Type:

str

class_name: str = 'tracking::reco::Vertexer'
debug: bool = False
field_map: str
input_pass_name: str = ''
instance_name: str = 'Vertexer'
module_name: str = 'Tracking'
trk_c_name_1: str = 'TaggerTracks'
trk_c_name_2: str = 'RecoilTracks'

Module contents