diff --git a/Reconstruction/RecExample/RecExOnline/README b/Reconstruction/RecExample/RecExOnline/README
new file mode 100644
index 0000000000000000000000000000000000000000..355b380a067f3d35b4aaa3d6e9338b840d4a558a
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/README
@@ -0,0 +1,4 @@
+## For instructions, see:
+https://twiki.cern.ch/twiki/bin/view/Atlas/OnlineReconstruction
+## mailing list:
+atlas-p1-onlinereconstruction@cern.ch
diff --git a/Reconstruction/RecExample/RecExOnline/cmt/requirements b/Reconstruction/RecExample/RecExOnline/cmt/requirements
new file mode 100644
index 0000000000000000000000000000000000000000..9b9cbe631cd62a2e4ce77105a1f97c3005f47f1a
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/cmt/requirements
@@ -0,0 +1,10 @@
+package			RecExOnline
+
+author			Max Baak <max.baak@cern.ch>
+author			Sebastian Boeser <sboeser@hep.ucl.ac.uk>
+
+use			AtlasPolicy		AtlasPolicy-* 
+
+apply_pattern		declare_scripts		files="../scripts/*.sh" 
+apply_pattern		declare_joboptions	files="*.py"
+apply_pattern		declare_python_modules	files="*.py"
diff --git a/Reconstruction/RecExample/RecExOnline/python/OnlineISConfiguration.py b/Reconstruction/RecExample/RecExOnline/python/OnlineISConfiguration.py
new file mode 100644
index 0000000000000000000000000000000000000000..543d8b5f68d1d30fbf9552cc53f566163b498cc9
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/python/OnlineISConfiguration.py
@@ -0,0 +1,102 @@
+# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+
+def GetRunType():
+  """Get the run type by reading the run-type setting in the partition from IS """
+
+  #Get a logger so we can show formated messages
+  from AthenaCommon.Logging import logging
+  mlog = logging.getLogger('RecExOnline')
+
+  #Try to get the partition name
+  try:
+    import os
+    partition = os.environ['TDAQ_PARTITION']
+    if partition == "EventDisplays":
+      partition = "ATLAS"
+  except KeyError:
+    partition = "ATLAS"
+    mlog.warning("TDAQ_PARTITION not defined in environment, using %s as default" % partition)
+
+  #now try and read the information from IS
+  try:
+    from ipc import IPCPartition
+    from ispy import ISObject
+    ipcPart = IPCPartition(partition);
+    if not ipcPart.isValid():
+      raise UserWarning("Partition %s invalid - cannot access run type settings" % partition);
+    runparams = ISObject(ipcPart, 'RunParams.RunParams', 'RunParams')
+    runparams.checkout()
+    beamEnergy = runparams.beam_energy
+    projectTag = runparams.T0_project_tag
+  except UserWarning, err:
+    mlog.error(err)
+    beamEnergy = None
+    projectTag = None
+
+  mlog.info("Setting project tag to %s" % projectTag)
+  return (None, beamEnergy, projectTag) # the BeamType in the IS RunParams is not useful for auto-configuration
+
+def GetBFields():
+  #Get a logger so we can show formated messages
+  from AthenaCommon.Logging import logging
+  mlog = logging.getLogger('RecExOnline')
+
+  #BFields are read from initial partition
+  partition = 'initial'
+  mlog.debug("Trying to read magnetic field configuration from partition %s" % partition)
+
+  #now try and read the information from IS
+  try:
+    from ipc import IPCPartition
+    from ispy import ISObject
+    ipcPart = IPCPartition(partition);
+    if not ipcPart.isValid():
+      raise UserWarning("Partition %s invalid - cannot access magnetic field setting" % partition);
+    #Get the current and valid status
+    #     torCurrent = ISObject(ipcPart, 'DCS_GENERAL.MagnetToroidsCurrent.value', 'DdcFloatInfo')
+    #     solCurrent = ISObject(ipcPart, 'DCS_GENERAL.MagnetSolenoidCurrent.value', 'DdcFloatInfo')
+    #     torInvalid = ISObject(ipcPart, 'DCS_GENERAL.MagnetToroidsCurrent.invalid', 'DdcIntInfo')
+    #     solInvalid = ISObject(ipcPart, 'DCS_GENERAL.MagnetSolenoidCurrent.invalid', 'DdcIntInfo')
+    #     torCurrent.checkout()
+    #     solCurrent.checkout()
+    #     torInvalid.checkout()
+    #     solInvalid.checkout()
+    
+    # AL playing around: start
+    torCurrent   = ispy.ISInfoDynAny(ipcPart, 'DdcFloatInfo')
+    solCurrent   = ispy.ISInfoDynAny(ipcPart, 'DdcFloatInfo')
+    torInvalid   = ispy.ISInfoDynAny(ipcPart, 'DdcIntInfo')
+    solInvalid   = ispy.ISInfoDynAny(ipcPart, 'DdcIntInfo')
+    
+    torInvalid.value=1
+    solInvalid.value=1
+    # AL playing around: end
+    
+    mlog.info("toroidCurrent = %f", torCurrent.value)
+    mlog.info("toroidInvalid = %f", torInvalid.value)
+    mlog.info("solenoidCurrent = %f", solCurrent.value)
+    mlog.info("solenoidInvalid = %f", solInvalid.value)
+    
+    
+    #And calculate the flags
+    solOn = ((solCurrent.value > 1000.) and (solInvalid.value == 0))
+    torOn = ((torCurrent.value > 1000.) and (torInvalid.value == 0))
+  except UserWarning, err:
+    mlog.error(err)
+    #Should always be able to access initial parititon
+    mlog.fatal("Failed to read magnetic field configuration from IS, aborting")
+    import sys
+    sys.exit(1)
+
+  #print the result
+  mlog.info("Magnetic field in solenoid is %s" % ((solOn and "ON") or "OFF"))
+  mlog.info("Magnetic field in toroid is %s"   % ((torOn and "ON") or "OFF"))
+
+  #finally return our values
+  return (solCurrent, torCurrent)
+
+if __name__ == "__main__":
+  runType = GetRunType()
+  print "(BeamType, BeamEnergy, ProjectTag): ", runType
+  bFields = GetBFields()
+  print "(SolCurrent, TorCurrent):", (bFields[0].value, bFields[1].value)
diff --git a/Reconstruction/RecExample/RecExOnline/python/__init__.py b/Reconstruction/RecExample/RecExOnline/python/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..74583d364ec2ca794156596c7254d9b234a940c6
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/python/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+
diff --git a/Reconstruction/RecExample/RecExOnline/python/ros_farm.py b/Reconstruction/RecExample/RecExOnline/python/ros_farm.py
new file mode 100644
index 0000000000000000000000000000000000000000..5f108ea361c88a4bce890659b3c4b3e827b048e3
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/python/ros_farm.py
@@ -0,0 +1,23 @@
+#!/usr/bin/env tdaq_python
+
+# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# vim: set fileencoding=utf-8 :
+# Created by Andre Anjos <andre.dos.anjos@cern.ch>
+# Wed 19 Sep 2007 11:54:23 AM CEST 
+
+"""This is an example of the ROS farm configuration on ATLAS Point 1.
+"""
+
+import pm.multinode
+import pm.farm
+
+# We prefer to randomly split the available ROSs using a particular rob
+# list. These lists can be generated on-the-fly, using the EventApps bindings
+# to scan datafiles, or if you prefer, just import the output of
+# rosconf-from-data.py --py. We prefer that later because it is faster.
+from robhit import robhit
+ros_farm = pm.multinode.ros_farm_random(robhit,[pm.farm.local_computer()])
+
+# if you want to pretty print in the end and to verify this module is
+# actually loadable, uncomment the following line
+# print pm.multinode.prettyprint(ros_farm)
diff --git a/Reconstruction/RecExample/RecExOnline/scripts/athena_job.sh b/Reconstruction/RecExample/RecExOnline/scripts/athena_job.sh
new file mode 100755
index 0000000000000000000000000000000000000000..165007be2cf6c59bee1f41acb25e602667ce6b84
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/scripts/athena_job.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+export PATH="/usr/bin:/bin"
+echo "#### Starting Athena job ######################################################"
+echo
+date "+%a %F, %T %z (%Z)"
+echo "$(whoami)@$(hostname):$(pwd)\$" "$0" "$@"
+"${0%/*}/athena_job_delay.sh"
+echo
+echo "#### Input file and additional command-line tags for AtlasSetup ###############"
+echo
+echo "ATHENA_JOB_SETUP=${ATHENA_JOB_SETUP:-(none)}"
+echo "ATHENA_JOB_TAGS=${ATHENA_JOB_TAGS:-(none)}"
+if test -z "${ATHENA_JOB_SETUP}" -a -z "${ATHENA_JOB_TAGS}" ; then echo "Neither ATHENA_JOB_SETUP nor ATHENA_JOB_TAGS is defined. Exiting." ; exit 1 ; fi
+if test -n "${ATHENA_JOB_SETUP}" ; then
+    if test ! -f "${ATHENA_JOB_SETUP}" ; then echo "ATHENA_JOB_SETUP is defined, but the file could not be found. Exiting." ; exit 1 ; fi
+    echo
+    echo "Contents of AtlasSetup input file ${ATHENA_JOB_SETUP}:"
+    echo "==== snip ====================================================================="
+    cat "${ATHENA_JOB_SETUP}"
+    echo "==== snap ====================================================================="
+fi
+echo
+echo "#### Environment before AtlasSetup ############################################"
+echo
+env | sort
+echo
+echo "#### Running AtlasSetup #######################################################"
+echo
+export AtlasSetup="/sw/atlas/AtlasSetup"
+echo   source "${AtlasSetup}/scripts/asetup.sh" "${ATHENA_JOB_SETUP:+--input}" "${ATHENA_JOB_SETUP}" "${ATHENA_JOB_TAGS}"
+echo ; source "${AtlasSetup}/scripts/asetup.sh" "${ATHENA_JOB_SETUP:+--input}" "${ATHENA_JOB_SETUP}" "${ATHENA_JOB_TAGS}"
+if test "$?" -ne 0 ; then echo "AtlasSetup failed. Exiting." ; exit 1 ; fi
+echo "Done."
+echo
+echo "#### Environment after AtlasSetup #############################################"
+echo
+env | sort        
+echo
+echo "#### Executing Athena #########################################################"
+echo
+echo "$(which athena.py)" "$@"
+echo
+athena.py "$@" &
+trap "
+    kill -TERM $! 2> /dev/null && echo 'Sending Athena the TERM signal ...'
+    sleep 3
+    kill -KILL $! 2> /dev/null && echo 'Sending Athena the KILL signal ...'
+    TRAPPED=1
+" HUP INT TERM
+wait $!
+STATUS=$?
+trap - HUP INT TERM
+if test -n "${TRAPPED}" ; then exit 0 ; fi
+if test "${STATUS}" -gt 128 ; then kill -$((STATUS-128)) $$ ; fi
+exit "${STATUS}"
diff --git a/Reconstruction/RecExample/RecExOnline/scripts/athena_job_delay.sh b/Reconstruction/RecExample/RecExOnline/scripts/athena_job_delay.sh
new file mode 100755
index 0000000000000000000000000000000000000000..bfbf58e8fc791ba64168d61abd21b3aec481c067
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/scripts/athena_job_delay.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# TDAQ_APPLICATION_NAME is the name of your application as it appears in the Run Control tree.
+# For simple applications it is identical to the object ID in the OKS configuration.
+# For template applications it corresponds to "object_id:parent_segment:host:instance_number".
+# If TDAQ_APPLICATION_NAME is undefined the current job is probably just a stand-alone test.
+#
+# The string matching supports glob patterns (shell wildcards), but not regular expressions.
+
+if test -z "${TDAQ_APPLICATION_NAME}" ; then echo "TDAQ_APPLICATION_NAME is undefined. Not sleeping." ; exit 0 ; fi
+
+DELAY=5   # Default: let PMG finish its work first, then rush for AtlasSetup and everything else.
+
+case "${TDAQ_APPLICATION_NAME}" in
+    GM-Application:*:1 )        DELAY=5 ;;
+    GM-Application:*:2 )        DELAY=180 ;;
+    GM-Application:*:3 )        DELAY=360 ;;
+    GM-Application:*:4 )        DELAY=540 ;;
+    GM-Application:*:5 )        DELAY=720 ;;
+    GM-Application:*:6 )        DELAY=900 ;;
+    GM-Application:*:7 )        DELAY=1080 ;;
+
+    TRT-Monitoring-Noise )      DELAY=5 ;;
+    TRT-Monitoring-Beam )       DELAY=5 ;;
+    TRT-Monitoring-01 )         DELAY=120 ;;
+    TRT-Monitoring-02 )         DELAY=120 ;;
+    TRT-Monitoring-03 )         DELAY=240 ;;
+    TRT-Monitoring-04 )         DELAY=240 ;;
+    TRT-Monitoring-05 )         DELAY=360 ;;
+    TRT-Monitoring-06 )         DELAY=360 ;;
+esac
+
+echo -n "Sleeping for ${DELAY} seconds ..."
+sleep "${DELAY}" && echo " Done."
diff --git a/Reconstruction/RecExample/RecExOnline/scripts/build_partition.sh b/Reconstruction/RecExample/RecExOnline/scripts/build_partition.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7d54112a5cd54ad23d106d16a8c9f32c6d18889f
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/scripts/build_partition.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+if [ $# -ne 2 ] ; then
+    echo "Usage: ${0##*/} PARTITION DATAFILE" 1>&2
+    exit 1
+fi
+if [ ! -f "$2" ] ; then
+    echo "${0##*/}: ${2}: No such file" 1>&2
+    exit 1
+fi
+
+PARTITION="$1"
+DATAFILE="$2"
+
+# Generate ROB list (only needed when data file changes)
+if [ "${DATAFILE}" -nt robhit.py ] ; then
+    rosconf-from-data.py -p "${DATAFILE}" > robhit.py
+fi
+
+# Generate monitoring segment
+export PYTHONPATH=".:${PYTHONPATH}"
+#pm_part_l2ef.py -p "${PARTITION}" --data="['${DATAFILE}']" --ros-farm=RecExOnline.ros_farm --pts-per-efd=1 --l2pus-per-node=1
+# pm_part_l2ef is outdated and can be replaced by 
+pm_part_hlt.py -p "${PARTITION}" --data="['${DATAFILE}']" --ros-farm=RecExOnline.ros_farm 
+
+# Run this script once for each new tdaq release.
+# You can then start the partition with
+# setup_daq -p "${PARTITION}" -d "${PARTITION}.data.xml"
diff --git a/Reconstruction/RecExample/RecExOnline/share/GlobalMonitoring.py b/Reconstruction/RecExample/RecExOnline/share/GlobalMonitoring.py
new file mode 100644
index 0000000000000000000000000000000000000000..a23e66c4c23d6c2e2248a1269aabd537b1d489ec
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/GlobalMonitoring.py
@@ -0,0 +1,111 @@
+## -- Overview of all default local settings that one can change 
+## -- The default values are also shown.
+
+## ------------------------------------------- flags set in: RecExOnline_jobOptions.py  
+isOnline          = True
+isOnlineStateless = True
+
+#for the time being, running over file is not possible ONLINE (please see RecExOnline_File_Offline.py) 
+useEmon           = True
+## KeyCount value in the EMON service defined as 1-byte, i.e. the maximum allowed value is 255. 
+keycount          = 250
+buffersize        = 10
+updateperiod      = 200
+# timeout is in ms
+timeout           = 600000
+#keyname           = 'efd'   #AK: 21-05-2014
+keyname           = 'dcm'
+
+import os
+
+#streamName        = os.environ.get("GLOBAL_STREAM_NAME")  #AK: 21-05-2014
+#streamLogic       = os.environ.get("GLOBAL_STREAM_LOGIC")  #AK: 21-05-2014
+partitionName     = os.environ.get("TDAQ_PARTITION", "ATLAS")
+publishNumber     = os.environ.get("GLOBAL_JOB_NUMBER", "1")
+publishName       = os.environ.get("TDAQ_APPLICATION_NAME", "GlobalMonitoring")
+
+print publishName
+isserverName = 'Histogramming-Global-iss'  # Ak: 26-05-2014 - needed to write out the gathere hsitograms to the correct server
+
+#import time
+#myfloat = float(publishNumber)
+#tosleep = myfloat*5
+#time.sleep(tosleep)
+
+import commands
+pids=commands.getoutput("/sbin/pidof -o %u python" % os.getpid()).split(" ")
+print "pids",pids
+
+for pid in pids:
+  print "pid",pid
+  #if (False):
+  #if (1):
+  if (0):
+    print "pid = ",pid
+    #thisnumber=commands.getoutput("grep GLOBAL_JOB_NUMBER /proc/%u/fd/1 -m 1 | cut -f2 -d'='" % int(pid))
+    thisname=commands.getoutput("grep TDAQ_APPLICATION_NAME /proc/%u/fd/1 -m 1 | cut -f2 -d'='" % int(pid))
+    print "thisname = ",thisname
+    print "publishName = ",publishName
+    if (thisname == publishName):
+      print "found a match! Will Kill pid = ",pid
+      killreturn = commands.getoutput("kill %u" % int(pid))
+
+
+useAtlantisEmon   = False
+evtMax            = -1
+
+## ------------------------------------------- flags set in: RecExOnline_emonsvc.py (from RecExOnline_jobOptions.py)                    
+
+isGlobalMonitoring = True
+
+## ------------------------------------------- flags set in: RecExOnline_globalconfig.py  (from RecExOnline_jobOptions.py)
+#read the pickle file if you want to use the AMI tag info
+#stored in ami_recotrf.pickle (produced by 'tct_getAmiTag.py f140 ami_recotrf.cmdargs ami_recotrf.pickle') 
+usePickleConfig   = False
+pickleconfigfile  = './ami_recotrf.pickle'
+DataSource        = 'data'
+InputFormat       = 'bytestream'
+fileName          = './0.data'
+#beamType          = 'cosmics'  #AK: 21-05-2014
+beamType          = 'collisions'  #AK: 21-05-2014
+
+#COND tag and GEO are needed for running over a test partition online
+ConditionsTag     = 'COMCOND-HLTP-004-01'
+DetDescrVersion   = 'ATLAS-GEO-20-00-01'
+
+doESD             = True
+writeESD          = False
+doAOD             = False
+writeAOD          = False
+IOVDbSvcMessage   = False
+
+abortonuncheckedstatuscode = False
+
+## ------------------------------------------ flags set in: RecExOnline_recoflags.py (from RecExOnline_jobOptions.py)
+doAllReco   = True
+doInDet     = doAllReco
+doMuon      = doAllReco
+doLArg      = doAllReco
+doTile      = doAllReco
+doTrigger   = False
+doHist      = doAllReco
+doJiveXML   = False
+doEgammaTau = doAllReco
+
+#set to True in the JO
+#doCommissioning = False
+
+## ------------------------------------------ flags set in : RecExOnline_monitoring.py (from from RecExOnline_jobOptions.py)
+doAllMon  = True
+doCaloMon = doAllMon
+doPhysMon = doAllMon
+doTrigMon = False
+doIDMon   = doAllMon
+doTRTMon  = doAllMon
+doMuonMon = doAllMon
+doCTPMon  = False #doAllMon #AK: 25-01-2014
+
+## ------------------------------------------ flags set in : RecExOnline_postconfig.py    (called from RecExOnline_jobOptions.py)
+
+## main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online.py
new file mode 100644
index 0000000000000000000000000000000000000000..b6c249aaa89b573114f9f8dbfcfa192735bba395
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online.py
@@ -0,0 +1,78 @@
+## -- Overview of all default local settings that one can change 
+## -- The default values are also shown.
+
+## ------------------------------------------- flags set in: RecExOnline_jobOptions.py  
+isOnline          = True
+isOnlineStateless = True
+
+#for the time being, running over file is not possible ONLINE (please see RecExOnline_File_Offline.py) 
+
+useEmon           = True
+keycount          = 250
+buffersize        = 10
+updateperiod      = 200
+timeout           = 600000
+keyname           = 'CompleteEvent'
+# keyname           = 'SFI'
+#streamName        ='CosmicCalo_physics'
+streamName        ='express_express'
+
+useAtlantisEmon   = False
+evtMax            = 500
+
+## ------------------------------------------- flags set in: RecExOnline_emonsvc.py (from RecExOnline_jobOptions.py)                    
+import os
+partitionName   = os.environ.get("TDAQ_PARTITION", "TestDataProvider_TCT")
+
+publishName     = 'GM_test_18.1.2.1'
+isserverName    = 'Histogramming'
+
+## ------------------------------------------- flags set in: RecExOnline_globalconfig.py  (from RecExOnline_jobOptions.py)
+#read the pickle file if you want to use the AMI tag info
+#stored in ami_recotrf.pickle (produced by 'tct_getAmiTag.py f140 ami_recotrf.cmdargs ami_recotrf.pickle') 
+usePickleConfig   = False
+pickleconfigfile  = './ami_recotrf.pickle'
+DataSource        = 'data'
+InputFormat       = 'bytestream'
+fileName          = './0.data'
+
+#COND tag and GEO are needed for running over a test partition or against ATLAS cosmics, calib
+ConditionsTag     = 'COMCOND-HLTP-004-03'
+DetDescrVersion   = 'ATLAS-GEO-20-00-01'
+beamType = 'collisions'
+
+doESD             = True
+writeESD          = False
+doAOD             = False
+writeAOD          = False
+IOVDbSvcMessage   = False
+
+abortonuncheckedstatuscode = False
+
+## ------------------------------------------ flags set in: RecExOnline_recoflags.py (from RecExOnline_jobOptions.py)
+doAllReco   = True
+doInDet     = doAllReco
+doMuon      = doAllReco
+doLArg      = doAllReco
+doTile      = doAllReco
+doTrigger   = False
+doHist      = doAllReco
+doJiveXML   = False
+doEgammaTau = doAllReco
+
+#set to True in the JO
+#doCommissioning = False
+
+## ------------------------------------------ flags set in : RecExOnline_monitoring.py (from from RecExOnline_jobOptions.py)
+doAllMon  = True
+doCaloMon = doAllMon
+doPhysMon = doAllMon
+doTrigMon = False
+doIDMon   = doAllMon
+doTRTMon  = doAllMon
+doMuonMon = doAllMon
+
+## ------------------------------------------ flags set in : RecExOnline_postconfig.py    (called from RecExOnline_jobOptions.py)
+
+## main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_ID.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_ID.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff0dc62644a6d27e8ec68bc39fd4f0bf86272c8a
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_ID.py
@@ -0,0 +1,76 @@
+## -- Overview of all default local settings that one can change 
+## -- The default values are also shown.
+
+## ------------------------------------------- flags set in: RecExOnline_jobOptions.py  
+isOnline          = True
+isOnlineStateless = True
+
+#for the time being, running over file is not possible ONLINE (please see RecExOnline_File_Offline.py)
+useEmon           = True
+keycount          = 10
+buffersize        = 10
+updateperiod      = 200
+timeout           = 240000
+keyname           = 'SFI'
+streamName        = 'L1Calo'
+streamLogic       = 'Ignore'
+
+useAtlantisEmon   = False
+evtMax            = 500
+
+## ------------------------------------------- flags set in: RecExOnline_emonsvc.py (from RecExOnline_jobOptions.py)                    
+import os
+partitionName = os.environ.get("TDAQ_PARTITION", "TestDataProvider_TCT")
+
+publishName     = 'Global_PT'
+isserverName    = 'Histogramming'
+
+## ------------------------------------------- flags set in: RecExOnline_globalconfig.py  (from RecExOnline_jobOptions.py)
+#read the pickle file if you want to use the AMI tag info
+#stored in ami_recotrf.pickle (produced by 'tct_getAmiTag.py f140 ami_recotrf.cmdargs ami_recotrf.pickle') 
+usePickleConfig   = False
+pickleconfigfile  = './ami_recotrf.pickle'
+DataSource        = 'data'
+InputFormat       = 'bytestream'
+#fileName         = './0.data'
+
+#COND tag and GEO are needed for running over a test partition or against ATLAS cosmics, calib
+ConditionsTag     = 'COMCOND-HLTP-004-01'
+DetDescrVersion   = 'ATLAS-GEO-20-00-01'
+beamType = 'collisions'
+
+doESD             = True
+writeESD          = True
+doAOD             = False
+writeAOD          = False
+IOVDbSvcMessage   = False
+
+abortonuncheckedstatuscode = False
+
+## ------------------------------------------ flags set in: RecExOnline_recoflags.py (from RecExOnline_jobOptions.py)
+doAllReco   = False
+doInDet     = True
+doMuon      = doAllReco
+doLArg      = doAllReco
+doTile      = doAllReco
+doTrigger   = False
+doHist      = doAllReco
+doJiveXML   = False
+doEgammaTau = doAllReco
+
+#set to True in the JO
+#doCommissioning = False
+
+## ------------------------------------------ flags set in : RecExOnline_monitoring.py (from from RecExOnline_jobOptions.py)
+doAllMon  = False
+doCaloMon = doAllMon
+doPhysMon = doAllMon
+doTrigMon = False
+doIDMon   = True
+doTRTMon  = doAllMon
+doMuonMon = doAllMon
+
+## ------------------------------------------ flags set in : RecExOnline_postconfig.py    (called from RecExOnline_jobOptions.py)
+
+## main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_L1Calo.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_L1Calo.py
new file mode 100644
index 0000000000000000000000000000000000000000..0a476f65f858d0a6e5be25fdfff6fa1150851c2e
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_L1Calo.py
@@ -0,0 +1,244 @@
+## Job options for Running the L1Calo Athena Online Monitoring
+## A few notes:
+## At the moment one needs to edit the RecExOnline_monitoring.py 
+##    and define the doLVL1CaloMon variable and replace doTrigMon
+##    in the statement:
+##       DQMonFlags.useTrigger(doTrigMon)
+##       DQMonFlags.doLVL1CaloMon(doTrigMon)
+##    with doLVL1CaloMon. Then add doLVL1CaloMon to
+##    the 'orMon' list.
+## I think that is all you need. Cheers, Taylor
+
+
+# used by RecExOnline to setup Emon Service
+useEmon           = True
+
+
+##################
+## -- flags set in: RecExOnline_emonsvc.py (from RecExOnline_jobOptions.py)
+
+import os
+
+# set partition name (default is ATLAS)
+partitionName = os.getenv("TDAQ_PARTITION","ATLAS")
+
+# set name of this publisher as it will appear in IS
+publishName       = "l1calo-athenaPT"
+
+# name of the stream type (physics,express, etc.)
+streamType = os.getenv("L1CALO_PTIO_STREAM_TYPE","physics")
+
+# name of the stream (Egamma,JetTauEtmiss,MinBias,Standby, etc.)
+# this can be a colon(:) separated list of streams that use
+# the 'streamLogic' to combine
+# stream for 2011 HI run: HardProbes
+streamName = os.getenv("L1CALO_PTIO_STREAM_NAME","Egamma:JetTauEtmiss:MinBias:Muons:HardProbes")
+
+# logic used to combine multiple streams
+# can be set to 'Ignore' which means the stream selection isn't used
+streamLogic = os.getenv("L1CALO_PTIO_STREAM_LOGIC","Or")
+if(partitionName == "L1CaloStandalone"):
+   streamLogic = "Ignore"
+
+# name of L1 items to select
+# can be colon(:) separated list of L1 items
+lvl1Name          = ''
+
+# logic used to combined multiple L1 items
+# can be set to 'Ignore' which means the L1 selection isn't used
+lvl1Logic         = 'Ignore'
+
+# set the Sampler Key Type name (default is SFI)
+if ( not os.environ.get("L1CALO_PTIO_KEY") ):
+  if( partitionName == "L1CaloStandalone" ):
+    keyname = 'REB'
+  else:
+    keyname = 'SFI'
+else:
+  keyname = os.environ.get("L1CALO_PTIO_KEY")
+
+# set the Sampler count (default is 15)
+keycount = int(os.environ.get("L1CALO_PTIO_KEY_COUNT","25"))
+
+# event buffer size for each sampler
+buffersize        = 10
+
+# time in seconds between updating plots
+updateperiod      = 30
+
+# timeout (not sure what this does)
+timeout           = 240000
+
+# IS server onwhich to create this provider
+isserverName    = 'Histogramming'
+
+# this is not the global monitoring
+isGlobalMonitoring = False
+
+
+
+
+
+############
+## -- flags set in: RecExOnline_globalconfig.py  (from RecExOnline_jobOptions.py)
+
+#read the pickle file if you want to use the AMI tag info
+#stored in ami_recotrf.pickle (produced by 'tct_getAmiTag.py f140 ami_recotrf.cmdargs ami_recotrf.pickle') 
+#usePickleConfig   = False
+#pickleconfigfile  = './ami_recotrf.pickle'
+#DataSource        = 'data'
+#InputFormat       = 'bytestream'
+#fileName         = './0.data'
+#doESD             = True
+#writeESD          = False
+#doAOD             = False
+#writeAOD          = False
+isOnlineStateless = True
+beamType = 'collisions' # default: 'cosmics'
+#is_T0_project_tag = 'cos010'
+
+#COND tag and GEO are needed for running over a test partition or against ATLAS cosmics, calib
+#ConditionsTag     = 'COMCOND-HLTP-004-01'
+#DetDescrVersion   = 'ATLAS-GEO-20-00-01'
+
+#doPixelOnlyMon   = False
+
+# unlimit max number of events
+evtMax            = -1
+
+###########
+## -- flags set in: RecExOnline_recoflags.py (from RecExOnline_jobOptions.py)
+doAllReco   = False
+# following set to default values from JOs
+#doInDet     = doAllReco
+#doMuon      = doAllReco
+#doLArg      = doAllReco
+#doTile      = doAllReco
+#doLucid     = False
+#doHist      = True
+#doJiveXML   = False
+#doEgammaTau = doAllReco
+
+#doCommissioning = False
+#abortonuncheckedstatuscode = False
+
+# Found that this must be true for REB runs but not for SFI
+if (partitionName == "L1CaloStandalone"):
+   doTrigger = True #Default: False
+else:
+   doTrigger = False
+
+
+################
+## -- flags set in: RecExOnline_monitoring.py (from RecExOnline_jobOptions.py)
+
+# don't need all the monitoring enabled just for L1Calo
+doAllMon  = False
+#doCaloMon = doAllMon
+#doPhysMon = doAllMon
+#doIDMon   = doAllMon
+#doPixelOnlyMon = False
+#doSCTMon  = doAllMon
+#doMuonMon = doAllMon
+#doTRTMon  = doAllMon
+#doTrigMon = doAllMon
+doLVL1CaloMon = True
+#doHLTMon  = doTrigMon
+#doCTPMon  = doTrigMon
+#doLucidMon= doAllMon
+isOnline  = True
+
+
+
+
+
+## main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
+
+
+print ' '
+print '-------------------------------------------------------------'
+print '|     RecExOnline_globalconfig settings'
+print '| usePickleConfig    = ',usePickleConfig
+print '| DataSource         = ',DataSource
+print '| InputFormat        = ',InputFormat
+print '| fileName           = ',fileName
+#print '| doESD              = ',doESD
+print '| writeESD           = ',writeESD
+#print '| doAOD              = ',doAOD
+print '| writeAOD           = ',writeAOD
+print '| isOnlineStateless  = ',isOnlineStateless
+print '| beamType           = ',beamType
+print '| is_T0_project_tag  = ',is_T0_project_tag
+print '| ConditionsTag      = ',ConditionsTag
+#print '| DetDescrVersion    = ',DetDescrVersion
+print '| doPixelOnlyMon     = ',doPixelOnlyMon
+print '| evtMax             = ',evtMax
+print '-------------------------------------------------------------'
+print '|     RecExOnline_recoflags settings'
+print '| doAllReco          = ',doAllReco
+print '| doInDet            = ',doInDet
+print '| doMuon             = ',doMuon
+print '| doLArg             = ',doLArg
+print '| doTile             = ',doTile
+print '| doLucid            = ',doLucid
+#print '| doTrigger          = ',doTrigger
+#print '| doHist             = ',doHist
+#print '| doJiveXML          = ',doJiveXML
+print '| doEgammaTau        = ',doEgammaTau
+print '| doCommissioning    = ',doCommissioning
+print '| abortonuncheckedstatuscode = ',abortonuncheckedstatuscode
+print '-------------------------------------------------------------'
+print '|     RecExOnline_monitoring settings'
+print '| doAllMon           = ',doAllMon
+print '| doCaloMon          = ',doCaloMon
+print '| doPhysMon          = ',doPhysMon
+print '| doHLTMon           = ',doHLTMon
+print '| doLVL1CaloMon      = ',doLVL1CaloMon
+print '| doCTPMon           = ',doCTPMon
+print '| doIDMon            = ',doIDMon
+print '| doPixelOnlyMon     = ',doPixelOnlyMon
+print '| doSCTMon           = ',doSCTMon
+print '| doMuonMon          = ',doMuonMon
+print '| doTRTMon           = ',doTRTMon
+print '| doLucidMon         = ',doLucidMon
+print '| isOnline           = ',isOnline
+print '-------------------------------------------------------------'
+print '|     RecExOnline: emonsvc settings'
+print '| partitionName      = ',partitionName
+print '| publishName        = ',publishName
+print '| streamNames        = ',streamName
+print '| streamType         = ',streamType
+print '| streamLogic        = ',streamLogic
+print '| lvl1Name           = ',lvl1Name
+print '| lvl1Logic          = ',lvl1Logic
+print '| keyname            = ',keyname
+print '| keycount           = ',keycount
+print '| buffersize         = ',buffersize
+print '| updateperiod       = ',updateperiod
+print '| timeout            = ',timeout
+print '| isserverName       = ',isserverName
+print '| isGlobalMonitoring = ',isGlobalMonitoring
+print '--------------------------------------------------------------'
+
+
+
+
+
+# added for testing purposes
+# need to for the run number in the test data partitions
+if (partitionName.find("L1CaloStandalone") >= 0) or (partitionName.find("Test_dataProvider") >= 0) :
+   print "L1Calo Monitoring is overriding the run number and lumiblock number."
+   svcMgr.IOVDbSvc.forceRunNumber=182519
+   svcMgr.IOVDbSvc.forceLumiblockNumber=1
+   print "L1Calo Monitoring set run to ",svcMgr.IOVDbSvc.forceRunNumber,"and lumi block to",svcMgr.IOVDbSvc.forceLumiblockNumber
+
+from TriggerJobOpts.TriggerFlags import TriggerFlags as tf
+tf.configForStartup = "HLTonline"
+from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter
+cfg = TriggerConfigGetter()
+if rec.doLArg and rec.doTile:
+  from AthenaCommon.AlgSequence import AlgSequence
+  TTjob = AlgSequence()
+  TTjob.TriggerTowerMaker.LVL1ConfigSvc = "Trig::TrigConfigSvc/TrigConfigSvc"
+   
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_L1Calo_Cosmics.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_L1Calo_Cosmics.py
new file mode 100644
index 0000000000000000000000000000000000000000..2625393dcb22d6fac70e945016fd6fe75c64fbdb
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_L1Calo_Cosmics.py
@@ -0,0 +1,244 @@
+## Job options for Running the L1Calo Athena Online Monitoring
+## A few notes:
+## At the moment one needs to edit the RecExOnline_monitoring.py 
+##    and define the doLVL1CaloMon variable and replace doTrigMon
+##    in the statement:
+##       DQMonFlags.useTrigger(doTrigMon)
+##       DQMonFlags.doLVL1CaloMon(doTrigMon)
+##    with doLVL1CaloMon. Then add doLVL1CaloMon to
+##    the 'orMon' list.
+## I think that is all you need. Cheers, Taylor
+
+
+# used by RecExOnline to setup Emon Service
+useEmon           = True
+
+
+##################
+## -- flags set in: RecExOnline_emonsvc.py (from RecExOnline_jobOptions.py)
+
+import os
+
+# set partition name (default is ATLAS)
+partitionName = os.getenv("TDAQ_PARTITION","ATLAS")
+
+# set name of this publisher as it will appear in IS
+publishName       = "l1calo-athenaPT-cosmics"
+
+# name of the stream type (physics,express, etc.)
+streamType = os.getenv("L1CALO_PTIO_STREAM_TYPE","physics")
+
+# name of the stream (Egamma,JetTauEtmiss,MinBias,Standby, etc.)
+# this can be a colon(:) separated list of streams that use
+# the 'streamLogic' to combine
+streamName = os.getenv("L1CALO_PTIO_STREAM_NAME","CosmicCalo")
+
+# logic used to combine multiple streams
+# can be set to 'Ignore' which means the stream selection isn't used
+streamLogic = os.getenv("L1CALO_PTIO_STREAM_LOGIC","Or")
+if(partitionName == "L1CaloStandalone"):
+   streamLogic = "Ignore"
+
+# name of L1 items to select
+# can be colon(:) separated list of L1 items
+lvl1Name          = ''
+
+# logic used to combined multiple L1 items
+# can be set to 'Ignore' which means the L1 selection isn't used
+lvl1Logic         = 'Ignore'
+
+# set the Sampler Key Type name (default is SFI)
+if ( not os.environ.get("L1CALO_PTIO_KEY") ):
+  if( partitionName == "L1CaloStandalone" ):
+    keyname = 'REB'
+  else:
+    keyname = 'SFI'
+else:
+  keyname = os.environ.get("L1CALO_PTIO_KEY")
+
+# set the Sampler count (default is 25)
+keycount = int(os.environ.get("L1CALO_PTIO_KEY_COUNT","25"))
+
+# event buffer size for each sampler
+buffersize        = 10
+
+# time in seconds between updating plots
+updateperiod      = 30
+
+# timeout (not sure what this does)
+timeout           = 240000
+
+# IS server onwhich to create this provider
+isserverName    = 'Histogramming'
+
+# this is not the global monitoring
+isGlobalMonitoring = False
+
+
+
+
+
+############
+## -- flags set in: RecExOnline_globalconfig.py  (from RecExOnline_jobOptions.py)
+
+#read the pickle file if you want to use the AMI tag info
+#stored in ami_recotrf.pickle (produced by 'tct_getAmiTag.py f140 ami_recotrf.cmdargs ami_recotrf.pickle') 
+#usePickleConfig   = False
+#pickleconfigfile  = './ami_recotrf.pickle'
+#DataSource        = 'data'
+#InputFormat       = 'bytestream'
+#fileName         = './0.data'
+#doESD             = True
+#writeESD          = False
+#doAOD             = False
+#writeAOD          = False
+isOnlineStateless = True
+beamType = 'collisions' # default: 'cosmics'
+#is_T0_project_tag = 'cos010'
+
+#COND tag and GEO are needed for running over a test partition or against ATLAS cosmics, calib
+#ConditionsTag     = 'COMCOND-HLTP-004-01'
+#DetDescrVersion   = 'ATLAS-GEO-20-00-01'
+
+#doPixelOnlyMon   = False
+
+# unlimit max number of events
+evtMax            = -1
+
+###########
+## -- flags set in: RecExOnline_recoflags.py (from RecExOnline_jobOptions.py)
+doAllReco   = False
+# following set to default values from JOs
+#doInDet     = doAllReco
+#doMuon      = doAllReco
+#doLArg      = doAllReco
+#doTile      = doAllReco
+#doLucid     = False
+#doHist      = True
+#doJiveXML   = False
+#doEgammaTau = doAllReco
+
+#doCommissioning = False
+#abortonuncheckedstatuscode = False
+
+# Found that this must be true for REB runs but not for SFI
+if (partitionName == "L1CaloStandalone"):
+   doTrigger = True #Default: False
+else:
+   doTrigger = False
+
+
+################
+## -- flags set in: RecExOnline_monitoring.py (from RecExOnline_jobOptions.py)
+
+# don't need all the monitoring enabled just for L1Calo
+doAllMon  = False
+#doCaloMon = doAllMon
+#doPhysMon = doAllMon
+#doIDMon   = doAllMon
+#doPixelOnlyMon = False
+#doSCTMon  = doAllMon
+#doMuonMon = doAllMon
+#doTRTMon  = doAllMon
+#doTrigMon = doAllMon
+doLVL1CaloMon = True
+#doHLTMon  = doTrigMon
+#doCTPMon  = doTrigMon
+#doLucidMon= doAllMon
+isOnline  = True
+
+
+
+
+
+## main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
+
+
+print ' '
+print '-------------------------------------------------------------'
+print '|     RecExOnline_globalconfig settings'
+print '| usePickleConfig    = ',usePickleConfig
+print '| DataSource         = ',DataSource
+print '| InputFormat        = ',InputFormat
+print '| fileName           = ',fileName
+#print '| doESD              = ',doESD
+print '| writeESD           = ',writeESD
+#print '| doAOD              = ',doAOD
+print '| writeAOD           = ',writeAOD
+print '| isOnlineStateless  = ',isOnlineStateless
+print '| beamType           = ',beamType
+print '| is_T0_project_tag  = ',is_T0_project_tag
+print '| ConditionsTag      = ',ConditionsTag
+#print '| DetDescrVersion    = ',DetDescrVersion
+print '| doPixelOnlyMon     = ',doPixelOnlyMon
+print '| evtMax             = ',evtMax
+print '-------------------------------------------------------------'
+print '|     RecExOnline_recoflags settings'
+print '| doAllReco          = ',doAllReco
+print '| doInDet            = ',doInDet
+print '| doMuon             = ',doMuon
+print '| doLArg             = ',doLArg
+print '| doTile             = ',doTile
+print '| doLucid            = ',doLucid
+#print '| doTrigger          = ',doTrigger
+#print '| doHist             = ',doHist
+#print '| doJiveXML          = ',doJiveXML
+print '| doEgammaTau        = ',doEgammaTau
+print '| doCommissioning    = ',doCommissioning
+print '| abortonuncheckedstatuscode = ',abortonuncheckedstatuscode
+print '-------------------------------------------------------------'
+print '|     RecExOnline_monitoring settings'
+print '| doAllMon           = ',doAllMon
+print '| doCaloMon          = ',doCaloMon
+print '| doPhysMon          = ',doPhysMon
+print '| doHLTMon           = ',doHLTMon
+print '| doLVL1CaloMon      = ',doLVL1CaloMon
+print '| doCTPMon           = ',doCTPMon
+print '| doIDMon            = ',doIDMon
+print '| doPixelOnlyMon     = ',doPixelOnlyMon
+print '| doSCTMon           = ',doSCTMon
+print '| doMuonMon          = ',doMuonMon
+print '| doTRTMon           = ',doTRTMon
+print '| doLucidMon         = ',doLucidMon
+print '| isOnline           = ',isOnline
+print '-------------------------------------------------------------'
+print '|     RecExOnline: emonsvc settings'
+print '| partitionName      = ',partitionName
+print '| publishName        = ',publishName
+print '| streamNames        = ',streamName
+print '| streamType         = ',streamType
+print '| streamLogic        = ',streamLogic
+print '| lvl1Name           = ',lvl1Name
+print '| lvl1Logic          = ',lvl1Logic
+print '| keyname            = ',keyname
+print '| keycount           = ',keycount
+print '| buffersize         = ',buffersize
+print '| updateperiod       = ',updateperiod
+print '| timeout            = ',timeout
+print '| isserverName       = ',isserverName
+print '| isGlobalMonitoring = ',isGlobalMonitoring
+print '--------------------------------------------------------------'
+
+
+
+
+
+# added for testing purposes
+# need to for the run number in the test data partitions
+#if (partitionName.find("L1CaloStandalone") >= 0) or (partitionName.find("Test_dataProvider") >= 0) :
+#   print "L1Calo Monitoring is overriding the run number and lumiblock number."
+#   svcMgr.IOVDbSvc.forceRunNumber=182519
+#   svcMgr.IOVDbSvc.forceLumiblockNumber=1
+#   print "L1Calo Monitoring set run to ",svcMgr.IOVDbSvc.forceRunNumber,"and lumi block to",svcMgr.IOVDbSvc.forceLumiblockNumber
+
+
+from TriggerJobOpts.TriggerFlags import TriggerFlags as tf
+tf.configForStartup = "HLTonline"
+from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter
+cfg = TriggerConfigGetter()
+if rec.doLArg and rec.doTile:
+  from AthenaCommon.AlgSequence import AlgSequence
+  TTjob = AlgSequence()
+  TTjob.TriggerTowerMaker.LVL1ConfigSvc = "Trig::TrigConfigSvc/TrigConfigSvc"
+   
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_Pix.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_Pix.py
new file mode 100644
index 0000000000000000000000000000000000000000..ab69e6117d05c0fd01c90657d0971456782cf946
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_Pix.py
@@ -0,0 +1,83 @@
+
+## -- Overview of all default local settings that one can change 
+## -- The default values are also shown.
+
+## ------------------------------------------- flags set in: RecExOnline_jobOptions.py  
+isOnline          = True
+isOnlineStateless = True
+
+#for the time being, running over file is not possible ONLINE (please see RecExOnline_File_Offline.py) 
+useEmon           = True
+keyname           = 'efd'
+keycount          = 255
+buffersize        = 10
+updateperiod      = 200
+timeout           = 240000
+streamLogic       = 'Or'
+#streamName        = 'bulk'
+streamName = 'L1Calo:MinBias:L1MinBias:Egamma:JetTauEtmiss:Muons:CosmicCalo:CosmicMuons'
+useAtlantisEmon   = False
+evtMax            = -1
+
+## ------------------------------------------- flags set in: RecExOnline_emonsvc.py (from RecExOnline_jobOptions.py)                    
+import os
+partitionName = os.environ.get("TDAQ_PARTITION", "ATLAS")
+
+publishName     = 'PixelPT'
+#isserverName    = 'Histogramming-Pixel'
+if (partitionName=='TestDataProvider_TCT'):
+    isserverName    = 'Histogramming'
+else:
+    isserverName    = 'Histogramming-Pixel'
+
+## ------------------------------------------- flags set in: RecExOnline_globalconfig.py  (from RecExOnline_jobOptions.py)
+#read the pickle file if you want to use the AMI tag info
+#stored in ami_recotrf.pickle (produced by 'tct_getAmiTag.py f140 ami_recotrf.cmdargs ami_recotrf.pickle') 
+usePickleConfig   = False
+pickleconfigfile  = './ami_recotrf.pickle'
+DataSource        = 'data'
+InputFormat       = 'bytestream'
+fileName          = './0.data'
+
+#COND tag and GEO are needed for running over a test partition or against ATLAS cosmics, calib
+ConditionsTag     = 'COMCOND-HLTP-004-01'
+DetDescrVersion   = 'ATLAS-GEO-20-00-01'
+
+doESD             = True
+writeESD          = False
+doAOD             = False
+writeAOD          = False
+IOVDbSvcMessage   = False
+
+abortonuncheckedstatuscode = False
+
+## ------------------------------------------ flags set in: RecExOnline_recoflags.py (from RecExOnline_jobOptions.py)
+doAllReco   = False
+doInDet     = True
+doMuon      = False
+doLArg      = False
+doTile      = False
+doTrigger   = False
+doHist      = False
+doJiveXML   = False
+doEgammaTau = False
+
+#set to True in the JO
+#doCommissioning = False
+
+## ------------------------------------------ flags set in : RecExOnline_monitoring.py (from from RecExOnline_jobOptions.py)
+doAllMon  = False
+doPixelOnlyMon = True
+doCaloMon = False
+doPhysMon = False
+doTrigMon = False
+doIDMon   = False
+doTRTMon  = False
+doSCTMon  = False
+doMuonMon = False
+doLucidMon = False
+## ------------------------------------------ flags set in : RecExOnline_postconfig.py    (called from RecExOnline_jobOptions.py)
+
+## main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
+
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_SCT.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_SCT.py
new file mode 100644
index 0000000000000000000000000000000000000000..158adedeb4af65e3fe6b80328c6fd81e84080f7d
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_SCT.py
@@ -0,0 +1,93 @@
+
+## -- Overview of all default local settings that one can change 
+## -- The default values are also shown.
+
+## ------------------------------------------- flags set in: RecExOnline_jobOptions.py  
+isOnline          = True
+isOnlineStateless = True
+
+#for the time being, running over file is not possible ONLINE (please see RecExOnline_File_Offline.py)
+useEmon           = True
+keycount          = 10
+buffersize        = 10
+updateperiod      = 50
+timeout           = 240000
+streamName        = 'L1Calo'
+streamLogic       = 'Ignore'
+
+useAtlantisEmon   = False
+evtMax            = -1
+
+## ------------------------------------------- flags set in: RecExOnline_emonsvc.py (from RecExOnline_jobOptions.py)
+## SCT Options
+import os
+partitionName = os.environ.get("TDAQ_PARTITION", "TestDataProvider_TCT")
+isserverName = 'Histogramming-SCT-iss'
+
+publishNumber = os.environ.get("JOB_NUMBER", "1")
+streamName = os.environ.get("STREAM_NAME")
+
+if ( publishNumber == 'WarmStart' ):
+  publishName = "SCT-"+publishNumber
+  publishTimeout = 3600000
+else:
+  publishName = "SCT-PT-"+publishNumber
+#  streamName = 'MinBias'
+  streamName = 'CosmicCalo:CosmicCaloEM:L1Calo:L1CaloEM:MinBias:MuonswBeam:RNDM'
+#  streamName = 'MinBias'
+
+print publishName
+print 'Hi. the streamName = '
+print streamName
+
+## ------------------------------------------- flags set in: RecExOnline_globalconfig.py  (from RecExOnline_jobOptions.py)
+#read the pickle file if you want to use the AMI tag info
+#stored in ami_recotrf.pickle (produced by 'tct_getAmiTag.py f140 ami_recotrf.cmdargs ami_recotrf.pickle') 
+usePickleConfig   = False
+pickleconfigfile  = './ami_recotrf.pickle'
+DataSource        = 'data'
+InputFormat       = 'bytestream'
+#fileName         = './0.data'
+
+#COND tag and GEO are needed for running over a test partition or against ATLAS cosmics, calib
+ConditionsTag     = 'COMCOND-HLTP-004-01'
+DetDescrVersion   = 'ATLAS-GEO-20-00-01'
+beamType = 'collisions'
+
+doESD             = True
+writeESD          = False
+doAOD             = False
+writeAOD          = False
+IOVDbSvcMessage   = False
+
+abortonuncheckedstatuscode = False
+
+## ------------------------------------------ flags set in: RecExOnline_recoflags.py (from RecExOnline_jobOptions.py)
+doAllReco   = False
+doInDet     = True
+doMuon      = doAllReco
+doLArg      = doAllReco
+doTile      = doAllReco
+doTrigger   = False
+doHist      = doAllReco
+doJiveXML   = False
+doEgammaTau = doAllReco
+
+#set to True in the JO
+#doCommissioning = False
+
+## ------------------------------------------ flags set in : RecExOnline_monitoring.py (from from RecExOnline_jobOptions.py)
+doAllMon  = False
+doCaloMon = doAllMon
+doPhysMon = doAllMon
+doTrigMon = False
+doIDMon   = False
+doSCTMon  = True
+doTRTMon  = doAllMon
+doMuonMon = doAllMon
+
+## ------------------------------------------ flags set in : RecExOnline_postconfig.py    (called from RecExOnline_jobOptions.py)
+
+## main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
+
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_TRT.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_TRT.py
new file mode 100644
index 0000000000000000000000000000000000000000..5b27aaa67242c6be6ff673f6ba4b01c88a8d2a70
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_Partition_Online_TRT.py
@@ -0,0 +1,117 @@
+## ------------------------------------------ flags for RecExOnline_jobOptions.py
+fileName        = None
+
+## ------------------------------------------ flags for RecExOnline_globalconfig.py
+ConditionsTag   = 'COMCOND-HLTP-004-01'
+DetDescrVersion = 'ATLAS-GEO-20-00-01'
+beamType        = 'collisions'
+
+doESD           = True
+writeESD        = False
+doAOD           = False
+writeAOD        = False
+IOVDbSvcMessage = False
+
+## ------------------------------------------ flags for RecExOnline_recoflags.py
+doAllReco       = False
+doInDet         = True
+doMuon          = doAllReco
+doLArg          = doAllReco
+doTile          = doAllReco
+doTrigger       = False
+doHist          = False
+doJiveXML       = False
+doEgammaTau     = False
+
+## ------------------------------------------ flags for RecExOnline_monitoring.py
+doAllMon        = False
+doTRTMon        = True
+doCaloMon       = doAllMon
+doPhysMon       = doAllMon
+doTrigMon       = doAllMon
+doIDMon         = doAllMon
+doMuonMon       = doAllMon
+
+## ------------------------------------------ flags for RecExOnline_postconfig.py
+isOnline        = True
+useEmon         = True
+evtMax          = -1
+
+## ------------------------------------------ TRT-specific flags
+import os
+partitionName   = os.environ.get('TDAQ_PARTITION', 'ATLAS')
+jobName         = os.environ.get('TDAQ_APPLICATION_NAME', 'TRT-Monitoring-Extra')
+
+publishName     = jobName
+isserverName    = 'Histogramming-TRT'
+keyname         = 'efd'
+keycount        = 12
+updateperiod    = 30
+timeout         = 3600000
+
+# --- Event selection for proton-proton collisions - this is the default
+if (jobName == 'TRT-Monitoring-01'):
+    streamLogic = 'Or'
+    streamName  = 'Egamma'
+if (jobName == 'TRT-Monitoring-02'):
+    streamLogic = 'Or'
+    streamName  = 'Egamma'
+if (jobName == 'TRT-Monitoring-03'):
+    streamLogic = 'Or'
+    streamName  = 'Muons'
+if (jobName == 'TRT-Monitoring-04'):
+    streamLogic = 'Or'
+    streamName  = 'Muons'
+if (jobName == 'TRT-Monitoring-05'):
+    streamLogic = 'Or'
+    streamName  = 'JetTauEtmiss'
+if (jobName == 'TRT-Monitoring-06'):
+    streamLogic = 'Or'
+    streamName  = 'JetTauEtmiss'
+
+# --- Event selection for cosmics - override the per-job settings manually
+if False:                       # it would be nice if this could be set automatically
+    keycount    = 48            # listen to more EFDs because of the low rate
+    streamLogic = 'Or'          # enable stream-based event selection
+    streamName  = 'IDCosmic'    # probably better for us than CosmicCalo or CosmicMuons
+
+# --- Trigger selection for noise monitoring
+if (jobName == 'TRT-Monitoring-Noise'):
+    keyname     = 'SFI'         # take the events straight from L2 - the IDMonitoring stream does not go through the Event Filter, anyway
+    keycount    = 255           # there are only around 100 SFIs - connect to all of them
+    dispersion  = False         # process the same events as other monitoring jobs with the same event selection
+    streamLogic = 'Or'
+    streamName  = 'IDMonitoring' # avoid PixelNoise and SCTNoise, because those streams contain mostly partial events without TRT data
+    lvl1Logic   = 'Or'
+    lvl1Name    = 'L1_RD0_EMPTY'
+
+# --- Trigger selection for beam monitoring
+if (jobName == 'TRT-Monitoring-Beam'):
+    keyname     = 'SFI'         # take the events straight from L2 - the IDMonitoring stream does not go through the Event Filter, anyway
+    keycount    = 255           # there are only around 100 SFIs - connect to all of them
+    dispersion  = False         # process the same events as other monitoring jobs with the same event selection
+    streamLogic = 'Or'
+    streamName  = 'IDMonitoring' # avoid PixelNoise and SCTNoise, because those streams contain mostly partial events without TRT data
+    lvl1Logic   = 'Or'
+    lvl1Name    = 'L1_RD0_FILLED'
+    doBeamMon   = True          # use the special monitoring tool InDetMonitoringTRT_Beam.py in InDetMonitoring.py
+    doESD       = False         # switch off any reconstruction to gain some speed, we only need raw data here
+
+# --- Special settings for the stand-alone test partition
+if (jobName.startswith('TRT-Monitoring-Test')):
+    isserverName = 'Histogramming' # the test partition uses the default IS Server
+    keyname     = 'SFI'         # the test partition does not have an Event Filter
+    streamLogic = 'Ignore'      # take all events from the test partition
+    lvl1Logic   = 'Ignore'      # take all events from the test partition
+
+# --- Special settings for independent running on the command line
+if (jobName == 'TRT-Monitoring-Extra'):
+    streamLogic = 'Or'
+    streamName  = 'Egamma'      # default selection for stand-alone test jobs
+
+### two lines copied from RecExCommission/RecExCommission.py and uncommented
+from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags
+TrkDetFlags.TRT_BuildStrawLayers.set_Value(True) # needed for proper efficiency determination during online monitoring
+
+### main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Offline.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Offline.py
new file mode 100644
index 0000000000000000000000000000000000000000..eef15c218ae90e7090eae4eb00df14a31b9f969c
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Offline.py
@@ -0,0 +1,60 @@
+
+## -- Overview of all default local settings that one can change 
+## -- The default values are also shown.
+
+## ------------------------------------------- flags set in: RecExOnline_jobOptions.py  
+isOnline          = False
+isOnlineStateless = False
+
+## ------------------------------------------- flags set in: RecExOnline_monitoring.py  
+isGlobalMonitoring = False
+
+#eMon can only be used ONLINE (please see RecExOnline_Partition_Online.py)
+useEmon           = False
+useAtlantisEmon   = False
+evtMax            = 10 #100
+
+## ------------------------------------------- flags set in: RecExOnline_globalconfig.py  (from RecExOnline_jobOptions.py)
+#read the pickle file if you want to use the AMI tag info
+#stored in ami_recotrf.pickle (produced by 'tct_getAmiTag.py f140 ami_recotrf.cmdargs ami_recotrf.pickle') 
+usePickleConfig   = False
+pickleconfigfile  = './ami_recotrf.pickle'
+DataSource        = 'data'
+InputFormat       = 'bytestream'
+#fileName          = '/afs/cern.ch/user/k/koutsman/OnlineNightly/data/data12_8TeV.00208931.express_express.daq.RAW._lb0123._SFO-9._0001.data'
+fileName          = 'root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/tct/rec_input/00204416/express_express/data12_8TeV.00204416.express_express.merge.RAW._lb0015._SFO-ALL._0001.1'
+
+doESD             = True
+writeESD          = False
+doAOD             = False
+writeAOD          = False
+IOVDbSvcMessage   = False
+
+## ------------------------------------------ flags set in: RecExOnline_recoflags.py (from RecExOnline_jobOptions.py)
+doAllReco   = True
+doInDet     = doAllReco
+doMuon      = doAllReco
+doLArg      = doAllReco
+doTile      = doAllReco
+doTrigger   = False
+doHist      = doAllReco
+doJiveXML   = False
+doEgammaTau = doAllReco
+
+#set to True in the JO
+#doCommissionig = False
+
+## ------------------------------------------ flags set in : RecExOnline_monitoring.py (from from RecExOnline_jobOptions.py)
+doAllMon  = True
+doCaloMon = doAllMon
+doPhysMon = doAllMon
+doTrigMon = False
+doIDMon   = doAllMon
+doTRTMon  = doAllMon
+doMuonMon = doAllMon
+
+## ------------------------------------------ flags set in : RecExOnline_postconfig.py    (called from RecExOnline_jobOptions.py)
+
+## main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
+
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Offline_AMI.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Offline_AMI.py
new file mode 100644
index 0000000000000000000000000000000000000000..982fa0118ef392af3568724d6e117b8538b89620
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Offline_AMI.py
@@ -0,0 +1,56 @@
+
+## -- Overview of all default local settings that one can change 
+## -- The default values are also shown.
+
+## ------------------------------------------- flags set in: RecExOnline_jobOptions.py  
+isOnline          = False
+isOnlineStateless = False
+
+#eMon can only be used ONLINE (please see RecExOnline_Partition_Online.py)
+useEmon           = False
+useAtlantisEmon   = False
+evtMax            = 100
+
+## ------------------------------------------- flags set in: RecExOnline_globalconfig.py  (from RecExOnline_jobOptions.py)
+#read the pickle file if you want to use the AMI tag info
+#stored in ami_recotrf.pickle (produced by 'tct_getAmiTag.py f140 ami_recotrf.cmdargs ami_recotrf.pickle') 
+usePickleConfig   = True
+pickleconfigfile  = './ami_recotrf.pickle'
+DataSource        = 'data'
+InputFormat       = 'bytestream'
+fileName          = '/afs/cern.ch/atlas/offline/external/FullChainTest/tier0/rtt/OnlineRecoTests/data09_900GeV.00141749.physics_MinBias.merge.RAW._lb0022._0001.1'
+
+doESD             = True
+writeESD          = False
+doAOD             = False
+writeAOD          = False
+IOVDbSvcMessage   = False
+
+## ------------------------------------------ flags set in: RecExOnline_recoflags.py (from RecExOnline_jobOptions.py)
+doAllReco   = True
+doInDet     = doAllReco
+doMuon      = doAllReco
+doLArg      = doAllReco
+doTile      = doAllReco
+doTrigger   = False
+doHist      = doAllReco
+doJiveXML   = False
+doEgammaTau = doAllReco
+
+#set to True in the JO
+#doCommissionig = False
+
+## ------------------------------------------ flags set in : RecExOnline_monitoring.py (from from RecExOnline_jobOptions.py)
+doAllMon  = True
+doCaloMon = doAllMon
+doPhysMon = doAllMon
+doTrigMon = False
+doIDMon   = doAllMon
+doTRTMon  = doAllMon
+doMuonMon = doAllMon
+
+## ------------------------------------------ flags set in : RecExOnline_postconfig.py    (called from RecExOnline_jobOptions.py)
+
+## main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
+
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Offline_isOnlineTrue.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Offline_isOnlineTrue.py
new file mode 100644
index 0000000000000000000000000000000000000000..22f7036f5d4497cfd02c5595d940cfe9e9315ecb
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Offline_isOnlineTrue.py
@@ -0,0 +1,83 @@
+
+## -- Overview of all default local settings that one can change 
+## -- The default values are also shown.
+
+## ------------------------------------------- flags set in: RecExOnline_jobOptions.py  
+isOnline          = True
+isOnlineStateless = False
+
+## ------------------------------------------- flags set in: RecExOnline_monitoring.py  
+isGlobalMonitoring = False
+
+#eMon can only be used ONLINE (please see RecExOnline_Partition_Online.py)
+useEmon           = False
+useAtlantisEmon   = False
+evtMax            = 10 #100
+
+keycount          = 250
+buffersize        = 10
+updateperiod      = 200
+timeout           = 600000
+keyname           = 'SFI'
+#streamName        ='CosmicCalo_physics'
+streamName        ='express_express'
+
+
+#COND tag and GEO are needed for running over a test partition or against ATLAS cosmics, calib
+ConditionsTag     = 'COMCOND-HLTP-004-03'  # was -01
+DetDescrVersion   = 'ATLAS-GEO-20-00-01'
+if (not 'beamType' in dir()):
+    beamType = 'collisions'
+
+## ------------------------------------------- flags set in: RecExOnline_globalconfig.py  (from RecExOnline_jobOptions.py)
+#read the pickle file if you want to use the AMI tag info
+#stored in ami_recotrf.pickle (produced by 'tct_getAmiTag.py f140 ami_recotrf.cmdargs ami_recotrf.pickle') 
+usePickleConfig   = False
+pickleconfigfile  = './ami_recotrf.pickle'
+DataSource        = 'data'
+InputFormat       = 'bytestream'
+#fileName          = '/afs/cern.ch/user/k/koutsman/OnlineNightly/data/data12_8TeV.00208931.express_express.daq.RAW._lb0123._SFO-9._0001.data'
+fileName          = 'root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/tct/rec_input/00204416/express_express/data12_8TeV.00204416.express_express.merge.RAW._lb0015._SFO-ALL._0001.1'
+
+# update for comsics
+if beamType == 'cosmics':
+    fileName          = '/afs/cern.ch/atlas/offline/test/data11_cos.00182609.physics_CosmicCalo.merge.RAW._lb0100._SFO-ALL._0001.1.SFO-ALL._0001.1.10evts.data '
+    streamName        ='CosmicCalo_physics'
+    
+doESD             = True
+writeESD          = False
+doAOD             = False
+writeAOD          = False
+IOVDbSvcMessage   = False
+
+## ------------------------------------------ flags set in: RecExOnline_recoflags.py (from RecExOnline_jobOptions.py)
+doAllReco   = True
+doInDet     = doAllReco
+doMuon      = doAllReco
+doLArg      = doAllReco
+doTile      = doAllReco
+doTrigger   = False
+doHist      = doAllReco
+doJiveXML   = False
+doEgammaTau = doAllReco
+
+#set to True in the JO
+#doCommissionig = False
+
+## ------------------------------------------ flags set in : RecExOnline_monitoring.py (from from RecExOnline_jobOptions.py)
+doAllMon  = True
+doCaloMon = doAllMon
+doPhysMon = doAllMon
+doTrigMon = False
+doIDMon   = doAllMon
+doTRTMon  = doAllMon
+doMuonMon = doAllMon
+#doPixelOnlyMon = False
+
+## ------------------------------------------ flags set in : RecExOnline_postconfig.py    (called from RecExOnline_jobOptions.py)
+
+
+## main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
+
+
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Online.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Online.py
new file mode 100644
index 0000000000000000000000000000000000000000..8a291af19de05e2538abfa6119e477d3938f485a
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_User_Online.py
@@ -0,0 +1,74 @@
+## -- Overview of all default local settings that one can change 
+## -- The default values are also shown.
+
+## ------------------------------------------- flags set in: RecExOnline_jobOptions.py  
+isOnline          = True
+isOnlineStateless = True
+
+#for the time being, running over file is not possible ONLINE (please see RecExOnline_File_Offline.py) 
+useEmon           = True
+keycount          = 10
+buffersize        = 10
+updateperiod      = 200
+timeout           = 240000
+keyname           = 'SFI'
+streamName        = 'L1Calo'
+streamLogic       = 'Ignore'
+
+useAtlantisEmon   = False
+evtMax            = -1
+
+## ------------------------------------------- flags set in: RecExOnline_emonsvc.py (from RecExOnline_jobOptions.py)                    
+partitionName   = 'TestDataProvider'
+publishName     = 'A1_Global_Test'
+isserverName    = 'Histogramming'
+
+## ------------------------------------------- flags set in: RecExOnline_globalconfig.py  (from RecExOnline_jobOptions.py)
+#read the pickle file if you want to use the AMI tag info
+#stored in ami_recotrf.pickle (produced by 'tct_getAmiTag.py f140 ami_recotrf.cmdargs ami_recotrf.pickle') 
+usePickleConfig   = False
+pickleconfigfile  = './ami_recotrf.pickle'
+DataSource        = 'data'
+InputFormat       = 'bytestream'
+fileName          = './0.data'
+beamType          = 'collisions'
+
+#COND tag and GEO are needed for running over a test partition online
+ConditionsTag     = 'COMCOND-HLTP-004-01'
+DetDescrVersion   = 'ATLAS-GEO-20-00-01'
+
+doESD             = True
+writeESD          = False
+doAOD             = False
+writeAOD          = False
+IOVDbSvcMessage   = False
+
+abortonuncheckedstatuscode = False
+
+## ------------------------------------------ flags set in: RecExOnline_recoflags.py (from RecExOnline_jobOptions.py)
+doAllReco   = True
+doInDet     = doAllReco
+doMuon      = doAllReco
+doLArg      = doAllReco
+doTile      = doAllReco
+doTrigger   = False
+doHist      = doAllReco
+doJiveXML   = False
+doEgammaTau = doAllReco
+
+#set to True in the JO
+#doCommissioning = False
+
+## ------------------------------------------ flags set in : RecExOnline_monitoring.py (from from RecExOnline_jobOptions.py)
+doAllMon  = True
+doCaloMon = doAllMon
+doPhysMon = doAllMon
+doTrigMon = False
+doIDMon   = doAllMon
+doTRTMon  = doAllMon
+doMuonMon = doAllMon
+
+## ------------------------------------------ flags set in : RecExOnline_postconfig.py    (called from RecExOnline_jobOptions.py)
+
+## main online reco scripts
+include ("RecExOnline/RecExOnline_jobOptions.py")
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_emonsvc.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_emonsvc.py
new file mode 100644
index 0000000000000000000000000000000000000000..fab3854bb05e0c4c77846a8c0b3ee8ee7054f9a2
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_emonsvc.py
@@ -0,0 +1,189 @@
+########################################
+#
+# Example setup for ByteStreamEmonSvc
+# 
+#########################################
+
+## -------------------------------------------------------------------
+## list of local flags
+
+if ('partitionName' not in dir() or partitionName is None):
+    partitionName = 'ATLAS'
+
+if ('publishName' not in dir() or publishName is None):
+    publishName = 'Global_PT'
+
+if ('streamType' not in dir() or streamType is None):
+    streamType = 'physics'
+
+if ('streamName' not in dir() or streamName is None):
+    streamName = 'Egamma:Muons'
+
+if ('streamLogic' not in dir() or streamLogic is None):
+    streamLogic = 'Ignore'
+
+if ('lvl1Name' not in dir() or lvl1Name is None):
+    lvl1Name = 'L1_MU2:L1_MU3:L1_EM10'
+
+if ('lvl1Logic' not in dir() or lvl1Logic is None):
+    lvl1Logic = 'Ignore'
+
+if ('keyname' not in dir()):
+    keyname = 'SFI'
+
+if ('keycount' not in dir()):
+    keycount = 10
+
+if ('buffersize' not in dir()):
+    buffersize = 10
+
+if ('updateperiod' not in dir()):
+    updateperiod = 200
+
+if ('timeout' not in dir()):
+    timeout = 240000
+
+if ('dispersion' not in dir()):
+    dispersion = True
+
+if ('isserverName' not in dir()):
+    isserverName = 'Histogramming'
+
+if ('isGlobalMonitoring' not in dir()):
+    isGlobalMonitoring = False
+
+## -------------------------------------------------------------------
+# Common part, copy from here
+from AthenaCommon.AppMgr import ServiceMgr as svcMgr
+from AthenaCommon.Constants import *
+
+include("ByteStreamEmonSvc/ByteStreamEmonInputSvc_jobOptions.py")
+
+# #####################################################
+# If using the ERSBootstrap.py file, enable the output
+# via ERS
+# ####################################################
+#MessageSvc.useErs = True
+# Define the input
+ByteStreamEmonInputSvc = svcMgr.ByteStreamInputSvc
+
+# ############################################################
+# The name of the partition you want to connect to is taken
+# from 'TDAQ_PARTITION' if it exists, otherwise from here.
+# ############################################################
+ByteStreamEmonInputSvc.Partition = partitionName
+
+# #######################################################
+# The source of events, can be 'REB' (ROS Event Builder),
+# 'SFI' (output of L2, default), 'efd' (output of EF)
+# #######################################################
+#print "IRH got Key: keyname: "+keyname
+ByteStreamEmonInputSvc.Key = keyname
+
+# special settings for pixel stand-alone partition
+if (partitionName == 'PixelDD'):
+    ByteStreamEmonInputSvc.Key = 'ReadoutApplication'
+    ByteStreamEmonInputSvc.KeyValue = [ 'ROSEventBuilder' ]
+
+# ############################################################
+# A list of of key values, e.g. a list of SFIs to contact.
+# If not defined, one event provider of this type (i.e. any SFI)
+# ############################################################
+#ByteStreamEmonInputSvc.KeyValue = [ 'SFI-1', 'SFI-2' ]
+
+# #######################################
+# Alternative: N providers of type 'SFI'
+# KeyValue is ignored if this is set.
+# ######################################
+ByteStreamEmonInputSvc.KeyCount = keycount
+
+# #######################################
+# Set this to the IS server where you want
+# to publish histograms, too. If unset, no
+# histograms are published.
+# #######################################
+if (isGlobalMonitoring and partitionName in ['ATLAS', 'TDAQ']):
+    ByteStreamEmonInputSvc.ISServer = 'Histogramming-Global-iss'
+else:
+    ByteStreamEmonInputSvc.ISServer = isserverName
+
+# ########################################
+# The provider name under which your histograms
+# appear in OH.
+# ########################################
+ByteStreamEmonInputSvc.PublishName = publishName
+
+# ###################################################
+# Should histograms be cleared at new run? default: yes
+# ###################################################
+ByteStreamEmonInputSvc.ClearHistograms = True
+
+# ####################################################
+# A regular expression to restrict which histograms are published.
+# Default: no selection - include all, exclude none
+# ####################################################
+if (isGlobalMonitoring):
+    ByteStreamEmonInputSvc.Include = '/SHIFT/.*'
+    ByteStreamEmonInputSvc.Exclude = '/EXPERT/.*'
+
+# ###############################################
+# Frequency of updates (in number of events, not secs...)
+# ###############################################
+#ByteStreamEmonInputSvc.Frequency = 5
+
+ByteStreamEmonInputSvc.BufferSize = buffersize
+ByteStreamEmonInputSvc.UpdatePeriod = updateperiod
+ByteStreamEmonInputSvc.Timeout = timeout
+
+# ##############################
+# one of 'Ignore', 'Or', 'And'
+# ##############################
+ByteStreamEmonInputSvc.LVL1Logic = lvl1Logic
+
+# #########################################
+# One of 'TAP', 'TBP' or 'TAV' (default)
+# #########################################
+#ByteStreamEmonInputSvc.LVL1Origin = 'TAV'
+
+# ###########################################################
+# A list of L1 bit names to select on. This requires the
+# L1CT.TrigConfL1Items to be published in IS.
+# This can be used instead of or in addition to LVL1Bits.
+# ###########################################################
+if (lvl1Logic != 'Ignore'):
+    ByteStreamEmonInputSvc.LVL1Names = lvl1Name.split(':')
+
+# ##########################################################
+# A list of numerical trigger bits instead of names. This is
+# Or'ed with LVL1Names
+# ##########################################################
+#ByteStreamEmonInputSvc.LVL1Items = [ 10, 20, 72, 245 ]
+
+# ###########################################
+# Selection by stream tag:
+# One of 'Or', 'And', 'Ignore' (default)
+# ###########################################
+ByteStreamEmonInputSvc.StreamLogic = streamLogic
+
+# ###########################################
+# One of 'physics' or 'calibration'
+# ############################################
+if (streamName == 'express'):
+    ByteStreamEmonInputSvc.StreamType = 'express'
+else:
+    ByteStreamEmonInputSvc.StreamType = streamType
+
+# ############################################
+# A list of stream tag names
+# ############################################
+ByteStreamEmonInputSvc.StreamNames = streamName.split(':')
+
+# #################################################
+# Shall athena exit if the partition is shutdown ?
+# For offline athena tasks mainly.
+# #################################################
+ByteStreamEmonInputSvc.ExitOnPartitionShutdown = False
+ByteStreamEmonInputSvc.Dispersion = dispersion
+
+ByteStreamCnvSvc = Service('ByteStreamCnvSvc')
+theApp.ExtSvc += [ 'ByteStreamCnvSvc' ]
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_globalconfig.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_globalconfig.py
new file mode 100644
index 0000000000000000000000000000000000000000..cda438a1e656e527a19e7564e4f43dd0a52f1250
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_globalconfig.py
@@ -0,0 +1,310 @@
+if (not 'usePickleConfig' in dir()):
+    usePickleConfig = False
+
+if (not 'pickleconfigfile' in dir()):
+    usePickleConfig = False
+
+if (not 'DataSource' in dir()):
+    DataSource = 'data'
+
+if (not 'InputFormat' in dir()):
+    InputFormat = 'bytestream'
+
+if (not 'fileName' in dir()):
+    fileName = None
+
+if (not 'doESD' in dir()):
+    doESD = True
+
+if (not 'writeESD' in dir()):
+    writeESD = False
+
+if (not 'doAOD' in dir()):
+    doAOD = False
+
+if (not 'writeAOD' in dir()):
+    writeAOD = False
+
+if (not 'isOnlineStateless' in dir()):
+    isOnlineStateless = True
+
+if (not 'beamType' in dir()):
+    beamType = 'collisions'
+
+if (not 'is_T0_project_tag' in dir()):
+    is_T0_project_tag = 'data12_8TeV'
+
+if (not 'ConditionsTag' in dir()):
+    ConditionsTag = 'COMCOND-HLTP-004-01'
+
+if (not 'DetDescrVersion' in dir()):
+    DetDescrVersion = 'ATLAS-GEO-20-00-01'
+
+if (not 'doPixelOnlyMon' in dir()):
+    doPixelOnlyMon = False
+
+if (not 'REO_doAutoConfiguration' in dir()):
+    REO_doAutoConfiguration = False
+
+
+## -------------------------------------------------------------------
+## configuration from pickle file
+
+import os,pickle
+
+from AthenaCommon.Logging import logging
+logRecExOnline_globalconfig = logging.getLogger( 'RecExOnline_globalconfig' )
+
+if usePickleConfig and os.path.exists(pickleconfigfile):
+    f = open(pickleconfigfile, 'r')
+    onlinegoodies = pickle.load(f)
+    f.close()
+
+    if onlinegoodies.has_key('DataSource'):
+        DataSource = onlinegoodies['DataSource']
+    if onlinegoodies.has_key('ConditionsTag'):
+        ConditionsTag = onlinegoodies['ConditionsTag']
+    if onlinegoodies.has_key('beamType'):
+        beamType = onlinegoodies['beamType']
+    if onlinegoodies.has_key('DetDescrVersion'):
+        DetDescrVersion = onlinegoodies['DetDescrVersion']
+
+    if onlinegoodies.has_key('preExec'):
+        preExec = onlinegoodies['preExec'].split(',,')
+    if onlinegoodies.has_key('postExec'):
+        postExec = onlinegoodies['postExec'].split(',,')
+    if onlinegoodies.has_key('preInclude'):
+        preInclude = onlinegoodies['preInclude'].split(',,')
+    if onlinegoodies.has_key('postInclude'):
+        postInclude = onlinegoodies['postInclude'].split(',,')
+
+## -------------------------------------------------------------------
+## Online Configuration from IS
+
+import sys
+
+# The dl module seems to be missing on 64-bit platforms.
+# Since RTLD_NOW==0x002 and RTLD_GLOBAL==0x100 very commonly
+# we will just guess that the proper flags are 0x102 when there
+# is no dl module.
+try:
+    import dl
+    newflags = dl.RTLD_NOW|dl.RTLD_GLOBAL
+    logRecExOnline_globalconfig.info("import dl failed with newflags=%s" % newflags )
+    logRecExOnline_globalconfig.info("proceeding with preconfigured newflags=0x102")
+except:
+    newflags = 0x102  # No dl module, so guess (see above).
+try:
+    sys.setdlopenflags(newflags)
+except:
+    logRecExOnline_globalconfig.info("sys.setdlopenflags(newflags) failed with newflags=%s" % newflags )
+
+#import dl
+#sys.setdlopenflags(dl.RTLD_GLOBAL | dl.RTLD_NOW)
+
+
+### remember flags to set this correctly via default
+from AthenaCommon.BFieldFlags import jobproperties
+
+#if (useEmon and (partitionName == 'ATLAS' or partitionName == 'TDAQ')):
+if (useEmon and (partitionName == 'ATLAS')):
+    import ispy
+    from ispy import *
+    from ipc import IPCPartition
+    from ispy import ISObject
+
+    p2  = ispy.IPCPartition(partitionName)
+    obj = ispy.ISObject(p2, 'RunParams.RunParams', 'RunParams')
+    obj.checkout()
+    is_T0_project_tag = obj.T0_project_tag
+    is_run_number = obj.run_number
+    is_beam_type = obj.beam_type
+    logRecExOnline_globalconfig.info("is_run_number = %s" % is_run_number)
+    logRecExOnline_globalconfig.info("is_beam_type = %s" % is_beam_type)
+    logRecExOnline_globalconfig.info("is_T0_project_tag = %s" % is_T0_project_tag)
+##     print 'is_run_number', is_run_number
+##     print 'is_beam_type', is_beam_type
+##     print 'is_T0_project_tag', is_T0_project_tag
+
+    part_name = 'initial'
+    p = IPCPartition(part_name)
+    toroidCurrent = 0
+    toroidInvalid = 1
+    solenoidCurrent = 0
+    solenoidInvalid = 1
+
+    # AL playing around: start
+    toroidCurrent   = ispy.ISInfoDynAny(p2, 'DdcFloatInfo')
+    solenoidCurrent = ispy.ISInfoDynAny(p2, 'DdcFloatInfo')
+    toroidInvalid   = ispy.ISInfoDynAny(p2, 'DdcIntInfo')
+    solenoidInvalid = ispy.ISInfoDynAny(p2, 'DdcIntInfo')
+    
+    toroidInvalid.value=1
+    solenoidInvalid.value=1
+    # AL playing around: end
+    
+
+    logRecExOnline_globalconfig.info("toroidCurrent = %f", toroidCurrent.value)
+    logRecExOnline_globalconfig.info("toroidInvalid = %f", toroidInvalid.value)
+    logRecExOnline_globalconfig.info("solenoidCurrent = %f", solenoidCurrent.value)
+    logRecExOnline_globalconfig.info("solenoidInvalid = %f", solenoidInvalid.value)
+    
+    
+ 
+    from BFieldAth.BFieldAthConf import MagFieldAthenaSvc
+    svcMgr += MagFieldAthenaSvc(SetupCOOL=True, NameOfTheSource='COOL_HLT', onlineSolCur=solenoidCurrent.value, onlineTorCur=toroidCurrent.value)
+
+## # ---> AK
+## # LArMon stuff
+## # CaloMon problems of setting up FirstSample
+## try:
+##     import ispy
+##     from ispy import *
+##     from ipc import IPCPartition
+##     from ispy import ISObject
+
+##     p3 = IPCPartition("ATLAS")
+##     x = ISObject(p3, 'LargParams.LArg.RunLogger.GlobalParams', 'GlobalParamsInfo')
+## except:
+##     logRecExOnline_globalconfig.info("Could not find IS Parameters for LargParams.LArg.RunLogger.GlobalParams - Set default flags (FirstSample=3, NSamples=5")
+##     # print "Could not find IS Parameters for LargParams.LArg.RunLogger.GlobalParams - Set default flags (FirstSample=3, NSamples=5) "
+##     FirstSample = 3
+##     NSamples = 5
+## else:
+##     try:
+##         x.checkout()
+##     except:
+##         logRecExOnline_globalconfig.info("Could not find IS Parameters for LargParams.LArg.RunLogger.GlobalParams - Set default flags: FirstSample=3, NSamples=5")
+##         #print Couldn not find IS Parameters - Set default flag"
+##         FirstSample = 3
+##         NSamples = 5
+##     else:
+##         FirstSample = x.firstSample
+##         NSamples = x.nbOfSamples
+## # ---> AK
+          
+
+# ----------------------------------------------- Set Run configuration
+
+## Second, fall back to manual configuration or default values
+from AthenaCommon.GlobalFlags import globalflags
+from AthenaCommon.AthenaCommonFlags import jobproperties,athenaCommonFlags
+
+globalflags.DataSource.set_Value_and_Lock(DataSource)
+globalflags.InputFormat.set_Value_and_Lock(InputFormat)
+
+if not useEmon:
+    athenaCommonFlags.BSRDOInput.set_Value_and_Lock([fileName])
+else:
+    athenaCommonFlags.BSRDOInput.set_Value_and_Lock([''])
+
+## suppress needless warnings "no stream X associated with id Y" for online jobs
+from GaudiSvc.GaudiSvcConf import THistSvc
+THistSvc.OutputLevel = ERROR
+
+### switch off NN Pixel cluster splitting, as suggested in bug #91340
+from InDetRecExample.InDetJobProperties import InDetFlags
+InDetFlags.doPixelClusterSplitting.set_Value(False) # does not work online
+
+# ----------------------------------------------- Online flag
+
+athenaCommonFlags.isOnline = isOnline
+athenaCommonFlags.EvtMax.set_Value_and_Lock(evtMax)
+athenaCommonFlags.isOnlineStateless = isOnlineStateless
+
+# ----------------------------------------------- Remove DCS problems
+from InDetRecExample.InDetJobProperties import InDetFlags
+InDetFlags.useBeamConstraint.set_Value_and_Lock(False)
+
+InDetFlags.doRobustReco = False
+
+if athenaCommonFlags.isOnline:
+    InDetFlags.useDCS.set_Value_and_Lock(False)                               # fails when true: pixel accessing Temperature info (getting fixed)
+
+# ----------------------------------------------- Special settings for pixel monitoring
+logRecExOnline_globalconfig.info("RecExOnline: flag doPixelOnlyMon = %s" %doPixelOnlyMon) 
+if doPixelOnlyMon:
+    ## force pixel on, turn off the rest of the ID:
+    InDetFlags.doTrackSegmentsPixel.set_Value_and_Lock(True)
+    InDetFlags.doCTBTrackSegmentsPixel.set_Value_and_Lock(False)
+    InDetFlags.doCTBTracking.set_Value_and_Lock(False)
+    InDetFlags.doCTBTrackSegmentsSCT.set_Value_and_Lock(False)
+    InDetFlags.doCTBTrackSegmentsTRT.set_Value_and_Lock(False)
+    InDetFlags.doTrackSegmentsSCT.set_Value_and_Lock(False)
+    InDetFlags.doTrtSegments.set_Value_and_Lock(False)
+
+    from AthenaCommon.DetFlags import DetFlags
+    DetFlags.SCT_setOff()
+    DetFlags.detdescr.SCT_setOn()
+    DetFlags.TRT_setOff()
+    DetFlags.detdescr.TRT_setOn()
+    DetFlags.pixel_setOn()
+    DetFlags.detdescr.pixel_setOn()
+    DetFlags.detdescr.ID_on()
+
+# ----------------------------------------------- Output flags
+from RecExConfig.RecFlags import rec
+
+if (isOnline and useEmon and (partitionName == 'ATLAS' or partitionName == 'TDAQ')):
+    rec.projectName.set_Value_and_Lock(is_T0_project_tag)
+    #rec.AutoConfiguration = ['FieldAndGeo', 'ConditionsTag', 'BeamType']
+    rec.AutoConfiguration = ['FieldAndGeo', 'ConditionsTag', 'BeamType', 'BeamEnergy', 'LumiFlags']
+
+if (isOnline and useEmon and (partitionName != 'ATLAS' and partitionName != 'TDAQ')):
+    from AthenaCommon.BFieldFlags import jobproperties
+    jobproperties.BField.barrelToroidOn.set_Value_and_Lock(True)
+    jobproperties.BField.endcapToroidOn.set_Value_and_Lock(True)
+    jobproperties.BField.solenoidOn.set_Value_and_Lock(True)
+    from AthenaCommon.BeamFlags import jobproperties
+    jobproperties.Beam.beamType.set_Value_and_Lock(beamType)
+    globalflags.ConditionsTag.set_Value_and_Lock(ConditionsTag)
+    globalflags.DetDescrVersion.set_Value_and_Lock(DetDescrVersion)
+    rec.AutoConfiguration = ['FieldAndGeo', 'ConditionsTag', 'BeamType']
+
+if (not isOnline and not useEmon) or (isOnline and REO_doAutoConfiguration):
+    rec.AutoConfiguration = ['everything']
+    logRecExOnline_globalconfig.info("RecExOnline: running with autoconfiguration = everything") 
+
+
+if (isOnline and not useEmon):
+    from AthenaCommon.BFieldFlags import jobproperties
+    jobproperties.BField.barrelToroidOn.set_Value_and_Lock(True)
+    jobproperties.BField.endcapToroidOn.set_Value_and_Lock(True)
+    jobproperties.BField.solenoidOn.set_Value_and_Lock(True)
+    from AthenaCommon.BeamFlags import jobproperties
+    jobproperties.Beam.beamType.set_Value_and_Lock(beamType)
+    globalflags.ConditionsTag.set_Value_and_Lock(ConditionsTag)
+    globalflags.DetDescrVersion.set_Value_and_Lock(DetDescrVersion)
+    rec.AutoConfiguration = ['FieldAndGeo', 'ConditionsTag', 'BeamType']
+    logRecExOnline_globalconfig.info(" Running with isOnline=True with autoconfiguration = FieldAndGeo, ConditionsTag, BeamType (taken from P1 job)")
+
+
+
+
+rec.doESD.set_Value_and_Lock(doESD)
+rec.doAOD.set_Value_and_Lock(doAOD)
+rec.doWriteESD.set_Value_and_Lock(writeESD)
+rec.doWriteAOD.set_Value_and_Lock(writeAOD)
+rec.doCBNT.set_Value_and_Lock(False)
+rec.doWriteTAG.set_Value_and_Lock(False)
+
+# Fixing the error message for deprecated doAOD call: "ERROR updating doAOD to value False . WILL SOON NOT WORK ANYMORE ! Please update to filling directly jp.Rec.blah or jp.AthenaCommonFlags.blah "
+#from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
+#athenaCommonFlags.doAOD.set_Value_and_Lock(doAOD)
+#
+#from RecExConfig.RecFlags import jobproperties
+#jobproperties.Rec.doAOD.set_Value_and_Lock(doAOD)
+
+
+
+# ---------------------------------------------- Debug flags
+rec.doPerfMon.set_Value_and_Lock(False)                                     # optional for performance check
+rec.doDetailedPerfMon.set_Value_and_Lock(False)
+rec.doSemiDetailedPerfMon.set_Value_and_Lock(False)
+rec.doNameAuditor.set_Value_and_Lock(False)                                 # optional for debugging
+rec.doDetStatus.set_Value_and_Lock(False)                                   # fails when true (fixed in next release)
+
+if not 'IOVDbSvcMessage' in dir():
+    from AthenaCommon.AppMgr import ServiceMgr as svcMgr
+    import IOVDbSvc.IOVDb
+    svcMgr.IOVDbSvc.OutputLevel = 2
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_jobOptions.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_jobOptions.py
new file mode 100644
index 0000000000000000000000000000000000000000..2a31d7d816a1bd3facee1593768e0475afa83062
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_jobOptions.py
@@ -0,0 +1,45 @@
+## -------------------------------------------------------------------
+## File: RecExOnline_jobOptions.py
+##
+## Authors: Anadi Canepa, Max Baak
+## Date: 04 April 2009
+##
+## This JO is intended for online reconstruction.
+## It can be run over a BSRDO via EMON service
+## See instructions line by line
+##
+## -------------------------------------------------------------------
+
+## General run configuration (bs emon, filename, datatype, magnetic field, etc.)
+## Reconstruction flags for online running
+## Monitoring flags for online running
+if useEmon:
+  include ("RecExOnline/RecExOnline_emonsvc.py")
+include ("RecExOnline/RecExOnline_globalconfig.py")
+include ("RecExOnline/RecExOnline_recoflags.py")
+include ("RecExOnline/RecExOnline_monitoring.py")
+
+## Pre-exec && preinclude, taken from ami tag
+if (not 'preExec' in dir()):
+  preExec = []
+for cmd in preExec:
+  exec(cmd)
+
+## Usual main reco top options
+include ("RecExCommon/RecExCommon_topOptions.py")
+
+## New protections against crashes
+from AthenaServices.AthenaServicesConf import AthenaEventLoopMgr
+AthenaEventLoopMgr.FailureMode=2
+
+## Post configuration, taken from ami tag
+if (not 'postInclude' in dir()):
+  postInclude = [] 
+for fragment in postInclude: include(fragment)
+
+## debug outputlevel, etc
+include ( "RecExOnline/RecExOnline_postconfig.py" )
+
+## -------------------------------------------------------------------
+## End of RecExOnline_jobOptions.py
+
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_monitoring.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_monitoring.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a52ec86736cb6733de7dd3bef41a67d380975d4
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_monitoring.py
@@ -0,0 +1,117 @@
+## -------------------------------------------------------------------
+## Main settings of online reco script, can be set from outside
+
+## default, all turned on
+if (not 'doAllMon' in dir()):
+  doAllMon = True
+
+if (not 'doCaloMon' in dir()):
+  doCaloMon = doAllMon
+
+if (not 'doPhysMon' in dir()):
+  doPhysMon = doAllMon
+
+if (not 'doTrigMon' in dir()):
+  doTrigMon = doAllMon
+
+if (not 'doLVL1CaloMon' in dir()):
+  doLVL1CaloMon = doTrigMon
+
+if (not 'doHLTMon' in dir()):
+  doHLTMon = doTrigMon
+
+if (not 'doCTPMon' in dir()):
+  doCTPMon = doTrigMon
+
+if (not 'doIDMon' in dir()):
+  doIDMon = doAllMon
+
+if (not 'doPixelOnlyMon' in dir()):
+  doPixelOnlyMon = False # doAllMon
+
+if (not 'doSCTMon' in dir()):
+  doSCTMon = doAllMon
+
+if (not 'doMuonMon' in dir()):
+  doMuonMon = doAllMon
+
+if (not 'doTRTMon' in dir()):
+  doTRTMon = doAllMon
+
+if (not 'doLucidMon' in dir()):
+  doLucidMon = doAllMon
+
+if (not 'isOnline' in dir()):
+  isOnline = False
+
+## if ('isGlobalMonitoring' not in dir()):
+##     isGlobalMonitoring = False
+
+
+# --------------------------------------------- Monitoring
+from AthenaMonitoring.DQMonFlags import DQMonFlags
+
+if isOnline and useEmon:
+  DQMonFlags.histogramFile = ''
+  DQMonFlags.monManFileKey = 'ourGLOBAL'                                   # must use a different stream w.r.t what sets in DQ steering JO
+  DQMonFlags.monManEnvironment.set_Value_and_Lock('online')
+
+DQMonFlags.monManDataType.set_Value_and_Lock('data')
+
+orMon = doAllMon or doCaloMon or doPhysMon or doIDMon or doMuonMon or doTRTMon or doCTPMon or doLucidMon or doSCTMon or doPixelOnlyMon or doLVL1CaloMon or doHLTMon
+DQMonFlags.doMonitoring.set_Value_and_Lock(orMon)
+
+from RecExConfig.RecFlags import rec
+rec.doMonitoring.set_Value_and_Lock(orMon)
+
+# ******************* Calorimeter Monitorings
+DQMonFlags.doLArMon.set_Value_and_Lock(doCaloMon)
+DQMonFlags.doTileMon.set_Value_and_Lock(False)
+
+# ******************* Physics Monitorings
+DQMonFlags.doMissingEtMon.set_Value_and_Lock(doPhysMon)
+DQMonFlags.doEgammaMon.set_Value_and_Lock(doPhysMon)
+DQMonFlags.doJetMon.set_Value_and_Lock(doPhysMon)
+DQMonFlags.doJetTagMon.set_Value_and_Lock(doPhysMon)
+DQMonFlags.doTauMon.set_Value_and_Lock(doPhysMon)
+DQMonFlags.doCaloMon.set_Value_and_Lock(doCaloMon)
+DQMonFlags.doMuonPhysicsMon.set_Value_and_Lock(doPhysMon)
+DQMonFlags.doGlobalMon.set_Value_and_Lock(doPhysMon)
+
+# ******************* Trigger monitorings
+useTrigger = doHLTMon or doLVL1CaloMon or doCTPMon
+DQMonFlags.useTrigger.set_Value_and_Lock(useTrigger)
+DQMonFlags.doHLTMon.set_Value_and_Lock(doHLTMon)
+DQMonFlags.doLVL1CaloMon.set_Value_and_Lock(doLVL1CaloMon)
+DQMonFlags.doCTPMon.set_Value_and_Lock(doCTPMon)
+
+# ******************* ID monitorings
+DQMonFlags.doInDetAlignMon.set_Value_and_Lock(doIDMon)
+DQMonFlags.doInDetGlobalMon.set_Value_and_Lock(doIDMon)
+DQMonFlags.doInDetPerfMon.set_Value_and_Lock(doIDMon)
+DQMonFlags.doPixelMon.set_Value_and_Lock(doIDMon or doPixelOnlyMon)
+DQMonFlags.doSCTMon.set_Value_and_Lock(doSCTMon)
+DQMonFlags.doTRTElectronMon.set_Value_and_Lock(False)
+DQMonFlags.doTRTMon.set_Value_and_Lock(doTRTMon)
+
+# ******************* Muon monitorings
+from MuonDQAMonFlags.MuonDQAProperFlags import MuonDQADetFlags
+DQMonFlags.doMuonAlignMon.set_Value_and_Lock(False)                      #### set False by default
+DQMonFlags.doMuonCombinedMon.set_Value_and_Lock(doMuonMon)
+
+MuonDQADetFlags.doTGCMon.set_Value_and_Lock(False)
+MuonDQADetFlags.doTGCL1Mon.set_Value_and_Lock(False)
+MuonDQADetFlags.doMDTTGCL1Mon.set_Value_and_Lock(False)
+
+DQMonFlags.doMuonRawMon.set_Value_and_Lock(doMuonMon)
+DQMonFlags.doMuonSegmentMon.set_Value_and_Lock(doMuonMon)
+DQMonFlags.doMuonTrackMon.set_Value_and_Lock(doMuonMon)
+
+# ******************* Additional monitorings
+DQMonFlags.doLucidMon.set_Value_and_Lock(doLucidMon)
+
+#toRun='GM-Application:GlobalMonitoringSegment:pc-tdq-gmon-02:1'
+#if (toRun==publishName):
+#if (isGlobalMonitoring):     #AK: 21-05-2014
+#  include("BFieldTools/DQTBCurrentTool.py")  #AK: 21-05-2014
+
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_postconfig.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_postconfig.py
new file mode 100644
index 0000000000000000000000000000000000000000..51e92421a4f18e6c5c39616f36f5d743fddbe8eb
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_postconfig.py
@@ -0,0 +1,18 @@
+# #########################################
+
+# ----------------------------- Catalog file
+Service("PoolSvc").SortReplicas = False                                  # NEEDS TO BE CHECKED
+PoolSvc = Service( "PoolSvc" )
+if isOnline and useEmon:
+  PoolSvc.ReadCatalog += ["xmlcatalog_file:/sw/DbData/poolcond/PoolCat_comcond.xml"]
+#  PoolSvc.ReadCatalog += ["xmlcatalog_file:/sw/DbSuppForMx/poolcond/PoolCat_comcond.xml"]
+#  PoolSvc.ReadCatalog += ["xmlcatalog_file:/det/lar/lar/project/databases/cond08_data.000001.lar.COND/PoolFileCatalog.xml"]
+#  PoolSvc.ReadCatalog += ["xmlcatalog_file:/det/lar/lar/project/databases/comcond.000006.lar_conditions.recon.pool.v0000/PoolFileCatalog.xml"]
+
+#ToolSvc.InDetCosmicsEventPhaseTool.GlobalOffset = 0
+
+# ----------------------------- Printout
+print "CHECK POINT PRINTING"
+globalflags.print_JobProperties()
+
+
diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_recoflags.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_recoflags.py
new file mode 100644
index 0000000000000000000000000000000000000000..9fb8a0dc58e2c9c68f73d542acee597cd6fd9af2
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_recoflags.py
@@ -0,0 +1,68 @@
+## -------------------------------------------------------------------
+
+## default settings
+if (not 'doAllReco' in dir()):
+  doAllReco = True
+
+if (not 'doInDet' in dir()):
+  doInDet = doAllReco
+
+if (not 'doMuon' in dir()):
+  doMuon = doAllReco
+
+if (not 'doLArg' in dir()):
+  doLArg = doAllReco
+
+if (not 'doTile' in dir()):
+  doTile = doAllReco
+
+if (not 'doLucid' in dir()):
+  doLucid = False
+
+if (not 'doZdc' in dir()):
+  doZdc = False
+
+if (not 'doAlfa' in dir()):
+  doAlfa = False
+
+if (not 'doTrigger' in dir()):
+  doTrigger = False
+
+if (not 'doHist' in dir()):
+  doHist = True
+
+if (not 'doJiveXML' in dir()):
+  doJiveXML = False
+
+if (not 'doEgammaTau' in dir()):
+  doEgammaTau = doAllReco
+
+if (not 'doCommissioning' in dir()):
+  doCommissioning = False
+
+if ( not 'abortonuncheckedstatuscode' in dir()):
+  abortonuncheckedstatuscode = False
+
+## ------------------------------------------------------------------- Reco flags
+
+rec.doInDet.set_Value_and_Lock(doInDet)
+rec.doMuon.set_Value_and_Lock(doMuon)                                      
+rec.doLArg.set_Value_and_Lock(doLArg)                                      
+rec.doTile.set_Value_and_Lock(doTile)                                      
+rec.doLucid.set_Value_and_Lock(doLucid)
+rec.doZdc.set_Value_and_Lock(doZdc)
+rec.doAlfa.set_Value_and_Lock(doAlfa)
+rec.doForwardDet.set_Value_and_Lock(doLucid or doZdc or doAlfa)
+rec.doTrigger.set_Value_and_Lock(doTrigger)
+
+from RecExConfig.RecAlgsFlags import recAlgs
+recAlgs.doTrigger.set_Value_and_Lock(doTrigger)                                
+
+rec.doHist.set_Value_and_Lock(doHist)
+rec.doJiveXML.set_Value_and_Lock(doJiveXML)                               
+rec.doEgamma.set_Value_and_Lock(doEgammaTau)
+rec.doTau.set_Value_and_Lock(doEgammaTau)
+
+rec.Commissioning.set_Value_and_Lock(True) # set to True by default
+
+rec.abortOnUncheckedStatusCode.set_Value_and_Lock(abortonuncheckedstatuscode)
diff --git a/Reconstruction/RecExample/RecExOnline/share/SimpleLarCondFlags.py b/Reconstruction/RecExample/RecExOnline/share/SimpleLarCondFlags.py
new file mode 100644
index 0000000000000000000000000000000000000000..a921499a462b4cfd88a6a95395778d4eeec8ccf3
--- /dev/null
+++ b/Reconstruction/RecExample/RecExOnline/share/SimpleLarCondFlags.py
@@ -0,0 +1,10 @@
+from LArConditionsCommon.LArCondFlags import larCondFlags
+larCondFlags.SingleVersion=True
+larCondFlags.OFCShapeFolder.set_Value_and_Lock("")
+
+from LArROD.LArRODFlags import larRODFlags
+if not larRODFlags.doDSP:
+    larCondFlags.LArCoolChannelSelection.set_Value_and_Lock("3:238,306,313,319,325,331,338,344,350,1001:1012,1021,1022")
+else:
+    larCondFlags.LArCoolChannelSelection.set_Value_and_Lock("")
+