Skip to content
Snippets Groups Projects
Commit 45a2b468 authored by Walter Lampl's avatar Walter Lampl Committed by Melissa Yexley
Browse files

Remove old-style skeleton files relying on RecExCommon_topOptions.py

parent de7bc592
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 1855 deletions
from __future__ import print_function
# Skeleton file for AOD to DAOD (Reduction framework) job
#
# $Id: skeleton.AODtoDAOD_tf.py 731616 2016-03-22 15:25:39Z cranshaw $
#
from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
from AthenaCommon.AlgSequence import AlgSequence
from AthenaCommon.Logging import logging
msg = logging.getLogger('AODtoDAOD')
msg.info( '****************** STARTING AOD->DAOD MAKING *****************' )
def getSubSequences(sequence,sequenceList):
sequenceList.append(sequence)
for item in sequence:
if isinstance(item, AthSequencer):
getSubSequences(item,sequenceList)
return
if not hasattr(runArgs, "outputNTUP_PILEUPFile"):
if hasattr(runArgs, "reductionConf"):
msg.info('Will attempt to make the following reduced formats: {0}'.format(runArgs.reductionConf))
else:
msg.error('AOD Reduction job started, but with no "reductionConf" array - aborting')
raise RuntimeError("No reductions configured")
include("RecJobTransforms/CommonRecoSkeletonJobOptions.py")
try:
import os
project = os.environ ['AtlasProject']
version = os.environ ['AtlasVersion']
release = project + '-' + version
rec.AtlasReleaseVersion = release
except:
print("WARNING: Unable to construct AtlasReleaseVersion from environment")
# Check if we are running exclusively truth output
truthOutput=False
otherOutput=False
if 'reductionConf' in dir(runArgs):
truthOutput = all(['TRUTH' in x for x in runArgs.reductionConf])
otherOutput = any(['TRUTH' not in x for x in runArgs.reductionConf])
else:
truthOutput = all(['TRUTH' in x for x in dir(runArgs) if 'output' in x and 'File' in x])
otherOutput = any(['TRUTH' not in x for x in dir(runArgs) if 'output' in x and 'File' in x])
onlyTruthOutput = truthOutput and not otherOutput
if hasattr(runArgs,"inputAODFile") and not onlyTruthOutput:
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readAOD.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( False )
rec.doDPD.set_Value_and_Lock(True)
rec.OutputFileNameForRecoStep.set_Value_and_Lock("AODtoDAOD")
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputAODFile )
from AthenaConfiguration.AllConfigFlags import ConfigFlags
ConfigFlags.Input.Files = athenaCommonFlags.PoolAODInput()
elif hasattr(runArgs,'inputEVNTFile') or hasattr(runArgs,'jobConfig') or onlyTruthOutput:
# Assume that we're running from EVNT or straight through evgen
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readAOD.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( False )
if hasattr(runArgs,'inputEVNTFile') or hasattr(runArgs,'jobConfig'):
rec.OutputFileNameForRecoStep.set_Value_and_Lock("EVNTtoDAOD")
athenaCommonFlags.FilesInput = runArgs.inputEVNTFile
else:
rec.OutputFileNameForRecoStep.set_Value_and_Lock("AODtoDAOD")
athenaCommonFlags.FilesInput = runArgs.inputAODFile
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputAODFile )
rec.AutoConfiguration.set_Value_and_Lock(['ProjectName','BeamType','RealOrSim','DoTruth','InputType'])
rec.doInDet.set_Value_and_Lock(False)
rec.doCalo.set_Value_and_Lock(False)
rec.doMuon.set_Value_and_Lock(False)
rec.doForwardDet.set_Value_and_Lock(False)
rec.doFileMetaData.set_Value_and_Lock(False)
rec.doTruth.set_Value_and_Lock( True )
rec.doTrigger.set_Value_and_Lock( False )
rec.doWriteTAG.set_Value_and_Lock( False )
rec.LoadGeometry.set_Value_and_Lock( False )
from AthenaCommon.DetFlags import DetFlags
DetFlags.detdescr.BField_setOff()
# Do not load conditions; this is running on EVNT / TRUTH only
globalflags.ConditionsTag = ''
# Leave the remainder for the internal setup
else:
msg.error('AOD Reduction job started, but with no AOD inputs - aborting')
raise RuntimeError("No AOD input")
# Deal appropriately with NTUP_PILEUP
if hasattr(runArgs, "outputNTUP_PILEUPFile"):
from DerivationFrameworkDataPrep.DataPrepJobProperties import DataPrepFlags
DataPrepFlags.outputFile = runArgs.outputNTUP_PILEUPFile
runArgs.outputDAOD_DAPR0File = "DAOD_DAPR0.root"
runArgs.reductionConf = "DAPR0"
listOfFlags=[]
try:
from DerivationFrameworkCore.DerivationFrameworkProdFlags import derivationFlags
listOfFlags.append(derivationFlags)
except ImportError:
print("WARNING DerivationFrameworkProdFlags not available.")
from PATJobTransforms.DPDUtils import SetupOutputDPDs
rec.DPDMakerScripts.append(SetupOutputDPDs(runArgs,listOfFlags))
passThroughMode = False
if hasattr(runArgs,"passThrough"):
passThroughMode = runArgs.passThrough
#if (passThroughMode is True):
# msg.warning("Pass through mode is ON: decision of derivation kernels will be IGNORED!")
# rec.doDPD.passThroughMode = True
## Pre-exec
if hasattr(runArgs,"preExec"):
msg.info("transform pre-exec")
for cmd in runArgs.preExec:
msg.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
#========================================================
# Central topOptions (this is one is a string not a list)
#========================================================
if hasattr(runArgs,"topOptions"): include(runArgs.topOptions)
else: include( "RecExCommon/RecExCommon_topOptions.py" )
# Intervene and strip SkimmingTools from algs if pass through mode requested
# recusion is necessary to ensure all kernels from all subsequences are
# caught
if passThroughMode:
sequenceList = []
mainSeq = AlgSequence()
getSubSequences(mainSeq,sequenceList)
for seq in sequenceList:
for item in seq:
if isinstance(item, DerivationFramework__DerivationKernel):
item.SkimmingTools = []
msg.info( 'Pass through mode was requested. Skimming tools have been removed from all kernels.')
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
msg.info("transform post-exec")
for cmd in runArgs.postExec:
msg.info(cmd)
exec(cmd)
from __future__ import print_function
###############################################################
#
# Skeleton top job options for AOD->DPD
# Put here outputs that require rec.doAOD=False
#
#==============================================================
#Common job options disable most RecExCommon by default. Re-enable below on demand.
include("RecJobTransforms/CommonRecoSkeletonJobOptions.py")
rec.doAOD=False
from AthenaCommon.Logging import logging
recoLog = logging.getLogger('aod_to_dpd')
recoLog.info( '****************** STARTING AOD->DPD MAKING *****************' )
## Automatically turn ON/OFF and set output file name of each possible DPD
listOfFlags=[]
try:
from PrimaryDPDMaker.PrimaryDPDFlags import primDPD
listOfFlags.append(primDPD)
except ImportError:
print("WARNING PrimaryDPDFlags not available. Only OK if you're using job transforms without the AtlasAnalysis project.")
try:
from D3PDMakerConfig.D3PDProdFlags import prodFlags
listOfFlags.append( prodFlags )
except ImportError:
print("WARNING D3PDProdFlags not available. Only OK if you're using job transforms without the AtlasAnalysis project.")
from PATJobTransforms.DPDUtils import SetupOutputDPDs
rec.DPDMakerScripts.append(SetupOutputDPDs(runArgs,listOfFlags))
# New-style config
from AthenaConfiguration.AllConfigFlags import ConfigFlags
## Input
if hasattr(runArgs,"inputFile"): athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputFile )
if hasattr(runArgs,"inputEVNTFile"): athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputEVNTFile )
if hasattr(runArgs,"inputAODFile"):
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readAOD.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( False )
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputAODFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolAODInput()
if hasattr(runArgs,"inputTAGFile") or hasattr(runArgs,"inputTAG_AODFile"):
#for TAG->AOD->skimmedAOD
rec.readTAG.set_Value_and_Lock( True )
rec.readAOD.set_Value_and_Lock( True )
rec.doAOD.set_Value_and_Lock( False )
rec.TAGFromRDO.set_Value_and_Lock( False )
if hasattr(runArgs,"inputTAGFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputTAGFile )
else:
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputTAG_AODFile )
## Outputs
if hasattr(runArgs,"outputAODFile"):
#for TAG->AOD->skimmedAOD
rec.doWriteAOD.set_Value_and_Lock( True )
athenaCommonFlags.PoolAODOutput.set_Value_and_Lock( runArgs.outputAODFile )
if hasattr(runArgs,"outputNTUP_BTAGFile"):
from BTagging.BTaggingFlags import BTaggingFlags
BTaggingFlags.doJetTagNtuple = True
BTaggingFlags.JetTagNtupleName = runArgs.outputNTUP_BTAGFile
if hasattr(runArgs,"outputNTUP_PROMPTPHOTFile"):
from PhotonAnalysisUtils.PhotonAnalysisUtilsFlags import PAUflags
PAUflags.FileName = runArgs.outputNTUP_PROMPTPHOTFile
#little hack while autoConfiguration=everything is still not the default...
if hasattr(runArgs,"inputAODFile") and not hasattr(runArgs,"inputFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputAODFile )
if hasattr(runArgs,"outputNTUP_SMEWFile"):
from WWAnalyze.WWD3PDFlags import WWD3PDFlags
WWD3PDFlags.OutputFilename = runArgs.outputNTUP_SMEWFile
#little hack while autoConfiguration=everything is still not the default...
if hasattr(runArgs,"inputAODFile") and not hasattr(runArgs,"inputFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputAODFile )
if hasattr(runArgs,"outputNTUP_TRUTHFile"):
from TruthD3PDMaker.TruthD3PDMakerFlags import TruthD3PDFlags
TruthD3PDFlags.TruthD3PDOutputFileName = runArgs.outputNTUP_TRUTHFile
include("TruthD3PDMaker/TruthD3PDfromEVGEN_preInclude.py")
if hasattr(runArgs,"outputNTUP_SUSYTRUTHFile"):
from TruthD3PDMaker.TruthD3PDMakerFlags import TruthD3PDFlags
TruthD3PDFlags.TruthD3PDOutputFileName = runArgs.outputNTUP_SUSYTRUTHFile
include("TruthD3PDMaker/TruthSusyD3PDfromEVGEN_preInclude.py")
if hasattr(runArgs,"outputDAOD_2LHSG2File"):
#FIXME: input/outputs should configured via job properties instead of directly using the runArgs object
from HSG2DPDUtils import HSG2DPDFlags
if hasattr(runArgs,"outputDAOD_HSG2File"):
#FIXME: input/outputs should configured via job properties instead of directly using the runArgs object
from HSG2DPDUtils import HSG2DPDFlags
if hasattr(runArgs,"outputNTUP_1LHSG2File"):
#FIXME: input/outputs should configured via job properties instead of directly using the runArgs object
from HSG2DPDUtils import HSG2DPDFlags
if hasattr(runArgs,"outputNTUP_2LHSG2File"):
#FIXME: input/outputs should configured via job properties instead of directly using the runArgs object
from HSG2DPDUtils import HSG2DPDFlags
if hasattr(runArgs,"outputNTUP_HSG2File"):
#FIXME: input/outputs should configured via job properties instead of directly using the runArgs object
from HSG2DPDUtils import HSG2DPDFlags
if hasattr(runArgs,"outputNTUP_SCTFile"):
from TrackD3PDMaker.TrackD3PDMakerSCTFlags import TrackD3PDSCTFlags
TrackD3PDSCTFlags.outputFile = runArgs.outputNTUP_SCTFile
if hasattr(runArgs,"inputESDFile") and not hasattr(runArgs,"inputFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputESDFile )
if hasattr(runArgs,"outputNTUP_FASTMONFile"):
rec.doFastPhysMonitoring.set_Value_and_Lock(True)
rec.RootFastPhysMonOutput.set_Value_and_Lock(runArgs.outputNTUP_FASTMONFile)
if hasattr(runArgs,"outputNTUP_MCPTPFile"):
from MuonPerformanceAlgs import MuonTPAnalysis
MuonTPAnalysis.MuonTPConfig(runArgs.outputNTUP_MCPTPFile)
if hasattr(runArgs,"outputNTUP_MCPScaleFile"):
from MuonPtCalibNtupleMaker import MuonPtCalibNtupleMaker_Config
MuonPtCalibNtupleMaker_Config.MuonScaleConfig(runArgs.outputNTUP_MCPScaleFile)
## Pre-exec
if hasattr(runArgs,"preExec"):
recoLog.info("transform pre-exec")
for cmd in runArgs.preExec:
recoLog.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
## Pre-includes defined for the DPDs:
from PATJobTransforms.DPDUtils import SetupDPDPreIncludes
dpdPreInclude = SetupDPDPreIncludes(runArgs, listOfFlags)
# Examine if we have more output types
if not isinstance(dpdPreInclude, list):
recoLog.warning("Old return value from SetupDPDPostIncludes() - no check for output incompatibility done")
else:
additionalOutputs = set( [ outfile for outfile in dir(runArgs) if outfile.startswith('output') and outfile.endswith('File') ] ) - set(dpdPreInclude)
if len(dpdPreInclude) > 0 and len(additionalOutputs) > 0:
recoLog.error( "Multiple output types requested with pre-includes present" )
recoLog.error( "Pre-includes came from {0}, with {1} also requested".format(dpdPreInclude, list(additionalOutputs)) )
recoLog.error( "This will most probably lead to weird output" )
#========================================================
# Central topOptions (this is one is a string not a list)
#========================================================
if hasattr(runArgs,"topOptions"): include(runArgs.topOptions)
else: include( "RecExCommon/RecExCommon_topOptions.py" )
try:
#Import D3PD flags before preExec, for convenience
from D3PDMakerConfig.D3PDProdFlags import oldProdFlags
## Make "old style" D3PDs.
for c in SetupOutputDPDs(runArgs, [oldProdFlags]): c()
except ImportError:
print("WARNING: Old prod flags could not be included this. Only OK if you're using job transforms without the AtlasAnalysis project.")
## Offline prescales (has to be *after* the topOptions)
if hasattr(runArgs,"prescales"):
recoLog.info( '**** DPD offline prescale arguments:' )
from PrimaryDPDMaker.JobTransformConfiguration import ApplyPrescale
for prescale in runArgs.prescales:
recoLog.info( prescale )
ApplyPrescale(prescale)
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-includes defined for the DPDs:
from PATJobTransforms.DPDUtils import SetupDPDPostIncludes
dpdPostIncludeUsed = SetupDPDPostIncludes(runArgs, listOfFlags)
if not isinstance(dpdPostIncludeUsed, list):
recoLog.warning("Old return value from SetupDPDPostIncludes() - no check for output incompatibility done")
else:
additionalOutputs = set( [ outfile for outfile in dir(runArgs) if outfile.startswith('output') and outfile.endswith('File') ] ) - set(dpdPostIncludeUsed)
if len(dpdPostIncludeUsed) > 0 and len(additionalOutputs) > 0:
recoLog.error( "Multiple output types requested with post-includes present" )
recoLog.error( "Post-includes came from {0}, with {1} also requested".format(dpdPostIncludeUsed, list(additionalOutputs)) )
recoLog.error( "This will most probably lead to weird output" )
## Post-exec
if hasattr(runArgs,"postExec"):
recoLog.info("transform post-exec")
for cmd in runArgs.postExec:
recoLog.info(cmd)
exec(cmd)
from __future__ import print_function
# Skeleton file for AOD to DAOD (Reduction framework) job
#
# $Id$
#
from AthenaCommon.Logging import logging
msg = logging.getLogger('AodReduction')
msg.info( '****************** STARTING AOD->REDUCTION_FORMAT MAKING *****************' )
if hasattr(runArgs, "reductionConf"):
msg.info('Will attempt to make the following reduced formats: {0}'.format(runArgs.reductionConf))
else:
msg.error('AOD Reduction job started, but with no "reductionConf" array - aborting')
raise RuntimeError("No reductions configured")
include("RecJobTransforms/CommonRecoSkeletonJobOptions.py")
## Automatically turn ON/OFF and set output file name of each possible DPD
listOfFlags=[]
try:
from PrimaryDPDMaker.PrimaryDPDFlags import primDPD
listOfFlags.append(primDPD)
except ImportError:
print("WARNING PrimaryDPDFlags not available. Only OK if you're using job transforms without the AtlasAnalysis project.")
try:
from D3PDMakerConfig.D3PDProdFlags import prodFlags
listOfFlags.append( prodFlags )
except ImportError:
print("WARNING D3PDProdFlags not available. Only OK if you're using job transforms without the AtlasAnalysis project.")
from PATJobTransforms.DPDUtils import SetupOutputDPDs
rec.DPDMakerScripts.append(SetupOutputDPDs(runArgs,listOfFlags))
if hasattr(runArgs,"inputAODFile"):
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readAOD.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( False )
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputAODFile )
else:
msg.error('AOD Reduction job started, but with no AOD inputs - aborting')
raise RuntimeError("No AOD input")
## Pre-exec
if hasattr(runArgs,"preExec"):
msg.info("transform pre-exec")
for cmd in runArgs.preExec:
msg.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
#========================================================
# Central topOptions (this is one is a string not a list)
#========================================================
if hasattr(runArgs,"topOptions"): include(runArgs.topOptions)
else: include( "RecExCommon/RecExCommon_topOptions.py" )
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
msg.info("transform post-exec")
for cmd in runArgs.postExec:
msg.info(cmd)
exec(cmd)
# Skeleton file for DAOD_PHYS to D2AOD (derivation framework) job
#
from AthenaCommon.AlgSequence import AlgSequence
from AthenaCommon.Logging import logging
msg = logging.getLogger('DAODtoD2AOD')
msg.info( '****************** STARTING DAOD_PHYS->D2AOD MAKING *****************' )
def getSubSequences(sequence,sequenceList):
sequenceList.append(sequence)
for item in sequence:
if type(item).__name__ == 'AthSequencer':
getSubSequences(item,sequenceList)
return
if hasattr(runArgs, "reductionConf"):
msg.info('Will attempt to make the following reduced formats: {0}'.format(runArgs.reductionConf))
else:
msg.error('DAOD_PHYS skimming job started, but with no "reductionConf" array - aborting')
raise RuntimeError("No reductions configured")
include("RecJobTransforms/CommonRecoSkeletonJobOptions.py")
try:
import os
project = os.environ ['AtlasProject']
version = os.environ ['AtlasVersion']
release = project + '-' + version
rec.AtlasReleaseVersion = release
except:
print("WARNING: Unable to construct AtlasReleaseVersion from environment")
if hasattr(runArgs,"inputDAOD_PHYSFile"):
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readAOD.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( False )
rec.doTrigger.set_Value_and_Lock( False )
rec.doTruth.set_Value_and_Lock( False )
rec.doDPD.set_Value_and_Lock(True)
rec.OutputFileNameForRecoStep.set_Value_and_Lock("DAODtoD2AOD")
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputDAOD_PHYSFile )
from AthenaConfiguration.AllConfigFlags import ConfigFlags
ConfigFlags.Input.Files = athenaCommonFlags.PoolAODInput()
else:
msg.error('DAOD_PHYS skimming job started, but with no DAOD_PHYS inputs - aborting')
raise RuntimeError("No DAOD_PHYS input")
listOfFlags=[]
try:
from DerivationFrameworkCore.DerivationFrameworkProdFlags import derivationFlags
listOfFlags.append(derivationFlags)
except ImportError:
print("WARNING DerivationFrameworkProdFlags not available.")
from PATJobTransforms.DPDUtils import SetupOutputDPDs
rec.DPDMakerScripts.append(SetupOutputDPDs(runArgs,listOfFlags))
## Pre-exec
if hasattr(runArgs,"preExec"):
msg.info("transform pre-exec")
for cmd in runArgs.preExec:
msg.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
#========================================================
# Central topOptions (this is one is a string not a list)
#========================================================
if hasattr(runArgs,"topOptions"): include(runArgs.topOptions)
else: include( "RecExCommon/RecExCommon_topOptions.py" )
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
msg.info("transform post-exec")
for cmd in runArgs.postExec:
msg.info(cmd)
exec(cmd)
from __future__ import print_function
###############################################################
#
# Skeleton top job options for ESD->DPD
# Put here outputs that require rec.doESD=False
#
#==============================================================
#Common job options disable most RecExCommon by default. Re-enable below on demand.
include("RecJobTransforms/CommonRecoSkeletonJobOptions.py")
rec.doESD=False
from AthenaCommon.Logging import logging
recoLog = logging.getLogger('esd_to_dpd')
recoLog.info( '****************** STARTING ESD->DPD MAKING *****************' )
## Automatically turn ON/OFF and set output file name of each possible DPD
listOfFlags=[]
try:
from PrimaryDPDMaker.PrimaryDPDFlags import primDPD
listOfFlags.append(primDPD)
except ImportError:
print("WARNING PrimaryDPDFlags not available. Only OK if you're using job transforms without the AtlasAnalysis project.")
try:
from D3PDMakerConfig.D3PDProdFlags import prodFlags
listOfFlags.append( prodFlags )
except ImportError:
print("WARNING D3PDProdFlags not available. Only OK if you're using job transforms without the AtlasAnalysis project.")
from PATJobTransforms.DPDUtils import SetupOutputDPDs
rec.DPDMakerScripts.append(SetupOutputDPDs(runArgs,listOfFlags))
rec.OutputFileNameForRecoStep="ESDtoDPD"
# New-style config
from AthenaConfiguration.AllConfigFlags import ConfigFlags
## Input
if hasattr(runArgs,"inputFile"): athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputFile )
if hasattr(runArgs,"inputBSFile"):
globalflags.InputFormat.set_Value_and_Lock('bytestream')
athenaCommonFlags.BSRDOInput.set_Value_and_Lock( runArgs.inputBSFile )
ConfigFlags.Input.Files = athenaCommonFlags.BSRDOInput()
if hasattr(runArgs,"inputRDOFile"):
rec.readRDO.set_Value_and_Lock( True )
globalflags.InputFormat.set_Value_and_Lock('pool')
athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDOFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolRDOInput()
if hasattr(runArgs,"inputESDFile"):
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readESD.set_Value_and_Lock( True )
athenaCommonFlags.PoolESDInput.set_Value_and_Lock( runArgs.inputESDFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolESDInput()
if hasattr(runArgs,"inputTAGFile"):
rec.readTAG.set_Value_and_Lock( True )
rec.readESD.set_Value_and_Lock( True )
rec.doESD.set_Value_and_Lock( False )
rec.doWriteAOD.set_Value_and_Lock( False )
rec.TAGFromRDO.set_Value_and_Lock( False )
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputTAGFile )
#Outputs
if hasattr(runArgs,"outputNTUP_PROMPTPHOTFile"):
from PhotonAnalysisUtils.PhotonAnalysisUtilsFlags import PAUflags
PAUflags.FileName = runArgs.outputNTUP_PROMPTPHOTFile
#little hack while autoConfiguration=everything is still not the default...
if hasattr(runArgs,"inputESDFile") and not hasattr(runArgs,"inputFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputESDFile )
if hasattr(runArgs,"outputNTUP_WZFile"):
from D3PDMakerConfig.D3PDProdFlags import prodFlags
prodFlags.WZOutputFile=runArgs.outputNTUP_WZFile
#little hack while autoConfiguration=everything is still not the default...
if hasattr(runArgs,"inputESDFile") and not hasattr(runArgs,"inputFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputESDFile )
if hasattr(runArgs,"outputNTUP_TRTFile"):
from ConversionDumper.ConversionDumperFlags import CDflags
CDflags.FileName=runArgs.outputNTUP_TRTFile
#little hack while autoConfiguration=everything is still not the default...
if hasattr(runArgs,"inputESDFile") and not hasattr(runArgs,"inputFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputESDFile )
if hasattr(runArgs,"outputNTUP_HECNOISEFile"):
from LArCalibTest.HECNoiseD3PDFlags import HECNoiseflags
HECNoiseflags.FileName=runArgs.outputNTUP_HECNOISEFile
rec.UserAlgs += ['LArCalibTest/HECD3PDFilter.py']
#little hack while autoConfiguration=everything is still not the default...
if hasattr(runArgs,"inputESDFile") and not hasattr(runArgs,"inputFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputESDFile )
if hasattr(runArgs,"outputNTUP_MCPFile"):
from MuonIDNtupleMakers.MuonIDNtupleMakersFlags import MNMFlags
MNMFlags.outputFile = runArgs.outputNTUP_MCPFile
MNMFlags.inputFiles = runArgs.inputESDFile
if hasattr(runArgs,"outputNTUP_SCTFile"):
from TrackD3PDMaker.TrackD3PDMakerSCTFlags import TrackD3PDSCTFlags
TrackD3PDSCTFlags.outputFile = runArgs.outputNTUP_SCTFile
if hasattr(runArgs,"inputESDFile") and not hasattr(runArgs,"inputFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputESDFile )
if hasattr(runArgs,"outputESDFile"):
#for TAG->ESD->skimmedESD
rec.doWriteESD.set_Value_and_Lock( True )
athenaCommonFlags.PoolESDOutput.set_Value_and_Lock( runArgs.outputESDFile )
if hasattr(runArgs,"outputRDOFile"):
#for TAG->RDO->skimmedRDO
rec.doWriteRDO.set_Value_and_Lock( True )
athenaCommonFlags.PoolRDOOutput.set_Value_and_Lock( runArgs.outputRDOFile )
if hasattr(runArgs,"inputTAGFile"):
rec.readTAG.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( True )
rec.readESD.set_Value_and_Lock( False )
rec.doWriteAOD.set_Value_and_Lock( False )
rec.doWriteESD.set_Value_and_Lock( False )
if hasattr(runArgs,"outputNTUP_ENHBIASFile"):
from TrigCostAthena.TrigCostAthenaFlags import TrigCostAthenaFlags
TrigCostAthenaFlags.StoreNtVerticesOutputFile.set_Value_and_Lock( runArgs.outputNTUP_ENHBIASFile )
TrigCostAthenaFlags.DoStoreNtVertices.set_Value_and_Lock( True )
if hasattr(runArgs,"inputESDFile") and not hasattr(runArgs,"inputFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputESDFile )
include("TrigCostAthena/ESDtoNTUP_ENHBIAS.py")
if hasattr(runArgs,"outputNTUP_FastCaloSimFile"):
from ISF_FastCaloSimParametrization.ISF_NativeFastCaloSimJobProperties import ISF_NativeFastCaloSimFlags
ISF_NativeFastCaloSimFlags.outputFile = runArgs.outputNTUP_FastCaloSimFile
if hasattr(runArgs,"inputESDFile") and not hasattr(runArgs,"inputFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputESDFile )
include("ISF_FastCaloSimParametrization/prodOptions.ISF_ntuple.py")
## Import D3PD flags before preExec, for convenience
try:
from D3PDMakerConfig.D3PDProdFlags import oldProdFlags
except(ImportError):
print("WARNING oldProdFlags not available. ")
pass
try:
from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags
except(ImportError):
print("WARNING D3PDMakerFlags not available. ")
pass
## Pre-exec
if hasattr(runArgs,"preExec"):
recoLog.info("transform pre-exec")
for cmd in runArgs.preExec:
recoLog.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
#========================================================
# Central topOptions (this is one is a string not a list)
#========================================================
if hasattr(runArgs,"topOptions"): include(runArgs.topOptions)
elif rec.DPDMakerScripts()!=[]: include("PrimaryDPDMaker/esdtodpd.py")
else: include( "RecExCommon/RecExCommon_topOptions.py" )
## Make "old style" D3PDs.
try:
for c in SetupOutputDPDs(runArgs, [oldProdFlags]): c()
except NameError:
print("WARNING: oldProdFlags not available")
pass
## Offline prescales (has to be *after* the topOptions)
if hasattr(runArgs,"prescales"):
recoLog.info( '**** DPD offline prescale arguments:' )
from PrimaryDPDMaker.JobTransformConfiguration import ApplyPrescale
for prescale in runArgs.prescales:
recoLog.info( prescale )
ApplyPrescale(prescale)
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
recoLog.info("transform post-exec")
for cmd in runArgs.postExec:
recoLog.info(cmd)
exec(cmd)
from future.utils import iteritems
###############################################################
#
# Skeleton top job options for Physics Validation
#
#==============================================================
# ==============================================================================
# Load your input file that you want to process
# ==============================================================================
include("RecJobTransforms/CommonRecoSkeletonJobOptions.py")
from AthenaCommon.Logging import logging
skelLog = logging.getLogger('PhysicsValidation')
skelLog.info( '****************** Starting Physics Validation *****************' )
from RecExConfig.RecFlags import rec
rec.readESD = False
rec.readAOD = False
rec.readRDO = False
rec.doDPD = False
rec.doHist = False
rec.doMonitoring = False
rec.doWriteAOD = False
rec.doWriteTAG = False
# Setup monitoring framework once
from AthenaMonitoring.AthenaMonitoringConf import AthenaMonManager
monMan = AthenaMonManager( "PhysValMonManager" )
monMan.ManualDataTypeSetup = True
monMan.DataType = "monteCarlo"
monMan.Environment = "altprod"
monMan.ManualRunLBSetup = True
monMan.Run = 1
monMan.LumiBlock = 1
# Input
from AthenaConfiguration.AllConfigFlags import ConfigFlags
if hasattr(runArgs,"inputESDFile"):
rec.readESD.set_Value_and_Lock( True )
athenaCommonFlags.PoolESDInput.set_Value_and_Lock( runArgs.inputESDFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolESDInput()
rec.readESD = True
rec.readAOD = False
elif hasattr(runArgs,"inputAODFile"):
rec.readAOD.set_Value_and_Lock( True )
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputAODFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolAODInput()
rec.readESD = False
rec.readAOD = True
else:
raise RuntimeError('No input file argument given (ESD or AOD input required)')
from AthenaCommon.AlgSequence import AlgSequence
topSequence = AlgSequence()
# Validation dictionary with default run setting:
validationDict = {
'Btag': False,
'Egamma': False,
'Electron': False,
'Example': True,
'Exotics': False,
'HSG6': False,
'InDet': False,
'Jet': False,
'MET': False,
'Muon': False,
'PFlow': False,
'Photon': False,
'PrimaryTracking': False,
'SMZMet': False,
'SMZee': False,
'SUSY': False,
'SecondaryTracking': False,
'Tau': False,
'Top': False,
'TopoCluster': False,
}
# Switch on/off various validation routines:
if hasattr(runArgs,"validationFlags"):
for flag in runArgs.validationFlags:
onoff = flag[:2]
validationType = flag[2:]
# Note that we can add new validation types on the fly
if onoff == 'do':
validationDict[validationType] = True
elif onoff == 'no':
validationDict[validationType] = False
else:
skelLog.warning("Ignored unrecognised validation control string for {0}: {1}".format(validationType, flag))
skelLog.info("Validation switches are set to: {0}".format(validationDict))
# Add containers needed for running on AOD if necessary
# This will check for existence, so no action will be taken
# if running on DAOD_PHYSVAL or non-reduced derivations
from PhysValMonitoring.PhysValUtils import addPhysValAODContent
addPhysValAODContent(topSequence,
doJets=validationDict['Jet'],
doTopoCluster=validationDict['TopoCluster'])
# Only for now due to xAOD issues?
topSequence += monMan
from AthenaCommon.AppMgr import ServiceMgr
from GaudiSvc.GaudiSvcConf import THistSvc
ServiceMgr += THistSvc()
svcMgr.THistSvc.Output += ["PhysVal DATAFILE='" + runArgs.outputNTUP_PHYSVALFile + "' OPT='RECREATE'"]
monMan.FileKey = "PhysVal"
# Schedule individual validations
from PyJobTransforms.trfUtils import findFile
for validationType, enabled in iteritems(validationDict):
if enabled:
JOFile = 'PhysValMonitoring/PhysVal{0}_jobOptions.py'.format(validationType)
if findFile(os.environ['JOBOPTSEARCHPATH'], JOFile):
rec.UserAlgs += [JOFile]
else:
skelLog.fatal("Job options file for {0} ({1}) was not found in JOBOPTSEARCHPATH!".format(validationType, JOFile))
raise RuntimeError('Cannot find JobOptions for {0} slice -- is the name correct?'.format(validationType))
## Pre-exec
if hasattr(runArgs,"preExec"):
skelLog.info("transform pre-exec")
for cmd in runArgs.preExec:
skelLog.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
# Now, include the master top options from RecExCommon.
include ("RecExCommon/RecExCommon_topOptions.py")
for tool in monMan.AthenaMonTools:
tool.ManagerName = 'PhysValMonManager'
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
skelLog.info("transform post-exec")
for cmd in runArgs.postExec:
skelLog.info(cmd)
exec(cmd)
# Temporary (July 19) trigger additions
if ConfigFlags.Trigger.EDMVersion == 3:
if hasattr(ToolSvc, 'TrigDecisionTool'):
ToolSvc.TrigDecisionTool.NavigationFormat="TrigComposite"
if not hasattr(svcMgr, 'xAODConfigSvc'):
from TrigConfxAOD.TrigConfxAODConf import TrigConf__xAODConfigSvc
svcMgr += TrigConf__xAODConfigSvc('xAODConfigSvc')
ToolSvc.TrigDecisionTool.TrigConfigSvc = svcMgr.xAODConfigSvc
###############################################################
#
# Skeleton top job options for AOD->xAOD
#
###############################################################
# $Id: skeleton.AODtoAOD_tf.py 588353 2014-03-18 22:38:59Z graemes $
###############################################################
# Common job options disable most RecExCommon by default. Re-enable below on demand.
include("RecJobTransforms/CommonRecoSkeletonJobOptions.py")
# Options to setup AOD to AOD (re)processing
rec.doAOD=True
rec.readAOD=True
rec.doWriteAOD=True
rec.doWritexAOD=True
from AthenaCommon.Logging import logging
recoLog = logging.getLogger('AOD_to_AOD')
recoLog.info( '****************** STARTING AOD Reprocessing *****************' )
from AthenaConfiguration.AllConfigFlags import ConfigFlags
## Input
if hasattr(runArgs,"inputAODFile"):
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readAOD.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( False )
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputAODFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolAODInput()
else:
raise RuntimeError("No AOD input file given")
## Outputs
if hasattr(runArgs,"outputAOD_RPRFile"):
#for TAG->AOD->skimmedAOD
rec.doWriteAOD.set_Value_and_Lock( True )
athenaCommonFlags.PoolAODOutput.set_Value_and_Lock( runArgs.outputAOD_RPRFile )
else:
raise RuntimeError("No AOD_RPR output file given")
## Pre-exec
if hasattr(runArgs,"preExec"):
recoLog.info("transform pre-exec")
for cmd in runArgs.preExec:
recoLog.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
#========================================================
# Central topOptions (this is one is a string not a list)
#========================================================
if hasattr(runArgs,"topOptions"): include(runArgs.topOptions)
else: include( "RecExCommon/RecExCommon_topOptions.py" )
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
recoLog.info("transform post-exec")
for cmd in runArgs.postExec:
recoLog.info(cmd)
exec(cmd)
###############################################################
#
# Skeleton top job options for AOD monitoring histograms
#
#==============================================================
#Common job options disable most RecExCommon by default. Re-enable below on demand.
include("PATJobTransforms/CommonSkeletonJobOptions.py")
from AthenaCommon.Logging import logging
recoLog = logging.getLogger('aod_to_hist')
recoLog.info( '****************** STARTING AOD->HIST MAKING *****************' )
from AthenaConfiguration.AllConfigFlags import ConfigFlags
from RecExConfig.RecFlags import rec
rec.readESD = False
rec.readAOD = True
rec.doDPD = False
rec.doHist = False
rec.doMonitoring = True
# Output log setting
OutputLevel = INFO
# Input and output for this substep
if hasattr(runArgs,"inputAODFile"):
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readAOD.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( False )
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputAODFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolAODInput()
if hasattr(runArgs,"outputHIST_AODFile"):
rec.doMonitoring.set_Value_and_Lock(True)
from AthenaMonitoring.DQMonFlags import DQMonFlags
DQMonFlags.histogramFile.set_Value_and_Lock( runArgs.outputHIST_AODFile )
## Pre-exec
if hasattr(runArgs,"preExec"):
recoLog.info("transform pre-exec")
for cmd in runArgs.preExec:
recoLog.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
# main jobOption - must always be included
include ("RecExCommon/RecExCommon_topOptions.py")
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
recoLog.info("transform post-exec")
for cmd in runArgs.postExec:
recoLog.info(cmd)
exec(cmd)
from __future__ import print_function
###############################################################
#
# Skeleton top job options for AOD->TAG
#
#==============================================================
#Common job options disable most RecExCommon by default. Re-enable below on demand.
include("PATJobTransforms/CommonSkeletonJobOptions.py")
rec.doWriteTAG=True
#from AthenaCommon.Logging import logging
import logging
recoLog = logging.getLogger('aod_to_tag')
recoLog.info( '****************** STARTING AOD->TAG MAKING *****************' )
## Input
if hasattr(runArgs,"inputFile"): athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputFile )
if hasattr(runArgs,"inputAODFile"):
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readAOD.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( False )
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputAODFile )
if hasattr(runArgs,"inputAOD_RPRFile"):
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readAOD.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( False )
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputAOD_RPRFile )
if hasattr(runArgs,"inputAOD_MRGFile"):
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readAOD.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( False )
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputAOD_MRGFile )
#set all output file names
if hasattr(runArgs,"outputTAGFile"):
athenaCommonFlags.PoolTAGOutput.set_Value_and_Lock( runArgs.outputTAGFile )
if hasattr(runArgs,"outputNTUP_FASTMONFile"):
rec.doFastPhysMonitoring.set_Value_and_Lock(True)
rec.RootFastPhysMonOutput.set_Value_and_Lock(runArgs.outputNTUP_FASTMONFile)
## Pre-exec
if hasattr(runArgs,"preExec"):
recoLog.info("transform pre-exec")
for cmd in runArgs.preExec:
recoLog.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
#========================================================
# Central topOptions (this is one is a string not a list)
#========================================================
if hasattr(runArgs,"topOptions"): include(runArgs.topOptions)
else: include("RecExCommon/RecExCommon_topOptions.py")
if rec.Commissioning:
Service("GeoModelSvc").IgnoreTagDifference = True
Service("GeoModelSvc").OutputLevel=6
if rec.doWriteAOD:
if rec.readAOD():
try:
StreamAOD.ExtendProvenanceRecord = False
except:
print("StreamAOD was not defined, cannot set ExtendProvenanceRecord = False. Check your flags.")
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
recoLog.info("transform post-exec")
for cmd in runArgs.postExec:
recoLog.info(cmd)
exec(cmd)
from __future__ import print_function
###############################################################
#
# Skeleton top job options for ESD->AOD
# Put here outputs that require rec.doAOD=True
#
# New version for revamped job transforms
#
#
#==============================================================
# Common job options disable most RecExCommon by default. Re-enable below on demand.
include("RecJobTransforms/CommonRecoSkeletonJobOptions.py")
rec.doAOD=True
#from AthenaCommon.Logging import logging
import logging
recoLog = logging.getLogger('esd_to_aod')
recoLog.info( '****************** STARTING ESD->AOD MAKING *****************' )
from AthenaCommon.AppMgr import ServiceMgr; import AthenaPoolCnvSvc.AthenaPool
from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
from AthenaConfiguration.AllConfigFlags import ConfigFlags
## Input
if hasattr(runArgs,"inputFile"):
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputFile )
ConfigFlags.Input.Files = athenaCommonFlags.FilesInput()
if hasattr(runArgs,"inputESDFile"):
globalflags.InputFormat.set_Value_and_Lock('pool')
rec.readESD.set_Value_and_Lock( True )
rec.readRDO.set_Value_and_Lock( False )
athenaCommonFlags.PoolESDInput.set_Value_and_Lock( runArgs.inputESDFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolESDInput()
## Pre-exec
if hasattr(runArgs,"preExec"):
recoLog.info("transform pre-exec")
for cmd in runArgs.preExec:
recoLog.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
print("preInclude",fragment)
include(fragment)
## Outputs
if hasattr(runArgs,"outputAODFile"):
rec.doAOD.set_Value_and_Lock( True )
rec.doWriteAOD.set_Value_and_Lock( True )
athenaCommonFlags.PoolAODOutput.set_Value_and_Lock( runArgs.outputAODFile )
# Lock DQ configuration to prevent downstream override
# RB 15/12/2020: This logic was added in !36737, not sure if still needed
from AthenaMonitoring.DQMonFlags import DQMonFlags
print('DQMonFlags.useTrigger override')
DQMonFlags.useTrigger.set_Value_and_Lock(rec.doTrigger() and DQMonFlags.useTrigger())
if hasattr(runArgs,"outputTAGFile"):
# should be used as outputTAGFile_e2a=myTAG.root so that it does not trigger AODtoTAG
# if writing TAG file, need AOD object in any case
rec.doAOD.set_Value_and_Lock( True )
rec.doWriteTAG.set_Value_and_Lock( True )
athenaCommonFlags.PoolTAGOutput.set_Value_and_Lock( runArgs.outputTAGFile )
if hasattr(runArgs,"tmpAOD"):
rec.doAOD.set_Value_and_Lock( True )
rec.doWriteAOD.set_Value_and_Lock( True )
athenaCommonFlags.PoolAODOutput.set_Value_and_Lock( runArgs.tmpAOD )
if hasattr(runArgs,"outputHIST_AOD_INTFile"):
rec.doMonitoring.set_Value_and_Lock(True)
DQMonFlags.histogramFile.set_Value_and_Lock( runArgs.outputHIST_AOD_INTFile )
if hasattr(runArgs,"outputNTUP_BTAGFile"):
from BTagging.BTaggingFlags import BTaggingFlags
BTaggingFlags.doJetTagNtuple = True
BTaggingFlags.JetTagNtupleName = runArgs.outputNTUP_BTAGFile
if hasattr(runArgs,"outputHIST_PHYSVALMONFile"):
rec.doPhysValMonHists=True
## Setup the output file(s):
from GaudiSvc.GaudiSvcConf import THistSvc
svcMgr += THistSvc()
output=svcMgr.THistSvc.Output
svcMgr.THistSvc.Output+= ["PhysValMon DATAFILE='"+runArgs.outputHIST_PHYSVALMONFile+"' OPT='RECREATE'"]
# now done in RecExCommon_topOption to ensure the right ordering of algs.
# include("PhysValMon/PhysValMon_RecoOpt.py")
if hasattr(runArgs, 'outputXML_JiveXMLFile'):
jp.Rec.doJiveXML.set_Value_and_Lock(True)
rec.OutputFileNameForRecoStep="ESDtoAOD"
#========================================================
# Central topOptions (this is one is a string not a list)
#========================================================
if hasattr(runArgs,"topOptions"): include(runArgs.topOptions)
else: include( "RecExCommon/RecExCommon_topOptions.py" )
# Remove unwanted back navigation to ESD when ESD is temporary
if hasattr(runArgs,"outputAODFile"):
if hasattr(runArgs,"ESDFileIO") and runArgs.ESDFileIO == "temporary":
try:
StreamAOD.ExtendProvenanceRecord = False
except:
recoLog.info("StreamAOD was not defined, cannot set ExtendProvenanceRecord = False. Check your flags.")
#D3PDMaker outputs
if hasattr(runArgs,"outputNTUP_MINBIASFile"):
from D3PDMakerConfig.D3PDProdFlags import prodFlags
prodFlags.WriteMinBiasD3PD.FileName = runArgs.outputNTUP_MINBIASFile
prodFlags.WriteMinBiasD3PD.set_Value_and_Lock( True )
include( prodFlags.WriteMinBiasD3PD.DPDMakerScript )
pass
#==========================================================
# Use ZLIB for compression of all temporary outputs
#==========================================================
from AthenaPoolCnvSvc import PoolAttributeHelper as pah
if hasattr(runArgs, "outputAODFile") and (runArgs.outputAODFile.endswith('_000') or runArgs.outputAODFile.startswith('tmp.')):
ServiceMgr.AthenaPoolCnvSvc.PoolAttributes += [ pah.setFileCompAlg( athenaCommonFlags.PoolAODOutput(), 1 ) ]
ServiceMgr.AthenaPoolCnvSvc.PoolAttributes += [ pah.setFileCompLvl( athenaCommonFlags.PoolAODOutput(), 1 ) ]
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
recoLog.info("transform post-exec")
for cmd in runArgs.postExec:
recoLog.info(cmd)
exec(cmd)
from __future__ import print_function
###############################################################
#
# Skeleton top job options for ESD/AOD/DPD merging
#
#==============================================================
#Common job options disable most RecExCommon by default. Re-enable below on demand.
include("PATJobTransforms/CommonSkeletonJobOptions.py")
rec.doAOD=False
rec.doESD=False
#from AthenaCommon.Logging import logging
import logging
recoLog = logging.getLogger('merge_pool')
recoLog.info( '****************** STARTING POOL FILE MERGING *****************' )
from AthenaConfiguration.AllConfigFlags import ConfigFlags
## Input
# Deal with generic case first of all
if hasattr(runArgs, "inputPOOL_MRG_INPUTFile"):
if runArgs.inputPOOL_MRG_INPUTFileType == "AOD":
runArgs.inputAODFile = runArgs.inputPOOL_MRG_INPUTFile
runArgs.outputAOD_MRGFile = runArgs.outputPOOL_MRG_OUTPUTFile
elif runArgs.inputPOOL_MRG_INPUTFileType == "ESD":
runArgs.inputESDFile = runArgs.inputPOOL_MRG_INPUTFile
runArgs.outputESD_MRGFile = runArgs.outputPOOL_MRG_OUTPUTFile
else:
recoLog.warning("No recognised data type for merge input and output ({0}). Merge setup may not be correct!".format(runArgs.inputPOOL_MRG_INPUTFileType))
# DAOD comes in many flavours, so automate transforming this into a "standard" AOD argument
DAOD_Input_Key = [ k for k in dir(runArgs) if k.startswith("inputDAOD") and k.endswith("File") ]
if len(DAOD_Input_Key) == 1:
runArgs.inputAODFile = getattr(runArgs, DAOD_Input_Key[0])
DAOD_Output_Key = [ k for k in dir(runArgs) if k.startswith("outputDAOD") and k.endswith("_MRGFile") ]
if len(DAOD_Output_Key) == 1:
runArgs.outputAOD_MRGFile = getattr(runArgs, DAOD_Output_Key[0])
if hasattr(runArgs,"inputFile"): athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputFile )
if hasattr(runArgs,"inputAODFile"):
from InDetRecExample.InDetKeys import InDetKeys;
InDetFlags.keepAdditionalHitsOnTrackParticle.set_Value_and_Lock(True)
rec.readAOD.set_Value_and_Lock( True )
rec.doWriteAOD.set_Value_and_Lock( True )
athenaCommonFlags.PoolAODInput.set_Value_and_Lock( runArgs.inputAODFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolAODInput()
rec.doAODMerging.set_Value_and_Lock(True)
rec.doApplyAODFix.set_Value_and_Lock(False)
if hasattr(runArgs,"inputESDFile"):
rec.readESD.set_Value_and_Lock( True )
rec.doWriteESD.set_Value_and_Lock( True )
athenaCommonFlags.PoolESDInput.set_Value_and_Lock( runArgs.inputESDFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolESDInput()
## Output
if hasattr(runArgs,"outputAOD_MRGFile"): athenaCommonFlags.PoolAODOutput.set_Value_and_Lock( runArgs.outputAOD_MRGFile )
if hasattr(runArgs,"outputESD_MRGFile"): athenaCommonFlags.PoolESDOutput.set_Value_and_Lock( runArgs.outputESD_MRGFile )
## Pre-exec
if hasattr(runArgs,"preExec"):
recoLog.info("transform pre-exec")
for cmd in runArgs.preExec:
recoLog.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
#Lock doAOD/ESD before starting RecExCommon, so they are not overwritten by the auto-configuration
rec.doAOD.lock()
rec.doESD.lock()
include( "RecExCommon/RecExCommon_topOptions.py" )
if rec.doWriteAOD:
if rec.readAOD():
StreamAOD.ExtendProvenanceRecord = False
else:
print("StreamAOD was not defined, cannot set ExtendProvenanceRecord = False. Check your flags.")
if rec.doWriteESD:
if rec.readESD():
StreamESD.ExtendProvenanceRecord = False
# FIXME: Manually add dependencies on conditions data required
# to read tracking collections.
# See ATLASRECTS-6768.
condSeq = AthSequencer("AthCondSeq")
if hasattr (condSeq, 'PixelDetectorElementCondAlg'):
StreamESD.ExtraInputs.add(
("InDetDD::SiDetectorElementCollection", "ConditionStore+PixelDetectorElementCollection"))
if hasattr (condSeq, 'SCT_DetectorElementCondAlg'):
StreamESD.ExtraInputs.add(
("InDetDD::SiDetectorElementCollection", "ConditionStore+SCT_DetectorElementCollection"))
else:
print("StreamESD was not defined, cannot set ExtendProvenanceRecord = False. Check your flags.")
# Perfmon
from PerfMonComps.PerfMonFlags import jobproperties as pmon_properties
pmon_properties.PerfMonFlags.doMonitoring=True
pmon_properties.PerfMonFlags.doSemiDetailedMonitoring=True
pmon_properties.PerfMonFlags.OutputFile = "ntuple_POOLMerge"
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
recoLog.info("transform post-exec")
for cmd in runArgs.postExec:
recoLog.info(cmd)
exec(cmd)
from __future__ import print_function
###############################################################
#
# Skeleton top job options for RAW->ALL
#
# TODO: Review of options supported here...
#
#==============================================================
#Common job options disable most RecExCommon by default. Re-enable below on demand.
include("RecJobTransforms/CommonRecoSkeletonJobOptions.py")
#from AthenaCommon.Logging import logging
import logging
recoLog = logging.getLogger('raw_to_all')
recoLog.info( '****************** STARTING RAW->ALL MAKING *****************' )
from AthenaCommon.AppMgr import ServiceMgr; import AthenaPoolCnvSvc.AthenaPool
from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
from AthenaConfiguration.AllConfigFlags import ConfigFlags
## Pre-exec
if hasattr(runArgs,"preExec"):
recoLog.info("transform pre-exec")
for cmd in runArgs.preExec:
recoLog.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
## EST/AOD Output
# should be first as some other configuration might depend on it (e.g. trigger output)
if hasattr(runArgs,"outputESDFile"):
rec.doESD.set_Value_and_Lock( True )
rec.doWriteESD.set_Value_and_Lock( True )
athenaCommonFlags.PoolESDOutput.set_Value_and_Lock( runArgs.outputESDFile )
if hasattr(runArgs,"outputAODFile"):
rec.doAOD.set_Value_and_Lock( True )
rec.doWriteAOD.set_Value_and_Lock( True )
athenaCommonFlags.PoolAODOutput.set_Value_and_Lock( runArgs.outputAODFile )
# Lock DQ configuration to prevent downstream override
# RB 15/12/2020: This logic was added in !36737, not sure if still needed
from AthenaMonitoring.DQMonFlags import DQMonFlags
print('DQMonFlags.useTrigger override')
DQMonFlags.useTrigger.set_Value_and_Lock(rec.doTrigger() and DQMonFlags.useTrigger())
## Input
# BS
DRAWInputs = [ prop for prop in dir(runArgs) if prop.startswith('inputDRAW') and prop.endswith('File')]
if hasattr(runArgs,"inputBSFile"):
if len(DRAWInputs) > 0:
raise RuntimeError('Impossible to run RAWtoALL with input BS and DRAW files (one input type only!)')
rec.readRDO.set_Value_and_Lock( True )
globalflags.InputFormat.set_Value_and_Lock('bytestream')
athenaCommonFlags.BSRDOInput.set_Value_and_Lock( runArgs.inputBSFile )
ConfigFlags.Input.Files = athenaCommonFlags.BSRDOInput()
if len(DRAWInputs) == 1:
rec.readRDO.set_Value_and_Lock( True )
globalflags.InputFormat.set_Value_and_Lock('bytestream')
athenaCommonFlags.BSRDOInput.set_Value_and_Lock( getattr(runArgs, DRAWInputs[0]) )
ConfigFlags.Input.Files = athenaCommonFlags.BSRDOInput()
elif len(DRAWInputs) > 1:
raise RuntimeError('Impossible to run RAWtoALL with multiple input DRAW files (viz.: {0})'.format(DRAWInputs))
# RDO
if hasattr(runArgs,"inputRDOFile"):
rec.readRDO.set_Value_and_Lock( True )
globalflags.InputFormat.set_Value_and_Lock('pool')
athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDOFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolRDOInput()
if hasattr(runArgs,"inputRDO_TRIGFile"):
rec.readRDO.set_Value_and_Lock( True )
globalflags.InputFormat.set_Value_and_Lock('pool')
athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDO_TRIGFile)
ConfigFlags.Input.Files = athenaCommonFlags.PoolRDOInput()
rec.doTrigger.set_Value_and_Lock(False)
from AthenaMonitoring.DQMonFlags import DQMonFlags
DQMonFlags.doCTPMon = False
DQMonFlags.doHLTMon = False
DQMonFlags.useTrigger = False
DQMonFlags.doLVL1CaloMon = False
# Configure HLT output
locked_flags = ConfigFlags.clone() # cannot lock yet because RecExCommon modifies them
locked_flags.lock()
from TriggerJobOpts.HLTTriggerResultGetter import HLTTriggerResultGetter
hltOutput = HLTTriggerResultGetter(locked_flags)
# Add Trigger menu metadata
from RecExConfig.ObjKeyStore import objKeyStore
if rec.doFileMetaData():
metadataItems = [ "xAOD::TriggerMenuContainer#TriggerMenu",
"xAOD::TriggerMenuAuxContainer#TriggerMenuAux." ]
objKeyStore.addManyTypesMetaData( metadataItems )
# Configure other outputs
from TrigEDMConfig.TriggerEDM import getLvl1ESDList
from TrigEDMConfig.TriggerEDM import getLvl1AODList
from TrigEDMConfig.TriggerEDM import getTrigIDTruthList
objKeyStore.addManyTypesStreamESD(getTrigIDTruthList(ConfigFlags.Trigger.ESDEDMSet))
objKeyStore.addManyTypesStreamAOD(getTrigIDTruthList(ConfigFlags.Trigger.AODEDMSet))
objKeyStore.addManyTypesStreamESD(getLvl1ESDList())
objKeyStore.addManyTypesStreamAOD(getLvl1AODList())
# EVNT (?)
if hasattr(runArgs,"inputEVNTFile"):
#specific settings for AtlfastIIF
rec.readRDO.set_Value_and_Lock( True )
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputEVNTFile )
## Output
if hasattr(runArgs,"trigFilterList"):
rec.doTriggerFilter.set_Value_and_Lock(True)
rec.triggerFilterList = "||".join(runArgs.trigFilterList)
if hasattr(runArgs,"outputHIST_R2AFile"):
rec.doMonitoring.set_Value_and_Lock(True)
from AthenaMonitoring.DQMonFlags import DQMonFlags
DQMonFlags.histogramFile.set_Value_and_Lock( runArgs.outputHIST_R2AFile )
DQMonFlags.monType='BSall'
if hasattr(runArgs,"outputTAG_COMMFile"):
rec.doWriteTAGCOM.set_Value_and_Lock( True )
rec.PoolTAGCOMOutput.set_Value_and_Lock( runArgs.outputTAG_COMMFile )
if hasattr(runArgs,"outputHISTFile"):
rec.doMonitoring.set_Value_and_Lock(True)
from AthenaMonitoring.DQMonFlags import DQMonFlags
DQMonFlags.histogramFile.set_Value_and_Lock( runArgs.outputHISTFile )
DQMonFlags.monType='BSall'
if hasattr(runArgs, "outputTXT_FTKIPFile"):
rec.doCalo.set_Value_and_Lock(False)
rec.doInDet.set_Value_and_Lock(True)
rec.doMuon.set_Value_and_Lock(False)
rec.doJetMissingETTag.set_Value_and_Lock(False)
rec.doEgamma.set_Value_and_Lock(False)
rec.doMuonCombined.set_Value_and_Lock(False)
rec.doTau.set_Value_and_Lock(False)
rec.doTrigger.set_Value_and_Lock(False)
rec.UserAlgs=["FastTrackSimWrap/FastTrackSimWrap_jobOptions.py"]
if hasattr(runArgs,"outputNTUP_MUONCALIBFile"):
from MuonRecExample.MuonRecFlags import muonRecFlags
muonRecFlags.doCalib = True
muonRecFlags.calibNtupleOutput.set_Value_and_Lock( runArgs.outputNTUP_MUONCALIBFile )
# Event display tarballs
if hasattr(runArgs, 'outputTXT_JIVEXMLTGZFile'):
jp.Rec.doJiveXML.set_Value_and_Lock(True)
# DESD, DAOD and DRAW
DRAWOutputs = [ prop for prop in dir(runArgs) if prop.startswith('outputDRAW') and prop.endswith('File')]
DAODOutputs = [ prop for prop in dir(runArgs) if prop.startswith('outputDAOD') and prop.endswith('File')]
DESDOutputs = [ prop for prop in dir(runArgs) if prop.startswith('outputDESD') and prop.endswith('File')]
if len(DESDOutputs) > 0 or len(DAODOutputs) > 0:
rec.doWriteDPD.set_Value_and_Lock(True)
listOfFlags=[]
try:
from PrimaryDPDMaker.PrimaryDPDFlags import primDPD
listOfFlags.append(primDPD)
except ImportError:
print("WARNING PrimaryDPDFlags not available. Only OK if you're using job transforms without the AtlasAnalysis project.")
from RecJobTransforms.DPDUtils import SetupOutputDPDs
rec.DPDMakerScripts.append(SetupOutputDPDs(runArgs,listOfFlags))
# Need to handle this properly in RecExCommon top options
rec.OutputFileNameForRecoStep="RAWtoALL"
#========================================================
# Central topOptions (this is one is a string not a list)
#========================================================
#if len(rec.DPDMakerScripts()) > 0 and len(DRAWOutputs) == 0:
if len(rec.DPDMakerScripts()) > 0:
rec.doDPD = True
rec.DPDMakerScripts.append("PrimaryDPDMaker/PrimaryDPDMaker.py")
include( "RecExCommon/RecExCommon_topOptions.py" )
if hasattr(runArgs,"inputRDO_TRIGFile") and rec.doFileMetaData():
ToolSvc += CfgMgr.xAODMaker__TriggerMenuMetaDataTool( "TriggerMenuMetaDataTool",
OutputLevel = 3 )
svcMgr.MetaDataSvc.MetaDataTools += [ ToolSvc.TriggerMenuMetaDataTool ]
#==========================================================
# Use ZLIB for compression of all temporary outputs
#==========================================================
from AthenaPoolCnvSvc import PoolAttributeHelper as pah
if hasattr(runArgs, "outputESDFile") and (runArgs.outputESDFile.endswith('_000') or runArgs.outputESDFile.startswith('tmp.')):
ServiceMgr.AthenaPoolCnvSvc.PoolAttributes += [ pah.setFileCompAlg( athenaCommonFlags.PoolESDOutput(), 1 ) ]
ServiceMgr.AthenaPoolCnvSvc.PoolAttributes += [ pah.setFileCompLvl( athenaCommonFlags.PoolESDOutput(), 1 ) ]
if hasattr(runArgs, "outputAODFile") and (runArgs.outputAODFile.endswith('_000') or runArgs.outputAODFile.startswith('tmp.')):
ServiceMgr.AthenaPoolCnvSvc.PoolAttributes += [ pah.setFileCompAlg( athenaCommonFlags.PoolAODOutput(), 1 ) ]
ServiceMgr.AthenaPoolCnvSvc.PoolAttributes += [ pah.setFileCompLvl( athenaCommonFlags.PoolAODOutput(), 1 ) ]
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
recoLog.info("transform post-exec")
for cmd in runArgs.postExec:
recoLog.info(cmd)
exec(cmd)
from __future__ import print_function
###############################################################
#
# Skeleton top job options for RAW->ESD
# Put here outputs that require rec.doESD=True
#
# TODO: Review of options supported here...
#
#==============================================================
#Common job options disable most RecExCommon by default. Re-enable below on demand.
include("RecJobTransforms/CommonRecoSkeletonJobOptions.py")
rec.doESD=True
#from AthenaCommon.Logging import logging
import logging
recoLog = logging.getLogger('raw_to_esd')
recoLog.info( '****************** STARTING RAW->ESD MAKING *****************' )
## Automatically turn ON/OFF and set output file name of each possible DPD (in this case: DRAW)
listOfFlags=[]
try:
from PrimaryDPDMaker.PrimaryDPDFlags import primDPD
listOfFlags.append(primDPD)
except ImportError:
print("WARNING PrimaryDPDFlags not available. Only OK if you're using job transforms without the AtlasAnalysis project.")
from PATJobTransforms.DPDUtils import SetupOutputDPDs
rec.DPDMakerScripts.append(SetupOutputDPDs(runArgs,listOfFlags))
from AthenaCommon.AppMgr import ServiceMgr; import AthenaPoolCnvSvc.AthenaPool
from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
from AthenaConfiguration.AllConfigFlags import ConfigFlags
## Pre-exec
if hasattr(runArgs,"preExec"):
recoLog.info("transform pre-exec")
for cmd in runArgs.preExec:
recoLog.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
## Input
# BS
DRAWInputs = [ prop for prop in dir(runArgs) if prop.startswith('inputDRAW') and prop.endswith('File')]
if hasattr(runArgs,"inputBSFile"):
if len(DRAWInputs) > 0:
raise RuntimeError('Impossible to run RAWtoESD with input BS and DRAW files (one input type only!)')
rec.readRDO.set_Value_and_Lock( True )
globalflags.InputFormat.set_Value_and_Lock('bytestream')
athenaCommonFlags.BSRDOInput.set_Value_and_Lock( runArgs.inputBSFile )
ConfigFlags.Input.Files = athenaCommonFlags.BSRDOInput()
if len(DRAWInputs) == 1:
rec.readRDO.set_Value_and_Lock( True )
globalflags.InputFormat.set_Value_and_Lock('bytestream')
athenaCommonFlags.BSRDOInput.set_Value_and_Lock( getattr(runArgs, DRAWInputs[0]) )
ConfigFlags.Input.Files = athenaCommonFlags.BSRDOInput()
elif len(DRAWInputs) > 1:
raise RuntimeError('Impossible to run RAWtoESD with multiple input DRAW files (viz.: {0})'.format(DRAWInputs))
# RDO
if hasattr(runArgs,"inputRDOFile"):
rec.readRDO.set_Value_and_Lock( True )
globalflags.InputFormat.set_Value_and_Lock('pool')
athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDOFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolRDOInput()
if hasattr(runArgs,"inputRDO_TRIGFile"):
rec.readRDO.set_Value_and_Lock( True )
globalflags.InputFormat.set_Value_and_Lock('pool')
athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDO_TRIGFile)
ConfigFlags.Input.Files = athenaCommonFlags.PoolRDOInput()
rec.doTrigger.set_Value_and_Lock(False)
from AthenaMonitoring.DQMonFlags import DQMonFlags
DQMonFlags.doCTPMon = False
DQMonFlags.doHLTMon = False
DQMonFlags.useTrigger = False
DQMonFlags.doLVL1CaloMon = False
# Configure HLT output
locked_flags = ConfigFlags.clone() # cannot lock yet because RecExCommon modifies them
locked_flags.lock()
from TriggerJobOpts.HLTTriggerResultGetter import HLTTriggerResultGetter
hltOutput = HLTTriggerResultGetter(locked_flags)
# Add Trigger menu metadata
from RecExConfig.ObjKeyStore import objKeyStore
if rec.doFileMetaData():
metadataItems = [ "xAOD::TriggerMenuContainer#TriggerMenu",
"xAOD::TriggerMenuAuxContainer#TriggerMenuAux." ]
objKeyStore.addManyTypesMetaData( metadataItems )
# Configure other outputs
from TrigEDMConfig.TriggerEDM import getLvl1ESDList
from TrigEDMConfig.TriggerEDM import getLvl1AODList
from TrigEDMConfig.TriggerEDM import getTrigIDTruthList
objKeyStore.addManyTypesStreamESD(getTrigIDTruthList(ConfigFlags.Trigger.ESDEDMSet))
objKeyStore.addManyTypesStreamAOD(getTrigIDTruthList(ConfigFlags.Trigger.AODEDMSet))
objKeyStore.addManyTypesStreamESD(getLvl1ESDList())
objKeyStore.addManyTypesStreamAOD(getLvl1AODList())
if hasattr(runArgs,"inputRDO_FILTFile"):
rec.readRDO.set_Value_and_Lock( True )
globalflags.InputFormat.set_Value_and_Lock('pool')
athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDO_FILTFile )
# EVNT (?)
if hasattr(runArgs,"inputEVNTFile"):
#specific settings for AtlfastIIF
rec.readRDO.set_Value_and_Lock( True )
athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputEVNTFile )
# For these DRAW names note that a bit of name mangling is applied by the DPD writer,
# with, e.g., a '.pool.root' extension being dropped. (N.B. they are bytestream so
# .pool.root is misleading anyway). If you give a mangleable name then the transform
# will fail on output file validation. We assume if you ask for these filetypes
# that you know what you are doing!
if hasattr(runArgs,"outputDRAW_ZEEFile"):
primDPD.WriteRAWPerfDPD_ZEE.FileName = runArgs.outputDRAW_ZEEFile
if hasattr(runArgs,"outputDRAW_WENUFile"):
primDPD.WriteRAWPerfDPD_WENU.FileName = runArgs.outputDRAW_WENUFile
if hasattr(runArgs,"outputDRAW_ZMUMUFile"):
primDPD.WriteRAWPerfDPD_ZMUMU.FileName = runArgs.outputDRAW_ZMUMUFile
if hasattr(runArgs,"outputDRAW_WMUNUFile"):
primDPD.WriteRAWPerfDPD_WMUNU.FileName = runArgs.outputDRAW_WMUNUFile
if hasattr(runArgs,"trigFilterList"):
rec.doTriggerFilter.set_Value_and_Lock(True)
rec.triggerFilterList = "||".join(runArgs.trigFilterList)
if hasattr(runArgs,"outputESDFile"):
rec.doESD.set_Value_and_Lock( True )
rec.doWriteESD.set_Value_and_Lock( True )
athenaCommonFlags.PoolESDOutput.set_Value_and_Lock( runArgs.outputESDFile )
if hasattr(runArgs,"outputAODFile"):
rec.doAOD.set_Value_and_Lock( True )
rec.doWriteAOD.set_Value_and_Lock( True )
athenaCommonFlags.PoolAODOutput.set_Value_and_Lock( runArgs.outputAODFile )
if hasattr(runArgs,"outputTAG_COMMFile"):
rec.doWriteTAGCOM.set_Value_and_Lock( True )
rec.PoolTAGCOMOutput.set_Value_and_Lock( runArgs.outputTAG_COMMFile )
if hasattr(runArgs,"outputNTUP_TRKVALIDFile"):
from InDetRecExample.InDetJobProperties import InDetFlags
InDetFlags.doTrkNtuple.set_Value_and_Lock( True )
InDetFlags.doPixelTrkNtuple.set_Value_and_Lock( True )
from InDetRecExample.InDetKeys import InDetKeys
InDetKeys.trkValidationNtupleName.set_Value_and_Lock( runArgs.outputNTUP_TRKVALIDFile )
if hasattr(runArgs,"outputNTUP_MUONCALIBFile"):
from MuonRecExample.MuonRecFlags import muonRecFlags
muonRecFlags.doCalib = True
muonRecFlags.calibNtupleOutput.set_Value_and_Lock( runArgs.outputNTUP_MUONCALIBFile )
if hasattr(runArgs,"outputNTUP_SCTFile"):
rec.DPDMakerScripts.append("TrackD3PDMaker/SCTNtuple.py")
from TrackD3PDMaker.TrackD3PDMakerSCTFlags import TrackD3PDSCTFlags
TrackD3PDSCTFlags.outputFile = runArgs.outputNTUP_SCTFile
if hasattr(runArgs,"outputHIST_ESD_INTFile"):
rec.doMonitoring.set_Value_and_Lock(True)
from AthenaMonitoring.DQMonFlags import DQMonFlags
DQMonFlags.histogramFile.set_Value_and_Lock( runArgs.outputHIST_ESD_INTFile )
# Event display tarballs
if hasattr(runArgs, 'outputTXT_JIVEXMLTGZFile'):
jp.Rec.doJiveXML.set_Value_and_Lock(True)
rec.OutputFileNameForRecoStep="RAWtoESD"
#========================================================
# Central topOptions (this is one is a string not a list)
#========================================================
if hasattr(runArgs,"topOptions"): include(runArgs.topOptions)
else: include( "RecExCommon/RecExCommon_topOptions.py" )
if hasattr(runArgs,"inputRDO_TRIGFile") and rec.doFileMetaData():
ToolSvc += CfgMgr.xAODMaker__TriggerMenuMetaDataTool( "TriggerMenuMetaDataTool",
OutputLevel = 3 )
svcMgr.MetaDataSvc.MetaDataTools += [ ToolSvc.TriggerMenuMetaDataTool ]
#==========================================================
# Use ZLIB for compression of all temporary outputs
#==========================================================
if hasattr(runArgs, "outputESDFile") and (runArgs.outputESDFile.endswith('_000') or runArgs.outputESDFile.startswith('tmp.')):
ServiceMgr.AthenaPoolCnvSvc.PoolAttributes += [ "DatabaseName = '" + athenaCommonFlags.PoolESDOutput()+ "'; COMPRESSION_ALGORITHM = '1'" ]
ServiceMgr.AthenaPoolCnvSvc.PoolAttributes += [ "DatabaseName = '" + athenaCommonFlags.PoolESDOutput()+ "'; COMPRESSION_LEVEL = '1'" ]
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
recoLog.info("transform post-exec")
for cmd in runArgs.postExec:
recoLog.info(cmd)
exec(cmd)
###############################################################
#
# Skeleton top job options for RDO->BS
#
#==============================================================
#Common job options disable most RecExCommon by default. Re-enable below on demand.
include("RecJobTransforms/CommonRecoSkeletonJobOptions.py")
# disable ESD object making
rec.doESD.set_Value_and_Lock(False)
from AthenaConfiguration.AllConfigFlags import ConfigFlags
from AthenaCommon.Logging import logging
recoLog = logging.getLogger('rdo_to_bs')
recoLog.info( '****************** STARTING RDO->BS MAKING *****************' )
## Input
if hasattr(runArgs,"inputFile"): athenaCommonFlags.FilesInput.set_Value_and_Lock( runArgs.inputFile )
if hasattr(runArgs,"inputRDOFile"):
rec.readRDO.set_Value_and_Lock( True )
globalflags.InputFormat.set_Value_and_Lock('pool')
athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDOFile )
ConfigFlags.Input.Files = athenaCommonFlags.PoolRDOInput()
##Outputs
if hasattr(runArgs,"outputBSFile"):
rec.doWriteBS.set_Value_and_Lock( True )
bsfilename=runArgs.outputBSFile
athenaCommonFlags.BSRDOOutput.set_Value_and_Lock( runArgs.outputBSFile )
## Pre-exec
if hasattr(runArgs,"preExec"):
recoLog.info("transform pre-exec")
for cmd in runArgs.preExec:
recoLog.info(cmd)
exec(cmd)
## Pre-include
if hasattr(runArgs,"preInclude"):
for fragment in runArgs.preInclude:
include(fragment)
#========================================================
# Central topOptions (this is one is a string not a list)
#========================================================
if hasattr(runArgs,"topOptions"): include(runArgs.topOptions)
else: include( "RecExCommon/RecExCommon_topOptions.py" )
## Post-include
if hasattr(runArgs,"postInclude"):
for fragment in runArgs.postInclude:
include(fragment)
## Post-exec
if hasattr(runArgs,"postExec"):
recoLog.info("transform post-exec")
for cmd in runArgs.postExec:
recoLog.info(cmd)
exec(cmd)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment