From 4d33b6b2d9551823fb66d117e5b676083303dbef Mon Sep 17 00:00:00 2001
From: Sebastien Ponce <sebastien.ponce@cern.ch>
Date: Fri, 8 Sep 2017 16:59:58 +0200
Subject: [PATCH] fixed HLT Decoder settings in Tesla

base them on the needed data rather than on the decoder name itself and use decoderToLocation
---
 Phys/Tesla/python/Tesla/Configuration.py | 26 ++++++++----------------
 1 file changed, 8 insertions(+), 18 deletions(-)

diff --git a/Phys/Tesla/python/Tesla/Configuration.py b/Phys/Tesla/python/Tesla/Configuration.py
index 4e75c123b..488af3ef8 100644
--- a/Phys/Tesla/python/Tesla/Configuration.py
+++ b/Phys/Tesla/python/Tesla/Configuration.py
@@ -357,13 +357,11 @@ class Tesla(LHCbConfigurableUser):
 
         # Setting up online
         if self.getProp('Mode') is "Online":
+            from DAQSys.DecoderClass import decoderToLocation
             from DAQSys.Decoders import DecoderDB
-            Hlt1VertexReportsDecoder=DecoderDB["HltVertexReportsDecoder/Hlt1VertexReportsDecoder"].setup()
-            Hlt2VertexReportsDecoder=DecoderDB["HltVertexReportsDecoder/Hlt2VertexReportsDecoder"].setup()
-            Hlt2SelReportsDecoder=DecoderDB["HltSelReportsDecoder/Hlt2SelReportsDecoder"].setup()
-            Hlt2DecReportsDecoder=DecoderDB["HltDecReportsDecoder/Hlt2DecReportsDecoder"].setup()
+            hlt_locs = [ "Hlt/VertexReports/PV3D", "Hlt2/SelReports","Hlt2/DecReports" ]
             odin=DecoderDB["createODIN"].setup()
-            TeslaReportAlgoSeq.Members += [ odin, Hlt1VertexReportsDecoder, Hlt2VertexReportsDecoder, Hlt2SelReportsDecoder, Hlt2DecReportsDecoder ]
+            TeslaReportAlgoSeq.Members += [ odin ] + [ decoderToLocation(DecoderDB,loc).setup() for loc in hlt_locs ]
 
         totalLines=[]
         if turbo_streams:
@@ -759,19 +757,11 @@ class Tesla(LHCbConfigurableUser):
 
         decoders_seq = GaudiSequencer('TeslaDecoders')
         if online:
-            decoder_names = [
-                'HltVertexReportsDecoder/Hlt2VertexReportsDecoder',
-                'HltSelReportsDecoder/Hlt2SelReportsDecoder',
-                'HltDecReportsDecoder/Hlt2DecReportsDecoder',
-                'createODIN'
-            ]
-            if vertex_report_location == 'Hlt1':
-                decoder_names.insert(0, 'HltVertexReportsDecoder/Hlt1VertexReportsDecoder')
-            for name in decoder_names:
-                from DAQSys.Decoders import DecoderDB
-                decoder = DecoderDB[name].setup()
-                decoders_seq.Members.append(decoder)
-
+            from DAQSys.DecoderClass import decoderToLocation
+            from DAQSys.Decoders import DecoderDB
+            hlt_locs = [ "Hlt/VertexReports/PV3D", "Hlt2/SelReports","Hlt2/DecReports" ]
+            odin=DecoderDB["createODIN"].setup()
+            decoders_seq.Members += [ odin ] + [ decoderToLocation(DecoderDB,loc).setup() for loc in hlt_locs ]            
             DecodeRawEvent().DataOnDemand = False
             self._safeSet(DstConf(), ['SplitRawEventOutput'])
 
-- 
GitLab