diff --git a/DaVinciTests/tests/options/prod_conf/options_job.py b/DaVinciTests/tests/options/prod_conf/options_job.py
new file mode 100644
index 0000000000000000000000000000000000000000..2f8c37b1e6c3187036772ea1b3e7d5ad31981ecb
--- /dev/null
+++ b/DaVinciTests/tests/options/prod_conf/options_job.py
@@ -0,0 +1,25 @@
+###############################################################################
+# (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration           #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+from DaVinci import options
+from DaVinci.compat.tests.params import prod_conf_params
+
+options.data_type = "Upgrade"
+options.enable_unpack = False
+options.histo_file = prod_conf_params["HistogramFile"]
+options.input_type = "ROOT"
+options.lumi = False
+options.ntuple_file = (prod_conf_params["OutputFilePrefix"] + '.' +
+                       prod_conf_params["OutputFileTypes"][0].lower())
+options.simulation = True
+options.skip_events = 0
+options.output_type = "ROOT"
+options.user_algorithms = "../../../DaVinciExamples/python/DaVinciExamples/tupling/example-tupling-basic-run-mc:main"
+options.write_fsr = False
diff --git a/DaVinciTests/tests/options/prod_conf/options_prodconf.py b/DaVinciTests/tests/options/prod_conf/options_prodconf.py
new file mode 100644
index 0000000000000000000000000000000000000000..d96cbddc6141d10bf03e38def72a3fb62f93b435
--- /dev/null
+++ b/DaVinciTests/tests/options/prod_conf/options_prodconf.py
@@ -0,0 +1,43 @@
+###############################################################################
+# (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration           #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+from Configurables import (DaVinci, LHCbApp, EventSelector,
+                           HistogramPersistencySvc)
+from Gaudi.Configuration import FileCatalog
+from DaVinci.compat.tests.params import prod_conf_params
+
+
+def dressInputFileNames(name):
+    """Small helper to decorate the input file names."""
+    if name.endswith(".raw"):
+        return "DATAFILE='%s' SVC='LHCb::MDFSelector'" % name
+    return "DATAFILE='%s' TYP='POOL_ROOTTREE' OPT='READ'" % name
+
+
+### The common part defined in ProdConf.__apply_configuration__()
+
+# common configuration
+app = LHCbApp()
+
+# Propagate options to LHCbApp, if set.
+app.CondDBtag = prod_conf_params["CondDBTag"]
+app.DDDBtag = prod_conf_params["DDDBTag"]
+app.EvtMax = prod_conf_params["NOfEvents"]
+app.TimeStamp = True
+app.XMLSummary = prod_conf_params["XMLSummaryFile"]
+
+HistogramPersistencySvc(OutputFile=prod_conf_params["HistogramFile"])
+FileCatalog(Catalogs=["xmlcatalog_file:" + prod_conf_params["XMLFileCatalog"]])
+
+EventSelector().Input = [
+    dressInputFileNames(f) for f in prod_conf_params["InputFiles"]
+]
+
+dv = DaVinci()
diff --git a/DaVinciTests/tests/options/prod_conf/options_reference.py b/DaVinciTests/tests/options/prod_conf/options_reference.py
new file mode 100644
index 0000000000000000000000000000000000000000..ce3c18d1314106a47cf2f290a25fcd5a16598fbb
--- /dev/null
+++ b/DaVinciTests/tests/options/prod_conf/options_reference.py
@@ -0,0 +1,20 @@
+###############################################################################
+# (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration           #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+from DaVinci import options
+from DaVinci.ConfigurationUpgrade import run_davinci
+from DaVinci.compat.tests.params import prod_conf_params
+
+options.conddb_tag = prod_conf_params["CondDBTag"]
+options.dddb_tag = prod_conf_params["DDDBTag"]
+options.evt_max = prod_conf_params["NOfEvents"]
+options.input_files = prod_conf_params["InputFiles"]
+
+run_davinci(prod_conf=True)
diff --git a/DaVinciTests/tests/options/prod_conf/run.sh b/DaVinciTests/tests/options/prod_conf/run.sh
new file mode 100644
index 0000000000000000000000000000000000000000..c4d3ae00b35948430bc0a1fc199acef18d02ab88
--- /dev/null
+++ b/DaVinciTests/tests/options/prod_conf/run.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+###############################################################################
+# (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration           #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+
+gaudirun.py -n $DAVINCITESTSROOT/tests/options/prod_conf/options_{job,reference}.py -o config_reference.opts
+
+gaudirun.py -n $DAVINCITESTSROOT/tests/options/prod_conf/options_{job,prodconf}.py -o config_prodconf.opts
+
+# Using the PyConf/script/diffopts.py for comparing the DaVinci configuration when running the job
+# with or without the ProdConf-like interface
+diffopts.py \
+    -e 'MessageSvc,Format' -e 'FileCatalog,Catalogs' -e 'EventSelector,Input' \
+    -e 'CopyInputStream,Output' -e 'CounterSummarySvc,.*' -e 'EventClockSvc,EventTimeDecoder' \
+    -e 'ApplicationMgr,ExtSvc' \
+    config_{reference,prodconf}.opts
diff --git a/DaVinciTests/tests/qmtest/prodconf.qms/test_prod_conf.qmt b/DaVinciTests/tests/qmtest/prodconf.qms/test_prod_conf.qmt
new file mode 100644
index 0000000000000000000000000000000000000000..897b9d9e55629fb78ae288e42017c22edbd400ba
--- /dev/null
+++ b/DaVinciTests/tests/qmtest/prodconf.qms/test_prod_conf.qmt
@@ -0,0 +1,33 @@
+<?xml version="1.0" ?>
+<!--
+###############################################################################
+# (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration           #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+-->
+<!DOCTYPE extension  PUBLIC '-//QM/2.3/Extension//EN'  'http://www.codesourcery.com/qm/dtds/2.3/-//qm/2.3/extension//en.dtd'>
+<!--
+#######################################################
+# SUMMARY OF THIS TEST
+# ...................
+# Author: dfazzini
+# Purpose: Test the ProdConf compatibility with the new DaVinci ConfigurableUser. The same job is run both using a 
+#          ProdConf-like interface and using a standard option file. Then the global configuration in the two cases
+#          is compared to check for any difference.
+# Prerequisites: None
+#######################################################
+-->
+<extension class="GaudiTest.GaudiExeTest" kind="test">
+<argument name="program"><text>bash</text></argument>
+<argument name="args"><set>
+  <text>../options/prod_conf/run.sh</text>
+</set></argument>
+<argument name="use_temp_dir"><enumeral>true</enumeral></argument>
+<argument name="timeout"><integer>600</integer></argument>
+</extension>
diff --git a/DaVinciTests/tests/refs/test_davinci_control_flow.ref b/DaVinciTests/tests/refs/test_davinci_control_flow.ref
index 217ec120b52e1a70e6407ddfb236c080f15c97ba..53b79fc4b06ee08d77441a8223e0b95faa40da42 100644
--- a/DaVinciTests/tests/refs/test_davinci_control_flow.ref
+++ b/DaVinciTests/tests/refs/test_davinci_control_flow.ref
@@ -1,4 +1,4 @@
-INFO No MainOptions specified. DaVinci() will import no options file!
+INFO No MainOptions specified. DaVinci will import no options file!
 WARNING DV option file or main function not defined. No user algorithms will be used.
 /***** User DVAppOptions/DVAppOptions **************************************************************
 |-auditors               = []  (default: [])
diff --git a/DaVinciTests/tests/refs/test_davinci_initialise_upgrade.ref b/DaVinciTests/tests/refs/test_davinci_initialise_upgrade.ref
index 0f425dd74c3c6693200e0f38ed658a2669417b02..5454205549f25b15318acd114f39df16ec91cdfa 100644
--- a/DaVinciTests/tests/refs/test_davinci_initialise_upgrade.ref
+++ b/DaVinciTests/tests/refs/test_davinci_initialise_upgrade.ref
@@ -1,4 +1,4 @@
-INFO No MainOptions specified. DaVinci() will import no options file!
+INFO No MainOptions specified. DaVinci will import no options file!
 WARNING DV option file or main function not defined. No user algorithms will be used.
 /***** User DVAppOptions/DVAppOptions **************************************************************
 |-auditors               = []  (default: [])
diff --git a/DaVinciTests/tests/refs/test_davinci_read_mc_digi.ref b/DaVinciTests/tests/refs/test_davinci_read_mc_digi.ref
index 64283d4180da700789520f0ed03bba19f07654b0..2c4cfd4cfbf320bd0a3717500453e8196042b835 100644
--- a/DaVinciTests/tests/refs/test_davinci_read_mc_digi.ref
+++ b/DaVinciTests/tests/refs/test_davinci_read_mc_digi.ref
@@ -1,4 +1,4 @@
-WARNING No jobOption file selected, the default values are used.
+INFO No MainOptions specified. DaVinci will import no options file!
 WARNING DV option file or main function not defined. No user algorithms will be used.
 /***** User DVAppOptions/DVAppOptions **************************************************************
 |-auditors               = []  (default: [])
@@ -57,217 +57,46 @@ ApplicationMgr       INFO Application Manager Configured successfully
 DetectorPersistencySvc                 INFO Added successfully Conversion service:XmlCnvSvc
 DetectorDataSvc                     SUCCESS Detector description database: git:/lhcb.xml
 EventClockSvc.FakeEventTime            INFO Event times generated from 0 with steps of 0
+HiveDataBrokerSvc                   WARNING non-reentrant algorithm: GaudiHistoAlgorithm/SimpleHistos
 ApplicationMgr                         INFO Application Manager Initialized successfully
 DeFTDetector                           INFO Current FT geometry version =   63
 ApplicationMgr                         INFO Application Manager Started successfully
 EventPersistencySvc                    INFO Added successfully Conversion service:RootCnvSvc
 EventSelector                          INFO Stream:EventSelector.DataStreamTool_1 Def:DATAFILE='root://eoslhcb.cern.ch//eos/lhcb/wg/HLT/UpgradeSignalDigi/K0S2mu2/K0S2mu2_MCUpgrade_34112100_MagDown_00.digi' SVC='Gaudi::RootEvtSelector' OPT='READ' IgnoreChecksum='YES'
 EventSelector                       SUCCESS Reading Event record 1. Record number within stream 1: 1
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
+RndmGenSvc.Engine                      INFO Generator engine type:CLHEP::RanluxEngine
+RndmGenSvc.Engine                      INFO Current Seed:1234567 Luxury:3
+RndmGenSvc                             INFO Using Random engine:HepRndm::Engine<CLHEP::RanluxEngine>
+SimpleHistos                           INFO GaudiHistoAlgorithm:: Filling Histograms...... Please be patient !
 ApplicationMgr                         INFO Application Manager Stopped successfully
-LAZY_AND: DaVinci                                               #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
- NONLAZY_OR: UserAnalysis                                       #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
-  LAZY_AND: UserAlgorithms                                      #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
-   Gaudi__Examples__VoidConsumer/Gaudi__Examples__VoidConsumer  #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+LAZY_AND: DaVinci                    #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+ NONLAZY_OR: UserAnalysis            #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+  LAZY_AND: StandardAlgs             #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+   GaudiHistoAlgorithm/SimpleHistos  #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
 ToolSvc                                INFO Removing all tools created by ToolSvc
+ChronoStatSvc.finalize()               INFO  Service finalized successfully
 ApplicationMgr                         INFO Application Manager Finalized successfully
 ApplicationMgr                         INFO Application Manager Terminated successfully
+SimpleHistos                        SUCCESS 1D histograms in directory "SimpleHistos" : 10
+ | ID                        |   Title                                       |    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |
+ | 101                       | "Exponential"                                 |   200   |     1.0375 | 0.98812    |     1.2984 |     1.1493 |
+ | 102                       | "Breit"                                       |   200   |   -0.13288 | 1.1554     |   -0.63297 |     2.5528 |
+ | 1111                      | "Forced Numeric ID time test"                 |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | AutoID time test          | "AutoID time test"                            |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | Gaussian mean=0, sigma=1  | "Gaussian mean=0, sigma=1"                    |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | poisson                   | "Poisson"                                     |   200   |     1.8125 | 1.1394     |    0.39748 |   -0.69255 |
+ | subdir1/bino              | "Binominal"                                   |   200   |     1.9442 | 1.0625     |    0.25254 |   -0.63664 |
+ | subdir2/bino              | "Binominal"                                   |   200   |     1.9442 | 1.0625     |    0.25254 |   -0.63664 |
+ | test1                     | "Forced Alpha ID time test"                   |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | varBinning/x              | "1D Variable Binning"                         |   200   |  -0.065339 | 2.8519     |  -0.016208 |    -1.1729 |
+SimpleHistos                        SUCCESS 1D profile histograms in directory "SimpleHistos" : 9
+ | ID                        |   Title                                       |    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |
+ | Expo V Gauss 1DProf       | "Expo V Gauss 1DProf"                         |   200   |  -0.093324 | 0.96907    |    -1.6998 |     5.1535 |
+ | Expo V Gauss 1DProf s     | "Expo V Gauss 1DProf s"                       |   200   |  -0.093324 | 0.96907    |    -1.6998 |     5.1535 |
+ | Gauss V Flat 1DProf       | "Gauss V Flat 1DProf"                         |   200   |    0.22419 | 5.6605     |          0 |         -3 |
+ | Gauss V Flat 1DProf S     | "Gauss V Flat 1DProf S"                       |   200   |    0.22419 | 5.6605     |          0 |         -3 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-I"          |    92   |    0.25743 | 5.4893     |   -0.22985 |     -0.952 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-I  s"       |    92   |    0.25743 | 5.4893     |   -0.22985 |     -0.952 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-II"         |   108   |    0.19587 | 5.8022     |          0 |         -3 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-II s"       |   108   |    0.19587 | 5.8022     |          0 |         -3 |
+ | varBinning/a              | "1D Profile Variable Binning"                 |   200   |  -0.065339 | 2.8519     |          0 |         -3 |
diff --git a/DaVinciTests/tests/refs/test_davinci_read_mc_ldst.ref b/DaVinciTests/tests/refs/test_davinci_read_mc_ldst.ref
index dce145239daf3d59b71aaa51b5dd34e2d517d06d..44b4684a354539cbf506d3648341f554554c7c10 100644
--- a/DaVinciTests/tests/refs/test_davinci_read_mc_ldst.ref
+++ b/DaVinciTests/tests/refs/test_davinci_read_mc_ldst.ref
@@ -1,4 +1,4 @@
-WARNING No jobOption file selected, the default values are used.
+INFO No MainOptions specified. DaVinci will import no options file!
 WARNING DV option file or main function not defined. No user algorithms will be used.
 /***** User DVAppOptions/DVAppOptions **************************************************************
 |-auditors               = []  (default: [])
@@ -57,217 +57,46 @@ ApplicationMgr       INFO Application Manager Configured successfully
 DetectorPersistencySvc                 INFO Added successfully Conversion service:XmlCnvSvc
 DetectorDataSvc                     SUCCESS Detector description database: git:/lhcb.xml
 EventClockSvc.FakeEventTime            INFO Event times generated from 0 with steps of 0
+HiveDataBrokerSvc                   WARNING non-reentrant algorithm: GaudiHistoAlgorithm/SimpleHistos
 ApplicationMgr                         INFO Application Manager Initialized successfully
 DeFTDetector                           INFO Current FT geometry version =   63
 ApplicationMgr                         INFO Application Manager Started successfully
 EventPersistencySvc                    INFO Added successfully Conversion service:RootCnvSvc
 EventSelector                          INFO Stream:EventSelector.DataStreamTool_1 Def:DATAFILE='root://eoslhcb.cern.ch//eos/lhcb/wg/HLT/UpgradeMinbias/00069155_00000021_2.ldst' SVC='Gaudi::RootEvtSelector' OPT='READ' IgnoreChecksum='YES'
 EventSelector                       SUCCESS Reading Event record 1. Record number within stream 1: 1
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
+RndmGenSvc.Engine                      INFO Generator engine type:CLHEP::RanluxEngine
+RndmGenSvc.Engine                      INFO Current Seed:1234567 Luxury:3
+RndmGenSvc                             INFO Using Random engine:HepRndm::Engine<CLHEP::RanluxEngine>
+SimpleHistos                           INFO GaudiHistoAlgorithm:: Filling Histograms...... Please be patient !
 ApplicationMgr                         INFO Application Manager Stopped successfully
-LAZY_AND: DaVinci                                               #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
- NONLAZY_OR: UserAnalysis                                       #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
-  LAZY_AND: UserAlgorithms                                      #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
-   Gaudi__Examples__VoidConsumer/Gaudi__Examples__VoidConsumer  #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+LAZY_AND: DaVinci                    #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+ NONLAZY_OR: UserAnalysis            #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+  LAZY_AND: StandardAlgs             #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+   GaudiHistoAlgorithm/SimpleHistos  #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
 ToolSvc                                INFO Removing all tools created by ToolSvc
+ChronoStatSvc.finalize()               INFO  Service finalized successfully
 ApplicationMgr                         INFO Application Manager Finalized successfully
 ApplicationMgr                         INFO Application Manager Terminated successfully
+SimpleHistos                        SUCCESS 1D histograms in directory "SimpleHistos" : 10
+ | ID                        |   Title                                       |    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |
+ | 101                       | "Exponential"                                 |   200   |     1.0375 | 0.98812    |     1.2984 |     1.1493 |
+ | 102                       | "Breit"                                       |   200   |   -0.13288 | 1.1554     |   -0.63297 |     2.5528 |
+ | 1111                      | "Forced Numeric ID time test"                 |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | AutoID time test          | "AutoID time test"                            |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | Gaussian mean=0, sigma=1  | "Gaussian mean=0, sigma=1"                    |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | poisson                   | "Poisson"                                     |   200   |     1.8125 | 1.1394     |    0.39748 |   -0.69255 |
+ | subdir1/bino              | "Binominal"                                   |   200   |     1.9442 | 1.0625     |    0.25254 |   -0.63664 |
+ | subdir2/bino              | "Binominal"                                   |   200   |     1.9442 | 1.0625     |    0.25254 |   -0.63664 |
+ | test1                     | "Forced Alpha ID time test"                   |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | varBinning/x              | "1D Variable Binning"                         |   200   |  -0.065339 | 2.8519     |  -0.016208 |    -1.1729 |
+SimpleHistos                        SUCCESS 1D profile histograms in directory "SimpleHistos" : 9
+ | ID                        |   Title                                       |    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |
+ | Expo V Gauss 1DProf       | "Expo V Gauss 1DProf"                         |   200   |  -0.093324 | 0.96907    |    -1.6998 |     5.1535 |
+ | Expo V Gauss 1DProf s     | "Expo V Gauss 1DProf s"                       |   200   |  -0.093324 | 0.96907    |    -1.6998 |     5.1535 |
+ | Gauss V Flat 1DProf       | "Gauss V Flat 1DProf"                         |   200   |    0.22419 | 5.6605     |          0 |         -3 |
+ | Gauss V Flat 1DProf S     | "Gauss V Flat 1DProf S"                       |   200   |    0.22419 | 5.6605     |          0 |         -3 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-I"          |    92   |    0.25743 | 5.4893     |   -0.22985 |     -0.952 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-I  s"       |    92   |    0.25743 | 5.4893     |   -0.22985 |     -0.952 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-II"         |   108   |    0.19587 | 5.8022     |          0 |         -3 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-II s"       |   108   |    0.19587 | 5.8022     |          0 |         -3 |
+ | varBinning/a              | "1D Profile Variable Binning"                 |   200   |  -0.065339 | 2.8519     |          0 |         -3 |
diff --git a/DaVinciTests/tests/refs/test_davinci_read_mc_mdf.ref b/DaVinciTests/tests/refs/test_davinci_read_mc_mdf.ref
index 5e7f2429ac7953efb9ed1c57df6ea72833b59dbc..04fde416f83545d16d84447b47c370cc0d5a54cb 100644
--- a/DaVinciTests/tests/refs/test_davinci_read_mc_mdf.ref
+++ b/DaVinciTests/tests/refs/test_davinci_read_mc_mdf.ref
@@ -1,4 +1,4 @@
-WARNING No jobOption file selected, the default values are used.
+INFO No MainOptions specified. DaVinci will import no options file!
 WARNING DV option file or main function not defined. No user algorithms will be used.
 /***** User DVAppOptions/DVAppOptions **************************************************************
 |-auditors               = []  (default: [])
@@ -57,217 +57,46 @@ ApplicationMgr       INFO Application Manager Configured successfully
 DetectorPersistencySvc                 INFO Added successfully Conversion service:XmlCnvSvc
 DetectorDataSvc                     SUCCESS Detector description database: git:/lhcb.xml
 EventClockSvc.FakeEventTime            INFO Event times generated from 0 with steps of 0
+HiveDataBrokerSvc                   WARNING non-reentrant algorithm: GaudiHistoAlgorithm/SimpleHistos
 ApplicationMgr                         INFO Application Manager Initialized successfully
 DeFTDetector                           INFO Current FT geometry version =   62
 ApplicationMgr                         INFO Application Manager Started successfully
 EventSelector                          INFO Stream:EventSelector.DataStreamTool_1 Def:DATAFILE='mdf:root://eoslhcb.cern.ch//eos/lhcb/wg/rta/WP2/Hlt2Throughput/minbias_filtered_1.mdf' SVC='LHCb::MDFSelector' OPT='READ' IgnoreChecksum='YES'
 EventSelector.DataStreamTool_1         INFO Compression:0 Checksum:1
 EventSelector                       SUCCESS Reading Event record 1. Record number within stream 1: 1
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
+RndmGenSvc.Engine                      INFO Generator engine type:CLHEP::RanluxEngine
+RndmGenSvc.Engine                      INFO Current Seed:1234567 Luxury:3
+RndmGenSvc                             INFO Using Random engine:HepRndm::Engine<CLHEP::RanluxEngine>
+SimpleHistos                           INFO GaudiHistoAlgorithm:: Filling Histograms...... Please be patient !
 ApplicationMgr                         INFO Application Manager Stopped successfully
-LAZY_AND: DaVinci                                               #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
- NONLAZY_OR: UserAnalysis                                       #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
-  LAZY_AND: UserAlgorithms                                      #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
-   Gaudi__Examples__VoidConsumer/Gaudi__Examples__VoidConsumer  #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+LAZY_AND: DaVinci                    #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+ NONLAZY_OR: UserAnalysis            #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+  LAZY_AND: StandardAlgs             #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+   GaudiHistoAlgorithm/SimpleHistos  #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
 ToolSvc                                INFO Removing all tools created by ToolSvc
+ChronoStatSvc.finalize()               INFO  Service finalized successfully
 ApplicationMgr                         INFO Application Manager Finalized successfully
 ApplicationMgr                         INFO Application Manager Terminated successfully
+SimpleHistos                        SUCCESS 1D histograms in directory "SimpleHistos" : 10
+ | ID                        |   Title                                       |    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |
+ | 101                       | "Exponential"                                 |   200   |     1.0375 | 0.98812    |     1.2984 |     1.1493 |
+ | 102                       | "Breit"                                       |   200   |   -0.13288 | 1.1554     |   -0.63297 |     2.5528 |
+ | 1111                      | "Forced Numeric ID time test"                 |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | AutoID time test          | "AutoID time test"                            |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | Gaussian mean=0, sigma=1  | "Gaussian mean=0, sigma=1"                    |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | poisson                   | "Poisson"                                     |   200   |     1.8125 | 1.1394     |    0.39748 |   -0.69255 |
+ | subdir1/bino              | "Binominal"                                   |   200   |     1.9442 | 1.0625     |    0.25254 |   -0.63664 |
+ | subdir2/bino              | "Binominal"                                   |   200   |     1.9442 | 1.0625     |    0.25254 |   -0.63664 |
+ | test1                     | "Forced Alpha ID time test"                   |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | varBinning/x              | "1D Variable Binning"                         |   200   |  -0.065339 | 2.8519     |  -0.016208 |    -1.1729 |
+SimpleHistos                        SUCCESS 1D profile histograms in directory "SimpleHistos" : 9
+ | ID                        |   Title                                       |    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |
+ | Expo V Gauss 1DProf       | "Expo V Gauss 1DProf"                         |   200   |  -0.093324 | 0.96907    |    -1.6998 |     5.1535 |
+ | Expo V Gauss 1DProf s     | "Expo V Gauss 1DProf s"                       |   200   |  -0.093324 | 0.96907    |    -1.6998 |     5.1535 |
+ | Gauss V Flat 1DProf       | "Gauss V Flat 1DProf"                         |   200   |    0.22419 | 5.6605     |          0 |         -3 |
+ | Gauss V Flat 1DProf S     | "Gauss V Flat 1DProf S"                       |   200   |    0.22419 | 5.6605     |          0 |         -3 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-I"          |    92   |    0.25743 | 5.4893     |   -0.22985 |     -0.952 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-I  s"       |    92   |    0.25743 | 5.4893     |   -0.22985 |     -0.952 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-II"         |   108   |    0.19587 | 5.8022     |          0 |         -3 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-II s"       |   108   |    0.19587 | 5.8022     |          0 |         -3 |
+ | varBinning/a              | "1D Profile Variable Binning"                 |   200   |  -0.065339 | 2.8519     |          0 |         -3 |
diff --git a/DaVinciTests/tests/refs/test_davinci_read_mc_xdigi.ref b/DaVinciTests/tests/refs/test_davinci_read_mc_xdigi.ref
index 9df6b4d686b144712d6b8b6e40b1164d987d4cf9..c7a78439d3a909b4ea518bf8aa43241dac3ed31e 100644
--- a/DaVinciTests/tests/refs/test_davinci_read_mc_xdigi.ref
+++ b/DaVinciTests/tests/refs/test_davinci_read_mc_xdigi.ref
@@ -1,4 +1,4 @@
-WARNING No jobOption file selected, the default values are used.
+INFO No MainOptions specified. DaVinci will import no options file!
 WARNING DV option file or main function not defined. No user algorithms will be used.
 /***** User DVAppOptions/DVAppOptions **************************************************************
 |-auditors               = []  (default: [])
@@ -57,217 +57,46 @@ ApplicationMgr       INFO Application Manager Configured successfully
 DetectorPersistencySvc                 INFO Added successfully Conversion service:XmlCnvSvc
 DetectorDataSvc                     SUCCESS Detector description database: git:/lhcb.xml
 EventClockSvc.FakeEventTime            INFO Event times generated from 0 with steps of 0
+HiveDataBrokerSvc                   WARNING non-reentrant algorithm: GaudiHistoAlgorithm/SimpleHistos
 ApplicationMgr                         INFO Application Manager Initialized successfully
 DeFTDetector                           INFO Current FT geometry version =   64
 ApplicationMgr                         INFO Application Manager Started successfully
 EventPersistencySvc                    INFO Added successfully Conversion service:RootCnvSvc
 EventSelector                          INFO Stream:EventSelector.DataStreamTool_1 Def:DATAFILE='root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/XDIGI/00091825/0000/00091825_00000002_1.xdigi' SVC='Gaudi::RootEvtSelector' OPT='READ' IgnoreChecksum='YES'
 EventSelector                       SUCCESS Reading Event record 1. Record number within stream 1: 1
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
+RndmGenSvc.Engine                      INFO Generator engine type:CLHEP::RanluxEngine
+RndmGenSvc.Engine                      INFO Current Seed:1234567 Luxury:3
+RndmGenSvc                             INFO Using Random engine:HepRndm::Engine<CLHEP::RanluxEngine>
+SimpleHistos                           INFO GaudiHistoAlgorithm:: Filling Histograms...... Please be patient !
 ApplicationMgr                         INFO Application Manager Stopped successfully
-LAZY_AND: DaVinci                                               #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
- NONLAZY_OR: UserAnalysis                                       #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
-  LAZY_AND: UserAlgorithms                                      #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
-   Gaudi__Examples__VoidConsumer/Gaudi__Examples__VoidConsumer  #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+LAZY_AND: DaVinci                    #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+ NONLAZY_OR: UserAnalysis            #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+  LAZY_AND: StandardAlgs             #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
+   GaudiHistoAlgorithm/SimpleHistos  #=200     Sum=200         Eff=|( 100.0000 +- 0.00000 )%|
 ToolSvc                                INFO Removing all tools created by ToolSvc
+ChronoStatSvc.finalize()               INFO  Service finalized successfully
 ApplicationMgr                         INFO Application Manager Finalized successfully
 ApplicationMgr                         INFO Application Manager Terminated successfully
+SimpleHistos                        SUCCESS 1D histograms in directory "SimpleHistos" : 10
+ | ID                        |   Title                                       |    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |
+ | 101                       | "Exponential"                                 |   200   |     1.0375 | 0.98812    |     1.2984 |     1.1493 |
+ | 102                       | "Breit"                                       |   200   |   -0.13288 | 1.1554     |   -0.63297 |     2.5528 |
+ | 1111                      | "Forced Numeric ID time test"                 |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | AutoID time test          | "AutoID time test"                            |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | Gaussian mean=0, sigma=1  | "Gaussian mean=0, sigma=1"                    |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | poisson                   | "Poisson"                                     |   200   |     1.8125 | 1.1394     |    0.39748 |   -0.69255 |
+ | subdir1/bino              | "Binominal"                                   |   200   |     1.9442 | 1.0625     |    0.25254 |   -0.63664 |
+ | subdir2/bino              | "Binominal"                                   |   200   |     1.9442 | 1.0625     |    0.25254 |   -0.63664 |
+ | test1                     | "Forced Alpha ID time test"                   |   200   |  -0.093324 | 0.96907    |   -0.27771 |   -0.15602 |
+ | varBinning/x              | "1D Variable Binning"                         |   200   |  -0.065339 | 2.8519     |  -0.016208 |    -1.1729 |
+SimpleHistos                        SUCCESS 1D profile histograms in directory "SimpleHistos" : 9
+ | ID                        |   Title                                       |    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |
+ | Expo V Gauss 1DProf       | "Expo V Gauss 1DProf"                         |   200   |  -0.093324 | 0.96907    |    -1.6998 |     5.1535 |
+ | Expo V Gauss 1DProf s     | "Expo V Gauss 1DProf s"                       |   200   |  -0.093324 | 0.96907    |    -1.6998 |     5.1535 |
+ | Gauss V Flat 1DProf       | "Gauss V Flat 1DProf"                         |   200   |    0.22419 | 5.6605     |          0 |         -3 |
+ | Gauss V Flat 1DProf S     | "Gauss V Flat 1DProf S"                       |   200   |    0.22419 | 5.6605     |          0 |         -3 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-I"          |    92   |    0.25743 | 5.4893     |   -0.22985 |     -0.952 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-I  s"       |    92   |    0.25743 | 5.4893     |   -0.22985 |     -0.952 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-II"         |   108   |    0.19587 | 5.8022     |          0 |         -3 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-II s"       |   108   |    0.19587 | 5.8022     |          0 |         -3 |
+ | varBinning/a              | "1D Profile Variable Binning"                 |   200   |  -0.065339 | 2.8519     |          0 |         -3 |
diff --git a/DaVinciTests/tests/refs/test_davinci_simplejob.ref b/DaVinciTests/tests/refs/test_davinci_simplejob.ref
index 017760728c7b03989d68930b630d0f6ce01282b2..2248c077fb77b7ba5d0f0988f56597f4a5df34d7 100644
--- a/DaVinciTests/tests/refs/test_davinci_simplejob.ref
+++ b/DaVinciTests/tests/refs/test_davinci_simplejob.ref
@@ -1,4 +1,4 @@
-WARNING No jobOption file selected, the default values are used.
+INFO No MainOptions specified. DaVinci will import no options file!
 WARNING DV option file or main function not defined. No user algorithms will be used.
 /***** User DVAppOptions/DVAppOptions **************************************************************
 |-auditors               = []  (default: [])
@@ -57,27 +57,46 @@ ApplicationMgr       INFO Application Manager Configured successfully
 DetectorPersistencySvc                 INFO Added successfully Conversion service:XmlCnvSvc
 DetectorDataSvc                     SUCCESS Detector description database: git:/lhcb.xml
 EventClockSvc.FakeEventTime            INFO Event times generated from 0 with steps of 0
+HiveDataBrokerSvc                   WARNING non-reentrant algorithm: GaudiHistoAlgorithm/SimpleHistos
 ApplicationMgr                         INFO Application Manager Initialized successfully
 DeFTDetector                           INFO Current FT geometry version =   63
 ApplicationMgr                         INFO Application Manager Started successfully
 EventPersistencySvc                    INFO Added successfully Conversion service:RootCnvSvc
 EventSelector                          INFO Stream:EventSelector.DataStreamTool_1 Def:DATAFILE='root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076720/0000/00076720_00000002_1.ldst' SVC='Gaudi::RootEvtSelector' OPT='READ' IgnoreChecksum='YES'
 EventSelector                       SUCCESS Reading Event record 1. Record number within stream 1: 1
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
-Gaudi__Examples__VoidConsumer          INFO executing VoidConsumer
+RndmGenSvc.Engine                      INFO Generator engine type:CLHEP::RanluxEngine
+RndmGenSvc.Engine                      INFO Current Seed:1234567 Luxury:3
+RndmGenSvc                             INFO Using Random engine:HepRndm::Engine<CLHEP::RanluxEngine>
+SimpleHistos                           INFO GaudiHistoAlgorithm:: Filling Histograms...... Please be patient !
 ApplicationMgr                         INFO Application Manager Stopped successfully
-LAZY_AND: DaVinci                                               #=10      Sum=10          Eff=|( 100.0000 +- 0.00000 )%|
- NONLAZY_OR: UserAnalysis                                       #=10      Sum=10          Eff=|( 100.0000 +- 0.00000 )%|
-  LAZY_AND: UserAlgorithms                                      #=10      Sum=10          Eff=|( 100.0000 +- 0.00000 )%|
-   Gaudi__Examples__VoidConsumer/Gaudi__Examples__VoidConsumer  #=10      Sum=10          Eff=|( 100.0000 +- 0.00000 )%|
+LAZY_AND: DaVinci                    #=10      Sum=10          Eff=|( 100.0000 +- 0.00000 )%|
+ NONLAZY_OR: UserAnalysis            #=10      Sum=10          Eff=|( 100.0000 +- 0.00000 )%|
+  LAZY_AND: StandardAlgs             #=10      Sum=10          Eff=|( 100.0000 +- 0.00000 )%|
+   GaudiHistoAlgorithm/SimpleHistos  #=10      Sum=10          Eff=|( 100.0000 +- 0.00000 )%|
 ToolSvc                                INFO Removing all tools created by ToolSvc
+ChronoStatSvc.finalize()               INFO  Service finalized successfully
 ApplicationMgr                         INFO Application Manager Finalized successfully
 ApplicationMgr                         INFO Application Manager Terminated successfully
+SimpleHistos                        SUCCESS 1D histograms in directory "SimpleHistos" : 10
+ | ID                        |   Title                                       |    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |
+ | 101                       | "Exponential"                                 |    10   |     1.4996 | 1.259      |    0.98706 |   -0.35506 |
+ | 102                       | "Breit"                                       |    10   |   0.057899 | 1.2104     |    -1.7162 |       1.96 |
+ | 1111                      | "Forced Numeric ID time test"                 |    10   |    0.62385 | 0.83435    |    0.29994 |     -1.437 |
+ | AutoID time test          | "AutoID time test"                            |    10   |    0.62385 | 0.83435    |    0.29994 |     -1.437 |
+ | Gaussian mean=0, sigma=1  | "Gaussian mean=0, sigma=1"                    |    10   |    0.62385 | 0.83435    |    0.29994 |     -1.437 |
+ | poisson                   | "Poisson"                                     |    10   |     1.3333 | 0.8165     |    0.72827 |  -0.010819 |
+ | subdir1/bino              | "Binominal"                                   |    10   |     2.2222 | 1.3147     | -0.0065855 |    -1.1662 |
+ | subdir2/bino              | "Binominal"                                   |    10   |     2.2222 | 1.3147     | -0.0065855 |    -1.1662 |
+ | test1                     | "Forced Alpha ID time test"                   |    10   |    0.62385 | 0.83435    |    0.29994 |     -1.437 |
+ | varBinning/x              | "1D Variable Binning"                         |    10   |    0.74391 | 2.9037     |   -0.54505 |   -0.53568 |
+SimpleHistos                        SUCCESS 1D profile histograms in directory "SimpleHistos" : 9
+ | ID                        |   Title                                       |    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |
+ | Expo V Gauss 1DProf       | "Expo V Gauss 1DProf"                         |    10   |    0.62385 | 0.83435    |   0.078851 |    -2.1359 |
+ | Expo V Gauss 1DProf s     | "Expo V Gauss 1DProf s"                       |    10   |    0.62385 | 0.83435    |   0.078851 |    -2.1359 |
+ | Gauss V Flat 1DProf       | "Gauss V Flat 1DProf"                         |    10   |    -2.7485 | 4.9549     |     1.8445 |   -0.57073 |
+ | Gauss V Flat 1DProf S     | "Gauss V Flat 1DProf S"                       |    10   |    -2.7485 | 4.9549     |     1.8445 |   -0.57073 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-I"          |    7    |   -0.10679 | 3.4013     |   0.032668 |    0.72593 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-I  s"       |    7    |   -0.10679 | 3.4013     |   0.032668 |    0.72593 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-II"         |    3    |    -8.9125 | 0.75156    |          0 |         -3 |
+ | Gauss V Flat 1DProf, with | "Gauss V Flat 1DProf, with limits-II s"       |    3    |    -8.9125 | 0.75156    |          0 |         -3 |
+ | varBinning/a              | "1D Profile Variable Binning"                 |    10   |    0.74391 | 2.9037     |    -1.4356 |     2.3329 |
diff --git a/DaVinciTests/tests/refs/test_davinci_sprucing.ref b/DaVinciTests/tests/refs/test_davinci_sprucing.ref
index 1a8d3cfc6a938f4f5dfebc3de959a3b5acd377fc..0fdc7887b0462bcc518c2609ac0c68cb935c205f 100644
--- a/DaVinciTests/tests/refs/test_davinci_sprucing.ref
+++ b/DaVinciTests/tests/refs/test_davinci_sprucing.ref
@@ -1,4 +1,4 @@
-INFO No MainOptions specified. DaVinci() will import no options file!
+INFO No MainOptions specified. DaVinci will import no options file!
 INFO User algorithm option_davinci_sprucing.main imported successfully!
 /***** User DVAppOptions/DVAppOptions **************************************************************
 |-auditors               = []  (default: [])
diff --git a/DaVinciTests/tests/refs/test_davinci_testfiledb.ref b/DaVinciTests/tests/refs/test_davinci_testfiledb.ref
index bd85d6f432fabe3c8aee5de88a16044da3a334bf..a8d12872e3fbf1c2637397f51f884c3b0e42722b 100644
--- a/DaVinciTests/tests/refs/test_davinci_testfiledb.ref
+++ b/DaVinciTests/tests/refs/test_davinci_testfiledb.ref
@@ -1,4 +1,4 @@
-INFO No MainOptions specified. DaVinci() will import no options file!
+INFO No MainOptions specified. DaVinci will import no options file!
 WARNING DV option file or main function not defined. No user algorithms will be used.
 /***** User DVAppOptions/DVAppOptions **************************************************************
 |-auditors               = []  (default: [])
diff --git a/DaVinciTests/tests/refs/test_davinci_tupling.ref b/DaVinciTests/tests/refs/test_davinci_tupling.ref
index 4d7b219cb7a554baadaf03767d7c93d2e02bb136..5d977be877a9de1fe4b9ba020371ced48cde0fbd 100644
--- a/DaVinciTests/tests/refs/test_davinci_tupling.ref
+++ b/DaVinciTests/tests/refs/test_davinci_tupling.ref
@@ -1,4 +1,4 @@
-INFO No MainOptions specified. DaVinci() will import no options file!
+INFO No MainOptions specified. DaVinci will import no options file!
 INFO User algorithm example-tupling-basic-run-mc.main imported successfully!
 /***** User DVAppOptions/DVAppOptions **************************************************************
 |-auditors               = []  (default: [])
diff --git a/DaVinciTests/tests/refs/test_davinci_user_algs.ref b/DaVinciTests/tests/refs/test_davinci_user_algs.ref
index 23e2a0b436299e05a437ab356b10878533fd8412..40120d2687ef638d440b62ea063b02757cc68dfd 100644
--- a/DaVinciTests/tests/refs/test_davinci_user_algs.ref
+++ b/DaVinciTests/tests/refs/test_davinci_user_algs.ref
@@ -1,4 +1,4 @@
-INFO No MainOptions specified. DaVinci() will import no options file!
+INFO No MainOptions specified. DaVinci will import no options file!
 INFO User algorithm option_davinci_user_algs.main imported successfully!
 /***** User DVAppOptions/DVAppOptions **************************************************************
 |-auditors               = []  (default: [])
diff --git a/Phys/DaVinci/CMakeLists.txt b/Phys/DaVinci/CMakeLists.txt
index 13449a165c86faba53b0328e2cd02f3d012d3f6a..30a58bd2e62b0fa15b74b3e2cd4e7d2079e745e2 100644
--- a/Phys/DaVinci/CMakeLists.txt
+++ b/Phys/DaVinci/CMakeLists.txt
@@ -14,5 +14,6 @@ Phys/DaVinci
 #]=======================================================================]
 
 gaudi_install(PYTHON)
+gaudi_generate_confuserdb(DaVinci.compat.DaVinciConf)
 
 lhcb_env(SET DAVINCIOPTS ${CMAKE_CURRENT_SOURCE_DIR}/options)
diff --git a/Phys/DaVinci/options/prod_conf/options-DaVinciConf.py b/Phys/DaVinci/options/prod_conf/options-DaVinciConf.py
new file mode 100644
index 0000000000000000000000000000000000000000..aa382fb22c906c5447bffc7f4fe6eb42bdddc3ba
--- /dev/null
+++ b/Phys/DaVinci/options/prod_conf/options-DaVinciConf.py
@@ -0,0 +1,31 @@
+###############################################################################
+# (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration           #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+"""
+Example option file that can be passed to ProdConf for the configuration of the DaVinci options.
+To be used along with Phys/DaVinci/options/prod_conf/options-ProdConf.py.
+
+After having installed the ProdConf application locally the job can be launched using the following command:
+   xenv --xml ProdConf/ProdConf.xenv ./run gaudirun.py Phys/DaVinci/options/prod_conf/options-DaVinciConf.py Phys/DaVinci/options/prod_conf/options-ProdConf.py
+"""
+from DaVinci import options
+
+options.data_type = 'Upgrade'
+options.enable_filters = False
+options.enable_unpack = False
+options.histo_file = 'DaVinci_histos.root'
+options.input_raw_format = 0.3
+options.input_type = 'ROOT'
+options.lumi = False
+options.ntuple_file = 'DaVinci_tuple.root'
+options.print_freq = 1
+options.simulation = True
+options.unpack_stream = ''
+options.user_algorithms = 'DaVinciExamples/python/DaVinciExamples/tupling/example-tupling-basic-run-mc:main'
diff --git a/Phys/DaVinci/options/prod_conf/options-ProdConf.py b/Phys/DaVinci/options/prod_conf/options-ProdConf.py
new file mode 100644
index 0000000000000000000000000000000000000000..9358bd9c07a4c10c7ae316028fc82df1ac55be92
--- /dev/null
+++ b/Phys/DaVinci/options/prod_conf/options-ProdConf.py
@@ -0,0 +1,33 @@
+###############################################################################
+# (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration           #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+"""
+Example option file that can be passed to ProdConf for the configuration of the DaVinci options.
+To be used along with Phys/DaVinci/options/prod_conf/options-DaVinciConf.py.
+
+After having installed the ProdConf application locally the job can be launched using the following command:
+   xenv --xml ProdConf/ProdConf.xenv ./run gaudirun.py Phys/DaVinci/options/prod_conf/options-DaVinciConf.py Phys/DaVinci/options/prod_conf/options-ProdConf.py
+"""
+from ProdConf import ProdConf
+
+ProdConf(
+    Application='DaVinci',
+    AppVersion='v39r1',
+    CondDBTag="sim-20171127-vc-md100",
+    DDDBTag="dddb-20171126",
+    InputFiles=[
+        'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076720/0000/00076720_00000002_1.ldst'
+    ],
+    NOfEvents=10,
+    OptionFormat='',
+    OutputFilePrefix='00076720_00000002_1',
+    OutputFileTypes=['root'],
+    XMLFileCatalog="pool_xml_catalog.xml",
+    XMLSummaryFile='DaVinci_summary.xml')
diff --git a/Phys/DaVinci/python/DaVinci/ConfigurationUpgrade.py b/Phys/DaVinci/python/DaVinci/ConfigurationUpgrade.py
index afa39d5d3873361c265c593b3c299800e4e76fee..a1dea3180821cb37a30dcfaa11ac4c04dabe2b50 100644
--- a/Phys/DaVinci/python/DaVinci/ConfigurationUpgrade.py
+++ b/Phys/DaVinci/python/DaVinci/ConfigurationUpgrade.py
@@ -14,10 +14,8 @@ High level configuration tools for DaVinci.
 from PyConf.application import ComponentConfig, configure, configure_input
 from PyConf.control_flow import CompositeNode, NodeLogic
 from DaVinci.configOptions import (check_options, set_job_options,
-                                   get_option_value, set_args_options,
-                                   set_input_file_options)
-from DaVinci.algorithms import (setup_algorithms, define_fsr_writer,
-                                setup_user_algorithms, unpack_locations)
+                                   set_args_options, set_input_file_options)
+from DaVinci.algorithms import setup_algorithms, define_fsr_writer, unpack_locations
 from DaVinci.config import davinci_control_flow, prepare_davinci_nodes
 
 
@@ -37,6 +35,8 @@ def add_davinci_configurables(options):
 
     userAlgs, publicTools = setup_algorithms(options)
 
+    check_options(options)
+
     config = configure_input(options)
     dvMainFlow[dvAnaNode] = []
     if options.enable_unpack:
@@ -74,8 +74,9 @@ def add_simple_conf(options):
     Returns:
        - ComponentConfig: Dict of configured Gaudi Configurable instances and user algorithms.
     """
-    userAlgName = get_option_value(options, 'user_algorithms')
-    userAlgs, publicTools = setup_user_algorithms(userAlgName)
+    userAlgs, publicTools = setup_algorithms(options)
+
+    check_options(options)
 
     dvNodes = prepare_davinci_nodes(userAlgs)
     top_dv_node = davinci_control_flow(options, dvNodes)
@@ -86,35 +87,41 @@ def add_simple_conf(options):
     return config
 
 
-def run_davinci(fileDB_key, fileDB_file, jobOptFile, ctx_args, simplejob):
+def run_davinci(fileDB_key="",
+                fileDB_file="",
+                jobOpt_file="",
+                ctx_args=[],
+                simple_job=False,
+                prod_conf=False):
     """
     Run DaVinci application.
 
     Args:
        - fileDB_key: key in the testfileDB.
        - fileDB_file: file with the testfileDB.
-       - jobOptFile: file containing the options to be used for running the job.
+       - jobOpt_file: file containing the options to be used for running the job.
        - ctx_args: click context containing all the extra options.
-       - simplejob: flag for running job using only the PyConf configurations.
+       - simple_job: flag for running job using only the PyConf configurations.
+       - prod_conf: flag for running DaVinci with ProdConf.
 
     Returns:
        - ComponentConfig: Dict of configured Configurable instances.
     """
     from DaVinci import options
 
-    set_input_file_options(options, fileDB_key, fileDB_file)
-    set_job_options(options, jobOptFile, fileDB_key, fileDB_file)
-
+    if fileDB_key and not prod_conf:
+        set_input_file_options(options, fileDB_key, fileDB_file)
+    if jobOpt_file:
+        set_job_options(options, jobOpt_file, fileDB_key, fileDB_file)
     if ctx_args:
         set_args_options(options, ctx_args, fileDB_key, fileDB_file)
 
-    check_options(options)
-
     config = ComponentConfig()
 
-    if simplejob:
+    if simple_job:
         config.update(add_simple_conf(options))
     else:
         config.update(add_davinci_configurables(options))
 
-    return config
+    if not prod_conf:
+        return config
diff --git a/Phys/DaVinci/python/DaVinci/algorithms.py b/Phys/DaVinci/python/DaVinci/algorithms.py
index 5576fc0489106d80ad63fa2bc45553a4b50c4b35..9f023925043616fa84c732c98a59cc9a2bca93d4 100644
--- a/Phys/DaVinci/python/DaVinci/algorithms.py
+++ b/Phys/DaVinci/python/DaVinci/algorithms.py
@@ -39,7 +39,7 @@ def setup_algorithms(options):
     else:
         log_click(
             "INFO",
-            "No MainOptions specified. DaVinci() will import no options file!")
+            "No MainOptions specified. DaVinci will import no options file!")
 
     stdAlgs = [
         GaudiHistoAlgorithm(
@@ -58,9 +58,9 @@ def setup_algorithms(options):
     else:
         userAlgs, publicTools = setup_user_algorithms(userAlgName)
         if type(userAlgs) == list:
-            dvAlgs["UserAlgorithms"] = userAlgs
-        else:
-            dvAlgs.update(userAlgs)
+            userAlgs = {"UserAlgorithms": userAlgs}
+        
+        dvAlgs.update(userAlgs)
 
     return dvAlgs, publicTools
 
@@ -118,8 +118,12 @@ def setup_user_algorithms(userAlgPath):
         publicTools = []
     else:
         # Identify the module path and the algorithm name from the user defined string
-        modulePath = userAlgPath.rsplit('/', 1)[0]
-        algName = userAlgPath.rsplit('/', 1)[1]
+        if '/' in userAlgPath:
+            modulePath = userAlgPath.rsplit('/', 1)[0]
+            algName = userAlgPath.rsplit('/', 1)[1]
+        else:
+            modulePath = "./"
+            algName = userAlgPath
 
         # Append module path to sys
         modulePath = os.path.expandvars(modulePath)
diff --git a/Phys/DaVinci/python/DaVinci/compat/DaVinciConf.py b/Phys/DaVinci/python/DaVinci/compat/DaVinciConf.py
new file mode 100644
index 0000000000000000000000000000000000000000..a797fa0b31c354450363a8a07fb81d832cab9113
--- /dev/null
+++ b/Phys/DaVinci/python/DaVinci/compat/DaVinciConf.py
@@ -0,0 +1,138 @@
+###############################################################################
+# (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration           #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+"""
+DaVinci configuration for ProdConf.
+"""
+import re
+from Gaudi.Configuration import appendPostConfigAction
+from Configurables import (LHCbApp, EventSelector, DDDBConf, CondDB,
+                           LHCbConfigurableUser, HistogramPersistencySvc)
+from DaVinci.ConfigurationUpgrade import run_davinci
+from DaVinci.configOptions import set_option_value
+from DaVinci import options
+
+from AnalysisPython.Logger import getLogger
+log = getLogger('DaVinci')
+
+
+class DaVinciConfigurationError(Exception):
+    """Exception type raised when DaVinci is not configured consistently."""
+    pass
+
+
+class DaVinci(LHCbConfigurableUser):
+
+    __used_configurables__ = [
+        LHCbApp,
+        DDDBConf,
+        CondDB,
+    ]
+
+    __slots__ = {
+        "CondDBtag": "",
+        "DDDBtag": "",
+        "EvtMax": -1,
+        "HistogramFile": "",
+        "OutputFile": "",
+    }
+
+    _propertyDocDct = {
+        "CondDBtag":
+        """ Tag for the CondDB. """,
+        "DDDBtag":
+        """ Data type, can be ["Upgrade"] Forwarded to PhysConf, AnalysisConf, DstConf and LHCbApp. """,
+        "EvtMax":
+        """ Number of events to analyse. Default = -1 to run over all events. """,
+        "HistogramFile":
+        """Name of output histogram file. Default = ''.""",
+        "OutputFile":
+        """ Name of output file. Default = ''.""",
+    }
+
+    _optNameMap = {
+        "CondDBtag": "conddb_tag",
+        "DDDBtag": "dddb_tag",
+        "EvtMax": "evt_max",
+        "HistogramFile": "histo_file",
+        "Input": "input_files",
+        "OutputFile": "ntuple_file",
+    }
+
+    def undressInputFileName(self, selector):
+        m = re.match(r"DATAFILE='([^']+)'", selector)
+        return m.group(1)
+
+    def remove_duplicates(self):
+        """Remove duplicates introduced by using both PyConf and LHCbApp"""
+        from Gaudi.Configuration import allConfigurables
+        for name, prop in (("ApplicationMgr",
+                            "ExtSvc"), ("EventPersistencySvc", "CnvServices"),
+                           ("FileRecordPersistencySvc", "CnvServices")):
+            try:
+                c = allConfigurables[name]
+                # we have a mixture of configurables and strings,
+                # so we count as duplicates the entries with the same name
+                new_items = {}
+                for element in getattr(c, prop):
+                    el_name = element.name() if hasattr(
+                        element, "name") else element.rsplit("/", 1)[-1]
+                    new_items.setdefault(el_name, element)
+                setattr(c, prop, list(new_items.values()))
+            except (AttributeError, KeyError):
+                pass
+
+    def retrieve_options(self):
+        """
+        Retrieve option values from LHCbApp().
+        """
+        for name in self._optNameMap:
+            if name in ["CondDBtag", "DDDBtag", "EvtMax"]:
+                value = LHCbApp().getProp(name)
+                self.setProp(name, value)
+            elif name == "HistogramFile":
+                if HistogramPersistencySvc().isPropertySet("OutputFile"):
+                    value = HistogramPersistencySvc().OutputFile
+                    self.setProp(name, value)
+
+    def propagate_options(self, options):
+        """
+        Propagate DaVinci properties from __slots__ to DaVinci.options.
+        """
+        for name in self._optNameMap:
+            if name == "Input":
+                inputs = [
+                    self.undressInputFileName(s) for s in EventSelector().Input
+                ]
+                set_option_value(options, self._optNameMap[name], inputs)
+            else:
+                if self.getProp(name):
+                    set_option_value(options, self._optNameMap[name],
+                                     self.getProp(name))
+
+    def run_davinci_conf(self):
+        """
+        Run the DaVinci configuration.
+        """
+        run_davinci(prod_conf=True)
+
+    def __apply_configuration__(self):
+        """
+        DaVinci configuration.
+        """
+        log.info("Applying DaVinci configuration")
+
+        self.retrieve_options()
+        log.info(self)
+
+        self.propagate_options(options)
+        self.run_davinci_conf()
+
+        appendPostConfigAction(self.remove_duplicates)
diff --git a/Phys/DaVinci/python/DaVinci/compat/__init__.py b/Phys/DaVinci/python/DaVinci/compat/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Phys/DaVinci/python/DaVinci/compat/tests/__init__.py b/Phys/DaVinci/python/DaVinci/compat/tests/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Phys/DaVinci/python/DaVinci/compat/tests/params.py b/Phys/DaVinci/python/DaVinci/compat/tests/params.py
new file mode 100644
index 0000000000000000000000000000000000000000..c20f242eaa854b82e419a80376b95ed04802cf44
--- /dev/null
+++ b/Phys/DaVinci/python/DaVinci/compat/tests/params.py
@@ -0,0 +1,28 @@
+###############################################################################
+# (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration           #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+from PRConfig.TestFileDB import test_file_db
+
+test_entry = test_file_db["Upgrade_Bd2KstarMuMu"]
+
+prod_conf_params = {
+    "Application": "DaVinci",
+    "AppVersion": "v39r1",
+    "CondDBTag": test_entry.qualifiers["CondDB"],
+    "DDDBTag": test_entry.qualifiers["DDDB"],
+    "HistogramFile": "histo.root",
+    "InputFiles": test_entry.filenames,
+    "NOfEvents": 10,
+    "OutputFilePrefix": "DaVinci",
+    "OutputFileTypes": ["ROOT"],
+    "OptionFormat": "",
+    "XMLFileCatalog": "pool_xml_catalog.xml",
+    "XMLSummaryFile": "summaryDaVinci.xml"
+}
diff --git a/Phys/DaVinci/python/DaVinci/configOptions.py b/Phys/DaVinci/python/DaVinci/configOptions.py
index dbfbc332d6f050c2cc0a6b4e80ac15b010b7d735..c347b938c05f342306eae13a02b6884851f5a684 100644
--- a/Phys/DaVinci/python/DaVinci/configOptions.py
+++ b/Phys/DaVinci/python/DaVinci/configOptions.py
@@ -182,16 +182,17 @@ def list_data_options(fileDB_key, fileDB_file):
 
     optionList = []
     qualifiers = []
-    if fileDB_file == 'TestFileDB':
-        from PRConfig.TestFileDB import test_file_db
-        qualifiers = test_file_db[fileDB_key].qualifiers
-    else:
-        with open(os.path.expandvars(fileDB_file)) as fileDB:
-            test_file_db = yaml.safe_load(fileDB)
-            qualifiers = test_file_db[fileDB_key]["qualifiers"]
+    if fileDB_key:
+        if fileDB_file == 'TestFileDB':
+            from PRConfig.TestFileDB import test_file_db
+            qualifiers = test_file_db[fileDB_key].qualifiers
+        else:
+            with open(os.path.expandvars(fileDB_file)) as fileDB:
+                test_file_db = yaml.safe_load(fileDB)
+                qualifiers = test_file_db[fileDB_key]["qualifiers"]
 
-    for prop, value in qualifiers.items():
-        optionList.append(prop)
+        for prop, value in qualifiers.items():
+            optionList.append(prop)
 
     return optionList