#!/usr/bin/env python # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration import sys from AthenaConfiguration.ComponentFactory import CompFactory from AthenaCommon.Constants import INFO, WARNING Cmake_working_dir = sys.argv[1] print("Cmake_working_dir = ", Cmake_working_dir) def TrackerDataAccessExampleCfg(flags, name="TrackerDataAccessExampleAlg", **kwargs): from FaserGeoModel.FaserGeoModelConfig import FaserGeometryCfg a = FaserGeometryCfg(flags) TrackerDataAccessExampleAlg = CompFactory.TrackerDataAccess a.addEventAlgo(TrackerDataAccessExampleAlg(name, **kwargs)) from FaserByteStreamCnvSvc.FaserByteStreamCnvSvcConfig import FaserByteStreamCnvSvcCfg a.merge(FaserByteStreamCnvSvcCfg(flags)) # thistSvc = CompFactory.THistSvc() # thistSvc.Output += ["HIST DATAFILE='rdoReadHist.root' OPT='RECREATE'"] # a.addService(thistSvc) return a if __name__ == "__main__": from AthenaCommon.Configurable import Configurable from CalypsoConfiguration.AllConfigFlags import initConfigFlags from AthenaCommon.Logging import logging Configurable.configurableRun3Behavior = True # Flags for this job configFlags = initConfigFlags() configFlags.Input.isMC = False # Needed to bypass autoconfig configFlags.IOVDb.GlobalTag = "OFLCOND-FASER-01" # Always needed; must match FaserVersion configFlags.IOVDb.DatabaseInstance = "CONDBR3" # Use MC conditions for now configFlags.GeoModel.FaserVersion = "FASER-01" # FASER geometry configFlags.Input.ProjectName = "data20" # Needed to bypass autoconfig #configFlags.GeoModel.Align.Dynamic = False configFlags.Input.Files = [f"{Cmake_working_dir}/../rawdata/Faser-Physics-001920-filtered.raw"] #path is set to test data for ctest # configFlags.Output.RDOFileName = "my.RDO.pool.root" configFlags.lock() # Configure components from CalypsoConfiguration.MainServicesConfig import MainServicesCfg # from AthenaPoolCnvSvc.PoolWriteConfig import PoolWriteCfg acc = MainServicesCfg(configFlags) # acc.merge(PoolWriteCfg(configFlags)) # Configure output # from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg # itemList = [ "xAOD::EventInfo#*", # "xAOD::EventAuxInfo#*", # "FaserSCT_RDO_Container#*" # ] # acc.merge(OutputStreamCfg(configFlags, "RDO", itemList)) # ostream = acc.getEventAlgo("OutputStreamRDO") # Set up algorithm acc.merge(TrackerDataAccessExampleCfg(configFlags)) # Hack to avoid problem with our use of MC databases when isMC = False replicaSvc = acc.getService("DBReplicaSvc") replicaSvc.COOLSQLiteVetoPattern = "" replicaSvc.UseCOOLSQLite = True replicaSvc.UseCOOLFrontier = False replicaSvc.UseGeomSQLite = True # Configure verbosity # configFlags.dump() logging.getLogger('forcomps').setLevel(WARNING) acc.foreach_component("*").OutputLevel = INFO acc.foreach_component("*ClassID*").OutputLevel = INFO acc.foreach_component("*TrackerDataAccess*").OutputLevel = WARNING # log.setLevel(VERBOSE) # Execute and finish sys.exit(int(acc.run(maxEvents=-1).isFailure()))