Beispiel #1
0
#if recAlgs.doObjMissingET() or rec.readESD() or rec.readAOD():
#        protectedInclude ("ObjMissingET/ObjMissingET_CBNT_jobOptions.py")

#if recAlgs.doMissingETSig() or rec.readESD() or rec.readAOD() :
#        protectedInclude ("MissingETSig/MissingETSig_CBNT_jobOptions.py")

## #comment out until statuscode is fixed
# not supported anymore
## if recAlgs.doEFlow() or rec.readESD():
##          protectedInclude ("eflowRec/jobOptions_CBNT_eflow.py")

## if recAlgs.doEFlowJet():
##         protectedInclude ("eflowRec/ConeJetEflow_CBNT_jobOptions.py")

if rec.doHeavyIon():
    protectedInclude("HIRecExample/HIRec_CBNT_jobOptions.py")

if recAlgs.doTrigger() or (rec.readESD() and not rec.noESDTrigger()):
    protectedInclude("TriggerRelease/jobOfragment_TriggerCBNT.py")

if rec.doAOD() or rec.readAOD():
    protectedInclude("CBNT_AOD/AOD_CBNT_jobOptions.py")

if recAlgs.doAtlfast():
    protectedInclude("CBNT_AOD/AOD_CBNT_FastTree_jobOptions.py")

protectedInclude("CBNT_Athena/CBNT_Audit_jobOptions.py")

#CBNT_Audit.detailedTime = false ; // put in the ntuple CPU time per algrithm
# list of algorithms to be monitored (by default take them all)
Beispiel #2
0
log.info("Project name %s",projectName)
log.info("DetDescription %s", globalflags.DetDescrVersion())
log.info("File type %s",data_type)
log.info("Beam type %s",beam_type)
log.info("Trigger stream %s",rec.triggerStream())
#log.info("Event type %s",evt_type)

# enable PerfMon
from PerfMonComps.PerfMonFlags import jobproperties
jobproperties.PerfMonFlags.doFastMon = True

#set up DQMonFlags required for HLTMonitoring
from AthenaMonitoring.DQMonFlags import DQMonFlags
if globalflags.DataSource.get_Value() == 'geant4':
    DQMonFlags.monManDataType = 'monteCarlo'
elif (rec.doHeavyIon() or rec.doHIP()):
    # requires something from InputFileSummary rather than rec flag
    DQMonFlags.monManDataType = 'heavyioncollisions'
    DQMonFlags.doHIMon = True
elif jobproperties.Beam.beamType()   == 'cosmics':
    DQMonFlags.monManDataType = 'cosmics'
elif jobproperties.Beam.beamType() == 'collisions':
    DQMonFlags.monManDataType = 'collisions'
elif jobproperties.Beam.beamType() == 'singlebeam':
    ## There is no singlebeam in AthenaMonitoring
    DQMonFlags.monManDataType = 'collisions'
else:
    log.warning("invalid jobproperties.Beam.beamType(): %s, using default (%s)", 
            jobproperties.Beam.beamType(), DQMonFlags.monManDataType)
                             
if data_type == 'bytestream':
Beispiel #3
0
def AODFix_Init():
    ''' This function is called to correctly setup AODFix.'''

    global _aodFixInstance

    from RecExConfig.RecFlags import rec

    ##################
    # exit if locked to false
    ##################
    if rec.doApplyAODFix.is_locked() and rec.doApplyAODFix.get_Value(
    ) == False:
        logAODFix.info(
            "doApplyAODFix is locked to False; not applying anything")
        return

    ##################
    # deterimine in what release we are running (and fill some rec variables
    ##################

    import os
    curRelease = os.getenv("AtlasVersion") or ''

    logAODFix.debug("curRelease set to " + curRelease)

    ##################
    # determine athena with which input file was created and previous AODFix
    ##################

    # RDO doesn't have MetaData
    prevAODFix = ''
    prevRelease = ''
    isMC = False
    isHI = rec.doHeavyIon()
    isHIP = rec.doHIP()

    # is it better to do this or to look at GlobalFlags?
    from RecExConfig.InputFilePeeker import inputFileSummary
    try:
        isMC = (inputFileSummary['evt_type'][0] == "IS_SIMULATION")
    except Exception:
        logAODFix.warning(
            "Could not tell if the input file is data or MC; setting to data")
        isMC = False

    if not rec.readRDO():

        try:
            AtlasReleaseVersionString = inputFileSummary['metadata'][
                '/TagInfo']['AtlasRelease']
            rv = AtlasReleaseVersionString.split('-')
            if len(rv) > 1:
                prevRelease = rv[1]
        except Exception:
            logAODFix.warning(
                "no AthenRelease found in input file, setting to <none> !!")
            prevRelease = ''

        ##################
        # determine which is the previous verion of the AODFix
        ##################
        try:
            prevAODFix = inputFileSummary['tag_info']['AODFixVersion']
            if prevAODFix.startswith("AODFix_"):
                prevAODFix = prevAODFix[7:]
                prevAODFix = prevAODFix.split("_")[0]
        except Exception:
            logAODFix.debug(
                "no AODFixVersion found in input file, setting to <none>.")
            prevAODFix = ''

    logAODFix.info("Summary of MetaData for AODFix:")
    if isMC:
        logAODFix.info(" Input file is MC")
    else:
        logAODFix.info(" Input file is DATA")
    logAODFix.info(" Input file produced with Athena version <%s>." %
                   prevRelease)
    logAODFix.info(" AODFix version <%s> was previously applied." % prevAODFix)
    if rec.doApplyAODFix.is_locked():
        logAODFix.info(" AODFix is forced to run!")

    ##################
    # determine which AODFix to run (if actually running--to be determined later)
    ##################

    doAODFix = False
    if rec.readAOD():  # change in policy: no AODFix if reading ESD.
        doAODFix = True
        # check to see if it's a DAOD; do not run by default in DAODs
        from RecExConfig.InputFilePeeker import inputFileSummary
        try:
            streamNames = inputFileSummary['stream_names']
            if any(map(lambda x: "StreamDAOD" in x,
                       streamNames)) and not rec.doApplyAODFix.is_locked():
                logAODFix.info("Running on a DAOD, so not scheduling AODFix")
                doAODFix = False
        except Exception:
            logAODFix.warning("Could not determine the stream name")

    elif rec.readESD() and rec.doApplyAODFix.is_locked():
        # only run on ESDs if forcing
        doAODFix = True

    #exit if not doing AODFix
    if not doAODFix:
        return

    curReleaseSplit = curRelease.split('.')
    prevReleaseSplit = prevRelease.split('.')
    if len(curReleaseSplit) >= 2 and (rec.doApplyAODFix.is_locked()
                                      or len(prevReleaseSplit) >= 2):
        ### If adding an AODFix for a release family that does not have it,
        ### please add it to the if-elif... statement below
        # if (curReleaseSplit[0] == '21' and (curReleaseSplit[1] == '0' or curReleaseSplit[1] == '2') and
        #       (rec.doApplyAODFix.is_locked() or
        #        (prevReleaseSplit[0] == '21' and (prevReleaseSplit[1] == '0' or prevReleaseSplit[1] == '2')))):
        #     _aodFixInstance = AODFix_r210(prevAODFix, isMC, rec.doApplyAODFix.is_locked(), isHI, isHIP)
        # else:
        #     logAODFix.info("No AODFix scheduled for this release.")
        logAODFix.info("AODFix disabled.")

    else:
        logAODFix.info("Current release is of strange form: %s" % curRelease)
Beispiel #4
0
if DetFlags.detdescr.Muon_on() or DetFlags.detdescr.Calo_on():
    protectedInclude("MuonCombinedRecExample/MuonCombined_OutputItemsESD.py")
    fullESDList += CfgItemList("MuonCombinedEsd", items=MuonCombinedESDList)

from RecExConfig.RecAlgsFlags import recAlgs

# Atlfast, note ESD and AOD lists are equal
if recAlgs.doAtlfast():
    protectedInclude("AtlfastAlgs/AtlfastOutputList_jobOptions.py")
    fullESDList += CfgItemList("AtlfastEsd", items=AtlfastAODList)

# Trigger
# Now filled through objKeyStore in configurables (see HLTTriggerGetter)

# Heavy Ion:
if rec.doHeavyIon() or rec.doHIP():
    protectedInclude("HIRecExample/HIRecOutputESDList_jobOptions.py")
    fullESDList += CfgItemList("HeavyIonsEsd", items=HIESDItemList)

## StreamESD_Augmented.AddItem( "RecoTimingObj#RAWtoESD_timings" )
#fullESDList += CfgItemList( "TimingEsd",
#                            items=["RecoTimingObj#RAWtoESD_timings",
#                                   "RecoTimingObj#RAWtoESD_mems",
#                                   "RecoTimingObj#EVNTtoHITS_timings",
#                                   "RecoTimingObj#HITStoRDO_timings"] )

# Request for W. Ehrenfeld: Add Calibration hits to ESD/AOD files if present in input RDO
if rec.doWriteCalibHits():
    fullESDList += CfgItemList(
        "CalibrationHits",
        items=[
Beispiel #5
0
#Optional auto-configuration
if len(rec.AutoConfiguration()) > 0:
    from RecExConfig.AutoConfiguration import ConfigureFromListOfKeys
    ConfigureFromListOfKeys(rec.AutoConfiguration())
    include("RecExConfig/AutoConfigConsistencyCheck.py")

#special commisioning job options
if rec.Commissioning():
    include("RecExCommission/RecExCommission.py")

if rec.triggerStream().startswith('express'):
    logRecExCommon_flags.info('Disabling track slimming for express stream.')
    include("RecJobTransforms/NoTrackSlimming.py")

#Some special (monitoring) setting for Heavy Ions:
if rec.doHeavyIon():
    logRecExCommon_flags.info('Heavy Ion case: Calling HIEarlyIncludes.py')
    include("HIRecExample/HIEarlyIncludes.py")

if rec.doHIP():
    logRecExCommon_flags.info(
        'Heavy Ion p+Pb case: Calling HIPEarlyIncludes.py')
    include("HIRecExample/HIPEarlyIncludes.py")

varInit = dir()

# mgallas
logRecExCommon_flags.info(
    'starting the migration to JobProperties. WILL SOON BE DISABLED.')

# first update RecExCommonFlags value according to variable set
Beispiel #6
0
if not 'rec' in dir():
    from RecExConfig.RecFlags import rec

from RecExConfig.RecAlgsFlags import recAlgs

if rec.doTrigger() == False:
    DQMonFlags.useTrigger = False  # steers trigger-awareness
    DQMonFlags.doLVL1CaloMon = False
    DQMonFlags.doCTPMon = False
    DQMonFlags.doHLTMon = False

# Set the data type based on beamType/HI flag
if globalflags.DataSource.get_Value() == 'geant4':
    DQMonFlags.monManDataType = 'monteCarlo'
elif (rec.doHeavyIon() or rec.doHIP()):
    DQMonFlags.monManDataType = 'heavyioncollisions'
    DQMonFlags.doHIMon = True
elif jobproperties.Beam.beamType() == 'cosmics':
    DQMonFlags.monManDataType = 'cosmics'
elif jobproperties.Beam.beamType() == 'collisions':
    DQMonFlags.monManDataType = 'collisions'
elif jobproperties.Beam.beamType() == 'singlebeam':
    ## There is no singlebeam in AthenaMonitoring
    DQMonFlags.monManDataType = 'collisions'
else:
    local_logger.warning(
        "invalid jobproperties.Beam.beamType(): %s, using default (%s)",
        jobproperties.Beam.beamType(), DQMonFlags.monManDataType)

# First, test to see if this is being run online
if not 'rec' in dir():
   from RecExConfig.RecFlags import rec

from RecExConfig.RecAlgsFlags import recAlgs

if rec.doTrigger() == False:
   DQMonFlags.useTrigger=False     # steers trigger-awareness
   DQMonFlags.doLVL1CaloMon=False
   DQMonFlags.doCTPMon=False
   DQMonFlags.doHLTMon=False

# Set the data type based on beamType/HI flag
if globalflags.DataSource.get_Value() == 'geant4':
   DQMonFlags.monManDataType = 'monteCarlo'
elif rec.doHeavyIon():
   DQMonFlags.monManDataType = 'heavyioncollisions'
   DQMonFlags.doHIMon = True
elif jobproperties.Beam.beamType()   == 'cosmics':
   DQMonFlags.monManDataType = 'cosmics'
elif jobproperties.Beam.beamType() == 'collisions':
   DQMonFlags.monManDataType = 'collisions'
elif jobproperties.Beam.beamType() == 'singlebeam':
   ## There is no singlebeam in AthenaMonitoring
   DQMonFlags.monManDataType = 'collisions'
else:
   local_logger.warning("invalid jobproperties.Beam.beamType(): %s, using default (%s)", 
                        jobproperties.Beam.beamType(), DQMonFlags.monManDataType)


# First, test to see if this is being run online