diff --git a/benchmarks/track_finding/options/track_reconstruction.py b/benchmarks/track_finding/options/track_reconstruction.py
index a736d59397a963cf6198db07bd3285c2700a0eca..4a6ac74e889de42a6ae53cbc0da04725002177ed 100644
--- a/benchmarks/track_finding/options/track_reconstruction.py
+++ b/benchmarks/track_finding/options/track_reconstruction.py
@@ -201,9 +201,10 @@ algorithms.append(conformal_find)
 sourcelinker = TrackerSourceLinker(
     "sourcelinker",
     inputHitCollection=trk_hit_col.trackingHits,
-    outputSourceLinks="TrackSourceLinks",
     outputMeasurements="TrackMeasurements",
 )
+if "outputSourceLinks" in sourcelinker.getProperties():
+    sourcelinker.outputSourceLinks="TrackSourceLinks"
 algorithms.append(sourcelinker)
 
 ## Track param init
@@ -217,11 +218,12 @@ algorithms.append(truth_trk_init)
 # Tracking algorithms
 trk_find_alg = CKFTracking(
     "trk_find_alg",
-    inputSourceLinks=sourcelinker.outputSourceLinks,
     inputMeasurements=sourcelinker.outputMeasurements,
     inputInitialTrackParameters="InitTrackParams",
     outputTrajectories="trajectories",
 )
+if "inputSourceLinks" in trk_find_alg.getProperties():
+    trk_find_alg.inputSourceLinks=sourcelinker.outputSourceLinks
 algorithms.append(trk_find_alg)
 
 parts_from_fit = ParticlesFromTrackFit(
diff --git a/benchmarks/track_fitting/options/track_reconstruction.py b/benchmarks/track_fitting/options/track_reconstruction.py
index db28668b7befcb55d290c1bb3e24fc4687fb85fe..328873a29ad53e531223153cdaa0889972b54603 100644
--- a/benchmarks/track_fitting/options/track_reconstruction.py
+++ b/benchmarks/track_fitting/options/track_reconstruction.py
@@ -187,9 +187,10 @@ algorithms.append(trk_hit_col)
 sourcelinker = TrackerSourceLinker(
     "sourcelinker",
     inputHitCollection=trk_hit_col.trackingHits,
-    outputSourceLinks="TrackSourceLinks",
     outputMeasurements="TrackMeasurements",
 )
+if "outputSourceLinks" in sourcelinker.getProperties():
+    sourcelinker.outputSourceLinks="TrackSourceLinks"
 algorithms.append(sourcelinker)
 
 ## Track param init
@@ -203,11 +204,12 @@ algorithms.append(truth_trk_init)
 # Tracking algorithms
 trk_find_alg = CKFTracking(
     "trk_find_alg",
-    inputSourceLinks=sourcelinker.outputSourceLinks,
     inputMeasurements=sourcelinker.outputMeasurements,
     inputInitialTrackParameters="InitTrackParams",
     outputTrajectories="trajectories",
 )
+if "inputSourceLinks" in trk_find_alg.getProperties():
+    trk_find_alg.inputSourceLinks=sourcelinker.outputSourceLinks
 algorithms.append(trk_find_alg)
 
 parts_from_fit = ParticlesFromTrackFit(
diff --git a/benchmarks/tracking/options/track_reconstruction.py b/benchmarks/tracking/options/track_reconstruction.py
index 1a7ab5dee2bee950afd58da545190987835b9ff8..1fbe93939bfe0cd0ca775fb6a17ccdb4ff0cf474 100644
--- a/benchmarks/tracking/options/track_reconstruction.py
+++ b/benchmarks/tracking/options/track_reconstruction.py
@@ -188,9 +188,10 @@ algorithms.append(trk_hit_col)
 sourcelinker = TrackerSourceLinker(
     "sourcelinker",
     inputHitCollection=trk_hit_col.trackingHits,
-    outputSourceLinks="TrackSourceLinks",
     outputMeasurements="TrackMeasurements",
 )
+if "outputSourceLinks" in sourcelinker.getProperties():
+    sourcelinker.outputSourceLinks="TrackSourceLinks"
 algorithms.append(sourcelinker)
 
 ## Track param init
@@ -204,11 +205,12 @@ algorithms.append(truth_trk_init)
 # Tracking algorithms
 trk_find_alg = CKFTracking(
     "trk_find_alg",
-    inputSourceLinks=sourcelinker.outputSourceLinks,
     inputMeasurements=sourcelinker.outputMeasurements,
     inputInitialTrackParameters="InitTrackParams",
     outputTrajectories="trajectories",
 )
+if "inputSourceLinks" in trk_find_alg.getProperties():
+    trk_find_alg.inputSourceLinks=sourcelinker.outputSourceLinks
 algorithms.append(trk_find_alg)
 
 parts_from_fit = ParticlesFromTrackFit(