ATLAS Offline Software
Loading...
Searching...
No Matches
TileSimOutputConfig.py
Go to the documentation of this file.
2# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3#
4
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6
7
8def TileSimOutputCfg(flags, ntupleOutput=None, d3pdOutput=None):
9 ''' Function to configure Tile ntuples and D3PD for simulaiton.'''
10
11 acc = ComponentAccumulator()
12
13 if ntupleOutput is None:
14 ntupleOutput='tiletb.ntup.root'
15 if d3pdOutput is None:
16 d3pdOutput='tiletb.d3pd.root'
17
18 if ntupleOutput:
19 from TileRec.TileHitVecToNtupleConfig import TileHitVecToNtupleCfg
20 acc.merge(TileHitVecToNtupleCfg(flags, outputFile=ntupleOutput))
21
22 if d3pdOutput:
23 from TileSimEx.TileSimD3PDConfig import TileSimD3PDCfg
24 acc.merge(TileSimD3PDCfg(flags, outputFile=d3pdOutput))
25
26 return acc
27
28
29if __name__ == '__main__':
30
31 # Set the Athena configuration flags
32 from AthenaConfiguration.AllConfigFlags import initConfigFlags
33 flags = initConfigFlags()
34
35 # Setup logs
36 from AthenaCommon.Logging import log
37 from AthenaCommon.Constants import INFO
38 log.setLevel(INFO)
39
40 from AthenaConfiguration.TestDefaults import defaultTestFiles
41 flags.Input.Files = defaultTestFiles.HITS_RUN3
42 flags.Exec.MaxEvents = 3
43 flags.fillFromArgs()
44
45 log.info('FINAL CONFIG FLAGS SETTINGS FOLLOW')
46 flags.dump()
47
48 flags.lock()
49
50 # Initialize configuration object, add accumulator, merge, and run.
51 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
52 cfg = MainServicesCfg(flags)
53
54 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
55 cfg.merge(PoolReadCfg(flags))
56
57 cfg.merge(TileSimOutputCfg(flags))
58
59 cfg.printConfig(withDetails=True, summariseProps=True)
60
61 cfg.store( open('TileSimOutputConfig.pkl', 'wb') )
62
63 sc = cfg.run()
64
65 import sys
66 # Success should be 0
67 sys.exit(0 if sc.isSuccess() else 1)
TileSimOutputCfg(flags, ntupleOutput=None, d3pdOutput=None)