示例#1
0
def muonRdoDecodeTestMC():
    from AthenaCommon.Configurable import Configurable
    Configurable.configurableRun3Behavior = 1

    from AthenaConfiguration.AllConfigFlags import ConfigFlags
    ConfigFlags.Input.Files = [
        "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TriggerTest/valid1.110401.PowhegPythia_P2012_ttbar_nonallhad.recon.RDO.e3099_s2578_r7572_tid07644622_00/RDO.07644622._000001.pool.root.1"
    ]

    ConfigFlags.lock()
    ConfigFlags.dump()

    from AthenaCommon.Logging import log

    log.setLevel(DEBUG)
    log.info('About to setup Rpc RDO data decoding')

    cfg = ComponentAccumulator()

    # We are reading a pool file for this test
    from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
    cfg.merge(PoolReadCfg(ConfigFlags))

    # Schedule RDO conversion
    # RPC decoding
    rpcdecodingAcc = RpcRDODecodeCfg(ConfigFlags)
    cfg.merge(rpcdecodingAcc)

    # TGC decoding
    tgcdecodingAcc = TgcRDODecodeCfg(ConfigFlags)
    cfg.merge(tgcdecodingAcc)

    # MDT decoding
    mdtdecodingAcc = MdtRDODecodeCfg(ConfigFlags)
    cfg.merge(mdtdecodingAcc)

    # CSC decoding
    cscdecodingAcc = CscRDODecodeCfg(ConfigFlags)
    cfg.merge(cscdecodingAcc)

    cscbuildingAcc = CscClusterBuildCfg(ConfigFlags)
    cfg.merge(cscbuildingAcc)

    log.info('Print Config')
    cfg.printConfig(withDetails=True)

    # Store config as pickle
    log.info('Save Config')
    with open('MuonRdoDecode.pkl', 'wb') as f:
        cfg.store(f)
        f.close()
    return cfg
示例#2
0
    def skip_test_sequences_merging(self):
        from AthenaConfiguration.AllConfigFlags import ConfigFlags
        ConfigFlags.lock()
        from AthenaCommon.Logging import logging
        logging.getLogger('ComponentAccumulator').setLevel(DEBUG)

        print("ca1")
        ca1 = ComponentAccumulator()
        ca1.addEventAlgo(TestAlgo("alg1"))
        ca1.printConfig()
        ca1.addSequence(seqAND("someSequence"))

        print("ca2")
        from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
        ca2 = OutputStreamCfg(ConfigFlags,
                              "RDO",
                              ItemList=[
                                  "SCT_RDO_Container#SCT_RDOs",
                                  "InDetSimDataCollection#SCT_SDO_Map"
                              ])
        ca2.printConfig()

        print("after merge")
        ca1.merge(ca2)
        ca1.printConfig()

        self.assertEqual(len(ca1._allSequences), 2,
                         "Dangling sequences not maintained")

        print("Instantiating top CA")
        from AthenaConfiguration.MainServicesConfig import MainServicesCfg
        topca = MainServicesCfg(ConfigFlags)
        topca.printConfig()

        print("Merging to the top level CA")
        topca.merge(ca1)
        topca.printConfig()
        topca.wasMerged()
示例#3
0
def SetupMuonStandaloneConfigFlags(args):
    from AthenaConfiguration.AllConfigFlags import ConfigFlags
    # Keeping this commented out so we can easily switch to the default for testing against that.
    # from AthenaConfiguration.TestDefaults import defaultTestFiles
    # ConfigFlags.Input.Files = defaultTestFiles.ESD
    ConfigFlags.Input.Files = [
        '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/RecExRecoTest/ESD.16747874._000011_100events.pool.root'
    ]

    ConfigFlags.Concurrency.NumThreads = args.threads
    ConfigFlags.Concurrency.NumConcurrentEvents = args.threads  # Might change this later, but good enough for the moment.

    ConfigFlags.Detector.GeometryMDT = True
    ConfigFlags.Detector.GeometryTGC = True
    ConfigFlags.Detector.GeometryCSC = True
    ConfigFlags.Detector.GeometryRPC = True

    ConfigFlags.Output.ESDFileName = args.output

    ConfigFlags.Input.isMC = True
    ConfigFlags.lock()
    ConfigFlags.dump()
    return ConfigFlags
示例#4
0
    cfgFlags.Output.ESDFileName = "esdOut.pool.root"

    # Flags relating to multithreaded execution
    cfgFlags.Concurrency.NumThreads = args.nThreads
    if args.nThreads > 0:
        cfgFlags.Scheduler.ShowDataDeps = True
        cfgFlags.Scheduler.ShowDataFlow = True
        cfgFlags.Scheduler.ShowControlFlow = True
        cfgFlags.Concurrency.NumConcurrentEvents = args.nThreads

    from AthenaConfiguration.MainServicesConfig import MainServicesCfg
    acc = MainServicesCfg(cfgFlags)
    acc.getService("MessageSvc").Format = "% F%80W%S%7W%R%T %0W%M"

    # Prevent the flags from being modified
    cfgFlags.lock()

    acc.merge(PrepareStandAloneBTagCfg(cfgFlags))

    JetCollection = ['AntiKt4EMTopo', 'AntiKt4EMPFlow']

    if args.highlevel:
        acc.merge(BTagHLTaggersCfg(cfgFlags, JetCollection=JetCollection))
    else:
        kwargs = {}
        kwargs['Release'] = args.release
        if args.release == "21.2":
            kwargs["TimeStamp"] = ['201810', '201903']
            kwargs['Release'] = '21'
        kwargs["SplitAlg"] = args.splitAlg
示例#5
0
    Configurable.configurableRun3Behavior = 1

    # Setup logs
    from AthenaCommon.Logging import log
    from AthenaCommon.Constants import INFO
    log.setLevel(INFO)

    # Set the Athena configuration flags
    from AthenaConfiguration.AllConfigFlags import ConfigFlags

    path = '/afs/cern.ch/work/j/jodafons/public/valid_sampleA/AOD.20745922._000041.pool.root.1'
    ConfigFlags.Input.Files = [path]
    ConfigFlags.Input.isMC = False
    ConfigFlags.Output.HISTFileName = 'TrigEgammaMonitorOutput.root'

    ConfigFlags.lock()

    # Initialize configuration object, add accumulator, merge, and run.
    from AthenaConfiguration.MainServicesConfig import MainServicesCfg
    from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
    cfg = MainServicesCfg(ConfigFlags)
    cfg.merge(PoolReadCfg(ConfigFlags))

    trigEgammaMonitorAcc = TrigEgammaMonConfig(ConfigFlags)
    cfg.merge(trigEgammaMonitorAcc)

    # If you want to turn on more detailed messages ...
    #trigEgammaMonitorAcc.getEventAlgo('TrigEgammaMonAlg').OutputLevel = 2 # DEBUG
    cfg.printConfig(withDetails=False)  # set True for exhaustive info

    cfg.run(10)  #use cfg.run(20) to only run on first 20 events
示例#6
0
flags.needFlagsCategory('Trigger')
setupMenuModule.setupMenu(flags)
flags.Exec.MaxEvents = 50
flags.Input.isMC = False
flags.Input.Files = [
    "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1"
]

flags.Trigger.L1Decoder.forceEnableAllChains = True
flags.Concurrency.NumThreads = 1
flags.Concurrency.NumConcurrentEvents = 1

flags.InDet.useSctDCS = False
flags.InDet.usePixelDCS = False

flags.lock()

from AthenaCommon.Constants import DEBUG, WARNING

acc = MainServicesCfg(flags)
acc.getService('AvalancheSchedulerSvc').VerboseSubSlots = True

# this delcares to the scheduer that EventInfo object is produced
acc.addEventAlgo(
    CompFactory.SGInputLoader(Load=[('xAOD::EventInfo',
                                     'StoreGateSvc+EventInfo')]), "AthAlgSeq")

from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg

acc.merge(ByteStreamReadCfg(flags))
示例#7
0
def muonRdoDecodeTestData(forTrigger=False):
    # Add a flag, forTrigger, which will initially put the ByteStreamDecodeCfg code into "Cached Container" mode
    from AthenaCommon.Configurable import Configurable
    Configurable.configurableRun3Behavior = 1

    from AthenaConfiguration.AllConfigFlags import ConfigFlags
    from AthenaConfiguration.TestDefaults import defaultTestFiles
    ConfigFlags.Input.Files = defaultTestFiles.RAW

    # Set global tag by hand for now
    ConfigFlags.IOVDb.GlobalTag = "CONDBR2-BLKPA-2018-13"  #"CONDBR2-BLKPA-2015-17"
    ConfigFlags.GeoModel.AtlasVersion = "ATLAS-R2-2016-01-00-01"  #"ATLAS-R2-2015-03-01-00"

    ConfigFlags.lock()
    ConfigFlags.dump()

    from AthenaCommon.Logging import log

    log.setLevel(INFO)
    log.info('About to setup Raw data decoding')

    cfg = ComponentAccumulator()

    # Seem to need this to read BS properly
    from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg
    cfg.merge(ByteStreamReadCfg(ConfigFlags))

    # Add the MuonCache to ComponentAccumulator for trigger/RoI testing mode
    if forTrigger:
        # cache creators loaded independently
        from MuonConfig.MuonBytestreamDecodeConfig import MuonCacheCfg
        cfg.merge(MuonCacheCfg())

    # Schedule Rpc bytestream data decoding
    from MuonConfig.MuonBytestreamDecodeConfig import RpcBytestreamDecodeCfg
    rpcdecodingAcc = RpcBytestreamDecodeCfg(ConfigFlags, forTrigger)
    cfg.merge(rpcdecodingAcc)

    # Schedule Mdt bytestream data decoding
    from MuonConfig.MuonBytestreamDecodeConfig import TgcBytestreamDecodeCfg
    tgcdecodingAcc = TgcBytestreamDecodeCfg(ConfigFlags, forTrigger)
    cfg.merge(tgcdecodingAcc)

    from MuonConfig.MuonBytestreamDecodeConfig import MdtBytestreamDecodeCfg
    mdtdecodingAcc = MdtBytestreamDecodeCfg(ConfigFlags, forTrigger)
    cfg.merge(mdtdecodingAcc)

    from MuonConfig.MuonBytestreamDecodeConfig import CscBytestreamDecodeCfg
    cscdecodingAcc = CscBytestreamDecodeCfg(ConfigFlags, forTrigger)
    cfg.merge(cscdecodingAcc)

    # Schedule RDO conversion
    rpcdecodingAcc = RpcRDODecodeCfg(ConfigFlags)
    cfg.merge(rpcdecodingAcc)

    tgcdecodingAcc = TgcRDODecodeCfg(ConfigFlags)
    cfg.merge(tgcdecodingAcc)

    mdtdecodingAcc = MdtRDODecodeCfg(ConfigFlags)
    cfg.merge(mdtdecodingAcc)

    cscdecodingAcc = CscRDODecodeCfg(ConfigFlags)
    cfg.merge(cscdecodingAcc)

    cscbuildingAcc = CscClusterBuildCfg(ConfigFlags)
    cfg.merge(cscbuildingAcc)

    # Need to add POOL converter  - may be a better way of doing this?
    cfg.addService(CompFactory.AthenaPoolCnvSvc())
    cfg.getService("EventPersistencySvc").CnvServices += ["AthenaPoolCnvSvc"]

    log.info('Print Config')
    cfg.printConfig(withDetails=True)

    if forTrigger:
        pklName = 'MuonRdoDecode_Cache.pkl'
    else:
        pklName = 'MuonRdoDecode.pkl'

    # Store config as pickle
    log.info('Save Config')
    with open(pklName, 'wb') as f:
        cfg.store(f)
        f.close()
    return cfg
示例#8
0
def fromRunArgs(runArgs):
    from AthenaCommon.Configurable import Configurable
    Configurable.configurableRun3Behavior = True

    from AthenaCommon.Logging import logging
    logOverlay = logging.getLogger('Overlay')
    logOverlay.info('****************** STARTING OVERLAY *****************')

    logOverlay.info('**** Transformation run arguments')
    logOverlay.info(str(runArgs))

    logOverlay.info('**** Setting-up configuration flags')
    from AthenaConfiguration.AllConfigFlags import ConfigFlags
    commonRunArgsToFlags(runArgs, ConfigFlags)

    hasRDO_BKGInput = hasattr(runArgs, 'inputRDO_BKGFile')
    hasBS_SKIMInput = hasattr(runArgs, 'inputBS_SKIMFile')

    if not hasattr(runArgs, 'inputHITSFile'):
        raise RuntimeError('No input HITS file defined')

    if hasRDO_BKGInput and hasBS_SKIMInput:
        raise RuntimeError('Both RDO_BKG and BS_SKIM are defined')
    if not hasRDO_BKGInput and not hasBS_SKIMInput:
        raise RuntimeError('Define one of RDO_BKG and BS_SKIM file types')

    if hasRDO_BKGInput:
        logOverlay.info('Running MC+MC overlay')
        ConfigFlags.Overlay.DataOverlay = False
        ConfigFlags.Input.isMC = True
        ConfigFlags.Input.Files = runArgs.inputRDO_BKGFile
        ConfigFlags.Input.SecondaryFiles = runArgs.inputHITSFile
    else:
        logOverlay.info('Running MC+data overlay')
        ConfigFlags.Overlay.DataOverlay = True
        ConfigFlags.Input.isMC = False
        ConfigFlags.Input.Files = runArgs.inputHITSFile
        ConfigFlags.Input.SecondaryFiles = runArgs.inputBS_SKIMFile

    if hasattr(runArgs, 'outputRDOFile'):
        if runArgs.outputRDOFile == 'None':
            ConfigFlags.Output.RDOFileName = ''
        else:
            ConfigFlags.Output.RDOFileName = runArgs.outputRDOFile
    else:
        raise RuntimeError('No output RDO file defined')

    if hasattr(runArgs, 'outputRDO_SGNLFile'):
        ConfigFlags.Output.RDO_SGNLFileName = runArgs.outputRDO_SGNLFile

    # Autoconfigure enabled subdetectors
    if hasattr(runArgs, 'detectors'):
        detectors = runArgs.detectors
    else:
        detectors = None

    # Setup digitization flags
    from Digitization.DigitizationConfigFlags import digitizationRunArgsToFlags
    digitizationRunArgsToFlags(runArgs, ConfigFlags)

    # Setup common overlay flags
    defaultOverlayFlags(ConfigFlags, detectors)

    # Pre-exec
    if hasattr(runArgs,
               'preExec') and runArgs.preExec != 'NONE' and runArgs.preExec:
        for cmd in runArgs.preExec:
            exec(cmd)

    # Pre-include
    if hasattr(runArgs, 'preInclude') and runArgs.preInclude:
        raise ValueError('preInclude not supported')

    # TODO not parsed yet:
    # '--fSampltag'
    # '--triggerConfig'

    # Lock flags
    ConfigFlags.lock()

    # Main overlay steering
    from OverlayConfiguration.OverlaySteering import OverlayMainCfg
    acc = OverlayMainCfg(ConfigFlags)
    acc.merge(OverlayMessageSvcCfg(ConfigFlags))

    # Post-include
    if hasattr(runArgs, 'postInclude') and runArgs.postInclude:
        from OverlayConfiguration.OverlayHelpers import accFromFragment
        for fragment in runArgs.postInclude:
            acc.merge(accFromFragment(fragment, ConfigFlags))

    # Post-exec
    if hasattr(runArgs,
               'postExec') and runArgs.postExec != 'NONE' and runArgs.postExec:
        for cmd in runArgs.postExec:
            exec(cmd)

    # Run the final accumulator
    sc = acc.run()
    sys.exit(not sc.isSuccess())
示例#9
0
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
from AthenaCommon import Logging
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
from AthenaConfiguration.ComponentFactory import CompFactory

if __name__=="__main__":
    # Setting needed for the ComponentAccumulator to do its thing
    from AthenaCommon.Configurable import Configurable
    Configurable.configurableRun3Behavior=True
    
    # Set message levels
    from AthenaCommon import Constants
    msgLvl = "WARNING"
    from AthenaCommon.Logging import log
    log.setLevel(msgLvl)
    
    # Config flags steer the job at various levels
    from AthenaConfiguration.AllConfigFlags import ConfigFlags
    ConfigFlags.Input.isMC  = True
    ConfigFlags.Input.Files = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/ASG/mc16_13TeV.410501.PowhegPythia8EvtGen_A14_ttbar_hdamp258p75_nonallhad.merge.AOD.e5458_s3126_r9364_r9315/AOD.11182705._000001.pool.root.1"]
    
    # Flags relating to multithreaded execution
    nthreads=0
    ConfigFlags.Concurrency.NumThreads =nthreads
    if nthreads>0:
    	ConfigFlags.Concurrency.NumThreads = 1
    	ConfigFlags.Concurrency.NumConcurrentEvents = 1
    ConfigFlags.MET.UseTracks = True
    ConfigFlags.MET.DoPFlow = True
    if ConfigFlags.Beam.Type == 'cosmics' or ConfigFlags.Beam.Type == 'singlebeam':# used to have " or not rec.doInDet()" on the end
示例#10
0
def TPCnvTest(infile,
              keys,
              useGeoModelSvc=False,
              useIOVDbSvc=False,
              doPixel=False,
              doSCT=False,
              doTRT=False,
              doLAr=False,
              doTile=False,
              doMuon=False):
    # Make sure we don't have a stale file catalog.
    if os.path.exists('PoolFileCatalog.xml'):
        os.remove('PoolFileCatalog.xml')

    if ('ATLAS_REFERENCE_TAG' not in globals()
            and 'ATLAS_REFERENCE_TAG' in os.environ):
        ATLAS_REFERENCE_TAG = os.environ['ATLAS_REFERENCE_TAG']  # noqa: F841

    refpaths = [
        os.environ.get('ATLAS_REFERENCE_DATA', None),
        '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art',
        '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CommonInputs',
        '/afs/cern.ch/atlas/maxidisk/d33/referencefiles'
    ]

    if infile.startswith('rtt:'):
        infile = infile[4:]
    infile = find_file(infile, refpaths)

    # Provide MC input
    ConfigFlags.Input.Files = [infile]
    ConfigFlags.GeoModel.AtlasVersion = 'ATLAS-R1-2012-03-01-00'
    ConfigFlags.GeoModel.Align.Dynamic = False
    ConfigFlags.Detector.GeometryPixel = doPixel
    ConfigFlags.Detector.GeometrySCT = doSCT
    ConfigFlags.Detector.GeometryTRT = doTRT
    ConfigFlags.Detector.GeometryLAr = doLAr
    ConfigFlags.Detector.GeometryTile = doTile
    ConfigFlags.Detector.GeometryMuon = doMuon
    ConfigFlags.lock()

    # Construct ComponentAccumulator
    acc = MainServicesCfg(ConfigFlags)
    acc.merge(PoolReadCfg(ConfigFlags))
    if useIOVDbSvc:
        acc.merge(IOVDbSvcCfg(ConfigFlags))
    if useGeoModelSvc:
        if ConfigFlags.Detector.GeometryPixel:
            acc.merge(PixelGeometryCfg(ConfigFlags))
            useGeoModelSvc = True
        if ConfigFlags.Detector.GeometrySCT:
            acc.merge(SCT_GeometryCfg(ConfigFlags))
            useGeoModelSvc = True
        if ConfigFlags.Detector.GeometryTRT:
            acc.merge(TRT_GeometryCfg(ConfigFlags))
            useGeoModelSvc = True
        if ConfigFlags.Detector.GeometryLAr:
            acc.merge(LArGMCfg(ConfigFlags))
            useGeoModelSvc = True
        if ConfigFlags.Detector.GeometryTile:
            acc.merge(TileGMCfg(ConfigFlags))
            useGeoModelSvc = True
        if ConfigFlags.Detector.GeometryMuon:
            acc.merge(MuonGeoModelCfg(ConfigFlags))
            useGeoModelSvc = True
        #acc.merge(ForDetGeometryCfg(ConfigFlags))
        acc.merge(GeoModelCfg(ConfigFlags))
        acc.getService("GeoModelSvc").IgnoreTagDifference = True
    acc.addEventAlgo(
        Dumper('dumper', ConfigFlags.Input.Files[0], keys, refpaths),
        'AthAlgSeq')
    return acc.run(maxEvents=10)