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("") +