ATLAS Offline Software
Loading...
Searching...
No Matches
TPCnvTestConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3import os
4from AthenaConfiguration.AllConfigFlags import initConfigFlags
5from AthenaConfiguration.Enums import LHCPeriod
6from AthenaConfiguration.MainServicesConfig import MainServicesCfg
7from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
8from AthenaPoolUtilities.DumperConfig import Dumper, find_file
9from IOVDbSvc.IOVDbSvcConfig import IOVDbSvcCfg
10
11
12def TPCnvTest(infile, keys, useGeoModelSvc=False, useIOVDbSvc=False, doPixel=False, doSCT=False, doTRT=False, doLAr=False, doTile=False, doMuon=False, doTracks=False, configOnly=False, adjustMessageSvc=True):
13
14 # Needed to prevent spurious root errors about streams in CreateRealData.
15 import ROOT
16 ROOT.GaudiPython.CallbackStreamBuf
17
18 # Make sure we don't have a stale file catalog.
19 if os.path.exists ('PoolFileCatalog.xml'):
20 os.remove ('PoolFileCatalog.xml')
21
22 if ('ATLAS_REFERENCE_TAG' not in globals() and
23 'ATLAS_REFERENCE_TAG' in os.environ):
24 ATLAS_REFERENCE_TAG = os.environ['ATLAS_REFERENCE_TAG'] # noqa: F841
25
26 refpaths = [os.environ.get ('ATLAS_REFERENCE_DATA', None),
27 '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art',
28 '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CommonInputs',
29 '/afs/cern.ch/atlas/maxidisk/d33/referencefiles']
30
31 if infile.startswith ('rtt:'):
32 infile = infile[4:]
33 infile = find_file (infile, refpaths)
34
35 # Provide MC input
36 flags = initConfigFlags()
37 flags.Input.Files = [infile]
38 flags.GeoModel.Run = LHCPeriod.Run1
39 from AthenaConfiguration.TestDefaults import defaultGeometryTags
40 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN1_2012
41 if useGeoModelSvc:
42 flags.GeoModel.Align.Dynamic = False
43 flags.Detector.GeometryPixel = doPixel
44 flags.Detector.GeometrySCT = doSCT
45 flags.Detector.GeometryTRT = doTRT
46 flags.Detector.GeometryID = (doPixel or doSCT or doTRT)
47 flags.Detector.GeometryLAr = doLAr
48 flags.Detector.GeometryTile = doTile
49 flags.Detector.GeometryMuon = doMuon
50 flags.fillFromArgs()
51 flags.lock()
52
53 # Construct ComponentAccumulator
54 acc = MainServicesCfg(flags)
55 acc.setAppProperty('PrintAlgsSequence', False, overwrite=True)
56 acc.merge(PoolReadCfg(flags))
57 if useIOVDbSvc:
58 acc.merge(IOVDbSvcCfg(flags))
59 if useGeoModelSvc:
60 if flags.Detector.GeometryPixel:
61 from PixelGeoModel.PixelGeoModelConfig import PixelReadoutGeometryCfg
62 acc.merge(PixelReadoutGeometryCfg(flags))
63 if flags.Detector.GeometrySCT:
64 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
65 acc.merge(SCT_ReadoutGeometryCfg(flags))
66 if flags.Detector.GeometryTRT:
67 from TRT_GeoModel.TRT_GeoModelConfig import TRT_ReadoutGeometryCfg
68 acc.merge(TRT_ReadoutGeometryCfg(flags))
69 if flags.Detector.GeometryITkPixel:
70 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
71 acc.merge(ITkPixelReadoutGeometryCfg(flags))
72 if flags.Detector.GeometryITkStrip:
73 from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
74 acc.merge(ITkStripReadoutGeometryCfg(flags))
75 if flags.Detector.GeometryLAr:
76 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
77 acc.merge(LArGMCfg(flags))
78 if flags.Detector.GeometryTile:
79 from TileGeoModel.TileGMConfig import TileGMCfg
80 acc.merge(TileGMCfg(flags))
81 if flags.Detector.GeometryMuon:
82 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
83 acc.merge(MuonGeoModelCfg(flags))
84 #acc.merge(ForDetGeometryCfg(flags))
85 if doTracks:
86 from TrkEventCnvTools.TrkEventCnvToolsConfig import (
87 TrkEventCnvSuperToolCfg)
88 acc.merge(TrkEventCnvSuperToolCfg(flags, MaxErrorCount=10))
89 from AtlasGeoModel.GeoModelConfig import GeoModelCfg
90 acc.merge(GeoModelCfg(flags))
91 acc.getService("GeoModelSvc").IgnoreTagDifference = True
92
93 acc.addEventAlgo(Dumper ('dumper', flags.Input.Files[0], keys, refpaths), 'AthAlgSeq')
94 if adjustMessageSvc:
95 acc.getService("MessageSvc").enableSuppression = True
96 acc.getService("MessageSvc").Format = "% F%18W%S%7W%R%T %0W%M"
97 if configOnly:
98 f = open('new.pkl', 'wb')
99 acc.store(f)
100 f.close()
101 return
102 return acc.run(maxEvents=10)
TPCnvTest(infile, keys, useGeoModelSvc=False, useIOVDbSvc=False, doPixel=False, doSCT=False, doTRT=False, doLAr=False, doTile=False, doMuon=False, doTracks=False, configOnly=False, adjustMessageSvc=True)