diff --git a/cal_tools/cal_tools/dssclib.py b/cal_tools/cal_tools/dssclib.py
index 8eabb3f42e4b3ae7be67ea39941ee38c5c408186..fb365023fb4da2f7fb58521fbde6cbd5e9d70e7e 100644
--- a/cal_tools/cal_tools/dssclib.py
+++ b/cal_tools/cal_tools/dssclib.py
@@ -14,7 +14,7 @@ def get_pulseid_checksum(fname, h5path, h5path_idx):
     with h5py.File(fname, "r") as infile:
         count = np.squeeze(infile[f"{h5path_idx}/count"])
         first = np.squeeze(infile[f"{h5path_idx}/first"])
-        last_index = int(first[count != 0][-1]+count[count != 0][-1])
+        last_index = int(first[count != 0][-1] + count[count != 0][-1])
         first_index = int(first[count != 0][0])
         pulseids = infile[f"{h5path}/pulseId"][first_index:
                                                int(first[count != 0][1])]
@@ -26,7 +26,7 @@ def get_pulseid_checksum(fname, h5path, h5path_idx):
 
 def _extr_gainparam_conffilename(fileName: str) -> Tuple[int]:
     """extracts target gain from config filename, if provided."""
-    vals = re.search(".*_TG(?P<TG>\d+.?\d+)", fileName)
+    vals = re.search(".*_TG(?P<TG>\\d+.?\\d+)", fileName)
     if vals:
         return vals.group('TG')
 
@@ -55,7 +55,7 @@ def get_dssc_ctrl_data(in_folder, slow_data_pattern,
     encodedGainAll = {}
     operatingFreqAll = {}
     for i in range(16):
-        qm = 'Q{}M{}'.format(i//4+1, i % 4+1)
+        qm = 'Q{}M{}'.format(i // 4 + 1, i % 4 + 1)
         targetGainAll[qm] = None
         encodedGainAll[qm] = None
         operatingFreqAll[qm] = None
@@ -67,59 +67,78 @@ def get_dssc_ctrl_data(in_folder, slow_data_pattern,
 
         f = os.path.join(in_folder, quad_sd_pattern)
         if os.path.exists(f):
-            ctrlDataFiles[quadrant+1] = f
+            ctrlDataFiles[quadrant + 1] = f
 
     if len(ctrlDataFiles) == 0:
-        print("No Control Slow Data found!")
+        print("ERROR: no Slow Control Data found!")
         return targetGainAll, encodedGainAll, operatingFreqAll
 
-    ctrlloc = h5py.File(next(iter(ctrlDataFiles.values())), 'r')[
-        '/METADATA/dataSources/deviceId'][0]
+    daq_format = None
+
+    ctrlloc = None
+    filename = next(iter(ctrlDataFiles.values()))
+    with h5py.File(filename, 'r') as ctlrh5file:
+        if '/METADATA/dataSources/deviceId' in ctlrh5file:
+            ctrlloc = ctlrh5file['/METADATA/dataSources/deviceId'][0]
+            daq_format = ctlrh5file['/METADATA/dataFormatVersion'][0].decode(
+                "utf-8")
+        elif '/METADATA/deviceId' in ctlrh5file:
+            ctrlloc = ctlrh5file['/METADATA/deviceId'][0]
+        else:
+            print("ERROR: no Slow Control Data found in files!")
+            return targetGainAll, encodedGainAll, operatingFreqAll
+
     ctrlloc = ctrlloc.decode("utf-8")
     ctrlloc = ctrlloc[:ctrlloc.find('/')]
 
     tGain = {}
     encodedGain = {}
     operatingFreqs = {}
-    for quadrant, file in ctrlDataFiles.items():
-        if len(file):
-            h5file = h5py.File(file)
-            if not f'/RUN/{ctrlloc}/FPGA/PPT_Q{quadrant}/epcRegisterFilePath/value' in h5file:
-                print(f"Slow control data file {file} is not usable")
-                continue
-            epcConfig = h5file[f'/RUN/{ctrlloc}/FPGA/PPT_Q{quadrant}/epcRegisterFilePath/value'][0]\
-                .decode("utf-8")
-            epcConfig = epcConfig[epcConfig.rfind('/') + 1:]
-
-            print(f"EPC configuration: {epcConfig}")
-
-            targGain = _extr_gainparam_conffilename(epcConfig)
-
-            tGain[quadrant] = float(targGain) if targGain is not None else 0.0
-            # 0.0 is default value for TG
-
-            gainSettingsMap = {}
-            for coarseParam in ['fcfEnCap', 'csaFbCap', 'csaResistor']:
-                gainSettingsMap[coarseParam] = int(
-                    h5file[f'/RUN/{ctrlloc}/FPGA/PPT_Q{quadrant}/gain/{coarseParam}/value'][0])
-
-            irampSettings = h5file[f'/RUN/{ctrlloc}/FPGA/PPT_Q{quadrant}/gain/irampFineTrm/value'][0]\
-                .decode("utf-8")
-
-            gainSettingsMap['trimmed'] = np.int64(
-                1) if irampSettings == "Various" else np.int64(0)
-
-            encodedGain[quadrant] = _get_gain_encoded_val(gainSettingsMap)
-
-            opFreq = h5file[f'/RUN/{ctrlloc}/FPGA/PPT_Q{quadrant}/sequencer/cycleLength/value'][0]
-            # The Operating Frequency of the detector should be in MHz.
-            # Here the karabo operation mode is converted to acquisition rate:
-            # 22 corresponds to 4.5 MHz, 44 to 2.25 MHz, etc.
-            operatingFreqs[quadrant] = 4.5 * (22.0 / opFreq)
+    for quadrant in range(1,5):
+        if quadrant in ctrlDataFiles.keys():
+            file = ctrlDataFiles[quadrant]
+            with h5py.File(file) as h5file:
+                iramp_path = f"/RUN/{ctrlloc}/FPGA/PPT_Q{quadrant}/gain/irampFineTrm/value"
+                if not daq_format:
+                    tGain[quadrant] = 0.0  # 0.0 is default value for TG
+
+                    if iramp_path in h5file:
+                        irampSettings = h5file[iramp_path][0]
+                    else:
+                        irampSettings = "Various"
+                else:
+                    epcConfig = h5file[f'/RUN/{ctrlloc}/FPGA/PPT_Q{quadrant}/epcRegisterFilePath/value'][0]\
+                        .decode("utf-8")
+                    epcConfig = epcConfig[epcConfig.rfind('/') + 1:]
+
+                    print(f"EPC configuration: {epcConfig}")
+                    targGain = _extr_gainparam_conffilename(epcConfig)
+                    tGain[quadrant] = float(
+                        targGain) if targGain is not None else 0.0
+                    irampSettings = h5file[iramp_path][0].decode("utf-8")
+
+                gainSettingsMap = {}
+                for coarseParam in ['fcfEnCap', 'csaFbCap', 'csaResistor']:
+                    gainSettingsMap[coarseParam] = int(
+                        h5file[f'/RUN/{ctrlloc}/FPGA/PPT_Q{quadrant}/gain/{coarseParam}/value'][0])
+
+                gainSettingsMap['trimmed'] = np.int64(
+                    1) if irampSettings == "Various" else np.int64(0)
+
+                encodedGain[quadrant] = _get_gain_encoded_val(gainSettingsMap)
+
+                opFreq = h5file[f'/RUN/{ctrlloc}/FPGA/PPT_Q{quadrant}/sequencer/cycleLength/value'][0]
+                # The Operating Frequency of the detector should be in MHz.
+                # Here the karabo operation mode is converted to acquisition rate:
+                # 22 corresponds to 4.5 MHz, 44 to 2.25 MHz, etc.
+                operatingFreqs[quadrant] = 4.5 * (22.0 / opFreq)
         else:
-            print(f"no slow data for quadrant {quadrant} is found")
+            print(f"ERROR: no slow data for quadrant {quadrant} is found")
 
-    for varpair in [(targetGainAll, tGain), (encodedGainAll, encodedGain), (operatingFreqAll, operatingFreqs)]:
+    for varpair in [
+        (targetGainAll, tGain),
+        (encodedGainAll, encodedGain),
+            (operatingFreqAll, operatingFreqs)]:
         for quadrant, value in varpair[1].items():
             for module in range(1, 5):
                 qm = f'Q{quadrant}M{module}'