diff --git a/benchmarks/ecal/options/barrel.py b/benchmarks/ecal/options/barrel.py
index 8347835db450380589a1423359a4e02106a46fe5..6081d1e91a04ec55f31feca705d5ccead766aa53 100644
--- a/benchmarks/ecal/options/barrel.py
+++ b/benchmarks/ecal/options/barrel.py
@@ -52,25 +52,31 @@ sim_coll = [
     "EcalBarrelHitsContributions",
 ]
 
+algorithms = []
+
 # input and output
 podin = PodioInput("PodioReader", collections=sim_coll)
+algorithms.append(podin)
 podout = PodioOutput("out", filename=output_rec)
+algorithms.append(podout)
 
-
-# Central Barrel Ecal (Imaging Cal.)
-cb_ecal_daq = dict(
+# Central Barrel Ecal
+if has_ecal_barrel_scfi:
+    # Central Barrel Ecal (Imaging Cal.)
+    cb_ecal_daq = dict(
         dynamicRangeADC=3*MeV,
         capacityADC=8192,
         pedestalMean=400,
         pedestalSigma=20)   # about 6 keV
 
-cb_ecal_digi = CalHitDigi("cb_ecal_digi",
+    cb_ecal_digi = CalHitDigi("cb_ecal_digi",
         inputHitCollection="EcalBarrelHits",
         outputHitCollection="EcalBarrelImagingHitsDigi",
         energyResolutions=[0., 0.02, 0.],   # 2% flat resolution
         **cb_ecal_daq)
+    algorithms.append(cb_ecal_digi)
 
-cb_ecal_reco = ImCalPixelReco("cb_ecal_reco",
+    cb_ecal_reco = ImCalPixelReco("cb_ecal_reco",
         inputHitCollection=cb_ecal_digi.outputHitCollection,
         outputHitCollection="EcalBarrelImagingHitsReco",
         samplingFraction=cb_ecal_sf,
@@ -79,20 +85,64 @@ cb_ecal_reco = ImCalPixelReco("cb_ecal_reco",
         layerField="layer",             # field to get layer id
         sectorField="module",           # field to get sector id
         **cb_ecal_daq)
+    algorithms.append(cb_ecal_reco)
 
-cb_ecal_cl = ImagingCluster("cb_ecal_cl",
+    cb_ecal_cl = ImagingCluster("cb_ecal_cl",
         inputHitCollection=cb_ecal_reco.outputHitCollection,
         outputProtoClusterCollection="EcalBarrelImagingProtoClusters",
         localDistXY=[2.*mm, 2*mm],              # same layer
         layerDistEtaPhi=[10*mrad, 10*mrad],     # adjacent layer
         neighbourLayersRange=2,                 # id diff for adjacent layer
         sectorDist=3.*cm)                       # different sector
+    algorithms.append(cb_ecal_cl)
 
-cb_ecal_clreco = ImagingClusterReco("cb_ecal_clreco",
+    cb_ecal_clreco = ImagingClusterReco("cb_ecal_clreco",
         inputProtoClusters=cb_ecal_cl.outputProtoClusterCollection,
         outputClusters="EcalBarrelImagingClusters",
         outputLayers="EcalBarrelImagingLayers",
         mcHits="EcalBarrelHits")
+    algorithms.append(cb_ecal_clreco)
+
+else:
+    # SciGlass calorimeter
+    sciglass_ecal_daq = dict(
+        dynamicRangeADC=5.*GeV,
+        capacityADC=32768,
+        pedestalMean=400,
+        pedestalSigma=3)
+
+    sciglass_ecal_digi = CalHitDigi("sciglass_ecal_digi",
+        inputHitCollection="EcalBarrelHits",
+        outputHitCollection="EcalBarrelHitsDigi",
+        energyResolutions=[0., 0.02, 0.],   # 2% flat resolution
+        **sciglass_ecal_daq)
+    algorithms.append(sciglass_ecal_digi)
+
+    sciglass_ecal_reco = CalHitReco("sciglass_ecal_reco",
+        inputHitCollection=sciglass_ecal_digi.outputHitCollection,
+        outputHitCollection="EcalBarrelHitsReco",
+        thresholdFactor=3,  # about 20 keV
+        readoutClass="EcalBarrelHits",  # readout class
+        sectorField="sector",           # field to get sector id
+        samplingFraction=0.998,         # this accounts for a small fraction of leakage
+        **sciglass_ecal_daq)
+    algorithms.append(sciglass_ecal_reco)
+
+    sciglass_ecal_cl = IslandCluster("sciglass_ecal_cl",
+        inputHitCollection=sciglass_ecal_reco.outputHitCollection,
+        outputProtoClusterCollection="EcalBarrelProtoClusters",
+        splitCluster=False,
+        minClusterHitEdep=1.0*MeV,  # discard low energy hits
+        minClusterCenterEdep=30*MeV,
+        sectorDist=5.0*cm)
+    algorithms.append(sciglass_ecal_cl)
+
+    sciglass_ecal_clreco = ImagingClusterReco("sciglass_ecal_clreco",
+        inputProtoClusters=sciglass_ecal_cl.outputProtoClusterCollection,
+        mcHits="EcalBarrelHits",
+        outputClusters="EcalBarrelClusters",
+        outputLayers="EcalBarrelLayers")
+    algorithms.append(sciglass_ecal_clreco)
 
 podout.outputCommands = ['drop *',
         'keep MCParticles',
@@ -101,9 +151,7 @@ podout.outputCommands = ['drop *',
         'keep *Cluster*']
 
 ApplicationMgr(
-    TopAlg = [podin,
-              cb_ecal_digi, cb_ecal_reco, cb_ecal_cl, cb_ecal_clreco,
-              podout],
+    TopAlg = algorithms,
     EvtSel = 'NONE',
     EvtMax = n_events,
     ExtSvc = [podioevent],